@bikdotai/bik-component-library 0.0.850-tools-beta.0 → 0.0.850

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 (133) hide show
  1. package/dist/cjs/assets/icons/ShipStation.svg.js +1 -1
  2. package/dist/cjs/assets/icons/ShipStation.svg.js.map +1 -1
  3. package/dist/cjs/components/agent-builder/AgentBuilder.styled.js +40 -22
  4. package/dist/cjs/components/agent-builder/AgentBuilder.styled.js.map +1 -1
  5. package/dist/cjs/components/agent-builder/components/ConfigToolPanel.js +1 -1
  6. package/dist/cjs/components/agent-builder/components/ConfigToolPanel.js.map +1 -1
  7. package/dist/cjs/components/agent-builder/components/CreateSubAgentPanel.js +5 -5
  8. package/dist/cjs/components/agent-builder/components/CreateSubAgentPanel.js.map +1 -1
  9. package/dist/cjs/components/agent-builder/components/DiscardModal.js +1 -1
  10. package/dist/cjs/components/agent-builder/components/DiscardModal.js.map +1 -1
  11. package/dist/cjs/components/agent-builder/components/GoLiveModal.js +1 -1
  12. package/dist/cjs/components/agent-builder/components/GoLiveModal.js.map +1 -1
  13. package/dist/cjs/components/agent-builder/components/MentionEditor.js +1 -1
  14. package/dist/cjs/components/agent-builder/components/MentionEditor.js.map +1 -1
  15. package/dist/cjs/components/agent-builder/components/MentionPicker.js +32 -24
  16. package/dist/cjs/components/agent-builder/components/MentionPicker.js.map +1 -1
  17. package/dist/cjs/components/agent-builder/components/RequireVerificationModal.js +1 -1
  18. package/dist/cjs/components/agent-builder/components/RequireVerificationModal.js.map +1 -1
  19. package/dist/cjs/components/agent-builder/components/RestApiToolPanel.js +4 -4
  20. package/dist/cjs/components/agent-builder/components/RestApiToolPanel.js.map +1 -1
  21. package/dist/cjs/components/agent-builder/components/SelectableListSection.js +2 -2
  22. package/dist/cjs/components/agent-builder/components/SelectableListSection.js.map +1 -1
  23. package/dist/cjs/components/agent-builder/constants/tools.js +1 -1
  24. package/dist/cjs/components/agent-builder/constants/tools.js.map +1 -1
  25. package/dist/cjs/components/agent-builder/context/AgentBuilderContext.js +1 -1
  26. package/dist/cjs/components/agent-builder/context/AgentBuilderContext.js.map +1 -1
  27. package/dist/cjs/components/agent-builder/steps/Step3HowItResponds.js +1 -1
  28. package/dist/cjs/components/agent-builder/steps/Step3HowItResponds.js.map +1 -1
  29. package/dist/cjs/components/agent-builder/utils/mentionSerialization.js +2 -2
  30. package/dist/cjs/components/agent-builder/utils/mentionSerialization.js.map +1 -1
  31. package/dist/cjs/components/agent-builder/utils/sourceIcons.js +1 -1
  32. package/dist/cjs/components/agent-builder/utils/sourceIcons.js.map +1 -1
  33. package/dist/cjs/components/agent-listing/AgentListing.js +1 -1
  34. package/dist/cjs/components/agent-listing/AgentListing.js.map +1 -1
  35. package/dist/cjs/components/agent-listing/AgentTable.js +1 -1
  36. package/dist/cjs/components/agent-listing/AgentTable.js.map +1 -1
  37. package/dist/cjs/components/agent-listing/AgentTableRow.js +1 -1
  38. package/dist/cjs/components/agent-listing/AgentTableRow.js.map +1 -1
  39. package/dist/cjs/components/agent-listing/AiAgentsEmptyState.js +2 -0
  40. package/dist/cjs/components/agent-listing/AiAgentsEmptyState.js.map +1 -0
  41. package/dist/cjs/editor/BikEditor.js +1 -1
  42. package/dist/cjs/editor/BikEditor.js.map +1 -1
  43. package/dist/cjs/editor/BikEditor.styles.js +21 -16
  44. package/dist/cjs/editor/BikEditor.styles.js.map +1 -1
  45. package/dist/cjs/editor/BikEditor.types.js.map +1 -1
  46. package/dist/cjs/editor/extensions/buildExtensions.js +2 -2
  47. package/dist/cjs/editor/extensions/buildExtensions.js.map +1 -1
  48. package/dist/cjs/editor/extensions/characterLimit/CharacterLimitExtension.js +3 -3
  49. package/dist/cjs/editor/extensions/characterLimit/CharacterLimitExtension.js.map +1 -1
  50. package/dist/cjs/editor/extensions/mention/MentionChipNodeView.js +2 -0
  51. package/dist/cjs/editor/extensions/mention/MentionChipNodeView.js.map +1 -0
  52. package/dist/cjs/editor/extensions/mention/MentionExtension.js +1 -1
  53. package/dist/cjs/editor/extensions/mention/MentionExtension.js.map +1 -1
  54. package/dist/cjs/icons/Informational/Common UI/ShieldOutline.js +2 -0
  55. package/dist/cjs/icons/Informational/Common UI/ShieldOutline.js.map +1 -0
  56. package/dist/cjs/icons/index.js +1 -1
  57. package/dist/esm/assets/icons/ShipStation.svg.js +2 -2
  58. package/dist/esm/assets/icons/ShipStation.svg.js.map +1 -1
  59. package/dist/esm/components/agent-builder/AgentBuilder.styled.d.ts +3 -0
  60. package/dist/esm/components/agent-builder/AgentBuilder.styled.js +61 -42
  61. package/dist/esm/components/agent-builder/AgentBuilder.styled.js.map +1 -1
  62. package/dist/esm/components/agent-builder/components/ConfigToolPanel.js +1 -1
  63. package/dist/esm/components/agent-builder/components/ConfigToolPanel.js.map +1 -1
  64. package/dist/esm/components/agent-builder/components/CreateSubAgentPanel.d.ts +5 -0
  65. package/dist/esm/components/agent-builder/components/CreateSubAgentPanel.js +243 -227
  66. package/dist/esm/components/agent-builder/components/CreateSubAgentPanel.js.map +1 -1
  67. package/dist/esm/components/agent-builder/components/DiscardModal.js +57 -49
  68. package/dist/esm/components/agent-builder/components/DiscardModal.js.map +1 -1
  69. package/dist/esm/components/agent-builder/components/GoLiveModal.js +26 -22
  70. package/dist/esm/components/agent-builder/components/GoLiveModal.js.map +1 -1
  71. package/dist/esm/components/agent-builder/components/MentionEditor.d.ts +1 -1
  72. package/dist/esm/components/agent-builder/components/MentionEditor.js +93 -77
  73. package/dist/esm/components/agent-builder/components/MentionEditor.js.map +1 -1
  74. package/dist/esm/components/agent-builder/components/MentionPicker.js +194 -168
  75. package/dist/esm/components/agent-builder/components/MentionPicker.js.map +1 -1
  76. package/dist/esm/components/agent-builder/components/RequireVerificationModal.js +5 -5
  77. package/dist/esm/components/agent-builder/components/RequireVerificationModal.js.map +1 -1
  78. package/dist/esm/components/agent-builder/components/RestApiToolPanel.js +118 -109
  79. package/dist/esm/components/agent-builder/components/RestApiToolPanel.js.map +1 -1
  80. package/dist/esm/components/agent-builder/components/SelectableListSection.js +149 -133
  81. package/dist/esm/components/agent-builder/components/SelectableListSection.js.map +1 -1
  82. package/dist/esm/components/agent-builder/constants/tools.d.ts +9 -11
  83. package/dist/esm/components/agent-builder/constants/tools.js +24 -21
  84. package/dist/esm/components/agent-builder/constants/tools.js.map +1 -1
  85. package/dist/esm/components/agent-builder/context/AgentBuilderContext.d.ts +6 -2
  86. package/dist/esm/components/agent-builder/context/AgentBuilderContext.js +46 -43
  87. package/dist/esm/components/agent-builder/context/AgentBuilderContext.js.map +1 -1
  88. package/dist/esm/components/agent-builder/steps/Step3HowItResponds.js +209 -183
  89. package/dist/esm/components/agent-builder/steps/Step3HowItResponds.js.map +1 -1
  90. package/dist/esm/components/agent-builder/utils/mentionSerialization.d.ts +3 -2
  91. package/dist/esm/components/agent-builder/utils/mentionSerialization.js +24 -19
  92. package/dist/esm/components/agent-builder/utils/mentionSerialization.js.map +1 -1
  93. package/dist/esm/components/agent-builder/utils/sourceIcons.d.ts +9 -1
  94. package/dist/esm/components/agent-builder/utils/sourceIcons.js +15 -9
  95. package/dist/esm/components/agent-builder/utils/sourceIcons.js.map +1 -1
  96. package/dist/esm/components/agent-listing/AgentListing.js +79 -83
  97. package/dist/esm/components/agent-listing/AgentListing.js.map +1 -1
  98. package/dist/esm/components/agent-listing/AgentListing.model.d.ts +6 -0
  99. package/dist/esm/components/agent-listing/AgentTable.d.ts +2 -0
  100. package/dist/esm/components/agent-listing/AgentTable.js +29 -27
  101. package/dist/esm/components/agent-listing/AgentTable.js.map +1 -1
  102. package/dist/esm/components/agent-listing/AgentTableRow.d.ts +2 -0
  103. package/dist/esm/components/agent-listing/AgentTableRow.js +51 -37
  104. package/dist/esm/components/agent-listing/AgentTableRow.js.map +1 -1
  105. package/dist/esm/components/agent-listing/AiAgentsEmptyState.d.ts +22 -0
  106. package/dist/esm/components/agent-listing/AiAgentsEmptyState.js +22 -0
  107. package/dist/esm/components/agent-listing/AiAgentsEmptyState.js.map +1 -0
  108. package/dist/esm/editor/BikEditor.js +129 -126
  109. package/dist/esm/editor/BikEditor.js.map +1 -1
  110. package/dist/esm/editor/BikEditor.styles.js +24 -19
  111. package/dist/esm/editor/BikEditor.styles.js.map +1 -1
  112. package/dist/esm/editor/BikEditor.types.d.ts +17 -0
  113. package/dist/esm/editor/BikEditor.types.js.map +1 -1
  114. package/dist/esm/editor/extensions/buildExtensions.d.ts +7 -0
  115. package/dist/esm/editor/extensions/buildExtensions.js +30 -24
  116. package/dist/esm/editor/extensions/buildExtensions.js.map +1 -1
  117. package/dist/esm/editor/extensions/characterLimit/CharacterLimitExtension.d.ts +20 -3
  118. package/dist/esm/editor/extensions/characterLimit/CharacterLimitExtension.js +40 -25
  119. package/dist/esm/editor/extensions/characterLimit/CharacterLimitExtension.js.map +1 -1
  120. package/dist/esm/editor/extensions/mention/MentionChipNodeView.d.ts +17 -0
  121. package/dist/esm/editor/extensions/mention/MentionChipNodeView.js +39 -0
  122. package/dist/esm/editor/extensions/mention/MentionChipNodeView.js.map +1 -0
  123. package/dist/esm/editor/extensions/mention/MentionExtension.d.ts +1 -1
  124. package/dist/esm/editor/extensions/mention/MentionExtension.js +67 -45
  125. package/dist/esm/editor/extensions/mention/MentionExtension.js.map +1 -1
  126. package/dist/esm/icons/Informational/Common UI/ShieldOutline.d.ts +7 -0
  127. package/dist/esm/icons/Informational/Common UI/ShieldOutline.js +35 -0
  128. package/dist/esm/icons/Informational/Common UI/ShieldOutline.js.map +1 -0
  129. package/dist/esm/icons/Informational/Common UI/index.d.ts +1 -0
  130. package/dist/esm/icons/index.d.ts +25 -25
  131. package/dist/esm/icons/index.js +172 -170
  132. package/dist/esm/icons/index.js.map +1 -1
  133. package/package.json +1 -1
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const b=require("react");function I(A){if(A&&typeof A=="object"&&"default"in A)return A;const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(A){for(const e in A)if(e!=="default"){const l=Object.getOwnPropertyDescriptor(A,e);Object.defineProperty(t,e,l.get?l:{enumerable:!0,get:()=>A[e]})}}return t.default=A,Object.freeze(t)}const g=I(b),C=A=>g.createElement("svg",{viewBox:"0 0 101 97",fill:"none",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",...A},g.createElement("image",{width:101,height:97,xlinkHref:"data:image/png;base64,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"}));exports.default=C;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("react");function o(e){if(e&&typeof e=="object"&&"default"in e)return e;const A=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const r=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(A,t,r.get?r:{enumerable:!0,get:()=>e[t]})}}return A.default=e,Object.freeze(A)}const n=o(a),u=e=>n.createElement("svg",{viewBox:"0 0 101 97",fill:"none",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",...e},n.createElement("image",{width:101,height:97,xlinkHref:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGUAAABhCAYAAADP7W/ZAAAEuElEQVR42u2d3W3bMBDH85A+pI0dN7Ak562dIIXlFH1sJmhWqDdwNogniDuBM4I6gVfwBu0G7QStLrQQxfCHRB6PJ+lPgEBRwAF5P/GOH38eT05QUOqWfhpPL8fDfzY1/+13WNBD6aWjmS0U+i0s6AVKsrSHEi1hQS/uK1nbQrlI49+wIHM5uxle2wIp6tlNdAtLKnFdLy4sgQvjKm8+Rx9cgWC0MJbTL6cX/TT6xQXF/K3LQWeNyeS2nriAcLsxrj6KlPN09EBfJLkdlw77AFJaTGYuI4b6Rn08n8QPjQBSdHwwjv7YrKTJ73O6rEOuzCbG9NJ4Rn0r/o5qMGUg250nOMeGu4ERr3zD2DVqjsExsS2e7mufSjD7gOwwwCpfXT/mC8E5VfPvOCt/eaHqZmRvt29J/1elfarAVAXShaoCDIAoAwMgysAAiDIwAKIMDIAoA0MrYDqXgKHrn+V43W/rTYYfNawpyvX9OPpLx720uNP20VB7yGbeXdi7yfBOS6fzBd6i/BWSAXI4T3raJyjYCLEdsr0z0E9Hnw6N6H4aZaFHifDxbHQbqqP5ZONrjY8nmEsTlzWRy5CMLRQ3aC/KNmD20qu5PJwAh2lSLszECPcOSsYbsk2QbRYTZP12rI6rqgfHXq5UdQISCsrcV9yQ8Mc+4w3ZphVQXOOGvQ7gat4mKAu+0ZH8FFlkCcWbgO4rzrTGDRc4HC4tWKB3mRIXWyNa9Qau8YZsI95o28VjqLhhuxZziTfiakwbbe+zKCFg3JCON6IuzEYB34arCDbuTGS02Gp7uwpFRLtsO+PqKhSvbmyjEMwas42tCEoBhnXEcGh7uw7lRbs8vGaAwbMTDCivr2JUngAYAbPRz3KflQDKXuF7ZnTL8XTPYqlFR6MNgLJdAQVQAAVQAAVQAAVQAAVQAAVQAAVQAAVQAAVQAAVQwkIhUdxgPKLt+wW3oh5Q9l18ShZk816a3FVqBKeUE1CYdW8cVwcAxZPuzUUtCOGER8G3rdK+2xIjAQW+jSvrKhSxfkO2WkO5IqmdthM8M+ieAhRbqRXZSLyhLronl0ysUoXa6JI5PMhlKFdtmNYspSTRpWxNLv0LcmnITJGjJZMgTc2DM5R3hiP9bivu0bsmlw4VNzpxj1463mwyhf/APfoK/th3vOGIG62/Ry8ZbyTStgd7bkowYc6Kw6XRGkmuzclaHAhtPUvnz7KNN77ihrrUUi5vLrq6tF46uq8+bX/9goPsRyScvEHiKQ2XeCP13MexNgouGuNZyM4ecmnmsZmw+S23Rsu9dyDUaW0pcM0+U/KoMZE12crrJiwFrtAuoYnVuxsLFeCbDUVgbw9g9CaLBhiNz60DjDIgAKMUCMAoBVIHjMkbSU/0JXPSzxoNLT2x8axdXoc26POzGnn7qE1F+zYpOrIqShZVQI6BqZpRNdQzG/RR5CCOLvCoD/vapxLILjB1X3DYgrOSOBKw0WXRvlp55KgGUgZjVJRuW9c+MmtznaEXovdGAGnC6Wawo9p2geFzZW2Qz6oonI+zNTEvsl4wDPFFXNvbhdGCUaIz6K8dgvsaFlQ2E4Pr8hZXRrPGKEu6Ut5Oht9oSmtT6bdN7PN/YyHwpPYJugAAAAAASUVORK5CYII="}));exports.default=u;
2
2
  //# sourceMappingURL=ShipStation.svg.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ShipStation.svg.js","sources":["../../../../src/assets/icons/ShipStation.svg"],"sourcesContent":["import * as React from \"react\";\nconst SvgShipStation = (props) => /* @__PURE__ */ React.createElement(\"svg\", { viewBox: \"0 0 101 97\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", xmlnsXlink: \"http://www.w3.org/1999/xlink\", ...props }, /* @__PURE__ */ React.createElement(\"image\", { width: 101, height: 97, xlinkHref: \"data:image/png;base64,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\" }));\nexport default SvgShipStation;\n"],"names":["SvgShipStation","props","React"],"mappings":"gdACMA,EAAkBC,GAA0BC,EAAM,cAAc,MAAO,CAAE,QAAS,aAAc,KAAM,OAAQ,MAAO,6BAA8B,WAAY,+BAAgC,GAAGD,CAAK,EAAoBC,EAAM,cAAc,QAAS,CAAE,MAAO,IAAK,OAAQ,GAAI,UAAW,gvQAAgvQ,CAAE,CAAC"}
1
+ {"version":3,"file":"ShipStation.svg.js","sources":["../../../../src/assets/icons/ShipStation.svg"],"sourcesContent":["import * as React from \"react\";\nconst SvgShipStation = (props) => /* @__PURE__ */ React.createElement(\"svg\", { viewBox: \"0 0 101 97\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", xmlnsXlink: \"http://www.w3.org/1999/xlink\", ...props }, /* @__PURE__ */ React.createElement(\"image\", { width: 101, height: 97, xlinkHref: \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGUAAABhCAYAAADP7W/ZAAAEuElEQVR42u2d3W3bMBDH85A+pI0dN7Ak562dIIXlFH1sJmhWqDdwNogniDuBM4I6gVfwBu0G7QStLrQQxfCHRB6PJ+lPgEBRwAF5P/GOH38eT05QUOqWfhpPL8fDfzY1/+13WNBD6aWjmS0U+i0s6AVKsrSHEi1hQS/uK1nbQrlI49+wIHM5uxle2wIp6tlNdAtLKnFdLy4sgQvjKm8+Rx9cgWC0MJbTL6cX/TT6xQXF/K3LQWeNyeS2nriAcLsxrj6KlPN09EBfJLkdlw77AFJaTGYuI4b6Rn08n8QPjQBSdHwwjv7YrKTJ73O6rEOuzCbG9NJ4Rn0r/o5qMGUg250nOMeGu4ERr3zD2DVqjsExsS2e7mufSjD7gOwwwCpfXT/mC8E5VfPvOCt/eaHqZmRvt29J/1elfarAVAXShaoCDIAoAwMgysAAiDIwAKIMDIAoA0MrYDqXgKHrn+V43W/rTYYfNawpyvX9OPpLx720uNP20VB7yGbeXdi7yfBOS6fzBd6i/BWSAXI4T3raJyjYCLEdsr0z0E9Hnw6N6H4aZaFHifDxbHQbqqP5ZONrjY8nmEsTlzWRy5CMLRQ3aC/KNmD20qu5PJwAh2lSLszECPcOSsYbsk2QbRYTZP12rI6rqgfHXq5UdQISCsrcV9yQ8Mc+4w3ZphVQXOOGvQ7gat4mKAu+0ZH8FFlkCcWbgO4rzrTGDRc4HC4tWKB3mRIXWyNa9Qau8YZsI95o28VjqLhhuxZziTfiakwbbe+zKCFg3JCON6IuzEYB34arCDbuTGS02Gp7uwpFRLtsO+PqKhSvbmyjEMwas42tCEoBhnXEcGh7uw7lRbs8vGaAwbMTDCivr2JUngAYAbPRz3KflQDKXuF7ZnTL8XTPYqlFR6MNgLJdAQVQAAVQAAVQAAVQAAVQAAVQAAVQAAVQAAVQAAVQwkIhUdxgPKLt+wW3oh5Q9l18ShZk816a3FVqBKeUE1CYdW8cVwcAxZPuzUUtCOGER8G3rdK+2xIjAQW+jSvrKhSxfkO2WkO5IqmdthM8M+ieAhRbqRXZSLyhLronl0ysUoXa6JI5PMhlKFdtmNYspSTRpWxNLv0LcmnITJGjJZMgTc2DM5R3hiP9bivu0bsmlw4VNzpxj1463mwyhf/APfoK/th3vOGIG62/Ry8ZbyTStgd7bkowYc6Kw6XRGkmuzclaHAhtPUvnz7KNN77ihrrUUi5vLrq6tF46uq8+bX/9goPsRyScvEHiKQ2XeCP13MexNgouGuNZyM4ecmnmsZmw+S23Rsu9dyDUaW0pcM0+U/KoMZE12crrJiwFrtAuoYnVuxsLFeCbDUVgbw9g9CaLBhiNz60DjDIgAKMUCMAoBVIHjMkbSU/0JXPSzxoNLT2x8axdXoc26POzGnn7qE1F+zYpOrIqShZVQI6BqZpRNdQzG/RR5CCOLvCoD/vapxLILjB1X3DYgrOSOBKw0WXRvlp55KgGUgZjVJRuW9c+MmtznaEXovdGAGnC6Wawo9p2geFzZW2Qz6oonI+zNTEvsl4wDPFFXNvbhdGCUaIz6K8dgvsaFlQ2E4Pr8hZXRrPGKEu6Ut5Oht9oSmtT6bdN7PN/YyHwpPYJugAAAAAASUVORK5CYII=\" }));\nexport default SvgShipStation;\n"],"names":["SvgShipStation","props","React"],"mappings":"gdACMA,EAAkBC,GAA0BC,EAAM,cAAc,MAAO,CAAE,QAAS,aAAc,KAAM,OAAQ,MAAO,6BAA8B,WAAY,+BAAgC,GAAGD,CAAK,EAAoBC,EAAM,cAAc,QAAS,CAAE,MAAO,IAAK,OAAQ,GAAI,UAAW,grDAAgrD,CAAE,CAAC"}
@@ -95,11 +95,11 @@
95
95
  border-top: 1px solid ${t.COLORS.stroke.primary};
96
96
  flex-shrink: 0;
97
97
  box-shadow: 0px -2px 12px 0px #0000000a;
98
- `,g=e.default.div.attrs({className:"bik-footer-hint"})`
98
+ `,h=e.default.div.attrs({className:"bik-footer-hint"})`
99
99
  display: flex;
100
100
  align-items: center;
101
101
  gap: 6px;
102
- `,h=e.default.div.attrs({className:"bik-footer-actions"})`
102
+ `,g=e.default.div.attrs({className:"bik-footer-actions"})`
103
103
  display: flex;
104
104
  align-items: center;
105
105
  gap: 8px;
@@ -138,7 +138,7 @@
138
138
  border-left: 1px dashed #e0e0e0;
139
139
  pointer-events: none;
140
140
  }
141
- `,y=e.default.div.attrs({className:"bik-step-badge"})`
141
+ `,w=e.default.div.attrs({className:"bik-step-badge"})`
142
142
  width: 20px;
143
143
  height: 20px;
144
144
  flex-shrink: 0;
@@ -152,7 +152,7 @@
152
152
  line-height: 12px;
153
153
  background: ${a=>a.state==="complete"?t.COLORS.background.inverseLight:a.state==="active"?t.COLORS.background.brandLight:t.COLORS.background.base};
154
154
  color: ${a=>a.state==="complete"?t.COLORS.surface.standard:a.state==="active"?t.COLORS.background.inverseLight:t.COLORS.content.secondary};
155
- `,w=e.default.div.attrs({className:"bik-section-header-wrap"})`
155
+ `,y=e.default.div.attrs({className:"bik-section-header-wrap"})`
156
156
  display: flex;
157
157
  flex-direction: column;
158
158
  gap: 4px;
@@ -163,11 +163,11 @@
163
163
  flex-direction: column;
164
164
  gap: 16px;
165
165
  padding: 16px;
166
- `,O=e.default.div.attrs({className:"bik-field-block"})`
166
+ `,v=e.default.div.attrs({className:"bik-field-block"})`
167
167
  display: flex;
168
168
  flex-direction: column;
169
169
  gap: 8px;
170
- `,v=e.default.div.attrs({className:"bik-field-label-row"})`
170
+ `,O=e.default.div.attrs({className:"bik-field-label-row"})`
171
171
  display: flex;
172
172
  align-items: center;
173
173
  justify-content: space-between;
@@ -254,7 +254,7 @@
254
254
  flex: 1;
255
255
  min-height: 0;
256
256
  `}
257
- `,M=e.default.div.attrs({className:"bik-step3-divider"})`
257
+ `,j=e.default.div.attrs({className:"bik-step3-divider"})`
258
258
  width: 1px;
259
259
  align-self: stretch;
260
260
  background: ${t.COLORS.stroke.primary};
@@ -262,11 +262,11 @@
262
262
  @media (max-width: 1100px) {
263
263
  display: none;
264
264
  }
265
- `,j=e.default.div.attrs({className:"bik-side-section"})`
265
+ `,F=e.default.div.attrs({className:"bik-side-section"})`
266
266
  display: flex;
267
267
  flex-direction: column;
268
268
  gap: 8px;
269
- `,F=e.default.div.attrs({className:"bik-side-section-header"})`
269
+ `,M=e.default.div.attrs({className:"bik-side-section-header"})`
270
270
  display: flex;
271
271
  align-items: center;
272
272
  justify-content: space-between;
@@ -274,11 +274,11 @@
274
274
  ${o}
275
275
  background: ${t.COLORS.surface.standard};
276
276
  border: 1px solid ${t.COLORS.stroke.primary};
277
- `,D=e.default.div.attrs({className:"bik-source-button-row"})`
277
+ `,z=e.default.div.attrs({className:"bik-source-button-row"})`
278
278
  display: flex;
279
279
  flex-wrap: wrap;
280
280
  gap: 8px;
281
- `,H=e.default.button.attrs({className:"bik-source-button"})`
281
+ `,D=e.default.button.attrs({className:"bik-source-button"})`
282
282
  display: flex;
283
283
  align-items: center;
284
284
  gap: 8px;
@@ -292,11 +292,18 @@
292
292
  &:hover {
293
293
  background: ${t.COLORS.surface.subdued};
294
294
  }
295
- `,W=e.default.div.attrs({className:"bik-selectable-row"})`
295
+ `,H=e.default.div.attrs({className:"bik-selectable-row"})`
296
296
  display: flex;
297
297
  align-items: center;
298
298
  gap: 8px;
299
299
  padding: 8px 12px;
300
+ /* Fixed 48px rows regardless of the (variably-sized) leading source icon.
301
+ box-sizing pins the height across hosts with differing resets; flex-shrink:0
302
+ + min-height stop a height-constrained flex column (the merchant side panel)
303
+ from squashing the rows — Storybook has room, so it looked fine there. */
304
+ min-height: 48px;
305
+ box-sizing: border-box;
306
+ flex-shrink: 0;
300
307
  border: 1px solid ${t.COLORS.stroke.primary};
301
308
  border-radius: 4px;
302
309
  min-width: 0;
@@ -306,7 +313,7 @@
306
313
  & > svg {
307
314
  flex-shrink: 0;
308
315
  }
309
- `,z=e.default.div.attrs({className:"bik-row-text"})`
316
+ `,W=e.default.div.attrs({className:"bik-row-text"})`
310
317
  flex: 1;
311
318
  min-width: 0;
312
319
  overflow: hidden;
@@ -318,6 +325,18 @@
318
325
  white-space: nowrap;
319
326
  text-overflow: ellipsis;
320
327
  }
328
+ `,_=e.default.div.attrs({className:"bik-row-label"})`
329
+ display: flex;
330
+ align-items: center;
331
+ gap: 6px;
332
+ min-width: 0;
333
+ flex: 1;
334
+
335
+ /* Shrink the label to its text so the shield sits just after it, rather than
336
+ RowText's default flex: 1 filling the row and pushing the shield to the end. */
337
+ & .bik-row-text {
338
+ flex: 0 1 auto;
339
+ }
321
340
  `;e.default.button.attrs({className:"bik-row-remove-button"})`
322
341
  display: flex;
323
342
  align-items: center;
@@ -326,19 +345,19 @@
326
345
  background: transparent;
327
346
  padding: 0;
328
347
  cursor: pointer;
329
- `;const _=e.default.div.attrs({className:"bik-row-actions"})`
348
+ `;const E=e.default.div.attrs({className:"bik-row-actions"})`
330
349
  display: flex;
331
350
  align-items: center;
332
351
  gap: 4px;
333
352
  flex-shrink: 0;
334
- `,E=e.default.span.attrs({className:"bik-row-action-divider"})`
353
+ `,q=e.default.span.attrs({className:"bik-row-action-divider"})`
335
354
  width: 1px;
336
355
  align-self: stretch;
337
356
  margin: 4px 0;
338
357
  background: ${t.COLORS.stroke.primary};
339
- `,q=e.default.button.attrs({className:"bik-row-menu-button"})`
358
+ `,G=e.default.button.attrs({className:"bik-row-menu-button"})`
340
359
  ${o}
341
- `,G=e.default.div.attrs({className:"bik-draft-button-scope"})`
360
+ `,P=e.default.div.attrs({className:"bik-draft-button-scope"})`
342
361
  display: flex;
343
362
  flex: 1;
344
363
 
@@ -348,19 +367,18 @@
348
367
  button .text {
349
368
  color: ${t.BASE_COLORS.brand[800]};
350
369
  }
351
- `,P=e.default.div.attrs({className:"bik-modal-body"})`
370
+ `,U=e.default.div.attrs({className:"bik-modal-body"})`
352
371
  padding: 24px;
353
372
  display: flex;
354
373
  flex-direction: column;
355
374
  align-items: center;
356
375
  gap: 16px;
357
376
  text-align: center;
358
- `,U=e.default.div.attrs({className:"bik-modal-icon"})`
377
+ `,J=e.default.div.attrs({className:"bik-modal-icon"})`
359
378
  display: flex;
360
379
  align-items: center;
361
380
  justify-content: center;
362
- margin-bottom: 4px;
363
- `,J=e.default.div.attrs({className:"bik-modal-actions"})`
381
+ `,K=e.default.div.attrs({className:"bik-modal-actions"})`
364
382
  display: flex;
365
383
  gap: 12px;
366
384
  width: 100%;
@@ -378,5 +396,5 @@
378
396
  display: flex;
379
397
  align-items: center;
380
398
  gap: 8px;
381
- `;exports.AddIconButton=I;exports.AiTextAreaInput=C;exports.AiTextAreaShell=R;exports.BackButton=l;exports.BuilderRoot=s;exports.CardRow=L;exports.ChipWrap=$;exports.Content=u;exports.ContentCard=f;exports.DraftButtonScope=G;exports.FieldBlock=O;exports.FieldLabelRow=v;exports.Footer=b;exports.FooterActions=h;exports.FooterHint=g;exports.Main=c;exports.ModalActions=J;exports.ModalBody=P;exports.ModalIcon=U;exports.RadioCard=N;exports.RadioCardText=B;exports.Rail=p;exports.RailItem=k;exports.RailList=m;exports.RowActionDivider=E;exports.RowActions=_;exports.RowMenuButton=q;exports.RowText=z;exports.SectionBodyWrap=S;exports.SectionHeaderWrap=w;exports.SelectableRow=W;exports.SideSection=j;exports.SideSectionHeader=F;exports.SourceButton=H;exports.SourceButtonRow=D;exports.Step3Divider=M;exports.Step3Grid=T;exports.Step3Root=A;exports.StepBadge=y;exports.StepScroll=x;exports.TopBar=n;exports.TopBarSide=d;
399
+ `;exports.AddIconButton=I;exports.AiTextAreaInput=C;exports.AiTextAreaShell=R;exports.BackButton=l;exports.BuilderRoot=s;exports.CardRow=L;exports.ChipWrap=$;exports.Content=u;exports.ContentCard=f;exports.DraftButtonScope=P;exports.FieldBlock=v;exports.FieldLabelRow=O;exports.Footer=b;exports.FooterActions=g;exports.FooterHint=h;exports.Main=c;exports.ModalActions=K;exports.ModalBody=U;exports.ModalIcon=J;exports.RadioCard=N;exports.RadioCardText=B;exports.Rail=p;exports.RailItem=k;exports.RailList=m;exports.RowActionDivider=q;exports.RowActions=E;exports.RowLabel=_;exports.RowMenuButton=G;exports.RowText=W;exports.SectionBodyWrap=S;exports.SectionHeaderWrap=y;exports.SelectableRow=H;exports.SideSection=F;exports.SideSectionHeader=M;exports.SourceButton=D;exports.SourceButtonRow=z;exports.Step3Divider=j;exports.Step3Grid=T;exports.Step3Root=A;exports.StepBadge=w;exports.StepScroll=x;exports.TopBar=n;exports.TopBarSide=d;
382
400
  //# sourceMappingURL=AgentBuilder.styled.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AgentBuilder.styled.js","sources":["../../../../src/components/agent-builder/AgentBuilder.styled.tsx"],"sourcesContent":["import styled, { css } from 'styled-components';\nimport { BASE_COLORS, COLORS } from '@src/constants/Theme';\n\n// Shared look for the 24×24 transparent icon buttons (add / row-menu / close).\nconst iconActionButton = css`\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 24px;\n\theight: 24px;\n\tborder: none;\n\tbackground: transparent;\n\tpadding: 0;\n\tcursor: pointer;\n\tborder-radius: 4px;\n\n\t&:hover {\n\t\tbackground: ${COLORS.surface.subdued};\n\t}\n\n\t&:disabled {\n\t\tcursor: not-allowed;\n\t\topacity: 0.5;\n\t\tbackground: transparent;\n\t}\n`;\n\nexport const BuilderRoot = styled.div.attrs({ className: 'bik-builder-root' })`\n\tdisplay: flex;\n\tflex-direction: column;\n\theight: 100%;\n\twidth: 100%;\n\tmin-height: 0;\n\tbackground: ${COLORS.surface.standard};\n`;\n\nexport const TopBar = styled.div.attrs({ className: 'bik-top-bar' })`\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\theight: 56px;\n\tpadding: 12px 16px;\n\tborder-bottom: 1px solid ${COLORS.stroke.primary};\n\tflex-shrink: 0;\n`;\n\nexport const TopBarSide = styled.div.attrs({ className: 'bik-top-bar-side' })`\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n`;\n\nexport const BackButton = styled.button.attrs({ className: 'bik-back-button' })`\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 28px;\n\theight: 28px;\n\tborder: none;\n\tbackground: transparent;\n\tpadding: 0;\n\tcursor: pointer;\n\tborder-radius: 4px;\n\n\t&:hover {\n\t\tbackground: ${COLORS.surface.subdued};\n\t}\n`;\n\nexport const Main = styled.div.attrs({ className: 'bik-main' })`\n\tdisplay: flex;\n\tflex: 1;\n\tmin-height: 0;\n`;\n\nexport const Rail = styled.div.attrs({ className: 'bik-rail' })`\n\twidth: 234px;\n\tflex-shrink: 0;\n\tborder-right: 1px solid ${COLORS.stroke.primary};\n\tpadding: 16px;\n\toverflow-y: auto;\n\tbackground: ${COLORS.surface.standard};\n`;\n\nexport const Content = styled.div.attrs({ className: 'bik-content' })`\n\tflex: 1;\n\tmin-width: 0;\n\tmin-height: 0;\n\toverflow: hidden;\n\tdisplay: flex;\n\tflex-direction: column;\n\tpadding: 16px;\n\tbackground: ${COLORS.surface.standard};\n`;\n\nexport const ContentCard = styled.div.attrs({ className: 'bik-content-card' })`\n\tflex: 1;\n\tmin-height: 0;\n\tdisplay: flex;\n\tflex-direction: column;\n\toverflow: hidden;\n\tborder: 1px solid ${COLORS.stroke.primary};\n\tborder-radius: 8px;\n\tbox-sizing: border-box;\n`;\n\n// Scrollable step body inside the card; the footer stays pinned below it.\nexport const StepScroll = styled.div.attrs({ className: 'bik-step-scroll' })`\n\tflex: 1;\n\tmin-height: 0;\n\toverflow-y: auto;\n`;\n\nexport const Footer = styled.div.attrs({ className: 'bik-footer' })`\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tmin-height: 56px;\n\tpadding: 12px 16px;\n\tborder-top: 1px solid ${COLORS.stroke.primary};\n\tflex-shrink: 0;\n\tbox-shadow: 0px -2px 12px 0px #0000000a;\n`;\n\nexport const FooterHint = styled.div.attrs({ className: 'bik-footer-hint' })`\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 6px;\n`;\n\nexport const FooterActions = styled.div.attrs({\n\tclassName: 'bik-footer-actions',\n})`\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n`;\n\n// ── Step rail items ─────────────────────────────────────────────────────────\n\nexport const RailList = styled.div.attrs({ className: 'bik-rail-list' })`\n\tdisplay: flex;\n\tflex-direction: column;\n`;\n\nexport const RailItem = styled.button.attrs({ className: 'bik-rail-item' })`\n\tposition: relative;\n\tdisplay: flex;\n\talign-items: flex-start;\n\tgap: 8px;\n\t/* Bottom padding leaves room for the connector down to the next badge. */\n\tpadding: 0 0 24px;\n\tborder: none;\n\tbackground: transparent;\n\tcursor: pointer;\n\ttext-align: left;\n\twidth: 100%;\n\n\t&:last-child {\n\t\tpadding-bottom: 0;\n\t}\n\n\t&:disabled {\n\t\tcursor: default;\n\t}\n\n\t/* Dashed connector line between consecutive step badges (centered on the badge). */\n\t&:not(:last-child)::after {\n\t\tcontent: '';\n\t\tposition: absolute;\n\t\tleft: 9px;\n\t\ttop: 20px;\n\t\twidth: 0;\n\t\theight: 24px;\n\t\tborder-left: 1px dashed #e0e0e0;\n\t\tpointer-events: none;\n\t}\n`;\n\nexport const StepBadge = styled.div.attrs({ className: 'bik-step-badge' })<{\n\tstate: 'active' | 'complete' | 'inactive';\n}>`\n\twidth: 20px;\n\theight: 20px;\n\tflex-shrink: 0;\n\tborder-radius: 50%;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tfont-family: Inter;\n\tfont-size: 10px;\n\tfont-weight: 400;\n\tline-height: 12px;\n\tbackground: ${(p) =>\n\t\tp.state === 'complete'\n\t\t\t? COLORS.background.inverseLight\n\t\t\t: p.state === 'active'\n\t\t\t? COLORS.background.brandLight\n\t\t\t: COLORS.background.base};\n\tcolor: ${(p) =>\n\t\tp.state === 'complete'\n\t\t\t? COLORS.surface.standard\n\t\t\t: p.state === 'active'\n\t\t\t? COLORS.background.inverseLight\n\t\t\t: COLORS.content.secondary};\n`;\n\n// ── Shared step pieces ──────────────────────────────────────────────────────\n\nexport const SectionHeaderWrap = styled.div.attrs({\n\tclassName: 'bik-section-header-wrap',\n})`\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 4px;\n\tpadding: 16px;\n\tborder-bottom: 1px solid ${COLORS.stroke.primary};\n`;\n\nexport const SectionBodyWrap = styled.div.attrs({\n\tclassName: 'bik-section-header-wrap',\n})`\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 16px;\n\tpadding: 16px;\n`;\n\nexport const FieldBlock = styled.div.attrs({ className: 'bik-field-block' })`\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 8px;\n`;\n\nexport const FieldLabelRow = styled.div.attrs({\n\tclassName: 'bik-field-label-row',\n})`\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n`;\n\n// ── Labelled text area ──────────────────────────────────────────────────────\n\nexport const AiTextAreaShell = styled.div.attrs({\n\tclassName: 'bik-ai-text-area-shell',\n})<{\n\tfocused?: boolean;\n\tminHeight?: string;\n}>`\n\tdisplay: flex;\n\tflex-direction: column;\n\tborder: 1px solid\n\t\t${(p) => (p.focused ? COLORS.stroke.brand : COLORS.stroke.primary)};\n\tborder-radius: 4px;\n\tpadding: 8px 12px;\n\tgap: 8px;\n\tmin-height: ${(p) => p.minHeight ?? '120px'};\n\tbackground: ${COLORS.surface.standard};\n`;\n\nexport const AiTextAreaInput = styled.textarea.attrs({\n\tclassName: 'bik-ai-text-area-input',\n})`\n\tflex: 1;\n\tborder: none;\n\toutline: none;\n\tresize: none;\n\tfont-family: Inter;\n\tfont-size: 14px;\n\tline-height: 20px;\n\tcolor: ${COLORS.content.primary};\n\tbackground: transparent;\n\tmin-height: 60px;\n\n\t&::placeholder {\n\t\tcolor: ${COLORS.content.placeholder};\n\t}\n`;\n\n// ── Radio card (Step 2 / Step 4 option cards) ───────────────────────────────\n\nexport const CardRow = styled.div.attrs({ className: 'bik-card-row' })`\n\tdisplay: flex;\n\tgap: 12px;\n`;\n\nexport const RadioCard = styled.button.attrs({ className: 'bik-radio-card' })<{\n\tselected?: boolean;\n}>`\n\tflex: 1;\n\tdisplay: flex;\n\talign-items: flex-start;\n\tgap: 12px;\n\tpadding: 16px;\n\tborder: 1px solid\n\t\t${(p) => (p.selected ? BASE_COLORS.brand['800'] : COLORS.stroke.primary)};\n\tbackground: ${(p) =>\n\t\tp.selected ? COLORS.background.brandLight : COLORS.surface.standard};\n\tborder-radius: 8px;\n\tcursor: pointer;\n\ttext-align: left;\n\twidth: 100%;\n`;\n\nexport const RadioCardText = styled.div.attrs({\n\tclassName: 'bik-radio-card-text',\n})`\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 4px;\n`;\n\n// ── Intent chips (Step 2) ───────────────────────────────────────────────────\n\nexport const ChipWrap = styled.div.attrs({ className: 'bik-chip-wrap' })`\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\talign-items: center;\n\tgap: 8px;\n`;\n\nexport const AddChipButton = styled.button.attrs({\n\tclassName: 'bik-add-chip-button',\n})`\n\tdisplay: inline-flex;\n\talign-items: center;\n\tgap: 6px;\n\tpadding: 4px 8px;\n\tborder: 1px dashed ${COLORS.stroke.primary};\n\tborder-radius: 4px;\n\tbackground: transparent;\n\tcursor: pointer;\n`;\n\n// ── Step 3 two-column layout + tool / sub-agent rows ────────────────────────\n\n// Fills the scroll area so the step header + grow-body chain reaches the footer.\nexport const Step3Root = styled.div.attrs({\n\tclassName: 'bik-agent-step bik-agent-step--response',\n})`\n\tdisplay: flex;\n\tflex-direction: column;\n\tmin-height: 100%;\n`;\n\nexport const Step3Grid = styled.div.attrs({ className: 'bik-step3-grid' })<{\n\t$grow?: boolean;\n}>`\n\tdisplay: grid;\n\tgrid-template-columns: minmax(0, 1fr) 1px 360px;\n\t/* Single row that fills the grid's height, so the divider spans the full\n\t height (down to the footer) rather than stopping at the taller column. */\n\tgrid-template-rows: 1fr;\n\tflex: 1;\n\tmin-height: 0;\n\n\t@media (max-width: 1100px) {\n\t\tgrid-template-columns: 1fr;\n\t\tgrid-template-rows: auto;\n\t}\n\n\t/* Fill the remaining card height so a full-height child (e.g. the Step 3\n\t column divider) can stretch all the way down to the footer. */\n\t${(p) =>\n\t\tp.$grow &&\n\t\tcss`\n\t\t\tflex: 1;\n\t\t\tmin-height: 0;\n\t\t`}\n`;\n\n// Vertical rule between the main column and the side (tools / sub-agents) column;\n// hidden once the grid collapses to a single column.\nexport const Step3Divider = styled.div.attrs({\n\tclassName: 'bik-step3-divider',\n})`\n\twidth: 1px;\n\talign-self: stretch;\n\tbackground: ${COLORS.stroke.primary};\n\n\t@media (max-width: 1100px) {\n\t\tdisplay: none;\n\t}\n`;\n\nexport const SideSection = styled.div.attrs({ className: 'bik-side-section' })`\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 8px;\n`;\n\nexport const SideSectionHeader = styled.div.attrs({\n\tclassName: 'bik-side-section-header',\n})`\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n`;\n\nexport const AddIconButton = styled.button.attrs({\n\tclassName: 'bik-add-icon-button',\n})`\n\t${iconActionButton}\n\tbackground: ${COLORS.surface.standard};\n\tborder: 1px solid ${COLORS.stroke.primary};\n`;\n\n// Empty-state tool-source picker (e.g. Manifest / Shopify buttons).\nexport const SourceButtonRow = styled.div.attrs({\n\tclassName: 'bik-source-button-row',\n})`\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tgap: 8px;\n`;\n\nexport const SourceButton = styled.button.attrs({\n\tclassName: 'bik-source-button',\n})`\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n\tpadding: 6px;\n\tborder: 1px solid ${COLORS.stroke.primary};\n\tborder-radius: 4px;\n\tbackground: ${COLORS.surface.standard};\n\tcursor: pointer;\n\theight: 28px;\n\n\t&:hover {\n\t\tbackground: ${COLORS.surface.subdued};\n\t}\n`;\n\nexport const SelectableRow = styled.div.attrs({\n\tclassName: 'bik-selectable-row',\n})`\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n\tpadding: 8px 12px;\n\tborder: 1px solid ${COLORS.stroke.primary};\n\tborder-radius: 4px;\n\tmin-width: 0;\n\toverflow: hidden;\n\n\t/* Leading icon (e.g. tool source) keeps its size; the label takes the rest. */\n\t& > svg {\n\t\tflex-shrink: 0;\n\t}\n`;\n\nexport const RowText = styled.div.attrs({ className: 'bik-row-text' })`\n\tflex: 1;\n\tmin-width: 0;\n\toverflow: hidden;\n\n\t/* Truncate the label to one line with an ellipsis. */\n\t& > * {\n\t\tdisplay: block;\n\t\toverflow: hidden;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t}\n`;\n\nexport const RowRemoveButton = styled.button.attrs({\n\tclassName: 'bik-row-remove-button',\n})`\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tborder: none;\n\tbackground: transparent;\n\tpadding: 0;\n\tcursor: pointer;\n`;\n\n// ── Per-row actions (always-visible edit / delete icon buttons) ───────────────\n\nexport const RowActions = styled.div.attrs({ className: 'bik-row-actions' })`\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 4px;\n\tflex-shrink: 0;\n`;\n\n// Vertical separator between the edit and delete icon buttons.\nexport const RowActionDivider = styled.span.attrs({\n\tclassName: 'bik-row-action-divider',\n})`\n\twidth: 1px;\n\talign-self: stretch;\n\tmargin: 4px 0;\n\tbackground: ${COLORS.stroke.primary};\n`;\n\nexport const RowMenuButton = styled.button.attrs({\n\tclassName: 'bik-row-menu-button',\n})`\n\t${iconActionButton}\n`;\n\nexport const DraftButtonScope = styled.div.attrs({\n\tclassName: 'bik-draft-button-scope',\n})`\n\tdisplay: flex;\n\tflex: 1;\n\n\tbutton {\n\t\tborder-color: ${BASE_COLORS.brand['800']};\n\t}\n\tbutton .text {\n\t\tcolor: ${BASE_COLORS.brand['800']};\n\t}\n`;\n\n// ── Go-live modal ───────────────────────────────────────────────────────────\n\nexport const ModalBody = styled.div.attrs({ className: 'bik-modal-body' })`\n\tpadding: 24px;\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tgap: 16px;\n\ttext-align: center;\n`;\n\nexport const ModalIcon = styled.div.attrs({ className: 'bik-modal-icon' })`\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tmargin-bottom: 4px;\n`;\n\nexport const ModalActions = styled.div.attrs({\n\tclassName: 'bik-modal-actions',\n})`\n\tdisplay: flex;\n\tgap: 12px;\n\twidth: 100%;\n\t/* Every action shares the row equally. Each action MUST be its own flex\n\t wrapper (a plain <div style=\"display:flex\">, or DraftButtonScope) rather\n\t than a bare Button: on hover the Button relocates its padding into an\n\t inner container, and as the flex item itself that changes its resolved\n\t width — the button visibly grows/shrinks. Wrapped, the div is the sized\n\t track (flex:1) and the Button grows to fill it, absorbing the padding\n\t move so the width stays put. */\n\t> * {\n\t\tflex: 1;\n\t}\n`;\n\n/** Inline action row inside a rich field (e.g. \"Improve with AI\"). */\nexport const FieldActionRow = styled.div.attrs({\n\tclassName: 'bik-field-action-row',\n})`\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n`;\n"],"names":["iconActionButton","css","COLORS","BuilderRoot","styled","TopBar","TopBarSide","BackButton","Main","Rail","Content","ContentCard","StepScroll","Footer","FooterHint","FooterActions","RailList","RailItem","StepBadge","p","SectionHeaderWrap","SectionBodyWrap","FieldBlock","FieldLabelRow","AiTextAreaShell","AiTextAreaInput","CardRow","RadioCard","BASE_COLORS","RadioCardText","ChipWrap","Step3Root","Step3Grid","Step3Divider","SideSection","SideSectionHeader","AddIconButton","SourceButtonRow","SourceButton","SelectableRow","RowText","RowActions","RowActionDivider","RowMenuButton","DraftButtonScope","ModalBody","ModalIcon","ModalActions"],"mappings":"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"}
1
+ {"version":3,"file":"AgentBuilder.styled.js","sources":["../../../../src/components/agent-builder/AgentBuilder.styled.tsx"],"sourcesContent":["import styled, { css } from 'styled-components';\nimport { BASE_COLORS, COLORS } from '@src/constants/Theme';\n\n// Shared look for the 24×24 transparent icon buttons (add / row-menu / close).\nconst iconActionButton = css`\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 24px;\n\theight: 24px;\n\tborder: none;\n\tbackground: transparent;\n\tpadding: 0;\n\tcursor: pointer;\n\tborder-radius: 4px;\n\n\t&:hover {\n\t\tbackground: ${COLORS.surface.subdued};\n\t}\n\n\t&:disabled {\n\t\tcursor: not-allowed;\n\t\topacity: 0.5;\n\t\tbackground: transparent;\n\t}\n`;\n\nexport const BuilderRoot = styled.div.attrs({ className: 'bik-builder-root' })`\n\tdisplay: flex;\n\tflex-direction: column;\n\theight: 100%;\n\twidth: 100%;\n\tmin-height: 0;\n\tbackground: ${COLORS.surface.standard};\n`;\n\nexport const TopBar = styled.div.attrs({ className: 'bik-top-bar' })`\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\theight: 56px;\n\tpadding: 12px 16px;\n\tborder-bottom: 1px solid ${COLORS.stroke.primary};\n\tflex-shrink: 0;\n`;\n\nexport const TopBarSide = styled.div.attrs({ className: 'bik-top-bar-side' })`\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n`;\n\nexport const BackButton = styled.button.attrs({ className: 'bik-back-button' })`\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 28px;\n\theight: 28px;\n\tborder: none;\n\tbackground: transparent;\n\tpadding: 0;\n\tcursor: pointer;\n\tborder-radius: 4px;\n\n\t&:hover {\n\t\tbackground: ${COLORS.surface.subdued};\n\t}\n`;\n\nexport const Main = styled.div.attrs({ className: 'bik-main' })`\n\tdisplay: flex;\n\tflex: 1;\n\tmin-height: 0;\n`;\n\nexport const Rail = styled.div.attrs({ className: 'bik-rail' })`\n\twidth: 234px;\n\tflex-shrink: 0;\n\tborder-right: 1px solid ${COLORS.stroke.primary};\n\tpadding: 16px;\n\toverflow-y: auto;\n\tbackground: ${COLORS.surface.standard};\n`;\n\nexport const Content = styled.div.attrs({ className: 'bik-content' })`\n\tflex: 1;\n\tmin-width: 0;\n\tmin-height: 0;\n\toverflow: hidden;\n\tdisplay: flex;\n\tflex-direction: column;\n\tpadding: 16px;\n\tbackground: ${COLORS.surface.standard};\n`;\n\nexport const ContentCard = styled.div.attrs({ className: 'bik-content-card' })`\n\tflex: 1;\n\tmin-height: 0;\n\tdisplay: flex;\n\tflex-direction: column;\n\toverflow: hidden;\n\tborder: 1px solid ${COLORS.stroke.primary};\n\tborder-radius: 8px;\n\tbox-sizing: border-box;\n`;\n\n// Scrollable step body inside the card; the footer stays pinned below it.\nexport const StepScroll = styled.div.attrs({ className: 'bik-step-scroll' })`\n\tflex: 1;\n\tmin-height: 0;\n\toverflow-y: auto;\n`;\n\nexport const Footer = styled.div.attrs({ className: 'bik-footer' })`\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tmin-height: 56px;\n\tpadding: 12px 16px;\n\tborder-top: 1px solid ${COLORS.stroke.primary};\n\tflex-shrink: 0;\n\tbox-shadow: 0px -2px 12px 0px #0000000a;\n`;\n\nexport const FooterHint = styled.div.attrs({ className: 'bik-footer-hint' })`\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 6px;\n`;\n\nexport const FooterActions = styled.div.attrs({\n\tclassName: 'bik-footer-actions',\n})`\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n`;\n\n// ── Step rail items ─────────────────────────────────────────────────────────\n\nexport const RailList = styled.div.attrs({ className: 'bik-rail-list' })`\n\tdisplay: flex;\n\tflex-direction: column;\n`;\n\nexport const RailItem = styled.button.attrs({ className: 'bik-rail-item' })`\n\tposition: relative;\n\tdisplay: flex;\n\talign-items: flex-start;\n\tgap: 8px;\n\t/* Bottom padding leaves room for the connector down to the next badge. */\n\tpadding: 0 0 24px;\n\tborder: none;\n\tbackground: transparent;\n\tcursor: pointer;\n\ttext-align: left;\n\twidth: 100%;\n\n\t&:last-child {\n\t\tpadding-bottom: 0;\n\t}\n\n\t&:disabled {\n\t\tcursor: default;\n\t}\n\n\t/* Dashed connector line between consecutive step badges (centered on the badge). */\n\t&:not(:last-child)::after {\n\t\tcontent: '';\n\t\tposition: absolute;\n\t\tleft: 9px;\n\t\ttop: 20px;\n\t\twidth: 0;\n\t\theight: 24px;\n\t\tborder-left: 1px dashed #e0e0e0;\n\t\tpointer-events: none;\n\t}\n`;\n\nexport const StepBadge = styled.div.attrs({ className: 'bik-step-badge' })<{\n\tstate: 'active' | 'complete' | 'inactive';\n}>`\n\twidth: 20px;\n\theight: 20px;\n\tflex-shrink: 0;\n\tborder-radius: 50%;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tfont-family: Inter;\n\tfont-size: 10px;\n\tfont-weight: 400;\n\tline-height: 12px;\n\tbackground: ${(p) =>\n\t\tp.state === 'complete'\n\t\t\t? COLORS.background.inverseLight\n\t\t\t: p.state === 'active'\n\t\t\t? COLORS.background.brandLight\n\t\t\t: COLORS.background.base};\n\tcolor: ${(p) =>\n\t\tp.state === 'complete'\n\t\t\t? COLORS.surface.standard\n\t\t\t: p.state === 'active'\n\t\t\t? COLORS.background.inverseLight\n\t\t\t: COLORS.content.secondary};\n`;\n\n// ── Shared step pieces ──────────────────────────────────────────────────────\n\nexport const SectionHeaderWrap = styled.div.attrs({\n\tclassName: 'bik-section-header-wrap',\n})`\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 4px;\n\tpadding: 16px;\n\tborder-bottom: 1px solid ${COLORS.stroke.primary};\n`;\n\nexport const SectionBodyWrap = styled.div.attrs({\n\tclassName: 'bik-section-header-wrap',\n})`\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 16px;\n\tpadding: 16px;\n`;\n\nexport const FieldBlock = styled.div.attrs({ className: 'bik-field-block' })`\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 8px;\n`;\n\nexport const FieldLabelRow = styled.div.attrs({\n\tclassName: 'bik-field-label-row',\n})`\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n`;\n\n// ── Labelled text area ──────────────────────────────────────────────────────\n\nexport const AiTextAreaShell = styled.div.attrs({\n\tclassName: 'bik-ai-text-area-shell',\n})<{\n\tfocused?: boolean;\n\tminHeight?: string;\n}>`\n\tdisplay: flex;\n\tflex-direction: column;\n\tborder: 1px solid\n\t\t${(p) => (p.focused ? COLORS.stroke.brand : COLORS.stroke.primary)};\n\tborder-radius: 4px;\n\tpadding: 8px 12px;\n\tgap: 8px;\n\tmin-height: ${(p) => p.minHeight ?? '120px'};\n\tbackground: ${COLORS.surface.standard};\n`;\n\nexport const AiTextAreaInput = styled.textarea.attrs({\n\tclassName: 'bik-ai-text-area-input',\n})`\n\tflex: 1;\n\tborder: none;\n\toutline: none;\n\tresize: none;\n\tfont-family: Inter;\n\tfont-size: 14px;\n\tline-height: 20px;\n\tcolor: ${COLORS.content.primary};\n\tbackground: transparent;\n\tmin-height: 60px;\n\n\t&::placeholder {\n\t\tcolor: ${COLORS.content.placeholder};\n\t}\n`;\n\n// ── Radio card (Step 2 / Step 4 option cards) ───────────────────────────────\n\nexport const CardRow = styled.div.attrs({ className: 'bik-card-row' })`\n\tdisplay: flex;\n\tgap: 12px;\n`;\n\nexport const RadioCard = styled.button.attrs({ className: 'bik-radio-card' })<{\n\tselected?: boolean;\n}>`\n\tflex: 1;\n\tdisplay: flex;\n\talign-items: flex-start;\n\tgap: 12px;\n\tpadding: 16px;\n\tborder: 1px solid\n\t\t${(p) => (p.selected ? BASE_COLORS.brand['800'] : COLORS.stroke.primary)};\n\tbackground: ${(p) =>\n\t\tp.selected ? COLORS.background.brandLight : COLORS.surface.standard};\n\tborder-radius: 8px;\n\tcursor: pointer;\n\ttext-align: left;\n\twidth: 100%;\n`;\n\nexport const RadioCardText = styled.div.attrs({\n\tclassName: 'bik-radio-card-text',\n})`\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 4px;\n`;\n\n// ── Intent chips (Step 2) ───────────────────────────────────────────────────\n\nexport const ChipWrap = styled.div.attrs({ className: 'bik-chip-wrap' })`\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\talign-items: center;\n\tgap: 8px;\n`;\n\nexport const AddChipButton = styled.button.attrs({\n\tclassName: 'bik-add-chip-button',\n})`\n\tdisplay: inline-flex;\n\talign-items: center;\n\tgap: 6px;\n\tpadding: 4px 8px;\n\tborder: 1px dashed ${COLORS.stroke.primary};\n\tborder-radius: 4px;\n\tbackground: transparent;\n\tcursor: pointer;\n`;\n\n// ── Step 3 two-column layout + tool / sub-agent rows ────────────────────────\n\n// Fills the scroll area so the step header + grow-body chain reaches the footer.\nexport const Step3Root = styled.div.attrs({\n\tclassName: 'bik-agent-step bik-agent-step--response',\n})`\n\tdisplay: flex;\n\tflex-direction: column;\n\tmin-height: 100%;\n`;\n\nexport const Step3Grid = styled.div.attrs({ className: 'bik-step3-grid' })<{\n\t$grow?: boolean;\n}>`\n\tdisplay: grid;\n\tgrid-template-columns: minmax(0, 1fr) 1px 360px;\n\t/* Single row that fills the grid's height, so the divider spans the full\n\t height (down to the footer) rather than stopping at the taller column. */\n\tgrid-template-rows: 1fr;\n\tflex: 1;\n\tmin-height: 0;\n\n\t@media (max-width: 1100px) {\n\t\tgrid-template-columns: 1fr;\n\t\tgrid-template-rows: auto;\n\t}\n\n\t/* Fill the remaining card height so a full-height child (e.g. the Step 3\n\t column divider) can stretch all the way down to the footer. */\n\t${(p) =>\n\t\tp.$grow &&\n\t\tcss`\n\t\t\tflex: 1;\n\t\t\tmin-height: 0;\n\t\t`}\n`;\n\n// Vertical rule between the main column and the side (tools / sub-agents) column;\n// hidden once the grid collapses to a single column.\nexport const Step3Divider = styled.div.attrs({\n\tclassName: 'bik-step3-divider',\n})`\n\twidth: 1px;\n\talign-self: stretch;\n\tbackground: ${COLORS.stroke.primary};\n\n\t@media (max-width: 1100px) {\n\t\tdisplay: none;\n\t}\n`;\n\nexport const SideSection = styled.div.attrs({ className: 'bik-side-section' })`\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 8px;\n`;\n\nexport const SideSectionHeader = styled.div.attrs({\n\tclassName: 'bik-side-section-header',\n})`\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n`;\n\nexport const AddIconButton = styled.button.attrs({\n\tclassName: 'bik-add-icon-button',\n})`\n\t${iconActionButton}\n\tbackground: ${COLORS.surface.standard};\n\tborder: 1px solid ${COLORS.stroke.primary};\n`;\n\n// Empty-state tool-source picker (e.g. Manifest / Shopify buttons).\nexport const SourceButtonRow = styled.div.attrs({\n\tclassName: 'bik-source-button-row',\n})`\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tgap: 8px;\n`;\n\nexport const SourceButton = styled.button.attrs({\n\tclassName: 'bik-source-button',\n})`\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n\tpadding: 6px;\n\tborder: 1px solid ${COLORS.stroke.primary};\n\tborder-radius: 4px;\n\tbackground: ${COLORS.surface.standard};\n\tcursor: pointer;\n\theight: 28px;\n\n\t&:hover {\n\t\tbackground: ${COLORS.surface.subdued};\n\t}\n`;\n\nexport const SelectableRow = styled.div.attrs({\n\tclassName: 'bik-selectable-row',\n})`\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n\tpadding: 8px 12px;\n\t/* Fixed 48px rows regardless of the (variably-sized) leading source icon.\n\t box-sizing pins the height across hosts with differing resets; flex-shrink:0\n\t + min-height stop a height-constrained flex column (the merchant side panel)\n\t from squashing the rows — Storybook has room, so it looked fine there. */\n\tmin-height: 48px;\n\tbox-sizing: border-box;\n\tflex-shrink: 0;\n\tborder: 1px solid ${COLORS.stroke.primary};\n\tborder-radius: 4px;\n\tmin-width: 0;\n\toverflow: hidden;\n\n\t/* Leading icon (e.g. tool source) keeps its size; the label takes the rest. */\n\t& > svg {\n\t\tflex-shrink: 0;\n\t}\n`;\n\nexport const RowText = styled.div.attrs({ className: 'bik-row-text' })`\n\tflex: 1;\n\tmin-width: 0;\n\toverflow: hidden;\n\n\t/* Truncate the label to one line with an ellipsis. */\n\t& > * {\n\t\tdisplay: block;\n\t\toverflow: hidden;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t}\n`;\n\n/* Label + trailing verification shield on one row. */\nexport const RowLabel = styled.div.attrs({ className: 'bik-row-label' })`\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 6px;\n\tmin-width: 0;\n\tflex: 1;\n\n\t/* Shrink the label to its text so the shield sits just after it, rather than\n\t RowText's default flex: 1 filling the row and pushing the shield to the end. */\n\t& .bik-row-text {\n\t\tflex: 0 1 auto;\n\t}\n`;\n\nexport const RowRemoveButton = styled.button.attrs({\n\tclassName: 'bik-row-remove-button',\n})`\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tborder: none;\n\tbackground: transparent;\n\tpadding: 0;\n\tcursor: pointer;\n`;\n\n// ── Per-row actions (always-visible edit / delete icon buttons) ───────────────\n\nexport const RowActions = styled.div.attrs({ className: 'bik-row-actions' })`\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 4px;\n\tflex-shrink: 0;\n`;\n\n// Vertical separator between the edit and delete icon buttons.\nexport const RowActionDivider = styled.span.attrs({\n\tclassName: 'bik-row-action-divider',\n})`\n\twidth: 1px;\n\talign-self: stretch;\n\tmargin: 4px 0;\n\tbackground: ${COLORS.stroke.primary};\n`;\n\nexport const RowMenuButton = styled.button.attrs({\n\tclassName: 'bik-row-menu-button',\n})`\n\t${iconActionButton}\n`;\n\nexport const DraftButtonScope = styled.div.attrs({\n\tclassName: 'bik-draft-button-scope',\n})`\n\tdisplay: flex;\n\tflex: 1;\n\n\tbutton {\n\t\tborder-color: ${BASE_COLORS.brand['800']};\n\t}\n\tbutton .text {\n\t\tcolor: ${BASE_COLORS.brand['800']};\n\t}\n`;\n\n// ── Go-live modal ───────────────────────────────────────────────────────────\n\nexport const ModalBody = styled.div.attrs({ className: 'bik-modal-body' })`\n\tpadding: 24px;\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tgap: 16px;\n\ttext-align: center;\n`;\n\nexport const ModalIcon = styled.div.attrs({ className: 'bik-modal-icon' })`\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n`;\n\nexport const ModalActions = styled.div.attrs({\n\tclassName: 'bik-modal-actions',\n})`\n\tdisplay: flex;\n\tgap: 12px;\n\twidth: 100%;\n\t/* Every action shares the row equally. Each action MUST be its own flex\n\t wrapper (a plain <div style=\"display:flex\">, or DraftButtonScope) rather\n\t than a bare Button: on hover the Button relocates its padding into an\n\t inner container, and as the flex item itself that changes its resolved\n\t width — the button visibly grows/shrinks. Wrapped, the div is the sized\n\t track (flex:1) and the Button grows to fill it, absorbing the padding\n\t move so the width stays put. */\n\t> * {\n\t\tflex: 1;\n\t}\n`;\n\n/** Inline action row inside a rich field (e.g. \"Improve with AI\"). */\nexport const FieldActionRow = styled.div.attrs({\n\tclassName: 'bik-field-action-row',\n})`\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n`;\n"],"names":["iconActionButton","css","COLORS","BuilderRoot","styled","TopBar","TopBarSide","BackButton","Main","Rail","Content","ContentCard","StepScroll","Footer","FooterHint","FooterActions","RailList","RailItem","StepBadge","p","SectionHeaderWrap","SectionBodyWrap","FieldBlock","FieldLabelRow","AiTextAreaShell","AiTextAreaInput","CardRow","RadioCard","BASE_COLORS","RadioCardText","ChipWrap","Step3Root","Step3Grid","Step3Divider","SideSection","SideSectionHeader","AddIconButton","SourceButtonRow","SourceButton","SelectableRow","RowText","RowLabel","RowActions","RowActionDivider","RowMenuButton","DraftButtonScope","ModalBody","ModalIcon","ModalActions"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),L=require("../../../assets/icons/cross.svg.js"),T=require("react"),_=require("styled-components"),S=require("../../TypographyStyle.js"),r=require("../../../constants/Theme.js"),B=require("../AgentBuilder.styled.js"),E=require("../constants/charLimits.js"),v=require("./DrawerHeaderText.js"),I=require("./ToolInstructionsField.js"),q=require("../../side-modal/SideModal.js"),D=require("../../switch/Switch.js"),$=require("../../input/Input.js"),A=require("../../tag/Tag.js"),P=t=>t&&typeof t=="object"&&"default"in t?t:{default:t},p=P(_),F={send_email:{title:"Send Email",subtitle:"Notify someone by email when this agent can't continue. You pick the recipient, the AI drafts the message."},send_slack_message:{title:"Send Slack message",subtitle:"Post a message to a Slack channel. You pick the channel, the AI composes the message from the conversation."}},Y=({chips:t,onChange:s,placeholder:c,nativeID:u,hint:h})=>{const[d,y]=T.useState(""),m=()=>{const n=d.split(",").map(i=>i.trim()).filter(Boolean);n.length&&s([...t,...n.filter(i=>!t.includes(i))]),y("")};return o.jsxs(V,{children:[o.jsx(W,{id:u,type:"text",placeholder:c,value:d,onChange:n=>y(n.target.value),onBlur:m,onKeyDown:n=>{n.key==="Enter"||n.key===","?(n.preventDefault(),m()):n.key==="Backspace"&&d===""&&t.length>0&&s(t.slice(0,-1))}}),h,t.length>0&&o.jsx(G,{children:t.map((n,i)=>o.jsx(A.Tag,{tagText:n,theme:"light",type:"neutral",variant:"regular",TrailingIcon:L.default,onTrailingIconClicked:()=>s(t.filter((f,x)=>x!==i))},`${n}-${i}`))})]})},M=(t,s)=>{const c={};return Object.keys(t).forEach(u=>{c[u]=s?.params[u]?.value??t[u].value}),c},z=t=>String(t??"").split(",").map(s=>s.trim()).filter(Boolean),H=({toolKey:t,template:s,onClose:c,onSave:u,initial:h,onImprove:d,charLimits:y=E.AGENT_CHAR_LIMITS,zIndex:m})=>{const[n,i]=T.useState(()=>M(s,h)),[f,x]=T.useState(!1),k=Object.values(s),j=t==="send_email",g=(e,l)=>i(a=>({...a,[e]:l})),O=k.every(e=>!e.required||String(n[e.key]??"").trim()!==""),w=async()=>{if(!O||f)return;const e={};k.forEach(C=>{e[C.key]={...C,value:n[C.key]}});const l={id:h?.id??`${t}_${Date.now().toString(36)}`,tool_key:t,params:e},a=u(l);if(a&&typeof a.then=="function"){x(!0);try{await a}finally{x(!1)}}},R=e=>{const l=`config-tool-${e.key.toLowerCase()}`;switch(e.component){case"KeywordInput":if(!j)break;return o.jsxs(B.FieldBlock,{children:[o.jsx(S.TitleSmall,{color:r.COLORS.content.primary,children:e.title}),o.jsx(Y,{nativeID:l,placeholder:e.hint??"",chips:z(n[e.key]),onChange:a=>g(e.key,a.join(",")),hint:o.jsx(S.BodyCaption,{color:r.COLORS.content.secondary,children:"Press Enter or comma to add multiple emails"})})]},e.key);case"MultilineInput":return o.jsx(I.ToolInstructionsField,{"data-test":l,label:e.title,value:String(n[e.key]??""),onChange:a=>g(e.key,a),maxLength:y.instructions,placeholder:e.hint??"",onImprove:d},e.key);case"Switch":return o.jsxs(N,{children:[o.jsxs(J,{children:[o.jsx(S.TitleSmall,{color:r.COLORS.content.primary,children:e.title}),e.hint&&o.jsx(S.BodyCaption,{color:r.COLORS.content.secondary,children:e.hint})]}),o.jsx(D.Switch,{"data-test":l,value:!!n[e.key],onValueChange:async a=>g(e.key,a)})]},e.key)}return o.jsx($.Input,{"data-test":l,variant:"small",labelText:e.title,labelTextBold:!0,placeholder:e.hint??"",value:String(n[e.key]??""),onChangeText:a=>g(e.key,a)},e.key)},b=F[t];return o.jsx(q.SideModal,{header:b.title,closeOnEscapeKey:!1,zIndex:m,headerCustomComponent:o.jsx(v.DrawerHeaderText,{title:b.title,subtitle:b.subtitle}),hideCrossButton:!1,width:"431px",headerStyle:v.DRAWER_HEADER_STYLE,bodyStyle:v.DRAWER_BODY_STYLE,onClose:c,saveButtonProps:{"data-test":"config-tool-save",buttonText:"Save",buttonType:"primary",size:"small",disabled:!O,isLoading:f,onClick:w},cancelButtonProps:{"data-test":"config-tool-cancel",buttonText:"Cancel",buttonType:"tertiaryGray",size:"small",onClick:c},children:k.map(R)})},V=p.default.div`
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),L=require("../../../assets/icons/cross.svg.js"),T=require("react"),_=require("styled-components"),S=require("../../TypographyStyle.js"),r=require("../../../constants/Theme.js"),B=require("../AgentBuilder.styled.js"),I=require("../constants/charLimits.js"),v=require("./DrawerHeaderText.js"),q=require("./ToolInstructionsField.js"),E=require("../../side-modal/SideModal.js"),D=require("../../switch/Switch.js"),$=require("../../input/Input.js"),A=require("../../tag/Tag.js"),P=t=>t&&typeof t=="object"&&"default"in t?t:{default:t},p=P(_),F={send_email:{title:"Send email",subtitle:"Notify someone by email when this agent can't continue. You pick the recipient, the AI drafts the message."},send_slack_message:{title:"Send Slack message",subtitle:"Post a message to a Slack channel. You pick the channel, the AI composes the message from the conversation."}},Y=({chips:t,onChange:s,placeholder:c,nativeID:u,hint:h})=>{const[d,y]=T.useState(""),m=()=>{const n=d.split(",").map(i=>i.trim()).filter(Boolean);n.length&&s([...t,...n.filter(i=>!t.includes(i))]),y("")};return o.jsxs(V,{children:[o.jsx(W,{id:u,type:"text",placeholder:c,value:d,onChange:n=>y(n.target.value),onBlur:m,onKeyDown:n=>{n.key==="Enter"||n.key===","?(n.preventDefault(),m()):n.key==="Backspace"&&d===""&&t.length>0&&s(t.slice(0,-1))}}),h,t.length>0&&o.jsx(G,{children:t.map((n,i)=>o.jsx(A.Tag,{tagText:n,theme:"light",type:"neutral",variant:"regular",TrailingIcon:L.default,onTrailingIconClicked:()=>s(t.filter((f,x)=>x!==i))},`${n}-${i}`))})]})},M=(t,s)=>{const c={};return Object.keys(t).forEach(u=>{c[u]=s?.params[u]?.value??t[u].value}),c},z=t=>String(t??"").split(",").map(s=>s.trim()).filter(Boolean),H=({toolKey:t,template:s,onClose:c,onSave:u,initial:h,onImprove:d,charLimits:y=I.AGENT_CHAR_LIMITS,zIndex:m})=>{const[n,i]=T.useState(()=>M(s,h)),[f,x]=T.useState(!1),k=Object.values(s),j=t==="send_email",g=(e,l)=>i(a=>({...a,[e]:l})),O=k.every(e=>!e.required||String(n[e.key]??"").trim()!==""),w=async()=>{if(!O||f)return;const e={};k.forEach(C=>{e[C.key]={...C,value:n[C.key]}});const l={id:h?.id??`${t}_${Date.now().toString(36)}`,tool_key:t,params:e},a=u(l);if(a&&typeof a.then=="function"){x(!0);try{await a}finally{x(!1)}}},R=e=>{const l=`config-tool-${e.key.toLowerCase()}`;switch(e.component){case"KeywordInput":if(!j)break;return o.jsxs(B.FieldBlock,{children:[o.jsx(S.TitleSmall,{color:r.COLORS.content.primary,children:e.title}),o.jsx(Y,{nativeID:l,placeholder:e.hint??"",chips:z(n[e.key]),onChange:a=>g(e.key,a.join(",")),hint:o.jsx(S.BodyCaption,{color:r.COLORS.content.secondary,children:"Press Enter or comma to add multiple emails"})})]},e.key);case"MultilineInput":return o.jsx(q.ToolInstructionsField,{"data-test":l,label:e.title,value:String(n[e.key]??""),onChange:a=>g(e.key,a),maxLength:y.instructions,placeholder:e.hint??"",onImprove:d},e.key);case"Switch":return o.jsxs(N,{children:[o.jsxs(J,{children:[o.jsx(S.TitleSmall,{color:r.COLORS.content.primary,children:e.title}),e.hint&&o.jsx(S.BodyCaption,{color:r.COLORS.content.secondary,children:e.hint})]}),o.jsx(D.Switch,{"data-test":l,value:!!n[e.key],onValueChange:async a=>g(e.key,a)})]},e.key)}return o.jsx($.Input,{"data-test":l,variant:"small",labelText:e.title,labelTextBold:!0,placeholder:e.hint??"",value:String(n[e.key]??""),onChangeText:a=>g(e.key,a)},e.key)},b=F[t];return o.jsx(E.SideModal,{header:b.title,closeOnEscapeKey:!1,zIndex:m,headerCustomComponent:o.jsx(v.DrawerHeaderText,{title:b.title,subtitle:b.subtitle}),hideCrossButton:!1,width:"431px",headerStyle:v.DRAWER_HEADER_STYLE,bodyStyle:v.DRAWER_BODY_STYLE,onClose:c,saveButtonProps:{"data-test":"config-tool-save",buttonText:"Save",buttonType:"primary",size:"small",disabled:!O,isLoading:f,onClick:w},cancelButtonProps:{"data-test":"config-tool-cancel",buttonText:"Cancel",buttonType:"tertiaryGray",size:"small",onClick:c},children:k.map(R)})},V=p.default.div`
2
2
  display: flex;
3
3
  flex-direction: column;
4
4
  gap: 8px;
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigToolPanel.js","sources":["../../../../../src/components/agent-builder/components/ConfigToolPanel.tsx"],"sourcesContent":["import CrossIcon from '@src/assets/icons/cross.svg';\nimport React, { useState } from 'react';\nimport styled from 'styled-components';\nimport { Input } from '@src/components/input';\nimport { SideModal } from '@src/components/side-modal';\nimport { Switch } from '@src/components/switch';\nimport { Tag } from '@src/components/tag';\nimport { BodyCaption, TitleSmall } from '@src/components/TypographyStyle';\nimport { COLORS } from '@src/constants/Theme';\nimport {\n\tConfigToolConfig,\n\tConfigToolKey,\n\tParamField,\n\tParamsBlob,\n} from '../AgentBuilder.model';\nimport { FieldBlock } from '../AgentBuilder.styled';\nimport type { AgentCharLimits } from '../constants/charLimits';\nimport { AGENT_CHAR_LIMITS } from '../constants/charLimits';\nimport {\n\tDRAWER_BODY_STYLE,\n\tDRAWER_HEADER_STYLE,\n\tDrawerHeaderText,\n} from './DrawerHeaderText';\nimport { ToolInstructionsField } from './ToolInstructionsField';\n\n/** Header copy per shared-drawer tool. */\nconst TOOL_COPY: Record<ConfigToolKey, { title: string; subtitle: string }> = {\n\tsend_email: {\n\t\ttitle: 'Send Email',\n\t\tsubtitle:\n\t\t\t\"Notify someone by email when this agent can't continue. You pick the recipient, the AI drafts the message.\",\n\t},\n\tsend_slack_message: {\n\t\ttitle: 'Send Slack message',\n\t\tsubtitle:\n\t\t\t'Post a message to a Slack channel. You pick the channel, the AI composes the message from the conversation.',\n\t},\n};\n\ninterface ConfigToolPanelProps {\n\t/** Which tool this drawer configures (drives copy + persistence). */\n\ttoolKey: ConfigToolKey;\n\t/**\n\t * The backend template (`list-catalog` → params) for `toolKey`. The form is\n\t * DYNAMIC: exactly these fields render, in this order, each by its\n\t * `component` kind (KeywordInput | MultilineInput | Switch | fallback input).\n\t */\n\ttemplate: ParamsBlob;\n\tonClose: () => void;\n\t/** Persist the filled template. A pending promise shows the Save loader. */\n\tonSave: (config: ConfigToolConfig) => void | Promise<void>;\n\t/** Seed values when editing an existing tool. */\n\tinitial?: ConfigToolConfig;\n\t/** Optional \"Improve with AI\" for multiline fields. Omit to hide it. */\n\tonImprove?: (text: string) => Promise<string>;\n\tcharLimits?: AgentCharLimits;\n\t/** SideModal stacking order — raise it when opened over another drawer. */\n\tzIndex?: number;\n}\n\ninterface EmailChipsFieldProps {\n\tchips: string[];\n\tonChange: (next: string[]) => void;\n\tplaceholder: string;\n\tnativeID?: string;\n\t/** Optional helper caption shown between the input and the chips. */\n\thint?: React.ReactNode;\n}\n\n/**\n * Email entry field: type an address and press Enter / comma (or blur) to add\n * it. Added emails render as removable chips BELOW the input — not inside it.\n * Backspace on an empty input removes the last chip.\n */\nconst EmailChipsField: React.FC<EmailChipsFieldProps> = ({\n\tchips,\n\tonChange,\n\tplaceholder,\n\tnativeID,\n\thint,\n}) => {\n\tconst [buffer, setBuffer] = useState('');\n\n\tconst commit = () => {\n\t\tconst parts = buffer\n\t\t\t.split(',')\n\t\t\t.map((s) => s.trim())\n\t\t\t.filter(Boolean);\n\t\tif (parts.length) {\n\t\t\tonChange([...chips, ...parts.filter((p) => !chips.includes(p))]);\n\t\t}\n\t\tsetBuffer('');\n\t};\n\n\treturn (\n\t\t<ChipsFieldWrap>\n\t\t\t<EmailInputBox\n\t\t\t\tid={nativeID}\n\t\t\t\ttype=\"text\"\n\t\t\t\tplaceholder={placeholder}\n\t\t\t\tvalue={buffer}\n\t\t\t\tonChange={(e) => setBuffer(e.target.value)}\n\t\t\t\tonBlur={commit}\n\t\t\t\tonKeyDown={(e) => {\n\t\t\t\t\tif (e.key === 'Enter' || e.key === ',') {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tcommit();\n\t\t\t\t\t} else if (\n\t\t\t\t\t\te.key === 'Backspace' &&\n\t\t\t\t\t\tbuffer === '' &&\n\t\t\t\t\t\tchips.length > 0\n\t\t\t\t\t) {\n\t\t\t\t\t\tonChange(chips.slice(0, -1));\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t{hint}\n\t\t\t{chips.length > 0 && (\n\t\t\t\t<ChipRow>\n\t\t\t\t\t{chips.map((email, i) => (\n\t\t\t\t\t\t<Tag\n\t\t\t\t\t\t\tkey={`${email}-${i}`}\n\t\t\t\t\t\t\ttagText={email}\n\t\t\t\t\t\t\ttheme=\"light\"\n\t\t\t\t\t\t\ttype=\"neutral\"\n\t\t\t\t\t\t\tvariant=\"regular\"\n\t\t\t\t\t\t\tTrailingIcon={CrossIcon}\n\t\t\t\t\t\t\tonTrailingIconClicked={() =>\n\t\t\t\t\t\t\t\tonChange(chips.filter((_, idx) => idx !== i))\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t))}\n\t\t\t\t</ChipRow>\n\t\t\t)}\n\t\t</ChipsFieldWrap>\n\t);\n};\n\n/** Field values keyed by param key (the editable part of a {@link ParamsBlob}). */\ntype ParamValues = Record<string, string | boolean | number | object>;\n\nconst seedValues = (\n\ttemplate: ParamsBlob,\n\tinitial?: ConfigToolConfig,\n): ParamValues => {\n\tconst values: ParamValues = {};\n\tObject.keys(template).forEach((key) => {\n\t\tvalues[key] = initial?.params[key]?.value ?? template[key].value;\n\t});\n\treturn values;\n};\n\n/** Chips ↔ the string value KeywordInput fields carry (comma-separated). */\nconst toChips = (value: unknown): string[] =>\n\tString(value ?? '')\n\t\t.split(',')\n\t\t.map((s) => s.trim())\n\t\t.filter(Boolean);\n\n/**\n * Shared right-side drawer for the params-driven configurable tools (email /\n * Slack). Fully backend-driven: it renders the template fields by their\n * `component` kind and returns the same blob with values filled in. KeywordInput\n * renders as multi-value email chips only for `send_email`; every other tool\n * gets a plain single-line input. Mount it fresh per open (key it) so `initial`\n * seeds the state. Built on the shared `SideModal` shell.\n */\nexport const ConfigToolPanel: React.FC<ConfigToolPanelProps> = ({\n\ttoolKey,\n\ttemplate,\n\tonClose,\n\tonSave,\n\tinitial,\n\tonImprove,\n\tcharLimits = AGENT_CHAR_LIMITS,\n\tzIndex,\n}) => {\n\tconst [values, setValues] = useState<ParamValues>(() =>\n\t\tseedValues(template, initial),\n\t);\n\tconst [saving, setSaving] = useState(false);\n\n\tconst fields = Object.values(template);\n\tconst isEmail = toolKey === 'send_email';\n\tconst setValue = (key: string, value: string | boolean | number | object) =>\n\t\tsetValues((prev) => ({ ...prev, [key]: value }));\n\n\tconst canSave = fields.every(\n\t\t(f) => !f.required || String(values[f.key] ?? '').trim() !== '',\n\t);\n\n\tconst handleSave = async () => {\n\t\tif (!canSave || saving) {\n\t\t\treturn;\n\t\t}\n\t\tconst params: ParamsBlob = {};\n\t\tfields.forEach((f) => {\n\t\t\t// Save the FULL descriptor with only `value` changed — the backend\n\t\t\t// infers each field's type from `component` and reads `required`.\n\t\t\tparams[f.key] = { ...f, value: values[f.key] };\n\t\t});\n\t\tconst config: ConfigToolConfig = {\n\t\t\tid: initial?.id ?? `${toolKey}_${Date.now().toString(36)}`,\n\t\t\ttool_key: toolKey,\n\t\t\tparams,\n\t\t};\n\t\tconst result = onSave(config);\n\t\tif (result && typeof (result as Promise<void>).then === 'function') {\n\t\t\tsetSaving(true);\n\t\t\ttry {\n\t\t\t\tawait result;\n\t\t\t} finally {\n\t\t\t\tsetSaving(false);\n\t\t\t}\n\t\t}\n\t};\n\n\tconst renderField = (field: ParamField) => {\n\t\tconst testId = `config-tool-${field.key.toLowerCase()}`;\n\t\tswitch (field.component) {\n\t\t\t// Multi-value email chips — only for the email tool. Slack's KeywordInput\n\t\t\t// (channelId) falls through to the plain input below.\n\t\t\tcase 'KeywordInput':\n\t\t\t\tif (!isEmail) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\treturn (\n\t\t\t\t\t<FieldBlock key={field.key}>\n\t\t\t\t\t\t<TitleSmall color={COLORS.content.primary}>\n\t\t\t\t\t\t\t{field.title}\n\t\t\t\t\t\t</TitleSmall>\n\t\t\t\t\t\t<EmailChipsField\n\t\t\t\t\t\t\tnativeID={testId}\n\t\t\t\t\t\t\tplaceholder={field.hint ?? ''}\n\t\t\t\t\t\t\tchips={toChips(values[field.key])}\n\t\t\t\t\t\t\tonChange={(chips) => setValue(field.key, chips.join(','))}\n\t\t\t\t\t\t\thint={\n\t\t\t\t\t\t\t\t<BodyCaption color={COLORS.content.secondary}>\n\t\t\t\t\t\t\t\t\tPress Enter or comma to add multiple emails\n\t\t\t\t\t\t\t\t</BodyCaption>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FieldBlock>\n\t\t\t\t);\n\t\t\tcase 'MultilineInput':\n\t\t\t\treturn (\n\t\t\t\t\t<ToolInstructionsField\n\t\t\t\t\t\tkey={field.key}\n\t\t\t\t\t\tdata-test={testId}\n\t\t\t\t\t\tlabel={field.title}\n\t\t\t\t\t\tvalue={String(values[field.key] ?? '')}\n\t\t\t\t\t\tonChange={(text) => setValue(field.key, text)}\n\t\t\t\t\t\tmaxLength={charLimits.instructions}\n\t\t\t\t\t\tplaceholder={field.hint ?? ''}\n\t\t\t\t\t\tonImprove={onImprove}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\tcase 'Switch':\n\t\t\t\treturn (\n\t\t\t\t\t<SwitchRow key={field.key}>\n\t\t\t\t\t\t<SwitchText>\n\t\t\t\t\t\t\t<TitleSmall color={COLORS.content.primary}>\n\t\t\t\t\t\t\t\t{field.title}\n\t\t\t\t\t\t\t</TitleSmall>\n\t\t\t\t\t\t\t{field.hint && (\n\t\t\t\t\t\t\t\t<BodyCaption color={COLORS.content.secondary}>\n\t\t\t\t\t\t\t\t\t{field.hint}\n\t\t\t\t\t\t\t\t</BodyCaption>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</SwitchText>\n\t\t\t\t\t\t<Switch\n\t\t\t\t\t\t\tdata-test={testId}\n\t\t\t\t\t\t\tvalue={Boolean(values[field.key])}\n\t\t\t\t\t\t\tonValueChange={async (next) => setValue(field.key, next)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</SwitchRow>\n\t\t\t\t);\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t\treturn (\n\t\t\t<Input\n\t\t\t\tkey={field.key}\n\t\t\t\tdata-test={testId}\n\t\t\t\tvariant=\"small\"\n\t\t\t\tlabelText={field.title}\n\t\t\t\tlabelTextBold\n\t\t\t\tplaceholder={field.hint ?? ''}\n\t\t\t\tvalue={String(values[field.key] ?? '')}\n\t\t\t\tonChangeText={(text) => setValue(field.key, text)}\n\t\t\t/>\n\t\t);\n\t};\n\n\tconst copy = TOOL_COPY[toolKey];\n\n\treturn (\n\t\t<SideModal\n\t\t\theader={copy.title}\n\t\t\tcloseOnEscapeKey={false}\n\t\t\tzIndex={zIndex}\n\t\t\theaderCustomComponent={\n\t\t\t\t<DrawerHeaderText title={copy.title} subtitle={copy.subtitle} />\n\t\t\t}\n\t\t\thideCrossButton={false}\n\t\t\twidth=\"431px\"\n\t\t\theaderStyle={DRAWER_HEADER_STYLE}\n\t\t\tbodyStyle={DRAWER_BODY_STYLE}\n\t\t\tonClose={onClose}\n\t\t\tsaveButtonProps={{\n\t\t\t\t'data-test': 'config-tool-save',\n\t\t\t\tbuttonText: 'Save',\n\t\t\t\tbuttonType: 'primary',\n\t\t\t\tsize: 'small',\n\t\t\t\tdisabled: !canSave,\n\t\t\t\tisLoading: saving,\n\t\t\t\tonClick: handleSave,\n\t\t\t}}\n\t\t\tcancelButtonProps={{\n\t\t\t\t'data-test': 'config-tool-cancel',\n\t\t\t\tbuttonText: 'Cancel',\n\t\t\t\tbuttonType: 'tertiaryGray',\n\t\t\t\tsize: 'small',\n\t\t\t\tonClick: onClose,\n\t\t\t}}\n\t\t>\n\t\t\t{fields.map(renderField)}\n\t\t</SideModal>\n\t);\n};\n\nconst ChipsFieldWrap = styled.div`\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 8px;\n`;\n\nconst EmailInputBox = styled.input`\n\twidth: 100%;\n\tmin-width: 0;\n\tbox-sizing: border-box;\n\theight: 32px;\n\tpadding: 0 8px;\n\tborder: 1px solid ${COLORS.stroke.primary};\n\tborder-radius: 4px;\n\tfont-family: 'Inter', sans-serif;\n\tfont-size: 14px;\n\tcolor: ${COLORS.content.primary};\n\tbackground: ${COLORS.surface.standard};\n\toutline: none;\n\n\t&::placeholder {\n\t\tcolor: ${COLORS.content.secondary};\n\t}\n\n\t&:focus {\n\t\tborder-color: ${COLORS.stroke.brand};\n\t}\n`;\n\nconst ChipRow = styled.div`\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tgap: 6px;\n`;\n\nconst SwitchRow = styled.div`\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tgap: 12px;\n`;\n\nconst SwitchText = styled.div`\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 4px;\n\tmin-width: 0;\n`;\n"],"names":["TOOL_COPY","EmailChipsField","chips","onChange","placeholder","nativeID","hint","buffer","setBuffer","useState","commit","parts","s","p","ChipsFieldWrap","jsx","EmailInputBox","e","ChipRow","email","Tag","CrossIcon","_","idx","seedValues","template","initial","values","key","toChips","value","ConfigToolPanel","toolKey","onClose","onSave","onImprove","charLimits","AGENT_CHAR_LIMITS","zIndex","setValues","saving","setSaving","fields","isEmail","setValue","prev","canSave","f","handleSave","params","config","result","renderField","field","testId","FieldBlock","TitleSmall","COLORS","BodyCaption","ToolInstructionsField","text","SwitchRow","jsxs","SwitchText","Switch","next","Input","copy","SideModal","DrawerHeaderText","DRAWER_HEADER_STYLE","DRAWER_BODY_STYLE","styled"],"mappings":"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"}
1
+ {"version":3,"file":"ConfigToolPanel.js","sources":["../../../../../src/components/agent-builder/components/ConfigToolPanel.tsx"],"sourcesContent":["import CrossIcon from '@src/assets/icons/cross.svg';\nimport React, { useState } from 'react';\nimport styled from 'styled-components';\nimport { Input } from '@src/components/input';\nimport { SideModal } from '@src/components/side-modal';\nimport { Switch } from '@src/components/switch';\nimport { Tag } from '@src/components/tag';\nimport { BodyCaption, TitleSmall } from '@src/components/TypographyStyle';\nimport { COLORS } from '@src/constants/Theme';\nimport {\n\tConfigToolConfig,\n\tConfigToolKey,\n\tParamField,\n\tParamsBlob,\n} from '../AgentBuilder.model';\nimport { FieldBlock } from '../AgentBuilder.styled';\nimport type { AgentCharLimits } from '../constants/charLimits';\nimport { AGENT_CHAR_LIMITS } from '../constants/charLimits';\nimport {\n\tDRAWER_BODY_STYLE,\n\tDRAWER_HEADER_STYLE,\n\tDrawerHeaderText,\n} from './DrawerHeaderText';\nimport { ToolInstructionsField } from './ToolInstructionsField';\n\n/** Header copy per shared-drawer tool. */\nconst TOOL_COPY: Record<ConfigToolKey, { title: string; subtitle: string }> = {\n\tsend_email: {\n\t\ttitle: 'Send email',\n\t\tsubtitle:\n\t\t\t\"Notify someone by email when this agent can't continue. You pick the recipient, the AI drafts the message.\",\n\t},\n\tsend_slack_message: {\n\t\ttitle: 'Send Slack message',\n\t\tsubtitle:\n\t\t\t'Post a message to a Slack channel. You pick the channel, the AI composes the message from the conversation.',\n\t},\n};\n\ninterface ConfigToolPanelProps {\n\t/** Which tool this drawer configures (drives copy + persistence). */\n\ttoolKey: ConfigToolKey;\n\t/**\n\t * The backend template (`list-catalog` → params) for `toolKey`. The form is\n\t * DYNAMIC: exactly these fields render, in this order, each by its\n\t * `component` kind (KeywordInput | MultilineInput | Switch | fallback input).\n\t */\n\ttemplate: ParamsBlob;\n\tonClose: () => void;\n\t/** Persist the filled template. A pending promise shows the Save loader. */\n\tonSave: (config: ConfigToolConfig) => void | Promise<void>;\n\t/** Seed values when editing an existing tool. */\n\tinitial?: ConfigToolConfig;\n\t/** Optional \"Improve with AI\" for multiline fields. Omit to hide it. */\n\tonImprove?: (text: string) => Promise<string>;\n\tcharLimits?: AgentCharLimits;\n\t/** SideModal stacking order — raise it when opened over another drawer. */\n\tzIndex?: number;\n}\n\ninterface EmailChipsFieldProps {\n\tchips: string[];\n\tonChange: (next: string[]) => void;\n\tplaceholder: string;\n\tnativeID?: string;\n\t/** Optional helper caption shown between the input and the chips. */\n\thint?: React.ReactNode;\n}\n\n/**\n * Email entry field: type an address and press Enter / comma (or blur) to add\n * it. Added emails render as removable chips BELOW the input — not inside it.\n * Backspace on an empty input removes the last chip.\n */\nconst EmailChipsField: React.FC<EmailChipsFieldProps> = ({\n\tchips,\n\tonChange,\n\tplaceholder,\n\tnativeID,\n\thint,\n}) => {\n\tconst [buffer, setBuffer] = useState('');\n\n\tconst commit = () => {\n\t\tconst parts = buffer\n\t\t\t.split(',')\n\t\t\t.map((s) => s.trim())\n\t\t\t.filter(Boolean);\n\t\tif (parts.length) {\n\t\t\tonChange([...chips, ...parts.filter((p) => !chips.includes(p))]);\n\t\t}\n\t\tsetBuffer('');\n\t};\n\n\treturn (\n\t\t<ChipsFieldWrap>\n\t\t\t<EmailInputBox\n\t\t\t\tid={nativeID}\n\t\t\t\ttype=\"text\"\n\t\t\t\tplaceholder={placeholder}\n\t\t\t\tvalue={buffer}\n\t\t\t\tonChange={(e) => setBuffer(e.target.value)}\n\t\t\t\tonBlur={commit}\n\t\t\t\tonKeyDown={(e) => {\n\t\t\t\t\tif (e.key === 'Enter' || e.key === ',') {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tcommit();\n\t\t\t\t\t} else if (\n\t\t\t\t\t\te.key === 'Backspace' &&\n\t\t\t\t\t\tbuffer === '' &&\n\t\t\t\t\t\tchips.length > 0\n\t\t\t\t\t) {\n\t\t\t\t\t\tonChange(chips.slice(0, -1));\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t{hint}\n\t\t\t{chips.length > 0 && (\n\t\t\t\t<ChipRow>\n\t\t\t\t\t{chips.map((email, i) => (\n\t\t\t\t\t\t<Tag\n\t\t\t\t\t\t\tkey={`${email}-${i}`}\n\t\t\t\t\t\t\ttagText={email}\n\t\t\t\t\t\t\ttheme=\"light\"\n\t\t\t\t\t\t\ttype=\"neutral\"\n\t\t\t\t\t\t\tvariant=\"regular\"\n\t\t\t\t\t\t\tTrailingIcon={CrossIcon}\n\t\t\t\t\t\t\tonTrailingIconClicked={() =>\n\t\t\t\t\t\t\t\tonChange(chips.filter((_, idx) => idx !== i))\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t))}\n\t\t\t\t</ChipRow>\n\t\t\t)}\n\t\t</ChipsFieldWrap>\n\t);\n};\n\n/** Field values keyed by param key (the editable part of a {@link ParamsBlob}). */\ntype ParamValues = Record<string, string | boolean | number | object>;\n\nconst seedValues = (\n\ttemplate: ParamsBlob,\n\tinitial?: ConfigToolConfig,\n): ParamValues => {\n\tconst values: ParamValues = {};\n\tObject.keys(template).forEach((key) => {\n\t\tvalues[key] = initial?.params[key]?.value ?? template[key].value;\n\t});\n\treturn values;\n};\n\n/** Chips ↔ the string value KeywordInput fields carry (comma-separated). */\nconst toChips = (value: unknown): string[] =>\n\tString(value ?? '')\n\t\t.split(',')\n\t\t.map((s) => s.trim())\n\t\t.filter(Boolean);\n\n/**\n * Shared right-side drawer for the params-driven configurable tools (email /\n * Slack). Fully backend-driven: it renders the template fields by their\n * `component` kind and returns the same blob with values filled in. KeywordInput\n * renders as multi-value email chips only for `send_email`; every other tool\n * gets a plain single-line input. Mount it fresh per open (key it) so `initial`\n * seeds the state. Built on the shared `SideModal` shell.\n */\nexport const ConfigToolPanel: React.FC<ConfigToolPanelProps> = ({\n\ttoolKey,\n\ttemplate,\n\tonClose,\n\tonSave,\n\tinitial,\n\tonImprove,\n\tcharLimits = AGENT_CHAR_LIMITS,\n\tzIndex,\n}) => {\n\tconst [values, setValues] = useState<ParamValues>(() =>\n\t\tseedValues(template, initial),\n\t);\n\tconst [saving, setSaving] = useState(false);\n\n\tconst fields = Object.values(template);\n\tconst isEmail = toolKey === 'send_email';\n\tconst setValue = (key: string, value: string | boolean | number | object) =>\n\t\tsetValues((prev) => ({ ...prev, [key]: value }));\n\n\tconst canSave = fields.every(\n\t\t(f) => !f.required || String(values[f.key] ?? '').trim() !== '',\n\t);\n\n\tconst handleSave = async () => {\n\t\tif (!canSave || saving) {\n\t\t\treturn;\n\t\t}\n\t\tconst params: ParamsBlob = {};\n\t\tfields.forEach((f) => {\n\t\t\t// Save the FULL descriptor with only `value` changed — the backend\n\t\t\t// infers each field's type from `component` and reads `required`.\n\t\t\tparams[f.key] = { ...f, value: values[f.key] };\n\t\t});\n\t\tconst config: ConfigToolConfig = {\n\t\t\tid: initial?.id ?? `${toolKey}_${Date.now().toString(36)}`,\n\t\t\ttool_key: toolKey,\n\t\t\tparams,\n\t\t};\n\t\tconst result = onSave(config);\n\t\tif (result && typeof (result as Promise<void>).then === 'function') {\n\t\t\tsetSaving(true);\n\t\t\ttry {\n\t\t\t\tawait result;\n\t\t\t} finally {\n\t\t\t\tsetSaving(false);\n\t\t\t}\n\t\t}\n\t};\n\n\tconst renderField = (field: ParamField) => {\n\t\tconst testId = `config-tool-${field.key.toLowerCase()}`;\n\t\tswitch (field.component) {\n\t\t\t// Multi-value email chips — only for the email tool. Slack's KeywordInput\n\t\t\t// (channelId) falls through to the plain input below.\n\t\t\tcase 'KeywordInput':\n\t\t\t\tif (!isEmail) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\treturn (\n\t\t\t\t\t<FieldBlock key={field.key}>\n\t\t\t\t\t\t<TitleSmall color={COLORS.content.primary}>\n\t\t\t\t\t\t\t{field.title}\n\t\t\t\t\t\t</TitleSmall>\n\t\t\t\t\t\t<EmailChipsField\n\t\t\t\t\t\t\tnativeID={testId}\n\t\t\t\t\t\t\tplaceholder={field.hint ?? ''}\n\t\t\t\t\t\t\tchips={toChips(values[field.key])}\n\t\t\t\t\t\t\tonChange={(chips) => setValue(field.key, chips.join(','))}\n\t\t\t\t\t\t\thint={\n\t\t\t\t\t\t\t\t<BodyCaption color={COLORS.content.secondary}>\n\t\t\t\t\t\t\t\t\tPress Enter or comma to add multiple emails\n\t\t\t\t\t\t\t\t</BodyCaption>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FieldBlock>\n\t\t\t\t);\n\t\t\tcase 'MultilineInput':\n\t\t\t\treturn (\n\t\t\t\t\t<ToolInstructionsField\n\t\t\t\t\t\tkey={field.key}\n\t\t\t\t\t\tdata-test={testId}\n\t\t\t\t\t\tlabel={field.title}\n\t\t\t\t\t\tvalue={String(values[field.key] ?? '')}\n\t\t\t\t\t\tonChange={(text) => setValue(field.key, text)}\n\t\t\t\t\t\tmaxLength={charLimits.instructions}\n\t\t\t\t\t\tplaceholder={field.hint ?? ''}\n\t\t\t\t\t\tonImprove={onImprove}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\tcase 'Switch':\n\t\t\t\treturn (\n\t\t\t\t\t<SwitchRow key={field.key}>\n\t\t\t\t\t\t<SwitchText>\n\t\t\t\t\t\t\t<TitleSmall color={COLORS.content.primary}>\n\t\t\t\t\t\t\t\t{field.title}\n\t\t\t\t\t\t\t</TitleSmall>\n\t\t\t\t\t\t\t{field.hint && (\n\t\t\t\t\t\t\t\t<BodyCaption color={COLORS.content.secondary}>\n\t\t\t\t\t\t\t\t\t{field.hint}\n\t\t\t\t\t\t\t\t</BodyCaption>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</SwitchText>\n\t\t\t\t\t\t<Switch\n\t\t\t\t\t\t\tdata-test={testId}\n\t\t\t\t\t\t\tvalue={Boolean(values[field.key])}\n\t\t\t\t\t\t\tonValueChange={async (next) => setValue(field.key, next)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</SwitchRow>\n\t\t\t\t);\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t\treturn (\n\t\t\t<Input\n\t\t\t\tkey={field.key}\n\t\t\t\tdata-test={testId}\n\t\t\t\tvariant=\"small\"\n\t\t\t\tlabelText={field.title}\n\t\t\t\tlabelTextBold\n\t\t\t\tplaceholder={field.hint ?? ''}\n\t\t\t\tvalue={String(values[field.key] ?? '')}\n\t\t\t\tonChangeText={(text) => setValue(field.key, text)}\n\t\t\t/>\n\t\t);\n\t};\n\n\tconst copy = TOOL_COPY[toolKey];\n\n\treturn (\n\t\t<SideModal\n\t\t\theader={copy.title}\n\t\t\tcloseOnEscapeKey={false}\n\t\t\tzIndex={zIndex}\n\t\t\theaderCustomComponent={\n\t\t\t\t<DrawerHeaderText title={copy.title} subtitle={copy.subtitle} />\n\t\t\t}\n\t\t\thideCrossButton={false}\n\t\t\twidth=\"431px\"\n\t\t\theaderStyle={DRAWER_HEADER_STYLE}\n\t\t\tbodyStyle={DRAWER_BODY_STYLE}\n\t\t\tonClose={onClose}\n\t\t\tsaveButtonProps={{\n\t\t\t\t'data-test': 'config-tool-save',\n\t\t\t\tbuttonText: 'Save',\n\t\t\t\tbuttonType: 'primary',\n\t\t\t\tsize: 'small',\n\t\t\t\tdisabled: !canSave,\n\t\t\t\tisLoading: saving,\n\t\t\t\tonClick: handleSave,\n\t\t\t}}\n\t\t\tcancelButtonProps={{\n\t\t\t\t'data-test': 'config-tool-cancel',\n\t\t\t\tbuttonText: 'Cancel',\n\t\t\t\tbuttonType: 'tertiaryGray',\n\t\t\t\tsize: 'small',\n\t\t\t\tonClick: onClose,\n\t\t\t}}\n\t\t>\n\t\t\t{fields.map(renderField)}\n\t\t</SideModal>\n\t);\n};\n\nconst ChipsFieldWrap = styled.div`\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 8px;\n`;\n\nconst EmailInputBox = styled.input`\n\twidth: 100%;\n\tmin-width: 0;\n\tbox-sizing: border-box;\n\theight: 32px;\n\tpadding: 0 8px;\n\tborder: 1px solid ${COLORS.stroke.primary};\n\tborder-radius: 4px;\n\tfont-family: 'Inter', sans-serif;\n\tfont-size: 14px;\n\tcolor: ${COLORS.content.primary};\n\tbackground: ${COLORS.surface.standard};\n\toutline: none;\n\n\t&::placeholder {\n\t\tcolor: ${COLORS.content.secondary};\n\t}\n\n\t&:focus {\n\t\tborder-color: ${COLORS.stroke.brand};\n\t}\n`;\n\nconst ChipRow = styled.div`\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tgap: 6px;\n`;\n\nconst SwitchRow = styled.div`\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tgap: 12px;\n`;\n\nconst SwitchText = styled.div`\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 4px;\n\tmin-width: 0;\n`;\n"],"names":["TOOL_COPY","EmailChipsField","chips","onChange","placeholder","nativeID","hint","buffer","setBuffer","useState","commit","parts","s","p","ChipsFieldWrap","jsx","EmailInputBox","e","ChipRow","email","Tag","CrossIcon","_","idx","seedValues","template","initial","values","key","toChips","value","ConfigToolPanel","toolKey","onClose","onSave","onImprove","charLimits","AGENT_CHAR_LIMITS","zIndex","setValues","saving","setSaving","fields","isEmail","setValue","prev","canSave","f","handleSave","params","config","result","renderField","field","testId","FieldBlock","TitleSmall","COLORS","BodyCaption","ToolInstructionsField","text","SwitchRow","jsxs","SwitchText","Switch","next","Input","copy","SideModal","DrawerHeaderText","DRAWER_HEADER_STYLE","DRAWER_BODY_STYLE","styled"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),o=require("react"),Ee=require("styled-components"),ie=require("../../../utils/arrayUtils.js"),H=require("../../../constants/Theme.js"),Oe=require("../constants/charLimits.js"),g=require("../constants/tools.js"),m=require("../utils/mentionSerialization.js"),f=require("../utils/sourceIcons.js"),Me=require("../utils/toolActions.js"),qe=require("./ConfigToolPanel.js"),F=require("./DrawerHeaderText.js"),ae=require("./MentionEditor.js"),je=require("./RestApiToolPanel.js"),we=require("./SelectableListSection.js"),Le=require("../../side-modal/SideModal.js"),De=require("../../input/Input.js"),Ke=require("../../toaster/Toaster.js"),Ne=c=>c&&typeof c=="object"&&"default"in c?c:{default:c},Pe=Ne(Ee),Ge=1e3,W=1002,le=(c,S)=>{const i=c??[];return i.some(u=>u.id===S.id)?i.map(u=>u.id===S.id?S:u):[...i,S]},ce=Pe.default.button`
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),o=require("react"),Me=require("styled-components"),le=require("../../../utils/arrayUtils.js"),W=require("../../../constants/Theme.js"),qe=require("../constants/charLimits.js"),c=require("../constants/tools.js"),g=require("../utils/mentionSerialization.js"),f=require("../utils/sourceIcons.js"),je=require("../utils/toolActions.js"),Le=require("./ConfigToolPanel.js"),$=require("./DrawerHeaderText.js"),ce=require("./MentionEditor.js"),De=require("./RestApiToolPanel.js"),Ne=require("./SelectableListSection.js"),Ke=require("../../side-modal/SideModal.js"),Pe=require("../../input/Input.js"),Ge=require("../../toaster/Toaster.js"),Ue=u=>u&&typeof u=="object"&&"default"in u?u:{default:u},Be=Ue(Me),ze=1e3,Y=1002,ue=(u,S)=>{const i=u??[];return i.some(d=>d.id===S.id)?i.map(d=>d.id===S.id?S:d):[...i,S]},de=Be.default.button`
2
2
  align-self: flex-start;
3
- border: 1px solid ${H.COLORS.stroke.primary};
4
- color: ${H.COLORS.content.primary};
5
- background: ${H.COLORS.surface.standard};
3
+ border: 1px solid ${W.COLORS.stroke.primary};
4
+ color: ${W.COLORS.content.primary};
5
+ background: ${W.COLORS.surface.standard};
6
6
  border-radius: 8px;
7
7
  padding: 6px 12px;
8
8
  font-size: 13px;
@@ -14,5 +14,5 @@
14
14
  cursor: default;
15
15
  opacity: 0.6;
16
16
  }
17
- `,Ue=({onClose:c,onSave:S,availableTools:i,onImprove:u,onImproveToolInstructions:$,configToolTemplates:Y,title:X="Create sub-agent",initial:b,appLabel:Z="Manifest",charLimits:T=Oe.AGENT_CHAR_LIMITS})=>{const[O,ue]=o.useState(b?.name??""),[C,A]=o.useState(b?.instructions??""),[h,v]=o.useState(b?.guardrail??""),[M,k]=o.useState(b?.tools??[]),[p,q]=o.useState(b?.configTools??[]),[d,j]=o.useState(b?.restApiTools??[]),[a,y]=o.useState(null),_=o.useRef(0),[J,Q]=o.useState(!1),[de,w]=o.useState(0),[pe,L]=o.useState(0),[I,V]=o.useState(null),D=o.useMemo(()=>[...m.buildAgentMentionItems(i,[],Z),...m.buildCustomToolMentionItems(p,d)],[i,Z,p,d]),E=o.useRef({}),K=o.useRef("instructions"),ge=o.useCallback(e=>{E.current.instructions=e??void 0},[]),me=o.useCallback(e=>{E.current.guardrail=e??void 0},[]),fe=o.useCallback(()=>{K.current="instructions"},[]),Se=o.useCallback(()=>{K.current="guardrail"},[]),ee=o.useRef(new Set);ee.current=new Set([...p,...d].map(e=>e.id));const te=o.useCallback((e,t)=>{e==="tool"&&!ee.current.has(t)&&k(n=>ie.addUnique(n,t))},[]),x=o.useCallback((e,t)=>{(E.current[K.current]??E.current.instructions)?.("tool",e,t)},[]),N=o.useCallback(e=>{_.current+=1,y({key:_.current,kind:"restapi",initialRest:e})},[]),P=o.useCallback((e,t)=>{_.current+=1,y({key:_.current,kind:"config",toolKey:e,initialConfig:t})},[]),be=o.useCallback(e=>{const t=g.CONFIG_TOOL_SOURCES[e];t?P(t):N()},[P,N]),ye=o.useCallback(e=>{const t=!d.some(n=>n.id===e.id);j(n=>le(n,e)),t&&x(e.id,m.restApiMentionItem(e).label),y(null)},[d,x]),Te=o.useCallback(e=>{const t=!p.some(n=>n.id===e.id);q(n=>le(n,e)),t&&x(e.id,m.configToolMentionItem(e).label),y(null)},[p,x]),[G,U]=o.useState(null),B=o.useRef(null),oe=o.useRef(0),Ce=e=>{const t=i.find(s=>s.tool_id===e)?.display_name??d.find(s=>s.id===e)?.name??"Tool",n=`{{tool:${e}}}`,l=s=>s.split(n).join("");B.current={instructions:C,guardrail:h,tools:M,configTools:p,restApiTools:d},A(s=>l(s)),v(s=>l(s)),k(s=>s.filter(R=>R!==e)),q(s=>s.filter(R=>R.id!==e)),j(s=>s.filter(R=>R.id!==e)),w(s=>s+1),L(s=>s+1),oe.current+=1,U({id:oe.current,message:`Tool "${t}" removed`})},he=()=>{const e=B.current;e&&(A(e.instructions),v(e.guardrail),k(e.tools),q(e.configTools),j(e.restApiTools),w(t=>t+1),L(t=>t+1),B.current=null),U(null)},ne=O.trim().length>0&&(C.trim().length>0||h.trim().length>0),Ie=M.map(e=>{const t=i.find(n=>n.tool_id===e);return t?{id:e,label:t.display_name,icon:f.sourceIcon(t.source??g.ToolSource.Manifest)}:null}).filter(e=>e!==null),xe=d.map(e=>({id:e.id,label:m.restApiToolName(e),icon:f.SOURCE_ICONS[g.ToolSource.RestApi],onConfigure:()=>N(e)})),Re=p.map(e=>({id:e.id,label:m.configToolName(e),icon:f.SOURCE_ICONS[e.tool_key==="send_slack_message"?g.ToolSource.Slack:g.ToolSource.EmailHandover],onConfigure:()=>P(e.tool_key,e)})),Ae=[...Ie,...xe,...Re],z=Me.buildToolActions(Y,be),se=a?.kind==="config"&&a.toolKey?Y?.[a.toolKey]:void 0,ve=i.map(e=>({label:e.display_name,value:e.tool_id,leadingIcon:f.renderSourceIcon(f.sourceIcon(e.source??g.ToolSource.Manifest))??void 0})),ke=(()=>{const e=[],t=new Map;return i.forEach(n=>{const l=n.source??g.ToolSource.Manifest;t.has(l)||(t.set(l,[]),e.push(l)),t.get(l)?.push({label:n.display_name,value:n.tool_id,leadingIcon:f.renderSourceIcon(f.sourceIcon(n.source??g.ToolSource.Manifest))??void 0})}),e.map(n=>({source:n,label:m.toolSourceLabel(n),options:t.get(n)??[]}))})(),_e=async()=>{if(!ne||J)return;const e=S({name:O.trim(),instructions:C,guardrail:h,tools:M,configTools:p,restApiTools:d});if(e&&typeof e.then=="function"){Q(!0);try{await e}finally{Q(!1)}}},re=async e=>{if(!(!u||I)){V(e);try{const n=await u(e,e==="instructions"?C:h);e==="instructions"?(A(n),w(l=>l+1)):(v(n),L(l=>l+1))}finally{V(null)}}};return r.jsxs(r.Fragment,{children:[r.jsxs(Le.SideModal,{header:X,closeOnEscapeKey:!1,zIndex:Ge,headerCustomComponent:r.jsx(F.DrawerHeaderText,{title:X,subtitle:"Each sub-agent handles one piece of the job. Use @ in the main instructions to call them."}),width:"421px",headerStyle:F.DRAWER_HEADER_STYLE,bodyStyle:F.DRAWER_BODY_STYLE,onClose:c,saveButtonProps:{"data-test":"subagent-save",buttonText:"Save",buttonType:"primary",size:"small",disabled:!ne,isLoading:J,onClick:_e},cancelButtonProps:{"data-test":"subagent-cancel",buttonText:"Cancel",buttonType:"tertiaryGray",size:"small",onClick:c},children:[r.jsx(De.Input,{"data-test":"subagent-name",labelText:"Agent name",labelTextBold:!0,placeholder:"Enter agent name",value:O,maxCharLimit:T.name,maxCharLimitPosition:"TOP",maxCharStyle:{fontSize:12,lineHeight:"16px"},onChangeText:ue}),r.jsx(ae.MentionEditor,{"data-test":"subagent-instructions",label:"Instructions",value:C,onChange:A,maxLength:T.instructions,placeholder:"Write the steps in plain English. Type @ to reference a tool.",minHeight:"160px",resetKey:`instr-${de}`,mentionItems:D,tools:i,toolActions:z,onMentionSelect:te,onFocus:fe,registerInsert:ge,action:u?r.jsx(ce,{type:"button","data-test":"subagent-improve-instructions",disabled:I!==null,onClick:()=>re("instructions"),children:I==="instructions"?"Improving…":"Improve with AI"}):void 0}),r.jsx(ae.MentionEditor,{"data-test":"subagent-guardrail",label:"Guardrails",value:h,onChange:v,maxLength:T.guardrail,placeholder:"e.g. Never discuss competitor pricing. Type @ to reference a tool.",minHeight:"160px",resetKey:`guard-${pe}`,mentionItems:D,tools:i,toolActions:z,onMentionSelect:te,onFocus:Se,registerInsert:me,action:u?r.jsx(ce,{type:"button","data-test":"subagent-improve-guardrail",disabled:I!==null,onClick:()=>re("guardrail"),children:I==="guardrail"?"Improving…":"Improve with AI"}):void 0}),r.jsx(we.SelectableListSection,{title:"Tools this agent can use",dataTestPrefix:"subagent-tools",items:Ae,addableOptions:ve,sourceGroups:ke,mentionItems:D,actionSources:z,emptyText:"No tools added yet.",pickerOpensUp:!0,onAdd:e=>{x(e),k(t=>ie.addUnique(t,e))},onRemove:Ce,confirmDelete:{noun:"tool",zIndex:W+1}})]}),a?.kind==="restapi"&&r.jsx(je.RestApiToolPanel,{initial:a.initialRest,charLimits:T,onImprove:$,onClose:()=>y(null),onSave:ye,zIndex:W},a.key),a?.kind==="config"&&a.toolKey&&se&&r.jsx(qe.ConfigToolPanel,{toolKey:a.toolKey,template:se,initial:a.initialConfig,charLimits:T,onImprove:$,onClose:()=>y(null),onSave:Te,zIndex:W},a.key),G&&r.jsx(Ke.Toaster,{text:G.message,type:"info",position:"top-right",autoClose:5e3,hideCloseButton:!0,buttonProps:{buttonText:"Undo",showButton:!0,onButtonClick:()=>(he(),{})},onCloseToast:()=>U(null)},G.id)]})};exports.CreateSubAgentPanel=Ue;
17
+ `,He=({onClose:u,onSave:S,availableTools:i,onImprove:d,onImproveToolInstructions:X,configToolTemplates:Z,title:J="Create sub-agent",initial:h,existingNames:pe=[],appLabel:Q="Manifest",charLimits:b=qe.AGENT_CHAR_LIMITS})=>{const[E,me]=o.useState(h?.name??""),[T,v]=o.useState(h?.instructions??""),[C,A]=o.useState(h?.guardrail??""),[O,k]=o.useState(h?.tools??[]),[m,M]=o.useState(h?.configTools??[]),[p,q]=o.useState(h?.restApiTools??[]),[l,y]=o.useState(null),_=o.useRef(0),[V,ee]=o.useState(!1),[ge,j]=o.useState(0),[fe,L]=o.useState(0),[I,te]=o.useState(null),D=o.useMemo(()=>[...g.buildAgentMentionItems(i,[],Q),...g.buildCustomToolMentionItems(m,p)],[i,Q,m,p]),w=o.useRef({}),N=o.useRef("instructions"),Se=o.useCallback(e=>{w.current.instructions=e??void 0},[]),he=o.useCallback(e=>{w.current.guardrail=e??void 0},[]),ye=o.useCallback(()=>{N.current="instructions"},[]),be=o.useCallback(()=>{N.current="guardrail"},[]),oe=o.useRef(new Set);oe.current=new Set([...m,...p].map(e=>e.id));const ne=o.useCallback((e,t)=>{e==="tool"&&!oe.current.has(t)&&k(n=>le.addUnique(n,t))},[]),x=o.useCallback((e,t,n)=>{(w.current[N.current]??w.current.instructions)?.("tool",e,t,n)},[]),K=o.useCallback(e=>{_.current+=1,y({key:_.current,kind:"restapi",initialRest:e})},[]),P=o.useCallback((e,t)=>{_.current+=1,y({key:_.current,kind:"config",toolKey:e,initialConfig:t})},[]),Te=o.useCallback(e=>{const t=c.CONFIG_TOOL_SOURCES[e];t?P(t):K()},[P,K]),Ce=o.useCallback(e=>{const t=!p.some(n=>n.id===e.id);q(n=>ue(n,e)),t&&x(e.id,g.restApiMentionItem(e).label,c.ToolSource.RestApi),y(null)},[p,x]),Ie=o.useCallback(e=>{const t=!m.some(n=>n.id===e.id);if(M(n=>ue(n,e)),t){const n=e.tool_key==="send_slack_message"?c.ToolSource.Slack:c.ToolSource.EmailHandover;x(e.id,g.configToolMentionItem(e).label,n)}y(null)},[m,x]),[G,U]=o.useState(null),B=o.useRef(null),se=o.useRef(0),xe=e=>{const t=i.find(s=>s.tool_id===e)?.display_name??p.find(s=>s.id===e)?.name??"Tool",n=`{{tool:${e}}}`,a=s=>s.split(n).join("");B.current={instructions:T,guardrail:C,tools:O,configTools:m,restApiTools:p},v(s=>a(s)),A(s=>a(s)),k(s=>s.filter(R=>R!==e)),M(s=>s.filter(R=>R.id!==e)),q(s=>s.filter(R=>R.id!==e)),j(s=>s+1),L(s=>s+1),se.current+=1,U({id:se.current,message:`Tool "${t}" removed`})},Re=()=>{const e=B.current;e&&(v(e.instructions),A(e.guardrail),k(e.tools),M(e.configTools),q(e.restApiTools),j(t=>t+1),L(t=>t+1),B.current=null),U(null)},z=E.trim(),H=z.length>0&&pe.some(e=>e.trim().toLowerCase()===z.toLowerCase()),re=z.length>0&&!H&&(T.trim().length>0||C.trim().length>0),ve=O.map(e=>{const t=i.find(n=>n.tool_id===e);return t?{id:e,label:t.display_name,icon:f.sourceIcon(t.source??c.ToolSource.Manifest)}:null}).filter(e=>e!==null),Ae=p.map(e=>({id:e.id,label:g.restApiToolName(e),icon:f.SOURCE_ICONS[c.ToolSource.RestApi],onConfigure:()=>K(e)})),ke=m.map(e=>({id:e.id,label:g.configToolName(e),icon:f.SOURCE_ICONS[e.tool_key==="send_slack_message"?c.ToolSource.Slack:c.ToolSource.EmailHandover],onConfigure:()=>P(e.tool_key,e)})),_e=[...ve,...Ae,...ke],F=je.buildToolActions(Z,Te),ie=l?.kind==="config"&&l.toolKey?Z?.[l.toolKey]:void 0,we=i.map(e=>({label:e.display_name,value:e.tool_id,leadingIcon:f.renderSourceIcon(f.sourceIcon(e.source??c.ToolSource.Manifest))??void 0})),Ee=(()=>{const e=[],t=new Map;return i.forEach(n=>{const a=n.source??c.ToolSource.Manifest;t.has(a)||(t.set(a,[]),e.push(a)),t.get(a)?.push({label:n.display_name,value:n.tool_id,leadingIcon:f.renderSourceIcon(f.sourceIcon(n.source??c.ToolSource.Manifest))??void 0})}),e.map(n=>({source:n,label:g.toolSourceLabel(n),options:t.get(n)??[]}))})(),Oe=async()=>{if(!re||V)return;const e=S({name:E.trim(),instructions:T,guardrail:C,tools:O,configTools:m,restApiTools:p});if(e&&typeof e.then=="function"){ee(!0);try{await e}finally{ee(!1)}}},ae=async e=>{if(!(!d||I)){te(e);try{const n=await d(e,e==="instructions"?T:C);e==="instructions"?(v(n),j(a=>a+1)):(A(n),L(a=>a+1))}finally{te(null)}}};return r.jsxs(r.Fragment,{children:[r.jsxs(Ke.SideModal,{header:J,closeOnEscapeKey:!1,zIndex:ze,headerCustomComponent:r.jsx($.DrawerHeaderText,{title:J,subtitle:"Each sub-agent handles one piece of the job. Use @ in the main instructions to call them."}),width:"421px",headerStyle:$.DRAWER_HEADER_STYLE,bodyStyle:$.DRAWER_BODY_STYLE,onClose:u,saveButtonProps:{"data-test":"subagent-save",buttonText:"Save",buttonType:"primary",size:"small",disabled:!re,isLoading:V,onClick:Oe},cancelButtonProps:{"data-test":"subagent-cancel",buttonText:"Cancel",buttonType:"tertiaryGray",size:"small",onClick:u},children:[r.jsx(Pe.Input,{"data-test":"subagent-name",labelText:"Agent name",labelTextBold:!0,placeholder:"Enter agent name",value:E,maxCharLimit:b.name,maxCharLimitPosition:"TOP",maxCharStyle:{fontSize:12,lineHeight:"16px"},state:H?"invalid":void 0,errorMessage:H?"A sub-agent with this name already exists":void 0,onChangeText:me}),r.jsx(ce.MentionEditor,{"data-test":"subagent-instructions",label:"Instructions",value:T,onChange:v,maxLength:b.instructions,placeholder:"Write the steps in plain English. The agent will follow them exactly. The more specific you are, the better it performs.",minHeight:"160px",resetKey:`instr-${ge}`,mentionItems:D,tools:i,toolActions:F,onMentionSelect:ne,onFocus:ye,registerInsert:Se,action:d?r.jsx(de,{type:"button","data-test":"subagent-improve-instructions",disabled:I!==null,onClick:()=>ae("instructions"),children:I==="instructions"?"Improving…":"Improve with AI"}):void 0}),r.jsx(ce.MentionEditor,{"data-test":"subagent-guardrail",label:"Guardrails",value:C,onChange:A,maxLength:b.guardrail,placeholder:"e.g. Never discuss competitor pricing. Always stay within the cancellation policy. Do not process refunds above ₹10,000 without human approval.",minHeight:"160px",resetKey:`guard-${fe}`,mentionItems:D,tools:i,toolActions:F,onMentionSelect:ne,onFocus:be,registerInsert:he,action:d?r.jsx(de,{type:"button","data-test":"subagent-improve-guardrail",disabled:I!==null,onClick:()=>ae("guardrail"),children:I==="guardrail"?"Improving…":"Improve with AI"}):void 0}),r.jsx(Ne.SelectableListSection,{title:"Tools this agent can use",dataTestPrefix:"subagent-tools",items:_e,addableOptions:we,sourceGroups:Ee,mentionItems:D,actionSources:F,emptyText:"No tools added yet.",pickerOpensUp:!0,onAdd:e=>{x(e),k(t=>le.addUnique(t,e))},onRemove:xe,confirmDelete:{noun:"tool",zIndex:Y+1}})]}),l?.kind==="restapi"&&r.jsx(De.RestApiToolPanel,{initial:l.initialRest,charLimits:b,onImprove:X,onClose:()=>y(null),onSave:Ce,zIndex:Y},l.key),l?.kind==="config"&&l.toolKey&&ie&&r.jsx(Le.ConfigToolPanel,{toolKey:l.toolKey,template:ie,initial:l.initialConfig,charLimits:b,onImprove:X,onClose:()=>y(null),onSave:Ie,zIndex:Y},l.key),G&&r.jsx(Ge.Toaster,{text:G.message,type:"info",position:"top-right",autoClose:5e3,hideCloseButton:!0,buttonProps:{buttonText:"Undo",showButton:!0,onButtonClick:()=>(Re(),{})},onCloseToast:()=>U(null)},G.id)]})};exports.CreateSubAgentPanel=He;
18
18
  //# sourceMappingURL=CreateSubAgentPanel.js.map