@bikdotai/bik-component-library 0.0.824-beta.0 → 0.0.825-1

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 (363) hide show
  1. package/dist/cjs/components/BikGiftedChat/Bubble/Bubble.js +1 -1
  2. package/dist/cjs/components/BikGiftedChat/Bubble/Bubble.js.map +1 -1
  3. package/dist/cjs/components/BikGiftedChat/GiftedChat/Day.js +1 -1
  4. package/dist/cjs/components/BikGiftedChat/GiftedChat/Day.js.map +1 -1
  5. package/dist/cjs/components/BikGiftedChat/GiftedChat/GiftedChat.js +1 -1
  6. package/dist/cjs/components/BikGiftedChat/GiftedChat/GiftedChat.js.map +1 -1
  7. package/dist/cjs/components/BikGiftedChat/GiftedChat/types.js.map +1 -1
  8. package/dist/cjs/components/TypographyStyle.js +41 -20
  9. package/dist/cjs/components/TypographyStyle.js.map +1 -1
  10. package/dist/cjs/components/WhatsAppTextEditor/AIRephraseButton.js +16 -5
  11. package/dist/cjs/components/WhatsAppTextEditor/AIRephraseButton.js.map +1 -1
  12. package/dist/cjs/components/agent-builder/components/CreateSubAgentPanel.js +1 -1
  13. package/dist/cjs/components/agent-builder/components/CreateSubAgentPanel.js.map +1 -1
  14. package/dist/cjs/components/agent-builder/context/AgentBuilderContext.js +1 -1
  15. package/dist/cjs/components/agent-builder/context/AgentBuilderContext.js.map +1 -1
  16. package/dist/cjs/components/agent-builder/utils/mentionSerialization.js +2 -2
  17. package/dist/cjs/components/agent-builder/utils/mentionSerialization.js.map +1 -1
  18. package/dist/cjs/components/avatar/Avatar.js +1 -1
  19. package/dist/cjs/components/avatar/Avatar.js.map +1 -1
  20. package/dist/cjs/components/avatar/Avatar.styled.js +4 -4
  21. package/dist/cjs/components/avatar/Avatar.styled.js.map +1 -1
  22. package/dist/cjs/components/avatar/AvatarHelper.js +1 -1
  23. package/dist/cjs/components/avatar/AvatarHelper.js.map +1 -1
  24. package/dist/cjs/components/bik-layout/BikSidebar.js.map +1 -1
  25. package/dist/cjs/components/bik-layout/BikSidebarV2/BikSidebarV2.js +2 -0
  26. package/dist/cjs/components/bik-layout/BikSidebarV2/BikSidebarV2.js.map +1 -0
  27. package/dist/cjs/components/bik-layout/BikSidebarV2/SidebarV2Popup.js +2 -0
  28. package/dist/cjs/components/bik-layout/BikSidebarV2/SidebarV2Popup.js.map +1 -0
  29. package/dist/cjs/components/bik-layout/BikSidebarV2/SidebarV2Styles.js +294 -0
  30. package/dist/cjs/components/bik-layout/BikSidebarV2/SidebarV2Styles.js.map +1 -0
  31. package/dist/cjs/components/bik-layout/BikSidebarV2/SimpleSidebarV2.js +2 -0
  32. package/dist/cjs/components/bik-layout/BikSidebarV2/SimpleSidebarV2.js.map +1 -0
  33. package/dist/cjs/components/bik-layout/CommonStyles.js +1 -1
  34. package/dist/cjs/components/bik-layout/CommonStyles.js.map +1 -1
  35. package/dist/cjs/components/button/Button.js +1 -1
  36. package/dist/cjs/components/button/Button.js.map +1 -1
  37. package/dist/cjs/components/button/Button.styled.js +13 -13
  38. package/dist/cjs/components/button/Button.styled.js.map +1 -1
  39. package/dist/cjs/components/button/themes.js +6 -6
  40. package/dist/cjs/components/button/themes.js.map +1 -1
  41. package/dist/cjs/components/checkBox/CheckBox.js +1 -1
  42. package/dist/cjs/components/checkBox/CheckBox.js.map +1 -1
  43. package/dist/cjs/components/checkBox/CheckBox.styled.js +21 -20
  44. package/dist/cjs/components/checkBox/CheckBox.styled.js.map +1 -1
  45. package/dist/cjs/components/country-code-picker/CountryCodePicker.js.map +1 -1
  46. package/dist/cjs/components/country-code-picker/CountryPicker.js.map +1 -1
  47. package/dist/cjs/components/dropdown/Dropdown.js +1 -1
  48. package/dist/cjs/components/dropdown/Dropdown.js.map +1 -1
  49. package/dist/cjs/components/dropdown/DropdownPopover/index.js +1 -1
  50. package/dist/cjs/components/dropdown/DropdownPopover/index.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/OpennedDropdown.styled.js +9 -8
  54. package/dist/cjs/components/dropdown/OpenedDropdown/components/OpennedDropdown.styled.js.map +1 -1
  55. package/dist/cjs/components/dropdown/OpenedDropdown/components/description/Description.js.map +1 -1
  56. package/dist/cjs/components/dropdown/OpenedDropdown/components/description/Description.styled.js.map +1 -1
  57. package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/FreeFormMenu.js +1 -1
  58. package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/FreeFormMenu.js.map +1 -1
  59. package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/MenuItem.js +9 -9
  60. package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/MenuItem.js.map +1 -1
  61. package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/MenuList.js +1 -1
  62. package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/MenuList.js.map +1 -1
  63. package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/MenuList.styled.js +6 -2
  64. package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/MenuList.styled.js.map +1 -1
  65. package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/SelectAllMenu.js +1 -1
  66. package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/SelectAllMenu.js.map +1 -1
  67. package/dist/cjs/components/dropdown/OpenedDropdown/components/searchbox/SearchBox.js +1 -1
  68. package/dist/cjs/components/dropdown/OpenedDropdown/components/searchbox/SearchBox.js.map +1 -1
  69. package/dist/cjs/components/dropdown/OpenedDropdown/components/searchbox/SearchZeroState.js +1 -1
  70. package/dist/cjs/components/dropdown/OpenedDropdown/components/searchbox/SearchZeroState.js.map +1 -1
  71. package/dist/cjs/components/dropdown-button/DropdownButton.js +1 -1
  72. package/dist/cjs/components/dropdown-button/DropdownButton.js.map +1 -1
  73. package/dist/cjs/components/dropdown-button/DropdownButton.style.js +20 -6
  74. package/dist/cjs/components/dropdown-button/DropdownButton.style.js.map +1 -1
  75. package/dist/cjs/components/dual-icon-button/DualIconButton.js +2 -0
  76. package/dist/cjs/components/dual-icon-button/DualIconButton.js.map +1 -0
  77. package/dist/cjs/components/dual-icon-button/DualIconButton.styled.js +33 -0
  78. package/dist/cjs/components/dual-icon-button/DualIconButton.styled.js.map +1 -0
  79. package/dist/cjs/components/fab-menu/FABMenu.js.map +1 -1
  80. package/dist/cjs/components/icon-button/IconButton.js +1 -1
  81. package/dist/cjs/components/icon-button/IconButton.js.map +1 -1
  82. package/dist/cjs/components/icon-button/IconButton.styled.js +18 -12
  83. package/dist/cjs/components/icon-button/IconButton.styled.js.map +1 -1
  84. package/dist/cjs/components/icon-button/theme.js +1 -1
  85. package/dist/cjs/components/icon-button/theme.js.map +1 -1
  86. package/dist/cjs/components/input/Input.js +1 -1
  87. package/dist/cjs/components/input/Input.js.map +1 -1
  88. package/dist/cjs/components/input/Input.styled.js +27 -16
  89. package/dist/cjs/components/input/Input.styled.js.map +1 -1
  90. package/dist/cjs/components/list-item/ListItem.js +1 -1
  91. package/dist/cjs/components/list-item/ListItem.js.map +1 -1
  92. package/dist/cjs/components/list-item/ListItem.styled.js +6 -6
  93. package/dist/cjs/components/list-item/ListItem.styled.js.map +1 -1
  94. package/dist/cjs/components/list-item/themes.js +32 -20
  95. package/dist/cjs/components/list-item/themes.js.map +1 -1
  96. package/dist/cjs/components/multi-level-dropdown/GroupedMenuList.js +1 -1
  97. package/dist/cjs/components/multi-level-dropdown/GroupedMenuList.js.map +1 -1
  98. package/dist/cjs/components/multi-level-dropdown/MenuItem.js +1 -1
  99. package/dist/cjs/components/multi-level-dropdown/MenuItem.js.map +1 -1
  100. package/dist/cjs/components/multi-level-dropdown/MenuList.js +1 -1
  101. package/dist/cjs/components/multi-level-dropdown/MenuList.js.map +1 -1
  102. package/dist/cjs/components/multi-level-dropdown/MultiLevelDropdown.js +1 -1
  103. package/dist/cjs/components/multi-level-dropdown/MultiLevelDropdown.js.map +1 -1
  104. package/dist/cjs/components/multi-level-dropdown/MultiLevelDropdown.styled.js +32 -29
  105. package/dist/cjs/components/multi-level-dropdown/MultiLevelDropdown.styled.js.map +1 -1
  106. package/dist/cjs/components/tag/Tag.js +1 -1
  107. package/dist/cjs/components/tag/Tag.js.map +1 -1
  108. package/dist/cjs/components/tag/Tag.styled.js +4 -4
  109. package/dist/cjs/components/tag/Tag.styled.js.map +1 -1
  110. package/dist/cjs/components/tag/model.js.map +1 -1
  111. package/dist/cjs/components/whats-new/WhatsNew.js +1 -1
  112. package/dist/cjs/components/whats-new/WhatsNew.js.map +1 -1
  113. package/dist/cjs/components/whats-new/WhatsNewButton.js +2 -2
  114. package/dist/cjs/components/whats-new/WhatsNewButton.js.map +1 -1
  115. package/dist/cjs/components/whats-new/WhatsNewPanel.js.map +1 -1
  116. package/dist/cjs/constants/Theme.js +1 -1
  117. package/dist/cjs/constants/Theme.js.map +1 -1
  118. package/dist/cjs/editor/BikEditor.js +1 -1
  119. package/dist/cjs/editor/BikEditor.js.map +1 -1
  120. package/dist/cjs/editor/BikEditor.styles.js +47 -30
  121. package/dist/cjs/editor/BikEditor.styles.js.map +1 -1
  122. package/dist/cjs/editor/extensions/editorDropdown.styles.js +10 -15
  123. package/dist/cjs/editor/extensions/editorDropdown.styles.js.map +1 -1
  124. package/dist/cjs/editor/extensions/jsonHighlight/JsonHighlightExtension.js +3 -2
  125. package/dist/cjs/editor/extensions/jsonHighlight/JsonHighlightExtension.js.map +1 -1
  126. package/dist/cjs/icons/Actions/Common actions/ProductTour.js +2 -0
  127. package/dist/cjs/icons/Actions/Common actions/ProductTour.js.map +1 -0
  128. package/dist/cjs/icons/Actions/Common actions/RestApi.js +2 -0
  129. package/dist/cjs/icons/Actions/Common actions/RestApi.js.map +1 -0
  130. package/dist/cjs/icons/Actions/Common actions/Save.js +2 -0
  131. package/dist/cjs/icons/Actions/Common actions/Save.js.map +1 -0
  132. package/dist/cjs/icons/Actions/Common actions/Shortcut.js +2 -0
  133. package/dist/cjs/icons/Actions/Common actions/Shortcut.js.map +1 -0
  134. package/dist/cjs/icons/Arrows/Chevron/ChevronUp.js +1 -1
  135. package/dist/cjs/icons/Arrows/Chevron/ChevronUp.js.map +1 -1
  136. package/dist/cjs/icons/BIK AI specific/Webhook.js +2 -0
  137. package/dist/cjs/icons/BIK AI specific/Webhook.js.map +1 -0
  138. package/dist/cjs/icons/Informational/Store related/TicketForm.js +2 -0
  139. package/dist/cjs/icons/Informational/Store related/TicketForm.js.map +1 -0
  140. package/dist/cjs/icons/Legacy - Bikayi specific/Services/LoudSpeaker.js +2 -0
  141. package/dist/cjs/icons/Legacy - Bikayi specific/Services/LoudSpeaker.js.map +1 -0
  142. package/dist/cjs/icons/index.js +1 -1
  143. package/dist/cjs/index.js +1 -1
  144. package/dist/esm/components/BikGiftedChat/Bubble/Bubble.js +61 -59
  145. package/dist/esm/components/BikGiftedChat/Bubble/Bubble.js.map +1 -1
  146. package/dist/esm/components/BikGiftedChat/GiftedChat/Day.d.ts +6 -0
  147. package/dist/esm/components/BikGiftedChat/GiftedChat/Day.js +124 -88
  148. package/dist/esm/components/BikGiftedChat/GiftedChat/Day.js.map +1 -1
  149. package/dist/esm/components/BikGiftedChat/GiftedChat/GiftedChat.js +231 -129
  150. package/dist/esm/components/BikGiftedChat/GiftedChat/GiftedChat.js.map +1 -1
  151. package/dist/esm/components/BikGiftedChat/GiftedChat/types.d.ts +6 -2
  152. package/dist/esm/components/BikGiftedChat/GiftedChat/types.js.map +1 -1
  153. package/dist/esm/components/TypographyStyle.d.ts +8 -0
  154. package/dist/esm/components/TypographyStyle.js +63 -40
  155. package/dist/esm/components/TypographyStyle.js.map +1 -1
  156. package/dist/esm/components/WhatsAppTextEditor/AIRephraseButton.js +54 -43
  157. package/dist/esm/components/WhatsAppTextEditor/AIRephraseButton.js.map +1 -1
  158. package/dist/esm/components/agent-builder/components/CreateSubAgentPanel.js +24 -24
  159. package/dist/esm/components/agent-builder/components/CreateSubAgentPanel.js.map +1 -1
  160. package/dist/esm/components/agent-builder/context/AgentBuilderContext.js +98 -101
  161. package/dist/esm/components/agent-builder/context/AgentBuilderContext.js.map +1 -1
  162. package/dist/esm/components/agent-builder/utils/mentionSerialization.d.ts +5 -7
  163. package/dist/esm/components/agent-builder/utils/mentionSerialization.js +40 -37
  164. package/dist/esm/components/agent-builder/utils/mentionSerialization.js.map +1 -1
  165. package/dist/esm/components/avatar/Avatar.d.ts +2 -1
  166. package/dist/esm/components/avatar/Avatar.js +54 -76
  167. package/dist/esm/components/avatar/Avatar.js.map +1 -1
  168. package/dist/esm/components/avatar/Avatar.styled.js +8 -8
  169. package/dist/esm/components/avatar/Avatar.styled.js.map +1 -1
  170. package/dist/esm/components/avatar/AvatarHelper.d.ts +5 -4
  171. package/dist/esm/components/avatar/AvatarHelper.js +4 -4
  172. package/dist/esm/components/avatar/AvatarHelper.js.map +1 -1
  173. package/dist/esm/components/bik-layout/BikSidebar.js.map +1 -1
  174. package/dist/esm/components/bik-layout/BikSidebarV2/BikSidebarV2.d.ts +33 -0
  175. package/dist/esm/components/bik-layout/BikSidebarV2/BikSidebarV2.js +272 -0
  176. package/dist/esm/components/bik-layout/BikSidebarV2/BikSidebarV2.js.map +1 -0
  177. package/dist/esm/components/bik-layout/BikSidebarV2/SidebarV2.model.d.ts +27 -0
  178. package/dist/esm/components/bik-layout/BikSidebarV2/SidebarV2Popup.d.ts +12 -0
  179. package/dist/esm/components/bik-layout/BikSidebarV2/SidebarV2Popup.js +53 -0
  180. package/dist/esm/components/bik-layout/BikSidebarV2/SidebarV2Popup.js.map +1 -0
  181. package/dist/esm/components/bik-layout/BikSidebarV2/SidebarV2Styles.d.ts +44 -0
  182. package/dist/esm/components/bik-layout/BikSidebarV2/SidebarV2Styles.js +310 -0
  183. package/dist/esm/components/bik-layout/BikSidebarV2/SidebarV2Styles.js.map +1 -0
  184. package/dist/esm/components/bik-layout/BikSidebarV2/SimpleSidebarV2.d.ts +2 -0
  185. package/dist/esm/components/bik-layout/BikSidebarV2/SimpleSidebarV2.js +107 -0
  186. package/dist/esm/components/bik-layout/BikSidebarV2/SimpleSidebarV2.js.map +1 -0
  187. package/dist/esm/components/bik-layout/CommonStyles.js +1 -1
  188. package/dist/esm/components/bik-layout/CommonStyles.js.map +1 -1
  189. package/dist/esm/components/bik-layout/index.d.ts +2 -0
  190. package/dist/esm/components/button/Button.js +31 -31
  191. package/dist/esm/components/button/Button.js.map +1 -1
  192. package/dist/esm/components/button/Button.styled.d.ts +1 -1
  193. package/dist/esm/components/button/Button.styled.js +20 -20
  194. package/dist/esm/components/button/Button.styled.js.map +1 -1
  195. package/dist/esm/components/button/model.d.ts +3 -3
  196. package/dist/esm/components/button/themes.d.ts +2 -2
  197. package/dist/esm/components/button/themes.js +31 -17
  198. package/dist/esm/components/button/themes.js.map +1 -1
  199. package/dist/esm/components/checkBox/CheckBox.d.ts +2 -1
  200. package/dist/esm/components/checkBox/CheckBox.js +124 -87
  201. package/dist/esm/components/checkBox/CheckBox.js.map +1 -1
  202. package/dist/esm/components/checkBox/CheckBox.styled.d.ts +1 -1
  203. package/dist/esm/components/checkBox/CheckBox.styled.js +10 -9
  204. package/dist/esm/components/checkBox/CheckBox.styled.js.map +1 -1
  205. package/dist/esm/components/country-code-picker/CountryCodePicker.d.ts +1 -1
  206. package/dist/esm/components/country-code-picker/CountryCodePicker.js.map +1 -1
  207. package/dist/esm/components/country-code-picker/CountryPicker.d.ts +1 -1
  208. package/dist/esm/components/country-code-picker/CountryPicker.js.map +1 -1
  209. package/dist/esm/components/dropdown/Dropdown.d.ts +2 -0
  210. package/dist/esm/components/dropdown/Dropdown.js +80 -77
  211. package/dist/esm/components/dropdown/Dropdown.js.map +1 -1
  212. package/dist/esm/components/dropdown/DropdownPopover/index.js +69 -56
  213. package/dist/esm/components/dropdown/DropdownPopover/index.js.map +1 -1
  214. package/dist/esm/components/dropdown/OpenedDropdown/components/OpennedDropdown.js +183 -174
  215. package/dist/esm/components/dropdown/OpenedDropdown/components/OpennedDropdown.js.map +1 -1
  216. package/dist/esm/components/dropdown/OpenedDropdown/components/OpennedDropdown.styled.d.ts +1 -1
  217. package/dist/esm/components/dropdown/OpenedDropdown/components/OpennedDropdown.styled.js +5 -4
  218. package/dist/esm/components/dropdown/OpenedDropdown/components/OpennedDropdown.styled.js.map +1 -1
  219. package/dist/esm/components/dropdown/OpenedDropdown/components/description/Description.d.ts +1 -1
  220. package/dist/esm/components/dropdown/OpenedDropdown/components/description/Description.js.map +1 -1
  221. package/dist/esm/components/dropdown/OpenedDropdown/components/description/Description.styled.d.ts +1 -1
  222. package/dist/esm/components/dropdown/OpenedDropdown/components/description/Description.styled.js.map +1 -1
  223. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/FreeFormMenu.d.ts +3 -1
  224. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/FreeFormMenu.js +29 -20
  225. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/FreeFormMenu.js.map +1 -1
  226. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuItem.d.ts +3 -1
  227. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuItem.js +93 -87
  228. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuItem.js.map +1 -1
  229. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuList.d.ts +3 -1
  230. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuList.js +68 -61
  231. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuList.js.map +1 -1
  232. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuList.styled.d.ts +2 -1
  233. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuList.styled.js +7 -2
  234. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuList.styled.js.map +1 -1
  235. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/SelectAllMenu.d.ts +3 -1
  236. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/SelectAllMenu.js +18 -10
  237. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/SelectAllMenu.js.map +1 -1
  238. package/dist/esm/components/dropdown/OpenedDropdown/components/searchbox/SearchBox.d.ts +1 -1
  239. package/dist/esm/components/dropdown/OpenedDropdown/components/searchbox/SearchBox.js +18 -18
  240. package/dist/esm/components/dropdown/OpenedDropdown/components/searchbox/SearchBox.js.map +1 -1
  241. package/dist/esm/components/dropdown/OpenedDropdown/components/searchbox/SearchZeroState.d.ts +1 -0
  242. package/dist/esm/components/dropdown/OpenedDropdown/components/searchbox/SearchZeroState.js +43 -17
  243. package/dist/esm/components/dropdown/OpenedDropdown/components/searchbox/SearchZeroState.js.map +1 -1
  244. package/dist/esm/components/dropdown/OpenedDropdown/utils/iterationOnOptions.d.ts +2 -0
  245. package/dist/esm/components/dropdown/hooks/useDropdown.d.ts +2 -0
  246. package/dist/esm/components/dropdown/type.d.ts +6 -1
  247. package/dist/esm/components/dropdown-button/DropdownButton.d.ts +13 -1
  248. package/dist/esm/components/dropdown-button/DropdownButton.js +83 -20
  249. package/dist/esm/components/dropdown-button/DropdownButton.js.map +1 -1
  250. package/dist/esm/components/dropdown-button/DropdownButton.style.d.ts +9 -2
  251. package/dist/esm/components/dropdown-button/DropdownButton.style.js +35 -9
  252. package/dist/esm/components/dropdown-button/DropdownButton.style.js.map +1 -1
  253. package/dist/esm/components/dual-icon-button/DualIconButton.d.ts +3 -0
  254. package/dist/esm/components/dual-icon-button/DualIconButton.js +53 -0
  255. package/dist/esm/components/dual-icon-button/DualIconButton.js.map +1 -0
  256. package/dist/esm/components/dual-icon-button/DualIconButton.styled.d.ts +7 -0
  257. package/dist/esm/components/dual-icon-button/DualIconButton.styled.js +40 -0
  258. package/dist/esm/components/dual-icon-button/DualIconButton.styled.js.map +1 -0
  259. package/dist/esm/components/dual-icon-button/index.d.ts +2 -0
  260. package/dist/esm/components/dual-icon-button/model.d.ts +12 -0
  261. package/dist/esm/components/fab-menu/FABMenu.d.ts +1 -1
  262. package/dist/esm/components/fab-menu/FABMenu.js.map +1 -1
  263. package/dist/esm/components/icon-button/IconButton.js +36 -32
  264. package/dist/esm/components/icon-button/IconButton.js.map +1 -1
  265. package/dist/esm/components/icon-button/IconButton.styled.d.ts +3 -1
  266. package/dist/esm/components/icon-button/IconButton.styled.js +20 -14
  267. package/dist/esm/components/icon-button/IconButton.styled.js.map +1 -1
  268. package/dist/esm/components/icon-button/model.d.ts +12 -1
  269. package/dist/esm/components/icon-button/theme.js +12 -10
  270. package/dist/esm/components/icon-button/theme.js.map +1 -1
  271. package/dist/esm/components/input/Input.js +130 -125
  272. package/dist/esm/components/input/Input.js.map +1 -1
  273. package/dist/esm/components/input/Input.model.d.ts +2 -1
  274. package/dist/esm/components/input/Input.styled.d.ts +8 -1
  275. package/dist/esm/components/input/Input.styled.js +34 -22
  276. package/dist/esm/components/input/Input.styled.js.map +1 -1
  277. package/dist/esm/components/list-item/List.model.d.ts +2 -1
  278. package/dist/esm/components/list-item/ListItem.js +40 -38
  279. package/dist/esm/components/list-item/ListItem.js.map +1 -1
  280. package/dist/esm/components/list-item/ListItem.styled.d.ts +2 -1
  281. package/dist/esm/components/list-item/ListItem.styled.js +8 -8
  282. package/dist/esm/components/list-item/ListItem.styled.js.map +1 -1
  283. package/dist/esm/components/list-item/themes.d.ts +2 -2
  284. package/dist/esm/components/list-item/themes.js +20 -6
  285. package/dist/esm/components/list-item/themes.js.map +1 -1
  286. package/dist/esm/components/multi-level-dropdown/GroupedMenuList.d.ts +1 -0
  287. package/dist/esm/components/multi-level-dropdown/GroupedMenuList.js +30 -28
  288. package/dist/esm/components/multi-level-dropdown/GroupedMenuList.js.map +1 -1
  289. package/dist/esm/components/multi-level-dropdown/MenuItem.d.ts +1 -0
  290. package/dist/esm/components/multi-level-dropdown/MenuItem.js +57 -54
  291. package/dist/esm/components/multi-level-dropdown/MenuItem.js.map +1 -1
  292. package/dist/esm/components/multi-level-dropdown/MenuList.d.ts +1 -0
  293. package/dist/esm/components/multi-level-dropdown/MenuList.js +46 -42
  294. package/dist/esm/components/multi-level-dropdown/MenuList.js.map +1 -1
  295. package/dist/esm/components/multi-level-dropdown/MultiLevelDropdown.js +95 -59
  296. package/dist/esm/components/multi-level-dropdown/MultiLevelDropdown.js.map +1 -1
  297. package/dist/esm/components/multi-level-dropdown/MultiLevelDropdown.styled.d.ts +13 -3
  298. package/dist/esm/components/multi-level-dropdown/MultiLevelDropdown.styled.js +50 -41
  299. package/dist/esm/components/multi-level-dropdown/MultiLevelDropdown.styled.js.map +1 -1
  300. package/dist/esm/components/multi-level-dropdown/type.d.ts +1 -0
  301. package/dist/esm/components/tag/Tag.d.ts +1 -1
  302. package/dist/esm/components/tag/Tag.js +22 -18
  303. package/dist/esm/components/tag/Tag.js.map +1 -1
  304. package/dist/esm/components/tag/Tag.styled.d.ts +3 -1
  305. package/dist/esm/components/tag/Tag.styled.js +7 -7
  306. package/dist/esm/components/tag/Tag.styled.js.map +1 -1
  307. package/dist/esm/components/tag/model.d.ts +5 -1
  308. package/dist/esm/components/tag/model.js.map +1 -1
  309. package/dist/esm/components/whats-new/WhatsNew.d.ts +2 -0
  310. package/dist/esm/components/whats-new/WhatsNew.js +23 -19
  311. package/dist/esm/components/whats-new/WhatsNew.js.map +1 -1
  312. package/dist/esm/components/whats-new/WhatsNew.types.d.ts +2 -0
  313. package/dist/esm/components/whats-new/WhatsNewButton.js +34 -38
  314. package/dist/esm/components/whats-new/WhatsNewButton.js.map +1 -1
  315. package/dist/esm/components/whats-new/WhatsNewPanel.js.map +1 -1
  316. package/dist/esm/constants/Theme.d.ts +36 -0
  317. package/dist/esm/constants/Theme.js +21 -1
  318. package/dist/esm/constants/Theme.js.map +1 -1
  319. package/dist/esm/editor/BikEditor.js +72 -79
  320. package/dist/esm/editor/BikEditor.js.map +1 -1
  321. package/dist/esm/editor/BikEditor.styles.d.ts +4 -4
  322. package/dist/esm/editor/BikEditor.styles.js +44 -27
  323. package/dist/esm/editor/BikEditor.styles.js.map +1 -1
  324. package/dist/esm/editor/extensions/editorDropdown.styles.d.ts +8 -2
  325. package/dist/esm/editor/extensions/editorDropdown.styles.js +18 -22
  326. package/dist/esm/editor/extensions/editorDropdown.styles.js.map +1 -1
  327. package/dist/esm/editor/extensions/jsonHighlight/JsonHighlightExtension.js +100 -32
  328. package/dist/esm/editor/extensions/jsonHighlight/JsonHighlightExtension.js.map +1 -1
  329. package/dist/esm/icons/Actions/Common actions/ProductTour.d.ts +7 -0
  330. package/dist/esm/icons/Actions/Common actions/ProductTour.js +51 -0
  331. package/dist/esm/icons/Actions/Common actions/ProductTour.js.map +1 -0
  332. package/dist/esm/icons/Actions/Common actions/RestApi.d.ts +7 -0
  333. package/dist/esm/icons/Actions/Common actions/RestApi.js +29 -0
  334. package/dist/esm/icons/Actions/Common actions/RestApi.js.map +1 -0
  335. package/dist/esm/icons/Actions/Common actions/Save.d.ts +7 -0
  336. package/dist/esm/icons/Actions/Common actions/Save.js +40 -0
  337. package/dist/esm/icons/Actions/Common actions/Save.js.map +1 -0
  338. package/dist/esm/icons/Actions/Common actions/Shortcut.d.ts +7 -0
  339. package/dist/esm/icons/Actions/Common actions/Shortcut.js +40 -0
  340. package/dist/esm/icons/Actions/Common actions/Shortcut.js.map +1 -0
  341. package/dist/esm/icons/Actions/Common actions/index.d.ts +4 -0
  342. package/dist/esm/icons/Arrows/Chevron/ChevronUp.d.ts +1 -2
  343. package/dist/esm/icons/Arrows/Chevron/ChevronUp.js +24 -28
  344. package/dist/esm/icons/Arrows/Chevron/ChevronUp.js.map +1 -1
  345. package/dist/esm/icons/BIK AI specific/Webhook.d.ts +7 -0
  346. package/dist/esm/icons/BIK AI specific/Webhook.js +32 -0
  347. package/dist/esm/icons/BIK AI specific/Webhook.js.map +1 -0
  348. package/dist/esm/icons/BIK AI specific/index.d.ts +1 -0
  349. package/dist/esm/icons/Informational/Store related/TicketForm.d.ts +7 -0
  350. package/dist/esm/icons/Informational/Store related/TicketForm.js +65 -0
  351. package/dist/esm/icons/Informational/Store related/TicketForm.js.map +1 -0
  352. package/dist/esm/icons/Informational/Store related/index.d.ts +1 -0
  353. package/dist/esm/icons/Legacy - Bikayi specific/Services/LoudSpeaker.d.ts +7 -0
  354. package/dist/esm/icons/Legacy - Bikayi specific/Services/LoudSpeaker.js +35 -0
  355. package/dist/esm/icons/Legacy - Bikayi specific/Services/LoudSpeaker.js.map +1 -0
  356. package/dist/esm/icons/Legacy - Bikayi specific/Services/index.d.ts +1 -0
  357. package/dist/esm/icons/index.d.ts +24 -24
  358. package/dist/esm/icons/index.js +284 -270
  359. package/dist/esm/icons/index.js.map +1 -1
  360. package/dist/esm/index.d.ts +1 -0
  361. package/dist/esm/index.js +973 -967
  362. package/dist/esm/index.js.map +1 -1
  363. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"TypographyStyle.js","sources":["../../../src/components/TypographyStyle.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport { COLORS, FONTS } from '@src/constants/Theme';\n\nconst addPixels = (value?: number) => {\n\tif (value === undefined || value == null) return '';\n\treturn value + 'px';\n};\nexport interface customStyles {\n\tfontWeight?: number;\n\tfontSize?: number;\n\twidth?: number;\n}\n\nexport const TitleXlarge = styled.div<{\n\tnumberOfLines?: number;\n\tcolor?: string;\n}>`\n\tfont-family: Inter;\n\tcolor: ${(props) => props.color || COLORS.text.primary};\n\tfont-weight: ${FONTS.titleXLarge.fontWeight};\n\tfont-size: ${addPixels(FONTS.titleXLarge.fontSize)};\n\tline-height: ${addPixels(FONTS.titleXLarge.lineHeight)};\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: ${(props) => props.numberOfLines};\n`;\n\nexport const TitleLarge = styled.div<{\n\tnumberOfLines?: number;\n\tcolor?: string;\n}>`\n\tfont-family: Inter;\n\tcolor: ${(props) => props.color || COLORS.text.primary};\n\tfont-weight: ${FONTS.titleLarge.fontWeight};\n\tfont-size: ${addPixels(FONTS.titleLarge.fontSize)};\n\tline-height: ${addPixels(FONTS.titleLarge.lineHeight)};\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: ${(props) => props.numberOfLines};\n`;\n\nexport const TitleMedium = styled.div<{\n\tnumberOfLines?: number;\n\tcolor?: string;\n}>`\n\tfont-family: Inter;\n\tcolor: ${(props) => props.color || COLORS.text.primary};\n\tfont-weight: ${FONTS.titleMedium.fontWeight};\n\tfont-size: ${addPixels(FONTS.titleMedium.fontSize)};\n\tline-height: ${addPixels(FONTS.titleMedium.lineHeight)};\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: ${(props) => props.numberOfLines};\n`;\n\nexport const SmallRegular = styled.div<{\n\tnumberOfLines?: number;\n\tcolor?: string;\n}>`\n\tfont-family: Inter;\n\tcolor: ${(props) => props.color || COLORS.text.primary};\n\tfont-weight: ${FONTS.title4.fontWeight};\n\tfont-size: ${addPixels(FONTS.title4.fontSize)};\n\tline-height: ${addPixels(FONTS.title4.lineHeight)};\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: ${(props) => props.numberOfLines};\n`;\n\nexport const TitleRegular = styled.div<{\n\tnumberOfLines?: number;\n\tcolor?: string;\n}>`\n\tfont-family: Inter;\n\tcolor: ${(props) => props.color || COLORS.text.primary};\n\tfont-weight: ${FONTS.titleRegular.fontWeight};\n\tfont-size: ${addPixels(FONTS.titleRegular.fontSize)};\n\tline-height: ${addPixels(FONTS.titleRegular.lineHeight)};\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: ${(props) => props.numberOfLines};\n`;\nexport const TitleSmall = styled.div<{\n\tnumberOfLines?: number;\n\tcolor?: string;\n}>`\n\tfont-family: Inter;\n\tcolor: ${(props) => props.color || COLORS.text.primary};\n\tfont-weight: ${FONTS.titleSmall.fontWeight};\n\tfont-size: ${addPixels(FONTS.titleSmall.fontSize)};\n\tline-height: ${addPixels(FONTS.titleSmall.lineHeight)};\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: ${(props) => props.numberOfLines};\n`;\n\nexport const Display = styled.div<{\n\tnumberOfLines?: number;\n\tcolor?: string;\n}>`\n\tfont-family: Inter;\n\tcolor: ${(props) => props.color || COLORS.text.primary};\n\tfont-weight: ${FONTS.display.fontWeight};\n\tfont-size: ${addPixels(FONTS.display.fontSize)};\n\tline-height: ${addPixels(FONTS.display.lineHeight)};\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: ${(props) => props.numberOfLines};\n`;\n\nexport const BodyLarge = styled.div<{\n\tnumberOfLines?: number;\n\tcolor?: string;\n}>`\n\tfont-family: Inter;\n\tcolor: ${(props) => props.color || COLORS.text.primary};\n\tfont-weight: ${FONTS.bodyPrimary.fontWeight};\n\tfont-size: ${addPixels(FONTS.bodyLarge.fontSize)};\n\tline-height: ${addPixels(FONTS.bodyLarge.lineHeight)};\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: ${(props) => props.numberOfLines};\n`;\nexport const BodyPrimary = styled.div<{\n\tnumberOfLines?: number;\n\tcolor?: string;\n}>`\n\tfont-family: Inter;\n\tcolor: ${(props) => props.color || COLORS.text.primary};\n\tfont-weight: ${FONTS.bodyPrimary.fontWeight};\n\tfont-size: ${addPixels(FONTS.bodyPrimary.fontSize)};\n\tline-height: ${addPixels(FONTS.bodyPrimary.lineHeight)};\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: ${(props) => props.numberOfLines};\n`;\nexport const BodySecondary = styled.div<{\n\tnumberOfLines?: number;\n\tcolor?: string;\n\tcustomStyles?: customStyles;\n}>`\n\tfont-family: Inter;\n\twidth: ${(props) => addPixels(props.customStyles?.width)};\n\tcolor: ${(props) => props.color || COLORS.text.primary};\n\tfont-weight: ${(props) =>\n\t\tprops.customStyles?.fontWeight || FONTS.bodySecondary.fontWeight};\n\tfont-size: ${(props) =>\n\t\taddPixels(props.customStyles?.fontSize) ||\n\t\taddPixels(FONTS.bodySecondary.fontSize)};\n\tline-height: ${addPixels(FONTS.bodySecondary.lineHeight)};\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: ${(props) => props.numberOfLines};\n`;\n\nexport const ButtonRegularAI = styled.div<{\n\tnumberOfLines?: number;\n\tcolor?: string;\n\tdisabled?: boolean;\n}>`\n\tfont-family: Inter;\n\tcolor: ${(props) => props.color || COLORS.text.primary};\n\tfont-weight: ${FONTS.bodySecondary.fontWeight};\n\tfont-size: ${addPixels(FONTS.bodySecondary.fontSize)};\n\tline-height: ${addPixels(FONTS.bodySecondary.lineHeight)};\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: ${(props) => props.numberOfLines};\n\tz-index: 1;\n\tbackground: linear-gradient(93deg, #ff166a 0.37%, #fb5f08 100%);\n\t-webkit-background-clip: text;\n\t-webkit-text-fill-color: transparent;\n\tbackground-clip: text;\n\ttext-fill-color: transparent;\n`;\n\nexport const BodyPrimaryLink = styled(BodyPrimary)`\n\ttext-decoration: underline;\n\tcolor: ${COLORS.content.brand};\n\ttext-decoration-color: ${COLORS.content.brand};\n\tcursor: pointer;\n`;\n\nexport const BodySecondaryLink = styled(BodySecondary)`\n\ttext-decoration: underline;\n\tcolor: ${COLORS.content.brand};\n\ttext-decoration-color: ${COLORS.content.brand};\n\tcursor: pointer;\n`;\n\nexport const BodyCaption = styled.div<{\n\tnumberOfLines?: number;\n\tcolor?: string;\n}>`\n\tfont-family: Inter;\n\tcolor: ${(props) => props.color || COLORS.text.primary};\n\tfont-weight: ${FONTS.caption.fontWeight};\n\tfont-size: ${addPixels(FONTS.caption.fontSize)};\n\tline-height: ${addPixels(FONTS.caption.lineHeight)};\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: ${(props) => props.numberOfLines};\n\tword-break: break-word;\n\toverflow-wrap: break-word;\n`;\n\nexport const AiBodyCaption = styled.div<{\n\tnumberOfLines?: number;\n\tcolor?: string;\n}>`\n\tfont-family: Inter;\n\tcolor: ${(props) => props.color || COLORS.text.primary};\n\tfont-weight: ${FONTS.caption.fontWeight};\n\tfont-size: ${addPixels(FONTS.caption.fontSize)};\n\tline-height: ${addPixels(FONTS.caption.lineHeight)};\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: ${(props) => props.numberOfLines};\n\tz-index: 1;\n\tbackground: linear-gradient(93deg, #ff166a 0.37%, #fb5f08 100%);\n\t-webkit-background-clip: text;\n\t-webkit-text-fill-color: transparent;\n\tbackground-clip: text;\n\ttext-fill-color: transparent;\n`;\n\nexport const BodyTiny = styled.div<{\n\tnumberOfLines?: number;\n\tcolor?: string;\n}>`\n\tcolor: ${(props) => props.color || COLORS.text.primary};\n\tfont-weight: ${FONTS.tiny.fontWeight};\n\tfont-size: ${addPixels(FONTS.tiny.fontSize)};\n\tline-height: ${addPixels(FONTS.tiny.lineHeight)};\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: ${(props) => props.numberOfLines};\n`;\n\nexport const AiBodyTiny = styled.div<{\n\tnumberOfLines?: number;\n\tcolor?: string;\n}>`\n\tcolor: ${(props) => props.color || COLORS.text.primary};\n\tfont-weight: ${FONTS.tiny.fontWeight};\n\tfont-size: ${addPixels(FONTS.tiny.fontSize)};\n\tline-height: ${addPixels(FONTS.tiny.lineHeight)};\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: ${(props) => props.numberOfLines};\n\tz-index: 1;\n\tbackground: linear-gradient(93deg, #ff166a 0.37%, #fb5f08 100%);\n\t-webkit-background-clip: text;\n\t-webkit-text-fill-color: transparent;\n\tbackground-clip: text;\n\ttext-fill-color: transparent;\n`;\n\nexport const ButtonLarge = styled.div<{\n\tnumberOfLines?: number;\n\tcolor?: string;\n}>`\n\tfont-family: Inter;\n\tcolor: ${(props) => props.color || COLORS.text.primary};\n\tfont-weight: ${FONTS.buttonLarge.fontWeight};\n\tfont-size: ${addPixels(FONTS.buttonLarge.fontSize)};\n\tline-height: ${addPixels(FONTS.buttonLarge.lineHeight)};\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: ${(props) => props.numberOfLines};\n`;\n\nexport const ButtonLargeAI = styled.div<{\n\tnumberOfLines?: number;\n\tcolor?: string;\n}>`\n\tfont-family: Inter;\n\tcolor: ${(props) => props.color || COLORS.text.primary};\n\tfont-weight: ${FONTS.buttonLarge.fontWeight};\n\tfont-size: ${addPixels(FONTS.buttonLarge.fontSize)};\n\tline-height: ${addPixels(FONTS.buttonLarge.lineHeight)};\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: ${(props) => props.numberOfLines};\n\tbackground: linear-gradient(93deg, #ff166a 0.37%, #fb5f08 100%);\n\tz-index: 1;\n\t-webkit-background-clip: text;\n\t-webkit-text-fill-color: transparent;\n\tbackground-clip: text;\n\ttext-fill-color: transparent;\n`;\n\nexport const ButtonRegular = styled.div<{\n\tnumberOfLines?: number;\n\tcolor?: string;\n}>`\n\tfont-family: Inter;\n\tcolor: ${(props) => props.color || COLORS.text.primary};\n\tfont-weight: ${FONTS.buttonRegular.fontWeight};\n\tfont-size: ${addPixels(FONTS.buttonRegular.fontSize)};\n\tline-height: ${addPixels(FONTS.buttonRegular.lineHeight)};\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: ${(props) => props.numberOfLines};\n`;\n\nexport const SubHeading = styled.div<{\n\tnumberOfLines?: number;\n\tcolor?: string;\n}>`\n\tfont-family: Inter;\n\tcolor: ${(props) => props.color || COLORS.text.primary};\n\tfont-weight: ${FONTS.subHeading.fontWeight};\n\tfont-size: ${addPixels(FONTS.subHeading.fontSize)};\n\tline-height: ${addPixels(FONTS.subHeading.lineHeight)};\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: ${(props) => props.numberOfLines};\n`;\n\nexport const BodyRegular = styled.div<{\n\tnumberOfLines?: number;\n\tcolor?: string;\n}>`\n\tfont-family: Inter;\n\tcolor: ${(props) => props.color || COLORS.text.primary};\n\tfont-weight: ${FONTS.bodyRegular.fontWeight};\n\tfont-size: ${addPixels(FONTS.bodyRegular.fontSize)};\n\tline-height: ${addPixels(FONTS.bodyRegular.lineHeight)};\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: ${(props) => props.numberOfLines};\n`;\n\nexport const Caption = styled.div<{\n\tnumberOfLines?: number;\n\tcolor?: string;\n}>`\n\tfont-family: Inter;\n\tcolor: ${COLORS.text.primary};\n\tfont-weight: ${FONTS.caption.fontWeight};\n\tfont-size: ${addPixels(FONTS.caption.fontSize)};\n\tline-height: ${addPixels(FONTS.caption.lineHeight)};\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: ${(props) => props.numberOfLines};\n`;\n\nexport const TextPlaceholder = styled.div<{\n\tnumberOfLines?: number;\n\tcolor?: string;\n}>`\n\tfont-family: Inter;\n\tcolor: ${COLORS.text.primary};\n\tfont-weight: ${FONTS.textPlaceholder.fontWeight};\n\tfont-size: ${addPixels(FONTS.textPlaceholder.fontSize)};\n\tline-height: ${addPixels(FONTS.textPlaceholder.lineHeight)};\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: ${(props) => props.numberOfLines};\n`;\n\nexport const TitleFour = styled.div<{\n\tnumberOfLines?: number;\n\tcolor?: string;\n}>`\n\tfont-family: Inter;\n\tcolor: ${COLORS.text.primary};\n\tfont-weight: ${FONTS.title4.fontWeight};\n\tfont-size: ${addPixels(FONTS.title4.fontSize)};\n\tline-height: ${addPixels(FONTS.title4.lineHeight)};\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: ${(props) => props.numberOfLines};\n`;\n\nexport const BodySmall = styled.div<{\n\tnumberOfLines?: number;\n\tcolor?: string;\n}>`\n\tfont-family: Inter;\n\tcolor: ${COLORS.text.primary};\n\tfont-weight: ${FONTS.bodySmall.fontWeight};\n\tfont-size: ${addPixels(FONTS.bodySmall.fontSize)};\n\tline-height: ${addPixels(FONTS.bodySmall.lineHeight)};\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: ${(props) => props.numberOfLines};\n`;\n\nexport const CaptionBold = styled.div<{\n\tnumberOfLines?: number;\n\tcolor?: string;\n}>`\n\tfont-family: Inter;\n\tcolor: ${COLORS.text.primary};\n\tfont-weight: ${FONTS.captionBold.fontWeight};\n\tfont-size: ${addPixels(FONTS.captionBold.fontSize)};\n\tline-height: ${addPixels(FONTS.captionBold.lineHeight)};\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: ${(props) => props.numberOfLines};\n`;\n\nexport const Tiny = styled.div<{\n\tnumberOfLines?: number;\n\tcolor?: string;\n}>`\n\tfont-family: Inter;\n\tcolor: ${COLORS.text.primary};\n\tfont-weight: ${FONTS.tiny.fontWeight};\n\tfont-size: ${addPixels(FONTS.tiny.fontSize)};\n\tline-height: ${addPixels(FONTS.tiny.lineHeight)};\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: ${(props) => props.numberOfLines};\n`;\n"],"names":["addPixels","value","TitleXlarge","styled","props","COLORS","FONTS","TitleLarge","TitleMedium","SmallRegular","TitleRegular","TitleSmall","Display","BodyLarge","BodyPrimary","BodySecondary","ButtonRegularAI","BodyPrimaryLink","BodySecondaryLink","BodyCaption","AiBodyCaption","BodyTiny","AiBodyTiny","ButtonLarge","ButtonLargeAI","ButtonRegular","SubHeading","BodyRegular","Caption","TextPlaceholder","TitleFour","BodySmall","CaptionBold","Tiny"],"mappings":"uNAGMA,EAAaC,GACdA,IAAU,QAAaA,GAAS,KAAa,GAC1CA,EAAQ,KAQHC,EAAcC,EAAAA,QAAO;AAAA;AAAA,UAKvBC,GAAUA,EAAM,OAASC,EAAAA,OAAO,KAAK,OAAO;AAAA,gBACvCC,EAAAA,MAAM,YAAY,UAAU;AAAA,cAC9BN,EAAUM,EAAAA,MAAM,YAAY,QAAQ,CAAC;AAAA,gBACnCN,EAAUM,EAAAA,MAAM,YAAY,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA,uBAI/BF,GAAUA,EAAM,aAAa;AAAA,EAGxCG,EAAaJ,EAAAA,QAAO;AAAA;AAAA,UAKtBC,GAAUA,EAAM,OAASC,EAAAA,OAAO,KAAK,OAAO;AAAA,gBACvCC,EAAAA,MAAM,WAAW,UAAU;AAAA,cAC7BN,EAAUM,EAAAA,MAAM,WAAW,QAAQ,CAAC;AAAA,gBAClCN,EAAUM,EAAAA,MAAM,WAAW,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA,uBAI9BF,GAAUA,EAAM,aAAa;AAAA,EAGxCI,EAAcL,EAAAA,QAAO;AAAA;AAAA,UAKvBC,GAAUA,EAAM,OAASC,EAAAA,OAAO,KAAK,OAAO;AAAA,gBACvCC,EAAAA,MAAM,YAAY,UAAU;AAAA,cAC9BN,EAAUM,EAAAA,MAAM,YAAY,QAAQ,CAAC;AAAA,gBACnCN,EAAUM,EAAAA,MAAM,YAAY,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA,uBAI/BF,GAAUA,EAAM,aAAa;AAAA,EAGxCK,EAAeN,EAAAA,QAAO;AAAA;AAAA,UAKxBC,GAAUA,EAAM,OAASC,EAAAA,OAAO,KAAK,OAAO;AAAA,gBACvCC,EAAAA,MAAM,OAAO,UAAU;AAAA,cACzBN,EAAUM,EAAAA,MAAM,OAAO,QAAQ,CAAC;AAAA,gBAC9BN,EAAUM,EAAAA,MAAM,OAAO,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA,uBAI1BF,GAAUA,EAAM,aAAa;AAAA,EAGxCM,EAAeP,EAAAA,QAAO;AAAA;AAAA,UAKxBC,GAAUA,EAAM,OAASC,EAAAA,OAAO,KAAK,OAAO;AAAA,gBACvCC,EAAAA,MAAM,aAAa,UAAU;AAAA,cAC/BN,EAAUM,EAAAA,MAAM,aAAa,QAAQ,CAAC;AAAA,gBACpCN,EAAUM,EAAAA,MAAM,aAAa,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA,uBAIhCF,GAAUA,EAAM,aAAa;AAAA,EAExCO,EAAaR,EAAAA,QAAO;AAAA;AAAA,UAKtBC,GAAUA,EAAM,OAASC,EAAAA,OAAO,KAAK,OAAO;AAAA,gBACvCC,EAAAA,MAAM,WAAW,UAAU;AAAA,cAC7BN,EAAUM,EAAAA,MAAM,WAAW,QAAQ,CAAC;AAAA,gBAClCN,EAAUM,EAAAA,MAAM,WAAW,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA,uBAI9BF,GAAUA,EAAM,aAAa;AAAA,EAGxCQ,EAAUT,EAAAA,QAAO;AAAA;AAAA,UAKnBC,GAAUA,EAAM,OAASC,EAAAA,OAAO,KAAK,OAAO;AAAA,gBACvCC,EAAAA,MAAM,QAAQ,UAAU;AAAA,cAC1BN,EAAUM,EAAAA,MAAM,QAAQ,QAAQ,CAAC;AAAA,gBAC/BN,EAAUM,EAAAA,MAAM,QAAQ,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA,uBAI3BF,GAAUA,EAAM,aAAa;AAAA,EAGxCS,EAAYV,EAAAA,QAAO;AAAA;AAAA,UAKrBC,GAAUA,EAAM,OAASC,EAAAA,OAAO,KAAK,OAAO;AAAA,gBACvCC,EAAAA,MAAM,YAAY,UAAU;AAAA,cAC9BN,EAAUM,EAAAA,MAAM,UAAU,QAAQ,CAAC;AAAA,gBACjCN,EAAUM,EAAAA,MAAM,UAAU,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA,uBAI7BF,GAAUA,EAAM,aAAa;AAAA,EAExCU,EAAcX,EAAAA,QAAO;AAAA;AAAA,UAKvBC,GAAUA,EAAM,OAASC,EAAAA,OAAO,KAAK,OAAO;AAAA,gBACvCC,EAAAA,MAAM,YAAY,UAAU;AAAA,cAC9BN,EAAUM,EAAAA,MAAM,YAAY,QAAQ,CAAC;AAAA,gBACnCN,EAAUM,EAAAA,MAAM,YAAY,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA,uBAI/BF,GAAUA,EAAM,aAAa;AAAA,EAExCW,EAAgBZ,EAAAA,QAAO;AAAA;AAAA,UAMzBC,GAAUJ,EAAUI,EAAM,cAAc,KAAK,CAAC;AAAA,UAC9CA,GAAUA,EAAM,OAASC,EAAAA,OAAO,KAAK,OAAO;AAAA,gBACtCD,GACfA,EAAM,cAAc,YAAcE,EAAAA,MAAM,cAAc,UAAU;AAAA,cACnDF,GACbJ,EAAUI,EAAM,cAAc,QAAQ,GACtCJ,EAAUM,EAAAA,MAAM,cAAc,QAAQ,CAAC;AAAA,gBACzBN,EAAUM,EAAAA,MAAM,cAAc,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA,uBAIjCF,GAAUA,EAAM,aAAa;AAAA,EAGxCY,EAAkBb,EAAAA,QAAO;AAAA;AAAA,UAM3BC,GAAUA,EAAM,OAASC,EAAAA,OAAO,KAAK,OAAO;AAAA,gBACvCC,EAAAA,MAAM,cAAc,UAAU;AAAA,cAChCN,EAAUM,EAAAA,MAAM,cAAc,QAAQ,CAAC;AAAA,gBACrCN,EAAUM,EAAAA,MAAM,cAAc,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA,uBAIjCF,GAAUA,EAAM,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASxCa,EAAkBd,EAAAA,QAAOW,CAAW;AAAA;AAAA,UAEvCT,EAAAA,OAAO,QAAQ,KAAK;AAAA,0BACJA,EAAAA,OAAO,QAAQ,KAAK;AAAA;AAAA,EAIjCa,EAAoBf,EAAAA,QAAOY,CAAa;AAAA;AAAA,UAE3CV,EAAAA,OAAO,QAAQ,KAAK;AAAA,0BACJA,EAAAA,OAAO,QAAQ,KAAK;AAAA;AAAA,EAIjCc,EAAchB,EAAAA,QAAO;AAAA;AAAA,UAKvBC,GAAUA,EAAM,OAASC,EAAAA,OAAO,KAAK,OAAO;AAAA,gBACvCC,EAAAA,MAAM,QAAQ,UAAU;AAAA,cAC1BN,EAAUM,EAAAA,MAAM,QAAQ,QAAQ,CAAC;AAAA,gBAC/BN,EAAUM,EAAAA,MAAM,QAAQ,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA,uBAI3BF,GAAUA,EAAM,aAAa;AAAA;AAAA;AAAA,EAKxCgB,EAAgBjB,EAAAA,QAAO;AAAA;AAAA,UAKzBC,GAAUA,EAAM,OAASC,EAAAA,OAAO,KAAK,OAAO;AAAA,gBACvCC,EAAAA,MAAM,QAAQ,UAAU;AAAA,cAC1BN,EAAUM,EAAAA,MAAM,QAAQ,QAAQ,CAAC;AAAA,gBAC/BN,EAAUM,EAAAA,MAAM,QAAQ,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA,uBAI3BF,GAAUA,EAAM,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASxCiB,EAAWlB,EAAAA,QAAO;AAAA,UAIpBC,GAAUA,EAAM,OAASC,EAAAA,OAAO,KAAK,OAAO;AAAA,gBACvCC,EAAAA,MAAM,KAAK,UAAU;AAAA,cACvBN,EAAUM,EAAAA,MAAM,KAAK,QAAQ,CAAC;AAAA,gBAC5BN,EAAUM,EAAAA,MAAM,KAAK,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA,uBAIxBF,GAAUA,EAAM,aAAa;AAAA,EAGxCkB,EAAanB,EAAAA,QAAO;AAAA,UAItBC,GAAUA,EAAM,OAASC,EAAAA,OAAO,KAAK,OAAO;AAAA,gBACvCC,EAAAA,MAAM,KAAK,UAAU;AAAA,cACvBN,EAAUM,EAAAA,MAAM,KAAK,QAAQ,CAAC;AAAA,gBAC5BN,EAAUM,EAAAA,MAAM,KAAK,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA,uBAIxBF,GAAUA,EAAM,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASxCmB,EAAcpB,EAAAA,QAAO;AAAA;AAAA,UAKvBC,GAAUA,EAAM,OAASC,EAAAA,OAAO,KAAK,OAAO;AAAA,gBACvCC,EAAAA,MAAM,YAAY,UAAU;AAAA,cAC9BN,EAAUM,EAAAA,MAAM,YAAY,QAAQ,CAAC;AAAA,gBACnCN,EAAUM,EAAAA,MAAM,YAAY,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA,uBAI/BF,GAAUA,EAAM,aAAa;AAAA,EAGxCoB,EAAgBrB,EAAAA,QAAO;AAAA;AAAA,UAKzBC,GAAUA,EAAM,OAASC,EAAAA,OAAO,KAAK,OAAO;AAAA,gBACvCC,EAAAA,MAAM,YAAY,UAAU;AAAA,cAC9BN,EAAUM,EAAAA,MAAM,YAAY,QAAQ,CAAC;AAAA,gBACnCN,EAAUM,EAAAA,MAAM,YAAY,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA,uBAI/BF,GAAUA,EAAM,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASxCqB,EAAgBtB,EAAAA,QAAO;AAAA;AAAA,UAKzBC,GAAUA,EAAM,OAASC,EAAAA,OAAO,KAAK,OAAO;AAAA,gBACvCC,EAAAA,MAAM,cAAc,UAAU;AAAA,cAChCN,EAAUM,EAAAA,MAAM,cAAc,QAAQ,CAAC;AAAA,gBACrCN,EAAUM,EAAAA,MAAM,cAAc,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA,uBAIjCF,GAAUA,EAAM,aAAa;AAAA,EAGxCsB,EAAavB,EAAAA,QAAO;AAAA;AAAA,UAKtBC,GAAUA,EAAM,OAASC,EAAAA,OAAO,KAAK,OAAO;AAAA,gBACvCC,EAAAA,MAAM,WAAW,UAAU;AAAA,cAC7BN,EAAUM,EAAAA,MAAM,WAAW,QAAQ,CAAC;AAAA,gBAClCN,EAAUM,EAAAA,MAAM,WAAW,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA,uBAI9BF,GAAUA,EAAM,aAAa;AAAA,EAGxCuB,EAAcxB,EAAAA,QAAO;AAAA;AAAA,UAKvBC,GAAUA,EAAM,OAASC,EAAAA,OAAO,KAAK,OAAO;AAAA,gBACvCC,EAAAA,MAAM,YAAY,UAAU;AAAA,cAC9BN,EAAUM,EAAAA,MAAM,YAAY,QAAQ,CAAC;AAAA,gBACnCN,EAAUM,EAAAA,MAAM,YAAY,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA,uBAI/BF,GAAUA,EAAM,aAAa;AAAA,EAGxCwB,EAAUzB,EAAAA,QAAO;AAAA;AAAA,UAKpBE,EAAAA,OAAO,KAAK,OAAO;AAAA,gBACbC,EAAAA,MAAM,QAAQ,UAAU;AAAA,cAC1BN,EAAUM,EAAAA,MAAM,QAAQ,QAAQ,CAAC;AAAA,gBAC/BN,EAAUM,EAAAA,MAAM,QAAQ,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA,uBAI3BF,GAAUA,EAAM,aAAa;AAAA,EAGxCyB,EAAkB1B,EAAAA,QAAO;AAAA;AAAA,UAK5BE,EAAAA,OAAO,KAAK,OAAO;AAAA,gBACbC,EAAAA,MAAM,gBAAgB,UAAU;AAAA,cAClCN,EAAUM,EAAAA,MAAM,gBAAgB,QAAQ,CAAC;AAAA,gBACvCN,EAAUM,EAAAA,MAAM,gBAAgB,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA,uBAInCF,GAAUA,EAAM,aAAa;AAAA,EAGxC0B,EAAY3B,EAAAA,QAAO;AAAA;AAAA,UAKtBE,EAAAA,OAAO,KAAK,OAAO;AAAA,gBACbC,EAAAA,MAAM,OAAO,UAAU;AAAA,cACzBN,EAAUM,EAAAA,MAAM,OAAO,QAAQ,CAAC;AAAA,gBAC9BN,EAAUM,EAAAA,MAAM,OAAO,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA,uBAI1BF,GAAUA,EAAM,aAAa;AAAA,EAGxC2B,EAAY5B,EAAAA,QAAO;AAAA;AAAA,UAKtBE,EAAAA,OAAO,KAAK,OAAO;AAAA,gBACbC,EAAAA,MAAM,UAAU,UAAU;AAAA,cAC5BN,EAAUM,EAAAA,MAAM,UAAU,QAAQ,CAAC;AAAA,gBACjCN,EAAUM,EAAAA,MAAM,UAAU,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA,uBAI7BF,GAAUA,EAAM,aAAa;AAAA,EAGxC4B,EAAc7B,EAAAA,QAAO;AAAA;AAAA,UAKxBE,EAAAA,OAAO,KAAK,OAAO;AAAA,gBACbC,EAAAA,MAAM,YAAY,UAAU;AAAA,cAC9BN,EAAUM,EAAAA,MAAM,YAAY,QAAQ,CAAC;AAAA,gBACnCN,EAAUM,EAAAA,MAAM,YAAY,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA,uBAI/BF,GAAUA,EAAM,aAAa;AAAA,EAGxC6B,EAAO9B,EAAAA,QAAO;AAAA;AAAA,UAKjBE,EAAAA,OAAO,KAAK,OAAO;AAAA,gBACbC,EAAAA,MAAM,KAAK,UAAU;AAAA,cACvBN,EAAUM,EAAAA,MAAM,KAAK,QAAQ,CAAC;AAAA,gBAC5BN,EAAUM,EAAAA,MAAM,KAAK,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA,uBAIxBF,GAAUA,EAAM,aAAa;AAAA"}
1
+ {"version":3,"file":"TypographyStyle.js","sources":["../../../src/components/TypographyStyle.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport { COLORS, FONTS } from '@src/constants/Theme';\n\nconst addPixels = (value?: number) => {\n\tif (value === undefined || value == null) return '';\n\treturn value + 'px';\n};\nexport interface customStyles {\n\tfontWeight?: number;\n\tfontSize?: number;\n\twidth?: number;\n}\n\nexport const TitleXlarge = styled.div<{\n\tnumberOfLines?: number;\n\tcolor?: string;\n}>`\n\tfont-family: Inter;\n\tcolor: ${(props) => props.color || COLORS.text.primary};\n\tfont-weight: ${FONTS.titleXLarge.fontWeight};\n\tfont-size: ${addPixels(FONTS.titleXLarge.fontSize)};\n\tline-height: ${addPixels(FONTS.titleXLarge.lineHeight)};\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: ${(props) => props.numberOfLines};\n`;\n\nexport const TitleLarge = styled.div<{\n\tnumberOfLines?: number;\n\tcolor?: string;\n}>`\n\tfont-family: Inter;\n\tcolor: ${(props) => props.color || COLORS.text.primary};\n\tfont-weight: ${FONTS.titleLarge.fontWeight};\n\tfont-size: ${addPixels(FONTS.titleLarge.fontSize)};\n\tline-height: ${addPixels(FONTS.titleLarge.lineHeight)};\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: ${(props) => props.numberOfLines};\n`;\n\nexport const TitleMedium = styled.div<{\n\tnumberOfLines?: number;\n\tcolor?: string;\n}>`\n\tfont-family: Inter;\n\tcolor: ${(props) => props.color || COLORS.text.primary};\n\tfont-weight: ${FONTS.titleMedium.fontWeight};\n\tfont-size: ${addPixels(FONTS.titleMedium.fontSize)};\n\tline-height: ${addPixels(FONTS.titleMedium.lineHeight)};\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: ${(props) => props.numberOfLines};\n`;\n\nexport const SmallRegular = styled.div<{\n\tnumberOfLines?: number;\n\tcolor?: string;\n}>`\n\tfont-family: Inter;\n\tcolor: ${(props) => props.color || COLORS.text.primary};\n\tfont-weight: ${FONTS.title4.fontWeight};\n\tfont-size: ${addPixels(FONTS.title4.fontSize)};\n\tline-height: ${addPixels(FONTS.title4.lineHeight)};\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: ${(props) => props.numberOfLines};\n`;\n\nexport const TitleRegular = styled.div<{\n\tnumberOfLines?: number;\n\tcolor?: string;\n}>`\n\tfont-family: Inter;\n\tcolor: ${(props) => props.color || COLORS.text.primary};\n\tfont-weight: ${FONTS.titleRegular.fontWeight};\n\tfont-size: ${addPixels(FONTS.titleRegular.fontSize)};\n\tline-height: ${addPixels(FONTS.titleRegular.lineHeight)};\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: ${(props) => props.numberOfLines};\n`;\nexport const TitleSmall = styled.div<{\n\tnumberOfLines?: number;\n\tcolor?: string;\n}>`\n\tfont-family: Inter;\n\tcolor: ${(props) => props.color || COLORS.text.primary};\n\tfont-weight: ${FONTS.titleSmall.fontWeight};\n\tfont-size: ${addPixels(FONTS.titleSmall.fontSize)};\n\tline-height: ${addPixels(FONTS.titleSmall.lineHeight)};\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: ${(props) => props.numberOfLines};\n`;\n\nexport const TitleTiny = styled.div<{\n\tnumberOfLines?: number;\n\tcolor?: string;\n}>`\n\tfont-family: Inter;\n\tcolor: ${(props) => props.color || COLORS.text.primary};\n\tfont-weight: ${FONTS.titleTiny.fontWeight};\n\tfont-size: ${addPixels(FONTS.titleTiny.fontSize)};\n\tline-height: ${addPixels(FONTS.titleTiny.lineHeight)};\n\tfont-variant-numeric: lining-nums tabular-nums;\n\tfont-feature-settings: 'case' on;\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: ${(props) => props.numberOfLines};\n`;\n\nexport const Display = styled.div<{\n\tnumberOfLines?: number;\n\tcolor?: string;\n}>`\n\tfont-family: Inter;\n\tcolor: ${(props) => props.color || COLORS.text.primary};\n\tfont-weight: ${FONTS.display.fontWeight};\n\tfont-size: ${addPixels(FONTS.display.fontSize)};\n\tline-height: ${addPixels(FONTS.display.lineHeight)};\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: ${(props) => props.numberOfLines};\n`;\n\nexport const BodyLarge = styled.div<{\n\tnumberOfLines?: number;\n\tcolor?: string;\n}>`\n\tfont-family: Inter;\n\tcolor: ${(props) => props.color || COLORS.text.primary};\n\tfont-weight: ${FONTS.bodyPrimary.fontWeight};\n\tfont-size: ${addPixels(FONTS.bodyLarge.fontSize)};\n\tline-height: ${addPixels(FONTS.bodyLarge.lineHeight)};\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: ${(props) => props.numberOfLines};\n`;\nexport const BodyPrimary = styled.div<{\n\tnumberOfLines?: number;\n\tcolor?: string;\n}>`\n\tfont-family: Inter;\n\tcolor: ${(props) => props.color || COLORS.text.primary};\n\tfont-weight: ${FONTS.bodyPrimary.fontWeight};\n\tfont-size: ${addPixels(FONTS.bodyPrimary.fontSize)};\n\tline-height: ${addPixels(FONTS.bodyPrimary.lineHeight)};\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: ${(props) => props.numberOfLines};\n`;\nexport const BodySecondary = styled.div<{\n\tnumberOfLines?: number;\n\tcolor?: string;\n\tcustomStyles?: customStyles;\n}>`\n\tfont-family: Inter;\n\twidth: ${(props) => addPixels(props.customStyles?.width)};\n\tcolor: ${(props) => props.color || COLORS.text.primary};\n\tfont-weight: ${(props) =>\n\t\tprops.customStyles?.fontWeight || FONTS.bodySecondary.fontWeight};\n\tfont-size: ${(props) =>\n\t\taddPixels(props.customStyles?.fontSize) ||\n\t\taddPixels(FONTS.bodySecondary.fontSize)};\n\tline-height: ${addPixels(FONTS.bodySecondary.lineHeight)};\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: ${(props) => props.numberOfLines};\n`;\n\nexport const ButtonRegularAI = styled.div<{\n\tnumberOfLines?: number;\n\tcolor?: string;\n\tdisabled?: boolean;\n}>`\n\tfont-family: Inter;\n\tcolor: ${(props) => props.color || COLORS.text.primary};\n\tfont-weight: ${FONTS.bodySecondary.fontWeight};\n\tfont-size: ${addPixels(FONTS.bodySecondary.fontSize)};\n\tline-height: ${addPixels(FONTS.bodySecondary.lineHeight)};\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: ${(props) => props.numberOfLines};\n\tz-index: 1;\n\tbackground: linear-gradient(93deg, #ff166a 0.37%, #fb5f08 100%);\n\t-webkit-background-clip: text;\n\t-webkit-text-fill-color: transparent;\n\tbackground-clip: text;\n\ttext-fill-color: transparent;\n`;\n\nexport const BodyPrimaryLink = styled(BodyPrimary)`\n\ttext-decoration: underline;\n\tcolor: ${COLORS.content.brand};\n\ttext-decoration-color: ${COLORS.content.brand};\n\tcursor: pointer;\n`;\n\nexport const BodySecondaryLink = styled(BodySecondary)`\n\ttext-decoration: underline;\n\tcolor: ${COLORS.content.brand};\n\ttext-decoration-color: ${COLORS.content.brand};\n\tcursor: pointer;\n`;\n\nexport const BodyCaption = styled.div<{\n\tnumberOfLines?: number;\n\tcolor?: string;\n}>`\n\tfont-family: Inter;\n\tcolor: ${(props) => props.color || COLORS.text.primary};\n\tfont-weight: ${FONTS.caption.fontWeight};\n\tfont-size: ${addPixels(FONTS.caption.fontSize)};\n\tline-height: ${addPixels(FONTS.caption.lineHeight)};\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: ${(props) => props.numberOfLines};\n\tword-break: break-word;\n\toverflow-wrap: break-word;\n`;\n\nexport const AiBodyCaption = styled.div<{\n\tnumberOfLines?: number;\n\tcolor?: string;\n}>`\n\tfont-family: Inter;\n\tcolor: ${(props) => props.color || COLORS.text.primary};\n\tfont-weight: ${FONTS.caption.fontWeight};\n\tfont-size: ${addPixels(FONTS.caption.fontSize)};\n\tline-height: ${addPixels(FONTS.caption.lineHeight)};\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: ${(props) => props.numberOfLines};\n\tz-index: 1;\n\tbackground: linear-gradient(93deg, #ff166a 0.37%, #fb5f08 100%);\n\t-webkit-background-clip: text;\n\t-webkit-text-fill-color: transparent;\n\tbackground-clip: text;\n\ttext-fill-color: transparent;\n`;\n\nexport const BodyTiny = styled.div<{\n\tnumberOfLines?: number;\n\tcolor?: string;\n}>`\n\tcolor: ${(props) => props.color || COLORS.text.primary};\n\tfont-weight: ${FONTS.tiny.fontWeight};\n\tfont-size: ${addPixels(FONTS.tiny.fontSize)};\n\tline-height: ${addPixels(FONTS.tiny.lineHeight)};\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: ${(props) => props.numberOfLines};\n`;\n\nexport const BodyTinySemiBold = styled.div<{\n\tnumberOfLines?: number;\n\tcolor?: string;\n}>`\n\tcolor: ${(props) => props.color || COLORS.text.primary};\n\tfont-weight: ${FONTS.bodyTinySemiBold.fontWeight};\n\tfont-size: ${addPixels(FONTS.bodyTinySemiBold.fontSize)};\n\tline-height: ${addPixels(FONTS.bodyTinySemiBold.lineHeight)};\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: ${(props) => props.numberOfLines};\n`;\n\nexport const AiBodyTiny = styled.div<{\n\tnumberOfLines?: number;\n\tcolor?: string;\n}>`\n\tcolor: ${(props) => props.color || COLORS.text.primary};\n\tfont-weight: ${FONTS.tiny.fontWeight};\n\tfont-size: ${addPixels(FONTS.tiny.fontSize)};\n\tline-height: ${addPixels(FONTS.tiny.lineHeight)};\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: ${(props) => props.numberOfLines};\n\tz-index: 1;\n\tbackground: linear-gradient(93deg, #ff166a 0.37%, #fb5f08 100%);\n\t-webkit-background-clip: text;\n\t-webkit-text-fill-color: transparent;\n\tbackground-clip: text;\n\ttext-fill-color: transparent;\n`;\n\nexport const ButtonLarge = styled.div<{\n\tnumberOfLines?: number;\n\tcolor?: string;\n}>`\n\tfont-family: Inter;\n\tcolor: ${(props) => props.color || COLORS.text.primary};\n\tfont-weight: ${FONTS.buttonLarge.fontWeight};\n\tfont-size: ${addPixels(FONTS.buttonLarge.fontSize)};\n\tline-height: ${addPixels(FONTS.buttonLarge.lineHeight)};\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: ${(props) => props.numberOfLines};\n`;\n\nexport const ButtonLargeAI = styled.div<{\n\tnumberOfLines?: number;\n\tcolor?: string;\n}>`\n\tfont-family: Inter;\n\tcolor: ${(props) => props.color || COLORS.text.primary};\n\tfont-weight: ${FONTS.buttonLarge.fontWeight};\n\tfont-size: ${addPixels(FONTS.buttonLarge.fontSize)};\n\tline-height: ${addPixels(FONTS.buttonLarge.lineHeight)};\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: ${(props) => props.numberOfLines};\n\tbackground: linear-gradient(93deg, #ff166a 0.37%, #fb5f08 100%);\n\tz-index: 1;\n\t-webkit-background-clip: text;\n\t-webkit-text-fill-color: transparent;\n\tbackground-clip: text;\n\ttext-fill-color: transparent;\n`;\n\nexport const ButtonRegular = styled.div<{\n\tnumberOfLines?: number;\n\tcolor?: string;\n}>`\n\tfont-family: Inter;\n\tcolor: ${(props) => props.color || COLORS.text.primary};\n\tfont-weight: ${FONTS.buttonRegular.fontWeight};\n\tfont-size: ${addPixels(FONTS.buttonRegular.fontSize)};\n\tline-height: ${addPixels(FONTS.buttonRegular.lineHeight)};\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: ${(props) => props.numberOfLines};\n`;\n\nexport const SubHeading = styled.div<{\n\tnumberOfLines?: number;\n\tcolor?: string;\n}>`\n\tfont-family: Inter;\n\tcolor: ${(props) => props.color || COLORS.text.primary};\n\tfont-weight: ${FONTS.subHeading.fontWeight};\n\tfont-size: ${addPixels(FONTS.subHeading.fontSize)};\n\tline-height: ${addPixels(FONTS.subHeading.lineHeight)};\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: ${(props) => props.numberOfLines};\n`;\n\nexport const BodyRegular = styled.div<{\n\tnumberOfLines?: number;\n\tcolor?: string;\n}>`\n\tfont-family: Inter;\n\tcolor: ${(props) => props.color || COLORS.text.primary};\n\tfont-weight: ${FONTS.bodyRegular.fontWeight};\n\tfont-size: ${addPixels(FONTS.bodyRegular.fontSize)};\n\tline-height: ${addPixels(FONTS.bodyRegular.lineHeight)};\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: ${(props) => props.numberOfLines};\n`;\n\nexport const Caption = styled.div<{\n\tnumberOfLines?: number;\n\tcolor?: string;\n}>`\n\tfont-family: Inter;\n\tcolor: ${COLORS.text.primary};\n\tfont-weight: ${FONTS.caption.fontWeight};\n\tfont-size: ${addPixels(FONTS.caption.fontSize)};\n\tline-height: ${addPixels(FONTS.caption.lineHeight)};\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: ${(props) => props.numberOfLines};\n`;\n\nexport const TextPlaceholder = styled.div<{\n\tnumberOfLines?: number;\n\tcolor?: string;\n}>`\n\tfont-family: Inter;\n\tcolor: ${COLORS.text.primary};\n\tfont-weight: ${FONTS.textPlaceholder.fontWeight};\n\tfont-size: ${addPixels(FONTS.textPlaceholder.fontSize)};\n\tline-height: ${addPixels(FONTS.textPlaceholder.lineHeight)};\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: ${(props) => props.numberOfLines};\n`;\n\nexport const TitleFour = styled.div<{\n\tnumberOfLines?: number;\n\tcolor?: string;\n}>`\n\tfont-family: Inter;\n\tcolor: ${COLORS.text.primary};\n\tfont-weight: ${FONTS.title4.fontWeight};\n\tfont-size: ${addPixels(FONTS.title4.fontSize)};\n\tline-height: ${addPixels(FONTS.title4.lineHeight)};\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: ${(props) => props.numberOfLines};\n`;\n\nexport const BodySmall = styled.div<{\n\tnumberOfLines?: number;\n\tcolor?: string;\n}>`\n\tfont-family: Inter;\n\tcolor: ${COLORS.text.primary};\n\tfont-weight: ${FONTS.bodySmall.fontWeight};\n\tfont-size: ${addPixels(FONTS.bodySmall.fontSize)};\n\tline-height: ${addPixels(FONTS.bodySmall.lineHeight)};\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: ${(props) => props.numberOfLines};\n`;\n\nexport const CaptionBold = styled.div<{\n\tnumberOfLines?: number;\n\tcolor?: string;\n}>`\n\tfont-family: Inter;\n\tcolor: ${COLORS.text.primary};\n\tfont-weight: ${FONTS.captionBold.fontWeight};\n\tfont-size: ${addPixels(FONTS.captionBold.fontSize)};\n\tline-height: ${addPixels(FONTS.captionBold.lineHeight)};\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: ${(props) => props.numberOfLines};\n`;\n\nexport const Tiny = styled.div<{\n\tnumberOfLines?: number;\n\tcolor?: string;\n}>`\n\tfont-family: Inter;\n\tcolor: ${COLORS.text.primary};\n\tfont-weight: ${FONTS.tiny.fontWeight};\n\tfont-size: ${addPixels(FONTS.tiny.fontSize)};\n\tline-height: ${addPixels(FONTS.tiny.lineHeight)};\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: ${(props) => props.numberOfLines};\n`;\n"],"names":["addPixels","value","TitleXlarge","styled","props","COLORS","FONTS","TitleLarge","TitleMedium","SmallRegular","TitleRegular","TitleSmall","TitleTiny","Display","BodyLarge","BodyPrimary","BodySecondary","ButtonRegularAI","BodyPrimaryLink","BodySecondaryLink","BodyCaption","AiBodyCaption","BodyTiny","BodyTinySemiBold","AiBodyTiny","ButtonLarge","ButtonLargeAI","ButtonRegular","SubHeading","BodyRegular","Caption","TextPlaceholder","TitleFour","BodySmall","CaptionBold","Tiny"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),c=require("react"),S=require("styled-components"),k=require("../../hooks/useOutside.js"),o=require("../../constants/Theme.js"),I=require("../../assets/icons/chevronDown.svg.js"),$=require("../../assets/icons/chevronRight.svg.js"),q=require("../../assets/icons/edit.svg.js"),v=require("../../assets/icons/emoji.svg.js"),h=require("../../assets/icons/magic-line.svg.js"),A=require("./BorderAnimation.js"),D=e=>e&&typeof e=="object"&&"default"in e?e:{default:e},s=D(S),L=s.default.div`
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),c=require("react"),S=require("styled-components"),k=require("../../hooks/useOutside.js"),o=require("../../constants/Theme.js"),I=require("../../assets/icons/chevronDown.svg.js"),$=require("../../assets/icons/chevronRight.svg.js"),q=require("../../assets/icons/edit.svg.js"),v=require("../../assets/icons/emoji.svg.js"),b=require("../../assets/icons/magic-line.svg.js"),A=require("./BorderAnimation.js"),D=e=>e&&typeof e=="object"&&"default"in e?e:{default:e},s=D(S),L=s.default.div`
2
2
  display: flex;
3
3
  align-items: center;
4
4
  border: 1px solid transparent;
@@ -10,7 +10,7 @@
10
10
  background: #ffe8ef;
11
11
  color: #f53f77;
12
12
  border-radius: 16px 0 0 16px;
13
- padding: 6px 10px;
13
+ padding: 4px 6px;
14
14
  font-size: 12px;
15
15
  font-weight: 400;
16
16
  line-height: 16px;
@@ -22,16 +22,27 @@
22
22
  filter: brightness(0.98);
23
23
  }
24
24
  `,T=s.default.button`
25
+ position: relative;
25
26
  border: 0;
26
- border-left: 1px solid #f6c8d7;
27
27
  background: #ffe8ef;
28
28
  color: #f53f77;
29
29
  border-radius: 0 16px 16px 0;
30
- //padding: 4px 6px;
30
+ padding: 4px;
31
31
  line-height: 1;
32
32
  cursor: ${e=>e.disabled?"not-allowed":"pointer"};
33
33
  display: flex;
34
34
  align-items: center;
35
+ /* 12px inset divider, matching Figma (Line 14) */
36
+ ::before {
37
+ content: '';
38
+ position: absolute;
39
+ left: 0;
40
+ top: 50%;
41
+ transform: translateY(-50%);
42
+ width: 1px;
43
+ height: 12px;
44
+ background: #f6c8d7;
45
+ }
35
46
  `,B=s.default.div`
36
47
  position: relative;
37
48
  `,z=s.default.div`
@@ -78,5 +89,5 @@
78
89
  z-index: 11;
79
90
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
80
91
  padding: 4px;
81
- `,_=({label:e,disabled:l,loading:i,highlighted:g,tones:f,selectedToneId:w,instructionActive:u,onClick:m,onToneChange:y,onInstructionsClick:O,showSecondaryRephraseOption:j,onSecondaryRephraseClick:C})=>{const x=c.useRef(null),[R,d]=c.useState(!1),[b,n]=c.useState(!1),a=!!u||!!l||!!i;return k.useOutside(x,()=>{d(!1),n(!1)}),c.useEffect(()=>{u&&(d(!1),n(!1))},[u]),t.jsxs(B,{ref:x,children:[t.jsx(A.default,{showAnimation:!!g,disabled:!!l||!!i,borderRadius:16,borderSize:2,children:t.jsxs(L,{disabled:l||i,children:[t.jsxs(M,{type:"button",disabled:l||i,onClick:m,children:[t.jsx(h.default,{width:12,height:12,color:"#f53f77"}),i?"...":e]}),t.jsx(T,{type:"button",disabled:a,onClick:()=>{a||(d(r=>!r),n(!1))},children:t.jsx(I.default,{width:14,height:14})})]})}),R?t.jsxs(z,{children:[f?.length?t.jsx(p,{type:"button",toneSubmenuOpen:b,isChangeToneRow:!0,onMouseEnter:()=>{a||n(!0)},onClick:()=>n(r=>!r),children:t.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",width:"100%"},children:[t.jsxs("span",{style:{display:"inline-flex",alignItems:"center",gap:8},children:[t.jsx(v.default,{width:18,height:18,color:"currentColor"}),"Change tone"]}),t.jsx($.default,{width:14,height:14,color:"currentColor"})]})}):null,t.jsxs(p,{type:"button",isInstructions:!0,selected:!!u,onMouseEnter:()=>n(!1),onClick:()=>{a||(O?.(),d(!1),n(!1))},children:[t.jsx(q.default,{width:16,height:16,color:o.COLORS.content.primary}),"Add instructions"]}),j?t.jsxs(p,{type:"button",onMouseEnter:()=>n(!1),onClick:()=>{l||i||(C?.(),d(!1),n(!1))},children:[t.jsx(h.default,{width:16,height:16,color:o.COLORS.content.primary}),"Rephrase"]}):null,b&&f?.length?t.jsx(E,{children:f.map(r=>t.jsx(p,{type:"button",selected:r.id===w,onClick:()=>{a||(y?.(r.id),d(!1),n(!1))},children:r.label},r.id))}):null]}):null]})};exports.AIRephraseButton=_;
92
+ `,_=({label:e,disabled:l,loading:i,highlighted:g,tones:f,selectedToneId:m,instructionActive:u,onClick:w,onToneChange:y,onInstructionsClick:O,showSecondaryRephraseOption:j,onSecondaryRephraseClick:C})=>{const x=c.useRef(null),[R,d]=c.useState(!1),[h,n]=c.useState(!1),a=!!u||!!l||!!i;return k.useOutside(x,()=>{d(!1),n(!1)}),c.useEffect(()=>{u&&(d(!1),n(!1))},[u]),t.jsxs(B,{ref:x,children:[t.jsx(A.default,{showAnimation:!!g,disabled:!!l||!!i,borderRadius:16,borderSize:2,children:t.jsxs(L,{disabled:l||i,children:[t.jsxs(M,{type:"button",disabled:l||i,onClick:w,children:[t.jsx(b.default,{width:16,height:16,color:"#f53f77"}),i?"...":e]}),t.jsx(T,{type:"button",disabled:a,onClick:()=>{a||(d(r=>!r),n(!1))},children:t.jsx(I.default,{width:16,height:16})})]})}),R?t.jsxs(z,{children:[f?.length?t.jsx(p,{type:"button",toneSubmenuOpen:h,isChangeToneRow:!0,onMouseEnter:()=>{a||n(!0)},onClick:()=>n(r=>!r),children:t.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",width:"100%"},children:[t.jsxs("span",{style:{display:"inline-flex",alignItems:"center",gap:8},children:[t.jsx(v.default,{width:18,height:18,color:"currentColor"}),"Change tone"]}),t.jsx($.default,{width:14,height:14,color:"currentColor"})]})}):null,t.jsxs(p,{type:"button",isInstructions:!0,selected:!!u,onMouseEnter:()=>n(!1),onClick:()=>{a||(O?.(),d(!1),n(!1))},children:[t.jsx(q.default,{width:16,height:16,color:o.COLORS.content.primary}),"Add instructions"]}),j?t.jsxs(p,{type:"button",onMouseEnter:()=>n(!1),onClick:()=>{l||i||(C?.(),d(!1),n(!1))},children:[t.jsx(b.default,{width:16,height:16,color:o.COLORS.content.primary}),"Rephrase"]}):null,h&&f?.length?t.jsx(E,{children:f.map(r=>t.jsx(p,{type:"button",selected:r.id===m,onClick:()=>{a||(y?.(r.id),d(!1),n(!1))},children:r.label},r.id))}):null]}):null]})};exports.AIRephraseButton=_;
82
93
  //# sourceMappingURL=AIRephraseButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AIRephraseButton.js","sources":["../../../../src/components/WhatsAppTextEditor/AIRephraseButton.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport styled from 'styled-components';\nimport { useOutside } from '@src/hooks/useOutside';\nimport { COLORS } from '@src/constants/Theme';\nimport ChevronDownIcon from '../../assets/icons/chevronDown.svg';\nimport ChevronRightIcon from '../../assets/icons/chevronRight.svg';\nimport EditIcon from '../../assets/icons/edit.svg';\nimport EmojiIcon from '../../assets/icons/emoji.svg';\nimport SparkleIcon from '../../assets/icons/magic-line.svg';\nimport BorderAnimation from './BorderAnimation';\n\nconst AIButtonGroup = styled.div<{ disabled?: boolean }>`\n\tdisplay: flex;\n\talign-items: center;\n\tborder: 1px solid transparent;\n\tborder-radius: 16px;\n\tbackground: #ffe8ef;\n\topacity: ${(props) => (props.disabled ? 0.5 : 1)};\n`;\n\nconst AIButton = styled.button<{ disabled?: boolean }>`\n\tborder: 0;\n\tbackground: #ffe8ef;\n\tcolor: #f53f77;\n\tborder-radius: 16px 0 0 16px;\n\tpadding: 6px 10px;\n\tfont-size: 12px;\n\tfont-weight: 400;\n\tline-height: 16px;\n\tcursor: ${(props) => (props.disabled ? 'not-allowed' : 'pointer')};\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 4px;\n\t:hover {\n\t\tfilter: brightness(0.98);\n\t}\n`;\n\nconst AIArrowButton = styled.button<{ disabled?: boolean }>`\n\tborder: 0;\n\tborder-left: 1px solid #f6c8d7;\n\tbackground: #ffe8ef;\n\tcolor: #f53f77;\n\tborder-radius: 0 16px 16px 0;\n\t//padding: 4px 6px;\n\tline-height: 1;\n\tcursor: ${(props) => (props.disabled ? 'not-allowed' : 'pointer')};\n\tdisplay: flex;\n\talign-items: center;\n`;\n\nconst AIDropdownContainer = styled.div`\n\tposition: relative;\n`;\n\nconst AIDropdownMenu = styled.div`\n\tposition: absolute;\n\ttop: calc(100% + 6px);\n\tleft: 0;\n\tbackground: ${COLORS.surface.standard};\n\tborder: 1px solid ${COLORS.stroke.primary};\n\tborder-radius: 8px;\n\twidth: 209px;\n\tz-index: 10;\n\tbox-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);\n\tpadding: 4px;\n`;\n\nconst AIDropdownItem = styled.button<{\n\tselected?: boolean;\n\tisInstructions?: boolean;\n\t/** Change tone row: green highlight when tone submenu is open */\n\ttoneSubmenuOpen?: boolean;\n\t/** Change tone row: green text/icon on hover or when submenu open */\n\tisChangeToneRow?: boolean;\n}>`\n\twidth: 100%;\n\ttext-align: left;\n\tborder: 0;\n\tbackground: ${(props) =>\n\t\tprops.selected || props.toneSubmenuOpen ? '#d9e8db' : 'transparent'};\n\tcolor: ${(props) =>\n\t\tprops.selected || props.toneSubmenuOpen\n\t\t\t? '#1e6b34'\n\t\t\t: COLORS.content.primary};\n\tpadding: 10px 10px;\n\tborder-radius: 6px;\n\tcursor: pointer;\n\tfont-size: 14px;\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n\t:hover {\n\t\tbackground: ${(props) =>\n\t\t\tprops.selected || props.toneSubmenuOpen ? '#d9e8db' : '#f7f7f8'};\n\t}\n\t${(props) =>\n\t\tprops.isChangeToneRow\n\t\t\t? `\n\t\t&:hover {\n\t\t\tcolor: #1e6b34;\n\t\t\tbackground: ${props.toneSubmenuOpen ? '#d9e8db' : '#f7f7f8'};\n\t\t}\n\t`\n\t\t\t: ''}\n`;\n\nconst ToneSubMenu = styled.div`\n\tposition: absolute;\n\ttop: 0;\n\tleft: calc(100% + 4px);\n\tbackground: ${COLORS.surface.standard};\n\tborder: 1px solid ${COLORS.stroke.primary};\n\tborder-radius: 8px;\n\tmin-width: 140px;\n\tz-index: 11;\n\tbox-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);\n\tpadding: 4px;\n`;\n\ntype AIRephraseButtonProps = {\n\tlabel: string;\n\tdisabled?: boolean;\n\tloading?: boolean;\n\thighlighted?: boolean;\n\ttones?: AIActionToneOption[];\n\tselectedToneId?: string;\n\tinstructionActive?: boolean;\n\tonClick?: () => void;\n\tonToneChange?: (toneId: string) => void;\n\tonInstructionsClick?: () => void;\n\tshowSecondaryRephraseOption?: boolean;\n\tonSecondaryRephraseClick?: () => void;\n};\n\nexport const AIRephraseButton = ({\n\tlabel,\n\tdisabled,\n\tloading,\n\thighlighted,\n\ttones,\n\tselectedToneId,\n\tinstructionActive,\n\tonClick,\n\tonToneChange,\n\tonInstructionsClick,\n\tshowSecondaryRephraseOption,\n\tonSecondaryRephraseClick,\n}: AIRephraseButtonProps) => {\n\tconst dropdownRef = useRef<HTMLDivElement>(null);\n\tconst [isDropdownOpen, setIsDropdownOpen] = useState(false);\n\tconst [isToneMenuOpen, setIsToneMenuOpen] = useState(false);\n\tconst isDropdownDisabled = !!instructionActive || !!disabled || !!loading;\n\n\tuseOutside(dropdownRef, () => {\n\t\tsetIsDropdownOpen(false);\n\t\tsetIsToneMenuOpen(false);\n\t});\n\n\tuseEffect(() => {\n\t\tif (!instructionActive) return;\n\t\tsetIsDropdownOpen(false);\n\t\tsetIsToneMenuOpen(false);\n\t}, [instructionActive]);\n\n\treturn (\n\t\t<AIDropdownContainer ref={dropdownRef}>\n\t\t\t<BorderAnimation\n\t\t\t\tshowAnimation={!!highlighted}\n\t\t\t\tdisabled={!!disabled || !!loading}\n\t\t\t\tborderRadius={16}\n\t\t\t\tborderSize={2}\n\t\t\t>\n\t\t\t\t<AIButtonGroup disabled={disabled || loading}>\n\t\t\t\t\t<AIButton\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tdisabled={disabled || loading}\n\t\t\t\t\t\tonClick={onClick}\n\t\t\t\t\t>\n\t\t\t\t\t\t<SparkleIcon width={12} height={12} color=\"#f53f77\" />\n\t\t\t\t\t\t{loading ? '...' : label}\n\t\t\t\t\t</AIButton>\n\t\t\t\t\t<AIArrowButton\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tdisabled={isDropdownDisabled}\n\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\tif (isDropdownDisabled) return;\n\t\t\t\t\t\t\tsetIsDropdownOpen((prev) => !prev);\n\t\t\t\t\t\t\tsetIsToneMenuOpen(false);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ChevronDownIcon width={14} height={14} />\n\t\t\t\t\t</AIArrowButton>\n\t\t\t\t</AIButtonGroup>\n\t\t\t</BorderAnimation>\n\t\t\t{isDropdownOpen ? (\n\t\t\t\t<AIDropdownMenu>\n\t\t\t\t\t{tones?.length ? (\n\t\t\t\t\t\t<AIDropdownItem\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\ttoneSubmenuOpen={isToneMenuOpen}\n\t\t\t\t\t\t\tisChangeToneRow\n\t\t\t\t\t\t\tonMouseEnter={() => {\n\t\t\t\t\t\t\t\tif (isDropdownDisabled) return;\n\t\t\t\t\t\t\t\tsetIsToneMenuOpen(true);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonClick={() => setIsToneMenuOpen((prev) => !prev)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\t\t\talignItems: 'center',\n\t\t\t\t\t\t\t\t\tjustifyContent: 'space-between',\n\t\t\t\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\tdisplay: 'inline-flex',\n\t\t\t\t\t\t\t\t\t\talignItems: 'center',\n\t\t\t\t\t\t\t\t\t\tgap: 8,\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<EmojiIcon width={18} height={18} color=\"currentColor\" />\n\t\t\t\t\t\t\t\t\tChange tone\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t<ChevronRightIcon width={14} height={14} color=\"currentColor\" />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</AIDropdownItem>\n\t\t\t\t\t) : null}\n\t\t\t\t\t<AIDropdownItem\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tisInstructions\n\t\t\t\t\t\tselected={!!instructionActive}\n\t\t\t\t\t\tonMouseEnter={() => setIsToneMenuOpen(false)}\n\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\tif (isDropdownDisabled) return;\n\t\t\t\t\t\t\tonInstructionsClick?.();\n\t\t\t\t\t\t\tsetIsDropdownOpen(false);\n\t\t\t\t\t\t\tsetIsToneMenuOpen(false);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<EditIcon width={16} height={16} color={COLORS.content.primary} />\n\t\t\t\t\t\tAdd instructions\n\t\t\t\t\t</AIDropdownItem>\n\t\t\t\t\t{showSecondaryRephraseOption ? (\n\t\t\t\t\t\t<AIDropdownItem\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tonMouseEnter={() => setIsToneMenuOpen(false)}\n\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\tif (disabled || loading) return;\n\t\t\t\t\t\t\t\tonSecondaryRephraseClick?.();\n\t\t\t\t\t\t\t\tsetIsDropdownOpen(false);\n\t\t\t\t\t\t\t\tsetIsToneMenuOpen(false);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<SparkleIcon\n\t\t\t\t\t\t\t\twidth={16}\n\t\t\t\t\t\t\t\theight={16}\n\t\t\t\t\t\t\t\tcolor={COLORS.content.primary}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\tRephrase\n\t\t\t\t\t\t</AIDropdownItem>\n\t\t\t\t\t) : null}\n\t\t\t\t\t{isToneMenuOpen && tones?.length ? (\n\t\t\t\t\t\t<ToneSubMenu>\n\t\t\t\t\t\t\t{tones.map((tone) => (\n\t\t\t\t\t\t\t\t<AIDropdownItem\n\t\t\t\t\t\t\t\t\tkey={tone.id}\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\tselected={tone.id === selectedToneId}\n\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\tif (isDropdownDisabled) return;\n\t\t\t\t\t\t\t\t\t\tonToneChange?.(tone.id);\n\t\t\t\t\t\t\t\t\t\tsetIsDropdownOpen(false);\n\t\t\t\t\t\t\t\t\t\tsetIsToneMenuOpen(false);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{tone.label}\n\t\t\t\t\t\t\t\t</AIDropdownItem>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</ToneSubMenu>\n\t\t\t\t\t) : null}\n\t\t\t\t</AIDropdownMenu>\n\t\t\t) : null}\n\t\t</AIDropdownContainer>\n\t);\n};\nexport type AIActionToneOption = {\n\tid: string;\n\tlabel: string;\n};\n"],"names":["AIButtonGroup","styled","props","AIButton","AIArrowButton","AIDropdownContainer","AIDropdownMenu","COLORS","AIDropdownItem","ToneSubMenu","AIRephraseButton","label","disabled","loading","highlighted","tones","selectedToneId","instructionActive","onClick","onToneChange","onInstructionsClick","showSecondaryRephraseOption","onSecondaryRephraseClick","dropdownRef","useRef","isDropdownOpen","setIsDropdownOpen","useState","isToneMenuOpen","setIsToneMenuOpen","isDropdownDisabled","useOutside","useEffect","jsxs","jsx","BorderAnimation","SparkleIcon","prev","ChevronDownIcon","EmojiIcon","ChevronRightIcon","EditIcon","tone"],"mappings":"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"}
1
+ {"version":3,"file":"AIRephraseButton.js","sources":["../../../../src/components/WhatsAppTextEditor/AIRephraseButton.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport styled from 'styled-components';\nimport { useOutside } from '@src/hooks/useOutside';\nimport { COLORS } from '@src/constants/Theme';\nimport ChevronDownIcon from '../../assets/icons/chevronDown.svg';\nimport ChevronRightIcon from '../../assets/icons/chevronRight.svg';\nimport EditIcon from '../../assets/icons/edit.svg';\nimport EmojiIcon from '../../assets/icons/emoji.svg';\nimport SparkleIcon from '../../assets/icons/magic-line.svg';\nimport BorderAnimation from './BorderAnimation';\n\nconst AIButtonGroup = styled.div<{ disabled?: boolean }>`\n\tdisplay: flex;\n\talign-items: center;\n\tborder: 1px solid transparent;\n\tborder-radius: 16px;\n\tbackground: #ffe8ef;\n\topacity: ${(props) => (props.disabled ? 0.5 : 1)};\n`;\n\nconst AIButton = styled.button<{ disabled?: boolean }>`\n\tborder: 0;\n\tbackground: #ffe8ef;\n\tcolor: #f53f77;\n\tborder-radius: 16px 0 0 16px;\n\tpadding: 4px 6px;\n\tfont-size: 12px;\n\tfont-weight: 400;\n\tline-height: 16px;\n\tcursor: ${(props) => (props.disabled ? 'not-allowed' : 'pointer')};\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 4px;\n\t:hover {\n\t\tfilter: brightness(0.98);\n\t}\n`;\n\nconst AIArrowButton = styled.button<{ disabled?: boolean }>`\n\tposition: relative;\n\tborder: 0;\n\tbackground: #ffe8ef;\n\tcolor: #f53f77;\n\tborder-radius: 0 16px 16px 0;\n\tpadding: 4px;\n\tline-height: 1;\n\tcursor: ${(props) => (props.disabled ? 'not-allowed' : 'pointer')};\n\tdisplay: flex;\n\talign-items: center;\n\t/* 12px inset divider, matching Figma (Line 14) */\n\t::before {\n\t\tcontent: '';\n\t\tposition: absolute;\n\t\tleft: 0;\n\t\ttop: 50%;\n\t\ttransform: translateY(-50%);\n\t\twidth: 1px;\n\t\theight: 12px;\n\t\tbackground: #f6c8d7;\n\t}\n`;\n\nconst AIDropdownContainer = styled.div`\n\tposition: relative;\n`;\n\nconst AIDropdownMenu = styled.div`\n\tposition: absolute;\n\ttop: calc(100% + 6px);\n\tleft: 0;\n\tbackground: ${COLORS.surface.standard};\n\tborder: 1px solid ${COLORS.stroke.primary};\n\tborder-radius: 8px;\n\twidth: 209px;\n\tz-index: 10;\n\tbox-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);\n\tpadding: 4px;\n`;\n\nconst AIDropdownItem = styled.button<{\n\tselected?: boolean;\n\tisInstructions?: boolean;\n\t/** Change tone row: green highlight when tone submenu is open */\n\ttoneSubmenuOpen?: boolean;\n\t/** Change tone row: green text/icon on hover or when submenu open */\n\tisChangeToneRow?: boolean;\n}>`\n\twidth: 100%;\n\ttext-align: left;\n\tborder: 0;\n\tbackground: ${(props) =>\n\t\tprops.selected || props.toneSubmenuOpen ? '#d9e8db' : 'transparent'};\n\tcolor: ${(props) =>\n\t\tprops.selected || props.toneSubmenuOpen\n\t\t\t? '#1e6b34'\n\t\t\t: COLORS.content.primary};\n\tpadding: 10px 10px;\n\tborder-radius: 6px;\n\tcursor: pointer;\n\tfont-size: 14px;\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n\t:hover {\n\t\tbackground: ${(props) =>\n\t\t\tprops.selected || props.toneSubmenuOpen ? '#d9e8db' : '#f7f7f8'};\n\t}\n\t${(props) =>\n\t\tprops.isChangeToneRow\n\t\t\t? `\n\t\t&:hover {\n\t\t\tcolor: #1e6b34;\n\t\t\tbackground: ${props.toneSubmenuOpen ? '#d9e8db' : '#f7f7f8'};\n\t\t}\n\t`\n\t\t\t: ''}\n`;\n\nconst ToneSubMenu = styled.div`\n\tposition: absolute;\n\ttop: 0;\n\tleft: calc(100% + 4px);\n\tbackground: ${COLORS.surface.standard};\n\tborder: 1px solid ${COLORS.stroke.primary};\n\tborder-radius: 8px;\n\tmin-width: 140px;\n\tz-index: 11;\n\tbox-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);\n\tpadding: 4px;\n`;\n\ntype AIRephraseButtonProps = {\n\tlabel: string;\n\tdisabled?: boolean;\n\tloading?: boolean;\n\thighlighted?: boolean;\n\ttones?: AIActionToneOption[];\n\tselectedToneId?: string;\n\tinstructionActive?: boolean;\n\tonClick?: () => void;\n\tonToneChange?: (toneId: string) => void;\n\tonInstructionsClick?: () => void;\n\tshowSecondaryRephraseOption?: boolean;\n\tonSecondaryRephraseClick?: () => void;\n};\n\nexport const AIRephraseButton = ({\n\tlabel,\n\tdisabled,\n\tloading,\n\thighlighted,\n\ttones,\n\tselectedToneId,\n\tinstructionActive,\n\tonClick,\n\tonToneChange,\n\tonInstructionsClick,\n\tshowSecondaryRephraseOption,\n\tonSecondaryRephraseClick,\n}: AIRephraseButtonProps) => {\n\tconst dropdownRef = useRef<HTMLDivElement>(null);\n\tconst [isDropdownOpen, setIsDropdownOpen] = useState(false);\n\tconst [isToneMenuOpen, setIsToneMenuOpen] = useState(false);\n\tconst isDropdownDisabled = !!instructionActive || !!disabled || !!loading;\n\n\tuseOutside(dropdownRef, () => {\n\t\tsetIsDropdownOpen(false);\n\t\tsetIsToneMenuOpen(false);\n\t});\n\n\tuseEffect(() => {\n\t\tif (!instructionActive) return;\n\t\tsetIsDropdownOpen(false);\n\t\tsetIsToneMenuOpen(false);\n\t}, [instructionActive]);\n\n\treturn (\n\t\t<AIDropdownContainer ref={dropdownRef}>\n\t\t\t<BorderAnimation\n\t\t\t\tshowAnimation={!!highlighted}\n\t\t\t\tdisabled={!!disabled || !!loading}\n\t\t\t\tborderRadius={16}\n\t\t\t\tborderSize={2}\n\t\t\t>\n\t\t\t\t<AIButtonGroup disabled={disabled || loading}>\n\t\t\t\t\t<AIButton\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tdisabled={disabled || loading}\n\t\t\t\t\t\tonClick={onClick}\n\t\t\t\t\t>\n\t\t\t\t\t\t<SparkleIcon width={16} height={16} color=\"#f53f77\" />\n\t\t\t\t\t\t{loading ? '...' : label}\n\t\t\t\t\t</AIButton>\n\t\t\t\t\t<AIArrowButton\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tdisabled={isDropdownDisabled}\n\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\tif (isDropdownDisabled) return;\n\t\t\t\t\t\t\tsetIsDropdownOpen((prev) => !prev);\n\t\t\t\t\t\t\tsetIsToneMenuOpen(false);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ChevronDownIcon width={16} height={16} />\n\t\t\t\t\t</AIArrowButton>\n\t\t\t\t</AIButtonGroup>\n\t\t\t</BorderAnimation>\n\t\t\t{isDropdownOpen ? (\n\t\t\t\t<AIDropdownMenu>\n\t\t\t\t\t{tones?.length ? (\n\t\t\t\t\t\t<AIDropdownItem\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\ttoneSubmenuOpen={isToneMenuOpen}\n\t\t\t\t\t\t\tisChangeToneRow\n\t\t\t\t\t\t\tonMouseEnter={() => {\n\t\t\t\t\t\t\t\tif (isDropdownDisabled) return;\n\t\t\t\t\t\t\t\tsetIsToneMenuOpen(true);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonClick={() => setIsToneMenuOpen((prev) => !prev)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\t\t\talignItems: 'center',\n\t\t\t\t\t\t\t\t\tjustifyContent: 'space-between',\n\t\t\t\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\tdisplay: 'inline-flex',\n\t\t\t\t\t\t\t\t\t\talignItems: 'center',\n\t\t\t\t\t\t\t\t\t\tgap: 8,\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<EmojiIcon width={18} height={18} color=\"currentColor\" />\n\t\t\t\t\t\t\t\t\tChange tone\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t<ChevronRightIcon width={14} height={14} color=\"currentColor\" />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</AIDropdownItem>\n\t\t\t\t\t) : null}\n\t\t\t\t\t<AIDropdownItem\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tisInstructions\n\t\t\t\t\t\tselected={!!instructionActive}\n\t\t\t\t\t\tonMouseEnter={() => setIsToneMenuOpen(false)}\n\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\tif (isDropdownDisabled) return;\n\t\t\t\t\t\t\tonInstructionsClick?.();\n\t\t\t\t\t\t\tsetIsDropdownOpen(false);\n\t\t\t\t\t\t\tsetIsToneMenuOpen(false);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<EditIcon width={16} height={16} color={COLORS.content.primary} />\n\t\t\t\t\t\tAdd instructions\n\t\t\t\t\t</AIDropdownItem>\n\t\t\t\t\t{showSecondaryRephraseOption ? (\n\t\t\t\t\t\t<AIDropdownItem\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tonMouseEnter={() => setIsToneMenuOpen(false)}\n\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\tif (disabled || loading) return;\n\t\t\t\t\t\t\t\tonSecondaryRephraseClick?.();\n\t\t\t\t\t\t\t\tsetIsDropdownOpen(false);\n\t\t\t\t\t\t\t\tsetIsToneMenuOpen(false);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<SparkleIcon\n\t\t\t\t\t\t\t\twidth={16}\n\t\t\t\t\t\t\t\theight={16}\n\t\t\t\t\t\t\t\tcolor={COLORS.content.primary}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\tRephrase\n\t\t\t\t\t\t</AIDropdownItem>\n\t\t\t\t\t) : null}\n\t\t\t\t\t{isToneMenuOpen && tones?.length ? (\n\t\t\t\t\t\t<ToneSubMenu>\n\t\t\t\t\t\t\t{tones.map((tone) => (\n\t\t\t\t\t\t\t\t<AIDropdownItem\n\t\t\t\t\t\t\t\t\tkey={tone.id}\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\tselected={tone.id === selectedToneId}\n\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\tif (isDropdownDisabled) return;\n\t\t\t\t\t\t\t\t\t\tonToneChange?.(tone.id);\n\t\t\t\t\t\t\t\t\t\tsetIsDropdownOpen(false);\n\t\t\t\t\t\t\t\t\t\tsetIsToneMenuOpen(false);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{tone.label}\n\t\t\t\t\t\t\t\t</AIDropdownItem>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</ToneSubMenu>\n\t\t\t\t\t) : null}\n\t\t\t\t</AIDropdownMenu>\n\t\t\t) : null}\n\t\t</AIDropdownContainer>\n\t);\n};\nexport type AIActionToneOption = {\n\tid: string;\n\tlabel: string;\n};\n"],"names":["AIButtonGroup","styled","props","AIButton","AIArrowButton","AIDropdownContainer","AIDropdownMenu","COLORS","AIDropdownItem","ToneSubMenu","AIRephraseButton","label","disabled","loading","highlighted","tones","selectedToneId","instructionActive","onClick","onToneChange","onInstructionsClick","showSecondaryRephraseOption","onSecondaryRephraseClick","dropdownRef","useRef","isDropdownOpen","setIsDropdownOpen","useState","isToneMenuOpen","setIsToneMenuOpen","isDropdownDisabled","useOutside","useEffect","jsxs","jsx","BorderAnimation","SparkleIcon","prev","ChevronDownIcon","EmojiIcon","ChevronRightIcon","EditIcon","tone"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),oe=require("../../../assets/icons/cross.svg.js"),n=require("react"),E=require("../../TypographyStyle.js"),L=require("../../../utils/arrayUtils.js"),q=require("../../../constants/Theme.js"),u=require("../AgentBuilder.styled.js"),se=require("../constants/charLimits.js"),G=require("../utils/mentionSerialization.js"),c=require("../utils/sourceIcons.js"),U=require("./MentionEditor.js"),re=require("./SelectableListSection.js"),ae=require("../../input/Input.js"),N=require("../../button/Button.js"),ie=require("../../toaster/Toaster.js"),ue=({onClose:h,onSave:H,availableTools:a,onImprove:ce,title:K="Create sub-agent",initial:l,appLabel:v="Manifest",charLimits:p=se.AGENT_CHAR_LIMITS})=>{const[b,F]=n.useState(l?.name??""),[d,y]=n.useState(l?.instructions??""),[g,f]=n.useState(l?.guardrail??""),[x,m]=n.useState(l?.tools??[]),[A,O]=n.useState(!1),[w,_]=n.useState(0),[z,k]=n.useState(0),[le,de]=n.useState(null),C=n.useMemo(()=>G.buildAgentMentionItems(a,[],v),[a,v]),S=n.useRef({}),I=n.useRef("instructions"),$=n.useCallback(e=>{S.current.instructions=e??void 0},[]),W=n.useCallback(e=>{S.current.guardrail=e??void 0},[]),D=n.useCallback(()=>{I.current="instructions"},[]),J=n.useCallback(()=>{I.current="guardrail"},[]),M=n.useCallback((e,t)=>{e==="tool"&&m(s=>L.addUnique(s,t))},[]),Q=n.useCallback(e=>{(S.current[I.current]??S.current.instructions)?.("tool",e)},[]),[T,j]=n.useState(null),R=n.useRef(null),P=n.useRef(0),V=e=>{const t=a.find(r=>r.tool_id===e),s=t?`{{tool:${t.function_key}}}`:null,i=r=>s?r.split(s).join(""):r;R.current={instructions:d,guardrail:g,tools:x},y(r=>i(r)),f(r=>i(r)),m(r=>r.filter(ne=>ne!==e)),_(r=>r+1),k(r=>r+1),P.current+=1,j({id:P.current,message:`Tool "${t?.display_name??"Tool"}" removed`})},X=()=>{const e=R.current;e&&(y(e.instructions),f(e.guardrail),m(e.tools),_(t=>t+1),k(t=>t+1),R.current=null),j(null)},B=b.trim().length>0&&(d.trim().length>0||g.trim().length>0),Y=x.map(e=>{const t=a.find(s=>s.tool_id===e);return t?{id:e,label:t.display_name,icon:c.SOURCE_ICONS[t.source??"manifest"]}:null}).filter(e=>e!==null),Z=a.map(e=>({label:e.display_name,value:e.tool_id,leadingIcon:c.renderSourceIcon(c.SOURCE_ICONS[e.source??"manifest"])??void 0})),ee=(()=>{const e=[],t=new Map;return a.forEach(s=>{const i=s.source??"manifest";t.has(i)||(t.set(i,[]),e.push(i)),t.get(i)?.push({label:s.display_name,value:s.tool_id,leadingIcon:c.renderSourceIcon(c.SOURCE_ICONS[s.source??"manifest"])??void 0})}),e.map(s=>({source:s,label:G.toolSourceLabel(s),options:t.get(s)??[]}))})(),te=async()=>{if(!B||A)return;const e=H({name:b.trim(),instructions:d,guardrail:g,tools:x});if(e&&typeof e.then=="function"){O(!0);try{await e}finally{O(!1)}}};return o.jsxs(o.Fragment,{children:[o.jsx(u.SubAgentScrim,{onClick:h,"data-test":"subagent-scrim"}),o.jsxs(u.SubAgentPanel,{"data-test":"create-subagent-panel",children:[o.jsxs(u.SubAgentPanelHeader,{children:[o.jsxs(u.SubAgentPanelHeaderText,{children:[o.jsx(E.TitleRegular,{color:q.COLORS.content.primary,children:K}),o.jsx(E.BodySecondary,{color:q.COLORS.content.secondary,children:"Each sub-agent handles one piece of the job. Use @ in the main instructions to call them."})]}),o.jsx(u.SubAgentCloseButton,{onClick:h,"aria-label":"Close",children:o.jsx(oe.default,{width:20,height:20,color:q.COLORS.content.secondary})})]}),o.jsxs(u.SubAgentPanelBody,{children:[o.jsx(ae.Input,{"data-test":"subagent-name",labelText:"Agent name",labelTextBold:!0,placeholder:"Enter agent name",value:b,maxCharLimit:p.name,maxCharLimitPosition:"TOP",maxCharStyle:{fontSize:12,lineHeight:"16px"},onChangeText:F}),o.jsx(U.MentionEditor,{"data-test":"subagent-instructions",label:"Instructions",value:d,onChange:y,maxLength:p.instructions,placeholder:"Write the steps in plain English. Type @ to reference a tool.",minHeight:"160px",resetKey:`instr-${w}`,mentionItems:C,tools:a,onMentionSelect:M,onFocus:D,registerInsert:$}),o.jsx(U.MentionEditor,{"data-test":"subagent-guardrail",label:"Guardrails",value:g,onChange:f,maxLength:p.guardrail,placeholder:"e.g. Never discuss competitor pricing. Type @ to reference a tool.",minHeight:"160px",resetKey:`guard-${z}`,mentionItems:C,tools:a,onMentionSelect:M,onFocus:J,registerInsert:W}),o.jsx(re.SelectableListSection,{title:"Tools this agent can use",dataTestPrefix:"subagent-tools",items:Y,addableOptions:Z,sourceGroups:ee,mentionItems:C,emptyText:"No tools added yet.",onAdd:e=>{Q(e),m(t=>L.addUnique(t,e))},onRemove:V})]}),o.jsxs(u.SubAgentPanelFooter,{children:[o.jsx(N.Button,{"data-test":"subagent-save",buttonType:"primary",size:"small",buttonText:"Save",disabled:!B,isLoading:A,onClick:te}),o.jsx(N.Button,{"data-test":"subagent-cancel",buttonType:"tertiaryGray",size:"small",buttonText:"Cancel",onClick:h})]})]}),T&&o.jsx(ie.Toaster,{text:T.message,type:"info",position:"top-right",autoClose:5e3,hideCloseButton:!0,buttonProps:{buttonText:"Undo",showButton:!0,onButtonClick:()=>(X(),{})},onCloseToast:()=>j(null)},T.id)]})};exports.CreateSubAgentPanel=ue;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),oe=require("../../../assets/icons/cross.svg.js"),t=require("react"),E=require("../../TypographyStyle.js"),L=require("../../../utils/arrayUtils.js"),q=require("../../../constants/Theme.js"),u=require("../AgentBuilder.styled.js"),se=require("../constants/charLimits.js"),G=require("../utils/mentionSerialization.js"),c=require("../utils/sourceIcons.js"),U=require("./MentionEditor.js"),re=require("./SelectableListSection.js"),ae=require("../../input/Input.js"),N=require("../../button/Button.js"),ie=require("../../toaster/Toaster.js"),ue=({onClose:h,onSave:H,availableTools:a,onImprove:ce,title:K="Create sub-agent",initial:l,appLabel:v="Manifest",charLimits:p=se.AGENT_CHAR_LIMITS})=>{const[b,F]=t.useState(l?.name??""),[d,y]=t.useState(l?.instructions??""),[g,f]=t.useState(l?.guardrail??""),[x,m]=t.useState(l?.tools??[]),[A,O]=t.useState(!1),[w,_]=t.useState(0),[z,k]=t.useState(0),[le,de]=t.useState(null),C=t.useMemo(()=>G.buildAgentMentionItems(a,[],v),[a,v]),S=t.useRef({}),I=t.useRef("instructions"),$=t.useCallback(e=>{S.current.instructions=e??void 0},[]),W=t.useCallback(e=>{S.current.guardrail=e??void 0},[]),D=t.useCallback(()=>{I.current="instructions"},[]),J=t.useCallback(()=>{I.current="guardrail"},[]),M=t.useCallback((e,n)=>{e==="tool"&&m(s=>L.addUnique(s,n))},[]),Q=t.useCallback(e=>{(S.current[I.current]??S.current.instructions)?.("tool",e)},[]),[T,j]=t.useState(null),R=t.useRef(null),P=t.useRef(0),V=e=>{const n=a.find(r=>r.tool_id===e),s=`{{tool:${e}}}`,i=r=>r.split(s).join("");R.current={instructions:d,guardrail:g,tools:x},y(r=>i(r)),f(r=>i(r)),m(r=>r.filter(ne=>ne!==e)),_(r=>r+1),k(r=>r+1),P.current+=1,j({id:P.current,message:`Tool "${n?.display_name??"Tool"}" removed`})},X=()=>{const e=R.current;e&&(y(e.instructions),f(e.guardrail),m(e.tools),_(n=>n+1),k(n=>n+1),R.current=null),j(null)},B=b.trim().length>0&&(d.trim().length>0||g.trim().length>0),Y=x.map(e=>{const n=a.find(s=>s.tool_id===e);return n?{id:e,label:n.display_name,icon:c.SOURCE_ICONS[n.source??"manifest"]}:null}).filter(e=>e!==null),Z=a.map(e=>({label:e.display_name,value:e.tool_id,leadingIcon:c.renderSourceIcon(c.SOURCE_ICONS[e.source??"manifest"])??void 0})),ee=(()=>{const e=[],n=new Map;return a.forEach(s=>{const i=s.source??"manifest";n.has(i)||(n.set(i,[]),e.push(i)),n.get(i)?.push({label:s.display_name,value:s.tool_id,leadingIcon:c.renderSourceIcon(c.SOURCE_ICONS[s.source??"manifest"])??void 0})}),e.map(s=>({source:s,label:G.toolSourceLabel(s),options:n.get(s)??[]}))})(),te=async()=>{if(!B||A)return;const e=H({name:b.trim(),instructions:d,guardrail:g,tools:x});if(e&&typeof e.then=="function"){O(!0);try{await e}finally{O(!1)}}};return o.jsxs(o.Fragment,{children:[o.jsx(u.SubAgentScrim,{onClick:h,"data-test":"subagent-scrim"}),o.jsxs(u.SubAgentPanel,{"data-test":"create-subagent-panel",children:[o.jsxs(u.SubAgentPanelHeader,{children:[o.jsxs(u.SubAgentPanelHeaderText,{children:[o.jsx(E.TitleRegular,{color:q.COLORS.content.primary,children:K}),o.jsx(E.BodySecondary,{color:q.COLORS.content.secondary,children:"Each sub-agent handles one piece of the job. Use @ in the main instructions to call them."})]}),o.jsx(u.SubAgentCloseButton,{onClick:h,"aria-label":"Close",children:o.jsx(oe.default,{width:20,height:20,color:q.COLORS.content.secondary})})]}),o.jsxs(u.SubAgentPanelBody,{children:[o.jsx(ae.Input,{"data-test":"subagent-name",labelText:"Agent name",labelTextBold:!0,placeholder:"Enter agent name",value:b,maxCharLimit:p.name,maxCharLimitPosition:"TOP",maxCharStyle:{fontSize:12,lineHeight:"16px"},onChangeText:F}),o.jsx(U.MentionEditor,{"data-test":"subagent-instructions",label:"Instructions",value:d,onChange:y,maxLength:p.instructions,placeholder:"Write the steps in plain English. Type @ to reference a tool.",minHeight:"160px",resetKey:`instr-${w}`,mentionItems:C,tools:a,onMentionSelect:M,onFocus:D,registerInsert:$}),o.jsx(U.MentionEditor,{"data-test":"subagent-guardrail",label:"Guardrails",value:g,onChange:f,maxLength:p.guardrail,placeholder:"e.g. Never discuss competitor pricing. Type @ to reference a tool.",minHeight:"160px",resetKey:`guard-${z}`,mentionItems:C,tools:a,onMentionSelect:M,onFocus:J,registerInsert:W}),o.jsx(re.SelectableListSection,{title:"Tools this agent can use",dataTestPrefix:"subagent-tools",items:Y,addableOptions:Z,sourceGroups:ee,mentionItems:C,emptyText:"No tools added yet.",onAdd:e=>{Q(e),m(n=>L.addUnique(n,e))},onRemove:V})]}),o.jsxs(u.SubAgentPanelFooter,{children:[o.jsx(N.Button,{"data-test":"subagent-save",buttonType:"primary",size:"small",buttonText:"Save",disabled:!B,isLoading:A,onClick:te}),o.jsx(N.Button,{"data-test":"subagent-cancel",buttonType:"tertiaryGray",size:"small",buttonText:"Cancel",onClick:h})]})]}),T&&o.jsx(ie.Toaster,{text:T.message,type:"info",position:"top-right",autoClose:5e3,hideCloseButton:!0,buttonProps:{buttonText:"Undo",showButton:!0,onButtonClick:()=>(X(),{})},onCloseToast:()=>j(null)},T.id)]})};exports.CreateSubAgentPanel=ue;
2
2
  //# sourceMappingURL=CreateSubAgentPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CreateSubAgentPanel.js","sources":["../../../../../src/components/agent-builder/components/CreateSubAgentPanel.tsx"],"sourcesContent":["import CrossIcon from '@src/assets/icons/cross.svg';\nimport React, { useCallback, useMemo, useRef, useState } from 'react';\nimport { Button } from '@src/components/button';\nimport { SingleOption } from '@src/components/dropdown/type';\nimport { Input } from '@src/components/input';\nimport { Toaster } from '@src/components/toaster';\nimport { BodySecondary, TitleRegular } from '@src/components/TypographyStyle';\nimport { addUnique } from '@src/utils/arrayUtils';\nimport { COLORS } from '@src/constants/Theme';\nimport { AgentTool, SubAgentDraft } from '../AgentBuilder.model';\nimport {\n\tSubAgentCloseButton,\n\tSubAgentPanel,\n\tSubAgentPanelBody,\n\tSubAgentPanelFooter,\n\tSubAgentPanelHeader,\n\tSubAgentPanelHeaderText,\n\tSubAgentScrim,\n} from '../AgentBuilder.styled';\nimport { AGENT_CHAR_LIMITS } from '../constants/charLimits';\nimport type { AgentCharLimits } from '../constants/charLimits';\nimport {\n\tbuildAgentMentionItems,\n\ttoolSourceLabel,\n} from '../utils/mentionSerialization';\nimport { renderSourceIcon, SOURCE_ICONS } from '../utils/sourceIcons';\nimport { MentionEditor } from './MentionEditor';\nimport {\n\tSelectableItem,\n\tSelectableListSection,\n\tSourceGroup,\n} from './SelectableListSection';\n\ntype InsertFn = (kind: 'tool' | 'subagent', id: string, label?: string) => void;\n\ninterface CreateSubAgentPanelProps {\n\tonClose: () => void;\n\t/** Persist the draft. The drawer shows a loader while the returned promise is pending. */\n\tonSave: (draft: SubAgentDraft) => void | Promise<void>;\n\tavailableTools: AgentTool[];\n\t/** Optional \"Improve with AI\" for instructions / guardrails. Omit to hide the buttons. */\n\tonImprove?: (\n\t\tkind: 'instructions' | 'guardrail',\n\t\ttext: string,\n\t) => Promise<string>;\n\t/** Header title — \"Create sub-agent\" (default) or \"Edit sub-agent\". */\n\ttitle?: string;\n\t/** Initial values, e.g. when configuring an existing sub-agent. */\n\tinitial?: SubAgentDraft;\n\t/** Tool-source fallback label for chips (host app). */\n\tappLabel?: string;\n\t/** Resolved character limits (defaults to {@link AGENT_CHAR_LIMITS}). */\n\tcharLimits?: AgentCharLimits;\n}\n\n/**\n * Right-side drawer for creating / editing a sub-agent (name, instructions,\n * guardrails, tools). Instructions & Guardrails are `@`-mention editors (tools\n * only — sub-agents can't nest); adding a tool from the list inserts it at the\n * last-focused field's cursor. Mount it fresh per open (key it) so `initial`\n * seeds the draft.\n */\nexport const CreateSubAgentPanel: React.FC<CreateSubAgentPanelProps> = ({\n\tonClose,\n\tonSave,\n\tavailableTools,\n\tonImprove,\n\ttitle = 'Create sub-agent',\n\tinitial,\n\tappLabel = 'Manifest',\n\tcharLimits = AGENT_CHAR_LIMITS,\n}) => {\n\tconst [name, setName] = useState(initial?.name ?? '');\n\tconst [instructions, setInstructions] = useState(initial?.instructions ?? '');\n\tconst [guardrail, setGuardrail] = useState(initial?.guardrail ?? '');\n\tconst [tools, setTools] = useState<string[]>(initial?.tools ?? []);\n\tconst [saving, setSaving] = useState(false);\n\t// Bumped to remount a field after its text is replaced (e.g. by Improve).\n\tconst [instrKey, setInstrKey] = useState(0);\n\tconst [guardKey, setGuardKey] = useState(0);\n\tconst [improving, setImproving] = useState<\n\t\t'instructions' | 'guardrail' | null\n\t>(null);\n\n\t// Tools-only mention list (sub-agents can't reference other sub-agents).\n\tconst mentionItems = useMemo(\n\t\t() => buildAgentMentionItems(availableTools, [], appLabel),\n\t\t[availableTools, appLabel],\n\t);\n\n\t// Per-field insert + focus registry, so the Tools list inserts a chip into the\n\t// last-focused editor at its cursor.\n\tconst insertersRef = useRef<\n\t\tPartial<Record<'instructions' | 'guardrail', InsertFn>>\n\t>({});\n\tconst lastFocusedRef = useRef<'instructions' | 'guardrail'>('instructions');\n\tconst registerInstr = useCallback((fn: InsertFn | null) => {\n\t\tinsertersRef.current.instructions = fn ?? undefined;\n\t}, []);\n\tconst registerGuard = useCallback((fn: InsertFn | null) => {\n\t\tinsertersRef.current.guardrail = fn ?? undefined;\n\t}, []);\n\tconst focusInstr = useCallback(() => {\n\t\tlastFocusedRef.current = 'instructions';\n\t}, []);\n\tconst focusGuard = useCallback(() => {\n\t\tlastFocusedRef.current = 'guardrail';\n\t}, []);\n\tconst addToolMention = useCallback(\n\t\t(kind: 'tool' | 'subagent', id: string) => {\n\t\t\tif (kind === 'tool') {\n\t\t\t\tsetTools((prev) => addUnique(prev, id));\n\t\t\t}\n\t\t},\n\t\t[],\n\t);\n\tconst insertToolAtCursor = useCallback((id: string) => {\n\t\tconst target =\n\t\t\tinsertersRef.current[lastFocusedRef.current] ??\n\t\t\tinsertersRef.current.instructions;\n\t\ttarget?.('tool', id);\n\t}, []);\n\n\t// Local undo toast for tool removal (drawer state isn't in AgentValue).\n\tconst [undo, setUndo] = useState<{ id: number; message: string } | null>(\n\t\tnull,\n\t);\n\tconst undoSnapshotRef = useRef<{\n\t\tinstructions: string;\n\t\tguardrail: string;\n\t\ttools: string[];\n\t} | null>(null);\n\tconst undoIdRef = useRef(0);\n\n\tconst removeTool = (id: string) => {\n\t\tconst tool = availableTools.find((t) => t.tool_id === id);\n\t\tconst token = tool ? `{{tool:${tool.function_key}}}` : null;\n\t\tconst strip = (text: string) => (token ? text.split(token).join('') : text);\n\t\tundoSnapshotRef.current = { instructions, guardrail, tools };\n\t\tsetInstructions((prev) => strip(prev));\n\t\tsetGuardrail((prev) => strip(prev));\n\t\tsetTools((prev) => prev.filter((t) => t !== id));\n\t\tsetInstrKey((k) => k + 1);\n\t\tsetGuardKey((k) => k + 1);\n\t\tundoIdRef.current += 1;\n\t\tsetUndo({\n\t\t\tid: undoIdRef.current,\n\t\t\tmessage: `Tool \"${tool?.display_name ?? 'Tool'}\" removed`,\n\t\t});\n\t};\n\n\tconst undoRemove = () => {\n\t\tconst snap = undoSnapshotRef.current;\n\t\tif (snap) {\n\t\t\tsetInstructions(snap.instructions);\n\t\t\tsetGuardrail(snap.guardrail);\n\t\t\tsetTools(snap.tools);\n\t\t\tsetInstrKey((k) => k + 1);\n\t\t\tsetGuardKey((k) => k + 1);\n\t\t\tundoSnapshotRef.current = null;\n\t\t}\n\t\tsetUndo(null);\n\t};\n\n\tconst canSave =\n\t\tname.trim().length > 0 &&\n\t\t(instructions.trim().length > 0 || guardrail.trim().length > 0);\n\n\tconst toolItems: SelectableItem[] = tools\n\t\t.map((id): SelectableItem | null => {\n\t\t\tconst tool = availableTools.find((t) => t.tool_id === id);\n\t\t\treturn tool\n\t\t\t\t? {\n\t\t\t\t\t\tid,\n\t\t\t\t\t\tlabel: tool.display_name,\n\t\t\t\t\t\ticon: SOURCE_ICONS[tool.source ?? 'manifest'],\n\t\t\t\t }\n\t\t\t\t: null;\n\t\t})\n\t\t.filter((x): x is SelectableItem => x !== null);\n\n\t// Offer all tools (re-add allowed); the chip list stays deduped. Icon left of\n\t// the name, no description.\n\tconst toolOptions: SingleOption[] = availableTools.map((t) => ({\n\t\tlabel: t.display_name,\n\t\tvalue: t.tool_id,\n\t\tleadingIcon:\n\t\t\trenderSourceIcon(SOURCE_ICONS[t.source ?? 'manifest']) ?? undefined,\n\t}));\n\n\t// Group tools by source (Manifest / Shopify / …) so the empty state shows the\n\t// same per-source buttons as the main builder's side panel.\n\tconst toolSourceGroups: SourceGroup[] = (() => {\n\t\tconst order: string[] = [];\n\t\tconst bySource = new Map<string, SingleOption[]>();\n\t\tavailableTools.forEach((t) => {\n\t\t\tconst src = t.source ?? 'manifest';\n\t\t\tif (!bySource.has(src)) {\n\t\t\t\tbySource.set(src, []);\n\t\t\t\torder.push(src);\n\t\t\t}\n\t\t\tbySource.get(src)?.push({\n\t\t\t\tlabel: t.display_name,\n\t\t\t\tvalue: t.tool_id,\n\t\t\t\tleadingIcon:\n\t\t\t\t\trenderSourceIcon(SOURCE_ICONS[t.source ?? 'manifest']) ?? undefined,\n\t\t\t});\n\t\t});\n\t\treturn order.map((src) => ({\n\t\t\tsource: src,\n\t\t\tlabel: toolSourceLabel(src),\n\t\t\toptions: bySource.get(src) ?? [],\n\t\t}));\n\t})();\n\n\tconst handleSave = async () => {\n\t\tif (!canSave || saving) {\n\t\t\treturn;\n\t\t}\n\t\tconst result = onSave({\n\t\t\tname: name.trim(),\n\t\t\tinstructions,\n\t\t\tguardrail,\n\t\t\ttools,\n\t\t});\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 handleImprove = async (kind: 'instructions' | 'guardrail') => {\n\t\tif (!onImprove || improving) {\n\t\t\treturn;\n\t\t}\n\t\tsetImproving(kind);\n\t\ttry {\n\t\t\tconst current = kind === 'instructions' ? instructions : guardrail;\n\t\t\tconst improved = await onImprove(kind, current);\n\t\t\tif (kind === 'instructions') {\n\t\t\t\tsetInstructions(improved);\n\t\t\t\tsetInstrKey((k) => k + 1);\n\t\t\t} else {\n\t\t\t\tsetGuardrail(improved);\n\t\t\t\tsetGuardKey((k) => k + 1);\n\t\t\t}\n\t\t} finally {\n\t\t\tsetImproving(null);\n\t\t}\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<SubAgentScrim onClick={onClose} data-test=\"subagent-scrim\" />\n\t\t\t<SubAgentPanel data-test=\"create-subagent-panel\">\n\t\t\t\t<SubAgentPanelHeader>\n\t\t\t\t\t<SubAgentPanelHeaderText>\n\t\t\t\t\t\t<TitleRegular color={COLORS.content.primary}>{title}</TitleRegular>\n\t\t\t\t\t\t<BodySecondary color={COLORS.content.secondary}>\n\t\t\t\t\t\t\tEach sub-agent handles one piece of the job. Use @ in the main\n\t\t\t\t\t\t\tinstructions to call them.\n\t\t\t\t\t\t</BodySecondary>\n\t\t\t\t\t</SubAgentPanelHeaderText>\n\t\t\t\t\t<SubAgentCloseButton onClick={onClose} aria-label=\"Close\">\n\t\t\t\t\t\t<CrossIcon\n\t\t\t\t\t\t\twidth={20}\n\t\t\t\t\t\t\theight={20}\n\t\t\t\t\t\t\tcolor={COLORS.content.secondary}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</SubAgentCloseButton>\n\t\t\t\t</SubAgentPanelHeader>\n\n\t\t\t\t<SubAgentPanelBody>\n\t\t\t\t\t<Input\n\t\t\t\t\t\tdata-test=\"subagent-name\"\n\t\t\t\t\t\tlabelText=\"Agent name\"\n\t\t\t\t\t\tlabelTextBold\n\t\t\t\t\t\tplaceholder=\"Enter agent name\"\n\t\t\t\t\t\tvalue={name}\n\t\t\t\t\t\tmaxCharLimit={charLimits.name}\n\t\t\t\t\t\tmaxCharLimitPosition=\"TOP\"\n\t\t\t\t\t\tmaxCharStyle={{ fontSize: 12, lineHeight: '16px' }}\n\t\t\t\t\t\tonChangeText={setName}\n\t\t\t\t\t/>\n\n\t\t\t\t\t<MentionEditor\n\t\t\t\t\t\tdata-test=\"subagent-instructions\"\n\t\t\t\t\t\tlabel=\"Instructions\"\n\t\t\t\t\t\tvalue={instructions}\n\t\t\t\t\t\tonChange={setInstructions}\n\t\t\t\t\t\tmaxLength={charLimits.instructions}\n\t\t\t\t\t\tplaceholder=\"Write the steps in plain English. Type @ to reference a tool.\"\n\t\t\t\t\t\tminHeight=\"160px\"\n\t\t\t\t\t\tresetKey={`instr-${instrKey}`}\n\t\t\t\t\t\tmentionItems={mentionItems}\n\t\t\t\t\t\ttools={availableTools}\n\t\t\t\t\t\tonMentionSelect={addToolMention}\n\t\t\t\t\t\tonFocus={focusInstr}\n\t\t\t\t\t\tregisterInsert={registerInstr}\n\t\t\t\t\t/>\n\n\t\t\t\t\t<MentionEditor\n\t\t\t\t\t\tdata-test=\"subagent-guardrail\"\n\t\t\t\t\t\tlabel=\"Guardrails\"\n\t\t\t\t\t\tvalue={guardrail}\n\t\t\t\t\t\tonChange={setGuardrail}\n\t\t\t\t\t\tmaxLength={charLimits.guardrail}\n\t\t\t\t\t\tplaceholder=\"e.g. Never discuss competitor pricing. Type @ to reference a tool.\"\n\t\t\t\t\t\tminHeight=\"160px\"\n\t\t\t\t\t\tresetKey={`guard-${guardKey}`}\n\t\t\t\t\t\tmentionItems={mentionItems}\n\t\t\t\t\t\ttools={availableTools}\n\t\t\t\t\t\tonMentionSelect={addToolMention}\n\t\t\t\t\t\tonFocus={focusGuard}\n\t\t\t\t\t\tregisterInsert={registerGuard}\n\t\t\t\t\t/>\n\n\t\t\t\t\t<SelectableListSection\n\t\t\t\t\t\ttitle=\"Tools this agent can use\"\n\t\t\t\t\t\tdataTestPrefix=\"subagent-tools\"\n\t\t\t\t\t\titems={toolItems}\n\t\t\t\t\t\taddableOptions={toolOptions}\n\t\t\t\t\t\tsourceGroups={toolSourceGroups}\n\t\t\t\t\t\tmentionItems={mentionItems}\n\t\t\t\t\t\temptyText=\"No tools added yet.\"\n\t\t\t\t\t\tonAdd={(id) => {\n\t\t\t\t\t\t\tinsertToolAtCursor(id);\n\t\t\t\t\t\t\tsetTools((prev) => addUnique(prev, id));\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonRemove={removeTool}\n\t\t\t\t\t/>\n\t\t\t\t</SubAgentPanelBody>\n\n\t\t\t\t<SubAgentPanelFooter>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tdata-test=\"subagent-save\"\n\t\t\t\t\t\tbuttonType=\"primary\"\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\tbuttonText=\"Save\"\n\t\t\t\t\t\tdisabled={!canSave}\n\t\t\t\t\t\tisLoading={saving}\n\t\t\t\t\t\tonClick={handleSave}\n\t\t\t\t\t/>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tdata-test=\"subagent-cancel\"\n\t\t\t\t\t\tbuttonType=\"tertiaryGray\"\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\tbuttonText=\"Cancel\"\n\t\t\t\t\t\tonClick={onClose}\n\t\t\t\t\t/>\n\t\t\t\t</SubAgentPanelFooter>\n\t\t\t</SubAgentPanel>\n\n\t\t\t{undo && (\n\t\t\t\t<Toaster\n\t\t\t\t\tkey={undo.id}\n\t\t\t\t\ttext={undo.message}\n\t\t\t\t\ttype=\"info\"\n\t\t\t\t\tposition=\"top-right\"\n\t\t\t\t\tautoClose={5000}\n\t\t\t\t\thideCloseButton\n\t\t\t\t\tbuttonProps={{\n\t\t\t\t\t\tbuttonText: 'Undo',\n\t\t\t\t\t\tshowButton: true,\n\t\t\t\t\t\tonButtonClick: () => {\n\t\t\t\t\t\t\tundoRemove();\n\t\t\t\t\t\t\treturn {} as Record<string, never>;\n\t\t\t\t\t\t},\n\t\t\t\t\t}}\n\t\t\t\t\tonCloseToast={() => setUndo(null)}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</>\n\t);\n};\n"],"names":["CreateSubAgentPanel","onClose","onSave","availableTools","onImprove","title","initial","appLabel","charLimits","AGENT_CHAR_LIMITS","name","setName","useState","instructions","setInstructions","guardrail","setGuardrail","tools","setTools","saving","setSaving","instrKey","setInstrKey","guardKey","setGuardKey","improving","setImproving","mentionItems","useMemo","buildAgentMentionItems","insertersRef","useRef","lastFocusedRef","registerInstr","useCallback","fn","registerGuard","focusInstr","focusGuard","addToolMention","kind","id","prev","addUnique","insertToolAtCursor","undo","setUndo","undoSnapshotRef","undoIdRef","removeTool","tool","t","token","strip","text","k","undoRemove","snap","canSave","toolItems","SOURCE_ICONS","x","toolOptions","renderSourceIcon","toolSourceGroups","order","bySource","src","toolSourceLabel","handleSave","result","jsxs","Fragment","jsx","SubAgentScrim","SubAgentPanel","SubAgentPanelHeader","SubAgentPanelHeaderText","TitleRegular","COLORS","BodySecondary","SubAgentCloseButton","CrossIcon","SubAgentPanelBody","Input","MentionEditor","SelectableListSection","SubAgentPanelFooter","Button","Toaster"],"mappings":"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"}
1
+ {"version":3,"file":"CreateSubAgentPanel.js","sources":["../../../../../src/components/agent-builder/components/CreateSubAgentPanel.tsx"],"sourcesContent":["import CrossIcon from '@src/assets/icons/cross.svg';\nimport React, { useCallback, useMemo, useRef, useState } from 'react';\nimport { Button } from '@src/components/button';\nimport { SingleOption } from '@src/components/dropdown/type';\nimport { Input } from '@src/components/input';\nimport { Toaster } from '@src/components/toaster';\nimport { BodySecondary, TitleRegular } from '@src/components/TypographyStyle';\nimport { addUnique } from '@src/utils/arrayUtils';\nimport { COLORS } from '@src/constants/Theme';\nimport { AgentTool, SubAgentDraft } from '../AgentBuilder.model';\nimport {\n\tSubAgentCloseButton,\n\tSubAgentPanel,\n\tSubAgentPanelBody,\n\tSubAgentPanelFooter,\n\tSubAgentPanelHeader,\n\tSubAgentPanelHeaderText,\n\tSubAgentScrim,\n} from '../AgentBuilder.styled';\nimport { AGENT_CHAR_LIMITS } from '../constants/charLimits';\nimport type { AgentCharLimits } from '../constants/charLimits';\nimport {\n\tbuildAgentMentionItems,\n\ttoolSourceLabel,\n} from '../utils/mentionSerialization';\nimport { renderSourceIcon, SOURCE_ICONS } from '../utils/sourceIcons';\nimport { MentionEditor } from './MentionEditor';\nimport {\n\tSelectableItem,\n\tSelectableListSection,\n\tSourceGroup,\n} from './SelectableListSection';\n\ntype InsertFn = (kind: 'tool' | 'subagent', id: string, label?: string) => void;\n\ninterface CreateSubAgentPanelProps {\n\tonClose: () => void;\n\t/** Persist the draft. The drawer shows a loader while the returned promise is pending. */\n\tonSave: (draft: SubAgentDraft) => void | Promise<void>;\n\tavailableTools: AgentTool[];\n\t/** Optional \"Improve with AI\" for instructions / guardrails. Omit to hide the buttons. */\n\tonImprove?: (\n\t\tkind: 'instructions' | 'guardrail',\n\t\ttext: string,\n\t) => Promise<string>;\n\t/** Header title — \"Create sub-agent\" (default) or \"Edit sub-agent\". */\n\ttitle?: string;\n\t/** Initial values, e.g. when configuring an existing sub-agent. */\n\tinitial?: SubAgentDraft;\n\t/** Tool-source fallback label for chips (host app). */\n\tappLabel?: string;\n\t/** Resolved character limits (defaults to {@link AGENT_CHAR_LIMITS}). */\n\tcharLimits?: AgentCharLimits;\n}\n\n/**\n * Right-side drawer for creating / editing a sub-agent (name, instructions,\n * guardrails, tools). Instructions & Guardrails are `@`-mention editors (tools\n * only — sub-agents can't nest); adding a tool from the list inserts it at the\n * last-focused field's cursor. Mount it fresh per open (key it) so `initial`\n * seeds the draft.\n */\nexport const CreateSubAgentPanel: React.FC<CreateSubAgentPanelProps> = ({\n\tonClose,\n\tonSave,\n\tavailableTools,\n\tonImprove,\n\ttitle = 'Create sub-agent',\n\tinitial,\n\tappLabel = 'Manifest',\n\tcharLimits = AGENT_CHAR_LIMITS,\n}) => {\n\tconst [name, setName] = useState(initial?.name ?? '');\n\tconst [instructions, setInstructions] = useState(initial?.instructions ?? '');\n\tconst [guardrail, setGuardrail] = useState(initial?.guardrail ?? '');\n\tconst [tools, setTools] = useState<string[]>(initial?.tools ?? []);\n\tconst [saving, setSaving] = useState(false);\n\t// Bumped to remount a field after its text is replaced (e.g. by Improve).\n\tconst [instrKey, setInstrKey] = useState(0);\n\tconst [guardKey, setGuardKey] = useState(0);\n\tconst [improving, setImproving] = useState<\n\t\t'instructions' | 'guardrail' | null\n\t>(null);\n\n\t// Tools-only mention list (sub-agents can't reference other sub-agents).\n\tconst mentionItems = useMemo(\n\t\t() => buildAgentMentionItems(availableTools, [], appLabel),\n\t\t[availableTools, appLabel],\n\t);\n\n\t// Per-field insert + focus registry, so the Tools list inserts a chip into the\n\t// last-focused editor at its cursor.\n\tconst insertersRef = useRef<\n\t\tPartial<Record<'instructions' | 'guardrail', InsertFn>>\n\t>({});\n\tconst lastFocusedRef = useRef<'instructions' | 'guardrail'>('instructions');\n\tconst registerInstr = useCallback((fn: InsertFn | null) => {\n\t\tinsertersRef.current.instructions = fn ?? undefined;\n\t}, []);\n\tconst registerGuard = useCallback((fn: InsertFn | null) => {\n\t\tinsertersRef.current.guardrail = fn ?? undefined;\n\t}, []);\n\tconst focusInstr = useCallback(() => {\n\t\tlastFocusedRef.current = 'instructions';\n\t}, []);\n\tconst focusGuard = useCallback(() => {\n\t\tlastFocusedRef.current = 'guardrail';\n\t}, []);\n\tconst addToolMention = useCallback(\n\t\t(kind: 'tool' | 'subagent', id: string) => {\n\t\t\tif (kind === 'tool') {\n\t\t\t\tsetTools((prev) => addUnique(prev, id));\n\t\t\t}\n\t\t},\n\t\t[],\n\t);\n\tconst insertToolAtCursor = useCallback((id: string) => {\n\t\tconst target =\n\t\t\tinsertersRef.current[lastFocusedRef.current] ??\n\t\t\tinsertersRef.current.instructions;\n\t\ttarget?.('tool', id);\n\t}, []);\n\n\t// Local undo toast for tool removal (drawer state isn't in AgentValue).\n\tconst [undo, setUndo] = useState<{ id: number; message: string } | null>(\n\t\tnull,\n\t);\n\tconst undoSnapshotRef = useRef<{\n\t\tinstructions: string;\n\t\tguardrail: string;\n\t\ttools: string[];\n\t} | null>(null);\n\tconst undoIdRef = useRef(0);\n\n\tconst removeTool = (id: string) => {\n\t\tconst tool = availableTools.find((t) => t.tool_id === id);\n\t\t// The token stores the tool id (a tool's id is its tool_id).\n\t\tconst token = `{{tool:${id}}}`;\n\t\tconst strip = (text: string) => text.split(token).join('');\n\t\tundoSnapshotRef.current = { instructions, guardrail, tools };\n\t\tsetInstructions((prev) => strip(prev));\n\t\tsetGuardrail((prev) => strip(prev));\n\t\tsetTools((prev) => prev.filter((t) => t !== id));\n\t\tsetInstrKey((k) => k + 1);\n\t\tsetGuardKey((k) => k + 1);\n\t\tundoIdRef.current += 1;\n\t\tsetUndo({\n\t\t\tid: undoIdRef.current,\n\t\t\tmessage: `Tool \"${tool?.display_name ?? 'Tool'}\" removed`,\n\t\t});\n\t};\n\n\tconst undoRemove = () => {\n\t\tconst snap = undoSnapshotRef.current;\n\t\tif (snap) {\n\t\t\tsetInstructions(snap.instructions);\n\t\t\tsetGuardrail(snap.guardrail);\n\t\t\tsetTools(snap.tools);\n\t\t\tsetInstrKey((k) => k + 1);\n\t\t\tsetGuardKey((k) => k + 1);\n\t\t\tundoSnapshotRef.current = null;\n\t\t}\n\t\tsetUndo(null);\n\t};\n\n\tconst canSave =\n\t\tname.trim().length > 0 &&\n\t\t(instructions.trim().length > 0 || guardrail.trim().length > 0);\n\n\tconst toolItems: SelectableItem[] = tools\n\t\t.map((id): SelectableItem | null => {\n\t\t\tconst tool = availableTools.find((t) => t.tool_id === id);\n\t\t\treturn tool\n\t\t\t\t? {\n\t\t\t\t\t\tid,\n\t\t\t\t\t\tlabel: tool.display_name,\n\t\t\t\t\t\ticon: SOURCE_ICONS[tool.source ?? 'manifest'],\n\t\t\t\t }\n\t\t\t\t: null;\n\t\t})\n\t\t.filter((x): x is SelectableItem => x !== null);\n\n\t// Offer all tools (re-add allowed); the chip list stays deduped. Icon left of\n\t// the name, no description.\n\tconst toolOptions: SingleOption[] = availableTools.map((t) => ({\n\t\tlabel: t.display_name,\n\t\tvalue: t.tool_id,\n\t\tleadingIcon:\n\t\t\trenderSourceIcon(SOURCE_ICONS[t.source ?? 'manifest']) ?? undefined,\n\t}));\n\n\t// Group tools by source (Manifest / Shopify / …) so the empty state shows the\n\t// same per-source buttons as the main builder's side panel.\n\tconst toolSourceGroups: SourceGroup[] = (() => {\n\t\tconst order: string[] = [];\n\t\tconst bySource = new Map<string, SingleOption[]>();\n\t\tavailableTools.forEach((t) => {\n\t\t\tconst src = t.source ?? 'manifest';\n\t\t\tif (!bySource.has(src)) {\n\t\t\t\tbySource.set(src, []);\n\t\t\t\torder.push(src);\n\t\t\t}\n\t\t\tbySource.get(src)?.push({\n\t\t\t\tlabel: t.display_name,\n\t\t\t\tvalue: t.tool_id,\n\t\t\t\tleadingIcon:\n\t\t\t\t\trenderSourceIcon(SOURCE_ICONS[t.source ?? 'manifest']) ?? undefined,\n\t\t\t});\n\t\t});\n\t\treturn order.map((src) => ({\n\t\t\tsource: src,\n\t\t\tlabel: toolSourceLabel(src),\n\t\t\toptions: bySource.get(src) ?? [],\n\t\t}));\n\t})();\n\n\tconst handleSave = async () => {\n\t\tif (!canSave || saving) {\n\t\t\treturn;\n\t\t}\n\t\tconst result = onSave({\n\t\t\tname: name.trim(),\n\t\t\tinstructions,\n\t\t\tguardrail,\n\t\t\ttools,\n\t\t});\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 handleImprove = async (kind: 'instructions' | 'guardrail') => {\n\t\tif (!onImprove || improving) {\n\t\t\treturn;\n\t\t}\n\t\tsetImproving(kind);\n\t\ttry {\n\t\t\tconst current = kind === 'instructions' ? instructions : guardrail;\n\t\t\tconst improved = await onImprove(kind, current);\n\t\t\tif (kind === 'instructions') {\n\t\t\t\tsetInstructions(improved);\n\t\t\t\tsetInstrKey((k) => k + 1);\n\t\t\t} else {\n\t\t\t\tsetGuardrail(improved);\n\t\t\t\tsetGuardKey((k) => k + 1);\n\t\t\t}\n\t\t} finally {\n\t\t\tsetImproving(null);\n\t\t}\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<SubAgentScrim onClick={onClose} data-test=\"subagent-scrim\" />\n\t\t\t<SubAgentPanel data-test=\"create-subagent-panel\">\n\t\t\t\t<SubAgentPanelHeader>\n\t\t\t\t\t<SubAgentPanelHeaderText>\n\t\t\t\t\t\t<TitleRegular color={COLORS.content.primary}>{title}</TitleRegular>\n\t\t\t\t\t\t<BodySecondary color={COLORS.content.secondary}>\n\t\t\t\t\t\t\tEach sub-agent handles one piece of the job. Use @ in the main\n\t\t\t\t\t\t\tinstructions to call them.\n\t\t\t\t\t\t</BodySecondary>\n\t\t\t\t\t</SubAgentPanelHeaderText>\n\t\t\t\t\t<SubAgentCloseButton onClick={onClose} aria-label=\"Close\">\n\t\t\t\t\t\t<CrossIcon\n\t\t\t\t\t\t\twidth={20}\n\t\t\t\t\t\t\theight={20}\n\t\t\t\t\t\t\tcolor={COLORS.content.secondary}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</SubAgentCloseButton>\n\t\t\t\t</SubAgentPanelHeader>\n\n\t\t\t\t<SubAgentPanelBody>\n\t\t\t\t\t<Input\n\t\t\t\t\t\tdata-test=\"subagent-name\"\n\t\t\t\t\t\tlabelText=\"Agent name\"\n\t\t\t\t\t\tlabelTextBold\n\t\t\t\t\t\tplaceholder=\"Enter agent name\"\n\t\t\t\t\t\tvalue={name}\n\t\t\t\t\t\tmaxCharLimit={charLimits.name}\n\t\t\t\t\t\tmaxCharLimitPosition=\"TOP\"\n\t\t\t\t\t\tmaxCharStyle={{ fontSize: 12, lineHeight: '16px' }}\n\t\t\t\t\t\tonChangeText={setName}\n\t\t\t\t\t/>\n\n\t\t\t\t\t<MentionEditor\n\t\t\t\t\t\tdata-test=\"subagent-instructions\"\n\t\t\t\t\t\tlabel=\"Instructions\"\n\t\t\t\t\t\tvalue={instructions}\n\t\t\t\t\t\tonChange={setInstructions}\n\t\t\t\t\t\tmaxLength={charLimits.instructions}\n\t\t\t\t\t\tplaceholder=\"Write the steps in plain English. Type @ to reference a tool.\"\n\t\t\t\t\t\tminHeight=\"160px\"\n\t\t\t\t\t\tresetKey={`instr-${instrKey}`}\n\t\t\t\t\t\tmentionItems={mentionItems}\n\t\t\t\t\t\ttools={availableTools}\n\t\t\t\t\t\tonMentionSelect={addToolMention}\n\t\t\t\t\t\tonFocus={focusInstr}\n\t\t\t\t\t\tregisterInsert={registerInstr}\n\t\t\t\t\t/>\n\n\t\t\t\t\t<MentionEditor\n\t\t\t\t\t\tdata-test=\"subagent-guardrail\"\n\t\t\t\t\t\tlabel=\"Guardrails\"\n\t\t\t\t\t\tvalue={guardrail}\n\t\t\t\t\t\tonChange={setGuardrail}\n\t\t\t\t\t\tmaxLength={charLimits.guardrail}\n\t\t\t\t\t\tplaceholder=\"e.g. Never discuss competitor pricing. Type @ to reference a tool.\"\n\t\t\t\t\t\tminHeight=\"160px\"\n\t\t\t\t\t\tresetKey={`guard-${guardKey}`}\n\t\t\t\t\t\tmentionItems={mentionItems}\n\t\t\t\t\t\ttools={availableTools}\n\t\t\t\t\t\tonMentionSelect={addToolMention}\n\t\t\t\t\t\tonFocus={focusGuard}\n\t\t\t\t\t\tregisterInsert={registerGuard}\n\t\t\t\t\t/>\n\n\t\t\t\t\t<SelectableListSection\n\t\t\t\t\t\ttitle=\"Tools this agent can use\"\n\t\t\t\t\t\tdataTestPrefix=\"subagent-tools\"\n\t\t\t\t\t\titems={toolItems}\n\t\t\t\t\t\taddableOptions={toolOptions}\n\t\t\t\t\t\tsourceGroups={toolSourceGroups}\n\t\t\t\t\t\tmentionItems={mentionItems}\n\t\t\t\t\t\temptyText=\"No tools added yet.\"\n\t\t\t\t\t\tonAdd={(id) => {\n\t\t\t\t\t\t\tinsertToolAtCursor(id);\n\t\t\t\t\t\t\tsetTools((prev) => addUnique(prev, id));\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonRemove={removeTool}\n\t\t\t\t\t/>\n\t\t\t\t</SubAgentPanelBody>\n\n\t\t\t\t<SubAgentPanelFooter>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tdata-test=\"subagent-save\"\n\t\t\t\t\t\tbuttonType=\"primary\"\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\tbuttonText=\"Save\"\n\t\t\t\t\t\tdisabled={!canSave}\n\t\t\t\t\t\tisLoading={saving}\n\t\t\t\t\t\tonClick={handleSave}\n\t\t\t\t\t/>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tdata-test=\"subagent-cancel\"\n\t\t\t\t\t\tbuttonType=\"tertiaryGray\"\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\tbuttonText=\"Cancel\"\n\t\t\t\t\t\tonClick={onClose}\n\t\t\t\t\t/>\n\t\t\t\t</SubAgentPanelFooter>\n\t\t\t</SubAgentPanel>\n\n\t\t\t{undo && (\n\t\t\t\t<Toaster\n\t\t\t\t\tkey={undo.id}\n\t\t\t\t\ttext={undo.message}\n\t\t\t\t\ttype=\"info\"\n\t\t\t\t\tposition=\"top-right\"\n\t\t\t\t\tautoClose={5000}\n\t\t\t\t\thideCloseButton\n\t\t\t\t\tbuttonProps={{\n\t\t\t\t\t\tbuttonText: 'Undo',\n\t\t\t\t\t\tshowButton: true,\n\t\t\t\t\t\tonButtonClick: () => {\n\t\t\t\t\t\t\tundoRemove();\n\t\t\t\t\t\t\treturn {} as Record<string, never>;\n\t\t\t\t\t\t},\n\t\t\t\t\t}}\n\t\t\t\t\tonCloseToast={() => setUndo(null)}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</>\n\t);\n};\n"],"names":["CreateSubAgentPanel","onClose","onSave","availableTools","onImprove","title","initial","appLabel","charLimits","AGENT_CHAR_LIMITS","name","setName","useState","instructions","setInstructions","guardrail","setGuardrail","tools","setTools","saving","setSaving","instrKey","setInstrKey","guardKey","setGuardKey","improving","setImproving","mentionItems","useMemo","buildAgentMentionItems","insertersRef","useRef","lastFocusedRef","registerInstr","useCallback","fn","registerGuard","focusInstr","focusGuard","addToolMention","kind","id","prev","addUnique","insertToolAtCursor","undo","setUndo","undoSnapshotRef","undoIdRef","removeTool","tool","t","token","strip","text","k","undoRemove","snap","canSave","toolItems","SOURCE_ICONS","x","toolOptions","renderSourceIcon","toolSourceGroups","order","bySource","src","toolSourceLabel","handleSave","result","jsxs","Fragment","jsx","SubAgentScrim","SubAgentPanel","SubAgentPanelHeader","SubAgentPanelHeaderText","TitleRegular","COLORS","BodySecondary","SubAgentCloseButton","CrossIcon","SubAgentPanelBody","Input","MentionEditor","SelectableListSection","SubAgentPanelFooter","Button","Toaster"],"mappings":"4oBA8DaA,GAA0D,CAAC,CACvE,QAAAC,EACA,OAAAC,EACA,eAAAC,EACA,UAAAC,GACA,MAAAC,EAAQ,mBACR,QAAAC,EACA,SAAAC,EAAW,WAAA,WACXC,EAAaC,GAAAA,iBACd,IAAM,CACL,KAAM,CAACC,EAAMC,CAAO,EAAIC,EAAAA,SAASN,GAAS,MAAQ,EAAE,EAC9C,CAACO,EAAcC,CAAe,EAAIF,EAAAA,SAASN,GAAS,cAAgB,EAAE,EACtE,CAACS,EAAWC,CAAY,EAAIJ,EAAAA,SAASN,GAAS,WAAa,EAAE,EAC7D,CAACW,EAAOC,CAAQ,EAAIN,EAAAA,SAAmBN,GAAS,OAAS,EAAE,EAC3D,CAACa,EAAQC,CAAS,EAAIR,EAAAA,SAAS,EAAK,EAEpC,CAACS,EAAUC,CAAW,EAAIV,EAAAA,SAAS,CAAC,EACpC,CAACW,EAAUC,CAAW,EAAIZ,EAAAA,SAAS,CAAC,EACpC,CAACa,GAAWC,EAAY,EAAId,EAAAA,SAEhC,IAAI,EAGAe,EAAeC,EAAAA,QACpB,IAAMC,yBAAuB1B,EAAgB,CAAA,EAAII,CAAQ,EACzD,CAACJ,EAAgBI,CAAQ,CAAA,EAKpBuB,EAAeC,EAAAA,OAEnB,EAAE,EACEC,EAAiBD,EAAAA,OAAqC,cAAc,EACpEE,EAAgBC,cAAaC,GAAwB,CAC1DL,EAAa,QAAQ,aAAeK,GAAM,MAC3C,EAAG,CAAA,CAAE,EACCC,EAAgBF,cAAaC,GAAwB,CAC1DL,EAAa,QAAQ,UAAYK,GAAM,MACxC,EAAG,CAAA,CAAE,EACCE,EAAaH,EAAAA,YAAY,IAAM,CACpCF,EAAe,QAAU,cAC1B,EAAG,CAAA,CAAE,EACCM,EAAaJ,EAAAA,YAAY,IAAM,CACpCF,EAAe,QAAU,WAC1B,EAAG,CAAA,CAAE,EACCO,EAAiBL,EAAAA,YACtB,CAACM,EAA2BC,IAAe,CACtCD,IAAS,QACZtB,EAAUwB,GAASC,EAAAA,UAAUD,EAAMD,CAAE,CAAC,CAExC,EACA,CAAA,CAAC,EAEIG,EAAqBV,cAAaO,GAAe,EAErDX,EAAa,QAAQE,EAAe,OAAO,GAC3CF,EAAa,QAAQ,gBACb,OAAQW,CAAE,CACpB,EAAG,CAAA,CAAE,EAGC,CAACI,EAAMC,CAAO,EAAIlC,EAAAA,SACvB,IAAA,EAEKmC,EAAkBhB,EAAAA,OAId,IAAI,EACRiB,EAAYjB,EAAAA,OAAO,CAAC,EAEpBkB,EAAcR,GAAe,CAClC,MAAMS,EAAO/C,EAAe,KAAMgD,GAAMA,EAAE,UAAYV,CAAE,EAElDW,EAAQ,UAAUX,CAAE,KACpBY,EAASC,GAAiBA,EAAK,MAAMF,CAAK,EAAE,KAAK,EAAE,EACzDL,EAAgB,QAAU,CAAE,aAAAlC,EAAc,UAAAE,EAAW,MAAAE,CAAA,EACrDH,EAAiB4B,GAASW,EAAMX,CAAI,CAAC,EACrC1B,EAAc0B,GAASW,EAAMX,CAAI,CAAC,EAClCxB,EAAUwB,GAASA,EAAK,OAAQS,IAAMA,KAAMV,CAAE,CAAC,EAC/CnB,EAAaiC,GAAMA,EAAI,CAAC,EACxB/B,EAAa+B,GAAMA,EAAI,CAAC,EACxBP,EAAU,SAAW,EACrBF,EAAQ,CACP,GAAIE,EAAU,QACd,QAAS,SAASE,GAAM,cAAgB,MAAM,WAAA,CAC9C,CACF,EAEMM,EAAa,IAAM,CACxB,MAAMC,EAAOV,EAAgB,QACzBU,IACH3C,EAAgB2C,EAAK,YAAY,EACjCzC,EAAayC,EAAK,SAAS,EAC3BvC,EAASuC,EAAK,KAAK,EACnBnC,EAAaiC,GAAMA,EAAI,CAAC,EACxB/B,EAAa+B,GAAMA,EAAI,CAAC,EACxBR,EAAgB,QAAU,MAE3BD,EAAQ,IAAI,CACb,EAEMY,EACLhD,EAAK,KAAA,EAAO,OAAS,IACpBG,EAAa,KAAA,EAAO,OAAS,GAAKE,EAAU,KAAA,EAAO,OAAS,GAExD4C,EAA8B1C,EAClC,IAAKwB,GAA8B,CACnC,MAAMS,EAAO/C,EAAe,KAAMgD,GAAMA,EAAE,UAAYV,CAAE,EACxD,OAAOS,EACJ,CACA,GAAAT,EACA,MAAOS,EAAK,aACZ,KAAMU,EAAAA,aAAaV,EAAK,QAAU,UAAU,CAAA,EAE5C,IACJ,CAAC,EACA,OAAQW,GAA2BA,IAAM,IAAI,EAIzCC,EAA8B3D,EAAe,IAAKgD,IAAO,CAC9D,MAAOA,EAAE,aACT,MAAOA,EAAE,QACT,YACCY,EAAAA,iBAAiBH,EAAAA,aAAaT,EAAE,QAAU,UAAU,CAAC,GAAK,MAAA,EAC1D,EAIIa,IAAmC,IAAM,CAC9C,MAAMC,EAAkB,CAAA,EAClBC,MAAe,IACrB,OAAA/D,EAAe,QAASgD,GAAM,CAC7B,MAAMgB,EAAMhB,EAAE,QAAU,WACnBe,EAAS,IAAIC,CAAG,IACpBD,EAAS,IAAIC,EAAK,EAAE,EACpBF,EAAM,KAAKE,CAAG,GAEfD,EAAS,IAAIC,CAAG,GAAG,KAAK,CACvB,MAAOhB,EAAE,aACT,MAAOA,EAAE,QACT,YACCY,EAAAA,iBAAiBH,EAAAA,aAAaT,EAAE,QAAU,UAAU,CAAC,GAAK,MAAA,CAC3D,CACF,CAAC,EACMc,EAAM,IAAKE,IAAS,CAC1B,OAAQA,EACR,MAAOC,EAAAA,gBAAgBD,CAAG,EAC1B,QAASD,EAAS,IAAIC,CAAG,GAAK,CAAA,CAAC,EAC9B,CACH,GAAA,EAEME,GAAa,SAAY,CAC9B,GAAI,CAACX,GAAWvC,EACf,OAED,MAAMmD,EAASpE,EAAO,CACrB,KAAMQ,EAAK,KAAA,EACX,aAAAG,EACA,UAAAE,EACA,MAAAE,CAAA,CACA,EACD,GAAIqD,GAAU,OAAQA,EAAyB,MAAS,WAAY,CACnElD,EAAU,EAAI,EACd,GAAI,CACH,MAAMkD,CACP,QAAA,CACClD,EAAU,EAAK,CAChB,CACD,CACD,EAsBA,OACCmD,EAAAA,KAAAC,WAAA,CACC,SAAA,CAAAC,EAAAA,IAACC,EAAAA,cAAA,CAAc,QAASzE,EAAS,YAAU,iBAAiB,EAC5DsE,EAAAA,KAACI,EAAAA,cAAA,CAAc,YAAU,wBACxB,SAAA,CAAAJ,OAACK,EAAAA,oBAAA,CACA,SAAA,CAAAL,OAACM,EAAAA,wBAAA,CACA,SAAA,CAAAJ,MAACK,EAAAA,aAAA,CAAa,MAAOC,EAAAA,OAAO,QAAQ,QAAU,SAAA1E,EAAM,QACnD2E,EAAAA,cAAA,CAAc,MAAOD,EAAAA,OAAO,QAAQ,UAAW,SAAA,2FAAA,CAGhD,CAAA,EACD,EACAN,EAAAA,IAACQ,EAAAA,oBAAA,CAAoB,QAAShF,EAAS,aAAW,QACjD,SAAAwE,EAAAA,IAACS,GAAAA,QAAA,CACA,MAAO,GACP,OAAQ,GACR,MAAOH,EAAAA,OAAO,QAAQ,SAAA,CAAA,CACvB,CACD,CAAA,EACD,SAECI,EAAAA,kBAAA,CACA,SAAA,CAAAV,EAAAA,IAACW,GAAAA,MAAA,CACA,YAAU,gBACV,UAAU,aACV,cAAa,GACb,YAAY,mBACZ,MAAO1E,EACP,aAAcF,EAAW,KACzB,qBAAqB,MACrB,aAAc,CAAE,SAAU,GAAI,WAAY,MAAA,EAC1C,aAAcG,CAAA,CAAA,EAGf8D,EAAAA,IAACY,EAAAA,cAAA,CACA,YAAU,wBACV,MAAM,eACN,MAAOxE,EACP,SAAUC,EACV,UAAWN,EAAW,aACtB,YAAY,gEACZ,UAAU,QACV,SAAU,SAASa,CAAQ,GAC3B,aAAAM,EACA,MAAOxB,EACP,gBAAiBoC,EACjB,QAASF,EACT,eAAgBJ,CAAA,CAAA,EAGjBwC,EAAAA,IAACY,EAAAA,cAAA,CACA,YAAU,qBACV,MAAM,aACN,MAAOtE,EACP,SAAUC,EACV,UAAWR,EAAW,UACtB,YAAY,qEACZ,UAAU,QACV,SAAU,SAASe,CAAQ,GAC3B,aAAAI,EACA,MAAOxB,EACP,gBAAiBoC,EACjB,QAASD,EACT,eAAgBF,CAAA,CAAA,EAGjBqC,EAAAA,IAACa,GAAAA,sBAAA,CACA,MAAM,2BACN,eAAe,iBACf,MAAO3B,EACP,eAAgBG,EAChB,aAAcE,GACd,aAAArC,EACA,UAAU,sBACV,MAAQc,GAAO,CACdG,EAAmBH,CAAE,EACrBvB,EAAUwB,GAASC,EAAAA,UAAUD,EAAMD,CAAE,CAAC,CACvC,EACA,SAAUQ,CAAA,CAAA,CACX,EACD,SAECsC,EAAAA,oBAAA,CACA,SAAA,CAAAd,EAAAA,IAACe,EAAAA,OAAA,CACA,YAAU,gBACV,WAAW,UACX,KAAK,QACL,WAAW,OACX,SAAU,CAAC9B,EACX,UAAWvC,EACX,QAASkD,EAAA,CAAA,EAEVI,EAAAA,IAACe,EAAAA,OAAA,CACA,YAAU,kBACV,WAAW,eACX,KAAK,QACL,WAAW,SACX,QAASvF,CAAA,CAAA,CACV,CAAA,CACD,CAAA,EACD,EAEC4C,GACA4B,EAAAA,IAACgB,GAAAA,QAAA,CAEA,KAAM5C,EAAK,QACX,KAAK,OACL,SAAS,YACT,UAAW,IACX,gBAAe,GACf,YAAa,CACZ,WAAY,OACZ,WAAY,GACZ,cAAe,KACdW,EAAA,EACO,CAAA,EACR,EAED,aAAc,IAAMV,EAAQ,IAAI,CAAA,EAd3BD,EAAK,EAAA,CAeX,EAEF,CAEF"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const ot=require("react/jsx-runtime"),s=require("react"),ct=require("../constants/charLimits.js"),g=require("../constants/steps.js"),ut=t=>t&&typeof t=="object"&&"default"in t?t:{default:t},it=ut(s),O=it.default.createContext(null),lt=()=>{const t=s.useContext(O);if(!t)throw new Error("useAgentBuilderContext must be used within an AgentBuilderProvider");return t},dt=(t,o)=>{const l=t.trigger.mode==="custom_intent"?(t.trigger.custom_intent??"").trim().length>0:t.trigger.intents.length>0;return{about:t.name.trim().length>0&&t.name.length<=o.name&&t.description.length<=o.description,trigger:l,response:t.instructions.trim().length>0||(t.guardrail??"").trim().length>0,handover:!0}},at=({value:t,onChange:o,activeStep:l,onStepChange:p,availableTools:d,availableSubAgents:f,availableIntents:k,availableModels:C,validation:E,applicationType:M,charLimits:P,disableStepNavigation:h=!0,onCreateSubAgent:B,onFetchSubAgent:T,onUpdateSubAgent:y,onImproveSubAgent:A,children:v})=>{const[tt,et]=s.useState("about"),m=l??tt,u=g.getStepIndex(m),j=s.useRef(t);j.current=t;const[q,F]=s.useState(0),S=s.useRef({}),I=s.useRef("instructions"),K=s.useCallback((e,n)=>{n?S.current[e]=n:delete S.current[e]},[]),L=s.useCallback(e=>{I.current=e},[]),$=s.useRef(null),Y=s.useCallback(e=>{$.current=e},[]),w=s.useCallback(()=>{$.current?.()},[]),V=s.useCallback((e,n,c)=>{const a=S.current;(a[I.current]??a.instructions)?.(e,n,c)},[]),[D,x]=s.useState(null),R=s.useRef(null),G=s.useRef(0),i=s.useCallback(e=>{l===void 0&&et(e),p?.(e)},[l,p]),H=s.useCallback(()=>{const e=g.STEP_KEYS[Math.min(u+1,g.STEP_KEYS.length-1)];i(e)},[u,i]),N=s.useCallback(()=>{const e=g.STEP_KEYS[Math.max(u-1,0)];i(e)},[u,i]),U=s.useCallback(e=>o(e),[o]),z=s.useCallback((e,n)=>o({[e]:n}),[o]),J=s.useCallback((e,n)=>{const c=j.current;e==="tool"?c.tools.includes(n)||o({tools:[...c.tools,n]}):c.subagents.includes(n)||o({subagents:[...c.subagents,n]})},[o]),Q=s.useCallback((e,n)=>{const c=e==="tool"?(()=>{const r=d.find(rt=>rt.tool_id===n);return r?`{{tool:${r.function_key}}}`:null})():`{{subagent:${n}}}`,a=r=>c?r.split(c).join(""):r;R.current={tools:t.tools,subagents:t.subagents,instructions:t.instructions,guardrail:t.guardrail};const Z={instructions:a(t.instructions),guardrail:a(t.guardrail??""),...e==="tool"?{tools:t.tools.filter(r=>r!==n)}:{subagents:t.subagents.filter(r=>r!==n)}};o(Z),F(r=>r+1);const nt=e==="tool"?d.find(r=>r.tool_id===n)?.display_name??"Tool":f.find(r=>r.id===n)?.name??"Sub-agent";G.current+=1,x({id:G.current,message:`${e==="tool"?"Tool":"Sub-agent"} "${nt}" removed`})},[d,f,t,o]),W=s.useCallback(()=>{R.current&&(o(R.current),R.current=null,F(e=>e+1)),x(null)},[o]),X=s.useCallback(()=>x(null),[]),b=s.useMemo(()=>({...ct.AGENT_CHAR_LIMITS,...P}),[P]),_=s.useMemo(()=>({...dt(t,b),...E}),[t,b,E]),st=s.useMemo(()=>({value:t,patch:U,updateField:z,addReference:J,removeReference:Q,mentionResetKey:q,insertMention:V,registerMentionField:K,notifyMentionFocus:L,undoToast:D,undoRemoval:W,dismissUndo:X,activeStep:m,activeIndex:u,goToStep:i,goNext:H,goPrev:N,isFirstStep:u===0,isLastStep:u===g.STEP_KEYS.length-1,validation:_,isActiveStepValid:_[m],availableTools:d,availableSubAgents:f,availableIntents:k,availableModels:C,applicationType:M,charLimits:b,disableStepNavigation:h,onCreateSubAgent:B,registerSubAgentCreator:Y,requestCreateSubAgent:w,onFetchSubAgent:T,onUpdateSubAgent:y,onImproveSubAgent:A}),[t,U,z,J,Q,q,V,K,L,D,W,X,m,u,i,H,N,_,d,f,k,C,M,b,h,B,Y,w,T,y,A]);return ot.jsx(O.Provider,{value:st,children:v})};exports.AgentBuilderProvider=at;exports.useAgentBuilderContext=lt;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const rt=require("react/jsx-runtime"),s=require("react"),ot=require("../constants/charLimits.js"),d=require("../constants/steps.js"),ct=t=>t&&typeof t=="object"&&"default"in t?t:{default:t},ut=ct(s),O=ut.default.createContext(null),it=()=>{const t=s.useContext(O);if(!t)throw new Error("useAgentBuilderContext must be used within an AgentBuilderProvider");return t},lt=(t,r)=>{const l=t.trigger.mode==="custom_intent"?(t.trigger.custom_intent??"").trim().length>0:t.trigger.intents.length>0;return{about:t.name.trim().length>0&&t.name.length<=r.name&&t.description.length<=r.description,trigger:l,response:t.instructions.trim().length>0||(t.guardrail??"").trim().length>0,handover:!0}},at=({value:t,onChange:r,activeStep:l,onStepChange:C,availableTools:g,availableSubAgents:f,availableIntents:_,availableModels:k,validation:E,applicationType:M,charLimits:P,disableStepNavigation:T=!0,onCreateSubAgent:h,onFetchSubAgent:B,onUpdateSubAgent:A,onImproveSubAgent:j,children:v})=>{const[tt,et]=s.useState("about"),m=l??tt,c=d.getStepIndex(m),q=s.useRef(t);q.current=t;const[y,F]=s.useState(0),S=s.useRef({}),I=s.useRef("instructions"),K=s.useCallback((e,n)=>{n?S.current[e]=n:delete S.current[e]},[]),L=s.useCallback(e=>{I.current=e},[]),$=s.useRef(null),Y=s.useCallback(e=>{$.current=e},[]),w=s.useCallback(()=>{$.current?.()},[]),V=s.useCallback((e,n,u)=>{const a=S.current;(a[I.current]??a.instructions)?.(e,n,u)},[]),[D,x]=s.useState(null),R=s.useRef(null),G=s.useRef(0),i=s.useCallback(e=>{l===void 0&&et(e),C?.(e)},[l,C]),H=s.useCallback(()=>{const e=d.STEP_KEYS[Math.min(c+1,d.STEP_KEYS.length-1)];i(e)},[c,i]),N=s.useCallback(()=>{const e=d.STEP_KEYS[Math.max(c-1,0)];i(e)},[c,i]),U=s.useCallback(e=>r(e),[r]),z=s.useCallback((e,n)=>r({[e]:n}),[r]),J=s.useCallback((e,n)=>{const u=q.current;e==="tool"?u.tools.includes(n)||r({tools:[...u.tools,n]}):u.subagents.includes(n)||r({subagents:[...u.subagents,n]})},[r]),Q=s.useCallback((e,n)=>{const u=e==="tool"?`{{tool:${n}}}`:`{{subagent:${n}}}`,a=o=>o.split(u).join("");R.current={tools:t.tools,subagents:t.subagents,instructions:t.instructions,guardrail:t.guardrail};const Z={instructions:a(t.instructions),guardrail:a(t.guardrail??""),...e==="tool"?{tools:t.tools.filter(o=>o!==n)}:{subagents:t.subagents.filter(o=>o!==n)}};r(Z),F(o=>o+1);const nt=e==="tool"?g.find(o=>o.tool_id===n)?.display_name??"Tool":f.find(o=>o.id===n)?.name??"Sub-agent";G.current+=1,x({id:G.current,message:`${e==="tool"?"Tool":"Sub-agent"} "${nt}" removed`})},[g,f,t,r]),W=s.useCallback(()=>{R.current&&(r(R.current),R.current=null,F(e=>e+1)),x(null)},[r]),X=s.useCallback(()=>x(null),[]),b=s.useMemo(()=>({...ot.AGENT_CHAR_LIMITS,...P}),[P]),p=s.useMemo(()=>({...lt(t,b),...E}),[t,b,E]),st=s.useMemo(()=>({value:t,patch:U,updateField:z,addReference:J,removeReference:Q,mentionResetKey:y,insertMention:V,registerMentionField:K,notifyMentionFocus:L,undoToast:D,undoRemoval:W,dismissUndo:X,activeStep:m,activeIndex:c,goToStep:i,goNext:H,goPrev:N,isFirstStep:c===0,isLastStep:c===d.STEP_KEYS.length-1,validation:p,isActiveStepValid:p[m],availableTools:g,availableSubAgents:f,availableIntents:_,availableModels:k,applicationType:M,charLimits:b,disableStepNavigation:T,onCreateSubAgent:h,registerSubAgentCreator:Y,requestCreateSubAgent:w,onFetchSubAgent:B,onUpdateSubAgent:A,onImproveSubAgent:j}),[t,U,z,J,Q,y,V,K,L,D,W,X,m,c,i,H,N,p,g,f,_,k,M,b,T,h,Y,w,B,A,j]);return rt.jsx(O.Provider,{value:st,children:v})};exports.AgentBuilderProvider=at;exports.useAgentBuilderContext=it;
2
2
  //# sourceMappingURL=AgentBuilderContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AgentBuilderContext.js","sources":["../../../../../src/components/agent-builder/context/AgentBuilderContext.tsx"],"sourcesContent":["import type { ApplicationType } from '@bikdotai/bik-models/growth';\nimport React, {\n\tuseCallback,\n\tuseContext,\n\tuseMemo,\n\tuseRef,\n\tuseState,\n} from 'react';\nimport {\n\tAgentTool,\n\tAgentValue,\n\tIntentOption,\n\tModelOption,\n\tStepKey,\n\tStepValidation,\n\tSubAgentDraft,\n\tSubAgentRef,\n} from '../AgentBuilder.model';\nimport { AGENT_CHAR_LIMITS } from '../constants/charLimits';\nimport type { AgentCharLimits } from '../constants/charLimits';\nimport { getStepIndex, STEP_KEYS } from '../constants/steps';\n\n/** Mention-capable text fields in Step 3 (both store firebase token text). */\nexport type MentionFieldKey = 'instructions' | 'guardrail';\ntype MentionInsertFn = (\n\tkind: 'tool' | 'subagent',\n\tid: string,\n\tlabel?: string,\n) => void;\n\n/** Toast shown after a tool / sub-agent is removed, offering an undo. */\nexport interface UndoToastState {\n\t/** Bumped per removal so the toast timer restarts. */\n\tid: number;\n\tmessage: string;\n}\n\nexport interface AgentBuilderContextShape {\n\t/** Controlled value relayed from props. */\n\tvalue: AgentValue;\n\t/** Patch one or more fields. */\n\tpatch: (partial: Partial<AgentValue>) => void;\n\t/** Patch a single field. */\n\tupdateField: <K extends keyof AgentValue>(key: K, val: AgentValue[K]) => void;\n\t/**\n\t * Remove a tool / sub-agent everywhere: drops it from the list AND strips ALL\n\t * its `{{tool:KEY}}` / `{{subagent:ID}}` tokens from BOTH the instructions and\n\t * the guardrails, remounts the editors, and raises an undo toast.\n\t */\n\tremoveReference: (kind: 'tool' | 'subagent', id: string) => void;\n\t/**\n\t * Append a tool / sub-agent id to its list (deduped), reading the LATEST value\n\t * via a ref. Use this instead of `patch({ tools: [...value.tools, id] })` from\n\t * any handler that may be captured with a stale `value` — notably the `@`\n\t * editor's mount-time `onSelect`, which would otherwise keep only the last pick.\n\t */\n\taddReference: (kind: 'tool' | 'subagent', id: string) => void;\n\t/** Remount signal for the mention editors after an external edit. */\n\tmentionResetKey: number;\n\t/**\n\t * Insert a tool / sub-agent mention chip at the last cursor position of\n\t * whichever mention field was focused most recently (Instructions or\n\t * Guardrails). `label` overrides the chip text (e.g. a just-created sub-agent\n\t * not yet in the available list).\n\t */\n\tinsertMention: (\n\t\tkind: 'tool' | 'subagent',\n\t\tid: string,\n\t\tlabel?: string,\n\t) => void;\n\t/** A mention field registers its editor-backed insert here (internal). */\n\tregisterMentionField: (\n\t\tfieldKey: MentionFieldKey,\n\t\tfn: MentionInsertFn | null,\n\t) => void;\n\t/** A mention field reports focus so inserts target it (internal). */\n\tnotifyMentionFocus: (fieldKey: MentionFieldKey) => void;\n\n\t// Undo (post-removal)\n\t/** Non-null while the undo toast should be visible. */\n\tundoToast: UndoToastState | null;\n\t/** Restore the last removed tool / sub-agent (list + stripped tokens). */\n\tundoRemoval: () => void;\n\t/** Dismiss the undo toast without restoring. */\n\tdismissUndo: () => void;\n\n\t// Navigation\n\tactiveStep: StepKey;\n\tactiveIndex: number;\n\tgoToStep: (step: StepKey) => void;\n\tgoNext: () => void;\n\tgoPrev: () => void;\n\tisFirstStep: boolean;\n\tisLastStep: boolean;\n\n\t// Validation\n\tvalidation: StepValidation;\n\tisActiveStepValid: boolean;\n\n\t// Reference data\n\tavailableTools: AgentTool[];\n\tavailableSubAgents: SubAgentRef[];\n\tavailableIntents: IntentOption[];\n\tavailableModels: ModelOption[];\n\t/** Host application context (e.g. MANIFEST) — drives tool-chip labelling. */\n\tapplicationType?: ApplicationType;\n\t/** Resolved per-field character limits (consumer overrides merged over defaults). */\n\tcharLimits: AgentCharLimits;\n\t/** When true, step-rail items are not clickable (Back / Next only). */\n\tdisableStepNavigation: boolean;\n\n\t// Sub-agent creation (Step 3 drawer)\n\t/** Persist a new sub-agent and resolve with its ref. Omit to hide the create flow. */\n\tonCreateSubAgent?: (draft: SubAgentDraft) => Promise<SubAgentRef>;\n\t/**\n\t * Step 3 registers its \"open create-sub-agent drawer\" action here so the `@`\n\t * picker's \"Create new\" row can trigger it. Pass `null` to unregister.\n\t */\n\tregisterSubAgentCreator: (fn: (() => void) | null) => void;\n\t/** Open the create-sub-agent drawer (no-op until Step 3 registers it). */\n\trequestCreateSubAgent: () => void;\n\t/** Fetch a sub-agent's editable data (Configure). Omit to hide Configure. */\n\tonFetchSubAgent?: (id: string) => Promise<SubAgentDraft>;\n\t/** Persist edits to an existing sub-agent. */\n\tonUpdateSubAgent?: (id: string, draft: SubAgentDraft) => Promise<SubAgentRef>;\n\t/** Optional \"Improve with AI\" for the drawer's instructions / guardrails. */\n\tonImproveSubAgent?: (\n\t\tkind: 'instructions' | 'guardrail',\n\t\ttext: string,\n\t) => Promise<string>;\n}\n\nconst AgentBuilderContext =\n\tReact.createContext<AgentBuilderContextShape | null>(null);\n\nexport const useAgentBuilderContext = (): AgentBuilderContextShape => {\n\tconst ctx = useContext(AgentBuilderContext);\n\tif (!ctx) {\n\t\tthrow new Error(\n\t\t\t'useAgentBuilderContext must be used within an AgentBuilderProvider',\n\t\t);\n\t}\n\treturn ctx;\n};\n\n/** Validity derived purely from the current value (no effects). */\nconst deriveValidation = (\n\tvalue: AgentValue,\n\tlimits: AgentCharLimits,\n): StepValidation => {\n\tconst triggerValid =\n\t\tvalue.trigger.mode === 'custom_intent'\n\t\t\t? (value.trigger.custom_intent ?? '').trim().length > 0\n\t\t\t: value.trigger.intents.length > 0;\n\n\treturn {\n\t\tabout:\n\t\t\tvalue.name.trim().length > 0 &&\n\t\t\tvalue.name.length <= limits.name &&\n\t\t\tvalue.description.length <= limits.description,\n\t\ttrigger: triggerValid,\n\t\t// At least one of Instructions / Guardrails must be filled.\n\t\tresponse:\n\t\t\tvalue.instructions.trim().length > 0 ||\n\t\t\t(value.guardrail ?? '').trim().length > 0,\n\t\t// Optional until specced further — never blocks go-live.\n\t\thandover: true,\n\t};\n};\n\ninterface ProviderProps {\n\tvalue: AgentValue;\n\tonChange: (patch: Partial<AgentValue>) => void;\n\tactiveStep?: StepKey;\n\tonStepChange?: (step: StepKey) => void;\n\tavailableTools: AgentTool[];\n\tavailableSubAgents: SubAgentRef[];\n\tavailableIntents: IntentOption[];\n\tavailableModels: ModelOption[];\n\tvalidation?: Partial<StepValidation>;\n\tapplicationType?: ApplicationType;\n\tcharLimits?: Partial<AgentCharLimits>;\n\tdisableStepNavigation?: boolean;\n\tonCreateSubAgent?: (draft: SubAgentDraft) => Promise<SubAgentRef>;\n\tonFetchSubAgent?: (id: string) => Promise<SubAgentDraft>;\n\tonUpdateSubAgent?: (id: string, draft: SubAgentDraft) => Promise<SubAgentRef>;\n\tonImproveSubAgent?: (\n\t\tkind: 'instructions' | 'guardrail',\n\t\ttext: string,\n\t) => Promise<string>;\n\tchildren: React.ReactNode;\n}\n\nexport const AgentBuilderProvider: React.FC<ProviderProps> = ({\n\tvalue,\n\tonChange,\n\tactiveStep: controlledStep,\n\tonStepChange,\n\tavailableTools,\n\tavailableSubAgents,\n\tavailableIntents,\n\tavailableModels,\n\tvalidation: validationOverride,\n\tapplicationType,\n\tcharLimits: charLimitsOverride,\n\tdisableStepNavigation = true,\n\tonCreateSubAgent,\n\tonFetchSubAgent,\n\tonUpdateSubAgent,\n\tonImproveSubAgent,\n\tchildren,\n}) => {\n\tconst [internalStep, setInternalStep] = useState<StepKey>('about');\n\tconst activeStep = controlledStep ?? internalStep;\n\tconst activeIndex = getStepIndex(activeStep);\n\n\t// Latest value, so closure-captured handlers (e.g. the `@` editor's mount-time\n\t// mention onSelect) append against the current lists, not a stale snapshot.\n\tconst valueRef = useRef(value);\n\tvalueRef.current = value;\n\n\t// Bumped when a mention field is edited from OUTSIDE its editor (removing a\n\t// tool from the side list, undo), forcing the mention editors to remount.\n\tconst [mentionResetKey, setMentionResetKey] = useState(0);\n\n\t// Each mention field registers an editor-backed insert fn + reports focus, so\n\t// side-panel adds drop a chip into the last-focused field at its cursor.\n\tconst mentionInsertersRef = useRef<\n\t\tPartial<Record<MentionFieldKey, MentionInsertFn>>\n\t>({});\n\tconst lastFocusedFieldRef = useRef<MentionFieldKey>('instructions');\n\tconst registerMentionField = useCallback(\n\t\t(fieldKey: MentionFieldKey, fn: MentionInsertFn | null) => {\n\t\t\tif (fn) {\n\t\t\t\tmentionInsertersRef.current[fieldKey] = fn;\n\t\t\t} else {\n\t\t\t\tdelete mentionInsertersRef.current[fieldKey];\n\t\t\t}\n\t\t},\n\t\t[],\n\t);\n\tconst notifyMentionFocus = useCallback((fieldKey: MentionFieldKey) => {\n\t\tlastFocusedFieldRef.current = fieldKey;\n\t}, []);\n\n\t// Step 3 registers its drawer opener here; the `@` picker's \"Create new\" calls it.\n\tconst subAgentCreatorRef = useRef<(() => void) | null>(null);\n\tconst registerSubAgentCreator = useCallback((fn: (() => void) | null) => {\n\t\tsubAgentCreatorRef.current = fn;\n\t}, []);\n\tconst requestCreateSubAgent = useCallback(() => {\n\t\tsubAgentCreatorRef.current?.();\n\t}, []);\n\tconst insertMention = useCallback<MentionInsertFn>((kind, id, label) => {\n\t\tconst inserters = mentionInsertersRef.current;\n\t\tconst target =\n\t\t\tinserters[lastFocusedFieldRef.current] ?? inserters.instructions;\n\t\ttarget?.(kind, id, label);\n\t}, []);\n\n\t// Undo state for the most recent removal.\n\tconst [undoToast, setUndoToast] = useState<UndoToastState | null>(null);\n\tconst undoSnapshotRef = useRef<Partial<AgentValue> | null>(null);\n\tconst undoIdRef = useRef(0);\n\n\tconst goToStep = useCallback(\n\t\t(step: StepKey) => {\n\t\t\tif (controlledStep === undefined) {\n\t\t\t\tsetInternalStep(step);\n\t\t\t}\n\t\t\tonStepChange?.(step);\n\t\t},\n\t\t[controlledStep, onStepChange],\n\t);\n\n\tconst goNext = useCallback(() => {\n\t\tconst next = STEP_KEYS[Math.min(activeIndex + 1, STEP_KEYS.length - 1)];\n\t\tgoToStep(next);\n\t}, [activeIndex, goToStep]);\n\n\tconst goPrev = useCallback(() => {\n\t\tconst prev = STEP_KEYS[Math.max(activeIndex - 1, 0)];\n\t\tgoToStep(prev);\n\t}, [activeIndex, goToStep]);\n\n\tconst patch = useCallback(\n\t\t(partial: Partial<AgentValue>) => onChange(partial),\n\t\t[onChange],\n\t);\n\n\tconst updateField = useCallback(\n\t\t<K extends keyof AgentValue>(key: K, val: AgentValue[K]) =>\n\t\t\tonChange({ [key]: val } as Partial<AgentValue>),\n\t\t[onChange],\n\t);\n\n\tconst addReference = useCallback(\n\t\t(kind: 'tool' | 'subagent', id: string) => {\n\t\t\tconst v = valueRef.current;\n\t\t\tif (kind === 'tool') {\n\t\t\t\tif (!v.tools.includes(id)) {\n\t\t\t\t\tonChange({ tools: [...v.tools, id] });\n\t\t\t\t}\n\t\t\t} else if (!v.subagents.includes(id)) {\n\t\t\t\tonChange({ subagents: [...v.subagents, id] });\n\t\t\t}\n\t\t},\n\t\t[onChange],\n\t);\n\n\tconst removeReference = useCallback(\n\t\t(kind: 'tool' | 'subagent', id: string) => {\n\t\t\tconst token =\n\t\t\t\tkind === 'tool'\n\t\t\t\t\t? (() => {\n\t\t\t\t\t\t\tconst tool = availableTools.find((t) => t.tool_id === id);\n\t\t\t\t\t\t\treturn tool ? `{{tool:${tool.function_key}}}` : null;\n\t\t\t\t\t })()\n\t\t\t\t\t: `{{subagent:${id}}}`;\n\t\t\tconst strip = (text: string) =>\n\t\t\t\ttoken ? text.split(token).join('') : text;\n\n\t\t\t// Snapshot the four fields a removal touches, for undo.\n\t\t\tundoSnapshotRef.current = {\n\t\t\t\ttools: value.tools,\n\t\t\t\tsubagents: value.subagents,\n\t\t\t\tinstructions: value.instructions,\n\t\t\t\tguardrail: value.guardrail,\n\t\t\t};\n\n\t\t\tconst next: Partial<AgentValue> = {\n\t\t\t\tinstructions: strip(value.instructions),\n\t\t\t\tguardrail: strip(value.guardrail ?? ''),\n\t\t\t\t...(kind === 'tool'\n\t\t\t\t\t? { tools: value.tools.filter((t) => t !== id) }\n\t\t\t\t\t: { subagents: value.subagents.filter((s) => s !== id) }),\n\t\t\t};\n\t\t\tonChange(next);\n\t\t\tsetMentionResetKey((k) => k + 1);\n\n\t\t\tconst label =\n\t\t\t\tkind === 'tool'\n\t\t\t\t\t? availableTools.find((t) => t.tool_id === id)?.display_name ?? 'Tool'\n\t\t\t\t\t: availableSubAgents.find((s) => s.id === id)?.name ?? 'Sub-agent';\n\t\t\tundoIdRef.current += 1;\n\t\t\tsetUndoToast({\n\t\t\t\tid: undoIdRef.current,\n\t\t\t\tmessage: `${kind === 'tool' ? 'Tool' : 'Sub-agent'} \"${label}\" removed`,\n\t\t\t});\n\t\t},\n\t\t[availableTools, availableSubAgents, value, onChange],\n\t);\n\n\tconst undoRemoval = useCallback(() => {\n\t\tif (undoSnapshotRef.current) {\n\t\t\tonChange(undoSnapshotRef.current);\n\t\t\tundoSnapshotRef.current = null;\n\t\t\tsetMentionResetKey((k) => k + 1);\n\t\t}\n\t\tsetUndoToast(null);\n\t}, [onChange]);\n\n\tconst dismissUndo = useCallback(() => setUndoToast(null), []);\n\n\t// Consumer overrides merged over the built-in defaults (name 60, rest 1000).\n\tconst charLimits = useMemo<AgentCharLimits>(\n\t\t() => ({ ...AGENT_CHAR_LIMITS, ...charLimitsOverride }),\n\t\t[charLimitsOverride],\n\t);\n\n\tconst validation: StepValidation = useMemo(\n\t\t() => ({ ...deriveValidation(value, charLimits), ...validationOverride }),\n\t\t[value, charLimits, validationOverride],\n\t);\n\n\tconst ctx = useMemo<AgentBuilderContextShape>(\n\t\t() => ({\n\t\t\tvalue,\n\t\t\tpatch,\n\t\t\tupdateField,\n\t\t\taddReference,\n\t\t\tremoveReference,\n\t\t\tmentionResetKey,\n\t\t\tinsertMention,\n\t\t\tregisterMentionField,\n\t\t\tnotifyMentionFocus,\n\t\t\tundoToast,\n\t\t\tundoRemoval,\n\t\t\tdismissUndo,\n\t\t\tactiveStep,\n\t\t\tactiveIndex,\n\t\t\tgoToStep,\n\t\t\tgoNext,\n\t\t\tgoPrev,\n\t\t\tisFirstStep: activeIndex === 0,\n\t\t\tisLastStep: activeIndex === STEP_KEYS.length - 1,\n\t\t\tvalidation,\n\t\t\tisActiveStepValid: validation[activeStep],\n\t\t\tavailableTools,\n\t\t\tavailableSubAgents,\n\t\t\tavailableIntents,\n\t\t\tavailableModels,\n\t\t\tapplicationType,\n\t\t\tcharLimits,\n\t\t\tdisableStepNavigation,\n\t\t\tonCreateSubAgent,\n\t\t\tregisterSubAgentCreator,\n\t\t\trequestCreateSubAgent,\n\t\t\tonFetchSubAgent,\n\t\t\tonUpdateSubAgent,\n\t\t\tonImproveSubAgent,\n\t\t}),\n\t\t[\n\t\t\tvalue,\n\t\t\tpatch,\n\t\t\tupdateField,\n\t\t\taddReference,\n\t\t\tremoveReference,\n\t\t\tmentionResetKey,\n\t\t\tinsertMention,\n\t\t\tregisterMentionField,\n\t\t\tnotifyMentionFocus,\n\t\t\tundoToast,\n\t\t\tundoRemoval,\n\t\t\tdismissUndo,\n\t\t\tactiveStep,\n\t\t\tactiveIndex,\n\t\t\tgoToStep,\n\t\t\tgoNext,\n\t\t\tgoPrev,\n\t\t\tvalidation,\n\t\t\tavailableTools,\n\t\t\tavailableSubAgents,\n\t\t\tavailableIntents,\n\t\t\tavailableModels,\n\t\t\tapplicationType,\n\t\t\tcharLimits,\n\t\t\tdisableStepNavigation,\n\t\t\tonCreateSubAgent,\n\t\t\tregisterSubAgentCreator,\n\t\t\trequestCreateSubAgent,\n\t\t\tonFetchSubAgent,\n\t\t\tonUpdateSubAgent,\n\t\t\tonImproveSubAgent,\n\t\t],\n\t);\n\n\treturn (\n\t\t<AgentBuilderContext.Provider value={ctx}>\n\t\t\t{children}\n\t\t</AgentBuilderContext.Provider>\n\t);\n};\n"],"names":["AgentBuilderContext","React","useAgentBuilderContext","ctx","useContext","deriveValidation","value","limits","triggerValid","AgentBuilderProvider","onChange","controlledStep","onStepChange","availableTools","availableSubAgents","availableIntents","availableModels","validationOverride","applicationType","charLimitsOverride","disableStepNavigation","onCreateSubAgent","onFetchSubAgent","onUpdateSubAgent","onImproveSubAgent","children","internalStep","setInternalStep","useState","activeStep","activeIndex","getStepIndex","valueRef","useRef","mentionResetKey","setMentionResetKey","mentionInsertersRef","lastFocusedFieldRef","registerMentionField","useCallback","fieldKey","fn","notifyMentionFocus","subAgentCreatorRef","registerSubAgentCreator","requestCreateSubAgent","insertMention","kind","id","label","inserters","undoToast","setUndoToast","undoSnapshotRef","undoIdRef","goToStep","step","goNext","next","STEP_KEYS","goPrev","prev","patch","partial","updateField","key","val","addReference","v","removeReference","token","tool","t","strip","text","s","k","undoRemoval","dismissUndo","charLimits","useMemo","AGENT_CHAR_LIMITS","validation"],"mappings":"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"}
1
+ {"version":3,"file":"AgentBuilderContext.js","sources":["../../../../../src/components/agent-builder/context/AgentBuilderContext.tsx"],"sourcesContent":["import type { ApplicationType } from '@bikdotai/bik-models/growth';\nimport React, {\n\tuseCallback,\n\tuseContext,\n\tuseMemo,\n\tuseRef,\n\tuseState,\n} from 'react';\nimport {\n\tAgentTool,\n\tAgentValue,\n\tIntentOption,\n\tModelOption,\n\tStepKey,\n\tStepValidation,\n\tSubAgentDraft,\n\tSubAgentRef,\n} from '../AgentBuilder.model';\nimport { AGENT_CHAR_LIMITS } from '../constants/charLimits';\nimport type { AgentCharLimits } from '../constants/charLimits';\nimport { getStepIndex, STEP_KEYS } from '../constants/steps';\n\n/** Mention-capable text fields in Step 3 (both store firebase token text). */\nexport type MentionFieldKey = 'instructions' | 'guardrail';\ntype MentionInsertFn = (\n\tkind: 'tool' | 'subagent',\n\tid: string,\n\tlabel?: string,\n) => void;\n\n/** Toast shown after a tool / sub-agent is removed, offering an undo. */\nexport interface UndoToastState {\n\t/** Bumped per removal so the toast timer restarts. */\n\tid: number;\n\tmessage: string;\n}\n\nexport interface AgentBuilderContextShape {\n\t/** Controlled value relayed from props. */\n\tvalue: AgentValue;\n\t/** Patch one or more fields. */\n\tpatch: (partial: Partial<AgentValue>) => void;\n\t/** Patch a single field. */\n\tupdateField: <K extends keyof AgentValue>(key: K, val: AgentValue[K]) => void;\n\t/**\n\t * Remove a tool / sub-agent everywhere: drops it from the list AND strips ALL\n\t * its `{{tool:KEY}}` / `{{subagent:ID}}` tokens from BOTH the instructions and\n\t * the guardrails, remounts the editors, and raises an undo toast.\n\t */\n\tremoveReference: (kind: 'tool' | 'subagent', id: string) => void;\n\t/**\n\t * Append a tool / sub-agent id to its list (deduped), reading the LATEST value\n\t * via a ref. Use this instead of `patch({ tools: [...value.tools, id] })` from\n\t * any handler that may be captured with a stale `value` — notably the `@`\n\t * editor's mount-time `onSelect`, which would otherwise keep only the last pick.\n\t */\n\taddReference: (kind: 'tool' | 'subagent', id: string) => void;\n\t/** Remount signal for the mention editors after an external edit. */\n\tmentionResetKey: number;\n\t/**\n\t * Insert a tool / sub-agent mention chip at the last cursor position of\n\t * whichever mention field was focused most recently (Instructions or\n\t * Guardrails). `label` overrides the chip text (e.g. a just-created sub-agent\n\t * not yet in the available list).\n\t */\n\tinsertMention: (\n\t\tkind: 'tool' | 'subagent',\n\t\tid: string,\n\t\tlabel?: string,\n\t) => void;\n\t/** A mention field registers its editor-backed insert here (internal). */\n\tregisterMentionField: (\n\t\tfieldKey: MentionFieldKey,\n\t\tfn: MentionInsertFn | null,\n\t) => void;\n\t/** A mention field reports focus so inserts target it (internal). */\n\tnotifyMentionFocus: (fieldKey: MentionFieldKey) => void;\n\n\t// Undo (post-removal)\n\t/** Non-null while the undo toast should be visible. */\n\tundoToast: UndoToastState | null;\n\t/** Restore the last removed tool / sub-agent (list + stripped tokens). */\n\tundoRemoval: () => void;\n\t/** Dismiss the undo toast without restoring. */\n\tdismissUndo: () => void;\n\n\t// Navigation\n\tactiveStep: StepKey;\n\tactiveIndex: number;\n\tgoToStep: (step: StepKey) => void;\n\tgoNext: () => void;\n\tgoPrev: () => void;\n\tisFirstStep: boolean;\n\tisLastStep: boolean;\n\n\t// Validation\n\tvalidation: StepValidation;\n\tisActiveStepValid: boolean;\n\n\t// Reference data\n\tavailableTools: AgentTool[];\n\tavailableSubAgents: SubAgentRef[];\n\tavailableIntents: IntentOption[];\n\tavailableModels: ModelOption[];\n\t/** Host application context (e.g. MANIFEST) — drives tool-chip labelling. */\n\tapplicationType?: ApplicationType;\n\t/** Resolved per-field character limits (consumer overrides merged over defaults). */\n\tcharLimits: AgentCharLimits;\n\t/** When true, step-rail items are not clickable (Back / Next only). */\n\tdisableStepNavigation: boolean;\n\n\t// Sub-agent creation (Step 3 drawer)\n\t/** Persist a new sub-agent and resolve with its ref. Omit to hide the create flow. */\n\tonCreateSubAgent?: (draft: SubAgentDraft) => Promise<SubAgentRef>;\n\t/**\n\t * Step 3 registers its \"open create-sub-agent drawer\" action here so the `@`\n\t * picker's \"Create new\" row can trigger it. Pass `null` to unregister.\n\t */\n\tregisterSubAgentCreator: (fn: (() => void) | null) => void;\n\t/** Open the create-sub-agent drawer (no-op until Step 3 registers it). */\n\trequestCreateSubAgent: () => void;\n\t/** Fetch a sub-agent's editable data (Configure). Omit to hide Configure. */\n\tonFetchSubAgent?: (id: string) => Promise<SubAgentDraft>;\n\t/** Persist edits to an existing sub-agent. */\n\tonUpdateSubAgent?: (id: string, draft: SubAgentDraft) => Promise<SubAgentRef>;\n\t/** Optional \"Improve with AI\" for the drawer's instructions / guardrails. */\n\tonImproveSubAgent?: (\n\t\tkind: 'instructions' | 'guardrail',\n\t\ttext: string,\n\t) => Promise<string>;\n}\n\nconst AgentBuilderContext =\n\tReact.createContext<AgentBuilderContextShape | null>(null);\n\nexport const useAgentBuilderContext = (): AgentBuilderContextShape => {\n\tconst ctx = useContext(AgentBuilderContext);\n\tif (!ctx) {\n\t\tthrow new Error(\n\t\t\t'useAgentBuilderContext must be used within an AgentBuilderProvider',\n\t\t);\n\t}\n\treturn ctx;\n};\n\n/** Validity derived purely from the current value (no effects). */\nconst deriveValidation = (\n\tvalue: AgentValue,\n\tlimits: AgentCharLimits,\n): StepValidation => {\n\tconst triggerValid =\n\t\tvalue.trigger.mode === 'custom_intent'\n\t\t\t? (value.trigger.custom_intent ?? '').trim().length > 0\n\t\t\t: value.trigger.intents.length > 0;\n\n\treturn {\n\t\tabout:\n\t\t\tvalue.name.trim().length > 0 &&\n\t\t\tvalue.name.length <= limits.name &&\n\t\t\tvalue.description.length <= limits.description,\n\t\ttrigger: triggerValid,\n\t\t// At least one of Instructions / Guardrails must be filled.\n\t\tresponse:\n\t\t\tvalue.instructions.trim().length > 0 ||\n\t\t\t(value.guardrail ?? '').trim().length > 0,\n\t\t// Optional until specced further — never blocks go-live.\n\t\thandover: true,\n\t};\n};\n\ninterface ProviderProps {\n\tvalue: AgentValue;\n\tonChange: (patch: Partial<AgentValue>) => void;\n\tactiveStep?: StepKey;\n\tonStepChange?: (step: StepKey) => void;\n\tavailableTools: AgentTool[];\n\tavailableSubAgents: SubAgentRef[];\n\tavailableIntents: IntentOption[];\n\tavailableModels: ModelOption[];\n\tvalidation?: Partial<StepValidation>;\n\tapplicationType?: ApplicationType;\n\tcharLimits?: Partial<AgentCharLimits>;\n\tdisableStepNavigation?: boolean;\n\tonCreateSubAgent?: (draft: SubAgentDraft) => Promise<SubAgentRef>;\n\tonFetchSubAgent?: (id: string) => Promise<SubAgentDraft>;\n\tonUpdateSubAgent?: (id: string, draft: SubAgentDraft) => Promise<SubAgentRef>;\n\tonImproveSubAgent?: (\n\t\tkind: 'instructions' | 'guardrail',\n\t\ttext: string,\n\t) => Promise<string>;\n\tchildren: React.ReactNode;\n}\n\nexport const AgentBuilderProvider: React.FC<ProviderProps> = ({\n\tvalue,\n\tonChange,\n\tactiveStep: controlledStep,\n\tonStepChange,\n\tavailableTools,\n\tavailableSubAgents,\n\tavailableIntents,\n\tavailableModels,\n\tvalidation: validationOverride,\n\tapplicationType,\n\tcharLimits: charLimitsOverride,\n\tdisableStepNavigation = true,\n\tonCreateSubAgent,\n\tonFetchSubAgent,\n\tonUpdateSubAgent,\n\tonImproveSubAgent,\n\tchildren,\n}) => {\n\tconst [internalStep, setInternalStep] = useState<StepKey>('about');\n\tconst activeStep = controlledStep ?? internalStep;\n\tconst activeIndex = getStepIndex(activeStep);\n\n\t// Latest value, so closure-captured handlers (e.g. the `@` editor's mount-time\n\t// mention onSelect) append against the current lists, not a stale snapshot.\n\tconst valueRef = useRef(value);\n\tvalueRef.current = value;\n\n\t// Bumped when a mention field is edited from OUTSIDE its editor (removing a\n\t// tool from the side list, undo), forcing the mention editors to remount.\n\tconst [mentionResetKey, setMentionResetKey] = useState(0);\n\n\t// Each mention field registers an editor-backed insert fn + reports focus, so\n\t// side-panel adds drop a chip into the last-focused field at its cursor.\n\tconst mentionInsertersRef = useRef<\n\t\tPartial<Record<MentionFieldKey, MentionInsertFn>>\n\t>({});\n\tconst lastFocusedFieldRef = useRef<MentionFieldKey>('instructions');\n\tconst registerMentionField = useCallback(\n\t\t(fieldKey: MentionFieldKey, fn: MentionInsertFn | null) => {\n\t\t\tif (fn) {\n\t\t\t\tmentionInsertersRef.current[fieldKey] = fn;\n\t\t\t} else {\n\t\t\t\tdelete mentionInsertersRef.current[fieldKey];\n\t\t\t}\n\t\t},\n\t\t[],\n\t);\n\tconst notifyMentionFocus = useCallback((fieldKey: MentionFieldKey) => {\n\t\tlastFocusedFieldRef.current = fieldKey;\n\t}, []);\n\n\t// Step 3 registers its drawer opener here; the `@` picker's \"Create new\" calls it.\n\tconst subAgentCreatorRef = useRef<(() => void) | null>(null);\n\tconst registerSubAgentCreator = useCallback((fn: (() => void) | null) => {\n\t\tsubAgentCreatorRef.current = fn;\n\t}, []);\n\tconst requestCreateSubAgent = useCallback(() => {\n\t\tsubAgentCreatorRef.current?.();\n\t}, []);\n\tconst insertMention = useCallback<MentionInsertFn>((kind, id, label) => {\n\t\tconst inserters = mentionInsertersRef.current;\n\t\tconst target =\n\t\t\tinserters[lastFocusedFieldRef.current] ?? inserters.instructions;\n\t\ttarget?.(kind, id, label);\n\t}, []);\n\n\t// Undo state for the most recent removal.\n\tconst [undoToast, setUndoToast] = useState<UndoToastState | null>(null);\n\tconst undoSnapshotRef = useRef<Partial<AgentValue> | null>(null);\n\tconst undoIdRef = useRef(0);\n\n\tconst goToStep = useCallback(\n\t\t(step: StepKey) => {\n\t\t\tif (controlledStep === undefined) {\n\t\t\t\tsetInternalStep(step);\n\t\t\t}\n\t\t\tonStepChange?.(step);\n\t\t},\n\t\t[controlledStep, onStepChange],\n\t);\n\n\tconst goNext = useCallback(() => {\n\t\tconst next = STEP_KEYS[Math.min(activeIndex + 1, STEP_KEYS.length - 1)];\n\t\tgoToStep(next);\n\t}, [activeIndex, goToStep]);\n\n\tconst goPrev = useCallback(() => {\n\t\tconst prev = STEP_KEYS[Math.max(activeIndex - 1, 0)];\n\t\tgoToStep(prev);\n\t}, [activeIndex, goToStep]);\n\n\tconst patch = useCallback(\n\t\t(partial: Partial<AgentValue>) => onChange(partial),\n\t\t[onChange],\n\t);\n\n\tconst updateField = useCallback(\n\t\t<K extends keyof AgentValue>(key: K, val: AgentValue[K]) =>\n\t\t\tonChange({ [key]: val } as Partial<AgentValue>),\n\t\t[onChange],\n\t);\n\n\tconst addReference = useCallback(\n\t\t(kind: 'tool' | 'subagent', id: string) => {\n\t\t\tconst v = valueRef.current;\n\t\t\tif (kind === 'tool') {\n\t\t\t\tif (!v.tools.includes(id)) {\n\t\t\t\t\tonChange({ tools: [...v.tools, id] });\n\t\t\t\t}\n\t\t\t} else if (!v.subagents.includes(id)) {\n\t\t\t\tonChange({ subagents: [...v.subagents, id] });\n\t\t\t}\n\t\t},\n\t\t[onChange],\n\t);\n\n\tconst removeReference = useCallback(\n\t\t(kind: 'tool' | 'subagent', id: string) => {\n\t\t\t// Tokens store the id for both kinds (a tool's id is its tool_id).\n\t\t\tconst token = kind === 'tool' ? `{{tool:${id}}}` : `{{subagent:${id}}}`;\n\t\t\tconst strip = (text: string) => text.split(token).join('');\n\n\t\t\t// Snapshot the four fields a removal touches, for undo.\n\t\t\tundoSnapshotRef.current = {\n\t\t\t\ttools: value.tools,\n\t\t\t\tsubagents: value.subagents,\n\t\t\t\tinstructions: value.instructions,\n\t\t\t\tguardrail: value.guardrail,\n\t\t\t};\n\n\t\t\tconst next: Partial<AgentValue> = {\n\t\t\t\tinstructions: strip(value.instructions),\n\t\t\t\tguardrail: strip(value.guardrail ?? ''),\n\t\t\t\t...(kind === 'tool'\n\t\t\t\t\t? { tools: value.tools.filter((t) => t !== id) }\n\t\t\t\t\t: { subagents: value.subagents.filter((s) => s !== id) }),\n\t\t\t};\n\t\t\tonChange(next);\n\t\t\tsetMentionResetKey((k) => k + 1);\n\n\t\t\tconst label =\n\t\t\t\tkind === 'tool'\n\t\t\t\t\t? availableTools.find((t) => t.tool_id === id)?.display_name ?? 'Tool'\n\t\t\t\t\t: availableSubAgents.find((s) => s.id === id)?.name ?? 'Sub-agent';\n\t\t\tundoIdRef.current += 1;\n\t\t\tsetUndoToast({\n\t\t\t\tid: undoIdRef.current,\n\t\t\t\tmessage: `${kind === 'tool' ? 'Tool' : 'Sub-agent'} \"${label}\" removed`,\n\t\t\t});\n\t\t},\n\t\t[availableTools, availableSubAgents, value, onChange],\n\t);\n\n\tconst undoRemoval = useCallback(() => {\n\t\tif (undoSnapshotRef.current) {\n\t\t\tonChange(undoSnapshotRef.current);\n\t\t\tundoSnapshotRef.current = null;\n\t\t\tsetMentionResetKey((k) => k + 1);\n\t\t}\n\t\tsetUndoToast(null);\n\t}, [onChange]);\n\n\tconst dismissUndo = useCallback(() => setUndoToast(null), []);\n\n\t// Consumer overrides merged over the built-in defaults (name 60, rest 1000).\n\tconst charLimits = useMemo<AgentCharLimits>(\n\t\t() => ({ ...AGENT_CHAR_LIMITS, ...charLimitsOverride }),\n\t\t[charLimitsOverride],\n\t);\n\n\tconst validation: StepValidation = useMemo(\n\t\t() => ({ ...deriveValidation(value, charLimits), ...validationOverride }),\n\t\t[value, charLimits, validationOverride],\n\t);\n\n\tconst ctx = useMemo<AgentBuilderContextShape>(\n\t\t() => ({\n\t\t\tvalue,\n\t\t\tpatch,\n\t\t\tupdateField,\n\t\t\taddReference,\n\t\t\tremoveReference,\n\t\t\tmentionResetKey,\n\t\t\tinsertMention,\n\t\t\tregisterMentionField,\n\t\t\tnotifyMentionFocus,\n\t\t\tundoToast,\n\t\t\tundoRemoval,\n\t\t\tdismissUndo,\n\t\t\tactiveStep,\n\t\t\tactiveIndex,\n\t\t\tgoToStep,\n\t\t\tgoNext,\n\t\t\tgoPrev,\n\t\t\tisFirstStep: activeIndex === 0,\n\t\t\tisLastStep: activeIndex === STEP_KEYS.length - 1,\n\t\t\tvalidation,\n\t\t\tisActiveStepValid: validation[activeStep],\n\t\t\tavailableTools,\n\t\t\tavailableSubAgents,\n\t\t\tavailableIntents,\n\t\t\tavailableModels,\n\t\t\tapplicationType,\n\t\t\tcharLimits,\n\t\t\tdisableStepNavigation,\n\t\t\tonCreateSubAgent,\n\t\t\tregisterSubAgentCreator,\n\t\t\trequestCreateSubAgent,\n\t\t\tonFetchSubAgent,\n\t\t\tonUpdateSubAgent,\n\t\t\tonImproveSubAgent,\n\t\t}),\n\t\t[\n\t\t\tvalue,\n\t\t\tpatch,\n\t\t\tupdateField,\n\t\t\taddReference,\n\t\t\tremoveReference,\n\t\t\tmentionResetKey,\n\t\t\tinsertMention,\n\t\t\tregisterMentionField,\n\t\t\tnotifyMentionFocus,\n\t\t\tundoToast,\n\t\t\tundoRemoval,\n\t\t\tdismissUndo,\n\t\t\tactiveStep,\n\t\t\tactiveIndex,\n\t\t\tgoToStep,\n\t\t\tgoNext,\n\t\t\tgoPrev,\n\t\t\tvalidation,\n\t\t\tavailableTools,\n\t\t\tavailableSubAgents,\n\t\t\tavailableIntents,\n\t\t\tavailableModels,\n\t\t\tapplicationType,\n\t\t\tcharLimits,\n\t\t\tdisableStepNavigation,\n\t\t\tonCreateSubAgent,\n\t\t\tregisterSubAgentCreator,\n\t\t\trequestCreateSubAgent,\n\t\t\tonFetchSubAgent,\n\t\t\tonUpdateSubAgent,\n\t\t\tonImproveSubAgent,\n\t\t],\n\t);\n\n\treturn (\n\t\t<AgentBuilderContext.Provider value={ctx}>\n\t\t\t{children}\n\t\t</AgentBuilderContext.Provider>\n\t);\n};\n"],"names":["AgentBuilderContext","React","useAgentBuilderContext","ctx","useContext","deriveValidation","value","limits","triggerValid","AgentBuilderProvider","onChange","controlledStep","onStepChange","availableTools","availableSubAgents","availableIntents","availableModels","validationOverride","applicationType","charLimitsOverride","disableStepNavigation","onCreateSubAgent","onFetchSubAgent","onUpdateSubAgent","onImproveSubAgent","children","internalStep","setInternalStep","useState","activeStep","activeIndex","getStepIndex","valueRef","useRef","mentionResetKey","setMentionResetKey","mentionInsertersRef","lastFocusedFieldRef","registerMentionField","useCallback","fieldKey","fn","notifyMentionFocus","subAgentCreatorRef","registerSubAgentCreator","requestCreateSubAgent","insertMention","kind","id","label","inserters","undoToast","setUndoToast","undoSnapshotRef","undoIdRef","goToStep","step","goNext","next","STEP_KEYS","goPrev","prev","patch","partial","updateField","key","val","addReference","v","removeReference","token","strip","text","t","s","k","undoRemoval","dismissUndo","charLimits","useMemo","AGENT_CHAR_LIMITS","validation"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c={manifest:"Manifest",shopify:"Shopify",integration:"Integration"},u=(t,n="Manifest")=>t?c[t]??t:n,b=t=>{const n=t?String(t):"";return n==="BIK"?"BIK":n==="BSP"?"BSP":"Manifest"},g=(t,n,e="Manifest")=>[...t.map(o=>({id:o.tool_id,label:`${u(o.source,e)} : ${o.display_name}`,meta:{kind:"tool",functionKey:o.function_key,plainLabel:o.display_name,source:o.source}})),...n.map(o=>({id:o.id,label:`sub-agent: ${o.name}`,meta:{kind:"subagent",plainLabel:o.name}}))],a=t=>t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),s=t=>a(t).replace(/"/g,"&quot;"),d=(t,n,e)=>`<span data-type="mentionAgent" class="bik-mention bik-mention--agent" data-id="${s(t)}" data-label="${s(n)}" data-kind="${s(e)}">${a(n)}</span>`,f=(t,n,e)=>d(t,n,e),k=t=>{const n=new Map;for(const e of t){const o=e.meta;o?.kind==="tool"&&o.functionKey?n.set(`tool:${o.functionKey}`,e):o?.kind==="subagent"&&n.set(`subagent:${String(e.id)}`,e)}return n},l=/\{\{(tool:[^}]+|subagent:[^}]+)\}\}/g,y=(t,n)=>{let e="",o=0;l.lastIndex=0;let i;for(;(i=l.exec(t))!==null;){e+=a(t.slice(o,i.index));const r=n.get(i[1]);if(r){const m=r.meta.kind;e+=d(String(r.id),r.label,m)}else e+=a(i[0]);o=l.lastIndex}return e+=a(t.slice(o)),e.replace(/\n/g,"<br>")},S=(t,n=[])=>{if(!t)return"";const e=k(n);return t.split(/\n{2,}/).map(o=>`<p>${y(o,e)}</p>`).join("")},T=(t,n)=>{const e=n[t];return e?`{{tool:${e}}}`:`{{subagent:${t}}}`},p=(t,n)=>{switch(t.type){case"text":return t.text??"";case"mentionAgent":case"mentionTeam":{const e=t.attrs?.id;return e==null?"":T(String(e),n)}case"variable":return`{{${String(t.attrs?.variableName??"")}}}`;case"hardBreak":return`
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c={manifest:"Manifest",shopify:"Shopify",integration:"Integration"},u=(t,n="Manifest")=>t?c[t]??t:n,b=t=>{const n=t?String(t):"";return n==="BIK"?"BIK":n==="BSP"?"BSP":"Manifest"},g=(t,n,e="Manifest")=>[...t.map(o=>({id:o.tool_id,label:`${u(o.source,e)} : ${o.display_name}`,meta:{kind:"tool",plainLabel:o.display_name,source:o.source}})),...n.map(o=>({id:o.id,label:`sub-agent: ${o.name}`,meta:{kind:"subagent",plainLabel:o.name}}))],a=t=>t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),r=t=>a(t).replace(/"/g,"&quot;"),d=(t,n,e)=>`<span data-type="mentionAgent" class="bik-mention bik-mention--agent" data-id="${r(t)}" data-label="${r(n)}" data-kind="${r(e)}">${a(n)}</span>`,S=(t,n,e)=>d(t,n,e),f=t=>{const n=new Map;for(const e of t){const o=e.meta;o?.kind==="tool"?n.set(`tool:${String(e.id)}`,e):o?.kind==="subagent"&&n.set(`subagent:${String(e.id)}`,e)}return n},l=/\{\{(tool:[^}]+|subagent:[^}]+)\}\}/g,k=(t,n)=>{let e="",o=0;l.lastIndex=0;let i;for(;(i=l.exec(t))!==null;){e+=a(t.slice(o,i.index));const s=n.get(i[1]);if(s){const m=s.meta.kind;e+=d(String(s.id),s.label,m)}else e+=a(i[0]);o=l.lastIndex}return e+=a(t.slice(o)),e.replace(/\n/g,"<br>")},T=(t,n=[])=>{if(!t)return"";const e=f(n);return t.split(/\n{2,}/).map(o=>`<p>${k(o,e)}</p>`).join("")},L=(t,n,e)=>(n??(e.has(t)?"tool":"subagent"))==="tool"?`{{tool:${t}}}`:`{{subagent:${t}}}`,p=(t,n)=>{switch(t.type){case"text":return t.text??"";case"mentionAgent":case"mentionTeam":{const e=t.attrs?.id;if(e==null)return"";const o=t.attrs?.kind;return L(String(e),o==null?null:String(o),n)}case"variable":return`{{${String(t.attrs?.variableName??"")}}}`;case"hardBreak":return`
2
2
  `;default:{const e=(t.content??[]).map(i=>p(i,n)).join("");return["paragraph","heading","listItem","blockquote"].includes(t.type)?`${e}
3
- `:e}}},L=(t,n)=>{if(!t)return"";const e=n.reduce((o,i)=>(o[i.tool_id]=i.function_key,o),{});return p(t,e).replace(/\n+$/,"")};exports.TOOL_SOURCE_LABELS=c;exports.appTypeLabel=b;exports.buildAgentMentionItems=g;exports.buildMentionHtml=f;exports.editorDocToInstructions=L;exports.instructionsToEditorHtml=S;exports.toolSourceLabel=u;
3
+ `:e}}},$=(t,n)=>{if(!t)return"";const e=new Set(n.map(o=>o.tool_id));return p(t,e).replace(/\n+$/,"")};exports.TOOL_SOURCE_LABELS=c;exports.appTypeLabel=b;exports.buildAgentMentionItems=g;exports.buildMentionHtml=S;exports.editorDocToInstructions=$;exports.instructionsToEditorHtml=T;exports.toolSourceLabel=u;
4
4
  //# sourceMappingURL=mentionSerialization.js.map