@bikdotai/bik-component-library 0.0.850-beta.1 → 0.0.850-beta.3

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 (191) 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 +14 -8
  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/RestApiToolPanel.js +4 -4
  18. package/dist/cjs/components/agent-builder/components/RestApiToolPanel.js.map +1 -1
  19. package/dist/cjs/components/agent-builder/components/SelectableListSection.js +2 -2
  20. package/dist/cjs/components/agent-builder/components/SelectableListSection.js.map +1 -1
  21. package/dist/cjs/components/agent-builder/constants/tools.js +1 -1
  22. package/dist/cjs/components/agent-builder/constants/tools.js.map +1 -1
  23. package/dist/cjs/components/agent-builder/context/AgentBuilderContext.js +1 -1
  24. package/dist/cjs/components/agent-builder/context/AgentBuilderContext.js.map +1 -1
  25. package/dist/cjs/components/agent-builder/steps/Step3HowItResponds.js +1 -1
  26. package/dist/cjs/components/agent-builder/steps/Step3HowItResponds.js.map +1 -1
  27. package/dist/cjs/components/agent-builder/utils/mentionSerialization.js +2 -2
  28. package/dist/cjs/components/agent-builder/utils/mentionSerialization.js.map +1 -1
  29. package/dist/cjs/components/agent-builder/utils/sourceIcons.js +1 -1
  30. package/dist/cjs/components/agent-builder/utils/sourceIcons.js.map +1 -1
  31. package/dist/cjs/components/agent-listing/AgentListing.js +1 -1
  32. package/dist/cjs/components/agent-listing/AgentListing.js.map +1 -1
  33. package/dist/cjs/components/agent-listing/AgentTable.js +1 -1
  34. package/dist/cjs/components/agent-listing/AgentTable.js.map +1 -1
  35. package/dist/cjs/components/agent-listing/AgentTableRow.js +1 -1
  36. package/dist/cjs/components/agent-listing/AgentTableRow.js.map +1 -1
  37. package/dist/cjs/components/bik-layout/CommonStyles.js +6 -4
  38. package/dist/cjs/components/bik-layout/CommonStyles.js.map +1 -1
  39. package/dist/cjs/components/button/themes.js +3 -3
  40. package/dist/cjs/components/button/themes.js.map +1 -1
  41. package/dist/cjs/components/datePicker/DatePicker.js +1 -1
  42. package/dist/cjs/components/datePicker/DatePicker.js.map +1 -1
  43. package/dist/cjs/components/datePicker/DatePicker.styled.js +14 -20
  44. package/dist/cjs/components/datePicker/DatePicker.styled.js.map +1 -1
  45. package/dist/cjs/components/dropdown/ChipInput.js +1 -1
  46. package/dist/cjs/components/dropdown/ChipInput.js.map +1 -1
  47. package/dist/cjs/components/dropdown/Common.styled.js +5 -6
  48. package/dist/cjs/components/dropdown/Common.styled.js.map +1 -1
  49. package/dist/cjs/components/dropdown/Dropdown.js +1 -1
  50. package/dist/cjs/components/dropdown/Dropdown.js.map +1 -1
  51. package/dist/cjs/components/dropdown/OpenedDropdown/components/OpennedDropdown.js +1 -1
  52. package/dist/cjs/components/dropdown/OpenedDropdown/components/OpennedDropdown.js.map +1 -1
  53. package/dist/cjs/components/dropdown/OpenedDropdown/components/searchbox/SearchBox.js +1 -1
  54. package/dist/cjs/components/dropdown/OpenedDropdown/components/searchbox/SearchBox.js.map +1 -1
  55. package/dist/cjs/components/input/Input.js +1 -1
  56. package/dist/cjs/components/input/Input.js.map +1 -1
  57. package/dist/cjs/components/input/Input.styled.js +12 -25
  58. package/dist/cjs/components/input/Input.styled.js.map +1 -1
  59. package/dist/cjs/components/tabs/Tabs.js +1 -1
  60. package/dist/cjs/components/tabs/Tabs.js.map +1 -1
  61. package/dist/cjs/components/tabs/Tabs.styles.js +8 -22
  62. package/dist/cjs/components/tabs/Tabs.styles.js.map +1 -1
  63. package/dist/cjs/components/tag/Tag.js +1 -1
  64. package/dist/cjs/components/tag/Tag.js.map +1 -1
  65. package/dist/cjs/components/tag/Tag.styled.js +0 -4
  66. package/dist/cjs/components/tag/Tag.styled.js.map +1 -1
  67. package/dist/cjs/components/tag/model.js.map +1 -1
  68. package/dist/cjs/editor/BikEditor.js +1 -1
  69. package/dist/cjs/editor/BikEditor.js.map +1 -1
  70. package/dist/cjs/editor/BikEditor.styles.js +21 -16
  71. package/dist/cjs/editor/BikEditor.styles.js.map +1 -1
  72. package/dist/cjs/editor/BikEditor.types.js.map +1 -1
  73. package/dist/cjs/editor/extensions/buildExtensions.js +2 -2
  74. package/dist/cjs/editor/extensions/buildExtensions.js.map +1 -1
  75. package/dist/cjs/editor/extensions/characterLimit/CharacterLimitExtension.js +3 -3
  76. package/dist/cjs/editor/extensions/characterLimit/CharacterLimitExtension.js.map +1 -1
  77. package/dist/cjs/editor/extensions/mention/MentionChipNodeView.js +2 -0
  78. package/dist/cjs/editor/extensions/mention/MentionChipNodeView.js.map +1 -0
  79. package/dist/cjs/editor/extensions/mention/MentionExtension.js +1 -1
  80. package/dist/cjs/editor/extensions/mention/MentionExtension.js.map +1 -1
  81. package/dist/cjs/index.js +1 -1
  82. package/dist/esm/assets/icons/ShipStation.svg.js +2 -2
  83. package/dist/esm/assets/icons/ShipStation.svg.js.map +1 -1
  84. package/dist/esm/assets/icons/index.d.ts +1 -0
  85. package/dist/esm/components/agent-builder/AgentBuilder.styled.js +21 -15
  86. package/dist/esm/components/agent-builder/AgentBuilder.styled.js.map +1 -1
  87. package/dist/esm/components/agent-builder/components/ConfigToolPanel.js +1 -1
  88. package/dist/esm/components/agent-builder/components/ConfigToolPanel.js.map +1 -1
  89. package/dist/esm/components/agent-builder/components/CreateSubAgentPanel.d.ts +5 -0
  90. package/dist/esm/components/agent-builder/components/CreateSubAgentPanel.js +243 -227
  91. package/dist/esm/components/agent-builder/components/CreateSubAgentPanel.js.map +1 -1
  92. package/dist/esm/components/agent-builder/components/DiscardModal.js +57 -49
  93. package/dist/esm/components/agent-builder/components/DiscardModal.js.map +1 -1
  94. package/dist/esm/components/agent-builder/components/GoLiveModal.js +26 -22
  95. package/dist/esm/components/agent-builder/components/GoLiveModal.js.map +1 -1
  96. package/dist/esm/components/agent-builder/components/MentionEditor.d.ts +1 -1
  97. package/dist/esm/components/agent-builder/components/MentionEditor.js +93 -77
  98. package/dist/esm/components/agent-builder/components/MentionEditor.js.map +1 -1
  99. package/dist/esm/components/agent-builder/components/MentionPicker.js +194 -168
  100. package/dist/esm/components/agent-builder/components/MentionPicker.js.map +1 -1
  101. package/dist/esm/components/agent-builder/components/RestApiToolPanel.js +118 -109
  102. package/dist/esm/components/agent-builder/components/RestApiToolPanel.js.map +1 -1
  103. package/dist/esm/components/agent-builder/components/SelectableListSection.js +117 -110
  104. package/dist/esm/components/agent-builder/components/SelectableListSection.js.map +1 -1
  105. package/dist/esm/components/agent-builder/constants/tools.d.ts +10 -0
  106. package/dist/esm/components/agent-builder/constants/tools.js +27 -14
  107. package/dist/esm/components/agent-builder/constants/tools.js.map +1 -1
  108. package/dist/esm/components/agent-builder/context/AgentBuilderContext.d.ts +6 -2
  109. package/dist/esm/components/agent-builder/context/AgentBuilderContext.js +46 -43
  110. package/dist/esm/components/agent-builder/context/AgentBuilderContext.js.map +1 -1
  111. package/dist/esm/components/agent-builder/steps/Step3HowItResponds.js +132 -117
  112. package/dist/esm/components/agent-builder/steps/Step3HowItResponds.js.map +1 -1
  113. package/dist/esm/components/agent-builder/utils/mentionSerialization.d.ts +3 -2
  114. package/dist/esm/components/agent-builder/utils/mentionSerialization.js +24 -19
  115. package/dist/esm/components/agent-builder/utils/mentionSerialization.js.map +1 -1
  116. package/dist/esm/components/agent-builder/utils/sourceIcons.d.ts +9 -1
  117. package/dist/esm/components/agent-builder/utils/sourceIcons.js +15 -9
  118. package/dist/esm/components/agent-builder/utils/sourceIcons.js.map +1 -1
  119. package/dist/esm/components/agent-listing/AgentListing.js +71 -69
  120. package/dist/esm/components/agent-listing/AgentListing.js.map +1 -1
  121. package/dist/esm/components/agent-listing/AgentListing.model.d.ts +6 -0
  122. package/dist/esm/components/agent-listing/AgentTable.d.ts +2 -0
  123. package/dist/esm/components/agent-listing/AgentTable.js +29 -27
  124. package/dist/esm/components/agent-listing/AgentTable.js.map +1 -1
  125. package/dist/esm/components/agent-listing/AgentTableRow.d.ts +2 -0
  126. package/dist/esm/components/agent-listing/AgentTableRow.js +50 -36
  127. package/dist/esm/components/agent-listing/AgentTableRow.js.map +1 -1
  128. package/dist/esm/components/bik-layout/CommonStyles.js +3 -1
  129. package/dist/esm/components/bik-layout/CommonStyles.js.map +1 -1
  130. package/dist/esm/components/button/themes.js +1 -1
  131. package/dist/esm/components/button/themes.js.map +1 -1
  132. package/dist/esm/components/datePicker/DatePicker.js +21 -22
  133. package/dist/esm/components/datePicker/DatePicker.js.map +1 -1
  134. package/dist/esm/components/datePicker/DatePicker.styled.d.ts +0 -10
  135. package/dist/esm/components/datePicker/DatePicker.styled.js +16 -23
  136. package/dist/esm/components/datePicker/DatePicker.styled.js.map +1 -1
  137. package/dist/esm/components/dropdown/ChipInput.d.ts +0 -1
  138. package/dist/esm/components/dropdown/ChipInput.js +30 -37
  139. package/dist/esm/components/dropdown/ChipInput.js.map +1 -1
  140. package/dist/esm/components/dropdown/Common.styled.js +6 -7
  141. package/dist/esm/components/dropdown/Common.styled.js.map +1 -1
  142. package/dist/esm/components/dropdown/Dropdown.d.ts +0 -2
  143. package/dist/esm/components/dropdown/Dropdown.js +89 -96
  144. package/dist/esm/components/dropdown/Dropdown.js.map +1 -1
  145. package/dist/esm/components/dropdown/OpenedDropdown/components/OpennedDropdown.js +95 -103
  146. package/dist/esm/components/dropdown/OpenedDropdown/components/OpennedDropdown.js.map +1 -1
  147. package/dist/esm/components/dropdown/OpenedDropdown/components/searchbox/SearchBox.d.ts +0 -1
  148. package/dist/esm/components/dropdown/OpenedDropdown/components/searchbox/SearchBox.js +17 -17
  149. package/dist/esm/components/dropdown/OpenedDropdown/components/searchbox/SearchBox.js.map +1 -1
  150. package/dist/esm/components/dropdown/type.d.ts +0 -2
  151. package/dist/esm/components/input/Input.js +101 -104
  152. package/dist/esm/components/input/Input.js.map +1 -1
  153. package/dist/esm/components/input/Input.model.d.ts +0 -2
  154. package/dist/esm/components/input/Input.styled.d.ts +0 -2
  155. package/dist/esm/components/input/Input.styled.js +25 -38
  156. package/dist/esm/components/input/Input.styled.js.map +1 -1
  157. package/dist/esm/components/tabs/Tabs.js +81 -103
  158. package/dist/esm/components/tabs/Tabs.js.map +1 -1
  159. package/dist/esm/components/tabs/Tabs.model.d.ts +0 -7
  160. package/dist/esm/components/tabs/Tabs.styles.d.ts +0 -2
  161. package/dist/esm/components/tabs/Tabs.styles.js +9 -23
  162. package/dist/esm/components/tabs/Tabs.styles.js.map +1 -1
  163. package/dist/esm/components/tag/Tag.d.ts +1 -1
  164. package/dist/esm/components/tag/Tag.js +15 -17
  165. package/dist/esm/components/tag/Tag.js.map +1 -1
  166. package/dist/esm/components/tag/Tag.styled.d.ts +0 -1
  167. package/dist/esm/components/tag/Tag.styled.js +6 -10
  168. package/dist/esm/components/tag/Tag.styled.js.map +1 -1
  169. package/dist/esm/components/tag/model.d.ts +0 -5
  170. package/dist/esm/components/tag/model.js.map +1 -1
  171. package/dist/esm/editor/BikEditor.js +129 -126
  172. package/dist/esm/editor/BikEditor.js.map +1 -1
  173. package/dist/esm/editor/BikEditor.styles.js +24 -19
  174. package/dist/esm/editor/BikEditor.styles.js.map +1 -1
  175. package/dist/esm/editor/BikEditor.types.d.ts +17 -0
  176. package/dist/esm/editor/BikEditor.types.js.map +1 -1
  177. package/dist/esm/editor/extensions/buildExtensions.d.ts +7 -0
  178. package/dist/esm/editor/extensions/buildExtensions.js +30 -24
  179. package/dist/esm/editor/extensions/buildExtensions.js.map +1 -1
  180. package/dist/esm/editor/extensions/characterLimit/CharacterLimitExtension.d.ts +20 -3
  181. package/dist/esm/editor/extensions/characterLimit/CharacterLimitExtension.js +40 -25
  182. package/dist/esm/editor/extensions/characterLimit/CharacterLimitExtension.js.map +1 -1
  183. package/dist/esm/editor/extensions/mention/MentionChipNodeView.d.ts +17 -0
  184. package/dist/esm/editor/extensions/mention/MentionChipNodeView.js +39 -0
  185. package/dist/esm/editor/extensions/mention/MentionChipNodeView.js.map +1 -0
  186. package/dist/esm/editor/extensions/mention/MentionExtension.d.ts +1 -1
  187. package/dist/esm/editor/extensions/mention/MentionExtension.js +67 -45
  188. package/dist/esm/editor/extensions/mention/MentionExtension.js.map +1 -1
  189. package/dist/esm/index.js +761 -759
  190. package/dist/esm/index.js.map +1 -1
  191. 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"}
@@ -262,11 +262,11 @@
262
262
  @media (max-width: 1100px) {
263
263
  display: none;
264
264
  }
265
- `,M=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;
@@ -371,7 +378,6 @@
371
378
  display: flex;
372
379
  align-items: center;
373
380
  justify-content: center;
374
- margin-bottom: 4px;
375
381
  `,K=e.default.div.attrs({className:"bik-modal-actions"})`
376
382
  display: flex;
377
383
  gap: 12px;
@@ -390,5 +396,5 @@
390
396
  display: flex;
391
397
  align-items: center;
392
398
  gap: 8px;
393
- `;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=z;exports.SectionBodyWrap=S;exports.SectionHeaderWrap=y;exports.SelectableRow=W;exports.SideSection=M;exports.SideSectionHeader=F;exports.SourceButton=H;exports.SourceButtonRow=D;exports.Step3Divider=j;exports.Step3Grid=T;exports.Step3Root=A;exports.StepBadge=w;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;
394
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\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\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","RowLabel","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