@bikdotai/bik-component-library 0.0.826 → 0.0.828

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 (361) 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/QueryBuilder/components/Connectors/Components/EmojiPicker.js.map +1 -1
  9. package/dist/cjs/components/TypographyStyle.js +41 -20
  10. package/dist/cjs/components/TypographyStyle.js.map +1 -1
  11. package/dist/cjs/components/WhatsAppTextEditor/AIRephraseButton.js +16 -5
  12. package/dist/cjs/components/WhatsAppTextEditor/AIRephraseButton.js.map +1 -1
  13. package/dist/cjs/components/agent-builder/components/CreateSubAgentPanel.js +17 -1
  14. package/dist/cjs/components/agent-builder/components/CreateSubAgentPanel.js.map +1 -1
  15. package/dist/cjs/components/analytics-chips-and-dropdowns/chart/HorizontalBarGraph/HorizontalGraph.js.map +1 -1
  16. package/dist/cjs/components/analytics-chips-and-dropdowns/chart/VerticalBarGraph/VerticalGraph.js.map +1 -1
  17. package/dist/cjs/components/avatar/Avatar.js +1 -1
  18. package/dist/cjs/components/avatar/Avatar.js.map +1 -1
  19. package/dist/cjs/components/avatar/Avatar.styled.js +4 -4
  20. package/dist/cjs/components/avatar/Avatar.styled.js.map +1 -1
  21. package/dist/cjs/components/avatar/AvatarHelper.js +1 -1
  22. package/dist/cjs/components/avatar/AvatarHelper.js.map +1 -1
  23. package/dist/cjs/components/bik-layout/BikSidebar.js.map +1 -1
  24. package/dist/cjs/components/bik-layout/BikSidebarV2/BikSidebarV2.js +2 -0
  25. package/dist/cjs/components/bik-layout/BikSidebarV2/BikSidebarV2.js.map +1 -0
  26. package/dist/cjs/components/bik-layout/BikSidebarV2/SidebarV2Popup.js +2 -0
  27. package/dist/cjs/components/bik-layout/BikSidebarV2/SidebarV2Popup.js.map +1 -0
  28. package/dist/cjs/components/bik-layout/BikSidebarV2/SidebarV2Styles.js +294 -0
  29. package/dist/cjs/components/bik-layout/BikSidebarV2/SidebarV2Styles.js.map +1 -0
  30. package/dist/cjs/components/bik-layout/BikSidebarV2/SimpleSidebarV2.js +2 -0
  31. package/dist/cjs/components/bik-layout/BikSidebarV2/SimpleSidebarV2.js.map +1 -0
  32. package/dist/cjs/components/bik-layout/CommonStyles.js +1 -1
  33. package/dist/cjs/components/bik-layout/CommonStyles.js.map +1 -1
  34. package/dist/cjs/components/button/Button.js +1 -1
  35. package/dist/cjs/components/button/Button.js.map +1 -1
  36. package/dist/cjs/components/button/Button.styled.js +13 -13
  37. package/dist/cjs/components/button/Button.styled.js.map +1 -1
  38. package/dist/cjs/components/button/themes.js +6 -6
  39. package/dist/cjs/components/button/themes.js.map +1 -1
  40. package/dist/cjs/components/checkBox/CheckBox.js +1 -1
  41. package/dist/cjs/components/checkBox/CheckBox.js.map +1 -1
  42. package/dist/cjs/components/checkBox/CheckBox.styled.js +21 -20
  43. package/dist/cjs/components/checkBox/CheckBox.styled.js.map +1 -1
  44. package/dist/cjs/components/country-code-picker/CountryCodePicker.js.map +1 -1
  45. package/dist/cjs/components/country-code-picker/CountryPicker.js.map +1 -1
  46. package/dist/cjs/components/datePicker/DatePicker.styled.js +37 -4
  47. package/dist/cjs/components/datePicker/DatePicker.styled.js.map +1 -1
  48. package/dist/cjs/components/dropdown/Dropdown.js +1 -1
  49. package/dist/cjs/components/dropdown/Dropdown.js.map +1 -1
  50. package/dist/cjs/components/dropdown/DropdownPopover/index.js +1 -1
  51. package/dist/cjs/components/dropdown/DropdownPopover/index.js.map +1 -1
  52. package/dist/cjs/components/dropdown/OpenedDropdown/components/OpennedDropdown.js +1 -1
  53. package/dist/cjs/components/dropdown/OpenedDropdown/components/OpennedDropdown.js.map +1 -1
  54. package/dist/cjs/components/dropdown/OpenedDropdown/components/OpennedDropdown.styled.js +9 -8
  55. package/dist/cjs/components/dropdown/OpenedDropdown/components/OpennedDropdown.styled.js.map +1 -1
  56. package/dist/cjs/components/dropdown/OpenedDropdown/components/description/Description.js.map +1 -1
  57. package/dist/cjs/components/dropdown/OpenedDropdown/components/description/Description.styled.js.map +1 -1
  58. package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/FreeFormMenu.js +1 -1
  59. package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/FreeFormMenu.js.map +1 -1
  60. package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/MenuItem.js +9 -9
  61. package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/MenuItem.js.map +1 -1
  62. package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/MenuList.js +1 -1
  63. package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/MenuList.js.map +1 -1
  64. package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/MenuList.styled.js +6 -2
  65. package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/MenuList.styled.js.map +1 -1
  66. package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/SelectAllMenu.js +1 -1
  67. package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/SelectAllMenu.js.map +1 -1
  68. package/dist/cjs/components/dropdown/OpenedDropdown/components/searchbox/SearchBox.js +1 -1
  69. package/dist/cjs/components/dropdown/OpenedDropdown/components/searchbox/SearchBox.js.map +1 -1
  70. package/dist/cjs/components/dropdown/OpenedDropdown/components/searchbox/SearchZeroState.js +1 -1
  71. package/dist/cjs/components/dropdown/OpenedDropdown/components/searchbox/SearchZeroState.js.map +1 -1
  72. package/dist/cjs/components/dropdown-button/DropdownButton.js +1 -1
  73. package/dist/cjs/components/dropdown-button/DropdownButton.js.map +1 -1
  74. package/dist/cjs/components/dropdown-button/DropdownButton.style.js +20 -6
  75. package/dist/cjs/components/dropdown-button/DropdownButton.style.js.map +1 -1
  76. package/dist/cjs/components/dual-icon-button/DualIconButton.js +2 -0
  77. package/dist/cjs/components/dual-icon-button/DualIconButton.js.map +1 -0
  78. package/dist/cjs/components/dual-icon-button/DualIconButton.styled.js +33 -0
  79. package/dist/cjs/components/dual-icon-button/DualIconButton.styled.js.map +1 -0
  80. package/dist/cjs/components/fab-menu/FABMenu.js.map +1 -1
  81. package/dist/cjs/components/icon-button/IconButton.js +1 -1
  82. package/dist/cjs/components/icon-button/IconButton.js.map +1 -1
  83. package/dist/cjs/components/icon-button/IconButton.styled.js +18 -12
  84. package/dist/cjs/components/icon-button/IconButton.styled.js.map +1 -1
  85. package/dist/cjs/components/icon-button/theme.js +1 -1
  86. package/dist/cjs/components/icon-button/theme.js.map +1 -1
  87. package/dist/cjs/components/input/Input.js +1 -1
  88. package/dist/cjs/components/input/Input.js.map +1 -1
  89. package/dist/cjs/components/input/Input.styled.js +27 -16
  90. package/dist/cjs/components/input/Input.styled.js.map +1 -1
  91. package/dist/cjs/components/list-item/ListItem.js +1 -1
  92. package/dist/cjs/components/list-item/ListItem.js.map +1 -1
  93. package/dist/cjs/components/list-item/ListItem.styled.js +6 -6
  94. package/dist/cjs/components/list-item/ListItem.styled.js.map +1 -1
  95. package/dist/cjs/components/list-item/themes.js +40 -21
  96. package/dist/cjs/components/list-item/themes.js.map +1 -1
  97. package/dist/cjs/components/multi-level-dropdown/GroupedMenuList.js +1 -1
  98. package/dist/cjs/components/multi-level-dropdown/GroupedMenuList.js.map +1 -1
  99. package/dist/cjs/components/multi-level-dropdown/MenuItem.js +1 -1
  100. package/dist/cjs/components/multi-level-dropdown/MenuItem.js.map +1 -1
  101. package/dist/cjs/components/multi-level-dropdown/MenuList.js +1 -1
  102. package/dist/cjs/components/multi-level-dropdown/MenuList.js.map +1 -1
  103. package/dist/cjs/components/multi-level-dropdown/MultiLevelDropdown.js +1 -1
  104. package/dist/cjs/components/multi-level-dropdown/MultiLevelDropdown.js.map +1 -1
  105. package/dist/cjs/components/multi-level-dropdown/MultiLevelDropdown.styled.js +32 -29
  106. package/dist/cjs/components/multi-level-dropdown/MultiLevelDropdown.styled.js.map +1 -1
  107. package/dist/cjs/components/switch/Switch.js.map +1 -1
  108. package/dist/cjs/components/tag/Tag.js +1 -1
  109. package/dist/cjs/components/tag/Tag.js.map +1 -1
  110. package/dist/cjs/components/tag/Tag.styled.js +4 -4
  111. package/dist/cjs/components/tag/Tag.styled.js.map +1 -1
  112. package/dist/cjs/components/tag/model.js.map +1 -1
  113. package/dist/cjs/components/whats-new/WhatsNew.js +1 -1
  114. package/dist/cjs/components/whats-new/WhatsNew.js.map +1 -1
  115. package/dist/cjs/components/whats-new/WhatsNew.styles.js +9 -8
  116. package/dist/cjs/components/whats-new/WhatsNew.styles.js.map +1 -1
  117. package/dist/cjs/components/whats-new/WhatsNewButton.js +2 -2
  118. package/dist/cjs/components/whats-new/WhatsNewButton.js.map +1 -1
  119. package/dist/cjs/components/whats-new/WhatsNewPanel.js.map +1 -1
  120. package/dist/cjs/constants/Theme.js +1 -1
  121. package/dist/cjs/constants/Theme.js.map +1 -1
  122. package/dist/cjs/editor/BikEditor.js +1 -1
  123. package/dist/cjs/editor/BikEditor.js.map +1 -1
  124. package/dist/cjs/editor/BikEditor.styles.js +18 -6
  125. package/dist/cjs/editor/BikEditor.styles.js.map +1 -1
  126. package/dist/cjs/editor/BikEditor.types.js.map +1 -1
  127. package/dist/cjs/editor/extensions/buildExtensions.js +2 -2
  128. package/dist/cjs/editor/extensions/buildExtensions.js.map +1 -1
  129. package/dist/cjs/editor/extensions/characterLimit/CharacterLimitExtension.js +8 -0
  130. package/dist/cjs/editor/extensions/characterLimit/CharacterLimitExtension.js.map +1 -0
  131. package/dist/cjs/editor/extensions/editorDropdown.styles.js +10 -15
  132. package/dist/cjs/editor/extensions/editorDropdown.styles.js.map +1 -1
  133. package/dist/cjs/icons/Arrows/Chevron/ChevronUp.js +1 -1
  134. package/dist/cjs/icons/Arrows/Chevron/ChevronUp.js.map +1 -1
  135. package/dist/cjs/icons/Media/Visual/{Frame26086263.js → FormkitNeutral.js} +1 -1
  136. package/dist/cjs/icons/Media/Visual/FormkitNeutral.js.map +1 -0
  137. package/dist/cjs/icons/Media/Visual/{IconTrailing.js → FormkitSad.js} +1 -1
  138. package/dist/cjs/icons/Media/Visual/FormkitSad.js.map +1 -0
  139. package/dist/cjs/icons/index.js +1 -1
  140. package/dist/cjs/index.js +1 -1
  141. package/dist/esm/components/BikGiftedChat/Bubble/Bubble.js +61 -59
  142. package/dist/esm/components/BikGiftedChat/Bubble/Bubble.js.map +1 -1
  143. package/dist/esm/components/BikGiftedChat/GiftedChat/Day.d.ts +6 -0
  144. package/dist/esm/components/BikGiftedChat/GiftedChat/Day.js +127 -89
  145. package/dist/esm/components/BikGiftedChat/GiftedChat/Day.js.map +1 -1
  146. package/dist/esm/components/BikGiftedChat/GiftedChat/GiftedChat.js +232 -129
  147. package/dist/esm/components/BikGiftedChat/GiftedChat/GiftedChat.js.map +1 -1
  148. package/dist/esm/components/BikGiftedChat/GiftedChat/types.d.ts +6 -2
  149. package/dist/esm/components/BikGiftedChat/GiftedChat/types.js.map +1 -1
  150. package/dist/esm/components/QueryBuilder/components/Connectors/Components/EmojiPicker.js.map +1 -1
  151. package/dist/esm/components/QueryBuilder/helpers/PropertyCustomProcessor.d.ts +1 -1
  152. package/dist/esm/components/TypographyStyle.d.ts +8 -0
  153. package/dist/esm/components/TypographyStyle.js +63 -40
  154. package/dist/esm/components/TypographyStyle.js.map +1 -1
  155. package/dist/esm/components/WhatsAppTextEditor/AIRephraseButton.js +54 -43
  156. package/dist/esm/components/WhatsAppTextEditor/AIRephraseButton.js.map +1 -1
  157. package/dist/esm/components/agent-builder/components/CreateSubAgentPanel.js +167 -120
  158. package/dist/esm/components/agent-builder/components/CreateSubAgentPanel.js.map +1 -1
  159. package/dist/esm/components/analytics-chips-and-dropdowns/chart/HorizontalBarGraph/HorizontalGraph.d.ts +1 -1
  160. package/dist/esm/components/analytics-chips-and-dropdowns/chart/HorizontalBarGraph/HorizontalGraph.js.map +1 -1
  161. package/dist/esm/components/analytics-chips-and-dropdowns/chart/HorizontalBarGraph/HorizontalGraph.type.d.ts +57 -0
  162. package/dist/esm/components/analytics-chips-and-dropdowns/chart/LazyCharts.d.ts +1 -1
  163. package/dist/esm/components/analytics-chips-and-dropdowns/chart/VerticalBarGraph/VerticalGraph.d.ts +1 -1
  164. package/dist/esm/components/analytics-chips-and-dropdowns/chart/VerticalBarGraph/VerticalGraph.js.map +1 -1
  165. package/dist/esm/components/analytics-chips-and-dropdowns/chart/VerticalBarGraph/VerticalGraph.type.d.ts +46 -0
  166. package/dist/esm/components/avatar/Avatar.d.ts +2 -1
  167. package/dist/esm/components/avatar/Avatar.js +54 -76
  168. package/dist/esm/components/avatar/Avatar.js.map +1 -1
  169. package/dist/esm/components/avatar/Avatar.styled.js +8 -8
  170. package/dist/esm/components/avatar/Avatar.styled.js.map +1 -1
  171. package/dist/esm/components/avatar/AvatarHelper.d.ts +5 -4
  172. package/dist/esm/components/avatar/AvatarHelper.js +4 -4
  173. package/dist/esm/components/avatar/AvatarHelper.js.map +1 -1
  174. package/dist/esm/components/bik-layout/BikSidebar.js.map +1 -1
  175. package/dist/esm/components/bik-layout/BikSidebarV2/BikSidebarV2.d.ts +33 -0
  176. package/dist/esm/components/bik-layout/BikSidebarV2/BikSidebarV2.js +272 -0
  177. package/dist/esm/components/bik-layout/BikSidebarV2/BikSidebarV2.js.map +1 -0
  178. package/dist/esm/components/bik-layout/BikSidebarV2/SidebarV2.model.d.ts +27 -0
  179. package/dist/esm/components/bik-layout/BikSidebarV2/SidebarV2Popup.d.ts +12 -0
  180. package/dist/esm/components/bik-layout/BikSidebarV2/SidebarV2Popup.js +53 -0
  181. package/dist/esm/components/bik-layout/BikSidebarV2/SidebarV2Popup.js.map +1 -0
  182. package/dist/esm/components/bik-layout/BikSidebarV2/SidebarV2Styles.d.ts +44 -0
  183. package/dist/esm/components/bik-layout/BikSidebarV2/SidebarV2Styles.js +310 -0
  184. package/dist/esm/components/bik-layout/BikSidebarV2/SidebarV2Styles.js.map +1 -0
  185. package/dist/esm/components/bik-layout/BikSidebarV2/SimpleSidebarV2.d.ts +2 -0
  186. package/dist/esm/components/bik-layout/BikSidebarV2/SimpleSidebarV2.js +107 -0
  187. package/dist/esm/components/bik-layout/BikSidebarV2/SimpleSidebarV2.js.map +1 -0
  188. package/dist/esm/components/bik-layout/CommonStyles.js +1 -1
  189. package/dist/esm/components/bik-layout/CommonStyles.js.map +1 -1
  190. package/dist/esm/components/bik-layout/index.d.ts +2 -0
  191. package/dist/esm/components/button/Button.js +31 -31
  192. package/dist/esm/components/button/Button.js.map +1 -1
  193. package/dist/esm/components/button/Button.styled.d.ts +1 -1
  194. package/dist/esm/components/button/Button.styled.js +20 -20
  195. package/dist/esm/components/button/Button.styled.js.map +1 -1
  196. package/dist/esm/components/button/model.d.ts +3 -3
  197. package/dist/esm/components/button/themes.d.ts +2 -2
  198. package/dist/esm/components/button/themes.js +31 -17
  199. package/dist/esm/components/button/themes.js.map +1 -1
  200. package/dist/esm/components/checkBox/CheckBox.d.ts +2 -1
  201. package/dist/esm/components/checkBox/CheckBox.js +124 -87
  202. package/dist/esm/components/checkBox/CheckBox.js.map +1 -1
  203. package/dist/esm/components/checkBox/CheckBox.styled.d.ts +1 -1
  204. package/dist/esm/components/checkBox/CheckBox.styled.js +10 -9
  205. package/dist/esm/components/checkBox/CheckBox.styled.js.map +1 -1
  206. package/dist/esm/components/country-code-picker/CountryCodePicker.d.ts +1 -1
  207. package/dist/esm/components/country-code-picker/CountryCodePicker.js.map +1 -1
  208. package/dist/esm/components/country-code-picker/CountryPicker.d.ts +1 -1
  209. package/dist/esm/components/country-code-picker/CountryPicker.js.map +1 -1
  210. package/dist/esm/components/datePicker/DatePicker.styled.js +39 -6
  211. package/dist/esm/components/datePicker/DatePicker.styled.js.map +1 -1
  212. package/dist/esm/components/dropdown/Dropdown.d.ts +2 -0
  213. package/dist/esm/components/dropdown/Dropdown.js +80 -77
  214. package/dist/esm/components/dropdown/Dropdown.js.map +1 -1
  215. package/dist/esm/components/dropdown/DropdownPopover/index.js +69 -56
  216. package/dist/esm/components/dropdown/DropdownPopover/index.js.map +1 -1
  217. package/dist/esm/components/dropdown/OpenedDropdown/components/OpennedDropdown.js +183 -174
  218. package/dist/esm/components/dropdown/OpenedDropdown/components/OpennedDropdown.js.map +1 -1
  219. package/dist/esm/components/dropdown/OpenedDropdown/components/OpennedDropdown.styled.d.ts +1 -1
  220. package/dist/esm/components/dropdown/OpenedDropdown/components/OpennedDropdown.styled.js +5 -4
  221. package/dist/esm/components/dropdown/OpenedDropdown/components/OpennedDropdown.styled.js.map +1 -1
  222. package/dist/esm/components/dropdown/OpenedDropdown/components/description/Description.d.ts +1 -1
  223. package/dist/esm/components/dropdown/OpenedDropdown/components/description/Description.js.map +1 -1
  224. package/dist/esm/components/dropdown/OpenedDropdown/components/description/Description.styled.d.ts +1 -1
  225. package/dist/esm/components/dropdown/OpenedDropdown/components/description/Description.styled.js.map +1 -1
  226. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/FreeFormMenu.d.ts +3 -1
  227. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/FreeFormMenu.js +29 -20
  228. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/FreeFormMenu.js.map +1 -1
  229. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuItem.d.ts +3 -1
  230. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuItem.js +80 -74
  231. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuItem.js.map +1 -1
  232. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuList.d.ts +3 -1
  233. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuList.js +68 -61
  234. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuList.js.map +1 -1
  235. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuList.styled.d.ts +2 -1
  236. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuList.styled.js +7 -2
  237. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuList.styled.js.map +1 -1
  238. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/SelectAllMenu.d.ts +3 -1
  239. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/SelectAllMenu.js +18 -10
  240. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/SelectAllMenu.js.map +1 -1
  241. package/dist/esm/components/dropdown/OpenedDropdown/components/searchbox/SearchBox.d.ts +1 -1
  242. package/dist/esm/components/dropdown/OpenedDropdown/components/searchbox/SearchBox.js +18 -18
  243. package/dist/esm/components/dropdown/OpenedDropdown/components/searchbox/SearchBox.js.map +1 -1
  244. package/dist/esm/components/dropdown/OpenedDropdown/components/searchbox/SearchZeroState.d.ts +1 -0
  245. package/dist/esm/components/dropdown/OpenedDropdown/components/searchbox/SearchZeroState.js +43 -17
  246. package/dist/esm/components/dropdown/OpenedDropdown/components/searchbox/SearchZeroState.js.map +1 -1
  247. package/dist/esm/components/dropdown/OpenedDropdown/utils/iterationOnOptions.d.ts +2 -0
  248. package/dist/esm/components/dropdown/hooks/useDropdown.d.ts +2 -0
  249. package/dist/esm/components/dropdown/type.d.ts +6 -1
  250. package/dist/esm/components/dropdown-button/DropdownButton.d.ts +13 -1
  251. package/dist/esm/components/dropdown-button/DropdownButton.js +83 -20
  252. package/dist/esm/components/dropdown-button/DropdownButton.js.map +1 -1
  253. package/dist/esm/components/dropdown-button/DropdownButton.style.d.ts +9 -2
  254. package/dist/esm/components/dropdown-button/DropdownButton.style.js +35 -9
  255. package/dist/esm/components/dropdown-button/DropdownButton.style.js.map +1 -1
  256. package/dist/esm/components/dual-icon-button/DualIconButton.d.ts +3 -0
  257. package/dist/esm/components/dual-icon-button/DualIconButton.js +53 -0
  258. package/dist/esm/components/dual-icon-button/DualIconButton.js.map +1 -0
  259. package/dist/esm/components/dual-icon-button/DualIconButton.styled.d.ts +7 -0
  260. package/dist/esm/components/dual-icon-button/DualIconButton.styled.js +40 -0
  261. package/dist/esm/components/dual-icon-button/DualIconButton.styled.js.map +1 -0
  262. package/dist/esm/components/dual-icon-button/index.d.ts +2 -0
  263. package/dist/esm/components/dual-icon-button/model.d.ts +12 -0
  264. package/dist/esm/components/fab-menu/FABMenu.d.ts +1 -1
  265. package/dist/esm/components/fab-menu/FABMenu.js.map +1 -1
  266. package/dist/esm/components/icon-button/IconButton.js +36 -32
  267. package/dist/esm/components/icon-button/IconButton.js.map +1 -1
  268. package/dist/esm/components/icon-button/IconButton.styled.d.ts +3 -1
  269. package/dist/esm/components/icon-button/IconButton.styled.js +20 -14
  270. package/dist/esm/components/icon-button/IconButton.styled.js.map +1 -1
  271. package/dist/esm/components/icon-button/model.d.ts +12 -1
  272. package/dist/esm/components/icon-button/theme.js +12 -10
  273. package/dist/esm/components/icon-button/theme.js.map +1 -1
  274. package/dist/esm/components/input/Input.js +130 -125
  275. package/dist/esm/components/input/Input.js.map +1 -1
  276. package/dist/esm/components/input/Input.model.d.ts +2 -1
  277. package/dist/esm/components/input/Input.styled.d.ts +8 -1
  278. package/dist/esm/components/input/Input.styled.js +34 -22
  279. package/dist/esm/components/input/Input.styled.js.map +1 -1
  280. package/dist/esm/components/list-item/List.model.d.ts +3 -2
  281. package/dist/esm/components/list-item/ListItem.js +40 -38
  282. package/dist/esm/components/list-item/ListItem.js.map +1 -1
  283. package/dist/esm/components/list-item/ListItem.styled.d.ts +2 -1
  284. package/dist/esm/components/list-item/ListItem.styled.js +8 -8
  285. package/dist/esm/components/list-item/ListItem.styled.js.map +1 -1
  286. package/dist/esm/components/list-item/themes.d.ts +2 -2
  287. package/dist/esm/components/list-item/themes.js +29 -6
  288. package/dist/esm/components/list-item/themes.js.map +1 -1
  289. package/dist/esm/components/multi-level-dropdown/GroupedMenuList.d.ts +1 -0
  290. package/dist/esm/components/multi-level-dropdown/GroupedMenuList.js +30 -28
  291. package/dist/esm/components/multi-level-dropdown/GroupedMenuList.js.map +1 -1
  292. package/dist/esm/components/multi-level-dropdown/MenuItem.d.ts +1 -0
  293. package/dist/esm/components/multi-level-dropdown/MenuItem.js +57 -54
  294. package/dist/esm/components/multi-level-dropdown/MenuItem.js.map +1 -1
  295. package/dist/esm/components/multi-level-dropdown/MenuList.d.ts +1 -0
  296. package/dist/esm/components/multi-level-dropdown/MenuList.js +46 -42
  297. package/dist/esm/components/multi-level-dropdown/MenuList.js.map +1 -1
  298. package/dist/esm/components/multi-level-dropdown/MultiLevelDropdown.js +95 -59
  299. package/dist/esm/components/multi-level-dropdown/MultiLevelDropdown.js.map +1 -1
  300. package/dist/esm/components/multi-level-dropdown/MultiLevelDropdown.styled.d.ts +13 -3
  301. package/dist/esm/components/multi-level-dropdown/MultiLevelDropdown.styled.js +50 -41
  302. package/dist/esm/components/multi-level-dropdown/MultiLevelDropdown.styled.js.map +1 -1
  303. package/dist/esm/components/multi-level-dropdown/type.d.ts +1 -0
  304. package/dist/esm/components/switch/Switch.d.ts +2 -2
  305. package/dist/esm/components/switch/Switch.js.map +1 -1
  306. package/dist/esm/components/switch/Switch.type.d.ts +19 -0
  307. package/dist/esm/components/tag/Tag.d.ts +1 -1
  308. package/dist/esm/components/tag/Tag.js +22 -18
  309. package/dist/esm/components/tag/Tag.js.map +1 -1
  310. package/dist/esm/components/tag/Tag.styled.d.ts +3 -1
  311. package/dist/esm/components/tag/Tag.styled.js +7 -7
  312. package/dist/esm/components/tag/Tag.styled.js.map +1 -1
  313. package/dist/esm/components/tag/model.d.ts +5 -1
  314. package/dist/esm/components/tag/model.js.map +1 -1
  315. package/dist/esm/components/whats-new/WhatsNew.d.ts +2 -0
  316. package/dist/esm/components/whats-new/WhatsNew.js +23 -19
  317. package/dist/esm/components/whats-new/WhatsNew.js.map +1 -1
  318. package/dist/esm/components/whats-new/WhatsNew.styles.js +18 -17
  319. package/dist/esm/components/whats-new/WhatsNew.styles.js.map +1 -1
  320. package/dist/esm/components/whats-new/WhatsNew.types.d.ts +2 -0
  321. package/dist/esm/components/whats-new/WhatsNewButton.js +62 -52
  322. package/dist/esm/components/whats-new/WhatsNewButton.js.map +1 -1
  323. package/dist/esm/components/whats-new/WhatsNewPanel.js.map +1 -1
  324. package/dist/esm/constants/Theme.d.ts +36 -0
  325. package/dist/esm/constants/Theme.js +21 -1
  326. package/dist/esm/constants/Theme.js.map +1 -1
  327. package/dist/esm/editor/BikEditor.js +64 -62
  328. package/dist/esm/editor/BikEditor.js.map +1 -1
  329. package/dist/esm/editor/BikEditor.styles.js +20 -8
  330. package/dist/esm/editor/BikEditor.styles.js.map +1 -1
  331. package/dist/esm/editor/BikEditor.types.d.ts +8 -0
  332. package/dist/esm/editor/BikEditor.types.js.map +1 -1
  333. package/dist/esm/editor/extensions/buildExtensions.d.ts +8 -1
  334. package/dist/esm/editor/extensions/buildExtensions.js +42 -40
  335. package/dist/esm/editor/extensions/buildExtensions.js.map +1 -1
  336. package/dist/esm/editor/extensions/characterLimit/CharacterLimitExtension.d.ts +19 -0
  337. package/dist/esm/editor/extensions/characterLimit/CharacterLimitExtension.js +62 -0
  338. package/dist/esm/editor/extensions/characterLimit/CharacterLimitExtension.js.map +1 -0
  339. package/dist/esm/editor/extensions/editorDropdown.styles.d.ts +8 -2
  340. package/dist/esm/editor/extensions/editorDropdown.styles.js +18 -22
  341. package/dist/esm/editor/extensions/editorDropdown.styles.js.map +1 -1
  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/Media/Visual/{Frame26086263.js → FormkitNeutral.js} +1 -1
  346. package/dist/esm/icons/Media/Visual/FormkitNeutral.js.map +1 -0
  347. package/dist/esm/icons/Media/Visual/{IconTrailing.js → FormkitSad.js} +1 -1
  348. package/dist/esm/icons/Media/Visual/FormkitSad.js.map +1 -0
  349. package/dist/esm/icons/Media/Visual/index.d.ts +2 -2
  350. package/dist/esm/icons/index.d.ts +25 -25
  351. package/dist/esm/icons/index.js +184 -184
  352. package/dist/esm/index.d.ts +2 -0
  353. package/dist/esm/index.js +975 -969
  354. package/dist/esm/index.js.map +1 -1
  355. package/package.json +2 -2
  356. package/dist/cjs/icons/Media/Visual/Frame26086263.js.map +0 -1
  357. package/dist/cjs/icons/Media/Visual/IconTrailing.js.map +0 -1
  358. package/dist/esm/icons/Media/Visual/Frame26086263.js.map +0 -1
  359. package/dist/esm/icons/Media/Visual/IconTrailing.js.map +0 -1
  360. /package/dist/esm/icons/Media/Visual/{Frame26086263.d.ts → FormkitNeutral.d.ts} +0 -0
  361. /package/dist/esm/icons/Media/Visual/{IconTrailing.d.ts → FormkitSad.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"Theme.js","sources":["../../../src/constants/Theme.ts"],"sourcesContent":["export const BASE_COLORS = {\n\tbrand: {\n\t\t900: '#28034E',\n\t\t800: '#4B1583',\n\t\t500: '#731DCF',\n\t\t100: '#F3EDF9',\n\t\t50: '#EFE6F9',\n\t\t10: '#F9F3FF',\n\t},\n\tgrayscale: {\n\t\t900: '#212121',\n\t\t700: '#616161',\n\t\t500: '#9E9E9E',\n\t\t400: '#BDBDBD',\n\t\t200: '#E0E0E0',\n\t\t100: '#F0F0F0',\n\t\t70: '#F7F7F7',\n\t\t50: '#FAFAFA',\n\t\twhite: '#FFFFFF',\n\t\talpha: '#00000088',\n\t},\n\tnegative: {\n\t\t900: '#B92321',\n\t\t700: '#D53434',\n\t\t100: '#FFCED4',\n\t\t50: '#FFEBEF',\n\t},\n\twarning: {\n\t\t900: '#99631B',\n\t\t500: '#FEC02D',\n\t\t100: '#FFEABE',\n\t\t50: '#FFF7E5',\n\t},\n\tpositive: {\n\t\t900: '#00580E',\n\t\t700: '#1A872C',\n\t\t100: '#C3E4C4',\n\t\t50: '#E6F4E7',\n\t},\n\tbikAi: {\n\t\t500: 'linear-gradient(93deg, #FF166A 0.37%, #FB5F08 100%)',\n\t\t100: 'linear-gradient(93deg, #FEBAD2 0.37%, #FDD1B9 100%)',\n\t\t50: 'linear-gradient(93deg, #FFE6EE 0.37%, #FFF0E7 100%)',\n\t},\n};\n\nexport const COLORS = {\n\tbackground: {\n\t\tinactive: BASE_COLORS.grayscale['200'],\n\t\tbase: BASE_COLORS.grayscale['100'],\n\t\tinverse: BASE_COLORS.brand['900'],\n\t\tinverseLight: BASE_COLORS.brand['800'],\n\t\tbrand: BASE_COLORS.brand['500'],\n\t\tbrandLight: BASE_COLORS.brand['50'],\n\t\tbrandVeryLight: BASE_COLORS.brand['10'],\n\t\tpureWhite: BASE_COLORS.grayscale.white,\n\t\tbrandTint: BASE_COLORS.brand['100'],\n\t\tnegative: {\n\t\t\tvibrant: BASE_COLORS.negative['700'],\n\t\t\tlight: BASE_COLORS.negative['50'],\n\t\t},\n\t\twarning: {\n\t\t\tvibrant: BASE_COLORS.warning['500'],\n\t\t\tlight: BASE_COLORS.warning['50'],\n\t\t},\n\t\tpositive: {\n\t\t\tvibrant: BASE_COLORS.positive['700'],\n\t\t\tlight: BASE_COLORS.positive['50'],\n\t\t},\n\t\tblue: {\n\t\t\tlight: '#E5F2FF',\n\t\t},\n\t},\n\ticon: { placeholder: '#9E9E9E' },\n\tscrim: {\n\t\tstandard: '#00000099',\n\t},\n\tsurface: {\n\t\tstandard: BASE_COLORS.grayscale['white'],\n\t\tsubdued: BASE_COLORS.grayscale['50'],\n\t\thovered: BASE_COLORS.grayscale['100'],\n\t\tgrey: BASE_COLORS.grayscale['70'],\n\t\tai: BASE_COLORS.bikAi['500'],\n\t\taiLight: BASE_COLORS.bikAi['50'],\n\t},\n\tcontent: {\n\t\tprimary: BASE_COLORS.grayscale['900'],\n\t\tsecondary: BASE_COLORS.grayscale['700'],\n\t\tplaceholder: BASE_COLORS.grayscale['500'],\n\t\tinactive: BASE_COLORS.grayscale['400'],\n\t\tbrand: BASE_COLORS.brand['500'],\n\t\tprimaryInverse: BASE_COLORS.grayscale['white'],\n\t\tsecondaryInverse: '#ffffffcc',\n\t\tnegative: BASE_COLORS.negative['900'],\n\t\twarning: BASE_COLORS.warning['900'],\n\t\tpositive: BASE_COLORS.positive['900'],\n\t\tblue: '#28458F',\n\t\tai: BASE_COLORS.bikAi['500'],\n\t},\n\tstroke: {\n\t\tprimary: BASE_COLORS.grayscale['200'],\n\t\tbrand: BASE_COLORS.brand['500'],\n\t\tnegative: {\n\t\t\tlightAlt: BASE_COLORS.negative['100'],\n\t\t\tvibrant: BASE_COLORS.negative['700'],\n\t\t},\n\t\twarning: {\n\t\t\tlightAlt: BASE_COLORS.warning['100'],\n\t\t\tvibrant: BASE_COLORS.warning['500'],\n\t\t},\n\t\tpositive: {\n\t\t\tlightAlt: BASE_COLORS.positive['100'],\n\t\t\tvibrant: BASE_COLORS.positive['700'],\n\t\t},\n\t\tbrandLightAlt: '#DDCCF0',\n\t\tblue: {\n\t\t\tlightAlt: '#C3D5E5',\n\t\t},\n\t\tai: {\n\t\t\tlightAlt: '#FEBAD2',\n\t\t\tvibrant: '#F23275',\n\t\t},\n\t},\n\tspecial: {\n\t\twhatsapp: {\n\t\t\tbrand: '#25D366',\n\t\t\tgradient: 'linear-gradient(360deg, #20B038 0%, #60D66A 100%)',\n\t\t\tdark: '#455A64',\n\t\t\tgradientArr: ['#20B038', '#60D66A'],\n\t\t},\n\t\tbrand: {\n\t\t\tgoogle: '#DD4B39',\n\t\t\tfacebook: '#1877F2',\n\t\t},\n\t},\n\ttext: {\n\t\tprimary: BASE_COLORS.grayscale['900'],\n\t\tsecondary: BASE_COLORS.grayscale['700'],\n\t\tplaceholder: BASE_COLORS.grayscale['500'],\n\t\tdisabled: BASE_COLORS.grayscale['400'],\n\t\twhite: BASE_COLORS.grayscale['white'],\n\t\tbrand: BASE_COLORS.brand['500'],\n\t\taltPrimary: BASE_COLORS.brand['900'],\n\t\taltSecondary: BASE_COLORS.brand['800'],\n\t},\n};\n\nexport const FONTS = {\n\tdisplay: {\n\t\tfontWeight: '400',\n\t\tfontSize: 32,\n\t\tlineHeight: 40,\n\t\tletterSpacing: 0,\n\t},\n\ttitleXLarge: {\n\t\tfontWeight: '600',\n\t\tfontSize: 32,\n\t\tlineHeight: 40,\n\t\tletterSpacing: 0,\n\t},\n\ttitleLarge: {\n\t\tfontWeight: '600',\n\t\tfontSize: 28,\n\t\tlineHeight: 40,\n\t\tletterSpacing: 0,\n\t},\n\ttitleMedium: {\n\t\tfontWeight: '600',\n\t\tfontSize: 20,\n\t\tlineHeight: 28,\n\t\tletterSpacing: 0,\n\t},\n\ttitleRegular: {\n\t\tfontWeight: '600',\n\t\tfontSize: 16,\n\t\tlineHeight: 24,\n\t\tletterSpacing: 0,\n\t},\n\ttitleSmall: {\n\t\tfontWeight: '600',\n\t\tfontSize: 14,\n\t\tlineHeight: 20,\n\t\tletterSpacing: 0,\n\t},\n\tbodyPrimary: {\n\t\tfontWeight: '400',\n\t\tfontSize: 16,\n\t\tlineHeight: 24,\n\t\tletterSpacing: 0,\n\t},\n\tbodyLarge: {\n\t\tfontWeight: '400',\n\t\tfontSize: 20,\n\t\tlineHeight: 28,\n\t\tletterSpacing: 0,\n\t},\n\tbodySecondary: {\n\t\tfontWeight: '400',\n\t\tfontSize: 14,\n\t\tlineHeight: 20,\n\t\tletterSpacing: 0,\n\t},\n\tcaption: {\n\t\tfontWeight: '400',\n\t\tfontSize: 12,\n\t\tlineHeight: 16,\n\t\tletterSpacing: 0,\n\t},\n\ttiny: {\n\t\tfontWeight: '400',\n\t\tfontSize: 10,\n\t\tlineHeight: 12,\n\t\tletterSpacing: 0,\n\t},\n\tsubHeading: {\n\t\tfontWeight: '600',\n\t\tfontSize: 10,\n\t\tlineHeight: 12,\n\t\tletterSpacing: 0,\n\t},\n\n\ttitle1: {\n\t\tfontWeight: '600',\n\t\tfontSize: 24,\n\t\tlineHeight: 32,\n\t\tletterSpacing: 0,\n\t},\n\ttitle1Mobile: {\n\t\tfontWeight: '600',\n\t\tfontSize: 20,\n\t\tlineHeight: 30,\n\t\tletterSpacing: 0,\n\t},\n\ttitle2: {\n\t\tfontWeight: '600',\n\t\tfontSize: 20,\n\t\tlineHeight: 28,\n\t\tletterSpacing: 0,\n\t},\n\ttitle2Mobile: {\n\t\tfontWeight: '600',\n\t\tfontSize: 18,\n\t\tlineHeight: 24,\n\t\tletterSpacing: 0,\n\t},\n\ttitle3: {\n\t\tfontWeight: '600',\n\t\tfontSize: 16,\n\t\tlineHeight: 24,\n\t\tletterSpacing: 0,\n\t},\n\ttitle3Mobile: {\n\t\tfontWeight: '500',\n\t\tfontSize: 14,\n\t\tlineHeight: 20,\n\t\tletterSpacing: 0,\n\t},\n\ttitle4: {\n\t\tfontWeight: '400',\n\t\tfontSize: 14,\n\t\tlineHeight: 20,\n\t\tletterSpacing: 0,\n\t},\n\ttextPlaceholder: {\n\t\tfontWeight: '400',\n\t\tfontSize: 12,\n\t\tlineHeight: 16,\n\t\tletterSpacing: 0,\n\t},\n\ttitle4Mobile: {\n\t\tfontWeight: '400',\n\t\tfontSize: 10,\n\t\tlineHeight: 16,\n\t\tletterSpacing: 0,\n\t},\n\tbodyRegularMobile: {\n\t\tfontWeight: '400',\n\t\tfontSize: 14,\n\t\tlineHeight: 18,\n\t\tletterSpacing: 0,\n\t},\n\tbodyRegular: {\n\t\tfontWeight: '400',\n\t\tfontSize: 16,\n\t\tlineHeight: 24,\n\t\tletterSpacing: 0,\n\t},\n\n\tbodySmall: {\n\t\tfontWeight: '400',\n\t\tfontSize: 10,\n\t\tlineHeight: 12,\n\t\tletterSpacing: 0,\n\t},\n\tbuttonLarge: {\n\t\tfontWeight: '600',\n\t\tfontSize: 16,\n\t\tlineHeight: 20,\n\t\tletterSpacing: 0,\n\t},\n\tbuttonRegular: {\n\t\tfontWeight: '600',\n\t\tfontSize: 14,\n\t\tlineHeight: 20,\n\t\tletterSpacing: 0,\n\t},\n\tcaptionMobile: {\n\t\tfontWeight: '500',\n\t\tfontSize: 10,\n\t\tlineHeight: 12,\n\t\tletterSpacing: 0,\n\t},\n\tcaptionBold: {\n\t\tfontWeight: '700',\n\t\tfontSize: 12,\n\t\tlineHeight: 16,\n\t\tletterSpacing: 0,\n\t},\n\ttext1Bold: {\n\t\tfontWeight: '700',\n\t\tfontSize: 10,\n\t\tlineHeight: 14,\n\t\tletterSpacing: 0,\n\t},\n\ttoast: {\n\t\tfontWeight: '400',\n\t\tfontSize: 16,\n\t\tlineHeight: 24,\n\t\tletterSpacing: 0,\n\t},\n\ttoastMobile: {\n\t\tfontWeight: '400',\n\t\tfontSize: 10,\n\t\tlineHeight: 12,\n\t\tletterSpacing: 0,\n\t},\n};\n\n// For backward compatibility\nexport const DEFAULT_THEME = {\n\tcolorsV2: COLORS,\n\tfonts: FONTS,\n};\n"],"names":["BASE_COLORS","COLORS","FONTS","DEFAULT_THEME"],"mappings":"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"}
1
+ {"version":3,"file":"Theme.js","sources":["../../../src/constants/Theme.ts"],"sourcesContent":["export const BASE_COLORS = {\n\tbrand: {\n\t\t900: '#28034E',\n\t\t850: '#360A63',\n\t\t800: '#4B1583',\n\t\t700: '#5E3A83',\n\t\t500: '#731DCF',\n\t\t100: '#F3EDF9',\n\t\t50: '#EFE6F9',\n\t\t10: '#F9F3FF',\n\t\t7: '#F7F2FC',\n\t\t5: '#FDFBFF',\n\t},\n\tgrayscale: {\n\t\t900: '#212121',\n\t\t700: '#616161',\n\t\t500: '#9E9E9E',\n\t\t400: '#BDBDBD',\n\t\t200: '#E0E0E0',\n\t\t100: '#F0F0F0',\n\t\t70: '#F7F7F7',\n\t\t50: '#FAFAFA',\n\t\twhite: '#FFFFFF',\n\t\talpha: '#00000088',\n\t},\n\tnegative: {\n\t\t900: '#B92321',\n\t\t700: '#D53434',\n\t\t100: '#FFCED4',\n\t\t50: '#FFEBEF',\n\t},\n\twarning: {\n\t\t900: '#99631B',\n\t\t500: '#FEC02D',\n\t\t100: '#FFEABE',\n\t\t50: '#FFF7E5',\n\t},\n\tpositive: {\n\t\t900: '#00580E',\n\t\t700: '#1A872C',\n\t\t100: '#C3E4C4',\n\t\t50: '#E6F4E7',\n\t},\n\tbikAi: {\n\t\t500: 'linear-gradient(93deg, #FF166A 0.37%, #FB5F08 100%)',\n\t\t100: 'linear-gradient(93deg, #FEBAD2 0.37%, #FDD1B9 100%)',\n\t\t50: 'linear-gradient(93deg, #FFE6EE 0.37%, #FFF0E7 100%)',\n\t},\n};\n\nexport const COLORS = {\n\tbackground: {\n\t\tinactive: BASE_COLORS.grayscale['200'],\n\t\tbase: BASE_COLORS.grayscale['100'],\n\t\tinverse: BASE_COLORS.brand['900'],\n\t\tinverseLight: BASE_COLORS.brand['800'],\n\t\tbrand: BASE_COLORS.brand['500'],\n\t\tbrandLight: BASE_COLORS.brand['50'],\n\t\tbrandVeryLight: BASE_COLORS.brand['10'],\n\t\tbrandUltraLight: BASE_COLORS.brand['7'],\n\t\tbrandGhost: BASE_COLORS.brand['5'],\n\t\tpureWhite: BASE_COLORS.grayscale.white,\n\t\tbrandTint: BASE_COLORS.brand['100'],\n\t\tbrandHovered: BASE_COLORS.brand['850'],\n\t\tnegative: {\n\t\t\tvibrant: BASE_COLORS.negative['700'],\n\t\t\tlight: BASE_COLORS.negative['50'],\n\t\t},\n\t\twarning: {\n\t\t\tvibrant: BASE_COLORS.warning['500'],\n\t\t\tlight: BASE_COLORS.warning['50'],\n\t\t},\n\t\tpositive: {\n\t\t\tvibrant: BASE_COLORS.positive['700'],\n\t\t\tlight: BASE_COLORS.positive['50'],\n\t\t},\n\t\tblue: {\n\t\t\tlight: '#E5F2FF',\n\t\t},\n\t},\n\ticon: { placeholder: '#9E9E9E' },\n\tscrim: {\n\t\tstandard: '#00000099',\n\t},\n\tsurface: {\n\t\tstandard: BASE_COLORS.grayscale['white'],\n\t\tsubdued: BASE_COLORS.grayscale['50'],\n\t\thovered: BASE_COLORS.grayscale['100'],\n\t\tgrey: BASE_COLORS.grayscale['70'],\n\t\tai: BASE_COLORS.bikAi['500'],\n\t\taiLight: BASE_COLORS.bikAi['50'],\n\t},\n\tcontent: {\n\t\tprimary: BASE_COLORS.grayscale['900'],\n\t\tsecondary: BASE_COLORS.grayscale['700'],\n\t\tplaceholder: BASE_COLORS.grayscale['500'],\n\t\tinactive: BASE_COLORS.grayscale['400'],\n\t\tbrand: BASE_COLORS.brand['500'],\n\t\tprimaryInverse: BASE_COLORS.grayscale['white'],\n\t\tsecondaryInverse: '#ffffffcc',\n\t\tnegative: BASE_COLORS.negative['900'],\n\t\twarning: BASE_COLORS.warning['900'],\n\t\tpositive: BASE_COLORS.positive['900'],\n\t\tblue: '#28458F',\n\t\tai: BASE_COLORS.bikAi['500'],\n\t},\n\tstroke: {\n\t\tprimary: BASE_COLORS.grayscale['200'],\n\t\tbrand: BASE_COLORS.brand['500'],\n\t\tnegative: {\n\t\t\tlightAlt: BASE_COLORS.negative['100'],\n\t\t\tvibrant: BASE_COLORS.negative['700'],\n\t\t},\n\t\twarning: {\n\t\t\tlightAlt: BASE_COLORS.warning['100'],\n\t\t\tvibrant: BASE_COLORS.warning['500'],\n\t\t},\n\t\tpositive: {\n\t\t\tlightAlt: BASE_COLORS.positive['100'],\n\t\t\tvibrant: BASE_COLORS.positive['700'],\n\t\t},\n\t\tbrandLightAlt: '#DDCCF0',\n\t\tbrandSubdued: BASE_COLORS.brand['700'],\n\t\tblue: {\n\t\t\tlightAlt: '#C3D5E5',\n\t\t},\n\t\tai: {\n\t\t\tlightAlt: '#FEBAD2',\n\t\t\tvibrant: '#F23275',\n\t\t},\n\t},\n\tspecial: {\n\t\twhatsapp: {\n\t\t\tbrand: '#25D366',\n\t\t\tgradient: 'linear-gradient(360deg, #20B038 0%, #60D66A 100%)',\n\t\t\tdark: '#455A64',\n\t\t\tgradientArr: ['#20B038', '#60D66A'],\n\t\t},\n\t\tbrand: {\n\t\t\tgoogle: '#DD4B39',\n\t\t\tfacebook: '#1877F2',\n\t\t},\n\t},\n\ttext: {\n\t\tprimary: BASE_COLORS.grayscale['900'],\n\t\tsecondary: BASE_COLORS.grayscale['700'],\n\t\tplaceholder: BASE_COLORS.grayscale['500'],\n\t\tdisabled: BASE_COLORS.grayscale['400'],\n\t\twhite: BASE_COLORS.grayscale['white'],\n\t\tbrand: BASE_COLORS.brand['500'],\n\t\taltPrimary: BASE_COLORS.brand['900'],\n\t\taltSecondary: BASE_COLORS.brand['800'],\n\t},\n};\n\nexport const FONTS = {\n\tdisplay: {\n\t\tfontWeight: '400',\n\t\tfontSize: 32,\n\t\tlineHeight: 40,\n\t\tletterSpacing: 0,\n\t},\n\ttitleXLarge: {\n\t\tfontWeight: '600',\n\t\tfontSize: 32,\n\t\tlineHeight: 40,\n\t\tletterSpacing: 0,\n\t},\n\ttitleLarge: {\n\t\tfontWeight: '600',\n\t\tfontSize: 28,\n\t\tlineHeight: 40,\n\t\tletterSpacing: 0,\n\t},\n\ttitleMedium: {\n\t\tfontWeight: '600',\n\t\tfontSize: 20,\n\t\tlineHeight: 28,\n\t\tletterSpacing: 0,\n\t},\n\ttitleRegular: {\n\t\tfontWeight: '600',\n\t\tfontSize: 16,\n\t\tlineHeight: 24,\n\t\tletterSpacing: 0,\n\t},\n\ttitleSmall: {\n\t\tfontWeight: '600',\n\t\tfontSize: 14,\n\t\tlineHeight: 20,\n\t\tletterSpacing: 0,\n\t},\n\ttitleTiny: {\n\t\tfontWeight: '600',\n\t\tfontSize: 12,\n\t\tlineHeight: 16,\n\t\tletterSpacing: 0,\n\t},\n\tbodyPrimary: {\n\t\tfontWeight: '400',\n\t\tfontSize: 16,\n\t\tlineHeight: 24,\n\t\tletterSpacing: 0,\n\t},\n\tbodyLarge: {\n\t\tfontWeight: '400',\n\t\tfontSize: 20,\n\t\tlineHeight: 28,\n\t\tletterSpacing: 0,\n\t},\n\tbodySecondary: {\n\t\tfontWeight: '400',\n\t\tfontSize: 14,\n\t\tlineHeight: 20,\n\t\tletterSpacing: 0,\n\t},\n\tcaption: {\n\t\tfontWeight: '400',\n\t\tfontSize: 12,\n\t\tlineHeight: 16,\n\t\tletterSpacing: 0,\n\t},\n\tbodyTinySemiBold: {\n\t\tfontWeight: '600',\n\t\tfontSize: 12,\n\t\tlineHeight: 16,\n\t\tletterSpacing: 0,\n\t},\n\ttiny: {\n\t\tfontWeight: '400',\n\t\tfontSize: 10,\n\t\tlineHeight: 12,\n\t\tletterSpacing: 0,\n\t},\n\tsubHeading: {\n\t\tfontWeight: '600',\n\t\tfontSize: 10,\n\t\tlineHeight: 12,\n\t\tletterSpacing: 0,\n\t},\n\n\ttitle1: {\n\t\tfontWeight: '600',\n\t\tfontSize: 24,\n\t\tlineHeight: 32,\n\t\tletterSpacing: 0,\n\t},\n\ttitle1Mobile: {\n\t\tfontWeight: '600',\n\t\tfontSize: 20,\n\t\tlineHeight: 30,\n\t\tletterSpacing: 0,\n\t},\n\ttitle2: {\n\t\tfontWeight: '600',\n\t\tfontSize: 20,\n\t\tlineHeight: 28,\n\t\tletterSpacing: 0,\n\t},\n\ttitle2Mobile: {\n\t\tfontWeight: '600',\n\t\tfontSize: 18,\n\t\tlineHeight: 24,\n\t\tletterSpacing: 0,\n\t},\n\ttitle3: {\n\t\tfontWeight: '600',\n\t\tfontSize: 16,\n\t\tlineHeight: 24,\n\t\tletterSpacing: 0,\n\t},\n\ttitle3Mobile: {\n\t\tfontWeight: '500',\n\t\tfontSize: 14,\n\t\tlineHeight: 20,\n\t\tletterSpacing: 0,\n\t},\n\ttitle4: {\n\t\tfontWeight: '400',\n\t\tfontSize: 14,\n\t\tlineHeight: 20,\n\t\tletterSpacing: 0,\n\t},\n\ttextPlaceholder: {\n\t\tfontWeight: '400',\n\t\tfontSize: 12,\n\t\tlineHeight: 16,\n\t\tletterSpacing: 0,\n\t},\n\ttitle4Mobile: {\n\t\tfontWeight: '400',\n\t\tfontSize: 10,\n\t\tlineHeight: 16,\n\t\tletterSpacing: 0,\n\t},\n\tbodyRegularMobile: {\n\t\tfontWeight: '400',\n\t\tfontSize: 14,\n\t\tlineHeight: 18,\n\t\tletterSpacing: 0,\n\t},\n\tbodyRegular: {\n\t\tfontWeight: '400',\n\t\tfontSize: 16,\n\t\tlineHeight: 24,\n\t\tletterSpacing: 0,\n\t},\n\n\tbodySmall: {\n\t\tfontWeight: '400',\n\t\tfontSize: 10,\n\t\tlineHeight: 12,\n\t\tletterSpacing: 0,\n\t},\n\tbuttonLarge: {\n\t\tfontWeight: '600',\n\t\tfontSize: 16,\n\t\tlineHeight: 20,\n\t\tletterSpacing: 0,\n\t},\n\tbuttonRegular: {\n\t\tfontWeight: '600',\n\t\tfontSize: 14,\n\t\tlineHeight: 20,\n\t\tletterSpacing: 0,\n\t},\n\tcaptionMobile: {\n\t\tfontWeight: '500',\n\t\tfontSize: 10,\n\t\tlineHeight: 12,\n\t\tletterSpacing: 0,\n\t},\n\tcaptionBold: {\n\t\tfontWeight: '700',\n\t\tfontSize: 12,\n\t\tlineHeight: 16,\n\t\tletterSpacing: 0,\n\t},\n\ttext1Bold: {\n\t\tfontWeight: '700',\n\t\tfontSize: 10,\n\t\tlineHeight: 14,\n\t\tletterSpacing: 0,\n\t},\n\ttoast: {\n\t\tfontWeight: '400',\n\t\tfontSize: 16,\n\t\tlineHeight: 24,\n\t\tletterSpacing: 0,\n\t},\n\ttoastMobile: {\n\t\tfontWeight: '400',\n\t\tfontSize: 10,\n\t\tlineHeight: 12,\n\t\tletterSpacing: 0,\n\t},\n};\n\n// For backward compatibility\nexport const DEFAULT_THEME = {\n\tcolorsV2: COLORS,\n\tfonts: FONTS,\n};\n"],"names":["BASE_COLORS","COLORS","FONTS","DEFAULT_THEME"],"mappings":"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"}
@@ -1,47 +1,48 @@
1
1
  import { jsxs as g, jsx as h } from "react/jsx-runtime";
2
- import { getMarkRange as St } from "../node_modules/@tiptap/core/dist/index.js";
3
- import { useEditor as kt, EditorContent as yt } from "@tiptap/react";
4
- import { forwardRef as Bt, useState as G, useRef as a, useEffect as bt, useImperativeHandle as xt } from "react";
2
+ import { getMarkRange as kt } from "../node_modules/@tiptap/core/dist/index.js";
3
+ import { useEditor as yt, EditorContent as Bt } from "@tiptap/react";
4
+ import { forwardRef as bt, useState as G, useRef as a, useEffect as xt, useImperativeHandle as vt } from "react";
5
5
  import { BodyCaption as K } from "../components/TypographyStyle.js";
6
- import { BikEditorShell as vt, BikJsonHeader as At, BikJsonError as Tt } from "./BikEditor.styles.js";
6
+ import { BikEditorShell as At, BikJsonHeader as Tt, BikJsonError as Et } from "./BikEditor.styles.js";
7
7
  import { DEFAULT_FORMAT_STATE as X } from "./BikEditor.types.js";
8
- import { buildJsonCodeBlockHtml as Et, buildSectionedContent as Y, normalizeHtml as i, extractActiveFormats as tt, extractContent as et, parseJson as p, getCodeBlockText as d, extractBodyContent as Rt, extractSectionContent as It, setCodeBlockText as b, findSectionEndPos as nt, findSectionStartPos as Mt, setSectionContentInEditor as T, insertInlineHtml as Lt } from "./BikEditor.utils.js";
9
- import { buildExtensions as Ot } from "./extensions/buildExtensions.js";
10
- import { LinkBubbleMenu as Jt } from "./floating/LinkBubbleMenu.js";
11
- import Ft from "../icons/BIK AI specific/WandSparkles.js";
12
- import Nt from "../icons/Actions/Formatting/Copy.js";
13
- function jt(y) {
8
+ import { buildJsonCodeBlockHtml as Rt, buildSectionedContent as Y, normalizeHtml as i, extractActiveFormats as tt, extractContent as et, parseJson as p, getCodeBlockText as d, extractBodyContent as It, extractSectionContent as Lt, setCodeBlockText as b, findSectionEndPos as nt, findSectionStartPos as Mt, setSectionContentInEditor as T, insertInlineHtml as Ot } from "./BikEditor.utils.js";
9
+ import { buildExtensions as Jt } from "./extensions/buildExtensions.js";
10
+ import { LinkBubbleMenu as Ft } from "./floating/LinkBubbleMenu.js";
11
+ import Nt from "../icons/BIK AI specific/WandSparkles.js";
12
+ import jt from "../icons/Actions/Formatting/Copy.js";
13
+ function zt(y) {
14
14
  return Object.entries(y).map(
15
15
  ([x, S]) => `${x.replace(/([A-Z])/g, (k) => `-${k.toLowerCase()}`)}:${S}`
16
16
  ).join(";");
17
17
  }
18
- const zt = (y, x) => {
18
+ const Ht = (y, x) => {
19
19
  const {
20
20
  initialContent: S,
21
21
  sections: k,
22
22
  features: B,
23
23
  disabled: ot,
24
24
  maxCharacters: E,
25
- shortcuts: rt,
26
- sendShortcut: st,
25
+ characterLimit: rt,
26
+ shortcuts: st,
27
+ sendShortcut: it,
27
28
  mentions: l,
28
29
  slashCommands: C,
29
- link: it,
30
- onPaste: ct,
30
+ link: ct,
31
+ onPaste: at,
31
32
  onReady: R,
32
33
  onChange: I,
33
34
  onSend: v,
34
- onFocus: M,
35
- onBlur: L,
35
+ onFocus: L,
36
+ onBlur: M,
36
37
  onSelectionChange: O,
37
- minHeight: at,
38
- maxHeight: lt,
39
- style: dt,
40
- className: ut,
38
+ minHeight: lt,
39
+ maxHeight: dt,
40
+ style: ut,
41
+ className: mt,
41
42
  editorClassName: J,
42
43
  editorStyle: F,
43
44
  renderJsonError: N
44
- } = y, m = !!B?.jsonMode, [u, j] = G(null), [mt, z] = G(!1), ft = m ? Et(S ?? "") : k?.length ? Y(
45
+ } = y, m = !!B?.jsonMode, [u, j] = G(null), [ft, z] = G(!1), gt = m ? Rt(S ?? "") : k?.length ? Y(
45
46
  i(S ?? ""),
46
47
  k.map((t) => ({ ...t, content: i(t.content) }))
47
48
  ) : i(S ?? ""), A = a([]), H = a(!1), w = a(R);
@@ -50,10 +51,10 @@ const zt = (y, x) => {
50
51
  P.current = I;
51
52
  const D = a(O);
52
53
  D.current = O;
53
- const q = a(X), U = a(M);
54
- U.current = M;
55
- const W = a(L);
56
- W.current = L;
54
+ const q = a(X), U = a(L);
55
+ U.current = L;
56
+ const W = a(M);
57
+ W.current = M;
57
58
  const $ = a(v);
58
59
  $.current = v;
59
60
  const V = a(l?.agents ?? []);
@@ -62,21 +63,22 @@ const zt = (y, x) => {
62
63
  _.current = l?.teams ?? [];
63
64
  const Q = a(C?.items ?? []);
64
65
  Q.current = C?.items ?? [];
65
- const n = kt({
66
- extensions: Ot({
66
+ const n = yt({
67
+ extensions: Jt({
67
68
  features: B,
68
69
  placeholder: y.placeholder,
69
70
  maxCharacters: E,
71
+ characterLimit: rt,
70
72
  hasSections: (k?.length ?? 0) > 0,
71
73
  mentions: {
72
74
  agents: l ? V : void 0,
73
75
  teams: l ? _ : void 0
74
76
  },
75
77
  slashCommands: C ? Q : void 0,
76
- onPaste: ct,
78
+ onPaste: at,
77
79
  onSend: v ? (t) => $.current?.(t) : void 0,
78
- sendShortcut: st,
79
- shortcuts: rt,
80
+ sendShortcut: it,
81
+ shortcuts: st,
80
82
  onMentionSelected: l?.onSelect,
81
83
  onSlashCommandSelected: C?.onSelect,
82
84
  renderMentionItem: l?.renderItem,
@@ -85,14 +87,14 @@ const zt = (y, x) => {
85
87
  renderSlashCommandItem: C?.renderItem,
86
88
  renderSlashCommandDropdown: C?.renderDropdown
87
89
  }),
88
- content: ft,
90
+ content: gt,
89
91
  editable: !ot,
90
92
  immediatelyRender: !1,
91
93
  // SSR-safe — NEVER remove this
92
94
  editorProps: {
93
95
  attributes: {
94
96
  ...J ? { class: J } : {},
95
- ...F ? { style: jt(F) } : {}
97
+ ...F ? { style: zt(F) } : {}
96
98
  }
97
99
  },
98
100
  onUpdate: ({ editor: t }) => {
@@ -111,12 +113,12 @@ const zt = (y, x) => {
111
113
  function s(t) {
112
114
  n ? t(n) : A.current.push(t);
113
115
  }
114
- bt(() => {
116
+ xt(() => {
115
117
  if (n && (A.current.length > 0 && A.current.splice(0).forEach((e) => e(n)), H.current || (H.current = !0, w.current?.()), m)) {
116
118
  const t = p(d(n));
117
119
  j(t.valid ? null : t);
118
120
  }
119
- }, [n, m]), xt(
121
+ }, [n, m]), vt(
120
122
  x,
121
123
  () => ({
122
124
  // ── Focus ────────────────────────────────────────────────────────
@@ -133,7 +135,7 @@ const zt = (y, x) => {
133
135
  s((o) => o.commands.insertContent(e));
134
136
  },
135
137
  insertInlineContent: (t) => {
136
- s((e) => Lt(e, t));
138
+ s((e) => Ot(e, t));
137
139
  },
138
140
  insertAtStart: (t) => {
139
141
  const e = i(t);
@@ -183,7 +185,7 @@ const zt = (y, x) => {
183
185
  return t.doc.textBetween(e, o, " ");
184
186
  const c = t.schema.marks.link;
185
187
  if (c) {
186
- const f = St(t.doc.resolve(e), c);
188
+ const f = kt(t.doc.resolve(e), c);
187
189
  if (f)
188
190
  return t.doc.textBetween(f.from, f.to, " ");
189
191
  }
@@ -195,7 +197,7 @@ const zt = (y, x) => {
195
197
  limit: E ?? null
196
198
  }),
197
199
  // ── Sections ─────────────────────────────────────────────────────
198
- getSectionContent: (t) => n ? It(n, t) : { html: "", text: "", isEmpty: !0, characterCount: 0 },
200
+ getSectionContent: (t) => n ? Lt(n, t) : { html: "", text: "", isEmpty: !0, characterCount: 0 },
199
201
  setSectionContent: (t, e) => {
200
202
  const o = i(e);
201
203
  s((r) => T(r, t, o));
@@ -218,7 +220,7 @@ const zt = (y, x) => {
218
220
  s((e) => T(e, t, "<p></p>"));
219
221
  },
220
222
  // ── Convenience body shorthands ───────────────────────────────────
221
- getBodyContent: () => n ? Rt(n) : { html: "", text: "", isEmpty: !0, characterCount: 0 },
223
+ getBodyContent: () => n ? It(n) : { html: "", text: "", isEmpty: !0, characterCount: 0 },
222
224
  setBodyContent: (t) => {
223
225
  const e = i(t);
224
226
  s((o) => T(o, "body", e));
@@ -282,10 +284,10 @@ const zt = (y, x) => {
282
284
  n && (e !== void 0 ? n.chain().focus().extendMarkRange("link").command(({ tr: o, state: r }) => {
283
285
  const { from: c, to: f } = o.selection, Z = r.schema.marks.link;
284
286
  if (!Z) return !1;
285
- const pt = r.schema.text(e, [
287
+ const Ct = r.schema.text(e, [
286
288
  Z.create({ href: t })
287
- ]), Ct = r.schema.text(" ");
288
- return o.replaceWith(c, f, [pt, Ct]), !0;
289
+ ]), St = r.schema.text(" ");
290
+ return o.replaceWith(c, f, [Ct, St]), !0;
289
291
  }).run() : n.chain().focus().extendMarkRange("link").setLink({ href: t }).insertContent(" ").run());
290
292
  },
291
293
  updateLink: (t) => n?.chain().focus().extendMarkRange("link").setLink({ href: t }).run(),
@@ -320,48 +322,48 @@ const zt = (y, x) => {
320
322
  // eslint-disable-next-line react-hooks/exhaustive-deps
321
323
  [n]
322
324
  );
323
- const gt = () => {
325
+ const ht = () => {
324
326
  if (!n) return;
325
327
  const { valid: t, value: e } = p(d(n));
326
328
  !t || e === null || b(n, JSON.stringify(e, null, 2));
327
- }, ht = () => {
329
+ }, pt = () => {
328
330
  n && (navigator.clipboard?.writeText(d(n)), z(!0), setTimeout(() => z(!1), 1500));
329
331
  };
330
332
  return n ? /* @__PURE__ */ g(
331
- vt,
333
+ At,
332
334
  {
333
- minHeight: at,
334
- maxHeight: lt,
335
+ minHeight: lt,
336
+ maxHeight: dt,
335
337
  tightParagraphs: !B?.richPaste,
336
338
  jsonMode: m,
337
- style: dt,
338
- className: ut,
339
+ style: ut,
340
+ className: mt,
339
341
  children: [
340
- m && /* @__PURE__ */ g(At, { children: [
342
+ m && /* @__PURE__ */ g(Tt, { children: [
341
343
  /* @__PURE__ */ h("span", { className: "bik-json-header-label", children: "JSON" }),
342
344
  /* @__PURE__ */ g("div", { className: "bik-json-header-actions", children: [
343
345
  /* @__PURE__ */ g(
344
346
  "button",
345
347
  {
346
348
  type: "button",
347
- onClick: gt,
349
+ onClick: ht,
348
350
  disabled: !!u,
349
351
  title: "Format JSON",
350
352
  children: [
351
- /* @__PURE__ */ h(Ft, { size: 16 }),
353
+ /* @__PURE__ */ h(Nt, { size: 16 }),
352
354
  /* @__PURE__ */ h(K, { children: "Beautify" })
353
355
  ]
354
356
  }
355
357
  ),
356
- /* @__PURE__ */ g("button", { type: "button", onClick: ht, title: "Copy JSON", children: [
357
- /* @__PURE__ */ h(Nt, { size: 16 }),
358
- mt && /* @__PURE__ */ h(K, { children: "Copied" })
358
+ /* @__PURE__ */ g("button", { type: "button", onClick: pt, title: "Copy JSON", children: [
359
+ /* @__PURE__ */ h(jt, { size: 16 }),
360
+ ft && /* @__PURE__ */ h(K, { children: "Copied" })
359
361
  ] })
360
362
  ] })
361
363
  ] }),
362
- /* @__PURE__ */ h(yt, { editor: n }),
363
- /* @__PURE__ */ h(Jt, { editor: n, renderLinkTooltip: it?.renderTooltip }),
364
- m && u ? N ? N(u) : /* @__PURE__ */ g(Tt, { children: [
364
+ /* @__PURE__ */ h(Bt, { editor: n }),
365
+ /* @__PURE__ */ h(Ft, { editor: n, renderLinkTooltip: ct?.renderTooltip }),
366
+ m && u ? N ? N(u) : /* @__PURE__ */ g(Et, { children: [
365
367
  u.line != null && /* @__PURE__ */ g("strong", { children: [
366
368
  "Line ",
367
369
  u.line,
@@ -374,11 +376,11 @@ const zt = (y, x) => {
374
376
  ]
375
377
  }
376
378
  ) : null;
377
- }, Ht = Bt(
378
- zt
379
+ }, wt = bt(
380
+ Ht
379
381
  );
380
- Ht.displayName = "BikEditor";
382
+ wt.displayName = "BikEditor";
381
383
  export {
382
- Ht as BikEditor
384
+ wt as BikEditor
383
385
  };
384
386
  //# sourceMappingURL=BikEditor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BikEditor.js","sources":["../../../src/editor/BikEditor.tsx"],"sourcesContent":["'use client';\n\n/**\n * IMPLEMENTATION LAYER — TipTap-specific.\n * If the underlying editor is swapped, this file changes; BikEditor.types.ts and\n * src/editor/index.ts (the consumer contract) do NOT change.\n */\nimport { Editor, getMarkRange } from '@tiptap/core';\nimport { EditorContent, useEditor } from '@tiptap/react';\nimport React, {\n\tforwardRef,\n\tuseEffect,\n\tuseImperativeHandle,\n\tuseRef,\n\tuseState,\n} from 'react';\nimport { BodyCaption } from '@src/components/TypographyStyle';\nimport { Copy, WandSparkles } from '../icons';\nimport {\n\tBikEditorShell,\n\tBikJsonError,\n\tBikJsonHeader,\n} from './BikEditor.styles';\nimport {\n\tBikEditorProps,\n\tBikEditorRef,\n\tDEFAULT_FORMAT_STATE,\n\tFormatState,\n\tJsonParseResult,\n} from './BikEditor.types';\nimport {\n\tbuildJsonCodeBlockHtml,\n\tbuildSectionedContent,\n\textractActiveFormats,\n\textractBodyContent,\n\textractContent,\n\textractSectionContent,\n\tfindSectionEndPos,\n\tfindSectionStartPos,\n\tgetCodeBlockText,\n\tinsertInlineHtml,\n\tnormalizeHtml,\n\tparseJson,\n\tsetCodeBlockText,\n\tsetSectionContentInEditor,\n} from './BikEditor.utils';\nimport { buildExtensions } from './extensions/buildExtensions';\nimport { LinkBubbleMenu } from './floating/LinkBubbleMenu';\n\n/** Convert React.CSSProperties to an inline CSS string for editorProps.attributes. */\nfunction cssToString(style: React.CSSProperties): string {\n\treturn Object.entries(style)\n\t\t.map(\n\t\t\t([k, v]) => `${k.replace(/([A-Z])/g, (c) => `-${c.toLowerCase()}`)}:${v}`,\n\t\t)\n\t\t.join(';');\n}\n\nconst BikEditorInner = (\n\tprops: BikEditorProps,\n\tref: React.Ref<BikEditorRef>,\n) => {\n\tconst {\n\t\tinitialContent,\n\t\tsections,\n\t\tfeatures,\n\t\tdisabled,\n\t\tmaxCharacters,\n\t\tshortcuts,\n\t\tsendShortcut,\n\t\tmentions,\n\t\tslashCommands,\n\t\tlink,\n\t\tonPaste,\n\t\tonReady,\n\t\tonChange,\n\t\tonSend,\n\t\tonFocus,\n\t\tonBlur,\n\t\tonSelectionChange,\n\t\tminHeight,\n\t\tmaxHeight,\n\t\tstyle,\n\t\tclassName,\n\t\teditorClassName,\n\t\teditorStyle,\n\t\trenderJsonError,\n\t} = props;\n\n\tconst isJsonMode = !!features?.jsonMode;\n\n\t// Live JSON parse error, shown inside the editor when jsonMode is on.\n\t// null = valid (or not applicable) → nothing rendered.\n\tconst [jsonError, setJsonError] = useState<JsonParseResult | null>(null);\n\t// Transient \"Copied\" state for the jsonMode copy button.\n\tconst [jsonCopied, setJsonCopied] = useState(false);\n\n\t// JSON body mode: treat initialContent as raw JSON text and wrap it in a code\n\t// block. Skips section/HTML normalisation entirely.\n\tconst initialEditorContent = isJsonMode\n\t\t? buildJsonCodeBlockHtml(initialContent ?? '')\n\t\t: sections?.length\n\t\t? buildSectionedContent(\n\t\t\t\tnormalizeHtml(initialContent ?? ''),\n\t\t\t\tsections.map((s) => ({ ...s, content: normalizeHtml(s.content) })),\n\t\t )\n\t\t: normalizeHtml(initialContent ?? '');\n\n\t// ── Command queue ─────────────────────────────────────────────────────────\n\t// TipTap's useEditor initializes asynchronously; the editor instance is null\n\t// until the first commit. Any imperative method called before the editor is\n\t// ready is enqueued here and flushed automatically once it becomes non-null.\n\t// Consumers never need setTimeout or readiness guards.\n\tconst pendingQueue = useRef<Array<(e: Editor) => void>>([]);\n\tconst hasCalledOnReady = useRef(false);\n\t// Keep stable refs to all callbacks so useEditor receives the same function\n\t// identity on every render — prevents TipTap from re-registering event\n\t// handlers every time the parent re-renders with new inline function props.\n\tconst onReadyRef = useRef(onReady);\n\tonReadyRef.current = onReady;\n\tconst onChangeRef = useRef(onChange);\n\tonChangeRef.current = onChange;\n\tconst onSelectionChangeRef = useRef(onSelectionChange);\n\tonSelectionChangeRef.current = onSelectionChange;\n\tconst prevFormatsRef = useRef<FormatState>(DEFAULT_FORMAT_STATE);\n\tconst onFocusRef = useRef(onFocus);\n\tonFocusRef.current = onFocus;\n\tconst onBlurRef = useRef(onBlur);\n\tonBlurRef.current = onBlur;\n\tconst onSendRef = useRef(onSend);\n\tonSendRef.current = onSend;\n\tconst agentMentionsRef = useRef(mentions?.agents ?? []);\n\tagentMentionsRef.current = mentions?.agents ?? [];\n\tconst teamMentionsRef = useRef(mentions?.teams ?? []);\n\tteamMentionsRef.current = mentions?.teams ?? [];\n\tconst slashCommandsRef = useRef(slashCommands?.items ?? []);\n\tslashCommandsRef.current = slashCommands?.items ?? [];\n\n\tconst editor = useEditor({\n\t\textensions: buildExtensions({\n\t\t\tfeatures,\n\t\t\tplaceholder: props.placeholder,\n\t\t\tmaxCharacters,\n\t\t\thasSections: (sections?.length ?? 0) > 0,\n\t\t\tmentions: {\n\t\t\t\tagents: mentions ? agentMentionsRef : undefined,\n\t\t\t\tteams: mentions ? teamMentionsRef : undefined,\n\t\t\t},\n\t\t\tslashCommands: slashCommands ? slashCommandsRef : undefined,\n\t\t\tonPaste,\n\t\t\tonSend: onSend ? (snapshot) => onSendRef.current?.(snapshot) : undefined,\n\t\t\tsendShortcut,\n\t\t\tshortcuts,\n\t\t\tonMentionSelected: mentions?.onSelect,\n\t\t\tonSlashCommandSelected: slashCommands?.onSelect,\n\t\t\trenderMentionItem: mentions?.renderItem,\n\t\t\trenderMentionDropdown: mentions?.renderDropdown,\n\t\t\tremoveMentionTriggerOnDismiss: mentions?.removeTriggerOnDismiss,\n\t\t\trenderSlashCommandItem: slashCommands?.renderItem,\n\t\t\trenderSlashCommandDropdown: slashCommands?.renderDropdown,\n\t\t}),\n\t\tcontent: initialEditorContent,\n\t\teditable: !disabled,\n\t\timmediatelyRender: false, // SSR-safe — NEVER remove this\n\t\teditorProps: {\n\t\t\tattributes: {\n\t\t\t\t...(editorClassName ? { class: editorClassName } : {}),\n\t\t\t\t...(editorStyle ? { style: cssToString(editorStyle) } : {}),\n\t\t\t},\n\t\t},\n\t\tonUpdate: ({ editor: e }) => {\n\t\t\tonChangeRef.current?.(extractContent(e));\n\t\t\tif (isJsonMode) {\n\t\t\t\tconst result = parseJson(getCodeBlockText(e));\n\t\t\t\tsetJsonError(result.valid ? null : result);\n\t\t\t}\n\t\t},\n\t\tonTransaction: ({ editor: e }) => {\n\t\t\tconst next = extractActiveFormats(e);\n\t\t\tconst prev = prevFormatsRef.current;\n\t\t\tconst changed =\n\t\t\t\tprev.bold !== next.bold ||\n\t\t\t\tprev.italic !== next.italic ||\n\t\t\t\tprev.underline !== next.underline ||\n\t\t\t\tprev.strike !== next.strike ||\n\t\t\t\tprev.bulletList !== next.bulletList ||\n\t\t\t\tprev.orderedList !== next.orderedList ||\n\t\t\t\tprev.blockquote !== next.blockquote ||\n\t\t\t\tprev.codeBlock !== next.codeBlock ||\n\t\t\t\tprev.superscript !== next.superscript ||\n\t\t\t\tprev.subscript !== next.subscript ||\n\t\t\t\tprev.textAlign !== next.textAlign ||\n\t\t\t\tprev.fontFamily !== next.fontFamily ||\n\t\t\t\tprev.fontSize !== next.fontSize ||\n\t\t\t\tprev.color !== next.color ||\n\t\t\t\tprev.highlight !== next.highlight ||\n\t\t\t\tprev.link?.href !== next.link?.href;\n\t\t\tif (changed) {\n\t\t\t\tprevFormatsRef.current = next;\n\t\t\t\tonSelectionChangeRef.current?.(next);\n\t\t\t}\n\t\t},\n\t\tonFocus: () => onFocusRef.current?.(),\n\t\tonBlur: () => onBlurRef.current?.(),\n\t});\n\n\t// ── enqueue ───────────────────────────────────────────────────────────────\n\t// Run immediately if the editor is ready; otherwise defer to the queue.\n\t// Closures passed to enqueue MUST capture all parameters explicitly —\n\t// they must NOT close over `editor` (which would be null at enqueue time).\n\tfunction enqueue(op: (e: Editor) => void): void {\n\t\tif (editor) {\n\t\t\top(editor);\n\t\t} else {\n\t\t\tpendingQueue.current.push(op);\n\t\t}\n\t}\n\n\t// Flush the pending queue and fire onReady when editor transitions null → ready.\n\tuseEffect(() => {\n\t\tif (!editor) return;\n\t\tif (pendingQueue.current.length > 0) {\n\t\t\tconst queue = pendingQueue.current.splice(0);\n\t\t\tqueue.forEach((op) => op(editor));\n\t\t}\n\t\tif (!hasCalledOnReady.current) {\n\t\t\thasCalledOnReady.current = true;\n\t\t\tonReadyRef.current?.();\n\t\t}\n\t\t// Surface an error for invalid initialContent immediately on mount.\n\t\tif (isJsonMode) {\n\t\t\tconst result = parseJson(getCodeBlockText(editor));\n\t\t\tsetJsonError(result.valid ? null : result);\n\t\t}\n\t}, [editor, isJsonMode]);\n\n\tuseImperativeHandle(\n\t\tref,\n\t\t() => ({\n\t\t\t// ── Focus ────────────────────────────────────────────────────────\n\t\t\tfocus: (position) => enqueue((e) => e.commands.focus(position)),\n\t\t\tblur: () => enqueue((e) => e.commands.blur()),\n\n\t\t\t// ── Content ──────────────────────────────────────────────────────\n\t\t\tclearContent: () => enqueue((e) => e.commands.clearContent(true)),\n\t\t\tsetContent: (html) => {\n\t\t\t\tconst normalised = normalizeHtml(html);\n\t\t\t\tenqueue((e) => e.commands.setContent(normalised, { emitUpdate: true }));\n\t\t\t},\n\t\t\tinsertContent: (html) => {\n\t\t\t\tconst normalised = normalizeHtml(html);\n\t\t\t\tenqueue((e) => e.commands.insertContent(normalised));\n\t\t\t},\n\t\t\tinsertInlineContent: (html) => {\n\t\t\t\tenqueue((e) => insertInlineHtml(e, html));\n\t\t\t},\n\t\t\tinsertAtStart: (html) => {\n\t\t\t\tconst normalised = normalizeHtml(html);\n\t\t\t\tenqueue((e) => e.commands.insertContentAt(1, normalised));\n\t\t\t},\n\t\t\tinsertBlock: (html) => {\n\t\t\t\tconst normalised = normalizeHtml(html);\n\t\t\t\tenqueue((e) =>\n\t\t\t\t\te.commands.insertContentAt(e.state.doc.content.size, normalised),\n\t\t\t\t);\n\t\t\t},\n\t\t\tappendInline: (html) => {\n\t\t\t\tconst normalised = normalizeHtml(html);\n\t\t\t\t// doc.content.size is after the last </p> (block boundary).\n\t\t\t\t// Subtract 1 to land inside the last paragraph so text appends\n\t\t\t\t// inline rather than being wrapped in a new paragraph each call.\n\t\t\t\tenqueue((e) =>\n\t\t\t\t\te.commands.insertContentAt(e.state.doc.content.size - 1, normalised),\n\t\t\t\t);\n\t\t\t},\n\t\t\t// Backwards-compatible aliases\n\t\t\tinsertAtEnd(html) {\n\t\t\t\tthis.insertBlock(html);\n\t\t\t},\n\t\t\tappendContent(html) {\n\t\t\t\tthis.appendInline(html);\n\t\t\t},\n\t\t\tgetContent: () =>\n\t\t\t\teditor\n\t\t\t\t\t? extractContent(editor)\n\t\t\t\t\t: { html: '', text: '', isEmpty: true, characterCount: 0 },\n\t\t\tgetJSON: () => editor?.getJSON() ?? null,\n\t\t\tgetMentions: () => {\n\t\t\t\tconst agentIds = new Set<string>();\n\t\t\t\tconst teamIds = new Set<string>();\n\t\t\t\tif (!editor) return { agentIds: [], teamIds: [] };\n\t\t\t\teditor.state.doc.descendants((node) => {\n\t\t\t\t\tif (node.type.name === 'mentionAgent' && node.attrs['id'] != null) {\n\t\t\t\t\t\tagentIds.add(String(node.attrs['id']));\n\t\t\t\t\t} else if (\n\t\t\t\t\t\tnode.type.name === 'mentionTeam' &&\n\t\t\t\t\t\tnode.attrs['id'] != null\n\t\t\t\t\t) {\n\t\t\t\t\t\tteamIds.add(String(node.attrs['id']));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn { agentIds: Array.from(agentIds), teamIds: Array.from(teamIds) };\n\t\t\t},\n\n\t\t\t// ── Selection ────────────────────────────────────────────────────\n\t\t\tgetCursorPosition: () => {\n\t\t\t\tif (!editor) return { from: 0, to: 0 };\n\t\t\t\tconst { from, to } = editor.state.selection;\n\t\t\t\treturn { from, to };\n\t\t\t},\n\t\t\tinsertAtPosition: (pos, html) => {\n\t\t\t\tconst normalised = normalizeHtml(html);\n\t\t\t\tenqueue((e) => e.commands.insertContentAt(pos, normalised));\n\t\t\t},\n\t\t\tgetSelectedText: () => {\n\t\t\t\tif (!editor) return '';\n\t\t\t\tconst { state } = editor;\n\t\t\t\tconst { from, to, empty } = state.selection;\n\t\t\t\tif (!empty) {\n\t\t\t\t\treturn state.doc.textBetween(from, to, ' ');\n\t\t\t\t}\n\t\t\t\t// When the cursor is inside a link with nothing selected, return the\n\t\t\t\t// full link text — useful for pre-filling a link modal's text field.\n\t\t\t\tconst linkMarkType = state.schema.marks['link'];\n\t\t\t\tif (linkMarkType) {\n\t\t\t\t\tconst range = getMarkRange(state.doc.resolve(from), linkMarkType);\n\t\t\t\t\tif (range) {\n\t\t\t\t\t\treturn state.doc.textBetween(range.from, range.to, ' ');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn '';\n\t\t\t},\n\n\t\t\t// ── Character count ───────────────────────────────────────────────\n\t\t\tgetCharacterCount: () => ({\n\t\t\t\tcount:\n\t\t\t\t\teditor?.storage.characterCount?.characters?.() ??\n\t\t\t\t\teditor?.getText().length ??\n\t\t\t\t\t0,\n\t\t\t\tlimit: maxCharacters ?? null,\n\t\t\t}),\n\n\t\t\t// ── Sections ─────────────────────────────────────────────────────\n\t\t\tgetSectionContent: (sectionId) =>\n\t\t\t\teditor\n\t\t\t\t\t? extractSectionContent(editor, sectionId)\n\t\t\t\t\t: { html: '', text: '', isEmpty: true, characterCount: 0 },\n\n\t\t\tsetSectionContent: (sectionId, html) => {\n\t\t\t\tconst normalised = normalizeHtml(html);\n\t\t\t\tenqueue((e) => setSectionContentInEditor(e, sectionId, normalised));\n\t\t\t},\n\n\t\t\tfocusSection: (sectionId) => {\n\t\t\t\tenqueue((e) => {\n\t\t\t\t\tif (sectionId === 'body') {\n\t\t\t\t\t\tlet endOfBody = e.state.doc.content.size - 1;\n\t\t\t\t\t\te.state.doc.descendants((node, pos) => {\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tnode.type.name === 'sectionDivider' &&\n\t\t\t\t\t\t\t\tendOfBody === e.state.doc.content.size - 1\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tendOfBody = pos - 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn endOfBody === e.state.doc.content.size - 1;\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif (endOfBody < 1) endOfBody = 1;\n\t\t\t\t\t\te.chain().focus().setTextSelection(endOfBody).run();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tlet targetPos = -1;\n\t\t\t\t\te.state.doc.descendants((node, pos) => {\n\t\t\t\t\t\tif (targetPos !== -1) return false;\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tnode.type.name === 'sectionDivider' &&\n\t\t\t\t\t\t\tnode.attrs['sectionId'] === sectionId\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t// pos + nodeSize lands right after the divider;\n\t\t\t\t\t\t\t// +1 more puts us inside the first paragraph of that section.\n\t\t\t\t\t\t\ttargetPos = pos + node.nodeSize + 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tif (targetPos !== -1) {\n\t\t\t\t\t\te.chain().focus().setTextSelection(targetPos).run();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t},\n\n\t\t\tclearSection: (sectionId) => {\n\t\t\t\tenqueue((e) => setSectionContentInEditor(e, sectionId, '<p></p>'));\n\t\t\t},\n\n\t\t\t// ── Convenience body shorthands ───────────────────────────────────\n\t\t\tgetBodyContent: () =>\n\t\t\t\teditor\n\t\t\t\t\t? extractBodyContent(editor)\n\t\t\t\t\t: { html: '', text: '', isEmpty: true, characterCount: 0 },\n\t\t\tsetBodyContent: (html) => {\n\t\t\t\tconst normalised = normalizeHtml(html);\n\t\t\t\tenqueue((e) => setSectionContentInEditor(e, 'body', normalised));\n\t\t\t},\n\t\t\tsetBodyAndSections: (body, sections) => {\n\t\t\t\tconst html = buildSectionedContent(\n\t\t\t\t\tnormalizeHtml(body),\n\t\t\t\t\tsections.map((s) => ({\n\t\t\t\t\t\tid: s.id,\n\t\t\t\t\t\tcontent: normalizeHtml(s.content),\n\t\t\t\t\t})),\n\t\t\t\t);\n\t\t\t\tenqueue((e) => e.commands.setContent(html, { emitUpdate: true }));\n\t\t\t},\n\t\t\tappendBodyContent: (html) => {\n\t\t\t\tconst normalised = normalizeHtml(html);\n\t\t\t\t// findSectionEndPos returns the position of the first divider (or\n\t\t\t\t// doc.content.size), which is the block boundary after the last </p>.\n\t\t\t\t// Subtract 1 to stay inside the last paragraph so successive calls\n\t\t\t\t// append inline text rather than creating a new paragraph each time.\n\t\t\t\tenqueue((e) => {\n\t\t\t\t\tconst boundaryPos = findSectionEndPos(e, 'body');\n\t\t\t\t\te.commands.insertContentAt(boundaryPos - 1, normalised, {\n\t\t\t\t\t\tparseOptions: { preserveWhitespace: true },\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t},\n\t\t\tinsertAtSectionStart: (sectionId, html) => {\n\t\t\t\tconst normalised = normalizeHtml(html);\n\t\t\t\tenqueue((e) => {\n\t\t\t\t\tconst pos = findSectionStartPos(e, sectionId);\n\t\t\t\t\tif (pos !== -1)\n\t\t\t\t\t\te.commands.insertContentAt(pos, normalised, {\n\t\t\t\t\t\t\tparseOptions: { preserveWhitespace: true },\n\t\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t},\n\t\t\tinsertAtSectionEnd: (sectionId, html) => {\n\t\t\t\tconst normalised = normalizeHtml(html);\n\t\t\t\tenqueue((e) => {\n\t\t\t\t\tconst pos = findSectionEndPos(e, sectionId);\n\t\t\t\t\te.commands.insertContentAt(pos, normalised, {\n\t\t\t\t\t\tparseOptions: { preserveWhitespace: true },\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t},\n\t\t\t// ── Formats & actions ─────────────────────────────────────────────\n\t\t\tgetActiveFormats: () =>\n\t\t\t\teditor ? extractActiveFormats(editor) : DEFAULT_FORMAT_STATE,\n\t\t\tactions: {\n\t\t\t\ttoggleBold: () => editor?.chain().focus().toggleBold().run(),\n\t\t\t\ttoggleItalic: () => editor?.chain().focus().toggleItalic().run(),\n\t\t\t\ttoggleUnderline: () => editor?.chain().focus().toggleUnderline().run(),\n\t\t\t\ttoggleStrike: () => editor?.chain().focus().toggleStrike().run(),\n\t\t\t\ttoggleBulletList: () =>\n\t\t\t\t\teditor?.chain().focus().toggleBulletList().run(),\n\t\t\t\ttoggleOrderedList: () =>\n\t\t\t\t\teditor?.chain().focus().toggleOrderedList().run(),\n\t\t\t\ttoggleBlockquote: () =>\n\t\t\t\t\teditor?.chain().focus().toggleBlockquote().run(),\n\t\t\t\ttoggleCodeBlock: () => editor?.chain().focus().toggleCodeBlock().run(),\n\t\t\t\tsetTextAlign: (align) =>\n\t\t\t\t\teditor?.chain().focus().setTextAlign(align).run(),\n\t\t\t\tsetFontFamily: (font) =>\n\t\t\t\t\teditor?.chain().focus().setFontFamily(font).run(),\n\t\t\t\tsetFontSize: (size) => editor?.chain().focus().setFontSize(size).run(),\n\t\t\t\tsetColor: (color) => editor?.chain().focus().setColor(color).run(),\n\t\t\t\tsetHighlight: (color) =>\n\t\t\t\t\teditor?.chain().focus().toggleHighlight({ color }).run(),\n\t\t\t\tunsetColor: () => editor?.chain().focus().unsetColor().run(),\n\t\t\t\tunsetHighlight: () => editor?.chain().focus().unsetHighlight().run(),\n\t\t\t\tsetLink: (href, text) => {\n\t\t\t\t\tif (!editor) return;\n\t\t\t\t\tif (text !== undefined) {\n\t\t\t\t\t\teditor\n\t\t\t\t\t\t\t.chain()\n\t\t\t\t\t\t\t.focus()\n\t\t\t\t\t\t\t.extendMarkRange('link')\n\t\t\t\t\t\t\t.command(({ tr, state }) => {\n\t\t\t\t\t\t\t\tconst { from, to } = tr.selection;\n\t\t\t\t\t\t\t\tconst linkMarkType = state.schema.marks['link'];\n\t\t\t\t\t\t\t\tif (!linkMarkType) return false;\n\t\t\t\t\t\t\t\tconst linkNode = state.schema.text(text, [\n\t\t\t\t\t\t\t\t\tlinkMarkType.create({ href }),\n\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t\tconst space = state.schema.text(' ');\n\t\t\t\t\t\t\t\ttr.replaceWith(from, to, [linkNode, space]);\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t.run();\n\t\t\t\t\t} else {\n\t\t\t\t\t\teditor\n\t\t\t\t\t\t\t.chain()\n\t\t\t\t\t\t\t.focus()\n\t\t\t\t\t\t\t.extendMarkRange('link')\n\t\t\t\t\t\t\t.setLink({ href })\n\t\t\t\t\t\t\t.insertContent(' ')\n\t\t\t\t\t\t\t.run();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tupdateLink: (href) =>\n\t\t\t\t\teditor\n\t\t\t\t\t\t?.chain()\n\t\t\t\t\t\t.focus()\n\t\t\t\t\t\t.extendMarkRange('link')\n\t\t\t\t\t\t.setLink({ href })\n\t\t\t\t\t\t.run(),\n\t\t\t\tremoveLink: () =>\n\t\t\t\t\teditor?.chain().focus().extendMarkRange('link').unsetLink().run(),\n\t\t\t\tinsertEmoji: (emoji) =>\n\t\t\t\t\teditor?.chain().focus().insertContent(emoji).run(),\n\t\t\t\tinsertVariable: (variableName) =>\n\t\t\t\t\teditor?.chain().focus().insertContent(`{{${variableName}}}`).run(),\n\t\t\t\tinsertHtml: (html) =>\n\t\t\t\t\teditor?.commands.insertContent(normalizeHtml(html)),\n\t\t\t\tundo: () => editor?.chain().focus().undo().run(),\n\t\t\t\tredo: () => editor?.chain().focus().redo().run(),\n\t\t\t\tcanUndo: () => editor?.can().undo() ?? false,\n\t\t\t\tcanRedo: () => editor?.can().redo() ?? false,\n\t\t\t\ttoggleSuperscript: () =>\n\t\t\t\t\teditor?.chain().focus().toggleSuperscript().run(),\n\t\t\t\ttoggleSubscript: () => editor?.chain().focus().toggleSubscript().run(),\n\t\t\t\tinsertImage: (src) => editor?.chain().focus().setImage({ src }).run(),\n\t\t\t},\n\n\t\t\t// ── JSON body ─────────────────────────────────────────────────────\n\t\t\tjson: features?.jsonMode\n\t\t\t\t? {\n\t\t\t\t\t\tgetText: () => (editor ? getCodeBlockText(editor) : ''),\n\t\t\t\t\t\tsetText: (raw) => enqueue((e) => setCodeBlockText(e, raw)),\n\t\t\t\t\t\tparse: () => parseJson(editor ? getCodeBlockText(editor) : ''),\n\t\t\t\t\t\tisValid: () =>\n\t\t\t\t\t\t\tparseJson(editor ? getCodeBlockText(editor) : '').valid,\n\t\t\t\t\t\tformat: (indent = 2) =>\n\t\t\t\t\t\t\tenqueue((e) => {\n\t\t\t\t\t\t\t\tconst { valid, value } = parseJson(getCodeBlockText(e));\n\t\t\t\t\t\t\t\tif (!valid || value === null) return;\n\t\t\t\t\t\t\t\tsetCodeBlockText(e, JSON.stringify(value, null, indent));\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\tminify: () =>\n\t\t\t\t\t\t\tenqueue((e) => {\n\t\t\t\t\t\t\t\tconst { valid, value } = parseJson(getCodeBlockText(e));\n\t\t\t\t\t\t\t\tif (!valid || value === null) return;\n\t\t\t\t\t\t\t\tsetCodeBlockText(e, JSON.stringify(value));\n\t\t\t\t\t\t\t}),\n\t\t\t\t }\n\t\t\t\t: undefined,\n\t\t}),\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t[editor],\n\t);\n\n\t// ── jsonMode floating actions ────────────────────────────────────────────\n\t// Beautify pretty-prints in place (no-op / disabled while the JSON is broken);\n\t// Copy writes the raw text to the clipboard with transient feedback.\n\tconst handleJsonBeautify = () => {\n\t\tif (!editor) return;\n\t\tconst { valid, value } = parseJson(getCodeBlockText(editor));\n\t\tif (!valid || value === null) return;\n\t\tsetCodeBlockText(editor, JSON.stringify(value, null, 2));\n\t};\n\tconst handleJsonCopy = () => {\n\t\tif (!editor) return;\n\t\tvoid navigator.clipboard?.writeText(getCodeBlockText(editor));\n\t\tsetJsonCopied(true);\n\t\tsetTimeout(() => setJsonCopied(false), 1500);\n\t};\n\n\tif (!editor) return null;\n\n\treturn (\n\t\t<BikEditorShell\n\t\t\tminHeight={minHeight}\n\t\t\tmaxHeight={maxHeight}\n\t\t\ttightParagraphs={!features?.richPaste}\n\t\t\tjsonMode={isJsonMode}\n\t\t\tstyle={style}\n\t\t\tclassName={className}\n\t\t>\n\t\t\t{isJsonMode && (\n\t\t\t\t<BikJsonHeader>\n\t\t\t\t\t<span className=\"bik-json-header-label\">JSON</span>\n\t\t\t\t\t<div className=\"bik-json-header-actions\">\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tonClick={handleJsonBeautify}\n\t\t\t\t\t\t\tdisabled={!!jsonError}\n\t\t\t\t\t\t\ttitle=\"Format JSON\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<WandSparkles size={16} />\n\t\t\t\t\t\t\t<BodyCaption>Beautify</BodyCaption>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t\t<button type=\"button\" onClick={handleJsonCopy} title=\"Copy JSON\">\n\t\t\t\t\t\t\t<Copy size={16} />\n\t\t\t\t\t\t\t{jsonCopied && <BodyCaption>Copied</BodyCaption>}\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</div>\n\t\t\t\t</BikJsonHeader>\n\t\t\t)}\n\t\t\t<EditorContent editor={editor} />\n\t\t\t<LinkBubbleMenu editor={editor} renderLinkTooltip={link?.renderTooltip} />\n\t\t\t{isJsonMode && jsonError ? (\n\t\t\t\trenderJsonError ? (\n\t\t\t\t\trenderJsonError(jsonError)\n\t\t\t\t) : (\n\t\t\t\t\t<BikJsonError>\n\t\t\t\t\t\t{jsonError.line != null && (\n\t\t\t\t\t\t\t<strong>\n\t\t\t\t\t\t\t\tLine {jsonError.line}\n\t\t\t\t\t\t\t\t{jsonError.column != null ? `, column ${jsonError.column}` : ''}\n\t\t\t\t\t\t\t\t:{' '}\n\t\t\t\t\t\t\t</strong>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{jsonError.error}\n\t\t\t\t\t</BikJsonError>\n\t\t\t\t)\n\t\t\t) : null}\n\t\t</BikEditorShell>\n\t);\n};\n\nexport const BikEditor = forwardRef<BikEditorRef, BikEditorProps>(\n\tBikEditorInner,\n);\nBikEditor.displayName = 'BikEditor';\n"],"names":["cssToString","style","k","v","c","BikEditorInner","props","ref","initialContent","sections","features","disabled","maxCharacters","shortcuts","sendShortcut","mentions","slashCommands","link","onPaste","onReady","onChange","onSend","onFocus","onBlur","onSelectionChange","minHeight","maxHeight","className","editorClassName","editorStyle","renderJsonError","isJsonMode","jsonError","setJsonError","useState","jsonCopied","setJsonCopied","initialEditorContent","buildJsonCodeBlockHtml","buildSectionedContent","normalizeHtml","s","pendingQueue","useRef","hasCalledOnReady","onReadyRef","onChangeRef","onSelectionChangeRef","prevFormatsRef","DEFAULT_FORMAT_STATE","onFocusRef","onBlurRef","onSendRef","agentMentionsRef","teamMentionsRef","slashCommandsRef","editor","useEditor","buildExtensions","snapshot","e","extractContent","result","parseJson","getCodeBlockText","next","extractActiveFormats","prev","enqueue","op","useEffect","useImperativeHandle","position","html","normalised","insertInlineHtml","agentIds","teamIds","node","from","to","pos","state","empty","linkMarkType","range","getMarkRange","sectionId","extractSectionContent","setSectionContentInEditor","endOfBody","targetPos","extractBodyContent","body","boundaryPos","findSectionEndPos","findSectionStartPos","align","font","size","color","href","text","tr","linkNode","space","emoji","variableName","src","raw","setCodeBlockText","indent","valid","value","handleJsonBeautify","handleJsonCopy","jsxs","BikEditorShell","BikJsonHeader","jsx","WandSparkles","BodyCaption","Copy","EditorContent","LinkBubbleMenu","BikJsonError","BikEditor","forwardRef"],"mappings":"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"}
1
+ {"version":3,"file":"BikEditor.js","sources":["../../../src/editor/BikEditor.tsx"],"sourcesContent":["'use client';\n\n/**\n * IMPLEMENTATION LAYER — TipTap-specific.\n * If the underlying editor is swapped, this file changes; BikEditor.types.ts and\n * src/editor/index.ts (the consumer contract) do NOT change.\n */\nimport { Editor, getMarkRange } from '@tiptap/core';\nimport { EditorContent, useEditor } from '@tiptap/react';\nimport React, {\n\tforwardRef,\n\tuseEffect,\n\tuseImperativeHandle,\n\tuseRef,\n\tuseState,\n} from 'react';\nimport { BodyCaption } from '@src/components/TypographyStyle';\nimport { Copy, WandSparkles } from '../icons';\nimport {\n\tBikEditorShell,\n\tBikJsonError,\n\tBikJsonHeader,\n} from './BikEditor.styles';\nimport {\n\tBikEditorProps,\n\tBikEditorRef,\n\tDEFAULT_FORMAT_STATE,\n\tFormatState,\n\tJsonParseResult,\n} from './BikEditor.types';\nimport {\n\tbuildJsonCodeBlockHtml,\n\tbuildSectionedContent,\n\textractActiveFormats,\n\textractBodyContent,\n\textractContent,\n\textractSectionContent,\n\tfindSectionEndPos,\n\tfindSectionStartPos,\n\tgetCodeBlockText,\n\tinsertInlineHtml,\n\tnormalizeHtml,\n\tparseJson,\n\tsetCodeBlockText,\n\tsetSectionContentInEditor,\n} from './BikEditor.utils';\nimport { buildExtensions } from './extensions/buildExtensions';\nimport { LinkBubbleMenu } from './floating/LinkBubbleMenu';\n\n/** Convert React.CSSProperties to an inline CSS string for editorProps.attributes. */\nfunction cssToString(style: React.CSSProperties): string {\n\treturn Object.entries(style)\n\t\t.map(\n\t\t\t([k, v]) => `${k.replace(/([A-Z])/g, (c) => `-${c.toLowerCase()}`)}:${v}`,\n\t\t)\n\t\t.join(';');\n}\n\nconst BikEditorInner = (\n\tprops: BikEditorProps,\n\tref: React.Ref<BikEditorRef>,\n) => {\n\tconst {\n\t\tinitialContent,\n\t\tsections,\n\t\tfeatures,\n\t\tdisabled,\n\t\tmaxCharacters,\n\t\tcharacterLimit,\n\t\tshortcuts,\n\t\tsendShortcut,\n\t\tmentions,\n\t\tslashCommands,\n\t\tlink,\n\t\tonPaste,\n\t\tonReady,\n\t\tonChange,\n\t\tonSend,\n\t\tonFocus,\n\t\tonBlur,\n\t\tonSelectionChange,\n\t\tminHeight,\n\t\tmaxHeight,\n\t\tstyle,\n\t\tclassName,\n\t\teditorClassName,\n\t\teditorStyle,\n\t\trenderJsonError,\n\t} = props;\n\n\tconst isJsonMode = !!features?.jsonMode;\n\n\t// Live JSON parse error, shown inside the editor when jsonMode is on.\n\t// null = valid (or not applicable) → nothing rendered.\n\tconst [jsonError, setJsonError] = useState<JsonParseResult | null>(null);\n\t// Transient \"Copied\" state for the jsonMode copy button.\n\tconst [jsonCopied, setJsonCopied] = useState(false);\n\n\t// JSON body mode: treat initialContent as raw JSON text and wrap it in a code\n\t// block. Skips section/HTML normalisation entirely.\n\tconst initialEditorContent = isJsonMode\n\t\t? buildJsonCodeBlockHtml(initialContent ?? '')\n\t\t: sections?.length\n\t\t? buildSectionedContent(\n\t\t\t\tnormalizeHtml(initialContent ?? ''),\n\t\t\t\tsections.map((s) => ({ ...s, content: normalizeHtml(s.content) })),\n\t\t )\n\t\t: normalizeHtml(initialContent ?? '');\n\n\t// ── Command queue ─────────────────────────────────────────────────────────\n\t// TipTap's useEditor initializes asynchronously; the editor instance is null\n\t// until the first commit. Any imperative method called before the editor is\n\t// ready is enqueued here and flushed automatically once it becomes non-null.\n\t// Consumers never need setTimeout or readiness guards.\n\tconst pendingQueue = useRef<Array<(e: Editor) => void>>([]);\n\tconst hasCalledOnReady = useRef(false);\n\t// Keep stable refs to all callbacks so useEditor receives the same function\n\t// identity on every render — prevents TipTap from re-registering event\n\t// handlers every time the parent re-renders with new inline function props.\n\tconst onReadyRef = useRef(onReady);\n\tonReadyRef.current = onReady;\n\tconst onChangeRef = useRef(onChange);\n\tonChangeRef.current = onChange;\n\tconst onSelectionChangeRef = useRef(onSelectionChange);\n\tonSelectionChangeRef.current = onSelectionChange;\n\tconst prevFormatsRef = useRef<FormatState>(DEFAULT_FORMAT_STATE);\n\tconst onFocusRef = useRef(onFocus);\n\tonFocusRef.current = onFocus;\n\tconst onBlurRef = useRef(onBlur);\n\tonBlurRef.current = onBlur;\n\tconst onSendRef = useRef(onSend);\n\tonSendRef.current = onSend;\n\tconst agentMentionsRef = useRef(mentions?.agents ?? []);\n\tagentMentionsRef.current = mentions?.agents ?? [];\n\tconst teamMentionsRef = useRef(mentions?.teams ?? []);\n\tteamMentionsRef.current = mentions?.teams ?? [];\n\tconst slashCommandsRef = useRef(slashCommands?.items ?? []);\n\tslashCommandsRef.current = slashCommands?.items ?? [];\n\n\tconst editor = useEditor({\n\t\textensions: buildExtensions({\n\t\t\tfeatures,\n\t\t\tplaceholder: props.placeholder,\n\t\t\tmaxCharacters,\n\t\t\tcharacterLimit,\n\t\t\thasSections: (sections?.length ?? 0) > 0,\n\t\t\tmentions: {\n\t\t\t\tagents: mentions ? agentMentionsRef : undefined,\n\t\t\t\tteams: mentions ? teamMentionsRef : undefined,\n\t\t\t},\n\t\t\tslashCommands: slashCommands ? slashCommandsRef : undefined,\n\t\t\tonPaste,\n\t\t\tonSend: onSend ? (snapshot) => onSendRef.current?.(snapshot) : undefined,\n\t\t\tsendShortcut,\n\t\t\tshortcuts,\n\t\t\tonMentionSelected: mentions?.onSelect,\n\t\t\tonSlashCommandSelected: slashCommands?.onSelect,\n\t\t\trenderMentionItem: mentions?.renderItem,\n\t\t\trenderMentionDropdown: mentions?.renderDropdown,\n\t\t\tremoveMentionTriggerOnDismiss: mentions?.removeTriggerOnDismiss,\n\t\t\trenderSlashCommandItem: slashCommands?.renderItem,\n\t\t\trenderSlashCommandDropdown: slashCommands?.renderDropdown,\n\t\t}),\n\t\tcontent: initialEditorContent,\n\t\teditable: !disabled,\n\t\timmediatelyRender: false, // SSR-safe — NEVER remove this\n\t\teditorProps: {\n\t\t\tattributes: {\n\t\t\t\t...(editorClassName ? { class: editorClassName } : {}),\n\t\t\t\t...(editorStyle ? { style: cssToString(editorStyle) } : {}),\n\t\t\t},\n\t\t},\n\t\tonUpdate: ({ editor: e }) => {\n\t\t\tonChangeRef.current?.(extractContent(e));\n\t\t\tif (isJsonMode) {\n\t\t\t\tconst result = parseJson(getCodeBlockText(e));\n\t\t\t\tsetJsonError(result.valid ? null : result);\n\t\t\t}\n\t\t},\n\t\tonTransaction: ({ editor: e }) => {\n\t\t\tconst next = extractActiveFormats(e);\n\t\t\tconst prev = prevFormatsRef.current;\n\t\t\tconst changed =\n\t\t\t\tprev.bold !== next.bold ||\n\t\t\t\tprev.italic !== next.italic ||\n\t\t\t\tprev.underline !== next.underline ||\n\t\t\t\tprev.strike !== next.strike ||\n\t\t\t\tprev.bulletList !== next.bulletList ||\n\t\t\t\tprev.orderedList !== next.orderedList ||\n\t\t\t\tprev.blockquote !== next.blockquote ||\n\t\t\t\tprev.codeBlock !== next.codeBlock ||\n\t\t\t\tprev.superscript !== next.superscript ||\n\t\t\t\tprev.subscript !== next.subscript ||\n\t\t\t\tprev.textAlign !== next.textAlign ||\n\t\t\t\tprev.fontFamily !== next.fontFamily ||\n\t\t\t\tprev.fontSize !== next.fontSize ||\n\t\t\t\tprev.color !== next.color ||\n\t\t\t\tprev.highlight !== next.highlight ||\n\t\t\t\tprev.link?.href !== next.link?.href;\n\t\t\tif (changed) {\n\t\t\t\tprevFormatsRef.current = next;\n\t\t\t\tonSelectionChangeRef.current?.(next);\n\t\t\t}\n\t\t},\n\t\tonFocus: () => onFocusRef.current?.(),\n\t\tonBlur: () => onBlurRef.current?.(),\n\t});\n\n\t// ── enqueue ───────────────────────────────────────────────────────────────\n\t// Run immediately if the editor is ready; otherwise defer to the queue.\n\t// Closures passed to enqueue MUST capture all parameters explicitly —\n\t// they must NOT close over `editor` (which would be null at enqueue time).\n\tfunction enqueue(op: (e: Editor) => void): void {\n\t\tif (editor) {\n\t\t\top(editor);\n\t\t} else {\n\t\t\tpendingQueue.current.push(op);\n\t\t}\n\t}\n\n\t// Flush the pending queue and fire onReady when editor transitions null → ready.\n\tuseEffect(() => {\n\t\tif (!editor) return;\n\t\tif (pendingQueue.current.length > 0) {\n\t\t\tconst queue = pendingQueue.current.splice(0);\n\t\t\tqueue.forEach((op) => op(editor));\n\t\t}\n\t\tif (!hasCalledOnReady.current) {\n\t\t\thasCalledOnReady.current = true;\n\t\t\tonReadyRef.current?.();\n\t\t}\n\t\t// Surface an error for invalid initialContent immediately on mount.\n\t\tif (isJsonMode) {\n\t\t\tconst result = parseJson(getCodeBlockText(editor));\n\t\t\tsetJsonError(result.valid ? null : result);\n\t\t}\n\t}, [editor, isJsonMode]);\n\n\tuseImperativeHandle(\n\t\tref,\n\t\t() => ({\n\t\t\t// ── Focus ────────────────────────────────────────────────────────\n\t\t\tfocus: (position) => enqueue((e) => e.commands.focus(position)),\n\t\t\tblur: () => enqueue((e) => e.commands.blur()),\n\n\t\t\t// ── Content ──────────────────────────────────────────────────────\n\t\t\tclearContent: () => enqueue((e) => e.commands.clearContent(true)),\n\t\t\tsetContent: (html) => {\n\t\t\t\tconst normalised = normalizeHtml(html);\n\t\t\t\tenqueue((e) => e.commands.setContent(normalised, { emitUpdate: true }));\n\t\t\t},\n\t\t\tinsertContent: (html) => {\n\t\t\t\tconst normalised = normalizeHtml(html);\n\t\t\t\tenqueue((e) => e.commands.insertContent(normalised));\n\t\t\t},\n\t\t\tinsertInlineContent: (html) => {\n\t\t\t\tenqueue((e) => insertInlineHtml(e, html));\n\t\t\t},\n\t\t\tinsertAtStart: (html) => {\n\t\t\t\tconst normalised = normalizeHtml(html);\n\t\t\t\tenqueue((e) => e.commands.insertContentAt(1, normalised));\n\t\t\t},\n\t\t\tinsertBlock: (html) => {\n\t\t\t\tconst normalised = normalizeHtml(html);\n\t\t\t\tenqueue((e) =>\n\t\t\t\t\te.commands.insertContentAt(e.state.doc.content.size, normalised),\n\t\t\t\t);\n\t\t\t},\n\t\t\tappendInline: (html) => {\n\t\t\t\tconst normalised = normalizeHtml(html);\n\t\t\t\t// doc.content.size is after the last </p> (block boundary).\n\t\t\t\t// Subtract 1 to land inside the last paragraph so text appends\n\t\t\t\t// inline rather than being wrapped in a new paragraph each call.\n\t\t\t\tenqueue((e) =>\n\t\t\t\t\te.commands.insertContentAt(e.state.doc.content.size - 1, normalised),\n\t\t\t\t);\n\t\t\t},\n\t\t\t// Backwards-compatible aliases\n\t\t\tinsertAtEnd(html) {\n\t\t\t\tthis.insertBlock(html);\n\t\t\t},\n\t\t\tappendContent(html) {\n\t\t\t\tthis.appendInline(html);\n\t\t\t},\n\t\t\tgetContent: () =>\n\t\t\t\teditor\n\t\t\t\t\t? extractContent(editor)\n\t\t\t\t\t: { html: '', text: '', isEmpty: true, characterCount: 0 },\n\t\t\tgetJSON: () => editor?.getJSON() ?? null,\n\t\t\tgetMentions: () => {\n\t\t\t\tconst agentIds = new Set<string>();\n\t\t\t\tconst teamIds = new Set<string>();\n\t\t\t\tif (!editor) return { agentIds: [], teamIds: [] };\n\t\t\t\teditor.state.doc.descendants((node) => {\n\t\t\t\t\tif (node.type.name === 'mentionAgent' && node.attrs['id'] != null) {\n\t\t\t\t\t\tagentIds.add(String(node.attrs['id']));\n\t\t\t\t\t} else if (\n\t\t\t\t\t\tnode.type.name === 'mentionTeam' &&\n\t\t\t\t\t\tnode.attrs['id'] != null\n\t\t\t\t\t) {\n\t\t\t\t\t\tteamIds.add(String(node.attrs['id']));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn { agentIds: Array.from(agentIds), teamIds: Array.from(teamIds) };\n\t\t\t},\n\n\t\t\t// ── Selection ────────────────────────────────────────────────────\n\t\t\tgetCursorPosition: () => {\n\t\t\t\tif (!editor) return { from: 0, to: 0 };\n\t\t\t\tconst { from, to } = editor.state.selection;\n\t\t\t\treturn { from, to };\n\t\t\t},\n\t\t\tinsertAtPosition: (pos, html) => {\n\t\t\t\tconst normalised = normalizeHtml(html);\n\t\t\t\tenqueue((e) => e.commands.insertContentAt(pos, normalised));\n\t\t\t},\n\t\t\tgetSelectedText: () => {\n\t\t\t\tif (!editor) return '';\n\t\t\t\tconst { state } = editor;\n\t\t\t\tconst { from, to, empty } = state.selection;\n\t\t\t\tif (!empty) {\n\t\t\t\t\treturn state.doc.textBetween(from, to, ' ');\n\t\t\t\t}\n\t\t\t\t// When the cursor is inside a link with nothing selected, return the\n\t\t\t\t// full link text — useful for pre-filling a link modal's text field.\n\t\t\t\tconst linkMarkType = state.schema.marks['link'];\n\t\t\t\tif (linkMarkType) {\n\t\t\t\t\tconst range = getMarkRange(state.doc.resolve(from), linkMarkType);\n\t\t\t\t\tif (range) {\n\t\t\t\t\t\treturn state.doc.textBetween(range.from, range.to, ' ');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn '';\n\t\t\t},\n\n\t\t\t// ── Character count ───────────────────────────────────────────────\n\t\t\tgetCharacterCount: () => ({\n\t\t\t\tcount:\n\t\t\t\t\teditor?.storage.characterCount?.characters?.() ??\n\t\t\t\t\teditor?.getText().length ??\n\t\t\t\t\t0,\n\t\t\t\tlimit: maxCharacters ?? null,\n\t\t\t}),\n\n\t\t\t// ── Sections ─────────────────────────────────────────────────────\n\t\t\tgetSectionContent: (sectionId) =>\n\t\t\t\teditor\n\t\t\t\t\t? extractSectionContent(editor, sectionId)\n\t\t\t\t\t: { html: '', text: '', isEmpty: true, characterCount: 0 },\n\n\t\t\tsetSectionContent: (sectionId, html) => {\n\t\t\t\tconst normalised = normalizeHtml(html);\n\t\t\t\tenqueue((e) => setSectionContentInEditor(e, sectionId, normalised));\n\t\t\t},\n\n\t\t\tfocusSection: (sectionId) => {\n\t\t\t\tenqueue((e) => {\n\t\t\t\t\tif (sectionId === 'body') {\n\t\t\t\t\t\tlet endOfBody = e.state.doc.content.size - 1;\n\t\t\t\t\t\te.state.doc.descendants((node, pos) => {\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tnode.type.name === 'sectionDivider' &&\n\t\t\t\t\t\t\t\tendOfBody === e.state.doc.content.size - 1\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tendOfBody = pos - 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn endOfBody === e.state.doc.content.size - 1;\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif (endOfBody < 1) endOfBody = 1;\n\t\t\t\t\t\te.chain().focus().setTextSelection(endOfBody).run();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tlet targetPos = -1;\n\t\t\t\t\te.state.doc.descendants((node, pos) => {\n\t\t\t\t\t\tif (targetPos !== -1) return false;\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tnode.type.name === 'sectionDivider' &&\n\t\t\t\t\t\t\tnode.attrs['sectionId'] === sectionId\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t// pos + nodeSize lands right after the divider;\n\t\t\t\t\t\t\t// +1 more puts us inside the first paragraph of that section.\n\t\t\t\t\t\t\ttargetPos = pos + node.nodeSize + 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tif (targetPos !== -1) {\n\t\t\t\t\t\te.chain().focus().setTextSelection(targetPos).run();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t},\n\n\t\t\tclearSection: (sectionId) => {\n\t\t\t\tenqueue((e) => setSectionContentInEditor(e, sectionId, '<p></p>'));\n\t\t\t},\n\n\t\t\t// ── Convenience body shorthands ───────────────────────────────────\n\t\t\tgetBodyContent: () =>\n\t\t\t\teditor\n\t\t\t\t\t? extractBodyContent(editor)\n\t\t\t\t\t: { html: '', text: '', isEmpty: true, characterCount: 0 },\n\t\t\tsetBodyContent: (html) => {\n\t\t\t\tconst normalised = normalizeHtml(html);\n\t\t\t\tenqueue((e) => setSectionContentInEditor(e, 'body', normalised));\n\t\t\t},\n\t\t\tsetBodyAndSections: (body, sections) => {\n\t\t\t\tconst html = buildSectionedContent(\n\t\t\t\t\tnormalizeHtml(body),\n\t\t\t\t\tsections.map((s) => ({\n\t\t\t\t\t\tid: s.id,\n\t\t\t\t\t\tcontent: normalizeHtml(s.content),\n\t\t\t\t\t})),\n\t\t\t\t);\n\t\t\t\tenqueue((e) => e.commands.setContent(html, { emitUpdate: true }));\n\t\t\t},\n\t\t\tappendBodyContent: (html) => {\n\t\t\t\tconst normalised = normalizeHtml(html);\n\t\t\t\t// findSectionEndPos returns the position of the first divider (or\n\t\t\t\t// doc.content.size), which is the block boundary after the last </p>.\n\t\t\t\t// Subtract 1 to stay inside the last paragraph so successive calls\n\t\t\t\t// append inline text rather than creating a new paragraph each time.\n\t\t\t\tenqueue((e) => {\n\t\t\t\t\tconst boundaryPos = findSectionEndPos(e, 'body');\n\t\t\t\t\te.commands.insertContentAt(boundaryPos - 1, normalised, {\n\t\t\t\t\t\tparseOptions: { preserveWhitespace: true },\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t},\n\t\t\tinsertAtSectionStart: (sectionId, html) => {\n\t\t\t\tconst normalised = normalizeHtml(html);\n\t\t\t\tenqueue((e) => {\n\t\t\t\t\tconst pos = findSectionStartPos(e, sectionId);\n\t\t\t\t\tif (pos !== -1)\n\t\t\t\t\t\te.commands.insertContentAt(pos, normalised, {\n\t\t\t\t\t\t\tparseOptions: { preserveWhitespace: true },\n\t\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t},\n\t\t\tinsertAtSectionEnd: (sectionId, html) => {\n\t\t\t\tconst normalised = normalizeHtml(html);\n\t\t\t\tenqueue((e) => {\n\t\t\t\t\tconst pos = findSectionEndPos(e, sectionId);\n\t\t\t\t\te.commands.insertContentAt(pos, normalised, {\n\t\t\t\t\t\tparseOptions: { preserveWhitespace: true },\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t},\n\t\t\t// ── Formats & actions ─────────────────────────────────────────────\n\t\t\tgetActiveFormats: () =>\n\t\t\t\teditor ? extractActiveFormats(editor) : DEFAULT_FORMAT_STATE,\n\t\t\tactions: {\n\t\t\t\ttoggleBold: () => editor?.chain().focus().toggleBold().run(),\n\t\t\t\ttoggleItalic: () => editor?.chain().focus().toggleItalic().run(),\n\t\t\t\ttoggleUnderline: () => editor?.chain().focus().toggleUnderline().run(),\n\t\t\t\ttoggleStrike: () => editor?.chain().focus().toggleStrike().run(),\n\t\t\t\ttoggleBulletList: () =>\n\t\t\t\t\teditor?.chain().focus().toggleBulletList().run(),\n\t\t\t\ttoggleOrderedList: () =>\n\t\t\t\t\teditor?.chain().focus().toggleOrderedList().run(),\n\t\t\t\ttoggleBlockquote: () =>\n\t\t\t\t\teditor?.chain().focus().toggleBlockquote().run(),\n\t\t\t\ttoggleCodeBlock: () => editor?.chain().focus().toggleCodeBlock().run(),\n\t\t\t\tsetTextAlign: (align) =>\n\t\t\t\t\teditor?.chain().focus().setTextAlign(align).run(),\n\t\t\t\tsetFontFamily: (font) =>\n\t\t\t\t\teditor?.chain().focus().setFontFamily(font).run(),\n\t\t\t\tsetFontSize: (size) => editor?.chain().focus().setFontSize(size).run(),\n\t\t\t\tsetColor: (color) => editor?.chain().focus().setColor(color).run(),\n\t\t\t\tsetHighlight: (color) =>\n\t\t\t\t\teditor?.chain().focus().toggleHighlight({ color }).run(),\n\t\t\t\tunsetColor: () => editor?.chain().focus().unsetColor().run(),\n\t\t\t\tunsetHighlight: () => editor?.chain().focus().unsetHighlight().run(),\n\t\t\t\tsetLink: (href, text) => {\n\t\t\t\t\tif (!editor) return;\n\t\t\t\t\tif (text !== undefined) {\n\t\t\t\t\t\teditor\n\t\t\t\t\t\t\t.chain()\n\t\t\t\t\t\t\t.focus()\n\t\t\t\t\t\t\t.extendMarkRange('link')\n\t\t\t\t\t\t\t.command(({ tr, state }) => {\n\t\t\t\t\t\t\t\tconst { from, to } = tr.selection;\n\t\t\t\t\t\t\t\tconst linkMarkType = state.schema.marks['link'];\n\t\t\t\t\t\t\t\tif (!linkMarkType) return false;\n\t\t\t\t\t\t\t\tconst linkNode = state.schema.text(text, [\n\t\t\t\t\t\t\t\t\tlinkMarkType.create({ href }),\n\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t\tconst space = state.schema.text(' ');\n\t\t\t\t\t\t\t\ttr.replaceWith(from, to, [linkNode, space]);\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t.run();\n\t\t\t\t\t} else {\n\t\t\t\t\t\teditor\n\t\t\t\t\t\t\t.chain()\n\t\t\t\t\t\t\t.focus()\n\t\t\t\t\t\t\t.extendMarkRange('link')\n\t\t\t\t\t\t\t.setLink({ href })\n\t\t\t\t\t\t\t.insertContent(' ')\n\t\t\t\t\t\t\t.run();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tupdateLink: (href) =>\n\t\t\t\t\teditor\n\t\t\t\t\t\t?.chain()\n\t\t\t\t\t\t.focus()\n\t\t\t\t\t\t.extendMarkRange('link')\n\t\t\t\t\t\t.setLink({ href })\n\t\t\t\t\t\t.run(),\n\t\t\t\tremoveLink: () =>\n\t\t\t\t\teditor?.chain().focus().extendMarkRange('link').unsetLink().run(),\n\t\t\t\tinsertEmoji: (emoji) =>\n\t\t\t\t\teditor?.chain().focus().insertContent(emoji).run(),\n\t\t\t\tinsertVariable: (variableName) =>\n\t\t\t\t\teditor?.chain().focus().insertContent(`{{${variableName}}}`).run(),\n\t\t\t\tinsertHtml: (html) =>\n\t\t\t\t\teditor?.commands.insertContent(normalizeHtml(html)),\n\t\t\t\tundo: () => editor?.chain().focus().undo().run(),\n\t\t\t\tredo: () => editor?.chain().focus().redo().run(),\n\t\t\t\tcanUndo: () => editor?.can().undo() ?? false,\n\t\t\t\tcanRedo: () => editor?.can().redo() ?? false,\n\t\t\t\ttoggleSuperscript: () =>\n\t\t\t\t\teditor?.chain().focus().toggleSuperscript().run(),\n\t\t\t\ttoggleSubscript: () => editor?.chain().focus().toggleSubscript().run(),\n\t\t\t\tinsertImage: (src) => editor?.chain().focus().setImage({ src }).run(),\n\t\t\t},\n\n\t\t\t// ── JSON body ─────────────────────────────────────────────────────\n\t\t\tjson: features?.jsonMode\n\t\t\t\t? {\n\t\t\t\t\t\tgetText: () => (editor ? getCodeBlockText(editor) : ''),\n\t\t\t\t\t\tsetText: (raw) => enqueue((e) => setCodeBlockText(e, raw)),\n\t\t\t\t\t\tparse: () => parseJson(editor ? getCodeBlockText(editor) : ''),\n\t\t\t\t\t\tisValid: () =>\n\t\t\t\t\t\t\tparseJson(editor ? getCodeBlockText(editor) : '').valid,\n\t\t\t\t\t\tformat: (indent = 2) =>\n\t\t\t\t\t\t\tenqueue((e) => {\n\t\t\t\t\t\t\t\tconst { valid, value } = parseJson(getCodeBlockText(e));\n\t\t\t\t\t\t\t\tif (!valid || value === null) return;\n\t\t\t\t\t\t\t\tsetCodeBlockText(e, JSON.stringify(value, null, indent));\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\tminify: () =>\n\t\t\t\t\t\t\tenqueue((e) => {\n\t\t\t\t\t\t\t\tconst { valid, value } = parseJson(getCodeBlockText(e));\n\t\t\t\t\t\t\t\tif (!valid || value === null) return;\n\t\t\t\t\t\t\t\tsetCodeBlockText(e, JSON.stringify(value));\n\t\t\t\t\t\t\t}),\n\t\t\t\t }\n\t\t\t\t: undefined,\n\t\t}),\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t[editor],\n\t);\n\n\t// ── jsonMode floating actions ────────────────────────────────────────────\n\t// Beautify pretty-prints in place (no-op / disabled while the JSON is broken);\n\t// Copy writes the raw text to the clipboard with transient feedback.\n\tconst handleJsonBeautify = () => {\n\t\tif (!editor) return;\n\t\tconst { valid, value } = parseJson(getCodeBlockText(editor));\n\t\tif (!valid || value === null) return;\n\t\tsetCodeBlockText(editor, JSON.stringify(value, null, 2));\n\t};\n\tconst handleJsonCopy = () => {\n\t\tif (!editor) return;\n\t\tvoid navigator.clipboard?.writeText(getCodeBlockText(editor));\n\t\tsetJsonCopied(true);\n\t\tsetTimeout(() => setJsonCopied(false), 1500);\n\t};\n\n\tif (!editor) return null;\n\n\treturn (\n\t\t<BikEditorShell\n\t\t\tminHeight={minHeight}\n\t\t\tmaxHeight={maxHeight}\n\t\t\ttightParagraphs={!features?.richPaste}\n\t\t\tjsonMode={isJsonMode}\n\t\t\tstyle={style}\n\t\t\tclassName={className}\n\t\t>\n\t\t\t{isJsonMode && (\n\t\t\t\t<BikJsonHeader>\n\t\t\t\t\t<span className=\"bik-json-header-label\">JSON</span>\n\t\t\t\t\t<div className=\"bik-json-header-actions\">\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tonClick={handleJsonBeautify}\n\t\t\t\t\t\t\tdisabled={!!jsonError}\n\t\t\t\t\t\t\ttitle=\"Format JSON\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<WandSparkles size={16} />\n\t\t\t\t\t\t\t<BodyCaption>Beautify</BodyCaption>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t\t<button type=\"button\" onClick={handleJsonCopy} title=\"Copy JSON\">\n\t\t\t\t\t\t\t<Copy size={16} />\n\t\t\t\t\t\t\t{jsonCopied && <BodyCaption>Copied</BodyCaption>}\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</div>\n\t\t\t\t</BikJsonHeader>\n\t\t\t)}\n\t\t\t<EditorContent editor={editor} />\n\t\t\t<LinkBubbleMenu editor={editor} renderLinkTooltip={link?.renderTooltip} />\n\t\t\t{isJsonMode && jsonError ? (\n\t\t\t\trenderJsonError ? (\n\t\t\t\t\trenderJsonError(jsonError)\n\t\t\t\t) : (\n\t\t\t\t\t<BikJsonError>\n\t\t\t\t\t\t{jsonError.line != null && (\n\t\t\t\t\t\t\t<strong>\n\t\t\t\t\t\t\t\tLine {jsonError.line}\n\t\t\t\t\t\t\t\t{jsonError.column != null ? `, column ${jsonError.column}` : ''}\n\t\t\t\t\t\t\t\t:{' '}\n\t\t\t\t\t\t\t</strong>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{jsonError.error}\n\t\t\t\t\t</BikJsonError>\n\t\t\t\t)\n\t\t\t) : null}\n\t\t</BikEditorShell>\n\t);\n};\n\nexport const BikEditor = forwardRef<BikEditorRef, BikEditorProps>(\n\tBikEditorInner,\n);\nBikEditor.displayName = 'BikEditor';\n"],"names":["cssToString","style","k","v","c","BikEditorInner","props","ref","initialContent","sections","features","disabled","maxCharacters","characterLimit","shortcuts","sendShortcut","mentions","slashCommands","link","onPaste","onReady","onChange","onSend","onFocus","onBlur","onSelectionChange","minHeight","maxHeight","className","editorClassName","editorStyle","renderJsonError","isJsonMode","jsonError","setJsonError","useState","jsonCopied","setJsonCopied","initialEditorContent","buildJsonCodeBlockHtml","buildSectionedContent","normalizeHtml","s","pendingQueue","useRef","hasCalledOnReady","onReadyRef","onChangeRef","onSelectionChangeRef","prevFormatsRef","DEFAULT_FORMAT_STATE","onFocusRef","onBlurRef","onSendRef","agentMentionsRef","teamMentionsRef","slashCommandsRef","editor","useEditor","buildExtensions","snapshot","e","extractContent","result","parseJson","getCodeBlockText","next","extractActiveFormats","prev","enqueue","op","useEffect","useImperativeHandle","position","html","normalised","insertInlineHtml","agentIds","teamIds","node","from","to","pos","state","empty","linkMarkType","range","getMarkRange","sectionId","extractSectionContent","setSectionContentInEditor","endOfBody","targetPos","extractBodyContent","body","boundaryPos","findSectionEndPos","findSectionStartPos","align","font","size","color","href","text","tr","linkNode","space","emoji","variableName","src","raw","setCodeBlockText","indent","valid","value","handleJsonBeautify","handleJsonCopy","jsxs","BikEditorShell","BikJsonHeader","jsx","WandSparkles","BodyCaption","Copy","EditorContent","LinkBubbleMenu","BikJsonError","BikEditor","forwardRef"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import o, { css as i } from "styled-components";
2
- import { COLORS as r } from "../constants/Theme.js";
3
- const a = o.div`
1
+ import r, { css as i } from "styled-components";
2
+ import { COLORS as o } from "../constants/Theme.js";
3
+ const a = r.div`
4
4
  position: relative;
5
5
  width: 100%;
6
6
 
@@ -9,7 +9,6 @@ const a = o.div`
9
9
  max-height: ${({ maxHeight: e }) => e ?? "none"};
10
10
  overflow-y: auto;
11
11
  outline: none;
12
- padding: 8px 12px;
13
12
  font-size: 14px;
14
13
  line-height: 1.5;
15
14
  word-break: break-word;
@@ -38,6 +37,13 @@ const a = o.div`
38
37
  margin-top: 2px;
39
38
  }
40
39
 
40
+ /* The empty placeholder paragraph shouldn't inherit the rich-mode 1em
41
+ block margin (email/SMTP/signature) — otherwise the placeholder text
42
+ is pushed down. Real (non-empty) paragraphs keep their spacing. */
43
+ p.is-editor-empty:first-child {
44
+ margin: 0;
45
+ }
46
+
41
47
  p.is-editor-empty:first-child::before {
42
48
  content: attr(data-placeholder);
43
49
  float: left;
@@ -45,14 +51,20 @@ const a = o.div`
45
51
  pointer-events: none;
46
52
  height: 0;
47
53
  }
54
+
55
+ /* Characters pasted beyond the soft character limit — rendered grey so the
56
+ overflow is visible but clearly marked (see CharacterLimitExtension). */
57
+ .bik-editor-overflow {
58
+ color: ${o.content.placeholder};
59
+ }
48
60
  }
49
61
 
50
62
  .bik-mention {
51
- color: ${r.content.brand};
63
+ color: ${o.content.brand};
52
64
  padding: 1px 4px;
53
65
  }
54
66
  .bik-mention--team {
55
- color: ${r.content.brand};
67
+ color: ${o.content.brand};
56
68
  }
57
69
  /* Typed mention chips (agent-builder): distinct colour per reference kind. */
58
70
  .bik-mention[data-kind='tool'] {
@@ -163,7 +175,7 @@ const a = o.div`
163
175
  text-decoration-color: #6366f1;
164
176
  }
165
177
  }
166
- `, d = o.div`
178
+ `, d = r.div`
167
179
  display: flex;
168
180
  align-items: center;
169
181
  justify-content: space-between;
@@ -208,7 +220,7 @@ const a = o.div`
208
220
  cursor: not-allowed;
209
221
  }
210
222
  }
211
- `, s = o.div`
223
+ `, s = r.div`
212
224
  padding: 6px 12px;
213
225
  font-size: 12px;
214
226
  line-height: 1.5;