@forgedevstack/ink 1.1.3 → 1.1.6

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 +60 -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 +917 -432
  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 +20 -0
  234. package/dist/constants/toolbarMenu.const.d.ts.map +1 -0
  235. package/dist/constants/toolbarMenu.const.js +66 -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 +65 -40
  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 +3 -1
  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/dist/styles.css CHANGED
@@ -1,721 +1 @@
1
- .Ink-Editor {
2
- --ink-border: #e5e7eb;
3
- --ink-bg: #ffffff;
4
- --ink-toolbar: #f8fafc;
5
- --ink-text: #0f172a;
6
- --ink-muted: #64748b;
7
- --ink-accent: #0d9488;
8
- --ink-accent-soft: #ccfbf1;
9
- --ink-shadow: 0 10px 40px rgb(15 23 42 / 0.08);
10
- --ink-radius: 1rem;
11
- --ink-font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
12
- --ink-ai-accent: var(--ink-accent);
13
- --ink-ai-surface: #f8fafc;
14
- --ink-ai-border: var(--ink-border);
15
- border: 1px solid var(--ink-border);
16
- border-radius: var(--ink-radius);
17
- overflow: hidden;
18
- background: var(--ink-bg);
19
- color: var(--ink-text);
20
- box-shadow: var(--ink-shadow);
21
- font-family: var(--ink-font-family);
22
- }
23
-
24
- .Ink-Editor[data-wysiwyg='true'] .Ink-Editor__content {
25
- font-family: inherit;
26
- line-height: 1.65;
27
- }
28
-
29
- .Ink-Editor[data-wysiwyg='true'] .Ink-Editor__content img {
30
- max-width: 100%;
31
- height: auto;
32
- }
33
-
34
- .Ink-Editor[data-wysiwyg='true'] .Ink-Editor__content table {
35
- border-collapse: collapse;
36
- width: 100%;
37
- }
38
-
39
- .Ink-Editor[data-wysiwyg='true'] .Ink-Editor__content th,
40
- .Ink-Editor[data-wysiwyg='true'] .Ink-Editor__content td {
41
- border: 1px solid var(--ink-border);
42
- padding: 0.4rem 0.6rem;
43
- }
44
-
45
- .Ink-Editor[data-variant='document'] {
46
- --ink-toolbar: #ffffff;
47
- box-shadow: 0 4px 24px rgb(15 23 42 / 0.06);
48
- }
49
-
50
- .Ink-Editor[data-disabled='true'] {
51
- opacity: 0.6;
52
- pointer-events: none;
53
- }
54
-
55
- .Ink-Editor__toolbar {
56
- display: flex;
57
- flex-wrap: wrap;
58
- align-items: center;
59
- gap: 0.2rem;
60
- padding: 0.55rem 0.65rem;
61
- border-bottom: 1px solid var(--ink-border);
62
- background: var(--ink-toolbar);
63
- }
64
-
65
- .Ink-Editor__button,
66
- .Ink-Editor__select {
67
- border: 0;
68
- background: transparent;
69
- color: inherit;
70
- border-radius: 0.45rem;
71
- cursor: pointer;
72
- }
73
-
74
- .Ink-Editor__button {
75
- min-width: 2rem;
76
- height: 2rem;
77
- padding: 0 0.4rem;
78
- font-weight: 650;
79
- font-size: 0.85rem;
80
- }
81
-
82
- .Ink-Editor__button:hover,
83
- .Ink-Editor__select:hover {
84
- background: rgb(15 23 42 / 0.05);
85
- }
86
-
87
- .Ink-Editor__button--active {
88
- background: var(--ink-accent-soft);
89
- color: var(--ink-accent);
90
- }
91
-
92
- .Ink-Editor__select {
93
- height: 2rem;
94
- padding: 0 0.5rem;
95
- border: 1px solid transparent;
96
- }
97
-
98
- .Ink-Editor__select:focus {
99
- outline: none;
100
- border-color: var(--ink-accent);
101
- background: #fff;
102
- }
103
-
104
- .Ink-Editor__divider {
105
- width: 1px;
106
- height: 1.25rem;
107
- margin: 0 0.3rem;
108
- background: var(--ink-border);
109
- }
110
-
111
- .Ink-Editor__color {
112
- position: relative;
113
- display: inline-flex;
114
- align-items: center;
115
- justify-content: center;
116
- width: 2rem;
117
- height: 2rem;
118
- cursor: pointer;
119
- }
120
-
121
- .Ink-Editor__color input {
122
- position: absolute;
123
- inset: 0;
124
- opacity: 0;
125
- cursor: pointer;
126
- }
127
-
128
- .Ink-Editor__color-swatch {
129
- width: 1rem;
130
- height: 1rem;
131
- border-radius: 999px;
132
- border: 1px solid var(--ink-border);
133
- }
134
-
135
- .Ink-Editor__shell {
136
- position: relative;
137
- display: flex;
138
- align-items: stretch;
139
- min-height: 0;
140
- }
141
-
142
- .Ink-Editor__body {
143
- position: relative;
144
- flex: 1 1 auto;
145
- min-width: 0;
146
- }
147
-
148
- .Ink-Editor__content {
149
- min-height: 150px;
150
- padding: 1.1rem 1.25rem 1.1rem 2.5rem;
151
- outline: none;
152
- overflow: auto;
153
- line-height: 1.65;
154
- }
155
-
156
- .Ink-Editor[data-variant='document'] .Ink-Editor__content {
157
- padding: 2rem 2.5rem 2rem 3rem;
158
- max-width: 48rem;
159
- margin: 0 auto;
160
- }
161
-
162
- .Ink-Editor__content:empty::before {
163
- content: attr(data-placeholder);
164
- color: var(--ink-muted);
165
- pointer-events: none;
166
- }
167
-
168
- .Ink-Editor__content img {
169
- max-width: 100%;
170
- height: auto;
171
- border-radius: 0.35rem;
172
- }
173
-
174
- .Ink-Editor__content h1,
175
- .Ink-Editor__content h2,
176
- .Ink-Editor__content h3,
177
- .Ink-Editor__content h4,
178
- .Ink-Editor__content h5,
179
- .Ink-Editor__content h6 {
180
- margin: 0.85rem 0 0.45rem;
181
- line-height: 1.25;
182
- }
183
-
184
- .Ink-Editor__content p,
185
- .Ink-Editor__content ul,
186
- .Ink-Editor__content ol,
187
- .Ink-Editor__content blockquote,
188
- .Ink-Editor__content pre {
189
- margin: 0.55rem 0;
190
- }
191
-
192
- .Ink-Editor__content .Ink-block--active {
193
- outline: 1px solid rgb(13 148 136 / 0.35);
194
- border-radius: 0.35rem;
195
- background: rgb(13 148 136 / 0.03);
196
- }
197
-
198
- .Ink-Editor__content .Ink-table {
199
- width: 100%;
200
- border-collapse: collapse;
201
- margin: 0.75rem 0;
202
- font-size: 0.95rem;
203
- }
204
-
205
- .Ink-Editor__content .Ink-table th,
206
- .Ink-Editor__content .Ink-table td {
207
- border: 1px solid var(--ink-border);
208
- padding: 0.45rem 0.6rem;
209
- min-width: 4rem;
210
- }
211
-
212
- .Ink-Editor__content .Ink-table th {
213
- background: #f1f5f9;
214
- font-weight: 650;
215
- text-align: left;
216
- }
217
-
218
- .Ink-Editor__content .Ink-tc-insert {
219
- background: rgb(34 197 94 / 0.18);
220
- text-decoration: none;
221
- color: inherit;
222
- }
223
-
224
- .Ink-Editor__content .Ink-tc-delete {
225
- background: rgb(239 68 68 / 0.14);
226
- color: #991b1b;
227
- }
228
-
229
- .Ink-Editor__content .Ink-comment-mark {
230
- background: #fde047;
231
- border-radius: 0.15rem;
232
- padding: 0 0.1rem;
233
- }
234
-
235
- .Ink-Editor__footer {
236
- padding: 0.35rem 0.75rem;
237
- border-top: 1px solid var(--ink-border);
238
- font-size: 0.75rem;
239
- color: var(--ink-muted);
240
- text-align: right;
241
- }
242
-
243
- .Ink-BlockHandles {
244
- position: absolute;
245
- left: 0.25rem;
246
- z-index: 2;
247
- display: flex;
248
- flex-direction: column;
249
- gap: 0.1rem;
250
- }
251
-
252
- .Ink-BlockHandles__grip,
253
- .Ink-BlockHandles__btn {
254
- width: 1.5rem;
255
- height: 1.35rem;
256
- border: 0;
257
- border-radius: 0.3rem;
258
- background: #fff;
259
- box-shadow: 0 1px 3px rgb(15 23 42 / 0.12);
260
- color: var(--ink-muted);
261
- cursor: pointer;
262
- font-size: 0.7rem;
263
- line-height: 1;
264
- }
265
-
266
- .Ink-BlockHandles__btn:hover,
267
- .Ink-BlockHandles__grip:hover {
268
- color: var(--ink-accent);
269
- background: var(--ink-accent-soft);
270
- }
271
-
272
- .Ink-Slash {
273
- position: absolute;
274
- z-index: 5;
275
- min-width: 12rem;
276
- background: #fff;
277
- border: 1px solid var(--ink-border);
278
- border-radius: 0.65rem;
279
- box-shadow: 0 12px 32px rgb(15 23 42 / 0.12);
280
- padding: 0.3rem;
281
- }
282
-
283
- .Ink-Slash__item {
284
- display: block;
285
- width: 100%;
286
- text-align: left;
287
- border: 0;
288
- background: transparent;
289
- padding: 0.45rem 0.6rem;
290
- border-radius: 0.4rem;
291
- cursor: pointer;
292
- color: inherit;
293
- }
294
-
295
- .Ink-Slash__item:hover {
296
- background: var(--ink-accent-soft);
297
- color: var(--ink-accent);
298
- }
299
-
300
- .Ink-TrackBar {
301
- display: flex;
302
- flex-wrap: wrap;
303
- align-items: center;
304
- gap: 0.5rem;
305
- padding: 0.45rem 0.75rem;
306
- border-bottom: 1px solid var(--ink-border);
307
- background: #fffbeb;
308
- font-size: 0.8rem;
309
- }
310
-
311
- .Ink-TrackBar__label {
312
- font-weight: 650;
313
- color: #92400e;
314
- }
315
-
316
- .Ink-TrackBar__actions {
317
- display: flex;
318
- gap: 0.25rem;
319
- }
320
-
321
- .Ink-TrackBar__list {
322
- list-style: none;
323
- margin: 0;
324
- padding: 0;
325
- display: flex;
326
- flex-wrap: wrap;
327
- gap: 0.35rem;
328
- width: 100%;
329
- }
330
-
331
- .Ink-TrackBar__list li {
332
- display: flex;
333
- align-items: center;
334
- gap: 0.25rem;
335
- background: #fff;
336
- border: 1px solid #fde68a;
337
- border-radius: 0.45rem;
338
- padding: 0.2rem 0.35rem;
339
- }
340
-
341
- .Ink-Comments {
342
- width: 300px;
343
- flex: 0 0 300px;
344
- border-left: 1px solid var(--ink-border);
345
- background: #fcfcfd;
346
- display: flex;
347
- flex-direction: column;
348
- max-height: 100%;
349
- }
350
-
351
- .Ink-Comments__header,
352
- .Ink-Ai__header {
353
- display: flex;
354
- align-items: center;
355
- justify-content: space-between;
356
- padding: 0.65rem 0.75rem;
357
- border-bottom: 1px solid var(--ink-border);
358
- font-size: 0.9rem;
359
- }
360
-
361
- .Ink-Comments__list {
362
- overflow: auto;
363
- padding: 0.65rem;
364
- display: flex;
365
- flex-direction: column;
366
- gap: 0.65rem;
367
- }
368
-
369
- .Ink-Comments__empty,
370
- .Ink-Ai__empty,
371
- .Ink-Ai__hint {
372
- color: var(--ink-muted);
373
- font-size: 0.85rem;
374
- line-height: 1.45;
375
- }
376
-
377
- .Ink-Comments__thread {
378
- border: 1px solid var(--ink-border);
379
- border-radius: 0.65rem;
380
- padding: 0.65rem;
381
- background: #fff;
382
- box-shadow: 0 1px 2px rgb(15 23 42 / 0.04);
383
- }
384
-
385
- .Ink-Comments__thread--resolved {
386
- opacity: 0.65;
387
- }
388
-
389
- .Ink-Comments__meta {
390
- display: flex;
391
- justify-content: space-between;
392
- gap: 0.5rem;
393
- font-size: 0.72rem;
394
- color: var(--ink-muted);
395
- margin-bottom: 0.35rem;
396
- }
397
-
398
- .Ink-Comments__body {
399
- margin: 0;
400
- font-size: 0.88rem;
401
- }
402
-
403
- .Ink-Comments__reply {
404
- margin-top: 0.5rem;
405
- padding-left: 0.65rem;
406
- border-left: 2px solid var(--ink-accent-soft);
407
- }
408
-
409
- .Ink-Comments__form {
410
- display: flex;
411
- flex-wrap: wrap;
412
- gap: 0.3rem;
413
- margin-top: 0.55rem;
414
- }
415
-
416
- .Ink-Comments__form input,
417
- .Ink-Ai__form input,
418
- .Ink-Ai__translate select {
419
- flex: 1 1 auto;
420
- min-width: 0;
421
- border: 1px solid var(--ink-border);
422
- border-radius: 0.45rem;
423
- padding: 0.4rem 0.5rem;
424
- font: inherit;
425
- }
426
-
427
- .Ink-Comments__resolved {
428
- margin: 0.4rem 0 0;
429
- font-size: 0.75rem;
430
- color: var(--ink-muted);
431
- }
432
-
433
- .Ink-Ai {
434
- width: 320px;
435
- flex: 0 0 320px;
436
- border-left: 1px solid var(--ink-ai-border, var(--ink-border));
437
- background: var(--ink-ai-surface, #f8fafc);
438
- display: flex;
439
- flex-direction: column;
440
- max-height: 100%;
441
- }
442
-
443
- .Ink-Ai[data-placement='floating'] {
444
- position: absolute;
445
- right: 1rem;
446
- top: 3.5rem;
447
- z-index: 6;
448
- border: 1px solid var(--ink-ai-border, var(--ink-border));
449
- border-radius: 0.85rem;
450
- box-shadow: 0 16px 40px rgb(15 23 42 / 0.14);
451
- max-height: min(28rem, 70vh);
452
- }
453
-
454
- .Ink-Ai[data-placement='drawer'] {
455
- position: absolute;
456
- inset: 0 0 0 auto;
457
- z-index: 6;
458
- box-shadow: -8px 0 24px rgb(15 23 42 / 0.08);
459
- }
460
-
461
- .Ink-Ai__tabs {
462
- display: flex;
463
- flex-wrap: wrap;
464
- gap: 0.2rem;
465
- padding: 0.4rem 0.55rem;
466
- border-bottom: 1px solid var(--ink-ai-border, var(--ink-border));
467
- }
468
-
469
- .Ink-Ai__body {
470
- flex: 1 1 auto;
471
- overflow: auto;
472
- padding: 0.65rem;
473
- display: flex;
474
- flex-direction: column;
475
- gap: 0.65rem;
476
- }
477
-
478
- .Ink-Ai__history {
479
- display: flex;
480
- flex-direction: column;
481
- gap: 0.45rem;
482
- min-height: 8rem;
483
- }
484
-
485
- .Ink-Ai__turn {
486
- border-radius: 0.55rem;
487
- padding: 0.5rem 0.6rem;
488
- background: #fff;
489
- border: 1px solid var(--ink-border);
490
- font-size: 0.85rem;
491
- }
492
-
493
- .Ink-Ai__turn span {
494
- display: block;
495
- font-size: 0.68rem;
496
- text-transform: uppercase;
497
- letter-spacing: 0.04em;
498
- color: var(--ink-muted);
499
- margin-bottom: 0.2rem;
500
- }
501
-
502
- .Ink-Ai__turn p {
503
- margin: 0;
504
- }
505
-
506
- .Ink-Ai__turn--user {
507
- border-color: rgb(13 148 136 / 0.35);
508
- background: rgb(13 148 136 / 0.06);
509
- }
510
-
511
- .Ink-Ai__form,
512
- .Ink-Ai__diff-actions,
513
- .Ink-Ai__actions {
514
- display: flex;
515
- flex-wrap: wrap;
516
- gap: 0.35rem;
517
- }
518
-
519
- .Ink-Ai__action {
520
- width: 100%;
521
- justify-content: flex-start;
522
- text-align: left;
523
- background: #fff;
524
- border: 1px solid var(--ink-border) !important;
525
- }
526
-
527
- .Ink-Ai__suggestion {
528
- border: 1px solid var(--ink-border);
529
- border-radius: 0.55rem;
530
- padding: 0.55rem;
531
- background: #fff;
532
- font-size: 0.85rem;
533
- }
534
-
535
- .Ink-Ai__suggestion--warning {
536
- border-color: #fbbf24;
537
- }
538
-
539
- .Ink-Ai__suggestion--error {
540
- border-color: #f87171;
541
- }
542
-
543
- .Ink-Ai__suggestion p {
544
- margin: 0.25rem 0;
545
- }
546
-
547
- .Ink-Ai__suggestion code {
548
- display: block;
549
- font-size: 0.75rem;
550
- color: var(--ink-muted);
551
- }
552
-
553
- .Ink-Ai__translate label {
554
- display: flex;
555
- flex-direction: column;
556
- gap: 0.3rem;
557
- font-size: 0.8rem;
558
- color: var(--ink-muted);
559
- }
560
-
561
- .Ink-Ai__diff {
562
- border: 1px solid rgb(13 148 136 / 0.35);
563
- border-radius: 0.65rem;
564
- padding: 0.65rem;
565
- background: #fff;
566
- }
567
-
568
- .Ink-Ai__diff-preview {
569
- margin: 0.4rem 0;
570
- padding: 0.45rem;
571
- border-radius: 0.4rem;
572
- background: rgb(13 148 136 / 0.06);
573
- font-size: 0.85rem;
574
- }
575
-
576
- .Ink-Ai__footer {
577
- padding: 0.4rem 0.75rem;
578
- border-top: 1px solid var(--ink-ai-border, var(--ink-border));
579
- font-size: 0.7rem;
580
- color: var(--ink-muted);
581
- }
582
-
583
- @media (max-width: 900px) {
584
- .Ink-Editor__shell {
585
- flex-direction: column;
586
- }
587
-
588
- .Ink-Comments,
589
- .Ink-Ai {
590
- width: 100%;
591
- flex: none;
592
- border-left: 0;
593
- border-top: 1px solid var(--ink-border);
594
- max-height: 16rem;
595
- }
596
-
597
- .Ink-Ai[data-placement='floating'],
598
- .Ink-Ai[data-placement='drawer'] {
599
- position: static;
600
- box-shadow: none;
601
- max-height: 16rem;
602
- }
603
- }
604
-
605
- @media (prefers-color-scheme: dark) {
606
- .Ink-Editor {
607
- --ink-border: #3f3f46;
608
- --ink-bg: #18181b;
609
- --ink-toolbar: #27272a;
610
- --ink-text: #f4f4f5;
611
- --ink-muted: #a1a1aa;
612
- --ink-accent: #2dd4bf;
613
- --ink-accent-soft: rgb(45 212 191 / 0.15);
614
- --ink-shadow: 0 10px 40px rgb(0 0 0 / 0.35);
615
- }
616
- }
617
-
618
- .ink-theme-snow .Ink-Editor,
619
- .Ink-Editor.ink-theme-snow {
620
- --ink-border: #e5e7eb;
621
- --ink-bg: #ffffff;
622
- --ink-toolbar: #f9fafb;
623
- --ink-text: #111827;
624
- --ink-muted: #6b7280;
625
- --ink-accent: #0f766e;
626
- --ink-accent-soft: #ccfbf1;
627
- border-radius: 0.75rem;
628
- }
629
-
630
- .ink-theme-bubble .Ink-Editor,
631
- .Ink-Editor.ink-theme-bubble {
632
- --ink-border: transparent;
633
- --ink-bg: #ffffff;
634
- --ink-toolbar: #ffffff;
635
- --ink-text: #111827;
636
- --ink-muted: #6b7280;
637
- --ink-accent: #0f766e;
638
- --ink-accent-soft: #ccfbf1;
639
- box-shadow: 0 4px 24px rgb(15 23 42 / 0.1);
640
- border-radius: 1rem;
641
- }
642
-
643
- .ink-theme-dark .Ink-Editor,
644
- .Ink-Editor.ink-theme-dark {
645
- --ink-border: #3f3f46;
646
- --ink-bg: #18181b;
647
- --ink-toolbar: #27272a;
648
- --ink-text: #f4f4f5;
649
- --ink-muted: #a1a1aa;
650
- --ink-accent: #2dd4bf;
651
- --ink-accent-soft: rgb(45 212 191 / 0.15);
652
- }
653
-
654
- .ink-theme-minimal .Ink-Editor,
655
- .Ink-Editor.ink-theme-minimal {
656
- --ink-border: #e7e5e4;
657
- --ink-bg: #ffffff;
658
- --ink-toolbar: #ffffff;
659
- --ink-text: #1c1917;
660
- --ink-muted: #78716c;
661
- --ink-accent: #0f766e;
662
- --ink-accent-soft: #f0fdfa;
663
- box-shadow: none;
664
- border-radius: 0;
665
- }
666
-
667
- .ink-theme-minimal .Ink-Editor__toolbar,
668
- .ink-theme-minimal.Ink-Editor .Ink-Editor__toolbar {
669
- border-bottom: 1px solid var(--ink-border);
670
- }
671
-
672
- .Ink-SignPad,
673
- .Ink-FindReplace {
674
- border-bottom-color: var(--ink-border);
675
- background: var(--ink-toolbar);
676
- color: var(--ink-text);
677
- }
678
-
679
- .Ink-SignPad__title,
680
- .Ink-FindReplace__title {
681
- color: var(--ink-text);
682
- }
683
-
684
- .Ink-SignPad__canvas {
685
- max-width: 480px;
686
- height: 180px;
687
- border-color: var(--ink-border);
688
- touch-action: none;
689
- }
690
-
691
- .Ink-FindReplace__field {
692
- color: var(--ink-muted);
693
- }
694
-
695
- .Ink-FindReplace__field input {
696
- border: 1px solid var(--ink-border);
697
- border-radius: 0.4rem;
698
- padding: 0.4rem 0.55rem;
699
- background: var(--ink-bg);
700
- color: var(--ink-text);
701
- font: inherit;
702
- }
703
-
704
- .flex { display: flex; }
705
- .flex-col { flex-direction: column; }
706
- .flex-wrap { flex-wrap: wrap; }
707
- .gap-1 { gap: 0.25rem; }
708
- .gap-2 { gap: 0.5rem; }
709
- .p-3 { padding: 0.75rem; }
710
- .m-0 { margin: 0; }
711
- .w-full { width: 100%; }
712
- .max-w-xl { max-width: 36rem; }
713
- .h-44 { height: 11rem; }
714
- .border { border-width: 1px; border-style: solid; }
715
- .border-b { border-bottom-width: 1px; border-bottom-style: solid; }
716
- .border-dashed { border-style: dashed; }
717
- .rounded-lg { border-radius: 0.5rem; }
718
- .bg-white { background-color: #fff; }
719
- .cursor-crosshair { cursor: crosshair; }
720
- .text-sm { font-size: 0.875rem; }
721
- .font-semibold { font-weight: 600; }
1
+ :root{--ink-color-border: #e5e7eb;--ink-color-bg: #ffffff;--ink-color-toolbar: #f8fafc;--ink-color-text: #0f172a;--ink-color-muted: #64748b;--ink-color-accent: #0d9488;--ink-color-accent-soft: #ccfbf1}.Ink-Button{border:0;background:rgba(0,0,0,0);color:inherit;border-radius:.45rem;cursor:pointer;min-width:2rem;height:2rem;padding:0 .4rem;font-weight:650;font-size:.85rem}.Ink-Button:hover{background:rgba(15,23,42,.05)}.Ink-Button--active{background:var(--ink-accent-soft);color:var(--ink-accent)}.Ink-Button:disabled{opacity:.45;cursor:not-allowed}.Ink-Box{display:block;box-sizing:border-box}.Ink-Field{display:flex;flex-direction:column;flex-wrap:nowrap;gap:.25rem;font-size:.875rem;color:var(--ink-muted)}.Ink-Field input{border:1px solid var(--ink-border);border-radius:.4rem;padding:.4rem .55rem;background:var(--ink-bg);color:var(--ink-text);font:inherit}.Ink-Field__label{display:block;box-sizing:border-box;font-size:.8rem;color:var(--ink-muted)}.Ink-Canvas{display:block;max-width:100%;touch-action:none;cursor:crosshair;border:1px dashed var(--ink-border);border-radius:.5rem;background:var(--ink-bg)}.Ink-ContextMenu{position:fixed;z-index:50;min-width:11rem;padding:.3rem;border:1px solid #e5e7eb;border-radius:.65rem;background:#fff;color:#0f172a;box-shadow:0 10px 40px rgba(15,23,42,.12)}.Ink-ContextMenu[data-color-mode=dark]{border-color:#3f3f46;background:#18181b;color:#f4f4f5;box-shadow:0 10px 40px rgba(0,0,0,.35)}@media(prefers-color-scheme: dark){.Ink-ContextMenu:not([data-color-mode]){border-color:#3f3f46;background:#18181b;color:#f4f4f5;box-shadow:0 10px 40px rgba(0,0,0,.35)}}.Ink-ContextMenu__item{border:0;background:rgba(0,0,0,0);color:inherit;border-radius:.45rem;cursor:pointer;min-width:2rem;height:2rem;padding:0 .4rem;font-weight:650;font-size:.85rem}.Ink-ContextMenu__item:hover{background:rgba(15,23,42,.05)}.Ink-ContextMenu__item--active{background:var(--ink-accent-soft);color:var(--ink-accent)}.Ink-ContextMenu__item:disabled{opacity:.45;cursor:not-allowed}.Ink-ContextMenu__item{display:block;width:100%;min-width:0;height:auto;padding:.45rem .6rem;text-align:left;font-weight:500}.Ink-ContextMenu__item:hover{background:var(--ink-accent-soft);color:var(--ink-accent)}.Ink-Icon{display:inline-flex;width:1rem;height:1rem;align-items:center;justify-content:center}.Ink-Icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}.Ink-Icon--grip svg{fill:currentColor;stroke:none}.Ink-InlineToolbar{position:fixed;z-index:12;display:flex;align-items:center;gap:.1rem;padding:.25rem .3rem;border:1px solid rgba(15,23,42,.08);border-radius:.5rem;background:#fff;box-shadow:0 3px 15px rgba(15,23,42,.12),0 0 0 1px rgba(15,23,42,.03);color:var(--ink-text)}.Ink-InlineToolbar__item{min-width:1.85rem;height:1.85rem;padding:0 .35rem;border-radius:.35rem;font-size:.8rem;font-weight:650}.Ink-InlineToolbar__divider{width:1px;height:1.1rem;margin:0 .2rem;background:rgba(15,23,42,.12)}.Ink-Editor{--ink-border: #e5e7eb;--ink-bg: #ffffff;--ink-toolbar: #f8fafc;--ink-text: #0f172a;--ink-muted: #64748b;--ink-accent: #0d9488;--ink-accent-soft: #ccfbf1;--ink-shadow: 0 10px 40px rgba(15, 23, 42, 0.08);--ink-table-header: #f1f5f9;--ink-radius: 1rem;--ink-font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;--ink-ai-accent: var(--ink-accent);--ink-ai-surface: var(--ink-toolbar);--ink-ai-border: var(--ink-border);border:1px solid var(--ink-border);border-radius:var(--ink-radius);overflow:hidden;background:var(--ink-bg);color:var(--ink-text);box-shadow:var(--ink-shadow);font-family:var(--ink-font-family)}.Ink-Editor[data-wysiwyg=true] .Ink-Editor__content{font-family:inherit;line-height:1.65}.Ink-Editor[data-wysiwyg=true] .Ink-Editor__content img{max-width:100%;height:auto}.Ink-Editor[data-wysiwyg=true] .Ink-Editor__content table{border-collapse:collapse;width:100%}.Ink-Editor[data-wysiwyg=true] .Ink-Editor__content th,.Ink-Editor[data-wysiwyg=true] .Ink-Editor__content td{border:1px solid var(--ink-border);padding:.4rem .6rem}.Ink-Editor[data-variant=document],.Ink-Editor[data-variant=docx]{--ink-toolbar: #ffffff;box-shadow:0 4px 24px rgba(15,23,42,.06)}.Ink-Editor[data-variant=docx]{--ink-accent: #2b579a;border-color:#d0d7de;background:#f3f3f3}.Ink-Editor[data-variant=docx] .Ink-Editor__toolbar{background:linear-gradient(180deg, #ffffff 0%, #f0f3f7 100%);border-bottom:1px solid #c8d0d8}.Ink-Editor[data-variant=docx] .Ink-Editor__content{max-width:48rem;margin:1rem auto;min-height:22rem;background:#fff;border:1px solid #d8dee6;box-shadow:0 1px 2px rgba(15,23,42,.04);padding:2.5rem 3rem}.Ink-Editor[data-variant=simple]{--ink-toolbar: transparent;border:none;box-shadow:none;background:rgba(0,0,0,0)}.Ink-Editor[data-variant=simple] .Ink-Editor__toolbar{border-bottom:none;padding-inline:0;gap:.25rem}.Ink-Editor[data-variant=simple] .Ink-Editor__content{padding:.5rem 0;font-size:1rem}.Ink-Editor[data-variant=notion-like]{--ink-toolbar: transparent;--ink-accent: #111827;border:none;box-shadow:none;border-radius:0;background:#fff}.Ink-Editor[data-variant=notion-like] .Ink-Editor__toolbar{border-bottom:none;background:rgba(0,0,0,0);opacity:.85}.Ink-Editor[data-variant=notion-like] .Ink-Editor__content{max-width:42rem;margin-inline:auto;padding-block:2rem;font-size:1.125rem;line-height:1.75}.Ink-Editor[data-variant=agent]{--ink-toolbar: #f8fafc;--ink-accent: #0f766e;box-shadow:0 8px 28px rgba(15,23,42,.08);border-color:rgba(15,118,110,.25)}.Ink-Editor[data-variant=agent] .Ink-Editor__shell{position:relative}.Ink-Editor[data-variant=agent] .Ink-Editor__toolbar{background:linear-gradient(180deg, #f0fdfa 0%, #f8fafc 100%)}.Ink-Editor__agent-bar{display:flex;align-items:center;gap:.65rem;margin:.75rem 1rem 1rem;padding:.65rem .85rem;border:1px solid rgba(15,118,110,.25);border-radius:999px;background:linear-gradient(90deg, #ecfdf5 0%, #ffffff 55%);box-shadow:0 8px 20px rgba(15,118,110,.08);color:#0f766e;font-size:.9rem}.Ink-Editor[data-disabled=true]{opacity:.6;pointer-events:none}.Ink-Editor[data-chrome=borderless]{border:none;box-shadow:none;border-radius:0}.Ink-Editor[data-chrome=borderless] .Ink-Editor__toolbar{border-bottom:none;background:rgba(0,0,0,0)}.Ink-Editor__toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.2rem;padding:.55rem .65rem;border-bottom:1px solid var(--ink-border);background:var(--ink-toolbar)}.Ink-Editor__toolbar-show{display:flex;align-items:center;padding:.35rem .65rem;border-bottom:1px solid var(--ink-border);background:var(--ink-toolbar)}.Ink-ToolbarCustomize{display:flex;flex-direction:column;flex-wrap:nowrap;gap:.5rem;padding:.75rem;border-bottom:1px solid var(--ink-border);background:var(--ink-toolbar);color:var(--ink-text)}.Ink-ToolbarCustomize__title{margin:0;font-size:.875rem;font-weight:650}.Ink-ToolbarCustomize__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem;max-height:14rem;overflow:auto}.Ink-ToolbarCustomize__item label{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--ink-text);cursor:pointer}.Ink-ToolbarCustomize__actions{display:flex;flex-wrap:wrap;gap:.35rem}.Ink-Editor__button{border:0;background:rgba(0,0,0,0);color:inherit;border-radius:.45rem;cursor:pointer;min-width:2rem;height:2rem;padding:0 .4rem;font-weight:650;font-size:.85rem}.Ink-Editor__button:hover{background:rgba(15,23,42,.05)}.Ink-Editor__button--active{background:var(--ink-accent-soft);color:var(--ink-accent)}.Ink-Editor__button:disabled{opacity:.45;cursor:not-allowed}.Ink-Editor__select{border:0;background:rgba(0,0,0,0);color:inherit;border-radius:.45rem;cursor:pointer}.Ink-Editor__select:hover{background:rgba(15,23,42,.05)}.Ink-Editor__select{height:2rem;padding:0 .5rem;border:1px solid rgba(0,0,0,0)}.Ink-Editor__select:focus{outline:none;border-color:var(--ink-accent);background:#fff}.Ink-Editor__divider{width:1px;height:1.25rem;margin:0 .3rem;background:var(--ink-border)}.Ink-Editor__color{position:relative;display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;cursor:pointer}.Ink-Editor__color input{position:absolute;inset:0;opacity:0;cursor:pointer}.Ink-Editor__color-swatch{width:1rem;height:1rem;border-radius:999px;border:1px solid var(--ink-border)}.Ink-Editor__shell{position:relative;display:flex;align-items:stretch;min-height:0}.Ink-Editor__body{position:relative;flex:1 1 auto;min-width:0}.Ink-Editor__content{min-height:150px;padding:1.1rem 1.25rem 1.1rem 2.5rem;outline:none;overflow:auto;line-height:1.65}.Ink-Editor[data-variant=document] .Ink-Editor__content{padding:2rem 2.5rem 2rem 3rem;max-width:48rem;margin:0 auto}.Ink-Editor__content:empty::before{content:attr(data-placeholder);color:var(--ink-muted);pointer-events:none}.Ink-Editor__content img{max-width:100%;height:auto;border-radius:.35rem}.Ink-Editor__content h1,.Ink-Editor__content h2,.Ink-Editor__content h3,.Ink-Editor__content h4,.Ink-Editor__content h5,.Ink-Editor__content h6{margin:.85rem 0 .45rem;line-height:1.25}.Ink-Editor__content p,.Ink-Editor__content ul,.Ink-Editor__content ol,.Ink-Editor__content blockquote,.Ink-Editor__content pre{margin:.55rem 0}.Ink-Editor__content ul{list-style:disc;padding-inline-start:1.5rem}.Ink-Editor__content ol{list-style:decimal;padding-inline-start:1.5rem}.Ink-Editor__content ul.Ink-list--dash{list-style-type:"– "}.Ink-Editor__content ol.Ink-list--alpha{list-style-type:lower-alpha}.Ink-Editor__content .Ink-block--active{outline:1px solid rgba(13,148,136,.35);border-radius:.35rem;background:rgba(13,148,136,.03)}.Ink-Editor__content .Ink-block--dragging{opacity:.45}.Ink-Editor__content .Ink-block--drop-before{box-shadow:inset 0 2px 0 0 var(--ink-accent)}.Ink-Editor__content .Ink-block--drop-after{box-shadow:inset 0 -2px 0 0 var(--ink-accent)}.Ink-Editor__content .Ink-table{width:100%;border-collapse:collapse;margin:.75rem 0;font-size:.95rem}.Ink-Editor__content .Ink-table th,.Ink-Editor__content .Ink-table td{border:1px solid var(--ink-border);padding:.45rem .6rem;min-width:4rem}.Ink-Editor__content .Ink-table th{background:var(--ink-table-header, var(--ink-toolbar));color:var(--ink-text);font-weight:650;text-align:left}.Ink-Editor__content .Ink-tc-insert{background:rgba(34,197,94,.18);text-decoration:none;color:inherit}.Ink-Editor__content .Ink-tc-delete{background:rgba(239,68,68,.14);color:#991b1b}.Ink-Editor__content .Ink-comment-mark{background:#fde047;border-radius:.15rem;padding:0 .1rem}.Ink-Editor__footer{padding:.35rem .75rem;border-top:1px solid var(--ink-border);font-size:.75rem;color:var(--ink-muted);text-align:right}.Ink-BlockHandles{position:absolute;left:.2rem;z-index:2;display:flex;flex-direction:column;align-items:center;gap:.2rem}.Ink-BlockHandles__plus,.Ink-BlockHandles__grip,.Ink-BlockHandles__btn{width:1.5rem;height:1.5rem;border:0;border-radius:999px;background:#fff;box-shadow:0 1px 4px rgba(15,23,42,.14);color:var(--ink-muted);cursor:pointer;font-size:.85rem;line-height:1;display:inline-flex;align-items:center;justify-content:center;padding:0}.Ink-BlockHandles__plus{font-weight:500;font-size:1rem}.Ink-BlockHandles__grip{cursor:grab}.Ink-BlockHandles__grip .Ink-Icon{width:.85rem;height:.85rem}.Ink-BlockHandles__grip:active{cursor:grabbing}.Ink-BlockHandles__btn{width:1.35rem;height:1.35rem;font-size:.65rem;opacity:.85}.Ink-BlockHandles__plus:hover,.Ink-BlockHandles__btn:hover,.Ink-BlockHandles__grip:hover{color:var(--ink-accent);background:var(--ink-accent-soft)}.Ink-Slash{position:absolute;z-index:5;min-width:12rem;background:#fff;border:1px solid rgba(15,23,42,.08);border-radius:.55rem;box-shadow:0 4px 18px rgba(15,23,42,.12),0 0 0 1px rgba(15,23,42,.03);padding:.35rem}.Ink-Slash__item{display:block;width:100%;text-align:left;border:0;background:rgba(0,0,0,0);padding:.45rem .6rem;border-radius:.4rem;cursor:pointer;color:inherit}.Ink-Slash__item:hover{background:var(--ink-accent-soft);color:var(--ink-accent)}.Ink-TrackBar{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.45rem .75rem;border-bottom:1px solid var(--ink-border);background:#fffbeb;font-size:.8rem}.Ink-TrackBar__label{font-weight:650;color:#92400e}.Ink-TrackBar__actions{display:flex;gap:.25rem}.Ink-TrackBar__list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.35rem;width:100%}.Ink-TrackBar__list li{display:flex;align-items:center;gap:.25rem;background:#fff;border:1px solid #fde68a;border-radius:.45rem;padding:.2rem .35rem}.Ink-Comments{width:300px;flex:0 0 300px;border-left:1px solid var(--ink-border);background:#fcfcfd;display:flex;flex-direction:column;max-height:100%}.Ink-Comments__header,.Ink-Ai__header{display:flex;align-items:center;justify-content:space-between;padding:.65rem .75rem;border-bottom:1px solid var(--ink-border);font-size:.9rem}.Ink-Comments__list{overflow:auto;padding:.65rem;display:flex;flex-direction:column;gap:.65rem}.Ink-Comments__empty,.Ink-Ai__empty,.Ink-Ai__hint{color:var(--ink-muted);font-size:.85rem;line-height:1.45}.Ink-Comments__thread{border:1px solid var(--ink-border);border-radius:.65rem;padding:.65rem;background:#fff;box-shadow:0 1px 2px rgba(15,23,42,.04)}.Ink-Comments__thread--resolved{opacity:.65}.Ink-Comments__meta{display:flex;justify-content:space-between;gap:.5rem;font-size:.72rem;color:var(--ink-muted);margin-bottom:.35rem}.Ink-Comments__body{margin:0;font-size:.88rem}.Ink-Comments__reply{margin-top:.5rem;padding-left:.65rem;border-left:2px solid var(--ink-accent-soft)}.Ink-Comments__form{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.55rem}.Ink-Comments__form input,.Ink-Ai__form input,.Ink-Ai__translate select{flex:1 1 auto;min-width:0;border:1px solid var(--ink-border);border-radius:.45rem;padding:.4rem .5rem;font:inherit}.Ink-Comments__resolved{margin:.4rem 0 0;font-size:.75rem;color:var(--ink-muted)}.Ink-Ai{width:320px;flex:0 0 320px;border-left:1px solid var(--ink-ai-border, var(--ink-border));background:var(--ink-ai-surface, #f8fafc);display:flex;flex-direction:column;max-height:100%}.Ink-Ai[data-placement=floating]{position:absolute;right:1rem;top:3.5rem;z-index:6;border:1px solid var(--ink-ai-border, var(--ink-border));border-radius:.85rem;box-shadow:0 16px 40px rgba(15,23,42,.14);max-height:min(28rem,70vh)}.Ink-Ai[data-placement=drawer]{position:absolute;inset:0 0 0 auto;z-index:6;box-shadow:-8px 0 24px rgba(15,23,42,.08)}.Ink-Ai__tabs{display:flex;flex-wrap:wrap;gap:.2rem;padding:.4rem .55rem;border-bottom:1px solid var(--ink-ai-border, var(--ink-border))}.Ink-Ai__body{flex:1 1 auto;overflow:auto;padding:.65rem;display:flex;flex-direction:column;gap:.65rem}.Ink-Ai__history{display:flex;flex-direction:column;gap:.45rem;min-height:8rem}.Ink-Ai__turn{border-radius:.55rem;padding:.5rem .6rem;background:#fff;border:1px solid var(--ink-border);font-size:.85rem}.Ink-Ai__turn span{display:block;font-size:.68rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-muted);margin-bottom:.2rem}.Ink-Ai__turn p{margin:0}.Ink-Ai__turn--user{border-color:rgba(13,148,136,.35);background:rgba(13,148,136,.06)}.Ink-Ai__form,.Ink-Ai__diff-actions,.Ink-Ai__actions{display:flex;flex-wrap:wrap;gap:.35rem}.Ink-Ai__action{width:100%;justify-content:flex-start;text-align:left;background:#fff;border:1px solid var(--ink-border) !important}.Ink-Ai__suggestion{border:1px solid var(--ink-border);border-radius:.55rem;padding:.55rem;background:#fff;font-size:.85rem}.Ink-Ai__suggestion--warning{border-color:#fbbf24}.Ink-Ai__suggestion--error{border-color:#f87171}.Ink-Ai__suggestion p{margin:.25rem 0}.Ink-Ai__suggestion code{display:block;font-size:.75rem;color:var(--ink-muted)}.Ink-Ai__translate label{display:flex;flex-direction:column;gap:.3rem;font-size:.8rem;color:var(--ink-muted)}.Ink-Ai__diff{border:1px solid rgba(13,148,136,.35);border-radius:.65rem;padding:.65rem;background:#fff}.Ink-Ai__diff-preview{margin:.4rem 0;padding:.45rem;border-radius:.4rem;background:rgba(13,148,136,.06);font-size:.85rem}.Ink-Ai__footer{padding:.4rem .75rem;border-top:1px solid var(--ink-ai-border, var(--ink-border));font-size:.7rem;color:var(--ink-muted)}.Ink-AiAutocomplete{position:absolute;z-index:4;pointer-events:none;color:var(--ink-muted);font-style:italic;white-space:pre-wrap;opacity:.65;user-select:none}@media(max-width: 900px){.Ink-Editor__shell{flex-direction:column}.Ink-Comments,.Ink-Ai{width:100%;flex:none;border-left:0;border-top:1px solid var(--ink-border);max-height:16rem}.Ink-Ai[data-placement=floating],.Ink-Ai[data-placement=drawer]{position:static;box-shadow:none;max-height:16rem}}.Ink-Editor[data-color-mode=light]{--ink-border: #e5e7eb;--ink-bg: #ffffff;--ink-toolbar: #f8fafc;--ink-text: #0f172a;--ink-muted: #64748b;--ink-accent: #0d9488;--ink-accent-soft: #ccfbf1;--ink-shadow: 0 10px 40px rgba(15, 23, 42, 0.08);--ink-table-header: #f1f5f9}.Ink-Editor[data-color-mode=dark]{--ink-border: #3f3f46;--ink-bg: #18181b;--ink-toolbar: #27272a;--ink-text: #f4f4f5;--ink-muted: #a1a1aa;--ink-accent: #2dd4bf;--ink-accent-soft: rgba(45, 212, 191, 0.15);--ink-shadow: 0 10px 40px rgba(0, 0, 0, 0.35);--ink-table-header: #27272a}@media(prefers-color-scheme: dark){.Ink-Editor:not([data-color-mode]){--ink-border: #3f3f46;--ink-bg: #18181b;--ink-toolbar: #27272a;--ink-text: #f4f4f5;--ink-muted: #a1a1aa;--ink-accent: #2dd4bf;--ink-accent-soft: rgba(45, 212, 191, 0.15);--ink-shadow: 0 10px 40px rgba(0, 0, 0, 0.35);--ink-table-header: #27272a}}.ink-theme-snow .Ink-Editor,.Ink-Editor.ink-theme-snow{--ink-border: #e5e7eb;--ink-bg: #ffffff;--ink-toolbar: #f9fafb;--ink-text: #111827;--ink-muted: #6b7280;--ink-accent: #0f766e;--ink-accent-soft: #ccfbf1;border-radius:.75rem}.ink-theme-bubble .Ink-Editor,.Ink-Editor.ink-theme-bubble{--ink-border: transparent;--ink-bg: #ffffff;--ink-toolbar: #ffffff;--ink-text: #111827;--ink-muted: #6b7280;--ink-accent: #0f766e;--ink-accent-soft: #ccfbf1;box-shadow:0 4px 24px rgba(15,23,42,.1);border-radius:1rem}.ink-theme-dark .Ink-Editor,.Ink-Editor.ink-theme-dark{--ink-border: #3f3f46;--ink-bg: #18181b;--ink-toolbar: #27272a;--ink-text: #f4f4f5;--ink-muted: #a1a1aa;--ink-accent: #2dd4bf;--ink-accent-soft: rgb(45 212 191 / 0.15);--ink-table-header: #27272a}.ink-theme-minimal .Ink-Editor,.Ink-Editor.ink-theme-minimal{--ink-border: #e7e5e4;--ink-bg: #ffffff;--ink-toolbar: #ffffff;--ink-text: #1c1917;--ink-muted: #78716c;--ink-accent: #0f766e;--ink-accent-soft: #f0fdfa;box-shadow:none;border-radius:0}.ink-theme-minimal .Ink-Editor__toolbar,.ink-theme-minimal.Ink-Editor .Ink-Editor__toolbar{border-bottom:1px solid var(--ink-border)}.Ink-SignPad,.Ink-FindReplace{border-bottom-color:var(--ink-border);background:var(--ink-toolbar);color:var(--ink-text)}.Ink-SignPad__title,.Ink-FindReplace__title{color:var(--ink-text)}.Ink-SignPad__canvas{max-width:480px;height:180px;border-color:var(--ink-border);touch-action:none}.Ink-FindReplace__field{display:flex;flex-direction:column;flex-wrap:nowrap;gap:.25rem;font-size:.875rem;color:var(--ink-muted)}.Ink-FindReplace__field input{border:1px solid var(--ink-border);border-radius:.4rem;padding:.4rem .55rem;background:var(--ink-bg);color:var(--ink-text);font:inherit}.flex{display:flex}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.p-3{padding:.75rem}.m-0{margin:0}.w-full{width:100%}.max-w-xl{max-width:36rem}.h-44{height:11rem}.border{border-width:1px;border-style:solid}.border-b{border-bottom-width:1px;border-bottom-style:solid}.border-dashed{border-style:dashed}.rounded-lg{border-radius:.5rem}.bg-white{background-color:#fff}.cursor-crosshair{cursor:crosshair}.text-sm{font-size:.875rem}.font-semibold{font-weight:600}