@forgedevstack/ink 1.1.3 → 1.1.4

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 (316) hide show
  1. package/CHANGELOG.md +47 -1
  2. package/dist/common-components/Box/Box.cjs +1 -0
  3. package/dist/common-components/Box/Box.const.cjs +1 -0
  4. package/dist/common-components/Box/Box.const.d.ts +3 -0
  5. package/dist/common-components/Box/Box.const.d.ts.map +1 -0
  6. package/dist/common-components/Box/Box.const.js +5 -0
  7. package/dist/common-components/Box/Box.d.ts +4 -0
  8. package/dist/common-components/Box/Box.d.ts.map +1 -0
  9. package/dist/common-components/Box/Box.js +14 -0
  10. package/dist/common-components/Box/Box.types.d.ts +6 -0
  11. package/dist/common-components/Box/Box.types.d.ts.map +1 -0
  12. package/dist/common-components/Box/index.d.ts +3 -0
  13. package/dist/common-components/Box/index.d.ts.map +1 -0
  14. package/dist/common-components/Button/Button.cjs +1 -0
  15. package/dist/common-components/Button/Button.const.cjs +1 -0
  16. package/dist/common-components/Button/Button.const.d.ts +5 -0
  17. package/dist/common-components/Button/Button.const.d.ts.map +1 -0
  18. package/dist/common-components/Button/Button.const.js +7 -0
  19. package/dist/common-components/Button/Button.d.ts +4 -0
  20. package/dist/common-components/Button/Button.d.ts.map +1 -0
  21. package/dist/common-components/Button/Button.js +28 -0
  22. package/dist/common-components/Button/Button.types.d.ts +6 -0
  23. package/dist/common-components/Button/Button.types.d.ts.map +1 -0
  24. package/dist/common-components/Button/index.d.ts +3 -0
  25. package/dist/common-components/Button/index.d.ts.map +1 -0
  26. package/dist/common-components/Canvas/Canvas.cjs +1 -0
  27. package/dist/common-components/Canvas/Canvas.const.cjs +1 -0
  28. package/dist/common-components/Canvas/Canvas.const.d.ts +2 -0
  29. package/dist/common-components/Canvas/Canvas.const.d.ts.map +1 -0
  30. package/dist/common-components/Canvas/Canvas.const.js +4 -0
  31. package/dist/common-components/Canvas/Canvas.d.ts +4 -0
  32. package/dist/common-components/Canvas/Canvas.d.ts.map +1 -0
  33. package/dist/common-components/Canvas/Canvas.js +14 -0
  34. package/dist/common-components/Canvas/Canvas.types.d.ts +5 -0
  35. package/dist/common-components/Canvas/Canvas.types.d.ts.map +1 -0
  36. package/dist/common-components/Canvas/index.d.ts +3 -0
  37. package/dist/common-components/Canvas/index.d.ts.map +1 -0
  38. package/dist/common-components/ContextMenu/ContextMenu.cjs +1 -0
  39. package/dist/common-components/ContextMenu/ContextMenu.const.cjs +1 -0
  40. package/dist/common-components/ContextMenu/ContextMenu.const.d.ts +11 -0
  41. package/dist/common-components/ContextMenu/ContextMenu.const.d.ts.map +1 -0
  42. package/dist/common-components/ContextMenu/ContextMenu.const.js +14 -0
  43. package/dist/common-components/ContextMenu/ContextMenu.d.ts +4 -0
  44. package/dist/common-components/ContextMenu/ContextMenu.d.ts.map +1 -0
  45. package/dist/common-components/ContextMenu/ContextMenu.js +69 -0
  46. package/dist/common-components/ContextMenu/ContextMenu.types.d.ts +33 -0
  47. package/dist/common-components/ContextMenu/ContextMenu.types.d.ts.map +1 -0
  48. package/dist/common-components/ContextMenu/ContextMenu.utils.cjs +1 -0
  49. package/dist/common-components/ContextMenu/ContextMenu.utils.d.ts +3 -0
  50. package/dist/common-components/ContextMenu/ContextMenu.utils.d.ts.map +1 -0
  51. package/dist/common-components/ContextMenu/ContextMenu.utils.js +11 -0
  52. package/dist/common-components/ContextMenu/ContextMenu.utils.test.d.ts +2 -0
  53. package/dist/common-components/ContextMenu/ContextMenu.utils.test.d.ts.map +1 -0
  54. package/dist/common-components/ContextMenu/index.d.ts +5 -0
  55. package/dist/common-components/ContextMenu/index.d.ts.map +1 -0
  56. package/dist/common-components/Field/Field.cjs +1 -0
  57. package/dist/common-components/Field/Field.const.cjs +1 -0
  58. package/dist/common-components/Field/Field.const.d.ts +3 -0
  59. package/dist/common-components/Field/Field.const.d.ts.map +1 -0
  60. package/dist/common-components/Field/Field.const.js +5 -0
  61. package/dist/common-components/Field/Field.d.ts +4 -0
  62. package/dist/common-components/Field/Field.d.ts.map +1 -0
  63. package/dist/common-components/Field/Field.js +26 -0
  64. package/dist/common-components/Field/Field.types.d.ts +10 -0
  65. package/dist/common-components/Field/Field.types.d.ts.map +1 -0
  66. package/dist/common-components/Field/index.d.ts +3 -0
  67. package/dist/common-components/Field/index.d.ts.map +1 -0
  68. package/dist/common-components/icons/GripIcon.cjs +1 -0
  69. package/dist/common-components/icons/GripIcon.d.ts +3 -0
  70. package/dist/common-components/icons/GripIcon.d.ts.map +1 -0
  71. package/dist/common-components/icons/GripIcon.js +13 -0
  72. package/dist/common-components/icons/Icon.const.cjs +1 -0
  73. package/dist/common-components/icons/Icon.const.d.ts +7 -0
  74. package/dist/common-components/icons/Icon.const.d.ts.map +1 -0
  75. package/dist/common-components/icons/Icon.const.js +10 -0
  76. package/dist/common-components/icons/RedoIcon.cjs +1 -0
  77. package/dist/common-components/icons/RedoIcon.d.ts +3 -0
  78. package/dist/common-components/icons/RedoIcon.d.ts.map +1 -0
  79. package/dist/common-components/icons/RedoIcon.js +9 -0
  80. package/dist/common-components/icons/UndoIcon.cjs +1 -0
  81. package/dist/common-components/icons/UndoIcon.d.ts +3 -0
  82. package/dist/common-components/icons/UndoIcon.d.ts.map +1 -0
  83. package/dist/common-components/icons/UndoIcon.js +9 -0
  84. package/dist/common-components/icons/index.d.ts +4 -0
  85. package/dist/common-components/icons/index.d.ts.map +1 -0
  86. package/dist/common-components/index.d.ts +12 -0
  87. package/dist/common-components/index.d.ts.map +1 -0
  88. package/dist/components/InkEditor/InkEditor.cjs +1 -1
  89. package/dist/components/InkEditor/InkEditor.d.ts.map +1 -1
  90. package/dist/components/InkEditor/InkEditor.js +921 -437
  91. package/dist/components/InkEditor/components/AiAutocomplete/AiAutocomplete.cjs +1 -0
  92. package/dist/components/InkEditor/components/AiAutocomplete/AiAutocomplete.const.cjs +1 -0
  93. package/dist/components/InkEditor/components/AiAutocomplete/AiAutocomplete.const.d.ts +7 -0
  94. package/dist/components/InkEditor/components/AiAutocomplete/AiAutocomplete.const.d.ts.map +1 -0
  95. package/dist/components/InkEditor/components/AiAutocomplete/AiAutocomplete.const.js +10 -0
  96. package/dist/components/InkEditor/components/AiAutocomplete/AiAutocomplete.d.ts +4 -0
  97. package/dist/components/InkEditor/components/AiAutocomplete/AiAutocomplete.d.ts.map +1 -0
  98. package/dist/components/InkEditor/components/AiAutocomplete/AiAutocomplete.js +17 -0
  99. package/dist/components/InkEditor/components/AiAutocomplete/AiAutocomplete.types.d.ts +12 -0
  100. package/dist/components/InkEditor/components/AiAutocomplete/AiAutocomplete.types.d.ts.map +1 -0
  101. package/dist/components/InkEditor/components/AiAutocomplete/AiAutocomplete.utils.cjs +1 -0
  102. package/dist/components/InkEditor/components/AiAutocomplete/AiAutocomplete.utils.d.ts +4 -0
  103. package/dist/components/InkEditor/components/AiAutocomplete/AiAutocomplete.utils.d.ts.map +1 -0
  104. package/dist/components/InkEditor/components/AiAutocomplete/AiAutocomplete.utils.js +25 -0
  105. package/dist/components/InkEditor/components/AiAutocomplete/index.d.ts +5 -0
  106. package/dist/components/InkEditor/components/AiAutocomplete/index.d.ts.map +1 -0
  107. package/dist/components/InkEditor/components/AiPanel/AiPanel.cjs +1 -1
  108. package/dist/components/InkEditor/components/AiPanel/AiPanel.d.ts +1 -0
  109. package/dist/components/InkEditor/components/AiPanel/AiPanel.d.ts.map +1 -1
  110. package/dist/components/InkEditor/components/AiPanel/AiPanel.js +53 -49
  111. package/dist/components/InkEditor/components/BlockHandles/BlockHandles.cjs +1 -1
  112. package/dist/components/InkEditor/components/BlockHandles/BlockHandles.const.cjs +1 -0
  113. package/dist/components/InkEditor/components/BlockHandles/BlockHandles.const.d.ts +15 -0
  114. package/dist/components/InkEditor/components/BlockHandles/BlockHandles.const.d.ts.map +1 -0
  115. package/dist/components/InkEditor/components/BlockHandles/BlockHandles.const.js +18 -0
  116. package/dist/components/InkEditor/components/BlockHandles/BlockHandles.d.ts +1 -6
  117. package/dist/components/InkEditor/components/BlockHandles/BlockHandles.d.ts.map +1 -1
  118. package/dist/components/InkEditor/components/BlockHandles/BlockHandles.js +53 -8
  119. package/dist/components/InkEditor/components/BlockHandles/BlockHandles.types.d.ts +9 -0
  120. package/dist/components/InkEditor/components/BlockHandles/BlockHandles.types.d.ts.map +1 -0
  121. package/dist/components/InkEditor/components/BlockHandles/index.d.ts +2 -1
  122. package/dist/components/InkEditor/components/BlockHandles/index.d.ts.map +1 -1
  123. package/dist/components/InkEditor/components/FindReplace/FindReplace.cjs +1 -1
  124. package/dist/components/InkEditor/components/FindReplace/FindReplace.d.ts.map +1 -1
  125. package/dist/components/InkEditor/components/FindReplace/FindReplace.js +63 -44
  126. package/dist/components/InkEditor/components/FindReplace/FindReplace.types.d.ts +2 -0
  127. package/dist/components/InkEditor/components/FindReplace/FindReplace.types.d.ts.map +1 -1
  128. package/dist/components/InkEditor/components/FindReplace/index.d.ts +1 -1
  129. package/dist/components/InkEditor/components/FindReplace/index.d.ts.map +1 -1
  130. package/dist/components/InkEditor/components/InlineToolbar/InlineToolbar.cjs +1 -0
  131. package/dist/components/InkEditor/components/InlineToolbar/InlineToolbar.const.cjs +1 -0
  132. package/dist/components/InkEditor/components/InlineToolbar/InlineToolbar.const.d.ts +25 -0
  133. package/dist/components/InkEditor/components/InlineToolbar/InlineToolbar.const.d.ts.map +1 -0
  134. package/dist/components/InkEditor/components/InlineToolbar/InlineToolbar.const.js +28 -0
  135. package/dist/components/InkEditor/components/InlineToolbar/InlineToolbar.d.ts +4 -0
  136. package/dist/components/InkEditor/components/InlineToolbar/InlineToolbar.d.ts.map +1 -0
  137. package/dist/components/InkEditor/components/InlineToolbar/InlineToolbar.js +140 -0
  138. package/dist/components/InkEditor/components/InlineToolbar/InlineToolbar.types.d.ts +32 -0
  139. package/dist/components/InkEditor/components/InlineToolbar/InlineToolbar.types.d.ts.map +1 -0
  140. package/dist/components/InkEditor/components/InlineToolbar/InlineToolbar.utils.cjs +1 -0
  141. package/dist/components/InkEditor/components/InlineToolbar/InlineToolbar.utils.d.ts +4 -0
  142. package/dist/components/InkEditor/components/InlineToolbar/InlineToolbar.utils.d.ts.map +1 -0
  143. package/dist/components/InkEditor/components/InlineToolbar/InlineToolbar.utils.js +16 -0
  144. package/dist/components/InkEditor/components/InlineToolbar/InlineToolbar.utils.test.d.ts +2 -0
  145. package/dist/components/InkEditor/components/InlineToolbar/InlineToolbar.utils.test.d.ts.map +1 -0
  146. package/dist/components/InkEditor/components/InlineToolbar/index.d.ts +5 -0
  147. package/dist/components/InkEditor/components/InlineToolbar/index.d.ts.map +1 -0
  148. package/dist/components/InkEditor/components/SignPad/SignPad.cjs +1 -1
  149. package/dist/components/InkEditor/components/SignPad/SignPad.d.ts.map +1 -1
  150. package/dist/components/InkEditor/components/SignPad/SignPad.js +47 -51
  151. package/dist/components/InkEditor/components/ToolbarButton/ToolbarButton.cjs +1 -1
  152. package/dist/components/InkEditor/components/ToolbarButton/ToolbarButton.d.ts.map +1 -1
  153. package/dist/components/InkEditor/components/ToolbarButton/ToolbarButton.js +20 -16
  154. package/dist/components/InkEditor/components/ToolbarColorPicker/ToolbarColorPicker.cjs +1 -1
  155. package/dist/components/InkEditor/components/ToolbarColorPicker/ToolbarColorPicker.js +16 -12
  156. package/dist/components/InkEditor/components/ToolbarCustomize/ToolbarCustomize.cjs +1 -0
  157. package/dist/components/InkEditor/components/ToolbarCustomize/ToolbarCustomize.const.cjs +1 -0
  158. package/dist/components/InkEditor/components/ToolbarCustomize/ToolbarCustomize.const.d.ts +10 -0
  159. package/dist/components/InkEditor/components/ToolbarCustomize/ToolbarCustomize.const.d.ts.map +1 -0
  160. package/dist/components/InkEditor/components/ToolbarCustomize/ToolbarCustomize.const.js +18 -0
  161. package/dist/components/InkEditor/components/ToolbarCustomize/ToolbarCustomize.d.ts +4 -0
  162. package/dist/components/InkEditor/components/ToolbarCustomize/ToolbarCustomize.d.ts.map +1 -0
  163. package/dist/components/InkEditor/components/ToolbarCustomize/ToolbarCustomize.js +43 -0
  164. package/dist/components/InkEditor/components/ToolbarCustomize/ToolbarCustomize.types.d.ts +12 -0
  165. package/dist/components/InkEditor/components/ToolbarCustomize/ToolbarCustomize.types.d.ts.map +1 -0
  166. package/dist/components/InkEditor/components/ToolbarCustomize/index.d.ts +4 -0
  167. package/dist/components/InkEditor/components/ToolbarCustomize/index.d.ts.map +1 -0
  168. package/dist/components/InkEditor/components/index.d.ts +7 -1
  169. package/dist/components/InkEditor/components/index.d.ts.map +1 -1
  170. package/dist/components/InkEditor/helpers/format.utils.cjs +2 -1
  171. package/dist/components/InkEditor/helpers/format.utils.d.ts +9 -0
  172. package/dist/components/InkEditor/helpers/format.utils.d.ts.map +1 -1
  173. package/dist/components/InkEditor/helpers/format.utils.js +113 -20
  174. package/dist/components/InkEditor/helpers/index.d.ts +1 -1
  175. package/dist/components/InkEditor/helpers/index.d.ts.map +1 -1
  176. package/dist/constants/blocks.const.cjs +1 -0
  177. package/dist/constants/blocks.const.d.ts +11 -0
  178. package/dist/constants/blocks.const.d.ts.map +1 -0
  179. package/dist/constants/blocks.const.js +14 -0
  180. package/dist/constants/colorMode.const.cjs +1 -0
  181. package/dist/constants/colorMode.const.d.ts +6 -0
  182. package/dist/constants/colorMode.const.d.ts.map +1 -0
  183. package/dist/constants/colorMode.const.js +7 -0
  184. package/dist/constants/contextMenu.const.cjs +1 -0
  185. package/dist/constants/contextMenu.const.d.ts +37 -0
  186. package/dist/constants/contextMenu.const.d.ts.map +1 -0
  187. package/dist/constants/contextMenu.const.js +39 -0
  188. package/dist/constants/defaultIcons.cjs +1 -0
  189. package/dist/constants/defaultIcons.d.ts +4 -0
  190. package/dist/constants/defaultIcons.d.ts.map +1 -0
  191. package/dist/constants/defaultIcons.js +42 -0
  192. package/dist/constants/defaults.const.cjs +1 -1
  193. package/dist/constants/defaults.const.d.ts +4 -0
  194. package/dist/constants/defaults.const.d.ts.map +1 -1
  195. package/dist/constants/defaults.const.js +56 -48
  196. package/dist/constants/findReplaceMenu.const.cjs +1 -0
  197. package/dist/constants/findReplaceMenu.const.d.ts +10 -0
  198. package/dist/constants/findReplaceMenu.const.d.ts.map +1 -0
  199. package/dist/constants/findReplaceMenu.const.js +14 -0
  200. package/dist/constants/fonts.const.cjs +1 -0
  201. package/dist/constants/fonts.const.d.ts +25 -0
  202. package/dist/constants/fonts.const.d.ts.map +1 -0
  203. package/dist/constants/fonts.const.js +40 -0
  204. package/dist/constants/index.d.ts +11 -0
  205. package/dist/constants/index.d.ts.map +1 -1
  206. package/dist/constants/keyboard.const.cjs +1 -0
  207. package/dist/constants/keyboard.const.d.ts +5 -0
  208. package/dist/constants/keyboard.const.d.ts.map +1 -0
  209. package/dist/constants/keyboard.const.js +7 -0
  210. package/dist/constants/lists.const.cjs +1 -0
  211. package/dist/constants/lists.const.d.ts +24 -0
  212. package/dist/constants/lists.const.d.ts.map +1 -0
  213. package/dist/constants/lists.const.js +28 -0
  214. package/dist/constants/numbers.cjs +1 -1
  215. package/dist/constants/numbers.js +30 -15
  216. package/dist/constants/openai.const.cjs +1 -0
  217. package/dist/constants/openai.const.d.ts +42 -0
  218. package/dist/constants/openai.const.d.ts.map +1 -0
  219. package/dist/constants/openai.const.js +58 -0
  220. package/dist/constants/premium.const.cjs +1 -1
  221. package/dist/constants/premium.const.d.ts +1 -2
  222. package/dist/constants/premium.const.d.ts.map +1 -1
  223. package/dist/constants/premium.const.js +6 -34
  224. package/dist/constants/table.const.cjs +1 -0
  225. package/dist/constants/table.const.d.ts +8 -0
  226. package/dist/constants/table.const.d.ts.map +1 -0
  227. package/dist/constants/table.const.js +10 -0
  228. package/dist/constants/toolbar.const.cjs +1 -1
  229. package/dist/constants/toolbar.const.d.ts +7 -0
  230. package/dist/constants/toolbar.const.d.ts.map +1 -1
  231. package/dist/constants/toolbar.const.js +11 -4
  232. package/dist/constants/toolbarMenu.const.cjs +1 -0
  233. package/dist/constants/toolbarMenu.const.d.ts +19 -0
  234. package/dist/constants/toolbarMenu.const.d.ts.map +1 -0
  235. package/dist/constants/toolbarMenu.const.js +65 -0
  236. package/dist/index.cjs +1 -1
  237. package/dist/index.d.ts +7 -4
  238. package/dist/index.d.ts.map +1 -1
  239. package/dist/index.js +103 -47
  240. package/dist/plugins/ai/demoProvider.cjs +1 -1
  241. package/dist/plugins/ai/demoProvider.d.ts.map +1 -1
  242. package/dist/plugins/ai/demoProvider.js +47 -37
  243. package/dist/plugins/ai/index.cjs +1 -1
  244. package/dist/plugins/ai/index.d.ts +3 -1
  245. package/dist/plugins/ai/index.d.ts.map +1 -1
  246. package/dist/plugins/ai/index.js +28 -14
  247. package/dist/plugins/ai/inkServerProvider.cjs +1 -0
  248. package/dist/plugins/ai/inkServerProvider.d.ts +4 -0
  249. package/dist/plugins/ai/inkServerProvider.d.ts.map +1 -0
  250. package/dist/plugins/ai/inkServerProvider.js +52 -0
  251. package/dist/plugins/ai/inkServerProvider.types.d.ts +15 -0
  252. package/dist/plugins/ai/inkServerProvider.types.d.ts.map +1 -0
  253. package/dist/plugins/ai/openaiProvider.cjs +1 -0
  254. package/dist/plugins/ai/openaiProvider.d.ts +4 -0
  255. package/dist/plugins/ai/openaiProvider.d.ts.map +1 -0
  256. package/dist/plugins/ai/openaiProvider.js +128 -0
  257. package/dist/plugins/ai/openaiProvider.types.d.ts +32 -0
  258. package/dist/plugins/ai/openaiProvider.types.d.ts.map +1 -0
  259. package/dist/plugins/ai/openaiProvider.utils.cjs +5 -0
  260. package/dist/plugins/ai/openaiProvider.utils.d.ts +14 -0
  261. package/dist/plugins/ai/openaiProvider.utils.d.ts.map +1 -0
  262. package/dist/plugins/ai/openaiProvider.utils.js +57 -0
  263. package/dist/styles.css +1 -721
  264. package/dist/types/ai.types.d.ts +2 -1
  265. package/dist/types/ai.types.d.ts.map +1 -1
  266. package/dist/types/features.types.d.ts +2 -0
  267. package/dist/types/features.types.d.ts.map +1 -1
  268. package/dist/types/index.d.ts +1 -1
  269. package/dist/types/index.d.ts.map +1 -1
  270. package/dist/types/ink.types.d.ts +7 -2
  271. package/dist/types/ink.types.d.ts.map +1 -1
  272. package/dist/types/premium.types.d.ts +1 -1
  273. package/dist/types/premium.types.d.ts.map +1 -1
  274. package/dist/utils/blocks.utils.cjs +1 -1
  275. package/dist/utils/blocks.utils.d.ts +8 -0
  276. package/dist/utils/blocks.utils.d.ts.map +1 -1
  277. package/dist/utils/blocks.utils.js +61 -19
  278. package/dist/utils/blocks.utils.test.d.ts +2 -0
  279. package/dist/utils/blocks.utils.test.d.ts.map +1 -0
  280. package/dist/utils/comments.utils.cjs +1 -1
  281. package/dist/utils/comments.utils.js +23 -18
  282. package/dist/utils/history.utils.cjs +1 -1
  283. package/dist/utils/history.utils.js +7 -2
  284. package/dist/utils/index.d.ts +6 -2
  285. package/dist/utils/index.d.ts.map +1 -1
  286. package/dist/utils/license.utils.cjs +1 -1
  287. package/dist/utils/license.utils.js +15 -10
  288. package/dist/utils/paste.utils.cjs +1 -1
  289. package/dist/utils/paste.utils.js +27 -23
  290. package/dist/utils/premium.utils.cjs +1 -1
  291. package/dist/utils/premium.utils.js +23 -18
  292. package/dist/utils/selection.utils.cjs +1 -0
  293. package/dist/utils/selection.utils.d.ts +10 -0
  294. package/dist/utils/selection.utils.d.ts.map +1 -0
  295. package/dist/utils/selection.utils.js +58 -0
  296. package/dist/utils/selection.utils.test.d.ts +2 -0
  297. package/dist/utils/selection.utils.test.d.ts.map +1 -0
  298. package/dist/utils/slash.utils.cjs +1 -1
  299. package/dist/utils/slash.utils.js +13 -8
  300. package/dist/utils/table.utils.cjs +1 -1
  301. package/dist/utils/table.utils.d.ts +5 -0
  302. package/dist/utils/table.utils.d.ts.map +1 -1
  303. package/dist/utils/table.utils.js +69 -10
  304. package/dist/utils/table.utils.test.d.ts +2 -0
  305. package/dist/utils/table.utils.test.d.ts.map +1 -0
  306. package/dist/utils/toolbarStorage.utils.cjs +1 -0
  307. package/dist/utils/toolbarStorage.utils.d.ts +12 -0
  308. package/dist/utils/toolbarStorage.utils.d.ts.map +1 -0
  309. package/dist/utils/toolbarStorage.utils.js +92 -0
  310. package/dist/utils/toolbarStorage.utils.test.d.ts +2 -0
  311. package/dist/utils/toolbarStorage.utils.test.d.ts.map +1 -0
  312. package/dist/utils/trackChanges.utils.cjs +1 -1
  313. package/dist/utils/trackChanges.utils.js +14 -9
  314. package/dist/utils/typo.utils.cjs +1 -1
  315. package/dist/utils/typo.utils.js +15 -10
  316. package/package.json +2 -1
package/CHANGELOG.md CHANGED
@@ -1,6 +1,52 @@
1
1
  # Changelog
2
2
 
3
- ## Unreleased — 1.1.3
3
+ ## 1.1.4
4
+
5
+ ### Added
6
+ - OpenAI AI provider (`createOpenAiProvider`) with Chat Completions + capability system prompts
7
+ - Ink server AI bridge (`createInkServerAiProvider`) posting to `/api/ai/complete`
8
+ - `autocomplete` capability on `InkAiCapability` and `ai.autocomplete` config (default on when AI enabled)
9
+ - Inline AI autocomplete ghost suggestions (Tab accept, Escape dismiss) while typing
10
+ - Table context menu: insert/delete row and column (right-click inside a cell)
11
+ - Table helpers: `insertTableRow`, `insertTableColumn`, `deleteTableRow`, `deleteTableColumn`, `getTableCellFromSelection`
12
+ - Common components: `Button`, `Box`, `Field`, `Canvas`, `ContextMenu`, undo/redo SVG icons, `GripIcon`
13
+ - Path aliases: `@common-components`, `@utils`, `@const`
14
+ - SCSS pipeline (`_vars.scss`, `_mixins.scss`, `ink.scss`) with shared theme tokens
15
+ - Right-click context menu (format, lists, link, heading, sign pad, comment, find)
16
+ - Floating Inline Toolbar on text selection (Bold, Italic, Underline, Code, Link, Clear)
17
+ - Theming docs (`docs/theming.md`)
18
+ - `chrome` prop (`boxed` | `borderless`) for Editor.js-style borderless chrome
19
+ - Block drag-and-drop reorder via block handle grip (`reorderBlockBefore` / `reorderBlockAfter`)
20
+ - Toolbar right-click menu: Customize toolbar / Hide toolbar (session or `keepInMemory` persistence via `ink-toolbar-items` / `ink-toolbar-hidden`)
21
+ - `colorMode` prop (`light` | `dark` | `system`) sets `data-color-mode` for forced light/dark tokens
22
+ - `onToolbarChange`, `toolbarHidden`, `onToolbarHiddenChange` for toolbar visibility/customization
23
+ - Selection helpers: `captureSelectionInRoot`, `restoreSelectionInRoot`, `withPreservedSelection`
24
+ - Toolbar dropdowns: `fontDropdown` (System UI, Georgia, Times New Roman, Arial, Courier New, Verdana), `listDropdown` (bullet / dash / numbers / letters), `findReplaceDropdown` (Find / Replace)
25
+ - Word-like toolbar options: `directionLtr`, `directionRtl`, `superscript`, `subscript`
26
+ - Markdown list heuristic: typing `- ` or `* ` at line start converts to a bullet list
27
+
28
+ ### Changed
29
+ - SignPad / FindReplace / ToolbarButton reuse common Button, Field, Canvas, Box
30
+ - Default undo/redo icons are stroke SVGs (premium `icons` override still works)
31
+ - Styles build compiles SCSS → `dist/styles.css` (CSS source removed)
32
+ - Slash menu uses a lighter shadow / tighter radius
33
+ - Block handles use circular + control and SVG six-dot grip (drag)
34
+ - Context menu portals to `document.body` and clamps to the viewport
35
+ - Dark OS preference applies only when `data-color-mode` is omitted (`system`)
36
+ - Default toolbar uses `listDropdown` + `findReplaceDropdown` (+ font / direction / super-subscript); legacy `bulletList` / `orderedList` / `findReplace` still work when referenced
37
+ - Portaled ContextMenu uses solid opaque light/dark fallbacks and higher z-index; inherits `data-color-mode` from the editor
38
+
39
+ ### Fixed
40
+ - Controlled `value` sync no longer resets the caret to the top on Enter while focused
41
+ - List markers visible again (`ul`/`ol` list-style + indent under `.Ink-Editor__content`)
42
+ - Toolbar buttons preserve contenteditable selection (`onMouseDown` preventDefault)
43
+ - Table header cells use `--ink-table-header` (dark mode no longer flashes a light gray header)
44
+ - Context menu outside-click close ignores clicks inside the portaled menu
45
+ - Enter / HTML replace while focused restores selection range; editor focus uses `preventScroll`
46
+ - Clear format (`clearFormat`) also strips color / background styles from the selection
47
+ - Block DnD drop target follows pointer Y (before/after midpoint) with dragging opacity + drop indicator
48
+
49
+ ## 1.1.3
4
50
 
5
51
  ### Fixed
6
52
  - `keepInMemory` restores drafts on mount in controlled mode via `onChange`
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),o=require("../../utils/cn.utils.cjs");require("../../constants/openai.const.cjs");const e=require("./Box.const.cjs");require("react");require("react-dom");require("../../utils/paste.utils.cjs");const u=r=>{const{as:s=e.BOX_DEFAULT_AS,className:t,children:c,...i}=r;return n.jsx(s,{className:o.cn(e.BOX_CLASS,t),...i,children:c})};exports.Box=u;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t="span",S="Ink-Box";exports.BOX_CLASS=S;exports.BOX_DEFAULT_AS=t;
@@ -0,0 +1,3 @@
1
+ export declare const BOX_DEFAULT_AS: "span";
2
+ export declare const BOX_CLASS = "Ink-Box";
3
+ //# sourceMappingURL=Box.const.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Box.const.d.ts","sourceRoot":"","sources":["../../../src/common-components/Box/Box.const.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,EAAG,MAAe,CAAC;AAC9C,eAAO,MAAM,SAAS,YAAY,CAAC"}
@@ -0,0 +1,5 @@
1
+ const n = "span", o = "Ink-Box";
2
+ export {
3
+ o as BOX_CLASS,
4
+ n as BOX_DEFAULT_AS
5
+ };
@@ -0,0 +1,4 @@
1
+ import { FC } from 'react';
2
+ import { BoxProps } from './Box.types';
3
+ export declare const Box: FC<BoxProps>;
4
+ //# sourceMappingURL=Box.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Box.d.ts","sourceRoot":"","sources":["../../../src/common-components/Box/Box.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAGhC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,eAAO,MAAM,GAAG,EAAE,EAAE,CAAC,QAAQ,CAO5B,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { jsx as i } from "react/jsx-runtime";
2
+ import { cn as p } from "../../utils/cn.utils.js";
3
+ import "../../constants/openai.const.js";
4
+ import { BOX_DEFAULT_AS as a, BOX_CLASS as c } from "./Box.const.js";
5
+ import "react";
6
+ import "react-dom";
7
+ import "../../utils/paste.utils.js";
8
+ const S = (r) => {
9
+ const { as: o = a, className: m, children: t, ...s } = r;
10
+ return /* @__PURE__ */ i(o, { className: p(c, m), ...s, children: t });
11
+ };
12
+ export {
13
+ S as Box
14
+ };
@@ -0,0 +1,6 @@
1
+ import { HTMLAttributes, ReactNode } from 'react';
2
+ export type BoxProps = HTMLAttributes<HTMLElement> & {
3
+ as?: 'div' | 'span' | 'p' | 'section';
4
+ children?: ReactNode;
5
+ };
6
+ //# sourceMappingURL=Box.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Box.types.d.ts","sourceRoot":"","sources":["../../../src/common-components/Box/Box.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvD,MAAM,MAAM,QAAQ,GAAG,cAAc,CAAC,WAAW,CAAC,GAAG;IACnD,EAAE,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,GAAG,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { Box } from './Box';
2
+ export type { BoxProps } from './Box.types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/common-components/Box/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,YAAY,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("react/jsx-runtime"),i=require("../../utils/cn.utils.cjs");require("../../constants/openai.const.cjs");const e=require("./Button.const.cjs");require("react");require("react-dom");require("../../utils/paste.utils.cjs");const T=r=>{const{active:t=!1,className:n,children:u,type:s="button",...o}=r;return c.jsx("button",{type:s,className:i.cn(e.BUTTON_CLASS,e.BUTTON_EDITOR_CLASS,t&&e.BUTTON_ACTIVE_CLASS,t&&e.BUTTON_EDITOR_ACTIVE_CLASS,n),...o,children:u})};exports.Button=T;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const T="Ink-Button",t="Ink-Button--active",_="Ink-Editor__button",S="Ink-Editor__button--active";exports.BUTTON_ACTIVE_CLASS=t;exports.BUTTON_CLASS=T;exports.BUTTON_EDITOR_ACTIVE_CLASS=S;exports.BUTTON_EDITOR_CLASS=_;
@@ -0,0 +1,5 @@
1
+ export declare const BUTTON_CLASS = "Ink-Button";
2
+ export declare const BUTTON_ACTIVE_CLASS = "Ink-Button--active";
3
+ export declare const BUTTON_EDITOR_CLASS = "Ink-Editor__button";
4
+ export declare const BUTTON_EDITOR_ACTIVE_CLASS = "Ink-Editor__button--active";
5
+ //# sourceMappingURL=Button.const.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.const.d.ts","sourceRoot":"","sources":["../../../src/common-components/Button/Button.const.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,eAAe,CAAC;AACzC,eAAO,MAAM,mBAAmB,uBAAuB,CAAC;AACxD,eAAO,MAAM,mBAAmB,uBAAuB,CAAC;AACxD,eAAO,MAAM,0BAA0B,+BAA+B,CAAC"}
@@ -0,0 +1,7 @@
1
+ const t = "Ink-Button", n = "Ink-Button--active", T = "Ink-Editor__button", _ = "Ink-Editor__button--active";
2
+ export {
3
+ n as BUTTON_ACTIVE_CLASS,
4
+ t as BUTTON_CLASS,
5
+ _ as BUTTON_EDITOR_ACTIVE_CLASS,
6
+ T as BUTTON_EDITOR_CLASS
7
+ };
@@ -0,0 +1,4 @@
1
+ import { FC } from 'react';
2
+ import { ButtonProps } from './Button.types';
3
+ export declare const Button: FC<ButtonProps>;
4
+ //# sourceMappingURL=Button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/common-components/Button/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAQhC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,eAAO,MAAM,MAAM,EAAE,EAAE,CAAC,WAAW,CAiBlC,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { jsx as i } from "react/jsx-runtime";
2
+ import { cn as p } from "../../utils/cn.utils.js";
3
+ import "../../constants/openai.const.js";
4
+ import { BUTTON_EDITOR_ACTIVE_CLASS as s, BUTTON_ACTIVE_CLASS as n, BUTTON_EDITOR_CLASS as S, BUTTON_CLASS as _ } from "./Button.const.js";
5
+ import "react";
6
+ import "react-dom";
7
+ import "../../utils/paste.utils.js";
8
+ const f = (o) => {
9
+ const { active: t = !1, className: r, children: m, type: T = "button", ...e } = o;
10
+ return /* @__PURE__ */ i(
11
+ "button",
12
+ {
13
+ type: T,
14
+ className: p(
15
+ _,
16
+ S,
17
+ t && n,
18
+ t && s,
19
+ r
20
+ ),
21
+ ...e,
22
+ children: m
23
+ }
24
+ );
25
+ };
26
+ export {
27
+ f as Button
28
+ };
@@ -0,0 +1,6 @@
1
+ import { ButtonHTMLAttributes, ReactNode } from 'react';
2
+ export type ButtonProps = ButtonHTMLAttributes<HTMLButtonElement> & {
3
+ active?: boolean;
4
+ children?: ReactNode;
5
+ };
6
+ //# sourceMappingURL=Button.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.types.d.ts","sourceRoot":"","sources":["../../../src/common-components/Button/Button.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE7D,MAAM,MAAM,WAAW,GAAG,oBAAoB,CAAC,iBAAiB,CAAC,GAAG;IAClE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { Button } from './Button';
2
+ export type { ButtonProps } from './Button.types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/common-components/Button/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),t=require("../../utils/cn.utils.cjs");require("../../constants/openai.const.cjs");const c=require("./Canvas.const.cjs");require("react");require("react-dom");require("../../utils/paste.utils.cjs");const u=e=>{const{canvasRef:r,className:s,...n}=e;return a.jsx("canvas",{ref:r,className:t.cn(c.CANVAS_CLASS,s),...n})};exports.Canvas=u;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const S="Ink-Canvas";exports.CANVAS_CLASS=S;
@@ -0,0 +1,2 @@
1
+ export declare const CANVAS_CLASS = "Ink-Canvas";
2
+ //# sourceMappingURL=Canvas.const.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Canvas.const.d.ts","sourceRoot":"","sources":["../../../src/common-components/Canvas/Canvas.const.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,eAAe,CAAC"}
@@ -0,0 +1,4 @@
1
+ const n = "Ink-Canvas";
2
+ export {
3
+ n as CANVAS_CLASS
4
+ };
@@ -0,0 +1,4 @@
1
+ import { FC } from 'react';
2
+ import { CanvasProps } from './Canvas.types';
3
+ export declare const Canvas: FC<CanvasProps>;
4
+ //# sourceMappingURL=Canvas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Canvas.d.ts","sourceRoot":"","sources":["../../../src/common-components/Canvas/Canvas.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAGhC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,eAAO,MAAM,MAAM,EAAE,EAAE,CAAC,WAAW,CAGlC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { jsx as s } from "react/jsx-runtime";
2
+ import { cn as a } from "../../utils/cn.utils.js";
3
+ import "../../constants/openai.const.js";
4
+ import { CANVAS_CLASS as p } from "./Canvas.const.js";
5
+ import "react";
6
+ import "react-dom";
7
+ import "../../utils/paste.utils.js";
8
+ const C = (r) => {
9
+ const { canvasRef: o, className: m, ...t } = r;
10
+ return /* @__PURE__ */ s("canvas", { ref: o, className: a(p, m), ...t });
11
+ };
12
+ export {
13
+ C as Canvas
14
+ };
@@ -0,0 +1,5 @@
1
+ import { CanvasHTMLAttributes, Ref } from 'react';
2
+ export type CanvasProps = CanvasHTMLAttributes<HTMLCanvasElement> & {
3
+ canvasRef?: Ref<HTMLCanvasElement>;
4
+ };
5
+ //# sourceMappingURL=Canvas.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Canvas.types.d.ts","sourceRoot":"","sources":["../../../src/common-components/Canvas/Canvas.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAEvD,MAAM,MAAM,WAAW,GAAG,oBAAoB,CAAC,iBAAiB,CAAC,GAAG;IAClE,SAAS,CAAC,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC;CACpC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { Canvas } from './Canvas';
2
+ export type { CanvasProps } from './Canvas.types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/common-components/Canvas/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const N=require("react/jsx-runtime"),c=require("react"),O=require("react-dom"),e=require("./ContextMenu.const.cjs"),w=require("./ContextMenu.utils.cjs"),X=require("../../utils/cn.utils.cjs");require("../../constants/openai.const.cjs");require("../../utils/paste.utils.cjs");const P=u=>{const{open:o,x:d,y:l,items:a,onClose:n,colorMode:M}=u,E=c.useRef(null);if(c.useEffect(()=>{if(!o)return;const t=r=>{var T;const s=r.target;if(!(s instanceof Node)){n();return}(T=E.current)!=null&&T.contains(s)||n()},_=r=>{r.key===e.CONTEXT_MENU_KEY_ESCAPE&&n()};return window.addEventListener(e.CONTEXT_MENU_EVENT_POINTER_DOWN,t),window.addEventListener(e.CONTEXT_MENU_EVENT_KEY_DOWN,_),()=>{window.removeEventListener(e.CONTEXT_MENU_EVENT_POINTER_DOWN,t),window.removeEventListener(e.CONTEXT_MENU_EVENT_KEY_DOWN,_)}},[o,n]),!o)return null;const i=w.clampContextMenuPosition({x:d,y:l,menuWidth:e.CONTEXT_MENU_ESTIMATED_WIDTH_PX,menuHeight:e.CONTEXT_MENU_ESTIMATED_HEIGHT_PX,viewport:{width:window.innerWidth,height:window.innerHeight},edgePadding:e.CONTEXT_MENU_EDGE_PADDING_PX}),C=t=>{t.stopPropagation()};return O.createPortal(N.jsx("div",{ref:E,className:e.CONTEXT_MENU_CLASS,role:e.CONTEXT_MENU_ROLE,"data-color-mode":M,style:{left:i.x,top:i.y},onPointerDown:C,children:a.map(t=>N.jsx("button",{type:"button",role:e.CONTEXT_MENU_ITEM_ROLE,className:X.cn(e.CONTEXT_MENU_ITEM_CLASS),disabled:t.disabled,onClick:()=>{t.onSelect(),n()},children:t.label},t.id))}),document.body)};exports.ContextMenu=P;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const E=require("../../constants/numbers.cjs"),_="Ink-ContextMenu",T="Ink-ContextMenu__item",N="menu",M="menuitem",O="pointerdown",C="keydown",U="Escape",X=E.NUMBER_EIGHT,n=E.NUMBER_ONE_HUNDRED+E.NUMBER_SEVENTY_SIX,t=E.NUMBER_THREE*E.NUMBER_ONE_HUNDRED+E.NUMBER_SIXTY;exports.CONTEXT_MENU_CLASS=_;exports.CONTEXT_MENU_EDGE_PADDING_PX=X;exports.CONTEXT_MENU_ESTIMATED_HEIGHT_PX=t;exports.CONTEXT_MENU_ESTIMATED_WIDTH_PX=n;exports.CONTEXT_MENU_EVENT_KEY_DOWN=C;exports.CONTEXT_MENU_EVENT_POINTER_DOWN=O;exports.CONTEXT_MENU_ITEM_CLASS=T;exports.CONTEXT_MENU_ITEM_ROLE=M;exports.CONTEXT_MENU_KEY_ESCAPE=U;exports.CONTEXT_MENU_ROLE=N;
@@ -0,0 +1,11 @@
1
+ export declare const CONTEXT_MENU_CLASS = "Ink-ContextMenu";
2
+ export declare const CONTEXT_MENU_ITEM_CLASS = "Ink-ContextMenu__item";
3
+ export declare const CONTEXT_MENU_ROLE = "menu";
4
+ export declare const CONTEXT_MENU_ITEM_ROLE = "menuitem";
5
+ export declare const CONTEXT_MENU_EVENT_POINTER_DOWN = "pointerdown";
6
+ export declare const CONTEXT_MENU_EVENT_KEY_DOWN = "keydown";
7
+ export declare const CONTEXT_MENU_KEY_ESCAPE = "Escape";
8
+ export declare const CONTEXT_MENU_EDGE_PADDING_PX = 8;
9
+ export declare const CONTEXT_MENU_ESTIMATED_WIDTH_PX: number;
10
+ export declare const CONTEXT_MENU_ESTIMATED_HEIGHT_PX: number;
11
+ //# sourceMappingURL=ContextMenu.const.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContextMenu.const.d.ts","sourceRoot":"","sources":["../../../src/common-components/ContextMenu/ContextMenu.const.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,kBAAkB,oBAAoB,CAAC;AACpD,eAAO,MAAM,uBAAuB,0BAA0B,CAAC;AAC/D,eAAO,MAAM,iBAAiB,SAAS,CAAC;AACxC,eAAO,MAAM,sBAAsB,aAAa,CAAC;AAEjD,eAAO,MAAM,+BAA+B,gBAAgB,CAAC;AAC7D,eAAO,MAAM,2BAA2B,YAAY,CAAC;AACrD,eAAO,MAAM,uBAAuB,WAAW,CAAC;AAEhD,eAAO,MAAM,4BAA4B,IAAe,CAAC;AACzD,eAAO,MAAM,+BAA+B,QAA0C,CAAC;AACvF,eAAO,MAAM,gCAAgC,QACK,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { NUMBER_EIGHT as _, NUMBER_ONE_HUNDRED as E, NUMBER_SEVENTY_SIX as T, NUMBER_THREE as N, NUMBER_SIXTY as n } from "../../constants/numbers.js";
2
+ const t = "Ink-ContextMenu", o = "Ink-ContextMenu__item", O = "menu", U = "menuitem", C = "pointerdown", X = "keydown", I = "Escape", e = _, c = E + T, s = N * E + n;
3
+ export {
4
+ t as CONTEXT_MENU_CLASS,
5
+ e as CONTEXT_MENU_EDGE_PADDING_PX,
6
+ s as CONTEXT_MENU_ESTIMATED_HEIGHT_PX,
7
+ c as CONTEXT_MENU_ESTIMATED_WIDTH_PX,
8
+ X as CONTEXT_MENU_EVENT_KEY_DOWN,
9
+ C as CONTEXT_MENU_EVENT_POINTER_DOWN,
10
+ o as CONTEXT_MENU_ITEM_CLASS,
11
+ U as CONTEXT_MENU_ITEM_ROLE,
12
+ I as CONTEXT_MENU_KEY_ESCAPE,
13
+ O as CONTEXT_MENU_ROLE
14
+ };
@@ -0,0 +1,4 @@
1
+ import { FC } from 'react';
2
+ import { ContextMenuProps } from './ContextMenu.types';
3
+ export declare const ContextMenu: FC<ContextMenuProps>;
4
+ //# sourceMappingURL=ContextMenu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContextMenu.d.ts","sourceRoot":"","sources":["../../../src/common-components/ContextMenu/ContextMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,EAAE,EAAmB,MAAM,OAAO,CAAC;AAcpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAI5D,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CAoE5C,CAAC"}
@@ -0,0 +1,69 @@
1
+ import { jsx as T } from "react/jsx-runtime";
2
+ import { useRef as u, useEffect as C } from "react";
3
+ import { createPortal as M } from "react-dom";
4
+ import { CONTEXT_MENU_EVENT_POINTER_DOWN as s, CONTEXT_MENU_EVENT_KEY_DOWN as N, CONTEXT_MENU_ROLE as w, CONTEXT_MENU_CLASS as O, CONTEXT_MENU_ITEM_ROLE as X, CONTEXT_MENU_KEY_ESCAPE as P, CONTEXT_MENU_EDGE_PADDING_PX as h, CONTEXT_MENU_ESTIMATED_WIDTH_PX as U, CONTEXT_MENU_ESTIMATED_HEIGHT_PX as D, CONTEXT_MENU_ITEM_CLASS as g } from "./ContextMenu.const.js";
5
+ import { clampContextMenuPosition as v } from "./ContextMenu.utils.js";
6
+ import { cn as I } from "../../utils/cn.utils.js";
7
+ import "../../constants/openai.const.js";
8
+ import "../../utils/paste.utils.js";
9
+ const W = (l) => {
10
+ const { open: t, x: a, y: c, items: m, onClose: o, colorMode: p } = l, r = u(null);
11
+ if (C(() => {
12
+ if (!t) return;
13
+ const e = (n) => {
14
+ var d;
15
+ const _ = n.target;
16
+ if (!(_ instanceof Node)) {
17
+ o();
18
+ return;
19
+ }
20
+ (d = r.current) != null && d.contains(_) || o();
21
+ }, E = (n) => {
22
+ n.key === P && o();
23
+ };
24
+ return window.addEventListener(s, e), window.addEventListener(N, E), () => {
25
+ window.removeEventListener(s, e), window.removeEventListener(N, E);
26
+ };
27
+ }, [t, o]), !t) return null;
28
+ const i = v({
29
+ x: a,
30
+ y: c,
31
+ menuWidth: U,
32
+ menuHeight: D,
33
+ viewport: { width: window.innerWidth, height: window.innerHeight },
34
+ edgePadding: h
35
+ }), f = (e) => {
36
+ e.stopPropagation();
37
+ };
38
+ return M(
39
+ /* @__PURE__ */ T(
40
+ "div",
41
+ {
42
+ ref: r,
43
+ className: O,
44
+ role: w,
45
+ "data-color-mode": p,
46
+ style: { left: i.x, top: i.y },
47
+ onPointerDown: f,
48
+ children: m.map((e) => /* @__PURE__ */ T(
49
+ "button",
50
+ {
51
+ type: "button",
52
+ role: X,
53
+ className: I(g),
54
+ disabled: e.disabled,
55
+ onClick: () => {
56
+ e.onSelect(), o();
57
+ },
58
+ children: e.label
59
+ },
60
+ e.id
61
+ ))
62
+ }
63
+ ),
64
+ document.body
65
+ );
66
+ };
67
+ export {
68
+ W as ContextMenu
69
+ };
@@ -0,0 +1,33 @@
1
+ import { ReactNode } from 'react';
2
+ import { InkColorMode } from '../../types';
3
+ export type ContextMenuItem = {
4
+ id: string;
5
+ label: ReactNode;
6
+ onSelect: () => void;
7
+ disabled?: boolean;
8
+ };
9
+ export type ContextMenuProps = {
10
+ open: boolean;
11
+ x: number;
12
+ y: number;
13
+ items: ContextMenuItem[];
14
+ onClose: () => void;
15
+ colorMode?: Exclude<InkColorMode, 'system'> | undefined;
16
+ };
17
+ export interface ContextMenuPosition {
18
+ x: number;
19
+ y: number;
20
+ }
21
+ export interface ContextMenuViewportBounds {
22
+ width: number;
23
+ height: number;
24
+ }
25
+ export interface ClampContextMenuPositionInput {
26
+ x: number;
27
+ y: number;
28
+ menuWidth: number;
29
+ menuHeight: number;
30
+ viewport: ContextMenuViewportBounds;
31
+ edgePadding: number;
32
+ }
33
+ //# sourceMappingURL=ContextMenu.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContextMenu.types.d.ts","sourceRoot":"","sources":["../../../src/common-components/ContextMenu/ContextMenu.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,MAAM,eAAe,GAAG;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,OAAO,CAAC;IACd,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,GAAG,SAAS,CAAC;CACzD,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAClC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,6BAA6B;IAC5C,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,yBAAyB,CAAC;IACpC,WAAW,EAAE,MAAM,CAAC;CACrB"}
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("../../constants/numbers.cjs"),h=a=>{const{x:m,y:s,menuWidth:r,menuHeight:u,viewport:e,edgePadding:t}=a,x=Math.max(t,e.width-r-t),c=Math.max(t,e.height-u-t),n=Math.min(Math.max(m,t),x),i=Math.min(Math.max(s,t),c);return{x:Number.isFinite(n)?n:o.NUMBER_ZERO,y:Number.isFinite(i)?i:o.NUMBER_ZERO}};exports.clampContextMenuPosition=h;
@@ -0,0 +1,3 @@
1
+ import { ClampContextMenuPositionInput, ContextMenuPosition } from './ContextMenu.types';
2
+ export declare const clampContextMenuPosition: (input: ClampContextMenuPositionInput) => ContextMenuPosition;
3
+ //# sourceMappingURL=ContextMenu.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContextMenu.utils.d.ts","sourceRoot":"","sources":["../../../src/common-components/ContextMenu/ContextMenu.utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,6BAA6B,EAC7B,mBAAmB,EACpB,MAAM,qBAAqB,CAAC;AAE7B,eAAO,MAAM,wBAAwB,GACnC,OAAO,6BAA6B,KACnC,mBAWF,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { NUMBER_ZERO as m } from "../../constants/numbers.js";
2
+ const u = (a) => {
3
+ const { x: o, y: x, menuWidth: h, menuHeight: s, viewport: n, edgePadding: t } = a, r = Math.max(t, n.width - h - t), M = Math.max(t, n.height - s - t), e = Math.min(Math.max(o, t), r), i = Math.min(Math.max(x, t), M);
4
+ return {
5
+ x: Number.isFinite(e) ? e : m,
6
+ y: Number.isFinite(i) ? i : m
7
+ };
8
+ };
9
+ export {
10
+ u as clampContextMenuPosition
11
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ContextMenu.utils.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContextMenu.utils.test.d.ts","sourceRoot":"","sources":["../../../src/common-components/ContextMenu/ContextMenu.utils.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ export { ContextMenu } from './ContextMenu';
2
+ export type { ClampContextMenuPositionInput, ContextMenuItem, ContextMenuPosition, ContextMenuProps, ContextMenuViewportBounds, } from './ContextMenu.types';
3
+ export { CONTEXT_MENU_CLASS, CONTEXT_MENU_EDGE_PADDING_PX, CONTEXT_MENU_ESTIMATED_HEIGHT_PX, CONTEXT_MENU_ESTIMATED_WIDTH_PX, CONTEXT_MENU_EVENT_KEY_DOWN, CONTEXT_MENU_EVENT_POINTER_DOWN, CONTEXT_MENU_ITEM_CLASS, CONTEXT_MENU_ITEM_ROLE, CONTEXT_MENU_KEY_ESCAPE, CONTEXT_MENU_ROLE, } from './ContextMenu.const';
4
+ export { clampContextMenuPosition } from './ContextMenu.utils';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/common-components/ContextMenu/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EACV,6BAA6B,EAC7B,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,kBAAkB,EAClB,4BAA4B,EAC5B,gCAAgC,EAChC,+BAA+B,EAC/B,2BAA2B,EAC3B,+BAA+B,EAC/B,uBAAuB,EACvB,sBAAsB,EACtB,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),c=require("../Box/Box.cjs"),r=require("./Field.const.cjs"),q=require("../../utils/cn.utils.cjs");require("../../constants/openai.const.cjs");require("react");require("react-dom");require("../../utils/paste.utils.cjs");const d=s=>{const{label:n,value:t,onChange:i,autoFocus:u=!1,className:a,inputProps:l}=s;return e.jsxs("label",{className:q.cn(r.FIELD_CLASS,a),children:[e.jsx(c.Box,{as:"span",className:r.FIELD_LABEL_CLASS,children:n}),e.jsx("input",{value:t,onChange:o=>i(o.target.value),autoFocus:u,...l})]})};exports.Field=d;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const L="Ink-Field",e="Ink-Field__label";exports.FIELD_CLASS=L;exports.FIELD_LABEL_CLASS=e;
@@ -0,0 +1,3 @@
1
+ export declare const FIELD_CLASS = "Ink-Field";
2
+ export declare const FIELD_LABEL_CLASS = "Ink-Field__label";
3
+ //# sourceMappingURL=Field.const.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Field.const.d.ts","sourceRoot":"","sources":["../../../src/common-components/Field/Field.const.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,cAAc,CAAC;AACvC,eAAO,MAAM,iBAAiB,qBAAqB,CAAC"}
@@ -0,0 +1,5 @@
1
+ const L = "Ink-Field", _ = "Ink-Field__label";
2
+ export {
3
+ L as FIELD_CLASS,
4
+ _ as FIELD_LABEL_CLASS
5
+ };
@@ -0,0 +1,4 @@
1
+ import { FC } from 'react';
2
+ import { FieldProps } from './Field.types';
3
+ export declare const Field: FC<FieldProps>;
4
+ //# sourceMappingURL=Field.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Field.d.ts","sourceRoot":"","sources":["../../../src/common-components/Field/Field.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAGhC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGhD,eAAO,MAAM,KAAK,EAAE,EAAE,CAAC,UAAU,CAehC,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { jsxs as n, jsx as o } from "react/jsx-runtime";
2
+ import { Box as p } from "../Box/Box.js";
3
+ import { FIELD_LABEL_CLASS as c, FIELD_CLASS as u } from "./Field.const.js";
4
+ import { cn as L } from "../../utils/cn.utils.js";
5
+ import "../../constants/openai.const.js";
6
+ import "react";
7
+ import "react-dom";
8
+ import "../../utils/paste.utils.js";
9
+ const A = (r) => {
10
+ const { label: a, value: t, onChange: e, autoFocus: s = !1, className: m, inputProps: i } = r;
11
+ return /* @__PURE__ */ n("label", { className: L(u, m), children: [
12
+ /* @__PURE__ */ o(p, { as: "span", className: c, children: a }),
13
+ /* @__PURE__ */ o(
14
+ "input",
15
+ {
16
+ value: t,
17
+ onChange: (l) => e(l.target.value),
18
+ autoFocus: s,
19
+ ...i
20
+ }
21
+ )
22
+ ] });
23
+ };
24
+ export {
25
+ A as Field
26
+ };
@@ -0,0 +1,10 @@
1
+ import { InputHTMLAttributes, ReactNode } from 'react';
2
+ export type FieldProps = {
3
+ label: ReactNode;
4
+ value: string;
5
+ onChange: (value: string) => void;
6
+ autoFocus?: boolean;
7
+ className?: string;
8
+ inputProps?: Omit<InputHTMLAttributes<HTMLInputElement>, 'value' | 'onChange' | 'autoFocus'>;
9
+ };
10
+ //# sourceMappingURL=Field.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Field.types.d.ts","sourceRoot":"","sources":["../../../src/common-components/Field/Field.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE5D,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,WAAW,CAAC,CAAC;CAC9F,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { Field } from './Field';
2
+ export type { FieldProps } from './Field.types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/common-components/Field/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),e=require("./Icon.const.cjs"),s=require("../../utils/cn.utils.cjs");require("../../constants/openai.const.cjs");require("react");require("react-dom");require("../../utils/paste.utils.cjs");const c=()=>r.jsx("span",{className:s.cn(e.ICON_CLASS,e.ICON_CLASS_GRIP),"aria-hidden":"true",children:r.jsx("svg",{viewBox:e.ICON_VIEWBOX,children:e.GRIP_DOT_ROWS.flatMap(i=>e.GRIP_DOT_COLS.map(n=>r.jsx("circle",{cx:n,cy:i,r:e.GRIP_DOT_RADIUS},`${n}-${i}`)))})});exports.GripIcon=c;
@@ -0,0 +1,3 @@
1
+ import { FC } from 'react';
2
+ export declare const GripIcon: FC;
3
+ //# sourceMappingURL=GripIcon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GripIcon.d.ts","sourceRoot":"","sources":["../../../src/common-components/icons/GripIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAWhC,eAAO,MAAM,QAAQ,EAAE,EAUtB,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { jsx as r } from "react/jsx-runtime";
2
+ import { ICON_VIEWBOX as m, GRIP_DOT_ROWS as p, GRIP_DOT_COLS as t, GRIP_DOT_RADIUS as I, ICON_CLASS_GRIP as _, ICON_CLASS as O } from "./Icon.const.js";
3
+ import { cn as a } from "../../utils/cn.utils.js";
4
+ import "../../constants/openai.const.js";
5
+ import "react";
6
+ import "react-dom";
7
+ import "../../utils/paste.utils.js";
8
+ const l = () => /* @__PURE__ */ r("span", { className: a(O, _), "aria-hidden": "true", children: /* @__PURE__ */ r("svg", { viewBox: m, children: p.flatMap(
9
+ (i) => t.map((o) => /* @__PURE__ */ r("circle", { cx: o, cy: i, r: I }, `${o}-${i}`))
10
+ ) }) });
11
+ export {
12
+ l as GripIcon
13
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const _=require("../../constants/numbers.cjs"),I="Ink-Icon",O="Ink-Icon--grip",E="0 0 24 24",S=1.35,N=[_.NUMBER_NINE,_.NUMBER_FIFTEEN],R=[_.NUMBER_SEVEN,_.NUMBER_TWELVE,_.NUMBER_SEVENTEEN];exports.GRIP_DOT_COLS=N;exports.GRIP_DOT_RADIUS=S;exports.GRIP_DOT_ROWS=R;exports.ICON_CLASS=I;exports.ICON_CLASS_GRIP=O;exports.ICON_VIEWBOX=E;