abdul-react 0.0.34 → 0.0.36

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 (103) hide show
  1. package/lib/ComponentProps/TreeNodeProps.d.ts +1 -0
  2. package/lib/_virtual/index10.js +2 -2
  3. package/lib/_virtual/index11.js +2 -2
  4. package/lib/assets/icons/mac_white_icon.svg.js +6 -0
  5. package/lib/assets/icons/mac_white_icon.svg.js.map +1 -0
  6. package/lib/assets/icons/maximize_livetesting.svg.js +6 -0
  7. package/lib/assets/icons/maximize_livetesting.svg.js.map +1 -0
  8. package/lib/assets/icons/minimize_tree.svg.js +6 -0
  9. package/lib/assets/icons/minimize_tree.svg.js.map +1 -0
  10. package/lib/assets/icons/timer_icon.svg.js +6 -0
  11. package/lib/assets/icons/timer_icon.svg.js.map +1 -0
  12. package/lib/assets/icons/view_access_icon.svg.js +1 -1
  13. package/lib/assets/icons/view_access_icon.svg.js.map +1 -1
  14. package/lib/assets/icons/windows_blue_icon.svg.js +6 -0
  15. package/lib/assets/icons/windows_blue_icon.svg.js.map +1 -0
  16. package/lib/components/AllProjectsDropdown/AllProjectsDropdown.js +53 -13
  17. package/lib/components/AllProjectsDropdown/AllProjectsDropdown.js.map +1 -1
  18. package/lib/components/AppHeader/AppHeader.js +36 -3
  19. package/lib/components/AppHeader/AppHeader.js.map +1 -1
  20. package/lib/components/AppHeader/types.d.ts +11 -0
  21. package/lib/components/ConditionalDropdown/ConditionalDropdown.js +17 -5
  22. package/lib/components/ConditionalDropdown/ConditionalDropdown.js.map +1 -1
  23. package/lib/components/ConditionalDropdown/OptionsDropdown.js +16 -6
  24. package/lib/components/ConditionalDropdown/OptionsDropdown.js.map +1 -1
  25. package/lib/components/ConditionalDropdown/types.d.ts +12 -0
  26. package/lib/components/CreateVariable/CreateVariableSlider.js +3 -2
  27. package/lib/components/CreateVariable/CreateVariableSlider.js.map +1 -1
  28. package/lib/components/CreateVariable/types.d.ts +3 -2
  29. package/lib/components/Drawer/Drawer.js +7 -4
  30. package/lib/components/Drawer/Drawer.js.map +1 -1
  31. package/lib/components/EditLabel/EditLabel.js +2 -2
  32. package/lib/components/EditLabel/EditLabel.js.map +1 -1
  33. package/lib/components/Editor/Editor.js +8 -3
  34. package/lib/components/Editor/Editor.js.map +1 -1
  35. package/lib/components/Editor/VariableDropdown.js +7 -7
  36. package/lib/components/Editor/VariableDropdown.js.map +1 -1
  37. package/lib/components/Editor/types.d.ts +8 -0
  38. package/lib/components/Excel/Data.d.ts +8 -60
  39. package/lib/components/Excel/Data.js +50 -18
  40. package/lib/components/Excel/Data.js.map +1 -1
  41. package/lib/components/Excel/ExcelFile/ExcelFileComponents/ActiveCell.js +2 -0
  42. package/lib/components/Excel/ExcelFile/ExcelFileComponents/ActiveCell.js.map +1 -1
  43. package/lib/components/Excel/ExcelFile/ExcelFileComponents/Cell.js +2 -1
  44. package/lib/components/Excel/ExcelFile/ExcelFileComponents/Cell.js.map +1 -1
  45. package/lib/components/Excel/ExcelFile/ExcelFileComponents/ColumnIndicator.js +8 -9
  46. package/lib/components/Excel/ExcelFile/ExcelFileComponents/ColumnIndicator.js.map +1 -1
  47. package/lib/components/Excel/ExcelFile/ExcelFileComponents/DataEditor.js +45 -2
  48. package/lib/components/Excel/ExcelFile/ExcelFileComponents/DataEditor.js.map +1 -1
  49. package/lib/components/Excel/ExcelFile/ExcelFileComponents/RowIndicator.js +7 -6
  50. package/lib/components/Excel/ExcelFile/ExcelFileComponents/RowIndicator.js.map +1 -1
  51. package/lib/components/Excel/ExcelFile/ExcelFileComponents/actions.d.ts +17 -1
  52. package/lib/components/Excel/ExcelFile/ExcelFileComponents/actions.js +21 -1
  53. package/lib/components/Excel/ExcelFile/ExcelFileComponents/actions.js.map +1 -1
  54. package/lib/components/Excel/ExcelFile/ExcelFileComponents/reducer.js +349 -38
  55. package/lib/components/Excel/ExcelFile/ExcelFileComponents/reducer.js.map +1 -1
  56. package/lib/components/Excel/ExcelFile/ExcelFileComponents/util.d.ts +4 -0
  57. package/lib/components/Excel/ExcelFile/ExcelFileComponents/util.js +43 -1
  58. package/lib/components/Excel/ExcelFile/ExcelFileComponents/util.js.map +1 -1
  59. package/lib/components/Excel/Types.d.ts +2 -0
  60. package/lib/components/Excel/dataConversion.js +6 -2
  61. package/lib/components/Excel/dataConversion.js.map +1 -1
  62. package/lib/components/Icon/iconList.js +16 -6
  63. package/lib/components/Icon/iconList.js.map +1 -1
  64. package/lib/components/NLPInput/NlpInput.js +1 -1
  65. package/lib/components/NLPInput/components/NlpDropDown/NlpDropdown.js +1 -1
  66. package/lib/components/NLPInput/components/NlpDropDown/NlpDropdown.js.map +1 -1
  67. package/lib/components/Prompt/Prompt.js +2 -1
  68. package/lib/components/Prompt/Prompt.js.map +1 -1
  69. package/lib/components/SequentialConnectingBranch/SequentialConnectingBranch.js +14 -9
  70. package/lib/components/SequentialConnectingBranch/SequentialConnectingBranch.js.map +1 -1
  71. package/lib/components/StepsLandingTable/Components/StepGroupAccordions.js +92 -69
  72. package/lib/components/StepsLandingTable/Components/StepGroupAccordions.js.map +1 -1
  73. package/lib/components/StepsLandingTable/Components/StepInnerTable.d.ts +1 -1
  74. package/lib/components/StepsLandingTable/Components/StepInnerTable.js +187 -15
  75. package/lib/components/StepsLandingTable/Components/StepInnerTable.js.map +1 -1
  76. package/lib/components/StepsLandingTable/Components/StepTableMainRow.js +20 -4
  77. package/lib/components/StepsLandingTable/Components/StepTableMainRow.js.map +1 -1
  78. package/lib/components/StepsLandingTable/Components/Types.d.ts +6 -0
  79. package/lib/components/StepsLandingTable/StepLandingTable.js +7 -3
  80. package/lib/components/StepsLandingTable/StepLandingTable.js.map +1 -1
  81. package/lib/components/StepsLandingTable/types.d.ts +2 -0
  82. package/lib/components/Table/Table.js +184 -42
  83. package/lib/components/Table/Table.js.map +1 -1
  84. package/lib/components/TableWithAccordion/TableWithAccordion.js +4 -3
  85. package/lib/components/TableWithAccordion/TableWithAccordion.js.map +1 -1
  86. package/lib/components/variableSuggestionInputDropDown/OptionsDropdown.js +7 -5
  87. package/lib/components/variableSuggestionInputDropDown/OptionsDropdown.js.map +1 -1
  88. package/lib/components/variableSuggestionInputDropDown/VariableSuggestionInputDropDown.js +1 -1
  89. package/lib/index.cjs +1158 -254
  90. package/lib/index.cjs.map +1 -1
  91. package/lib/index.d.ts +30 -1
  92. package/lib/node_modules/js-beautify/js/src/css/beautifier.js +1 -1
  93. package/lib/node_modules/js-beautify/js/src/css/options.js +1 -1
  94. package/lib/node_modules/js-beautify/js/src/html/beautifier.js +1 -1
  95. package/lib/node_modules/js-beautify/js/src/html/index.js +1 -1
  96. package/lib/node_modules/js-beautify/js/src/html/options.js +1 -1
  97. package/lib/node_modules/js-beautify/js/src/html/tokenizer.js +1 -1
  98. package/lib/node_modules/js-beautify/js/src/javascript/index.js +1 -1
  99. package/lib/node_modules/js-beautify/js/src/javascript/options.js +1 -1
  100. package/lib/node_modules/js-beautify/js/src/javascript/tokenizer.js +1 -1
  101. package/lib/styles.css +1 -1
  102. package/lib/styles.css.map +1 -1
  103. 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
  {
@@ -40325,23 +40840,56 @@ function reducer(state, action) {
40325
40840
  }
40326
40841
  return state;
40327
40842
  }
40328
- case SET_ROW_HEIGHT:
40843
+ case SET_COLUMN_WIDTH:
40329
40844
  {
40330
40845
  const {
40331
- row,
40332
- height
40846
+ column,
40847
+ width
40333
40848
  } = action.payload;
40334
- const prevDimensions = state.rowDimensions[row] || {
40335
- top: 0};
40849
+ const prevDimensions = state.columnDimensions[column] || {
40850
+ left: 0};
40851
+ // Narrow first
40852
+ if (!state.model.data) {
40853
+ return {
40854
+ ...state,
40855
+ columnDimensions: {
40856
+ ...state.columnDimensions,
40857
+ [column]: {
40858
+ left: prevDimensions.left,
40859
+ width
40860
+ }
40861
+ }
40862
+ };
40863
+ }
40864
+ let updatedData = state.model.data ?? [];
40865
+ for (let r = 0; r < updatedData.length; r++) {
40866
+ if (updatedData[r] && updatedData?.[r]?.length > column) {
40867
+ const point = {
40868
+ row: r,
40869
+ column
40870
+ };
40871
+ const cell = get$1(point, updatedData) ?? EmptyCell;
40872
+ const newCell = {
40873
+ ...cell,
40874
+ style: {
40875
+ ...(cell.style ?? {}),
40876
+ width
40877
+ }
40878
+ };
40879
+ updatedData = set$1(point, newCell, updatedData);
40880
+ }
40881
+ }
40882
+ const updatedModel = new Model(state.model.createFormulaParser, updatedData);
40336
40883
  return {
40337
40884
  ...state,
40338
- rowDimensions: {
40339
- ...state.rowDimensions,
40340
- [row]: {
40341
- top: prevDimensions.top,
40342
- height
40885
+ columnDimensions: {
40886
+ ...state.columnDimensions,
40887
+ [column]: {
40888
+ left: prevDimensions.left,
40889
+ width
40343
40890
  }
40344
- }
40891
+ },
40892
+ model: updatedModel
40345
40893
  };
40346
40894
  }
40347
40895
  case SET_COLUMN_POSITION:
@@ -40479,6 +41027,69 @@ function reducer(state, action) {
40479
41027
  ...commit(changes)
40480
41028
  };
40481
41029
  }
41030
+ case BATCH_RESIZE:
41031
+ {
41032
+ const {
41033
+ rows,
41034
+ columns
41035
+ } = action.payload;
41036
+ const {
41037
+ model,
41038
+ rowDimensions,
41039
+ columnDimensions
41040
+ } = state;
41041
+ let newRowDimensions = {
41042
+ ...rowDimensions
41043
+ };
41044
+ let newColumnDimensions = {
41045
+ ...columnDimensions
41046
+ };
41047
+ // Resize specified rows
41048
+ rows.forEach(row => {
41049
+ const rowData = model.data[row] || [];
41050
+ let maxHeight = 32;
41051
+ rowData.forEach((cell, _colIndex) => {
41052
+ if (cell && cell.value) {
41053
+ const fontSize = cell.style?.fontSize ? parseInt(cell.style.fontSize.toString().replace('px', '')) : 11;
41054
+ const lineHeight = Math.max(fontSize * 1.2, 18);
41055
+ const lines = String(cell.value).split('\n').length;
41056
+ const cellHeight = lineHeight * lines + 10;
41057
+ maxHeight = Math.max(Number(cell?.style?.height) ?? maxHeight, cellHeight);
41058
+ }
41059
+ });
41060
+ newRowDimensions[row] = {
41061
+ ...(newRowDimensions[row] || {
41062
+ top: 0,
41063
+ height: 32
41064
+ }),
41065
+ height: maxHeight
41066
+ };
41067
+ });
41068
+ // Resize specified columns
41069
+ columns.forEach(col => {
41070
+ let maxWidth = 100;
41071
+ model.data.forEach((rowData, _rowIndex) => {
41072
+ const cell = rowData[col];
41073
+ if (cell && cell.value && !['file'].includes(cell?.inputType?.type ?? 'text')) {
41074
+ const font = getFontString(cell);
41075
+ const textWidth = measureText(String(cell.value), font) + 20;
41076
+ maxWidth = Math.max(Number(cell?.style?.width) ?? maxWidth, textWidth);
41077
+ }
41078
+ });
41079
+ newColumnDimensions[col] = {
41080
+ ...(newColumnDimensions[col] || {
41081
+ left: 0,
41082
+ width: 100
41083
+ }),
41084
+ width: maxWidth
41085
+ };
41086
+ });
41087
+ return {
41088
+ ...state,
41089
+ rowDimensions: newRowDimensions,
41090
+ columnDimensions: newColumnDimensions
41091
+ };
41092
+ }
40482
41093
  default:
40483
41094
  throw new Error('Unknown action');
40484
41095
  }
@@ -41831,8 +42442,7 @@ const ColumnIndicator = ({
41831
42442
  const dispatch = useDispatch();
41832
42443
  const excelData = useSelector(state => state.model.data);
41833
42444
  const activeCell = useSelector(state => state.active);
41834
- const minColumnWidth = minimumColumnWidth;
41835
- const columnWidth = useSelector(state => state.columnDimensions[column]?.width || minColumnWidth);
42445
+ const minColumnWidth = minimumColumnWidth ?? 100;
41836
42446
  const matrixData = useSelector(state => state.model.data);
41837
42447
  const {
41838
42448
  columnCount
@@ -41861,6 +42471,7 @@ const ColumnIndicator = ({
41861
42471
  return value;
41862
42472
  });
41863
42473
  };
42474
+ const columnWidth = useSelector(state => state.columnDimensions[column]?.width ?? minColumnWidth);
41864
42475
  const options = React.useMemo(() => {
41865
42476
  const checkVisible = cell?.contextDisable?.['Delete Column'] && isCellDataChanged();
41866
42477
  return [{
@@ -41901,15 +42512,17 @@ const ColumnIndicator = ({
41901
42512
  disable: false
41902
42513
  }] : [])];
41903
42514
  }, [selectedColumn, cell, addColumnLeft, addColumnRight, deleteColumn, minColumnWidth, columnCount, maxColLimit, disableDeleteOption, onAddColumn, onDeleteColumn, column, isCellDataChanged]);
42515
+ const MIN_COLUMN_WIDTH = minimumColumnWidth || 100;
41904
42516
  const onMouseDrag = React__namespace.useCallback((event, isRight) => {
41905
42517
  const getTargetColumn = isRight ? column - 1 : column;
41906
42518
  const targetColumn = Math.max(getTargetColumn, 0);
41907
42519
  onSelect(targetColumn, event.shiftKey);
41908
42520
  const startX = event.clientX;
41909
- const initialWidth = columnWidth;
42521
+ const initialWidth = Number(columnWidth);
41910
42522
  const onMouseMove = moveEvent => {
41911
- const newWidth = Math.max(minColumnWidth, initialWidth + (moveEvent.clientX - startX));
41912
- dispatch(setColumnPosition(targetColumn, newWidth));
42523
+ const delta = moveEvent.clientX - startX;
42524
+ const newWidth = Math.max(MIN_COLUMN_WIDTH, initialWidth + delta);
42525
+ dispatch(setColumnWidth(targetColumn, newWidth));
41913
42526
  };
41914
42527
  const onMouseUp = () => {
41915
42528
  document.removeEventListener('mousemove', onMouseMove);
@@ -41946,9 +42559,6 @@ const ColumnIndicator = ({
41946
42559
  className: classNames('ff-spreadsheet-header', {
41947
42560
  'ff-spreadsheet-header--selected': selected
41948
42561
  }),
41949
- style: {
41950
- minWidth: `${columnWidth}px`
41951
- },
41952
42562
  onClick: handleClick,
41953
42563
  onContextMenu: contextClick,
41954
42564
  tabIndex: 0,
@@ -42074,6 +42684,7 @@ const RowIndicator = ({
42074
42684
  disable: false
42075
42685
  }] : [])];
42076
42686
  }, [selectedRow, row]);
42687
+ const MIN_ROW_HEIGHT = 32;
42077
42688
  const handleMouseDrag = React__namespace.useCallback((event, isUp) => {
42078
42689
  const getTargetRow = isUp ? row : row - 1;
42079
42690
  const targetRow = Math.max(getTargetRow, 0);
@@ -42081,17 +42692,17 @@ const RowIndicator = ({
42081
42692
  const startY = event.clientY;
42082
42693
  const initialHeight = rowHeight;
42083
42694
  const onMouseMove = moveEvent => {
42084
- const newHeight = Math.max(32, initialHeight + (moveEvent.clientY - startY));
42695
+ const delta = moveEvent.clientY - startY;
42696
+ const newHeight = Math.max(MIN_ROW_HEIGHT, initialHeight + delta);
42085
42697
  dispatch(setRowHeight(targetRow, newHeight));
42086
42698
  };
42087
42699
  const onMouseUp = () => {
42088
42700
  document.removeEventListener('mousemove', onMouseMove);
42089
42701
  document.removeEventListener('mouseup', onMouseUp);
42090
- dispatch(dragEnd());
42702
+ dispatch(dragEnd()); // only at end
42091
42703
  };
42092
42704
  document.addEventListener('mousemove', onMouseMove);
42093
42705
  document.addEventListener('mouseup', onMouseUp);
42094
- dispatch(dragEnd());
42095
42706
  }, [rowHeight, row]);
42096
42707
  const activate$1 = React__namespace.useCallback(point => dispatch(activate(point)), [dispatch]);
42097
42708
  const handleClick = React__namespace.useCallback(event => {
@@ -42132,7 +42743,7 @@ const RowIndicator = ({
42132
42743
  }), jsxRuntime.jsx("div", {
42133
42744
  className: "drag-row-selector drag-row-down",
42134
42745
  onMouseDown: e => handleMouseDrag(e, true),
42135
- onDoubleClick: () => dispatch(setRowHeight(row, 32)),
42746
+ onDoubleClick: () => dispatch(setRowHeight(row, rowHeight)),
42136
42747
  onClick: () => activate$1({
42137
42748
  row,
42138
42749
  column: -1
@@ -42140,7 +42751,7 @@ const RowIndicator = ({
42140
42751
  }), jsxRuntime.jsx("div", {
42141
42752
  className: "drag-row-selector drag-row-up",
42142
42753
  onMouseDown: e => handleMouseDrag(e, false),
42143
- onDoubleClick: () => dispatch(setRowHeight(row, 32)),
42754
+ onDoubleClick: () => dispatch(setRowHeight(row, rowHeight)),
42144
42755
  onClick: () => activate$1({
42145
42756
  row,
42146
42757
  column: -1
@@ -42207,13 +42818,14 @@ const Cell = ({
42207
42818
  const root = rootRef.current;
42208
42819
  if (!root) return;
42209
42820
  const updateDimensions = () => {
42821
+ if (dragging) return;
42210
42822
  setCellDimensions(point, getOffsetRect(root));
42211
42823
  };
42212
42824
  updateDimensions();
42213
42825
  const observer = new ResizeObserver(updateDimensions);
42214
42826
  observer.observe(root);
42215
42827
  return () => observer.disconnect();
42216
- }, [setCellDimensions, point]);
42828
+ }, [setCellDimensions, point, dragging]);
42217
42829
  if (data && data.DataViewer) {
42218
42830
  DataViewer = data.DataViewer;
42219
42831
  }
@@ -42354,21 +42966,64 @@ const DataEditor = ({
42354
42966
  }
42355
42967
  });
42356
42968
  }, [onChange, cell]);
42969
+ const handleKeyDown = React__namespace.useCallback(event => {
42970
+ if (event.key === 'Delete' || event.key === 'Backspace') {
42971
+ event.stopPropagation();
42972
+ requestAnimationFrame(() => {
42973
+ if (inputRef.current) {
42974
+ const textarea = inputRef.current;
42975
+ textarea.style.height = 'auto';
42976
+ textarea.style.height = `${textarea.scrollHeight}px`;
42977
+ }
42978
+ });
42979
+ }
42980
+ if (event.key === 'Enter' && event.altKey) {
42981
+ event.preventDefault();
42982
+ event.stopPropagation();
42983
+ const textarea = event.currentTarget;
42984
+ const {
42985
+ selectionStart,
42986
+ selectionEnd,
42987
+ value
42988
+ } = textarea;
42989
+ const newValue = value.substring(0, selectionStart) + '\n' + value.substring(selectionEnd);
42990
+ onChange({
42991
+ ...cell,
42992
+ value: newValue,
42993
+ style: cell?.style,
42994
+ inputType: cell?.inputType ?? {
42995
+ type: 'text'
42996
+ }
42997
+ });
42998
+ requestAnimationFrame(() => {
42999
+ textarea.selectionStart = textarea.selectionEnd = selectionStart + 1;
43000
+ textarea.style.height = 'auto';
43001
+ textarea.style.height = `${textarea.scrollHeight}px`;
43002
+ });
43003
+ }
43004
+ }, [onChange, cell]);
42357
43005
  React__namespace.useEffect(() => {
42358
43006
  if (inputRef.current) {
42359
43007
  moveCursorToEnd(inputRef.current);
42360
43008
  }
42361
- }, [inputRef]);
43009
+ }, []);
42362
43010
  const value = cell?.value ?? '';
42363
43011
  return jsxRuntime.jsx("div", {
42364
43012
  className: "ff-spreadsheet-data-editor",
42365
43013
  children: jsxRuntime.jsx("textarea", {
42366
43014
  className: "ff-spreadsheet-cell-textarea",
42367
43015
  style: {
42368
- ...cell?.style
43016
+ ...cell?.style,
43017
+ width: '100%',
43018
+ height: '100%',
43019
+ borderTop: '',
43020
+ borderBottom: '',
43021
+ borderLeft: '',
43022
+ borderRight: ''
42369
43023
  },
42370
43024
  ref: inputRef,
42371
43025
  onChange: handleChange,
43026
+ onKeyDown: handleKeyDown,
42372
43027
  value: value,
42373
43028
  autoFocus: true,
42374
43029
  disabled: cell?.readOnly
@@ -42837,6 +43492,8 @@ const ActiveCell = props => {
42837
43492
  className: "ff-spreadsheet-cell-textarea",
42838
43493
  style: {
42839
43494
  ...cell?.style,
43495
+ height: '100%',
43496
+ width: '100%',
42840
43497
  textDecoration: cell?.style?.textDecoration === 'underline' ? 'underline' : 'none',
42841
43498
  backgroundColor: isDragged ? '#1e161f00' : cell?.style?.backgroundColor,
42842
43499
  pointerEvents: 'none',
@@ -43068,7 +43725,9 @@ function convertStyleToFrontend(backendStyle) {
43068
43725
  borderBottom: borderBottom,
43069
43726
  borderLeft: borderLeft,
43070
43727
  textAlign: getTextAlignment(backendStyle.alignment.horizontal),
43071
- alignContent: getTextAlignment(backendStyle.alignment.vertical)
43728
+ alignContent: getTextAlignment(backendStyle.alignment.vertical),
43729
+ height: backendStyle.height ?? 32,
43730
+ width: backendStyle.width ?? 150
43072
43731
  };
43073
43732
  }
43074
43733
  const getBorderStyle = border => {
@@ -43104,7 +43763,9 @@ const convertStyleToBackend = frontendStyle => {
43104
43763
  horizontal: getTextAlignmentBack(frontendStyle.textAlign),
43105
43764
  vertical: getTextAlignmentBack(frontendStyle.alignContent),
43106
43765
  wrapText: false
43107
- }
43766
+ },
43767
+ width: frontendStyle.width || 150,
43768
+ height: frontendStyle.height || 32
43108
43769
  };
43109
43770
  };
43110
43771
 
@@ -48278,7 +48939,7 @@ const VariableDropdown = ({
48278
48939
  dropdownPosition,
48279
48940
  position = 'relative',
48280
48941
  width,
48281
- height = '100px',
48942
+ height = '160px',
48282
48943
  zIndex = 9999
48283
48944
  }) => {
48284
48945
  const VARIABLE_ICON_MAP = {
@@ -48308,12 +48969,12 @@ const VariableDropdown = ({
48308
48969
  return 212;
48309
48970
  }
48310
48971
  // Calculate item height based on width type
48311
- const itemHeight = width.endsWith('px') ? 40 : 32;
48972
+ const itemHeight = 32;
48312
48973
  const renderItem = index => {
48313
48974
  const option = optionsList[index];
48314
48975
  if (!option) return null;
48315
48976
  return jsxRuntime.jsx("div", {
48316
- className: width.endsWith('px') ? 'ff-variable-option' : 'ff-variable-data',
48977
+ className: 'ff-variable-data',
48317
48978
  onMouseDown: () => onSelectVariable(option),
48318
48979
  children: width.endsWith('px') ? jsxRuntime.jsxs(jsxRuntime.Fragment, {
48319
48980
  children: [jsxRuntime.jsx(Tooltip, {
@@ -48329,8 +48990,8 @@ const VariableDropdown = ({
48329
48990
  })
48330
48991
  }), jsxRuntime.jsx(Icon, {
48331
48992
  name: getVariableIcon(option),
48332
- height: 16,
48333
- width: 16,
48993
+ height: 24,
48994
+ width: 24,
48334
48995
  hoverEffect: true
48335
48996
  })]
48336
48997
  }) : jsxRuntime.jsx(DynamicWidthTooltip, {
@@ -48355,8 +49016,8 @@ const VariableDropdown = ({
48355
49016
  totalCount: optionsList.length,
48356
49017
  itemContent: renderItem,
48357
49018
  style: {
48358
- height: '100%',
48359
- fontSize: "12px"
49019
+ height,
49020
+ fontSize: '12px'
48360
49021
  },
48361
49022
  overscan: 10,
48362
49023
  fixedItemHeight: itemHeight
@@ -48999,10 +49660,11 @@ const OptionsDropdown$1 = ({
48999
49660
  return jsxRuntime.jsx("div", {
49000
49661
  className: "ff-variable-option",
49001
49662
  onMouseDown: () => onSelectVariable(option),
49002
- children: jsxRuntime.jsx(Typography, {
49003
- as: "span",
49004
- fontSize: 14,
49005
- children: truncateText(option?.name, truncateTextValue)
49663
+ children: jsxRuntime.jsx(Tooltip, {
49664
+ title: isTextTruncated(option?.name, truncateTextValue, 'pixel') ? option?.name : '',
49665
+ children: jsxRuntime.jsx(Typography, {
49666
+ children: truncateText(option?.name, truncateTextValue, 'pixel')
49667
+ })
49006
49668
  })
49007
49669
  }, option?.id);
49008
49670
  }) : jsxRuntime.jsx("div", {
@@ -49028,7 +49690,7 @@ const VariableSuggestionInputDropDown = /*#__PURE__*/React.forwardRef(({
49028
49690
  handleClearInput,
49029
49691
  value = '',
49030
49692
  dropdownWidth = '100%',
49031
- dropdownHeight = '150px',
49693
+ dropdownHeight = '160px',
49032
49694
  isHash = false,
49033
49695
  isOnlyHash = false,
49034
49696
  dataFiles = [],
@@ -49302,7 +49964,8 @@ const CreateVariableSlider = ({
49302
49964
  handleSubmit,
49303
49965
  mode = 'create',
49304
49966
  disabled,
49305
- dataFiles = []
49967
+ dataFiles = [],
49968
+ truncateTextValue = 34
49306
49969
  }) => {
49307
49970
  const [error, setError] = React.useState(false);
49308
49971
  const [helperText, setHelperText] = React.useState('');
@@ -49438,7 +50101,7 @@ const CreateVariableSlider = ({
49438
50101
  isHash: true,
49439
50102
  isOnlyHash: true,
49440
50103
  zIndex: 99999,
49441
- truncateTextValue: 34,
50104
+ truncateTextValue: truncateTextValue,
49442
50105
  dataFiles: dataFiles,
49443
50106
  dropdownWidth: "100%",
49444
50107
  setHashInputValue: setHashInputValue,
@@ -49574,8 +50237,8 @@ const TableWithAccordion = ({
49574
50237
  children: [jsxRuntime.jsx("div", {
49575
50238
  className: "ff-display-flex",
49576
50239
  children: jsxRuntime.jsx(Tooltip, {
49577
- title: row.disable ? row?.disableInfoMessage : '',
49578
- placement: 'bottom-start',
50240
+ title: row.disable ? row?.disableInfoMessage : typeof row.title === 'string' && isTextTruncated(row.title, tableMeta[0]?.width, 'pixel') ? row.title : '',
50241
+ placement: "bottom-start",
49579
50242
  children: jsxRuntime.jsxs("div", {
49580
50243
  className: `accordion-header ${row.disable && 'accordion-header--disabled'}`,
49581
50244
  children: [jsxRuntime.jsx("div", {
@@ -49583,7 +50246,7 @@ const TableWithAccordion = ({
49583
50246
  children: jsxRuntime.jsx("span", {
49584
50247
  children: jsxRuntime.jsx(Typography, {
49585
50248
  children: jsxRuntime.jsx(HighlightText, {
49586
- text: row.title,
50249
+ text: truncateText(row.title, tableMeta[0]?.width, 'pixel'),
49587
50250
  highlight: highlightText
49588
50251
  })
49589
50252
  })
@@ -50062,7 +50725,7 @@ const Prompt = /*#__PURE__*/React.forwardRef(({
50062
50725
  additionalIconName,
50063
50726
  additionIconToolTip,
50064
50727
  onAdditionalIconClick
50065
- }) => {
50728
+ }, ref) => {
50066
50729
  const containerRef = React.useRef(null);
50067
50730
  useKeyboardActions([{
50068
50731
  key: 'Enter',
@@ -50099,6 +50762,7 @@ const Prompt = /*#__PURE__*/React.forwardRef(({
50099
50762
  disabled: checkEmpty(value)
50100
50763
  })
50101
50764
  }), jsxRuntime.jsx("input", {
50765
+ ref: ref,
50102
50766
  className: "ff-prompt-input",
50103
50767
  type: "text",
50104
50768
  placeholder: placeholder,
@@ -63932,11 +64596,13 @@ var jsExports = requireJs();
63932
64596
  const Editor = /*#__PURE__*/React.forwardRef(({
63933
64597
  width = '100%',
63934
64598
  height = '100%',
64599
+ VariableDropdownHeight = '160px',
63935
64600
  readOnly = false,
63936
64601
  value = '',
63937
64602
  handleChange,
63938
64603
  setValue,
63939
64604
  variableOptionsList = [],
64605
+ addForloopPrefix = false,
63940
64606
  language = 'json',
63941
64607
  theme = 'light',
63942
64608
  isRequisiteType = false,
@@ -63986,7 +64652,10 @@ const Editor = /*#__PURE__*/React.forwardRef(({
63986
64652
  varRef.current = columnIndex;
63987
64653
  }
63988
64654
  filterVarRef.current = currentLineContent.slice(varRef.current + 1, columnIndex);
63989
- const filteredVariable = variableOptionsList.filter(e => e?.name.toLowerCase().includes(filterVarRef.current?.toLowerCase()));
64655
+ const filteredVariable = variableOptionsList.filter(e => {
64656
+ const variableName = e.type === '_startforloop' && addForloopPrefix ? `FLV_for:${e.name}` : e.name;
64657
+ return variableName.toLowerCase().includes(filterVarRef.current?.toLowerCase());
64658
+ });
63990
64659
  if (filteredVariable.length) {
63991
64660
  setFilteredVariableOptions(filteredVariable);
63992
64661
  } else {
@@ -64010,7 +64679,7 @@ const Editor = /*#__PURE__*/React.forwardRef(({
64010
64679
  let dropdownTop = top;
64011
64680
  let dropdownLeft = left;
64012
64681
  if (dropdownTop + dropdownHeight > editorHeight - dropdownHeight + 100) {
64013
- dropdownTop -= Math.floor(dropdownHeight / 2) + dropdownHeight + 25;
64682
+ dropdownTop -= Math.floor(dropdownHeight / 2) + dropdownHeight - 25;
64014
64683
  } else {
64015
64684
  dropdownTop -= 5;
64016
64685
  }
@@ -64269,7 +64938,7 @@ const Editor = /*#__PURE__*/React.forwardRef(({
64269
64938
  }), showDropdown && dropdownPosition && showVariableDropdown && jsxRuntime.jsx(VariableDropdown, {
64270
64939
  position: "absolute",
64271
64940
  width: "300px",
64272
- height: "210px",
64941
+ height: VariableDropdownHeight,
64273
64942
  optionsList: filteredVariableOptions,
64274
64943
  onSelectVariable: handleSelectVariable,
64275
64944
  dropdownPosition: dropdownPosition
@@ -66960,7 +67629,10 @@ const OptionsDropdown = ({
66960
67629
  filteredOptions = [],
66961
67630
  position = 'relative',
66962
67631
  width = '300px',
66963
- zIndex = 1000
67632
+ zIndex = 1000,
67633
+ height = '160px',
67634
+ truncateTextValue = 34,
67635
+ isTruncateText = false
66964
67636
  }) => {
66965
67637
  return jsxRuntime.jsxs("div", {
66966
67638
  className: classNames('ff-variable-dropdown', position),
@@ -66972,16 +67644,21 @@ const OptionsDropdown = ({
66972
67644
  } : {
66973
67645
  width,
66974
67646
  zIndex,
66975
- height: '350px'
67647
+ height: height
66976
67648
  },
66977
67649
  children: [filteredOptions?.map(option => {
67650
+ const displayText = isTruncateText ? truncateText(option?.name, truncateTextValue, 'pixel') : option?.name;
67651
+ const shouldShowTooltip = isTruncateText ? isTextTruncated(option?.name, truncateTextValue, 'pixel') : false;
66978
67652
  return jsxRuntime.jsx("div", {
66979
67653
  className: "ff-variable-option",
66980
67654
  onClick: () => onSelectVariable(option),
66981
- children: jsxRuntime.jsx(Typography, {
66982
- as: "span",
66983
- fontSize: 14,
66984
- children: option?.name
67655
+ children: isTruncateText ? jsxRuntime.jsx(Tooltip, {
67656
+ title: shouldShowTooltip ? option?.name : '',
67657
+ children: jsxRuntime.jsx(Typography, {
67658
+ children: displayText
67659
+ })
67660
+ }) : jsxRuntime.jsx(Typography, {
67661
+ children: displayText
66985
67662
  })
66986
67663
  }, option?.id);
66987
67664
  }), filteredOptions?.length === 0 && jsxRuntime.jsx("div", {
@@ -67000,6 +67677,7 @@ const ConditionalDropdown = /*#__PURE__*/React.forwardRef(({
67000
67677
  hashInputValue = '',
67001
67678
  setHashInputValue,
67002
67679
  variableList = [],
67680
+ addForloopPrefix = false,
67003
67681
  placeholder = 'Enter text',
67004
67682
  onChange,
67005
67683
  onCreateVariableClick,
@@ -67019,7 +67697,9 @@ const ConditionalDropdown = /*#__PURE__*/React.forwardRef(({
67019
67697
  onFocus,
67020
67698
  onBlur,
67021
67699
  readOnly = false,
67022
- height = '165px',
67700
+ height = '160px',
67701
+ truncateTextValue = 34,
67702
+ isTruncateText = false,
67023
67703
  ...props
67024
67704
  }, ref) => {
67025
67705
  const [showDropdown, setShowDropdown] = React.useState(false);
@@ -67147,7 +67827,10 @@ const ConditionalDropdown = /*#__PURE__*/React.forwardRef(({
67147
67827
  searchString = '';
67148
67828
  }
67149
67829
  if (searchString) {
67150
- const isInVariableList = variableList.some(file => file.name.toLowerCase().includes(searchString.toLowerCase()));
67830
+ const isInVariableList = variableList.some(file => {
67831
+ const searchableName = file.type === '_startforloop' && addForloopPrefix ? `FLV_for:${file.name}` : file.name;
67832
+ return searchableName.toLowerCase().includes(searchString.toLowerCase());
67833
+ });
67151
67834
  if (!isInVariableList) {
67152
67835
  showDropdown = false;
67153
67836
  searchString = '';
@@ -67216,7 +67899,7 @@ const ConditionalDropdown = /*#__PURE__*/React.forwardRef(({
67216
67899
  className: "ff-password-icon",
67217
67900
  children: jsxRuntime.jsx(Icon, {
67218
67901
  onClick: togglePasswordVisibility,
67219
- name: showPassword ? 'view_icon' : 'hide_icon',
67902
+ name: !showPassword ? 'view_access_icon' : 'hide_access_icon',
67220
67903
  width: 16,
67221
67904
  height: 16,
67222
67905
  hoverEffect: true
@@ -67235,7 +67918,10 @@ const ConditionalDropdown = /*#__PURE__*/React.forwardRef(({
67235
67918
  }), result?.showDropdown && isFocused && jsxRuntime.jsx(VariableDropdown, {
67236
67919
  position: "absolute",
67237
67920
  width: dropdownWidth,
67238
- optionsList: variableList.filter(file => file.name.toLowerCase().includes(result?.searchString.toLowerCase())),
67921
+ optionsList: variableList.filter(file => {
67922
+ const searchableName = file.type === '_startforloop' && addForloopPrefix ? `FLV_for:${file.name}` : file.name;
67923
+ return searchableName.toLowerCase().includes(result?.searchString.toLowerCase());
67924
+ }),
67239
67925
  onSelectVariable: handleDropdownClick,
67240
67926
  height: height
67241
67927
  }), showDropdown && (isHash || onlyDropdown) && jsxRuntime.jsx(OptionsDropdown, {
@@ -67243,7 +67929,10 @@ const ConditionalDropdown = /*#__PURE__*/React.forwardRef(({
67243
67929
  width: dropdownWidth,
67244
67930
  filteredOptions: filteredOptions,
67245
67931
  zIndex: 2000,
67246
- onSelectVariable: handleDropdownClick
67932
+ onSelectVariable: handleDropdownClick,
67933
+ height: height,
67934
+ isTruncateText: isTruncateText,
67935
+ truncateTextValue: truncateTextValue
67247
67936
  })]
67248
67937
  });
67249
67938
  });
@@ -80904,84 +81593,107 @@ const StepGroupAccordions = /*#__PURE__*/React.memo(({
80904
81593
  handleStepGroupExpand,
80905
81594
  isStepGroupExpanded,
80906
81595
  isViewPrivilegeMode,
80907
- columns = []
81596
+ columns = [],
81597
+ parentIndex,
81598
+ updateRowHeight
80908
81599
  }) => {
81600
+ const rowRefs = React.useRef([]);
80909
81601
  const typeSet = new Set(['Group', 'PRE', 'POST', 'Script']);
80910
81602
  const getPadding = type => typeSet.has(type) ? '6px 8px' : '7px 8px';
80911
81603
  const indent = level + 8;
81604
+ // Measure and report height when expanded
81605
+ React.useEffect(() => {
81606
+ if (!updateRowHeight) return;
81607
+ let totalHeight = 0;
81608
+ rowRefs.current.forEach(ref => {
81609
+ if (ref) {
81610
+ totalHeight += ref.getBoundingClientRect().height;
81611
+ }
81612
+ });
81613
+ if (totalHeight > 0) {
81614
+ updateRowHeight(parentIndex ?? 0, totalHeight);
81615
+ }
81616
+ }, [data, updateRowHeight, parentIndex, isStepGroupExpanded]);
80912
81617
  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",
81618
+ children: data?.map((item, itemIndex) => {
81619
+ const absoluteIndex = parentIndex ?? 0 + itemIndex + 1;
81620
+ return jsxRuntime.jsxs(React.Fragment, {
81621
+ children: [viewModeId === item?.stepId ? jsxRuntime.jsx("tr", {
81622
+ ref: el => rowRefs.current[itemIndex] = el,
81623
+ className: "steps-edit-row",
81624
+ id: "getInFocus",
81625
+ children: jsxRuntime.jsx("td", {
81626
+ colSpan: columnCount,
81627
+ children: jsxRuntime.jsx("div", {
80937
81628
  style: {
80938
- marginLeft: idx === 0 ? `${indent}px` : 0
80939
- },
80940
- onClick: () => {
80941
- const isClickable = idx === 0 && !item?.displayName?.includes('End') && !item?.isDisabled;
80942
- if (isClickable) handleClick?.({
80943
- ...item,
80944
- tableType
80945
- });
81629
+ marginLeft: `${indent}px`
80946
81630
  },
80947
- children: [!isViewPrivilegeMode && idx === 0 && jsxRuntime.jsx("div", {
81631
+ children: ViewComponent && jsxRuntime.jsx(ViewComponent, {})
81632
+ })
81633
+ })
81634
+ }) : jsxRuntime.jsx("tr", {
81635
+ ref: el => rowRefs.current[itemIndex] = el,
81636
+ children: columns.map((col, idx) => jsxRuntime.jsx("td", {
81637
+ style: {
81638
+ maxWidth: col.width,
81639
+ padding: getPadding(item.type)
81640
+ },
81641
+ children: jsxRuntime.jsxs(Typography, {
81642
+ as: "div",
81643
+ className: "ff-data-checkbox-container",
81644
+ children: [jsxRuntime.jsxs("div", {
81645
+ className: "ff-data-checkbox-container-content",
80948
81646
  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?.({
81647
+ marginLeft: idx === 0 ? `${indent}px` : 0
81648
+ },
81649
+ onClick: () => {
81650
+ const isClickable = idx === 0 && !item?.displayName?.includes('End') && !item?.isDisabled;
81651
+ if (isClickable) handleClick?.({
81652
+ ...item,
81653
+ tableType
81654
+ });
81655
+ },
81656
+ children: [!isViewPrivilegeMode && idx === 0 && jsxRuntime.jsx("div", {
81657
+ style: {
81658
+ padding: '4px 18px'
81659
+ }
81660
+ }), prepareData({
80964
81661
  ...item,
80965
- tableType
81662
+ marginLeft: indent
81663
+ }, col)]
81664
+ }), idx === 0 && ['Group', 'PRE', 'POST', 'Script'].includes(item.type) && jsxRuntime.jsx("div", {
81665
+ className: `ff-accordion-arrow ${isStepGroupExpanded?.(item.stepId) ? 'expanded' : ''}`,
81666
+ children: jsxRuntime.jsx(Icon, {
81667
+ name: "arrow_right",
81668
+ color: isStepGroupExpanded?.(item.stepId) ? 'var(--brand-color)' : 'var(--default-color)',
81669
+ className: "steps-arrow-svg",
81670
+ width: 12,
81671
+ height: 12,
81672
+ onClick: () => handleStepGroupExpand?.({
81673
+ ...item,
81674
+ tableType
81675
+ })
80966
81676
  })
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))
81677
+ })]
81678
+ })
81679
+ }, `${item.stepId}-${idx}`))
81680
+ }), isStepGroupExpanded?.(item.stepId) && jsxRuntime.jsx(StepGroupAccordions, {
81681
+ data: item.data,
81682
+ level: indent,
81683
+ columnCount: columnCount,
81684
+ viewModeId: viewModeId,
81685
+ ViewComponent: ViewComponent,
81686
+ handleClick: handleClick,
81687
+ tableType: tableType,
81688
+ handleStepGroupExpand: handleStepGroupExpand,
81689
+ isStepGroupExpanded: isStepGroupExpanded,
81690
+ isViewPrivilegeMode: isViewPrivilegeMode,
81691
+ columns: columns,
81692
+ parentIndex: absoluteIndex,
81693
+ updateRowHeight: updateRowHeight
81694
+ })]
81695
+ }, item.stepId);
81696
+ })
80985
81697
  });
80986
81698
  });
80987
81699
  StepGroupAccordions.displayName = 'StepGroupAccordions';
@@ -81006,8 +81718,11 @@ const StepTableMainRow = ({
81006
81718
  dataLength,
81007
81719
  stepPartialSelect,
81008
81720
  isViewPrivilegeMode,
81009
- isClientSide
81721
+ isClientSide,
81722
+ updateRowHeight,
81723
+ rowId
81010
81724
  }) => {
81725
+ const rowRef = React.useRef(null);
81011
81726
  const isDisabled = React.useMemo(() => row?.isDisabled || (dataLength ?? 0) <= 1 || row.isSpecialNlp, [row, dataLength]);
81012
81727
  let serialNumber = (indexNumber + 1).toString();
81013
81728
  const {
@@ -81025,6 +81740,13 @@ const StepTableMainRow = ({
81025
81740
  transition
81026
81741
  }), [transform, transition]);
81027
81742
  const key = row?._id || row?.stepId;
81743
+ // Measure row height and report to parent
81744
+ React.useEffect(() => {
81745
+ if (rowRef.current && updateRowHeight) {
81746
+ const height = rowRef.current.getBoundingClientRect().height;
81747
+ updateRowHeight(indexNumber, height);
81748
+ }
81749
+ }, [row, updateRowHeight, indexNumber, isStepGroupExpanded?.(row?.stepId)]);
81028
81750
  const getPadding = index => {
81029
81751
  if (isViewPrivilegeMode || isClientSide) {
81030
81752
  if (['Group', 'PRE', 'POST', 'Script'].includes(row.type) && index === 0) {
@@ -81075,7 +81797,11 @@ const StepTableMainRow = ({
81075
81797
  });
81076
81798
  return jsxRuntime.jsxs(jsxRuntime.Fragment, {
81077
81799
  children: [jsxRuntime.jsx("tr", {
81078
- ref: setNodeRef,
81800
+ "data-rowid": rowId,
81801
+ ref: el => {
81802
+ rowRef.current = el;
81803
+ setNodeRef(el);
81804
+ },
81079
81805
  style: style,
81080
81806
  className: classNames(tableBodyRowClass, {
81081
81807
  'disabled-inner-row': isDisabled
@@ -81119,7 +81845,9 @@ const StepTableMainRow = ({
81119
81845
  isStepGroupExpanded: isStepGroupExpanded,
81120
81846
  level: row?.marginLeft,
81121
81847
  isViewPrivilegeMode: isViewPrivilegeMode,
81122
- columns: columns
81848
+ columns: columns,
81849
+ parentIndex: indexNumber,
81850
+ updateRowHeight: updateRowHeight
81123
81851
  })]
81124
81852
  });
81125
81853
  };
@@ -81156,14 +81884,156 @@ const StepInnerTable = ({
81156
81884
  isStepGroupExpanded,
81157
81885
  stepPartialSelect,
81158
81886
  isViewPrivilegeMode,
81159
- isClientSide
81887
+ isClientSide,
81888
+ highlightKey,
81889
+ onHighlightComplete
81160
81890
  }) => {
81161
81891
  const observerRef = React.useRef(null);
81892
+ const containerRef = React.useRef(null);
81893
+ const [scrollTop, setScrollTop] = React.useState(0);
81894
+ const [containerHeight, setContainerHeight] = React.useState(0);
81895
+ const [rowHeights, setRowHeights] = React.useState([]);
81896
+ const [focusRowId, setFocusRowId] = React.useState(null);
81897
+ const buffer = 5;
81898
+ const estimatedRowHeight = 50;
81899
+ const scrollTopBeforeReset = React.useRef(0); // Add this ref
81162
81900
  React.useEffect(() => {
81163
- const scrollContainer = document.getElementById('ff-table-scroll-container');
81901
+ if (containerRef.current) {
81902
+ setContainerHeight(containerRef.current.clientHeight);
81903
+ }
81904
+ const fullData = appendNewRow(data, AddNlp ?? {});
81905
+ setRowHeights(prev => {
81906
+ const next = [...prev];
81907
+ while (next.length < fullData.length) next.push(estimatedRowHeight);
81908
+ if (next.length > fullData.length) next.length = fullData.length;
81909
+ return next;
81910
+ });
81911
+ }, [data, AddNlp]);
81912
+ React.useEffect(() => {
81913
+ if (scrollTopBeforeReset.current > 0 && containerRef.current) {
81914
+ containerRef.current.scrollTop = scrollTopBeforeReset.current;
81915
+ scrollTopBeforeReset.current = 0;
81916
+ }
81917
+ }, [rowHeights]);
81918
+ // Track focus row for edit/new rows
81919
+ React.useEffect(() => {
81920
+ // Prioritize highlightKey over other states
81921
+ if (!checkEmpty(highlightKey)) {
81922
+ setFocusRowId(highlightKey);
81923
+ } else if (editMode) {
81924
+ setFocusRowId(editMode);
81925
+ } else if (AddNlp && Object.keys(AddNlp).length > 0) {
81926
+ const newRow = appendNewRow(data, AddNlp).find(row => row.isNew);
81927
+ if (newRow) {
81928
+ setFocusRowId(newRow.stepId || 'new-row');
81929
+ }
81930
+ } else {
81931
+ setFocusRowId(null);
81932
+ }
81933
+ }, [editMode, AddNlp, data, highlightKey]);
81934
+ // Update scroll effect
81935
+ React.useEffect(() => {
81936
+ if (focusRowId && containerRef.current) {
81937
+ const timer = setTimeout(() => {
81938
+ const focusElement = containerRef.current?.querySelector(`[data-rowid="${focusRowId}"]`);
81939
+ if (focusElement) {
81940
+ focusElement.scrollIntoView({
81941
+ behavior: 'smooth',
81942
+ block: 'nearest'
81943
+ });
81944
+ // ADD THIS: Reset highlight after scroll completes
81945
+ setTimeout(() => {
81946
+ if (!checkEmpty(highlightKey)) {
81947
+ onHighlightComplete?.();
81948
+ }
81949
+ }, 300); // Match scroll duration
81950
+ }
81951
+ }, 100);
81952
+ return () => clearTimeout(timer);
81953
+ }
81954
+ return undefined;
81955
+ }, [focusRowId, rowHeights, highlightKey, onHighlightComplete]);
81956
+ // Handle scroll
81957
+ const handleScroll = e => {
81958
+ setScrollTop(e.currentTarget.scrollTop);
81959
+ };
81960
+ // Update row height callback
81961
+ const updateRowHeight = React.useCallback((index, height) => {
81962
+ setRowHeights(prev => {
81963
+ const newHeights = [...prev];
81964
+ if (index < newHeights.length && newHeights[index] !== height) {
81965
+ newHeights[index] = height;
81966
+ return newHeights;
81967
+ }
81968
+ return prev;
81969
+ });
81970
+ }, []);
81971
+ // Calculate visible rows
81972
+ const fullData = appendNewRow(data, AddNlp ?? {});
81973
+ const totalRows = fullData.length;
81974
+ let startIndex = 0;
81975
+ let endIndex = totalRows - 1;
81976
+ let paddingTop = 0;
81977
+ let paddingBottom = 0;
81978
+ if (rowHeights.length === totalRows && containerHeight > 0) {
81979
+ let cumulativeHeight = 0;
81980
+ // Find start index
81981
+ for (let i = 0; i < totalRows; i++) {
81982
+ if (cumulativeHeight <= scrollTop) {
81983
+ startIndex = i;
81984
+ }
81985
+ cumulativeHeight += rowHeights[i] ?? 0;
81986
+ }
81987
+ // Find end index
81988
+ cumulativeHeight = 0;
81989
+ for (let i = 0; i < totalRows; i++) {
81990
+ cumulativeHeight += rowHeights[i] ?? 0;
81991
+ if (cumulativeHeight >= scrollTop + containerHeight && endIndex === totalRows - 1) {
81992
+ endIndex = i;
81993
+ break;
81994
+ }
81995
+ }
81996
+ // Apply buffer
81997
+ startIndex = Math.max(0, startIndex - buffer);
81998
+ endIndex = Math.min(totalRows - 1, endIndex + buffer);
81999
+ // Expand range to include focus row if needed
82000
+ if (focusRowId) {
82001
+ const focusIndex = fullData.findIndex(row => row.stepId === focusRowId || row.isNew && focusRowId === 'new-row');
82002
+ if (focusIndex >= 0) {
82003
+ if (focusIndex < startIndex) {
82004
+ startIndex = focusIndex;
82005
+ } else if (focusIndex > endIndex) {
82006
+ endIndex = focusIndex;
82007
+ }
82008
+ }
82009
+ }
82010
+ // Calculate padding
82011
+ paddingTop = rowHeights.slice(0, startIndex).reduce((sum, height) => sum + height, 0);
82012
+ paddingBottom = rowHeights.slice(endIndex + 1).reduce((sum, height) => sum + height, 0);
82013
+ } else {
82014
+ // Fallback to estimated virtualization
82015
+ startIndex = Math.max(0, Math.floor(scrollTop / estimatedRowHeight) - buffer);
82016
+ endIndex = Math.min(totalRows - 1, startIndex + Math.ceil(containerHeight / estimatedRowHeight) + buffer);
82017
+ // Expand range to include focus row if needed
82018
+ if (focusRowId) {
82019
+ const focusIndex = fullData.findIndex(row => row.stepId === focusRowId || row.isNew && focusRowId === 'new-row');
82020
+ if (focusIndex >= 0) {
82021
+ if (focusIndex < startIndex) {
82022
+ startIndex = focusIndex;
82023
+ } else if (focusIndex > endIndex) {
82024
+ endIndex = focusIndex;
82025
+ }
82026
+ }
82027
+ }
82028
+ paddingTop = startIndex * estimatedRowHeight;
82029
+ paddingBottom = (totalRows - endIndex - 1) * estimatedRowHeight;
82030
+ }
82031
+ const visibleRows = fullData.slice(startIndex, endIndex + 1);
82032
+ // Infinite scroll observer
82033
+ React.useEffect(() => {
82034
+ const scrollContainer = containerRef.current;
81164
82035
  const firstNode = document.getElementById('ff-table-first-node');
81165
82036
  const lastNode = document.getElementById('ff-table-last-node');
81166
- // Exit early if data is empty or elements are missing
81167
82037
  if (!scrollContainer || !firstNode || !lastNode || !data?.length) {
81168
82038
  return;
81169
82039
  }
@@ -81182,7 +82052,6 @@ const StepInnerTable = ({
81182
82052
  observerRef.current.observe(firstNode);
81183
82053
  observerRef.current.observe(lastNode);
81184
82054
  return () => {
81185
- // Cleanup observer
81186
82055
  observerRef.current?.disconnect();
81187
82056
  };
81188
82057
  }, [data, loadMore]);
@@ -81221,15 +82090,18 @@ const StepInnerTable = ({
81221
82090
  items: data?.map(row => row._id || row.stepId),
81222
82091
  strategy: verticalListSortingStrategy,
81223
82092
  children: jsxRuntime.jsxs("div", {
82093
+ ref: containerRef,
81224
82094
  style: {
81225
82095
  height: height,
81226
- position: 'relative'
82096
+ position: 'relative',
82097
+ overflow: 'auto'
81227
82098
  },
81228
82099
  id: "ff-table-scroll-container",
81229
82100
  className: classNames(className, {
81230
82101
  'ff-fixed-header-steps-table': withFixedHeader,
81231
82102
  'steps-border-borderRadius': borderWithRadius
81232
82103
  }),
82104
+ onScroll: handleScroll,
81233
82105
  children: [jsxRuntime.jsxs("table", {
81234
82106
  className: classNames(`ff-table-steps`),
81235
82107
  cellSpacing: 0,
@@ -81246,30 +82118,45 @@ const StepInnerTable = ({
81246
82118
  }), jsxRuntime.jsxs("tbody", {
81247
82119
  className: "ff-steps-tbody",
81248
82120
  children: [jsxRuntime.jsx("tr", {
81249
- id: "ff-table-first-node"
81250
- }), appendNewRow(data, AddNlp ?? {})?.map((row, index) => {
82121
+ id: "ff-table-first-node",
82122
+ style: {
82123
+ display: 'none'
82124
+ }
82125
+ }), paddingTop > 0 && jsxRuntime.jsx("tr", {
82126
+ children: jsxRuntime.jsx("td", {
82127
+ style: {
82128
+ height: paddingTop,
82129
+ padding: 0
82130
+ },
82131
+ colSpan: columns.length
82132
+ })
82133
+ }), visibleRows.map((row, index) => {
82134
+ const absoluteIndex = startIndex + index;
81251
82135
  const isEdit = editMode === row.stepId;
81252
82136
  const isEditOrNew = isEdit || row.isNew;
82137
+ const isFocusRow = isEdit && row.stepId === focusRowId || row.isNew && focusRowId === 'new-row';
81253
82138
  const renderEditableRow = () => jsxRuntime.jsxs("tr", {
81254
82139
  className: "steps-edit-row",
81255
- id: "getInFocus",
82140
+ id: isFocusRow ? 'getInFocus' : undefined,
82141
+ "data-rowid": row.stepId || 'new-row',
81256
82142
  children: [isEdit && /*#__PURE__*/React.isValidElement(editComponent) && jsxRuntime.jsx("td", {
81257
82143
  colSpan: columns.length,
81258
82144
  children: /*#__PURE__*/React.cloneElement(editComponent, {
81259
82145
  rowData: row,
81260
- rowIndex: index + 1
82146
+ rowIndex: absoluteIndex + 1
81261
82147
  })
81262
82148
  }), row.isNew && !isEdit && /*#__PURE__*/React.isValidElement(NlpComponent) && jsxRuntime.jsx("td", {
81263
82149
  colSpan: columns.length,
81264
82150
  children: /*#__PURE__*/React.cloneElement(NlpComponent, {
81265
- rowIndex: index,
82151
+ rowIndex: absoluteIndex,
81266
82152
  rowData: row
81267
82153
  })
81268
82154
  })]
81269
- }, row.stepId || index);
82155
+ }, row.stepId || absoluteIndex);
81270
82156
  const renderSortableRow = () => jsxRuntime.jsx(StepTableMainRow$1, {
82157
+ rowId: row.stepId,
81271
82158
  row: row,
81272
- indexNumber: index,
82159
+ indexNumber: absoluteIndex,
81273
82160
  columns: columns,
81274
82161
  tableBodyRowClass: tableBodyRowClass,
81275
82162
  handleOnclick: handleOnclick,
@@ -81287,11 +82174,23 @@ const StepInnerTable = ({
81287
82174
  dataLength: data?.length,
81288
82175
  stepPartialSelect: stepPartialSelect,
81289
82176
  isViewPrivilegeMode: isViewPrivilegeMode,
81290
- isClientSide: isClientSide
82177
+ isClientSide: isClientSide,
82178
+ updateRowHeight: updateRowHeight
81291
82179
  });
81292
82180
  return isEditOrNew ? renderEditableRow() : renderSortableRow();
82181
+ }), paddingBottom > 0 && jsxRuntime.jsx("tr", {
82182
+ children: jsxRuntime.jsx("td", {
82183
+ style: {
82184
+ height: paddingBottom,
82185
+ padding: 0
82186
+ },
82187
+ colSpan: columns.length
82188
+ })
81293
82189
  }), jsxRuntime.jsx("tr", {
81294
- id: "ff-table-last-node"
82190
+ id: "ff-table-last-node",
82191
+ style: {
82192
+ display: 'none'
82193
+ }
81295
82194
  })]
81296
82195
  })]
81297
82196
  }), data?.length <= 0 && jsxRuntime.jsx("div", {
@@ -81878,7 +82777,9 @@ const StepLandingTable = /*#__PURE__*/React.forwardRef(({
81878
82777
  isViewPrivilegeMode = false,
81879
82778
  defaultExpanded = 'Steps',
81880
82779
  isHeaderRequired = true,
81881
- isClientSide = false
82780
+ isClientSide = false,
82781
+ highlightKey,
82782
+ onHighlightComplete
81882
82783
  }, ref) => {
81883
82784
  const [ViewComponent, setViewComponent] = React.useState(null);
81884
82785
  const [viewModeId, setViewModeId] = React.useState(null);
@@ -81986,6 +82887,8 @@ const StepLandingTable = /*#__PURE__*/React.forwardRef(({
81986
82887
  const getAccordionTableContent = rows => {
81987
82888
  if (rows.title === 'Steps' && !isViewPrivilegeMode) {
81988
82889
  return jsxRuntime.jsx(StepInnerTable, {
82890
+ onHighlightComplete: onHighlightComplete,
82891
+ highlightKey: highlightKey,
81989
82892
  draggable: true,
81990
82893
  columns: tableMeta,
81991
82894
  onDragEnd: onDragEnd,
@@ -82015,6 +82918,8 @@ const StepLandingTable = /*#__PURE__*/React.forwardRef(({
82015
82918
  });
82016
82919
  } else {
82017
82920
  return jsxRuntime.jsx(StepInnerTable, {
82921
+ onHighlightComplete: onHighlightComplete,
82922
+ highlightKey: highlightKey,
82018
82923
  editMode: editMode,
82019
82924
  withCheckbox: !isViewPrivilegeMode,
82020
82925
  editComponent: editComponent,
@@ -82058,7 +82963,6 @@ const StepLandingTable = /*#__PURE__*/React.forwardRef(({
82058
82963
  }
82059
82964
  }));
82060
82965
  React.useEffect(() => {
82061
- scrollToView('getInFocus');
82062
82966
  if (!checkEmpty(AddNlp)) {
82063
82967
  setViewComponent(() => null);
82064
82968
  setViewModeId(null);