@forgedevstack/ink 1.1.7 → 1.1.8

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 (213) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/README.md +9 -1
  3. package/bin/ink.const.mjs +26 -0
  4. package/bin/ink.mjs +58 -0
  5. package/dist/components/InkEditor/InkEditor.cjs +1 -1
  6. package/dist/components/InkEditor/InkEditor.d.ts.map +1 -1
  7. package/dist/components/InkEditor/InkEditor.js +1178 -834
  8. package/dist/components/InkEditor/components/AiPanel/AiPanel.cjs +1 -1
  9. package/dist/components/InkEditor/components/AiPanel/AiPanel.d.ts.map +1 -1
  10. package/dist/components/InkEditor/components/AiPanel/AiPanel.js +58 -52
  11. package/dist/components/InkEditor/components/ExcelSheetPanel/ExcelSheetPanel.cjs +1 -0
  12. package/dist/components/InkEditor/components/ExcelSheetPanel/ExcelSheetPanel.d.ts +4 -0
  13. package/dist/components/InkEditor/components/ExcelSheetPanel/ExcelSheetPanel.d.ts.map +1 -0
  14. package/dist/components/InkEditor/components/ExcelSheetPanel/ExcelSheetPanel.js +209 -0
  15. package/dist/components/InkEditor/components/ExcelSheetPanel/ExcelSheetPanel.types.d.ts +10 -0
  16. package/dist/components/InkEditor/components/ExcelSheetPanel/ExcelSheetPanel.types.d.ts.map +1 -0
  17. package/dist/components/InkEditor/components/ExcelSheetPanel/index.d.ts +3 -0
  18. package/dist/components/InkEditor/components/ExcelSheetPanel/index.d.ts.map +1 -0
  19. package/dist/components/InkEditor/components/GraphEditModal/GraphEditModal.cjs +1 -0
  20. package/dist/components/InkEditor/components/GraphEditModal/GraphEditModal.d.ts +4 -0
  21. package/dist/components/InkEditor/components/GraphEditModal/GraphEditModal.d.ts.map +1 -0
  22. package/dist/components/InkEditor/components/GraphEditModal/GraphEditModal.js +91 -0
  23. package/dist/components/InkEditor/components/GraphEditModal/GraphEditModal.types.d.ts +11 -0
  24. package/dist/components/InkEditor/components/GraphEditModal/GraphEditModal.types.d.ts.map +1 -0
  25. package/dist/components/InkEditor/components/GraphEditModal/index.d.ts +3 -0
  26. package/dist/components/InkEditor/components/GraphEditModal/index.d.ts.map +1 -0
  27. package/dist/components/InkEditor/components/GraphPicker/GraphPicker.cjs +1 -0
  28. package/dist/components/InkEditor/components/GraphPicker/GraphPicker.d.ts +4 -0
  29. package/dist/components/InkEditor/components/GraphPicker/GraphPicker.d.ts.map +1 -0
  30. package/dist/components/InkEditor/components/GraphPicker/GraphPicker.js +98 -0
  31. package/dist/components/InkEditor/components/GraphPicker/GraphPicker.types.d.ts +10 -0
  32. package/dist/components/InkEditor/components/GraphPicker/GraphPicker.types.d.ts.map +1 -0
  33. package/dist/components/InkEditor/components/GraphPicker/index.d.ts +3 -0
  34. package/dist/components/InkEditor/components/GraphPicker/index.d.ts.map +1 -0
  35. package/dist/components/InkEditor/components/HtmlSourcePanel/HtmlSourcePanel.cjs +1 -0
  36. package/dist/components/InkEditor/components/HtmlSourcePanel/HtmlSourcePanel.d.ts +4 -0
  37. package/dist/components/InkEditor/components/HtmlSourcePanel/HtmlSourcePanel.d.ts.map +1 -0
  38. package/dist/components/InkEditor/components/HtmlSourcePanel/HtmlSourcePanel.js +27 -0
  39. package/dist/components/InkEditor/components/HtmlSourcePanel/HtmlSourcePanel.types.d.ts +7 -0
  40. package/dist/components/InkEditor/components/HtmlSourcePanel/HtmlSourcePanel.types.d.ts.map +1 -0
  41. package/dist/components/InkEditor/components/HtmlSourcePanel/index.d.ts +3 -0
  42. package/dist/components/InkEditor/components/HtmlSourcePanel/index.d.ts.map +1 -0
  43. package/dist/components/InkEditor/components/OutlineRail/OutlineRail.cjs +1 -1
  44. package/dist/components/InkEditor/components/OutlineRail/OutlineRail.d.ts.map +1 -1
  45. package/dist/components/InkEditor/components/OutlineRail/OutlineRail.js +17 -12
  46. package/dist/components/InkEditor/components/OutlineRail/OutlineRail.types.d.ts +1 -0
  47. package/dist/components/InkEditor/components/OutlineRail/OutlineRail.types.d.ts.map +1 -1
  48. package/dist/components/InkEditor/components/TableSizePicker/TableSizePicker.cjs +1 -0
  49. package/dist/components/InkEditor/components/TableSizePicker/TableSizePicker.const.cjs +1 -0
  50. package/dist/components/InkEditor/components/TableSizePicker/TableSizePicker.const.d.ts +10 -0
  51. package/dist/components/InkEditor/components/TableSizePicker/TableSizePicker.const.d.ts.map +1 -0
  52. package/dist/components/InkEditor/components/TableSizePicker/TableSizePicker.const.js +18 -0
  53. package/dist/components/InkEditor/components/TableSizePicker/TableSizePicker.d.ts +4 -0
  54. package/dist/components/InkEditor/components/TableSizePicker/TableSizePicker.d.ts.map +1 -0
  55. package/dist/components/InkEditor/components/TableSizePicker/TableSizePicker.js +95 -0
  56. package/dist/components/InkEditor/components/TableSizePicker/TableSizePicker.types.d.ts +11 -0
  57. package/dist/components/InkEditor/components/TableSizePicker/TableSizePicker.types.d.ts.map +1 -0
  58. package/dist/components/InkEditor/components/TableSizePicker/index.d.ts +3 -0
  59. package/dist/components/InkEditor/components/TableSizePicker/index.d.ts.map +1 -0
  60. package/dist/components/InkEditor/components/ThemePicker/ThemePicker.cjs +1 -0
  61. package/dist/components/InkEditor/components/ThemePicker/ThemePicker.d.ts +4 -0
  62. package/dist/components/InkEditor/components/ThemePicker/ThemePicker.d.ts.map +1 -0
  63. package/dist/components/InkEditor/components/ThemePicker/ThemePicker.js +81 -0
  64. package/dist/components/InkEditor/components/ThemePicker/ThemePicker.types.d.ts +12 -0
  65. package/dist/components/InkEditor/components/ThemePicker/ThemePicker.types.d.ts.map +1 -0
  66. package/dist/components/InkEditor/components/ThemePicker/index.d.ts +3 -0
  67. package/dist/components/InkEditor/components/ThemePicker/index.d.ts.map +1 -0
  68. package/dist/components/InkEditor/components/TitleGallery/TitleGallery.cjs +1 -0
  69. package/dist/components/InkEditor/components/TitleGallery/TitleGallery.d.ts +4 -0
  70. package/dist/components/InkEditor/components/TitleGallery/TitleGallery.d.ts.map +1 -0
  71. package/dist/components/InkEditor/components/TitleGallery/TitleGallery.js +79 -0
  72. package/dist/components/InkEditor/components/TitleGallery/TitleGallery.types.d.ts +10 -0
  73. package/dist/components/InkEditor/components/TitleGallery/TitleGallery.types.d.ts.map +1 -0
  74. package/dist/components/InkEditor/components/TitleGallery/index.d.ts +3 -0
  75. package/dist/components/InkEditor/components/TitleGallery/index.d.ts.map +1 -0
  76. package/dist/components/InkEditor/components/ToolbarButton/ToolbarButton.cjs +1 -1
  77. package/dist/components/InkEditor/components/ToolbarButton/ToolbarButton.d.ts.map +1 -1
  78. package/dist/components/InkEditor/components/ToolbarButton/ToolbarButton.js +41 -18
  79. package/dist/components/InkEditor/components/ToolbarDropdown/ToolbarDropdown.cjs +1 -1
  80. package/dist/components/InkEditor/components/ToolbarDropdown/ToolbarDropdown.d.ts.map +1 -1
  81. package/dist/components/InkEditor/components/ToolbarDropdown/ToolbarDropdown.js +25 -23
  82. package/dist/components/InkEditor/components/ToolbarDropdown/ToolbarDropdown.utils.cjs +1 -1
  83. package/dist/components/InkEditor/components/ToolbarDropdown/ToolbarDropdown.utils.d.ts +1 -1
  84. package/dist/components/InkEditor/components/ToolbarDropdown/ToolbarDropdown.utils.d.ts.map +1 -1
  85. package/dist/components/InkEditor/components/ToolbarDropdown/ToolbarDropdown.utils.js +7 -7
  86. package/dist/components/InkEditor/components/index.d.ts +14 -0
  87. package/dist/components/InkEditor/components/index.d.ts.map +1 -1
  88. package/dist/components/InkEditor/helpers/format.utils.cjs +2 -2
  89. package/dist/components/InkEditor/helpers/format.utils.d.ts +1 -1
  90. package/dist/components/InkEditor/helpers/format.utils.d.ts.map +1 -1
  91. package/dist/components/InkEditor/helpers/format.utils.js +72 -72
  92. package/dist/constants/colorMode.const.cjs +1 -1
  93. package/dist/constants/colorMode.const.d.ts +1 -1
  94. package/dist/constants/colorMode.const.d.ts.map +1 -1
  95. package/dist/constants/colorMode.const.js +4 -4
  96. package/dist/constants/contextMenu.const.cjs +1 -1
  97. package/dist/constants/contextMenu.const.d.ts +2 -0
  98. package/dist/constants/contextMenu.const.d.ts.map +1 -1
  99. package/dist/constants/contextMenu.const.js +17 -15
  100. package/dist/constants/defaultIcons.cjs +1 -1
  101. package/dist/constants/defaultIcons.d.ts.map +1 -1
  102. package/dist/constants/defaultIcons.js +20 -13
  103. package/dist/constants/defaults.const.cjs +1 -1
  104. package/dist/constants/defaults.const.d.ts +48 -0
  105. package/dist/constants/defaults.const.d.ts.map +1 -1
  106. package/dist/constants/defaults.const.js +201 -102
  107. package/dist/constants/generals.const.cjs +1 -1
  108. package/dist/constants/generals.const.d.ts +48 -0
  109. package/dist/constants/generals.const.d.ts.map +1 -1
  110. package/dist/constants/generals.const.js +71 -28
  111. package/dist/constants/index.d.ts +1 -0
  112. package/dist/constants/index.d.ts.map +1 -1
  113. package/dist/constants/numbers.cjs +1 -1
  114. package/dist/constants/numbers.d.ts +14 -0
  115. package/dist/constants/numbers.d.ts.map +1 -1
  116. package/dist/constants/numbers.js +44 -30
  117. package/dist/constants/plugins.const.cjs +1 -0
  118. package/dist/constants/plugins.const.d.ts +13 -0
  119. package/dist/constants/plugins.const.d.ts.map +1 -0
  120. package/dist/constants/plugins.const.js +45 -0
  121. package/dist/constants/table.const.cjs +1 -1
  122. package/dist/constants/table.const.d.ts +4 -0
  123. package/dist/constants/table.const.d.ts.map +1 -1
  124. package/dist/constants/table.const.js +10 -6
  125. package/dist/constants/toolbar.const.cjs +1 -1
  126. package/dist/constants/toolbar.const.d.ts +7 -0
  127. package/dist/constants/toolbar.const.d.ts.map +1 -1
  128. package/dist/constants/toolbar.const.js +16 -9
  129. package/dist/constants/toolbarMenu.const.cjs +1 -1
  130. package/dist/constants/toolbarMenu.const.d.ts +2 -0
  131. package/dist/constants/toolbarMenu.const.d.ts.map +1 -1
  132. package/dist/constants/toolbarMenu.const.js +80 -19
  133. package/dist/hooks/index.d.ts +2 -0
  134. package/dist/hooks/index.d.ts.map +1 -0
  135. package/dist/hooks/useToolbarOverflow.cjs +1 -0
  136. package/dist/hooks/useToolbarOverflow.d.ts +8 -0
  137. package/dist/hooks/useToolbarOverflow.d.ts.map +1 -0
  138. package/dist/hooks/useToolbarOverflow.js +29 -0
  139. package/dist/index.cjs +1 -1
  140. package/dist/index.d.ts +5 -2
  141. package/dist/index.d.ts.map +1 -1
  142. package/dist/index.js +117 -86
  143. package/dist/plugins/excel/excel.utils.cjs +1 -0
  144. package/dist/plugins/excel/excel.utils.d.ts +13 -0
  145. package/dist/plugins/excel/excel.utils.d.ts.map +1 -0
  146. package/dist/plugins/excel/excel.utils.js +40 -0
  147. package/dist/plugins/excel/index.d.ts +3 -0
  148. package/dist/plugins/excel/index.d.ts.map +1 -0
  149. package/dist/plugins/graph/graph.const.cjs +1 -0
  150. package/dist/plugins/graph/graph.const.d.ts +14 -0
  151. package/dist/plugins/graph/graph.const.d.ts.map +1 -0
  152. package/dist/plugins/graph/graph.const.js +24 -0
  153. package/dist/plugins/graph/graph.types.d.ts +7 -0
  154. package/dist/plugins/graph/graph.types.d.ts.map +1 -0
  155. package/dist/plugins/graph/graph.utils.cjs +1 -0
  156. package/dist/plugins/graph/graph.utils.d.ts +11 -0
  157. package/dist/plugins/graph/graph.utils.d.ts.map +1 -0
  158. package/dist/plugins/graph/graph.utils.js +76 -0
  159. package/dist/plugins/graph/index.d.ts +4 -0
  160. package/dist/plugins/graph/index.d.ts.map +1 -0
  161. package/dist/plugins/host/index.d.ts +2 -0
  162. package/dist/plugins/host/index.d.ts.map +1 -0
  163. package/dist/plugins/host/inkPlugins.cjs +1 -0
  164. package/dist/plugins/host/inkPlugins.d.ts +16 -0
  165. package/dist/plugins/host/inkPlugins.d.ts.map +1 -0
  166. package/dist/plugins/host/inkPlugins.js +20 -0
  167. package/dist/plugins/index.d.ts +5 -0
  168. package/dist/plugins/index.d.ts.map +1 -0
  169. package/dist/plugins/theme/index.d.ts +4 -0
  170. package/dist/plugins/theme/index.d.ts.map +1 -0
  171. package/dist/plugins/theme/inkTheme.cjs +1 -0
  172. package/dist/plugins/theme/inkTheme.d.ts +5 -0
  173. package/dist/plugins/theme/inkTheme.d.ts.map +1 -0
  174. package/dist/plugins/theme/inkTheme.js +30 -0
  175. package/dist/plugins/theme/theme.const.cjs +1 -0
  176. package/dist/plugins/theme/theme.const.d.ts +9 -0
  177. package/dist/plugins/theme/theme.const.d.ts.map +1 -0
  178. package/dist/plugins/theme/theme.const.js +15 -0
  179. package/dist/plugins/theme/theme.types.d.ts +12 -0
  180. package/dist/plugins/theme/theme.types.d.ts.map +1 -0
  181. package/dist/plugins/titles/index.d.ts +4 -0
  182. package/dist/plugins/titles/index.d.ts.map +1 -0
  183. package/dist/plugins/titles/titles.const.cjs +1 -0
  184. package/dist/plugins/titles/titles.const.d.ts +4 -0
  185. package/dist/plugins/titles/titles.const.d.ts.map +1 -0
  186. package/dist/plugins/titles/titles.const.js +15 -0
  187. package/dist/plugins/titles/titles.types.d.ts +2 -0
  188. package/dist/plugins/titles/titles.types.d.ts.map +1 -0
  189. package/dist/plugins/titles/titles.utils.cjs +1 -0
  190. package/dist/plugins/titles/titles.utils.d.ts +3 -0
  191. package/dist/plugins/titles/titles.utils.d.ts.map +1 -0
  192. package/dist/plugins/titles/titles.utils.js +14 -0
  193. package/dist/styles.css +1 -1
  194. package/dist/types/features.types.d.ts +1 -1
  195. package/dist/types/features.types.d.ts.map +1 -1
  196. package/dist/types/index.d.ts +1 -0
  197. package/dist/types/index.d.ts.map +1 -1
  198. package/dist/types/ink.types.d.ts +6 -2
  199. package/dist/types/ink.types.d.ts.map +1 -1
  200. package/dist/types/plugin.types.d.ts +8 -0
  201. package/dist/types/plugin.types.d.ts.map +1 -0
  202. package/dist/types/premium.types.d.ts +1 -1
  203. package/dist/types/premium.types.d.ts.map +1 -1
  204. package/dist/utils/index.d.ts +1 -1
  205. package/dist/utils/index.d.ts.map +1 -1
  206. package/dist/utils/outline.utils.cjs +1 -1
  207. package/dist/utils/outline.utils.d.ts.map +1 -1
  208. package/dist/utils/outline.utils.js +32 -32
  209. package/dist/utils/table.utils.cjs +1 -1
  210. package/dist/utils/table.utils.d.ts +4 -0
  211. package/dist/utils/table.utils.d.ts.map +1 -1
  212. package/dist/utils/table.utils.js +84 -45
  213. package/package.json +7 -1
@@ -0,0 +1,9 @@
1
+ import { InkThemeDefinition, InkThemeId } from './theme.types';
2
+ export declare const THEME_ID_PAPER: InkThemeId;
3
+ export declare const THEME_ID_SNOW: InkThemeId;
4
+ export declare const THEME_ID_INK: InkThemeId;
5
+ export declare const THEME_ID_DARK: InkThemeId;
6
+ export declare const THEME_ATTR = "data-ink-theme";
7
+ export declare const THEME_DEFAULT: InkThemeId;
8
+ export declare const INK_THEMES: InkThemeDefinition[];
9
+ //# sourceMappingURL=theme.const.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.const.d.ts","sourceRoot":"","sources":["../../../src/plugins/theme/theme.const.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEpE,eAAO,MAAM,cAAc,EAAE,UAAoB,CAAC;AAClD,eAAO,MAAM,aAAa,EAAE,UAAmB,CAAC;AAChD,eAAO,MAAM,YAAY,EAAE,UAAkB,CAAC;AAC9C,eAAO,MAAM,aAAa,EAAE,UAAmB,CAAC;AAChD,eAAO,MAAM,UAAU,mBAAmB,CAAC;AAC3C,eAAO,MAAM,aAAa,EAAE,UAA2B,CAAC;AAExD,eAAO,MAAM,UAAU,EAAE,kBAAkB,EAK1C,CAAC"}
@@ -0,0 +1,15 @@
1
+ const E = "paper", _ = "snow", T = "ink", n = "dark", a = "data-ink-theme", o = E, t = [
2
+ { id: E, label: "Paper" },
3
+ { id: _, label: "Snow" },
4
+ { id: "ink", label: "Ink" },
5
+ { id: n, label: "Dark" }
6
+ ];
7
+ export {
8
+ t as INK_THEMES,
9
+ a as THEME_ATTR,
10
+ o as THEME_DEFAULT,
11
+ n as THEME_ID_DARK,
12
+ T as THEME_ID_INK,
13
+ E as THEME_ID_PAPER,
14
+ _ as THEME_ID_SNOW
15
+ };
@@ -0,0 +1,12 @@
1
+ export type InkThemeId = 'paper' | 'snow' | 'ink' | 'dark';
2
+ export type InkThemeDefinition = {
3
+ id: InkThemeId;
4
+ label: string;
5
+ };
6
+ export type InkThemePlugin = {
7
+ install: () => void;
8
+ apply: (root: HTMLElement | null, id: InkThemeId) => void;
9
+ list: () => InkThemeDefinition[];
10
+ current: () => InkThemeId;
11
+ };
12
+ //# sourceMappingURL=theme.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.types.d.ts","sourceRoot":"","sources":["../../../src/plugins/theme/theme.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;AAE3D,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,EAAE,UAAU,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,EAAE,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,EAAE,EAAE,EAAE,UAAU,KAAK,IAAI,CAAC;IAC1D,IAAI,EAAE,MAAM,kBAAkB,EAAE,CAAC;IACjC,OAAO,EAAE,MAAM,UAAU,CAAC;CAC3B,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { TITLE_PREVIEW_TEXT, TITLE_STYLE_DEFAULT, TITLE_STYLE_IDS } from './titles.const';
2
+ export { buildTitleHtml } from './titles.utils';
3
+ export type { TitleStyleId } from './titles.types';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugins/titles/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC1F,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const T=require("../../constants/numbers.cjs");require("../../constants/openai.const.cjs");require("react/jsx-runtime");require("../../utils/paste.utils.cjs");require("react");require("react-dom");const t=2,E=Array.from({length:T.INK_TITLE_STYLE_COUNT},(n,r)=>{const e=r+T.NUMBER_ONE;return`t${String(e).padStart(t,"0")}`}),_="Aa",L=E[T.NUMBER_ZERO]??"t01";exports.TITLE_PREVIEW_TEXT=_;exports.TITLE_STYLE_DEFAULT=L;exports.TITLE_STYLE_IDS=E;
@@ -0,0 +1,4 @@
1
+ export declare const TITLE_STYLE_IDS: string[];
2
+ export declare const TITLE_PREVIEW_TEXT = "Aa";
3
+ export declare const TITLE_STYLE_DEFAULT: string;
4
+ //# sourceMappingURL=titles.const.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"titles.const.d.ts","sourceRoot":"","sources":["../../../src/plugins/titles/titles.const.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,eAAe,UAG1B,CAAC;AAEH,eAAO,MAAM,kBAAkB,OAAO,CAAC;AACvC,eAAO,MAAM,mBAAmB,QAAwC,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { INK_TITLE_STYLE_COUNT as T, NUMBER_ZERO as r, NUMBER_ONE as o } from "../../constants/numbers.js";
2
+ import "../../constants/openai.const.js";
3
+ import "react/jsx-runtime";
4
+ import "../../utils/paste.utils.js";
5
+ import "react";
6
+ import "react-dom";
7
+ const _ = 2, n = Array.from({ length: T }, (L, t) => {
8
+ const E = t + o;
9
+ return `t${String(E).padStart(_, "0")}`;
10
+ }), c = "Aa", s = n[r] ?? "t01";
11
+ export {
12
+ c as TITLE_PREVIEW_TEXT,
13
+ s as TITLE_STYLE_DEFAULT,
14
+ n as TITLE_STYLE_IDS
15
+ };
@@ -0,0 +1,2 @@
1
+ export type TitleStyleId = string;
2
+ //# sourceMappingURL=titles.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"titles.types.d.ts","sourceRoot":"","sources":["../../../src/plugins/titles/titles.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC"}
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("../../constants/generals.const.cjs"),T=require("../../constants/defaults.const.cjs");require("../../constants/openai.const.cjs");require("react/jsx-runtime");require("../../utils/paste.utils.cjs");require("react");require("react-dom");const s="&amp;",_="&lt;",l="&gt;",i="&quot;",o=e=>e.replace(/&/g,s).replace(/</g,_).replace(/>/g,l).replace(/"/g,i),n=(e,r=t.INK_TITLES_DEFAULT_TEXT)=>{const c=o(r.trim()||t.INK_TITLES_DEFAULT_TEXT);return`<p class="${T.INK_CLASS_TITLE} ${T.INK_CLASS_TITLE}--${e}" ${T.INK_ATTR_TITLE}="${e}">${c}</p><p><br></p>`};exports.buildTitleHtml=n;
@@ -0,0 +1,3 @@
1
+ import { TitleStyleId } from './titles.types';
2
+ export declare const buildTitleHtml: (styleId: TitleStyleId, text?: string) => string;
3
+ //# sourceMappingURL=titles.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"titles.utils.d.ts","sourceRoot":"","sources":["../../../src/plugins/titles/titles.utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAcnD,eAAO,MAAM,cAAc,GAAI,SAAS,YAAY,EAAE,aAA8B,KAAG,MAGtF,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { INK_TITLES_DEFAULT_TEXT as t } from "../../constants/generals.const.js";
2
+ import { INK_CLASS_TITLE as o, INK_ATTR_TITLE as e } from "../../constants/defaults.const.js";
3
+ import "../../constants/openai.const.js";
4
+ import "react/jsx-runtime";
5
+ import "../../utils/paste.utils.js";
6
+ import "react";
7
+ import "react-dom";
8
+ const c = "&amp;", m = "&lt;", i = "&gt;", _ = "&quot;", s = (T) => T.replace(/&/g, c).replace(/</g, m).replace(/>/g, i).replace(/"/g, _), $ = (T, p = t) => {
9
+ const r = s(p.trim() || t);
10
+ return `<p class="${o} ${o}--${T}" ${e}="${T}">${r}</p><p><br></p>`;
11
+ };
12
+ export {
13
+ $ as buildTitleHtml
14
+ };
package/dist/styles.css CHANGED
@@ -1 +1 @@
1
- :root{--ink-color-border: #e1e4ea;--ink-color-bg: #ffffff;--ink-color-toolbar: #ffffff;--ink-color-text: #171b24;--ink-color-muted: #667085;--ink-color-accent: #2951c4;--ink-color-accent-soft: #eaf0fe}.Ink-Button{border:0;background:rgba(0,0,0,0);color:var(--ink-muted);border-radius:.3125rem;cursor:pointer;min-width:1.75rem;width:1.75rem;height:1.75rem;padding:0;font-weight:500;font-size:.8125rem;display:inline-flex;align-items:center;justify-content:center}.Ink-Button svg{width:.9375rem;height:.9375rem;display:block}.Ink-Button:hover{background:rgba(15,23,42,.05);color:var(--ink-text)}.Ink-Button--active{background:var(--ink-accent-soft);color:var(--ink-accent);box-shadow:inset 0 0 0 1px 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:var(--ink-muted);border-radius:.3125rem;cursor:pointer;min-width:1.75rem;width:1.75rem;height:1.75rem;padding:0;font-weight:500;font-size:.8125rem;display:inline-flex;align-items:center;justify-content:center}.Ink-ContextMenu__item svg{width:.9375rem;height:.9375rem;display:block}.Ink-ContextMenu__item:hover{background:rgba(15,23,42,.05);color:var(--ink-text)}.Ink-ContextMenu__item--active{background:var(--ink-accent-soft);color:var(--ink-accent);box-shadow:inset 0 0 0 1px 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:.9375rem;height:.9375rem;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: #e1e4ea;--ink-bg: #ffffff;--ink-toolbar: #ffffff;--ink-text: #171b24;--ink-muted: #667085;--ink-accent: #2951c4;--ink-accent-soft: #eaf0fe;--ink-shadow: 0 4px 16px rgba(23, 27, 36, 0.08);--ink-table-header: #f1f5f9;--ink-ai: #0e8a6e;--ink-ai-soft: #e7f6f1;--ink-canvas: #f5f6f8;--ink-border-strong: #c9ceda;--ink-text-tertiary: #98a2b3;--ink-font-mono: IBM Plex Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--ink-radius: 0.375rem;--ink-font-family: Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;--ink-ai-accent: var(--ink-ai);--ink-ai-surface: var(--ink-ai-soft);--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 16px rgba(23,27,36,.08)}.Ink-Editor[data-variant=document]{background:#f5f6f8;border-radius:.625rem}.Ink-Editor[data-variant=document] .Ink-Editor__shell{min-height:28rem}.Ink-Editor[data-variant=document] .Ink-Editor__body{background:#f5f6f8;display:flex;justify-content:center;padding:2.75rem 2.5rem 3.75rem}.Ink-Editor[data-variant=document] .Ink-Editor__content{width:100%;max-width:40rem;margin:0;padding:0 0 2rem;background:rgba(0,0,0,0)}.Ink-Editor[data-variant=document] .Ink-Editor__content h1{font-size:1.625rem;font-weight:700;letter-spacing:-0.01em;margin:0 0 .875rem}.Ink-Editor[data-variant=document] .Ink-Editor__toolbar{padding:.375rem 1rem;background:var(--ink-bg)}.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:nowrap;align-items:center;gap:.25rem;padding:.35rem .75rem;border-bottom:1px solid var(--ink-border);background:var(--ink-toolbar);overflow-x:auto;overflow-y:visible;min-height:2.5rem}.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:var(--ink-muted);border-radius:.3125rem;cursor:pointer;min-width:1.75rem;width:1.75rem;height:1.75rem;padding:0;font-weight:500;font-size:.8125rem;display:inline-flex;align-items:center;justify-content:center}.Ink-Editor__button svg{width:.9375rem;height:.9375rem;display:block}.Ink-Editor__button:hover{background:rgba(15,23,42,.05);color:var(--ink-text)}.Ink-Editor__button--active{background:var(--ink-accent-soft);color:var(--ink-accent);box-shadow:inset 0 0 0 1px var(--ink-accent)}.Ink-Editor__button:disabled{opacity:.45;cursor:not-allowed}.Ink-Editor__style-dd{position:relative;display:inline-flex;align-items:center}.Ink-Editor__style-dd-trigger{display:inline-flex;align-items:center;gap:.375rem;border:1px solid var(--ink-border);border-radius:.3125rem;padding:.25rem .5rem .25rem .625rem;background:var(--ink-bg);color:var(--ink-text);font-family:inherit;font-size:.78125rem;font-weight:500;line-height:1.2;cursor:pointer;height:1.75rem;min-width:7.25rem}.Ink-Editor__style-dd-trigger:hover{border-color:var(--ink-border-strong)}.Ink-Editor__style-dd-trigger:disabled{opacity:.45;cursor:not-allowed}.Ink-Editor__style-dd-trigger:focus{outline:none;box-shadow:0 0 0 2px var(--ink-accent-soft)}.Ink-Editor__select-chev{width:.5625rem;height:.5625rem;opacity:.6;pointer-events:none;flex-shrink:0}.Ink-Editor__style-menu{position:absolute;top:calc(100% + .35rem);left:0;z-index:30;min-width:11.25rem;padding:.3rem;background:#fff;border:1px solid #e1e4ea;border-radius:.5rem;box-shadow:0 .75rem 2rem rgba(23,27,36,.12);overflow:hidden;color:#171b24}.Ink-Editor__style-menu--portal{position:fixed;top:0;left:0;z-index:4000}.Ink-Editor__style-menu--rich{min-width:11.25rem}.Ink-Editor__style-option{display:flex;align-items:center;position:relative;width:100%;border:0;background:rgba(0,0,0,0);text-align:left;padding:.45rem .85rem .45rem 1.85rem;font-family:inherit;font-size:.8125rem;font-weight:500;color:#171b24;cursor:pointer;border-radius:.375rem}.Ink-Editor__style-option:hover{background:#eaf0fe;color:#171b24}.Ink-Editor__style-option--sel{background:#2951c4;color:#fff}.Ink-Editor__style-option--sel:hover{background:#2951c4;color:#fff}.Ink-Editor__style-check{position:absolute;left:.55rem;font-size:.7rem;font-weight:600;color:inherit}.Ink-Editor__glyph{font-size:.8125rem;line-height:1;font-weight:500;color:inherit}.Ink-Editor__glyph--bold{font-weight:700}.Ink-Editor__glyph--italic{font-style:italic}.Ink-Editor__glyph--underline{text-decoration:underline}.Ink-Editor__glyph--strike{text-decoration:line-through}.Ink-Editor__divider{width:1px;height:1.125rem;margin:0 .5rem;background:var(--ink-border);align-self:center}.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__content:empty::before{content:attr(data-placeholder);color:var(--ink-text-tertiary);font-size:.90625rem;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 ul.Ink-list--check{list-style:none;padding-inline-start:.25rem}.Ink-Editor__content ul.Ink-list--check li{position:relative;padding-left:1.5rem}.Ink-Editor__content ul.Ink-list--check li::before{content:"";position:absolute;left:0;top:.3rem;width:.8125rem;height:.8125rem;border:1px solid var(--ink-border-strong);border-radius:.1875rem;background:var(--ink-bg)}.Ink-Editor__content .Ink-callout{display:flex;gap:.625rem;align-items:flex-start;border-left:.15625rem solid var(--ink-ai);background:var(--ink-ai-soft);border-radius:0 .375rem .375rem 0;padding:.625rem .875rem;margin:1.25rem 0 .5rem}.Ink-Editor__content .Ink-callout p{font-size:.84375rem;font-style:italic;color:var(--ink-ai);line-height:1.6;margin:0}.Ink-AiPill{margin-left:auto;display:inline-flex;align-items:center;gap:.375rem;background:var(--ink-ai-soft);color:var(--ink-ai);border:0;border-radius:.3125rem;padding:.3125rem .625rem;font-family:inherit;font-size:.78125rem;font-weight:600;line-height:1.2;cursor:pointer;height:auto}.Ink-AiPill:hover,.Ink-AiPill:focus{background:var(--ink-ai-soft);color:var(--ink-ai);outline:none}.Ink-AiPill:disabled{opacity:.45;cursor:not-allowed}.Ink-AiPill__dot{width:.3125rem;height:.3125rem;border-radius:999px;background:var(--ink-ai);flex-shrink:0}.Ink-Editor__button--wide{width:auto;min-width:0;padding:0 .5rem;gap:.3125rem}.Ink-Editor__button-label{font-size:.75rem;font-weight:500;color:var(--ink-muted)}.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{display:flex;align-items:center;justify-content:space-between;padding:.45rem 1.25rem;border-top:1px solid var(--ink-border);font-family:var(--ink-font-mono);font-size:.65625rem;color:var(--ink-text-tertiary)}.Ink-Editor__footer-meta{display:flex;gap:.875rem}.Ink-Editor__footer-sync{display:inline-flex;align-items:center;gap:.375rem}.Ink-Editor__footer-sync::before{content:"";width:.375rem;height:.375rem;border-radius:999px;background:#0e8a6e}.Ink-Outline{width:15rem;flex-shrink:0;background:#fafbfc;border-right:1px solid var(--ink-border);padding:1rem .75rem;display:flex;flex-direction:column;gap:.125rem;overflow:auto}.Ink-Outline__label{font-family:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.625rem;letter-spacing:.06em;text-transform:uppercase;color:#98a2b3;padding:0 .375rem;margin-bottom:.25rem}.Ink-Outline__item{display:flex;align-items:center;gap:.375rem;width:100%;border:0;background:rgba(0,0,0,0);color:var(--ink-muted);text-align:left;font-size:.78125rem;line-height:1.3;padding:.375rem .5rem;border-radius:.3125rem;cursor:pointer}.Ink-Outline__item--h1{font-weight:600;color:var(--ink-text)}.Ink-Outline__item--h2{padding-left:1.25rem}.Ink-Outline__item--h3{padding-left:1.75rem}.Ink-Outline__item--active{background:var(--ink-accent-soft);color:var(--ink-accent);font-weight:500}.Ink-Outline__item-dot{width:.25rem;height:.25rem;border-radius:999px;background:#c9ceda;flex-shrink:0}.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;width:17.5rem;background:var(--ink-bg);border:1px solid var(--ink-border-strong);border-radius:.5rem;box-shadow:var(--ink-shadow);overflow:hidden}.Ink-Slash__search{display:flex;align-items:center;gap:.5rem;padding:.55rem .75rem;border-bottom:1px solid var(--ink-border);font-family:var(--ink-font-mono);font-size:.75rem;color:var(--ink-text-tertiary)}.Ink-Slash__cat{font-family:var(--ink-font-mono);font-size:.625rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-text-tertiary);padding:.5rem .75rem .25rem}.Ink-Slash__item{display:flex;align-items:center;gap:.625rem;width:100%;text-align:left;border:0;background:rgba(0,0,0,0);padding:.45rem .75rem;cursor:pointer;color:inherit}.Ink-Slash__item:hover,.Ink-Slash__item--sel{background:var(--ink-accent-soft)}.Ink-Slash__mark{width:1.625rem;height:1.625rem;border-radius:.3rem;background:var(--ink-canvas);border:1px solid var(--ink-border);display:flex;align-items:center;justify-content:center;color:var(--ink-muted);font-size:.6875rem;flex-shrink:0;font-weight:600}.Ink-Slash__item:hover .Ink-Slash__mark,.Ink-Slash__item--sel .Ink-Slash__mark{background:var(--ink-bg);border-color:var(--ink-accent);color:var(--ink-accent)}.Ink-Slash__mark--ai{background:var(--ink-ai-soft);border-color:var(--ink-ai);color:var(--ink-ai)}.Ink-Slash__item:hover .Ink-Slash__mark--ai,.Ink-Slash__item--sel .Ink-Slash__mark--ai{background:var(--ink-bg);border-color:var(--ink-ai);color:var(--ink-ai)}.Ink-Slash__txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1rem}.Ink-Slash__name{font-size:.78125rem;font-weight:600;color:var(--ink-text)}.Ink-Slash__desc{font-size:.6875rem;color:var(--ink-text-tertiary)}.Ink-Slash__key{font-family:var(--ink-font-mono);font-size:.625rem;color:var(--ink-text-tertiary);background:var(--ink-canvas);border-radius:.2rem;padding:.125rem .3rem}.Ink-Slash__hint{display:flex;align-items:center;gap:.125rem;flex-wrap:wrap;padding:.55rem .75rem;border-top:1px solid var(--ink-border);font-size:.6875rem;color:var(--ink-text-tertiary)}.Ink-Slash__caret{width:.09375rem;height:.875rem;background:var(--ink-accent);display:inline-block;animation:ink-slash-caret 1.1s steps(1) infinite}@keyframes ink-slash-caret{50%{opacity:0}}.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: #e1e4ea;--ink-bg: #ffffff;--ink-toolbar: #ffffff;--ink-text: #171b24;--ink-muted: #667085;--ink-accent: #2951c4;--ink-accent-soft: #eaf0fe;--ink-shadow: 0 4px 16px rgba(23, 27, 36, 0.08);--ink-table-header: #f1f5f9;--ink-ai: #0e8a6e;--ink-ai-soft: #e7f6f1;--ink-canvas: #f5f6f8;--ink-border-strong: #c9ceda;--ink-text-tertiary: #98a2b3;--ink-font-mono: IBM Plex Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace}.Ink-Editor[data-color-mode=dark]{--ink-border: #3f3f46;--ink-bg: #18181b;--ink-toolbar: #27272a;--ink-text: #f4f4f5;--ink-muted: #a1a1aa;--ink-accent: #7b97ea;--ink-accent-soft: rgba(41, 81, 196, 0.22);--ink-shadow: 0 10px 40px rgba(0, 0, 0, 0.35);--ink-table-header: #27272a;--ink-ai: #0e8a6e;--ink-ai-soft: #e7f6f1;--ink-canvas: #f5f6f8;--ink-border-strong: #c9ceda;--ink-text-tertiary: #98a2b3;--ink-font-mono: IBM Plex Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace}@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: #7b97ea;--ink-accent-soft: rgba(41, 81, 196, 0.22);--ink-shadow: 0 10px 40px rgba(0, 0, 0, 0.35);--ink-table-header: #27272a;--ink-ai: #0e8a6e;--ink-ai-soft: #e7f6f1;--ink-canvas: #f5f6f8;--ink-border-strong: #c9ceda;--ink-text-tertiary: #98a2b3;--ink-font-mono: IBM Plex Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace}}.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}
1
+ :root{--ink-color-border: #e1e4ea;--ink-color-bg: #ffffff;--ink-color-toolbar: #ffffff;--ink-color-text: #171b24;--ink-color-muted: #667085;--ink-color-accent: #2951c4;--ink-color-accent-soft: #eaf0fe}.Ink-Button{border:0;background:rgba(0,0,0,0);color:var(--ink-muted);border-radius:.3125rem;cursor:pointer;min-width:1.75rem;width:1.75rem;height:1.75rem;padding:0;font-weight:500;font-size:.8125rem;display:inline-flex;align-items:center;justify-content:center}.Ink-Button svg{width:.9375rem;height:.9375rem;display:block}.Ink-Button:hover{background:rgba(15,23,42,.05);color:var(--ink-text)}.Ink-Button--active{background:var(--ink-accent-soft);color:var(--ink-accent);box-shadow:inset 0 0 0 1px 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:var(--ink-muted);border-radius:.3125rem;cursor:pointer;min-width:1.75rem;width:1.75rem;height:1.75rem;padding:0;font-weight:500;font-size:.8125rem;display:inline-flex;align-items:center;justify-content:center}.Ink-ContextMenu__item svg{width:.9375rem;height:.9375rem;display:block}.Ink-ContextMenu__item:hover{background:rgba(15,23,42,.05);color:var(--ink-text)}.Ink-ContextMenu__item--active{background:var(--ink-accent-soft);color:var(--ink-accent);box-shadow:inset 0 0 0 1px 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:.9375rem;height:.9375rem;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{color-scheme:light;--ink-border: #e1e4ea;--ink-bg: #ffffff;--ink-toolbar: #ffffff;--ink-text: #171b24;--ink-muted: #667085;--ink-accent: #2951c4;--ink-accent-soft: #eaf0fe;--ink-shadow: 0 4px 16px rgba(23, 27, 36, 0.08);--ink-table-header: #f1f5f9;--ink-ai: #0e8a6e;--ink-ai-soft: #e7f6f1;--ink-canvas: #f5f6f8;--ink-border-strong: #c9ceda;--ink-text-tertiary: #98a2b3;--ink-font-mono: IBM Plex Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--ink-radius: 0.375rem;--ink-font-family: Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;--ink-ai-accent: var(--ink-ai);--ink-ai-surface: var(--ink-ai-soft);--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 16px rgba(23,27,36,.08)}.Ink-Editor[data-variant=document]{background:#f5f6f8;border-radius:.625rem}.Ink-Editor[data-variant=document] .Ink-Editor__shell{min-height:28rem}.Ink-Editor[data-variant=document] .Ink-Editor__body{background:#f5f6f8;display:flex;justify-content:center;padding:2.75rem 2.5rem 3.75rem}.Ink-Editor[data-variant=document] .Ink-Editor__content{width:100%;max-width:40rem;margin:0;padding:0 0 2rem;background:rgba(0,0,0,0)}.Ink-Editor[data-variant=document] .Ink-Editor__content h1{font-size:1.625rem;font-weight:700;letter-spacing:-0.01em;margin:0 0 .875rem}.Ink-Editor[data-variant=document] .Ink-Editor__toolbar{padding:.375rem 1rem;background:var(--ink-bg)}.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{position:relative;display:flex;flex-direction:column;align-items:stretch;gap:.2rem;padding:.35rem .65rem;border-bottom:1px solid var(--ink-border);background:var(--ink-toolbar);overflow:visible;min-height:2.35rem}.Ink-Editor__toolbar-row{display:flex;flex-wrap:nowrap;align-items:center;gap:.35rem .4rem;min-width:0}.Ink-Editor__toolbar-measure{position:absolute;visibility:hidden;pointer-events:none;display:flex;flex-wrap:nowrap;align-items:center;gap:.35rem .4rem;height:0;overflow:hidden}.Ink-Editor__toolbar-overflow{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .4rem;padding-top:.15rem}.Ink-Editor__toolbar-hint{position:absolute;left:.65rem;right:.65rem;bottom:-1.05rem;z-index:3;width:auto;margin:0;padding:.1rem .25rem;border-radius:.25rem;background:var(--ink-bg);box-shadow:0 1px 4px rgba(15,23,42,.08);font-size:.6875rem;line-height:1.2;color:var(--ink-text-tertiary);pointer-events:none}.Ink-Editor__tool{position:relative;display:inline-flex}.Ink-Editor__plugin-pip{position:absolute;top:.1rem;right:.1rem;width:.375rem;height:.375rem;border-radius:999px;box-shadow:0 0 0 1px var(--ink-bg)}.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:var(--ink-muted);border-radius:.3125rem;cursor:pointer;min-width:1.75rem;width:1.75rem;height:1.75rem;padding:0;font-weight:500;font-size:.8125rem;display:inline-flex;align-items:center;justify-content:center}.Ink-Editor__button svg{width:.9375rem;height:.9375rem;display:block}.Ink-Editor__button:hover{background:rgba(15,23,42,.05);color:var(--ink-text)}.Ink-Editor__button--active{background:var(--ink-accent-soft);color:var(--ink-accent);box-shadow:inset 0 0 0 1px var(--ink-accent)}.Ink-Editor__button:disabled{opacity:.45;cursor:not-allowed}.Ink-Editor__style-dd{position:relative;display:inline-flex;align-items:center}.Ink-Editor__style-dd-trigger{display:inline-flex;align-items:center;gap:.375rem;border:1px solid var(--ink-border);border-radius:.3125rem;padding:.25rem .5rem .25rem .625rem;background:var(--ink-bg);color:var(--ink-text);font-family:inherit;font-size:.78125rem;font-weight:500;line-height:1.2;cursor:pointer;height:1.75rem;min-width:7.25rem}.Ink-Editor__style-dd-trigger:hover{border-color:var(--ink-border-strong)}.Ink-Editor__style-dd-trigger:disabled{opacity:.45;cursor:not-allowed}.Ink-Editor__style-dd-trigger:focus{outline:none;box-shadow:0 0 0 2px var(--ink-accent-soft)}.Ink-Editor__select-chev{width:.5625rem;height:.5625rem;opacity:.6;pointer-events:none;flex-shrink:0}.Ink-Editor__style-menu{position:absolute;top:calc(100% + .35rem);left:0;z-index:30;min-width:11.25rem;padding:.3rem;background:#fff;border:1px solid #e1e4ea;border-radius:.5rem;box-shadow:0 .75rem 2rem rgba(23,27,36,.12);overflow:hidden;color:#171b24}.Ink-Editor__style-menu--forced-light{color-scheme:light;isolation:isolate;background:#fff;color:#171b24}.Ink-Editor__style-menu--portal{position:fixed;top:0;left:0;z-index:4000}.Ink-Editor__style-menu--rich{min-width:11.25rem}.Ink-Editor__style-option{display:flex;align-items:center;position:relative;width:100%;border:0;background:rgba(0,0,0,0);text-align:left;padding:.45rem .85rem .45rem 1.85rem;font-family:inherit;font-size:.8125rem;font-weight:500;color:#171b24;cursor:pointer;border-radius:.375rem}.Ink-Editor__style-option:hover{background:#eaf0fe;color:#171b24}.Ink-Editor__style-option--sel{background:#2951c4;color:#fff}.Ink-Editor__style-option--sel:hover{background:#2951c4;color:#fff}.Ink-Editor__style-check{position:absolute;left:.55rem;font-size:.7rem;font-weight:600;color:inherit}.Ink-Editor__glyph{font-size:.8125rem;line-height:1;font-weight:500;color:inherit}.Ink-Editor__glyph--bold{font-weight:700}.Ink-Editor__glyph--italic{font-style:italic}.Ink-Editor__glyph--underline{text-decoration:underline}.Ink-Editor__glyph--strike{text-decoration:line-through}.Ink-Editor__divider{width:1px;height:1.125rem;margin:0 .5rem;background:var(--ink-border);align-self:center}.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__content:empty::before{content:attr(data-placeholder);color:var(--ink-text-tertiary);font-size:.90625rem;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 ul.Ink-list--check{list-style:none;padding-inline-start:.25rem}.Ink-Editor__content ul.Ink-list--check li{position:relative;padding-left:1.5rem}.Ink-Editor__content ul.Ink-list--check li::before{content:"";position:absolute;left:0;top:.3rem;width:.8125rem;height:.8125rem;border:1px solid var(--ink-border-strong);border-radius:.1875rem;background:var(--ink-bg)}.Ink-Editor__content .Ink-callout{display:flex;gap:.625rem;align-items:flex-start;border-left:.15625rem solid var(--ink-ai);background:var(--ink-ai-soft);border-radius:0 .375rem .375rem 0;padding:.625rem .875rem;margin:1.25rem 0 .5rem}.Ink-Editor__content .Ink-callout p{font-size:.84375rem;font-style:italic;color:var(--ink-ai);line-height:1.6;margin:0}.Ink-AiPill{margin-left:auto;display:inline-flex;align-items:center;gap:.375rem;background:var(--ink-ai-soft);color:var(--ink-ai);border:0;border-radius:.3125rem;padding:.3125rem .625rem;font-family:inherit;font-size:.78125rem;font-weight:600;line-height:1.2;cursor:pointer;height:auto}.Ink-AiPill:hover,.Ink-AiPill:focus{background:var(--ink-ai-soft);color:var(--ink-ai);outline:none}.Ink-AiPill:disabled{opacity:.45;cursor:not-allowed}.Ink-AiPill__dot{width:.3125rem;height:.3125rem;border-radius:999px;background:var(--ink-ai);flex-shrink:0}.Ink-AiPill--installed{box-shadow:inset 0 -2px 0 var(--ink-plugin-color, var(--ink-ai))}.Ink-Editor__button--wide{width:auto;min-width:0;padding:0 .5rem;gap:.3125rem}.Ink-Editor__button-label{font-size:.75rem;font-weight:500;color:var(--ink-muted)}.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-table th,.Ink-Editor__content .Ink-table td{cursor:text}.Ink-Editor__content .Ink-table--resizing,.Ink-Editor__content .Ink-table--resizing th,.Ink-Editor__content .Ink-table--resizing td{cursor:col-resize}.Ink-Editor__source{display:block;width:100%;min-height:12rem;box-sizing:border-box;resize:vertical;border:0;padding:1rem 1.15rem;background:var(--ink-canvas, #f5f6f8);color:var(--ink-text);font-family:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.8125rem;line-height:1.55;outline:none}.Ink-Editor__content--hidden{display:none}.Ink-Editor__table-picker-grid{display:grid;gap:.2rem;padding:.35rem}.Ink-Editor__table-picker-cell{width:1rem;height:1rem;border:1px solid #e1e4ea;background:#fff;border-radius:.125rem;padding:0;cursor:pointer}.Ink-Editor__table-picker-cell--on{background:#eaf0fe;border-color:#2951c4}.Ink-Editor__table-picker-label{padding:.25rem .45rem .45rem;text-align:center;font-size:.75rem;font-weight:600;color:#171b24}.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{display:flex;align-items:center;justify-content:space-between;padding:.45rem 1.25rem;border-top:1px solid var(--ink-border);font-family:var(--ink-font-mono);font-size:.65625rem;color:var(--ink-text-tertiary)}.Ink-Editor__footer-meta{display:flex;gap:.875rem}.Ink-Editor__footer-sync{display:inline-flex;align-items:center;gap:.375rem}.Ink-Editor__footer-sync::before{content:"";width:.375rem;height:.375rem;border-radius:999px;background:#0e8a6e}.Ink-Outline{width:15rem;flex-shrink:0;background:#fafbfc;border-right:1px solid var(--ink-border);padding:1rem .75rem;display:flex;flex-direction:column;gap:.125rem;overflow:auto}.Ink-Outline__label{display:flex;align-items:center;justify-content:space-between;gap:.35rem;font-family:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.625rem;letter-spacing:.06em;text-transform:uppercase;color:#98a2b3;padding:0 .375rem;margin-bottom:.25rem}.Ink-Outline__toggle{border:0;background:rgba(0,0,0,0);color:inherit;cursor:pointer;font:inherit;padding:.1rem .25rem}.Ink-Outline__item{display:flex;align-items:center;gap:.375rem;width:100%;border:0;background:rgba(0,0,0,0);color:var(--ink-muted);text-align:left;font-size:.78125rem;line-height:1.3;padding:.375rem .5rem;border-radius:.3125rem;cursor:pointer}.Ink-Outline__item--h1{font-weight:600;color:var(--ink-text)}.Ink-Outline__item--h2{padding-left:1.25rem}.Ink-Outline__item--h3{padding-left:1.75rem}.Ink-Outline__item--active{background:var(--ink-accent-soft);color:var(--ink-accent);font-weight:500}.Ink-Outline__item-dot{width:.25rem;height:.25rem;border-radius:999px;background:#c9ceda;flex-shrink:0}.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;width:17.5rem;background:var(--ink-bg);border:1px solid var(--ink-border-strong);border-radius:.5rem;box-shadow:var(--ink-shadow);overflow:hidden}.Ink-Slash__search{display:flex;align-items:center;gap:.5rem;padding:.55rem .75rem;border-bottom:1px solid var(--ink-border);font-family:var(--ink-font-mono);font-size:.75rem;color:var(--ink-text-tertiary)}.Ink-Slash__cat{font-family:var(--ink-font-mono);font-size:.625rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-text-tertiary);padding:.5rem .75rem .25rem}.Ink-Slash__item{display:flex;align-items:center;gap:.625rem;width:100%;text-align:left;border:0;background:rgba(0,0,0,0);padding:.45rem .75rem;cursor:pointer;color:inherit}.Ink-Slash__item:hover,.Ink-Slash__item--sel{background:var(--ink-accent-soft)}.Ink-Slash__mark{width:1.625rem;height:1.625rem;border-radius:.3rem;background:var(--ink-canvas);border:1px solid var(--ink-border);display:flex;align-items:center;justify-content:center;color:var(--ink-muted);font-size:.6875rem;flex-shrink:0;font-weight:600}.Ink-Slash__item:hover .Ink-Slash__mark,.Ink-Slash__item--sel .Ink-Slash__mark{background:var(--ink-bg);border-color:var(--ink-accent);color:var(--ink-accent)}.Ink-Slash__mark--ai{background:var(--ink-ai-soft);border-color:var(--ink-ai);color:var(--ink-ai)}.Ink-Slash__item:hover .Ink-Slash__mark--ai,.Ink-Slash__item--sel .Ink-Slash__mark--ai{background:var(--ink-bg);border-color:var(--ink-ai);color:var(--ink-ai)}.Ink-Slash__txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1rem}.Ink-Slash__name{font-size:.78125rem;font-weight:600;color:var(--ink-text)}.Ink-Slash__desc{font-size:.6875rem;color:var(--ink-text-tertiary)}.Ink-Slash__key{font-family:var(--ink-font-mono);font-size:.625rem;color:var(--ink-text-tertiary);background:var(--ink-canvas);border-radius:.2rem;padding:.125rem .3rem}.Ink-Slash__hint{display:flex;align-items:center;gap:.125rem;flex-wrap:wrap;padding:.55rem .75rem;border-top:1px solid var(--ink-border);font-size:.6875rem;color:var(--ink-text-tertiary)}.Ink-Slash__caret{width:.09375rem;height:.875rem;background:var(--ink-accent);display:inline-block;animation:ink-slash-caret 1.1s steps(1) infinite}@keyframes ink-slash-caret{50%{opacity:0}}.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:22rem;flex:0 0 22rem;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:.35rem;padding:.45rem .55rem;border-bottom:1px solid var(--ink-ai-border, var(--ink-border))}.Ink-Ai__tab{flex:1 1 4.5rem;min-width:4.5rem;width:auto;height:auto;padding:.35rem .55rem;border:1px solid var(--ink-border);border-radius:.4rem;background:#fff;color:var(--ink-text);font:inherit;font-size:.75rem;font-weight:600;line-height:1.2;cursor:pointer}.Ink-Ai__tab--on{border-color:var(--ink-accent);background:var(--ink-accent-soft);color:var(--ink-accent)}.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: #e1e4ea;--ink-bg: #ffffff;--ink-toolbar: #ffffff;--ink-text: #171b24;--ink-muted: #667085;--ink-accent: #2951c4;--ink-accent-soft: #eaf0fe;--ink-shadow: 0 4px 16px rgba(23, 27, 36, 0.08);--ink-table-header: #f1f5f9;--ink-ai: #0e8a6e;--ink-ai-soft: #e7f6f1;--ink-canvas: #f5f6f8;--ink-border-strong: #c9ceda;--ink-text-tertiary: #98a2b3;--ink-font-mono: IBM Plex Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace}.Ink-Editor[data-color-mode=dark]{--ink-border: #3f3f46;--ink-bg: #18181b;--ink-toolbar: #27272a;--ink-text: #f4f4f5;--ink-muted: #a1a1aa;--ink-accent: #7b97ea;--ink-accent-soft: rgba(41, 81, 196, 0.22);--ink-shadow: 0 10px 40px rgba(0, 0, 0, 0.35);--ink-table-header: #27272a;--ink-ai: #0e8a6e;--ink-ai-soft: #e7f6f1;--ink-canvas: #f5f6f8;--ink-border-strong: #c9ceda;--ink-text-tertiary: #98a2b3;--ink-font-mono: IBM Plex Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace}.Ink-Editor[data-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}.Ink-Editor[data-ink-theme=ink]{--ink-border: #d7dbe3;--ink-bg: #fbfcfe;--ink-toolbar: #ffffff;--ink-text: #171b24;--ink-muted: #5c6370;--ink-accent: #2951c4;--ink-accent-soft: #eaf0fe}.Ink-Editor[data-ink-theme=dark]{color-scheme:dark;--ink-border: #3f3f46;--ink-bg: #18181b;--ink-toolbar: #27272a;--ink-text: #f4f4f5;--ink-muted: #a1a1aa;--ink-accent: #7b97ea;--ink-accent-soft: rgba(41, 81, 196, 0.22);--ink-shadow: 0 10px 40px rgba(0, 0, 0, 0.35);--ink-table-header: #27272a;--ink-ai: #0e8a6e;--ink-ai-soft: #e7f6f1;--ink-canvas: #f5f6f8;--ink-border-strong: #c9ceda;--ink-text-tertiary: #98a2b3;--ink-font-mono: IBM Plex Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace}.Ink-Editor:fullscreen{width:100%;height:100%;background:var(--ink-bg);padding:1rem 1.25rem;box-sizing:border-box}.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}.Ink-Editor__title-grid{display:grid;grid-template-columns:repeat(6, 5.5rem);gap:.35rem;padding:.45rem}.Ink-Editor__title-cell{display:flex;align-items:center;justify-content:center;min-height:3.25rem;padding:.25rem;border:1px solid #e1e4ea;border-radius:.25rem;background:#fff;cursor:pointer;overflow:hidden}.Ink-Editor__title-cell:hover{border-color:#2951c4;background:#eaf0fe}.Ink-Editor__title-cell .Ink-title{font-size:.95rem;margin:0;line-height:1.1}.Ink-Editor__content .Ink-title,.Ink-title{margin:.75rem 0;font-family:Impact,"Arial Black",sans-serif;font-size:2.25rem;font-weight:800;line-height:1.15;letter-spacing:.02em}.Ink-title--t01{color:rgba(0,0,0,0);-webkit-text-stroke:2px #111}.Ink-title--t02{color:#111;transform:skewX(-12deg)}.Ink-title--t03{color:#111;transform:perspective(240px) rotateX(28deg)}.Ink-title--t04{color:#111;display:inline-block;transform:skewY(-8deg) scaleY(1.15)}.Ink-title--t05{color:#111;transform:perspective(240px) rotateX(-28deg)}.Ink-title--t06{writing-mode:vertical-rl;text-orientation:mixed;color:#111;letter-spacing:.12em}.Ink-title--t07{color:#fff;text-shadow:3px 3px 0 #8a8a8a}.Ink-title--t08{color:#7ec8e3;-webkit-text-stroke:2px #1d4e89}.Ink-title--t09{color:#7b2cbf;text-shadow:0 0 8px #4cc9f0}.Ink-title--t10{background:linear-gradient(180deg, #f4f4f4 0%, #9aa0a6 48%, #e8e8e8 100%);-webkit-background-clip:text;background-clip:text;color:rgba(0,0,0,0);text-shadow:1px 1px 0 #6b7280}.Ink-title--t11{color:#0b3d91;text-shadow:4px 4px 0 #c41e3a}.Ink-title--t12{writing-mode:vertical-rl;color:#c41e3a;letter-spacing:.12em}.Ink-title--t13{background:linear-gradient(90deg, #f5d76e 0%, #e67e22 100%);-webkit-background-clip:text;background-clip:text;color:rgba(0,0,0,0)}.Ink-title--t14{background:linear-gradient(90deg, #e91e63 0%, #6a1b9a 100%);-webkit-background-clip:text;background-clip:text;color:rgba(0,0,0,0)}.Ink-title--t15{color:rgba(0,0,0,0);-webkit-text-stroke:2px #2e7d32}.Ink-title--t16{background:linear-gradient(90deg, #e53935, #fb8c00, #fdd835, #43a047, #1e88e5, #8e24aa);-webkit-background-clip:text;background-clip:text;color:rgba(0,0,0,0);transform:skewX(-10deg)}.Ink-title--t17{color:#90caf9;-webkit-text-stroke:1px #1565c0}.Ink-title--t18{writing-mode:vertical-rl;color:#b0b0b0;letter-spacing:.12em}.Ink-title--t19{color:#c9a227;text-shadow:1px 1px 0 #8d6e2f,2px 2px 0 #6d4c1f,3px 3px 0 #4e3423}.Ink-title--t20{color:#1565c0;transform:perspective(180px) rotateY(-28deg);text-shadow:2px 2px 0 #0d47a1,4px 4px 0 #08306b}.Ink-title--t21{color:#ef6c00;transform:perspective(180px) rotateY(32deg);text-shadow:-3px 2px 0 #bf360c}.Ink-title--t22{color:#00acc1;text-shadow:1px 1px 0 #006064,2px 2px 0 #004d40,3px 3px 0 #00363a}.Ink-title--t23{color:#ffee58;text-shadow:4px 4px 0 #1565c0}.Ink-title--t24{writing-mode:vertical-rl;color:#2e7d32;letter-spacing:.12em}.Ink-title--t25{color:#cfd8dc;transform:perspective(200px) rotateX(40deg);text-shadow:0 6px 0 #78909c}.Ink-title--t26{color:#1b5e20;transform:perspective(200px) rotateX(-36deg);text-shadow:0 5px 0 #0d3310}.Ink-title--t27{color:#fff;text-shadow:2px 3px 0 #9e9e9e,4px 6px 8px rgba(0,0,0,.25)}.Ink-title--t28{color:#ff6d00;transform:perspective(160px) rotateX(-18deg) scale(1.08);text-shadow:0 8px 0 #e65100}.Ink-title--t29{color:#1976d2;text-shadow:1px 0 0 #c62828,2px 0 0 #b71c1c,3px 0 0 #8e0000,4px 0 0 #6a0000}.Ink-title--t30{writing-mode:vertical-rl;color:#6d4c41;letter-spacing:.12em}.Ink-Editor__style-menu.Ink-Editor__excel{min-width:22rem;max-width:min(36rem,100vw - 1rem);max-height:none;overflow:visible}.Ink-Editor__excel-title{padding:.35rem .5rem .15rem;font-size:.75rem;font-weight:700;color:#667085}.Ink-Editor__excel-grid{display:grid;gap:.2rem;padding:.35rem .45rem;overflow:visible}.Ink-Editor__excel-cell{min-width:3.5rem;border:1px solid #e1e4ea;border-radius:.2rem;padding:.3rem .4rem;font:inherit;font-size:.75rem;color:#171b24;background:#fff}.Ink-Editor__excel-head,.Ink-Editor__excel-corner{display:flex;align-items:center;justify-content:center;min-height:1.6rem;font-size:.7rem;font-weight:700;color:#667085;background:#fff;border:1px solid #e1e4ea;border-radius:.2rem}.Ink-Editor__excel-cell--col,.Ink-Editor__excel-head.Ink-Editor__excel-cell--col{background:#eaf0fe}.Ink-Editor__excel-cell--row,.Ink-Editor__excel-head.Ink-Editor__excel-cell--row{box-shadow:inset 0 0 0 1px #2951c4}.Ink-GraphModal{display:flex;flex-direction:column;gap:.5rem}.Ink-GraphModal__row{display:flex;align-items:center;gap:.5rem}.Ink-GraphModal__row input{flex:1 1 auto;min-width:0;border:1px solid #e1e4ea;border-radius:.35rem;padding:.35rem .5rem;font:inherit}.Ink-Editor__excel-actions,.Ink-Editor__graph-types{display:flex;flex-wrap:wrap;gap:.35rem;padding:.35rem .45rem .55rem}.Ink-Editor__excel-actions{width:100%}.Ink-Editor__excel-actions button{flex:1 1 calc(50% - .2rem)}.Ink-Editor__excel-actions button:disabled{opacity:.45;cursor:default}.Ink-Editor__excel-actions .Ink-Editor__excel-insert{flex:1 1 100%}.Ink-Editor__excel-actions button,.Ink-Editor__graph-types button,.Ink-Editor__graph button{border:1px solid #e1e4ea;border-radius:.3rem;background:#fff;color:#171b24;font:inherit;font-size:.75rem;font-weight:600;padding:.3rem .55rem;cursor:pointer}.Ink-Editor__excel-actions button:hover,.Ink-Editor__graph-types button:hover,.Ink-Editor__graph button:hover,.Ink-Editor__graph-types button[aria-pressed=true]{border-color:#2951c4;background:#eaf0fe;color:#2951c4}.Ink-Editor__graph{min-width:21rem}.Ink-Editor__graph-preview{padding:.25rem .45rem}.Ink-Editor__content .Ink-graph,.Ink-graph{display:block;max-width:100%;height:auto;margin:.5rem 0}.Ink-graph-block{margin:.75rem 0}.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}
@@ -1,4 +1,4 @@
1
- export type InkFeatureName = 'table' | 'trackChanges' | 'comments' | 'ai' | 'blocks' | 'slash' | 'history' | 'typoAutoFix' | 'signature' | 'findReplace' | 'horizontalRule';
1
+ export type InkFeatureName = 'table' | 'trackChanges' | 'comments' | 'ai' | 'blocks' | 'slash' | 'history' | 'typoAutoFix' | 'signature' | 'findReplace' | 'horizontalRule' | 'htmlSource' | 'titles' | 'excel' | 'graph' | 'outline' | 'fullscreen' | 'theme';
2
2
  export type InkFeaturesConfig = Partial<Record<InkFeatureName, boolean>>;
3
3
  export type InkEditorVariant = 'classic' | 'document' | 'simple' | 'agent' | 'docx' | 'notion-like';
4
4
  export type InkEditorChrome = 'boxed' | 'borderless';
@@ -1 +1 @@
1
- {"version":3,"file":"features.types.d.ts","sourceRoot":"","sources":["../../src/types/features.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GACtB,OAAO,GACP,cAAc,GACd,UAAU,GACV,IAAI,GACJ,QAAQ,GACR,OAAO,GACP,SAAS,GACT,aAAa,GACb,WAAW,GACX,aAAa,GACb,gBAAgB,CAAC;AAErB,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC;AAEzE,MAAM,MAAM,gBAAgB,GACxB,SAAS,GACT,UAAU,GACV,QAAQ,GACR,OAAO,GACP,MAAM,GACN,aAAa,CAAC;AAElB,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,YAAY,CAAC;AAErD,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEvD,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC"}
1
+ {"version":3,"file":"features.types.d.ts","sourceRoot":"","sources":["../../src/types/features.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GACtB,OAAO,GACP,cAAc,GACd,UAAU,GACV,IAAI,GACJ,QAAQ,GACR,OAAO,GACP,SAAS,GACT,aAAa,GACb,WAAW,GACX,aAAa,GACb,gBAAgB,GAChB,YAAY,GACZ,QAAQ,GACR,OAAO,GACP,OAAO,GACP,SAAS,GACT,YAAY,GACZ,OAAO,CAAC;AAEZ,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC;AAEzE,MAAM,MAAM,gBAAgB,GACxB,SAAS,GACT,UAAU,GACV,QAAQ,GACR,OAAO,GACP,MAAM,GACN,aAAa,CAAC;AAElB,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,YAAY,CAAC;AAErD,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEvD,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC"}
@@ -5,4 +5,5 @@ export type { InkTrackChangeType, InkTrackChange, InkTrackChangesChangeHandler,
5
5
  export type { InkFeatureName, InkFeaturesConfig, InkEditorVariant, InkEditorChrome, InkColorMode, InkAiPlacement, } from './features.types';
6
6
  export type { InkPremiumFeature, InkPasteMode, InkIconKey, InkIconMap, InkThemeTokens, InkPremiumConfig, InkResolvedPremium, InkImageUploadHandler, InkThemeStyle, } from './premium.types';
7
7
  export type { OutlineItem } from './outline.types';
8
+ export type { InkHostPlugin, InkHostPluginId } from './plugin.types';
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,oBAAoB,EACpB,uBAAuB,EACvB,aAAa,EACb,gBAAgB,EAChB,WAAW,GACZ,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,eAAe,EACf,YAAY,EACZ,aAAa,EACb,UAAU,EACV,WAAW,EACX,aAAa,EACb,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,qBAAqB,EACrB,sBAAsB,EACtB,aAAa,EACb,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,0BAA0B,EAC1B,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,EACZ,WAAW,GACZ,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EACV,kBAAkB,EAClB,cAAc,EACd,4BAA4B,GAC7B,MAAM,sBAAsB,CAAC;AAE9B,YAAY,EACV,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,cAAc,GACf,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EACV,iBAAiB,EACjB,YAAY,EACZ,UAAU,EACV,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,EACrB,aAAa,GACd,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,oBAAoB,EACpB,uBAAuB,EACvB,aAAa,EACb,gBAAgB,EAChB,WAAW,GACZ,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,eAAe,EACf,YAAY,EACZ,aAAa,EACb,UAAU,EACV,WAAW,EACX,aAAa,EACb,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,qBAAqB,EACrB,sBAAsB,EACtB,aAAa,EACb,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,0BAA0B,EAC1B,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,EACZ,WAAW,GACZ,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EACV,kBAAkB,EAClB,cAAc,EACd,4BAA4B,GAC7B,MAAM,sBAAsB,CAAC;AAE9B,YAAY,EACV,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,cAAc,GACf,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EACV,iBAAiB,EACjB,YAAY,EACZ,UAAU,EACV,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,EACrB,aAAa,GACd,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC"}
@@ -4,7 +4,7 @@ import { InkCommentThread, InkCommentsChangeHandler } from './comments.types';
4
4
  import { InkColorMode, InkEditorChrome, InkEditorVariant, InkFeaturesConfig } from './features.types';
5
5
  import { InkIconMap, InkImageUploadHandler, InkPasteMode, InkPremiumConfig, InkThemeTokens } from './premium.types';
6
6
  import { InkTrackChange, InkTrackChangesChangeHandler } from './trackChanges.types';
7
- export type ToolbarOption = 'bold' | 'italic' | 'underline' | 'strikethrough' | 'heading1' | 'heading2' | 'heading3' | 'heading4' | 'heading5' | 'heading6' | 'paragraph' | 'headingDropdown' | 'fontDropdown' | 'bulletList' | 'orderedList' | 'checklist' | 'listDropdown' | 'blockquote' | 'code' | 'link' | 'image' | 'table' | 'signature' | 'findReplace' | 'findReplaceDropdown' | 'horizontalRule' | 'undo' | 'redo' | 'trackChanges' | 'comments' | 'ai' | 'textColor' | 'highlightColor' | 'directionLtr' | 'directionRtl' | 'superscript' | 'subscript' | 'alignLeft' | 'alignCenter' | 'alignRight' | 'alignJustify' | 'indent' | 'outdent' | 'clearFormat' | 'divider';
7
+ export type ToolbarOption = 'bold' | 'italic' | 'underline' | 'strikethrough' | 'heading1' | 'heading2' | 'heading3' | 'heading4' | 'heading5' | 'heading6' | 'paragraph' | 'headingDropdown' | 'fontDropdown' | 'bulletList' | 'orderedList' | 'checklist' | 'listDropdown' | 'blockquote' | 'code' | 'link' | 'image' | 'table' | 'signature' | 'findReplace' | 'findReplaceDropdown' | 'horizontalRule' | 'undo' | 'redo' | 'trackChanges' | 'comments' | 'ai' | 'textColor' | 'highlightColor' | 'directionLtr' | 'directionRtl' | 'superscript' | 'subscript' | 'alignLeft' | 'alignCenter' | 'alignRight' | 'alignJustify' | 'indent' | 'outdent' | 'clearFormat' | 'htmlSource' | 'titles' | 'excel' | 'graph' | 'outline' | 'fullscreen' | 'theme' | 'divider';
8
8
  export interface InkEditorProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
9
9
  value?: string;
10
10
  defaultValue?: string;
@@ -49,10 +49,14 @@ export interface InkEditorProps extends Omit<HTMLAttributes<HTMLDivElement>, 'on
49
49
  toolbarHidden?: boolean;
50
50
  onToolbarHiddenChange?: (hidden: boolean) => void;
51
51
  showOutline?: boolean;
52
+ onOutlineChange?: (open: boolean) => void;
52
53
  }
53
54
  export interface ToolbarButtonProps {
54
55
  icon: ReactNode;
55
56
  title: string;
57
+ hint?: string;
58
+ onHint?: (hint: string) => void;
59
+ pluginColor?: string;
56
60
  active?: boolean;
57
61
  onClick: () => void;
58
62
  disabled?: boolean;
@@ -82,7 +86,7 @@ export interface TypoFixResult {
82
86
  html: string;
83
87
  fixedCount: number;
84
88
  }
85
- export type SlashInsert = 'heading1' | 'heading2' | 'heading3' | 'paragraph' | 'bulletList' | 'orderedList' | 'checklist' | 'table' | 'ai' | 'image' | 'code' | 'callout' | 'quote';
89
+ export type SlashInsert = 'heading1' | 'heading2' | 'heading3' | 'paragraph' | 'bulletList' | 'orderedList' | 'checklist' | 'table' | 'ai' | 'image' | 'code' | 'callout' | 'quote' | 'titles' | 'excel' | 'graph';
86
90
  export interface SlashCommandItem {
87
91
  id: string;
88
92
  label: string;
@@ -1 +1 @@
1
- {"version":3,"file":"ink.types.d.ts","sourceRoot":"","sources":["../../src/types/ink.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ink.types.d.ts","sourceRoot":"","sources":["../../src/types/ink.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export type InkHostPluginId = 'titles' | 'excel' | 'graph' | 'ai' | 'theme';
2
+ export type InkHostPlugin = {
3
+ id: InkHostPluginId;
4
+ label: string;
5
+ color: string;
6
+ hint: string;
7
+ };
8
+ //# sourceMappingURL=plugin.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.types.d.ts","sourceRoot":"","sources":["../../src/types/plugin.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC;AAE5E,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,EAAE,eAAe,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd,CAAC"}
@@ -2,7 +2,7 @@ import { CSSProperties, ReactNode } from 'react';
2
2
  import { ToolbarOption } from './ink.types';
3
3
  export type InkPremiumFeature = 'icons' | 'theme' | 'richPaste' | 'imageUpload' | 'wysiwyg' | 'splitEditors';
4
4
  export type InkPasteMode = 'plain' | 'rich';
5
- export type InkIconKey = Extract<ToolbarOption, 'bold' | 'italic' | 'underline' | 'strikethrough' | 'bulletList' | 'orderedList' | 'checklist' | 'link' | 'image' | 'table' | 'signature' | 'findReplace' | 'horizontalRule' | 'undo' | 'redo' | 'trackChanges' | 'comments' | 'ai' | 'clearFormat' | 'directionLtr' | 'directionRtl' | 'superscript' | 'subscript' | 'alignLeft' | 'alignCenter' | 'alignRight' | 'alignJustify' | 'indent' | 'outdent' | 'blockquote' | 'code'>;
5
+ export type InkIconKey = Extract<ToolbarOption, 'bold' | 'italic' | 'underline' | 'strikethrough' | 'bulletList' | 'orderedList' | 'checklist' | 'link' | 'image' | 'table' | 'signature' | 'findReplace' | 'horizontalRule' | 'undo' | 'redo' | 'trackChanges' | 'comments' | 'ai' | 'clearFormat' | 'directionLtr' | 'directionRtl' | 'superscript' | 'subscript' | 'alignLeft' | 'alignCenter' | 'alignRight' | 'alignJustify' | 'indent' | 'outdent' | 'blockquote' | 'code' | 'htmlSource' | 'titles' | 'excel' | 'graph' | 'outline' | 'fullscreen' | 'theme'>;
6
6
  export type InkIconMap = Partial<Record<InkIconKey, ReactNode>>;
7
7
  export interface InkThemeTokens {
8
8
  border?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"premium.types.d.ts","sourceRoot":"","sources":["../../src/types/premium.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,MAAM,iBAAiB,GACzB,OAAO,GACP,OAAO,GACP,WAAW,GACX,aAAa,GACb,SAAS,GACT,cAAc,CAAC;AAEnB,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,MAAM,CAAC;AAE5C,MAAM,MAAM,UAAU,GAAG,OAAO,CAC9B,aAAa,EACX,MAAM,GACN,QAAQ,GACR,WAAW,GACX,eAAe,GACf,YAAY,GACZ,aAAa,GACb,WAAW,GACX,MAAM,GACN,OAAO,GACP,OAAO,GACP,WAAW,GACX,aAAa,GACb,gBAAgB,GAChB,MAAM,GACN,MAAM,GACN,cAAc,GACd,UAAU,GACV,IAAI,GACJ,aAAa,GACb,cAAc,GACd,cAAc,GACd,aAAa,GACb,WAAW,GACX,WAAW,GACX,aAAa,GACb,YAAY,GACZ,cAAc,GACd,QAAQ,GACR,SAAS,GACT,YAAY,GACZ,MAAM,CACT,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;AAEhE,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC,CAAC;CACxD;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;CAC9C;AAED,MAAM,MAAM,qBAAqB,GAAG,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;AAE7E,MAAM,MAAM,aAAa,GAAG,aAAa,CAAC"}
1
+ {"version":3,"file":"premium.types.d.ts","sourceRoot":"","sources":["../../src/types/premium.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,MAAM,iBAAiB,GACzB,OAAO,GACP,OAAO,GACP,WAAW,GACX,aAAa,GACb,SAAS,GACT,cAAc,CAAC;AAEnB,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,MAAM,CAAC;AAE5C,MAAM,MAAM,UAAU,GAAG,OAAO,CAC9B,aAAa,EACX,MAAM,GACN,QAAQ,GACR,WAAW,GACX,eAAe,GACf,YAAY,GACZ,aAAa,GACb,WAAW,GACX,MAAM,GACN,OAAO,GACP,OAAO,GACP,WAAW,GACX,aAAa,GACb,gBAAgB,GAChB,MAAM,GACN,MAAM,GACN,cAAc,GACd,UAAU,GACV,IAAI,GACJ,aAAa,GACb,cAAc,GACd,cAAc,GACd,aAAa,GACb,WAAW,GACX,WAAW,GACX,aAAa,GACb,YAAY,GACZ,cAAc,GACd,QAAQ,GACR,SAAS,GACT,YAAY,GACZ,MAAM,GACN,YAAY,GACZ,QAAQ,GACR,OAAO,GACP,OAAO,GACP,SAAS,GACT,YAAY,GACZ,OAAO,CACV,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;AAEhE,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC,CAAC;CACxD;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;CAC9C;AAED,MAAM,MAAM,qBAAqB,GAAG,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;AAE7E,MAAM,MAAM,aAAa,GAAG,aAAa,CAAC"}
@@ -1,7 +1,7 @@
1
1
  export { cn } from './cn.utils';
2
2
  export { applyTypoAutoFix } from './typo.utils';
3
3
  export { createInkId } from './id.utils';
4
- export { buildTableHtml, getTableCellFromSelection, insertTableRow, insertTableColumn, deleteTableRow, deleteTableColumn, } from './table.utils';
4
+ export { buildTableHtml, getTableCellFromSelection, insertTableRow, insertTableColumn, deleteTableRow, deleteTableColumn, toggleTableHeaderRow, getColumnResizeIndex, setTableColumnWidth, ensureTableColgroup, } from './table.utils';
5
5
  export { getBlockElement, moveBlock, reorderBlockBefore, reorderBlockAfter, resolveDropPosition, clearBlockDragClasses, markDraggingBlock, markDropTarget, markActiveBlock, } from './blocks.utils';
6
6
  export type { BlockDropPosition } from './blocks.utils';
7
7
  export { wrapInsertHtml, wrapDeleteHtml, createTrackChange, acceptTrackChangeInHtml, rejectTrackChangeInHtml, } from './trackChanges.utils';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EACL,cAAc,EACd,yBAAyB,EACzB,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,iBAAiB,GAClB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,eAAe,EACf,SAAS,EACT,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,cAAc,EACd,eAAe,GAChB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EACL,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAC3F,YAAY,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC7F,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,cAAc,GACf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,yBAAyB,EACzB,8BAA8B,EAC9B,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EACL,cAAc,EACd,yBAAyB,EACzB,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,eAAe,EACf,SAAS,EACT,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,cAAc,EACd,eAAe,GAChB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EACL,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAC3F,YAAY,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC7F,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,cAAc,GACf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,yBAAyB,EACzB,8BAA8B,EAC9B,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,wBAAwB,CAAC"}
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../constants/numbers.cjs"),N=require("../constants/generals.const.cjs"),a=require("../constants/defaults.const.cjs");require("../constants/openai.const.cjs");require("react/jsx-runtime");require("./paste.utils.cjs");require("react");require("react-dom");const _={H1:e.NUMBER_ONE,H2:e.NUMBER_TWO,H3:e.NUMBER_THREE},O=r=>{if(!r)return[];const i=r.querySelectorAll(a.INK_OUTLINE_HEADING_SELECTOR),t=[];return i.forEach((n,l)=>{if(!(n instanceof HTMLElement))return;const o=_[n.tagName];if(!o)return;const s=(n.textContent??N.EMPTY_STRING).trim();s&&t.push({index:l,level:o,text:s})}),t},R=(r,i)=>{const n=r.querySelectorAll(a.INK_OUTLINE_HEADING_SELECTOR).item(i);n instanceof HTMLElement&&n.scrollIntoView({block:"center",behavior:"smooth"})},f=r=>{if(!r)return{line:e.NUMBER_ONE,col:e.NUMBER_ONE};const i=window.getSelection();if(!i||i.rangeCount===e.NUMBER_ZERO)return{line:e.NUMBER_ONE,col:e.NUMBER_ONE};const t=i.getRangeAt(e.NUMBER_ZERO);if(!r.contains(t.startContainer))return{line:e.NUMBER_ONE,col:e.NUMBER_ONE};const n=r.querySelectorAll("p, h1, h2, h3, h4, h5, h6, li, blockquote, pre");let l=e.NUMBER_ONE,o=!1;n.forEach((E,u)=>{o||!(E instanceof HTMLElement)||(E.contains(t.startContainer)||E===t.startContainer)&&(l=u+e.NUMBER_ONE,o=!0)});const s=o?n.item(l-e.NUMBER_ONE):null;if(!(s instanceof HTMLElement))return{line:l,col:e.NUMBER_ONE};const c=t.cloneRange();return c.selectNodeContents(s),c.setEnd(t.startContainer,t.startOffset),{line:l,col:c.toString().length+e.NUMBER_ONE}};exports.collectOutlineItems=O;exports.getCaretLineCol=f;exports.scrollOutlineHeading=R;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../constants/numbers.cjs"),_=require("../constants/generals.const.cjs"),u=require("../constants/defaults.const.cjs");require("../constants/openai.const.cjs");require("react/jsx-runtime");require("./paste.utils.cjs");require("react");require("react-dom");const N=`${u.INK_OUTLINE_HEADING_SELECTOR}, [${u.INK_ATTR_TITLE}]`,O={H1:e.NUMBER_ONE,H2:e.NUMBER_TWO,H3:e.NUMBER_THREE},R=t=>t.hasAttribute(u.INK_ATTR_TITLE)?e.NUMBER_ONE:O[t.tagName]??null,f=t=>{if(!t)return[];const o=t.querySelectorAll(N),n=[];return o.forEach((r,l)=>{if(!(r instanceof HTMLElement))return;const i=R(r);if(!i)return;const s=(r.textContent??_.EMPTY_STRING).trim();s&&n.push({index:l,level:i,text:s})}),n},M=(t,o)=>{const r=t.querySelectorAll(N).item(o);r instanceof HTMLElement&&r.scrollIntoView({block:"center",behavior:"smooth"})},T=t=>{if(!t)return{line:e.NUMBER_ONE,col:e.NUMBER_ONE};const o=window.getSelection();if(!o||o.rangeCount===e.NUMBER_ZERO)return{line:e.NUMBER_ONE,col:e.NUMBER_ONE};const n=o.getRangeAt(e.NUMBER_ZERO);if(!t.contains(n.startContainer))return{line:e.NUMBER_ONE,col:e.NUMBER_ONE};const r=t.querySelectorAll("p, h1, h2, h3, h4, h5, h6, li, blockquote, pre");let l=e.NUMBER_ONE,i=!1;r.forEach((E,a)=>{i||!(E instanceof HTMLElement)||(E.contains(n.startContainer)||E===n.startContainer)&&(l=a+e.NUMBER_ONE,i=!0)});const s=i?r.item(l-e.NUMBER_ONE):null;if(!(s instanceof HTMLElement))return{line:l,col:e.NUMBER_ONE};const c=n.cloneRange();return c.selectNodeContents(s),c.setEnd(n.startContainer,n.startOffset),{line:l,col:c.toString().length+e.NUMBER_ONE}};exports.collectOutlineItems=f;exports.getCaretLineCol=T;exports.scrollOutlineHeading=M;
@@ -1 +1 @@
1
- {"version":3,"file":"outline.utils.d.ts","sourceRoot":"","sources":["../../src/utils/outline.utils.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAQ5C,eAAO,MAAM,mBAAmB,GAAI,MAAM,WAAW,GAAG,IAAI,KAAG,WAAW,EAazE,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,MAAM,WAAW,EAAE,OAAO,MAAM,KAAG,IAKvE,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,MAAM,WAAW,GAAG,IAAI,KACvB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CA8B7B,CAAC"}
1
+ {"version":3,"file":"outline.utils.d.ts","sourceRoot":"","sources":["../../src/utils/outline.utils.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAe5C,eAAO,MAAM,mBAAmB,GAAI,MAAM,WAAW,GAAG,IAAI,KAAG,WAAW,EAazE,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,MAAM,WAAW,EAAE,OAAO,MAAM,KAAG,IAKvE,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,MAAM,WAAW,GAAG,IAAI,KACvB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CA8B7B,CAAC"}
@@ -1,49 +1,49 @@
1
- import { NUMBER_ONE as t, NUMBER_ZERO as f, NUMBER_THREE as m, NUMBER_TWO as g } from "../constants/numbers.js";
2
- import { EMPTY_STRING as h } from "../constants/generals.const.js";
3
- import { INK_OUTLINE_HEADING_SELECTOR as u } from "../constants/defaults.const.js";
1
+ import { NUMBER_ONE as t, NUMBER_THREE as T, NUMBER_TWO as N, NUMBER_ZERO as u } from "../constants/numbers.js";
2
+ import { EMPTY_STRING as _ } from "../constants/generals.const.js";
3
+ import { INK_OUTLINE_HEADING_SELECTOR as h, INK_ATTR_TITLE as E } from "../constants/defaults.const.js";
4
4
  import "../constants/openai.const.js";
5
5
  import "react/jsx-runtime";
6
6
  import "./paste.utils.js";
7
7
  import "react";
8
8
  import "react-dom";
9
- const p = {
9
+ const f = `${h}, [${E}]`, g = {
10
10
  H1: t,
11
- H2: g,
12
- H3: m
13
- }, O = (r) => {
14
- if (!r) return [];
15
- const o = r.querySelectorAll(u), e = [];
16
- return o.forEach((n, i) => {
17
- if (!(n instanceof HTMLElement)) return;
18
- const l = p[n.tagName];
11
+ H2: N,
12
+ H3: T
13
+ }, p = (e) => e.hasAttribute(E) ? t : g[e.tagName] ?? null, S = (e) => {
14
+ if (!e) return [];
15
+ const o = e.querySelectorAll(f), n = [];
16
+ return o.forEach((r, i) => {
17
+ if (!(r instanceof HTMLElement)) return;
18
+ const l = p(r);
19
19
  if (!l) return;
20
- const c = (n.textContent ?? h).trim();
21
- c && e.push({ index: i, level: l, text: c });
22
- }), e;
23
- }, A = (r, o) => {
24
- const n = r.querySelectorAll(u).item(o);
25
- n instanceof HTMLElement && n.scrollIntoView({ block: "center", behavior: "smooth" });
26
- }, I = (r) => {
27
- if (!r) return { line: t, col: t };
20
+ const c = (r.textContent ?? _).trim();
21
+ c && n.push({ index: i, level: l, text: c });
22
+ }), n;
23
+ }, U = (e, o) => {
24
+ const r = e.querySelectorAll(f).item(o);
25
+ r instanceof HTMLElement && r.scrollIntoView({ block: "center", behavior: "smooth" });
26
+ }, b = (e) => {
27
+ if (!e) return { line: t, col: t };
28
28
  const o = window.getSelection();
29
- if (!o || o.rangeCount === f)
29
+ if (!o || o.rangeCount === u)
30
30
  return { line: t, col: t };
31
- const e = o.getRangeAt(f);
32
- if (!r.contains(e.startContainer))
31
+ const n = o.getRangeAt(u);
32
+ if (!e.contains(n.startContainer))
33
33
  return { line: t, col: t };
34
- const n = r.querySelectorAll("p, h1, h2, h3, h4, h5, h6, li, blockquote, pre");
34
+ const r = e.querySelectorAll("p, h1, h2, h3, h4, h5, h6, li, blockquote, pre");
35
35
  let i = t, l = !1;
36
- n.forEach((a, E) => {
37
- l || !(a instanceof HTMLElement) || (a.contains(e.startContainer) || a === e.startContainer) && (i = E + t, l = !0);
36
+ r.forEach((a, m) => {
37
+ l || !(a instanceof HTMLElement) || (a.contains(n.startContainer) || a === n.startContainer) && (i = m + t, l = !0);
38
38
  });
39
- const c = l ? n.item(i - t) : null;
39
+ const c = l ? r.item(i - t) : null;
40
40
  if (!(c instanceof HTMLElement))
41
41
  return { line: i, col: t };
42
- const s = e.cloneRange();
43
- return s.selectNodeContents(c), s.setEnd(e.startContainer, e.startOffset), { line: i, col: s.toString().length + t };
42
+ const s = n.cloneRange();
43
+ return s.selectNodeContents(c), s.setEnd(n.startContainer, n.startOffset), { line: i, col: s.toString().length + t };
44
44
  };
45
45
  export {
46
- O as collectOutlineItems,
47
- I as getCaretLineCol,
48
- A as scrollOutlineHeading
46
+ S as collectOutlineItems,
47
+ b as getCaretLineCol,
48
+ U as scrollOutlineHeading
49
49
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("../constants/numbers.cjs"),u=require("../constants/generals.const.cjs");require("../constants/openai.const.cjs");require("react/jsx-runtime");const r=require("../constants/table.const.cjs");require("./paste.utils.cjs");require("react");require("react-dom");const A=(t,e,n)=>Math.min(n,Math.max(e,t)),f=t=>{const e=document.createElement(t);return e.contentEditable="true",e.innerHTML="<br>",e},L=t=>{const e=t.parentElement;return e?Array.from(e.cells).indexOf(t):0},d=(t=l.INK_DEFAULT_TABLE_ROWS,e=l.INK_DEFAULT_TABLE_COLS)=>{const n=A(t,l.INK_TABLE_MIN_ROWS,l.INK_TABLE_MAX_ROWS),o=A(e,l.INK_TABLE_MIN_COLS,l.INK_TABLE_MAX_COLS),s=Array.from({length:o},(a,c)=>`<th contenteditable="true">Header ${c+1}</th>`).join(u.EMPTY_STRING),T=Array.from({length:Math.max(0,n-1)},()=>`<tr>${Array.from({length:o},()=>'<td contenteditable="true"><br></td>').join(u.EMPTY_STRING)}</tr>`).join(u.EMPTY_STRING);return`<table class="${r.TABLE_CLASS_NAME}"><thead><tr>${s}</tr></thead><tbody>${T}</tbody></table><p><br></p>`},m=()=>{const t=window.getSelection();if(!t||t.rangeCount===0)return null;let e=t.anchorNode;return e&&e.nodeType===Node.TEXT_NODE&&(e=e.parentElement),e instanceof Element?e.closest(r.TABLE_CELL_SELECTOR):null},b=(t,e)=>{var i,_;const n=t.closest(r.TABLE_ROW_TAG),o=t.closest(r.TABLE_TAG);if(!n||!o)return!1;const s=n.cells.length;if(o.rows.length>=l.INK_TABLE_MAX_ROWS)return!1;const a=!!n.closest(r.TABLE_SECTION_THEAD)?r.TABLE_CELL_TAG_TH:r.TABLE_CELL_TAG_TD,c=document.createElement(r.TABLE_ROW_TAG);for(let E=0;E<s;E+=1)c.appendChild(f(a));return e==="before"?(i=n.parentElement)==null||i.insertBefore(c,n):(_=n.parentElement)==null||_.insertBefore(c,n.nextSibling),!0},B=(t,e)=>{const n=t.closest(r.TABLE_TAG);if(!n)return!1;const o=L(t);if(o<0)return!1;const s=n.rows[0];if(!s||s.cells.length>=l.INK_TABLE_MAX_COLS)return!1;const T=e==="before"?o:o+1;return Array.from(n.rows).forEach(a=>{const c=a.cells[T]??null,i=a.closest(r.TABLE_SECTION_THEAD)?r.TABLE_CELL_TAG_TH:r.TABLE_CELL_TAG_TD,_=f(i);c?a.insertBefore(_,c):a.appendChild(_)}),!0},C=t=>{const e=t.closest(r.TABLE_ROW_TAG),n=t.closest(r.TABLE_TAG);return!e||!n||n.rows.length<=l.INK_TABLE_MIN_ROWS?!1:(e.remove(),!0)},N=t=>{const e=t.closest(r.TABLE_TAG);if(!e)return!1;const n=L(t);if(n<0)return!1;const o=e.rows[0];return!o||o.cells.length<=l.INK_TABLE_MIN_COLS?!1:(Array.from(e.rows).forEach(s=>{const T=s.cells[n];T&&T.remove()}),!0)};exports.buildTableHtml=d;exports.deleteTableColumn=N;exports.deleteTableRow=C;exports.getTableCellFromSelection=m;exports.insertTableColumn=B;exports.insertTableRow=b;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("../constants/numbers.cjs"),u=require("../constants/generals.const.cjs");require("../constants/openai.const.cjs");require("react/jsx-runtime");const r=require("../constants/table.const.cjs");require("./paste.utils.cjs");require("react");require("react-dom");const m=(t,e,n)=>Math.min(n,Math.max(e,t)),A=t=>{const e=document.createElement(t);return e.contentEditable="true",e.innerHTML="<br>",e},d=t=>{const e=t.parentElement;return e?Array.from(e.cells).indexOf(t):0},B=(t=a.INK_DEFAULT_TABLE_ROWS,e=a.INK_DEFAULT_TABLE_COLS)=>{const n=m(t,a.INK_TABLE_MIN_ROWS,a.INK_TABLE_MAX_ROWS),o=m(e,a.INK_TABLE_MIN_COLS,a.INK_TABLE_MAX_COLS),l=Array.from({length:o},(c,T)=>`<th contenteditable="true">${r.TABLE_HEADER_PREFIX}${T+1}</th>`).join(u.EMPTY_STRING),s=Array.from({length:Math.max(0,n-1)},()=>`<tr>${Array.from({length:o},()=>'<td contenteditable="true"><br></td>').join(u.EMPTY_STRING)}</tr>`).join(u.EMPTY_STRING),_=`<${r.TABLE_COLGROUP}>${Array.from({length:o},()=>`<${r.TABLE_COL}>`).join(u.EMPTY_STRING)}</${r.TABLE_COLGROUP}>`;return`<table class="${r.TABLE_CLASS_NAME}">${_}<thead><tr>${l}</tr></thead><tbody>${s}</tbody></table><p><br></p>`},C=()=>{const t=window.getSelection();if(!t||t.rangeCount===0)return null;let e=t.anchorNode;return e&&e.nodeType===Node.TEXT_NODE&&(e=e.parentElement),e instanceof Element?e.closest(r.TABLE_CELL_SELECTOR):null},h=(t,e)=>{var T,i;const n=t.closest(r.TABLE_ROW_TAG),o=t.closest(r.TABLE_TAG);if(!n||!o)return!1;const l=n.cells.length;if(o.rows.length>=a.INK_TABLE_MAX_ROWS)return!1;const _=!!n.closest(r.TABLE_SECTION_THEAD)?r.TABLE_CELL_TAG_TH:r.TABLE_CELL_TAG_TD,c=document.createElement(r.TABLE_ROW_TAG);for(let E=0;E<l;E+=1)c.appendChild(A(_));return e==="before"?(T=n.parentElement)==null||T.insertBefore(c,n):(i=n.parentElement)==null||i.insertBefore(c,n.nextSibling),!0},b=(t,e)=>{const n=t.closest(r.TABLE_TAG);if(!n)return!1;const o=d(t);if(o<0)return!1;const l=n.rows[0];if(!l||l.cells.length>=a.INK_TABLE_MAX_COLS)return!1;const s=e==="before"?o:o+1;return Array.from(n.rows).forEach(_=>{const c=_.cells[s]??null,T=_.closest(r.TABLE_SECTION_THEAD)?r.TABLE_CELL_TAG_TH:r.TABLE_CELL_TAG_TD,i=A(T);c?_.insertBefore(i,c):_.appendChild(i)}),L(n),!0},R=t=>{const e=t.closest(r.TABLE_ROW_TAG),n=t.closest(r.TABLE_TAG);return!e||!n||n.rows.length<=a.INK_TABLE_MIN_ROWS?!1:(e.remove(),!0)},g=t=>{const e=t.closest(r.TABLE_TAG);if(!e)return!1;const n=d(t);if(n<0)return!1;const o=e.rows[0];return!o||o.cells.length<=a.INK_TABLE_MIN_COLS?!1:(Array.from(e.rows).forEach(l=>{const s=l.cells[n];s&&s.remove()}),L(e),!0)},O=t=>{const e=t.closest(r.TABLE_TAG);if(!e)return!1;const n=e.tHead,o=n==null?void 0:n.querySelector(r.TABLE_ROW_TAG);if(n&&o){const T=e.tBodies[0]??e.createTBody(),i=document.createElement(r.TABLE_ROW_TAG);return Array.from(o.cells).forEach(E=>{const f=A(r.TABLE_CELL_TAG_TD);f.innerHTML=E.innerHTML,i.appendChild(f)}),T.insertBefore(i,T.firstChild),n.remove(),!0}const l=e.tBodies[0]??e.querySelector(r.TABLE_SECTION_TBODY),s=l==null?void 0:l.querySelector(r.TABLE_ROW_TAG);if(!l||!s)return!1;const _=e.createTHead(),c=document.createElement(r.TABLE_ROW_TAG);return Array.from(s.cells).forEach((T,i)=>{const E=A(r.TABLE_CELL_TAG_TH);E.innerHTML=T.innerHTML||`${r.TABLE_HEADER_PREFIX}${i+1}`,c.appendChild(E)}),_.appendChild(c),s.remove(),!0},L=t=>{var o,l;let e=t.querySelector(r.TABLE_COLGROUP);const n=((o=t.rows[0])==null?void 0:o.cells.length)??0;for(e||(e=document.createElement(r.TABLE_COLGROUP),t.insertBefore(e,t.firstChild));e.children.length<n;)e.appendChild(document.createElement(r.TABLE_COL));for(;e.children.length>n;)(l=e.lastElementChild)==null||l.remove();return e.getElementsByTagName(r.TABLE_COL)},I=(t,e,n)=>{const o=e.getBoundingClientRect();return Math.abs(o.right-t)>n?null:d(e)},N=(t,e,n)=>{const l=L(t).item(e);if(!l)return;const s=Math.max(a.INK_TABLE_COL_MIN_WIDTH_PX,n);l.style.width=`${s}px`};exports.buildTableHtml=B;exports.deleteTableColumn=g;exports.deleteTableRow=R;exports.ensureTableColgroup=L;exports.getColumnResizeIndex=I;exports.getTableCellFromSelection=C;exports.insertTableColumn=b;exports.insertTableRow=h;exports.setTableColumnWidth=N;exports.toggleTableHeaderRow=O;
@@ -4,4 +4,8 @@ export declare const insertTableRow: (cell: HTMLTableCellElement, position: "bef
4
4
  export declare const insertTableColumn: (cell: HTMLTableCellElement, position: "before" | "after") => boolean;
5
5
  export declare const deleteTableRow: (cell: HTMLTableCellElement) => boolean;
6
6
  export declare const deleteTableColumn: (cell: HTMLTableCellElement) => boolean;
7
+ export declare const toggleTableHeaderRow: (cell: HTMLTableCellElement) => boolean;
8
+ export declare const ensureTableColgroup: (table: HTMLTableElement) => HTMLCollectionOf<HTMLTableColElement>;
9
+ export declare const getColumnResizeIndex: (clientX: number, cell: HTMLTableCellElement, edgePx: number) => number | null;
10
+ export declare const setTableColumnWidth: (table: HTMLTableElement, columnIndex: number, widthPx: number) => void;
7
11
  //# sourceMappingURL=table.utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"table.utils.d.ts","sourceRoot":"","sources":["../../src/utils/table.utils.ts"],"names":[],"mappings":"AAmCA,eAAO,MAAM,cAAc,GACzB,aAA6B,EAC7B,aAA6B,KAC5B,MAcF,CAAC;AAEF,eAAO,MAAM,yBAAyB,QAAO,oBAAoB,GAAG,IASnE,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,MAAM,oBAAoB,EAC1B,UAAU,QAAQ,GAAG,OAAO,KAC3B,OAkBF,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,MAAM,oBAAoB,EAC1B,UAAU,QAAQ,GAAG,OAAO,KAC3B,OAsBF,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,MAAM,oBAAoB,KAAG,OAO3D,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,MAAM,oBAAoB,KAAG,OAY9D,CAAC"}
1
+ {"version":3,"file":"table.utils.d.ts","sourceRoot":"","sources":["../../src/utils/table.utils.ts"],"names":[],"mappings":"AAwCA,eAAO,MAAM,cAAc,GACzB,aAA6B,EAC7B,aAA6B,KAC5B,MAeF,CAAC;AAEF,eAAO,MAAM,yBAAyB,QAAO,oBAAoB,GAAG,IASnE,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,MAAM,oBAAoB,EAC1B,UAAU,QAAQ,GAAG,OAAO,KAC3B,OAkBF,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,MAAM,oBAAoB,EAC1B,UAAU,QAAQ,GAAG,OAAO,KAC3B,OAuBF,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,MAAM,oBAAoB,KAAG,OAO3D,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,MAAM,oBAAoB,KAAG,OAa9D,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,MAAM,oBAAoB,KAAG,OA8BjE,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,OAAO,gBAAgB,KAAG,gBAAgB,CAAC,mBAAmB,CAcjG,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,SAAS,MAAM,EACf,MAAM,oBAAoB,EAC1B,QAAQ,MAAM,KACb,MAAM,GAAG,IAIX,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,OAAO,gBAAgB,EACvB,aAAa,MAAM,EACnB,SAAS,MAAM,KACd,IAMF,CAAC"}