@forgedevstack/ink 1.1.8 → 1.1.9

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 (116) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/components/InkEditor/InkEditor.cjs +1 -1
  3. package/dist/components/InkEditor/InkEditor.d.ts.map +1 -1
  4. package/dist/components/InkEditor/InkEditor.js +845 -830
  5. package/dist/components/InkEditor/components/ExcelSheetPanel/ExcelSheetPanel.cjs +1 -1
  6. package/dist/components/InkEditor/components/ExcelSheetPanel/ExcelSheetPanel.d.ts.map +1 -1
  7. package/dist/components/InkEditor/components/ExcelSheetPanel/ExcelSheetPanel.js +96 -82
  8. package/dist/components/InkEditor/components/PresenceStack/PresenceStack.cjs +1 -0
  9. package/dist/components/InkEditor/components/PresenceStack/PresenceStack.const.cjs +1 -0
  10. package/dist/components/InkEditor/components/PresenceStack/PresenceStack.const.d.ts +7 -0
  11. package/dist/components/InkEditor/components/PresenceStack/PresenceStack.const.d.ts.map +1 -0
  12. package/dist/components/InkEditor/components/PresenceStack/PresenceStack.const.js +9 -0
  13. package/dist/components/InkEditor/components/PresenceStack/PresenceStack.d.ts +4 -0
  14. package/dist/components/InkEditor/components/PresenceStack/PresenceStack.d.ts.map +1 -0
  15. package/dist/components/InkEditor/components/PresenceStack/PresenceStack.js +82 -0
  16. package/dist/components/InkEditor/components/PresenceStack/PresenceStack.types.d.ts +8 -0
  17. package/dist/components/InkEditor/components/PresenceStack/PresenceStack.types.d.ts.map +1 -0
  18. package/dist/components/InkEditor/components/PresenceStack/index.d.ts +3 -0
  19. package/dist/components/InkEditor/components/PresenceStack/index.d.ts.map +1 -0
  20. package/dist/components/InkEditor/components/RemoteCursors/RemoteCursors.cjs +1 -0
  21. package/dist/components/InkEditor/components/RemoteCursors/RemoteCursors.const.cjs +1 -0
  22. package/dist/components/InkEditor/components/RemoteCursors/RemoteCursors.const.d.ts +7 -0
  23. package/dist/components/InkEditor/components/RemoteCursors/RemoteCursors.const.d.ts.map +1 -0
  24. package/dist/components/InkEditor/components/RemoteCursors/RemoteCursors.const.js +10 -0
  25. package/dist/components/InkEditor/components/RemoteCursors/RemoteCursors.d.ts +4 -0
  26. package/dist/components/InkEditor/components/RemoteCursors/RemoteCursors.d.ts.map +1 -0
  27. package/dist/components/InkEditor/components/RemoteCursors/RemoteCursors.js +65 -0
  28. package/dist/components/InkEditor/components/RemoteCursors/RemoteCursors.types.d.ts +6 -0
  29. package/dist/components/InkEditor/components/RemoteCursors/RemoteCursors.types.d.ts.map +1 -0
  30. package/dist/components/InkEditor/components/RemoteCursors/index.d.ts +3 -0
  31. package/dist/components/InkEditor/components/RemoteCursors/index.d.ts.map +1 -0
  32. package/dist/components/InkEditor/components/TableSizePicker/TableSizePicker.cjs +1 -1
  33. package/dist/components/InkEditor/components/TableSizePicker/TableSizePicker.js +35 -34
  34. package/dist/components/InkEditor/components/ThemePicker/ThemePicker.cjs +1 -1
  35. package/dist/components/InkEditor/components/ThemePicker/ThemePicker.d.ts.map +1 -1
  36. package/dist/components/InkEditor/components/ThemePicker/ThemePicker.js +39 -55
  37. package/dist/components/InkEditor/components/ThemePicker/hooks/index.d.ts +3 -0
  38. package/dist/components/InkEditor/components/ThemePicker/hooks/index.d.ts.map +1 -0
  39. package/dist/components/InkEditor/components/ThemePicker/hooks/useThemePickerMenu.cjs +1 -0
  40. package/dist/components/InkEditor/components/ThemePicker/hooks/useThemePickerMenu.d.ts +13 -0
  41. package/dist/components/InkEditor/components/ThemePicker/hooks/useThemePickerMenu.d.ts.map +1 -0
  42. package/dist/components/InkEditor/components/ThemePicker/hooks/useThemePickerMenu.js +39 -0
  43. package/dist/components/InkEditor/components/index.d.ts +4 -0
  44. package/dist/components/InkEditor/components/index.d.ts.map +1 -1
  45. package/dist/components/InkTabs/InkTabs.cjs +1 -0
  46. package/dist/components/InkTabs/InkTabs.d.ts +4 -0
  47. package/dist/components/InkTabs/InkTabs.d.ts.map +1 -0
  48. package/dist/components/InkTabs/InkTabs.js +104 -0
  49. package/dist/components/InkTabs/index.d.ts +2 -0
  50. package/dist/components/InkTabs/index.d.ts.map +1 -0
  51. package/dist/components/InkWorkspace/InkWorkspace.cjs +1 -0
  52. package/dist/components/InkWorkspace/InkWorkspace.d.ts +4 -0
  53. package/dist/components/InkWorkspace/InkWorkspace.d.ts.map +1 -0
  54. package/dist/components/InkWorkspace/InkWorkspace.js +317 -0
  55. package/dist/components/InkWorkspace/components/WorkspaceIcons.cjs +1 -0
  56. package/dist/components/InkWorkspace/components/WorkspaceIcons.d.ts +11 -0
  57. package/dist/components/InkWorkspace/components/WorkspaceIcons.d.ts.map +1 -0
  58. package/dist/components/InkWorkspace/components/WorkspaceIcons.js +39 -0
  59. package/dist/components/InkWorkspace/hooks/useInkWorkspace.cjs +1 -0
  60. package/dist/components/InkWorkspace/hooks/useInkWorkspace.d.ts +30 -0
  61. package/dist/components/InkWorkspace/hooks/useInkWorkspace.d.ts.map +1 -0
  62. package/dist/components/InkWorkspace/hooks/useInkWorkspace.js +72 -0
  63. package/dist/components/InkWorkspace/index.d.ts +4 -0
  64. package/dist/components/InkWorkspace/index.d.ts.map +1 -0
  65. package/dist/components/index.d.ts +2 -0
  66. package/dist/components/index.d.ts.map +1 -1
  67. package/dist/constants/collab.const.cjs +1 -0
  68. package/dist/constants/collab.const.d.ts +20 -0
  69. package/dist/constants/collab.const.d.ts.map +1 -0
  70. package/dist/constants/collab.const.js +54 -0
  71. package/dist/constants/index.d.ts +2 -0
  72. package/dist/constants/index.d.ts.map +1 -1
  73. package/dist/constants/numbers.cjs +1 -1
  74. package/dist/constants/numbers.js +42 -37
  75. package/dist/constants/workspace.const.cjs +1 -0
  76. package/dist/constants/workspace.const.d.ts +24 -0
  77. package/dist/constants/workspace.const.d.ts.map +1 -0
  78. package/dist/constants/workspace.const.js +23 -0
  79. package/dist/hooks/index.d.ts +2 -0
  80. package/dist/hooks/index.d.ts.map +1 -1
  81. package/dist/hooks/useInkCollaboration.cjs +1 -0
  82. package/dist/hooks/useInkCollaboration.d.ts +4 -0
  83. package/dist/hooks/useInkCollaboration.d.ts.map +1 -0
  84. package/dist/hooks/useInkCollaboration.js +86 -0
  85. package/dist/index.cjs +1 -1
  86. package/dist/index.d.ts +5 -3
  87. package/dist/index.d.ts.map +1 -1
  88. package/dist/index.js +150 -135
  89. package/dist/plugins/theme/inkTheme.cjs +1 -1
  90. package/dist/plugins/theme/inkTheme.js +19 -22
  91. package/dist/styles.css +1 -1
  92. package/dist/types/collab.types.d.ts +55 -0
  93. package/dist/types/collab.types.d.ts.map +1 -0
  94. package/dist/types/index.d.ts +2 -0
  95. package/dist/types/index.d.ts.map +1 -1
  96. package/dist/types/ink.types.d.ts +4 -0
  97. package/dist/types/ink.types.d.ts.map +1 -1
  98. package/dist/types/workspace.types.d.ts +54 -0
  99. package/dist/types/workspace.types.d.ts.map +1 -0
  100. package/dist/utils/collab.utils.cjs +1 -0
  101. package/dist/utils/collab.utils.d.ts +5 -0
  102. package/dist/utils/collab.utils.d.ts.map +1 -0
  103. package/dist/utils/collab.utils.js +32 -0
  104. package/dist/utils/collab.utils.test.d.ts +2 -0
  105. package/dist/utils/collab.utils.test.d.ts.map +1 -0
  106. package/dist/utils/index.d.ts +2 -0
  107. package/dist/utils/index.d.ts.map +1 -1
  108. package/dist/utils/ink.brand.test.d.ts +2 -0
  109. package/dist/utils/ink.brand.test.d.ts.map +1 -0
  110. package/dist/utils/workspace.utils.cjs +1 -0
  111. package/dist/utils/workspace.utils.d.ts +5 -0
  112. package/dist/utils/workspace.utils.d.ts.map +1 -0
  113. package/dist/utils/workspace.utils.js +26 -0
  114. package/dist/utils/workspace.utils.test.d.ts +2 -0
  115. package/dist/utils/workspace.utils.test.d.ts.map +1 -0
  116. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -1,138 +1,153 @@
1
- import { InkEditor as t } from "./components/InkEditor/InkEditor.js";
2
- import { Box as I } from "./common-components/Box/Box.js";
3
- import { Button as E } from "./common-components/Button/Button.js";
4
- import { Canvas as p } from "./common-components/Canvas/Canvas.js";
5
- import { Field as A } from "./common-components/Field/Field.js";
6
- import { ContextMenu as l } from "./common-components/ContextMenu/ContextMenu.js";
7
- import { UndoIcon as N } from "./common-components/icons/UndoIcon.js";
8
- import { RedoIcon as f } from "./common-components/icons/RedoIcon.js";
9
- import { GripIcon as L } from "./common-components/icons/GripIcon.js";
1
+ import { InkEditor as I } from "./components/InkEditor/InkEditor.js";
2
+ import { InkTabs as m } from "./components/InkTabs/InkTabs.js";
3
+ import { InkWorkspace as T } from "./components/InkWorkspace/InkWorkspace.js";
4
+ import "react";
5
+ import { TOOLBAR_STORAGE_KEY_HIDDEN as l, TOOLBAR_STORAGE_KEY_ITEMS as O } from "./constants/toolbarMenu.const.js";
6
+ import { COLOR_MODE_DARK as A, COLOR_MODE_LIGHT as a, COLOR_MODE_SYSTEM as n, INK_DEFAULT_COLOR_MODE as x } from "./constants/colorMode.const.js";
7
+ import { TYPO_DICTIONARY as N } from "./constants/typos.const.js";
8
+ import { INK_FONT_OPTIONS as D } from "./constants/fonts.const.js";
9
+ import { INK_LIST_OPTIONS as P } from "./constants/lists.const.js";
10
+ import { INK_FIND_REPLACE_OPTIONS as s } from "./constants/findReplaceMenu.const.js";
11
+ import { INK_CHROME_TOOLBAR as c, INK_COLLAB_TOOLBAR as C, INK_DEFAULT_FEATURES as u, INK_DEFAULT_TOOLBAR as M, INK_HEADING_OPTIONS as b, INK_QUICK_ACTIONS as k, INK_SIMPLE_TOOLBAR as d, INK_SLASH_COMMANDS as H, INK_TRANSLATE_LANGUAGES as G } from "./constants/defaults.const.js";
12
+ import { INK_AI_DEMO_MODEL_ID as U, INK_AI_DEMO_PROVIDER_ID as h, INK_AI_MODEL_CATALOG as B } from "./constants/aiModels.const.js";
13
+ import { INK_AI_INK_SERVER_PROVIDER_ID as v, INK_AI_OPENAI_MODEL_GPT_4_1 as y, INK_AI_OPENAI_MODEL_GPT_4_1_MINI as V, INK_AI_OPENAI_PROVIDER_ID as Y, INK_AI_OPENAI_PROVIDER_NAME as w } from "./constants/openai.const.js";
14
+ import { INK_PREMIUM_FEATURES as W, INK_PREMIUM_LICENSE_PREFIX as X } from "./constants/premium.const.js";
15
+ import { INK_DEFAULT_ICONS as j } from "./constants/defaultIcons.js";
16
+ import { Box as J } from "./common-components/Box/Box.js";
17
+ import { Button as $ } from "./common-components/Button/Button.js";
18
+ import { Canvas as oe } from "./common-components/Canvas/Canvas.js";
19
+ import { Field as te } from "./common-components/Field/Field.js";
20
+ import { ContextMenu as _e } from "./common-components/ContextMenu/ContextMenu.js";
21
+ import { UndoIcon as Ee } from "./common-components/icons/UndoIcon.js";
22
+ import { RedoIcon as pe } from "./common-components/icons/RedoIcon.js";
23
+ import { GripIcon as Oe } from "./common-components/icons/GripIcon.js";
10
24
  import "react/jsx-runtime";
11
- import { cn as P } from "./utils/cn.utils.js";
12
- import { applyTypoAutoFix as S } from "./utils/typo.utils.js";
13
- import { createInkId as C } from "./utils/id.utils.js";
14
- import { buildTableHtml as c, deleteTableColumn as M, deleteTableRow as d, getTableCellFromSelection as u, insertTableColumn as H, insertTableRow as k, toggleTableHeaderRow as G } from "./utils/table.utils.js";
15
- import { TOOLBAR_STORAGE_KEY_HIDDEN as F, TOOLBAR_STORAGE_KEY_ITEMS as U } from "./constants/toolbarMenu.const.js";
16
- import { COLOR_MODE_DARK as B, COLOR_MODE_LIGHT as g, COLOR_MODE_SYSTEM as v, INK_DEFAULT_COLOR_MODE as y } from "./constants/colorMode.const.js";
17
- import { TYPO_DICTIONARY as Y } from "./constants/typos.const.js";
18
- import { INK_FONT_OPTIONS as z } from "./constants/fonts.const.js";
19
- import { INK_LIST_OPTIONS as Q } from "./constants/lists.const.js";
20
- import { INK_FIND_REPLACE_OPTIONS as j } from "./constants/findReplaceMenu.const.js";
21
- import { INK_CHROME_TOOLBAR as J, INK_COLLAB_TOOLBAR as Z, INK_DEFAULT_FEATURES as $, INK_DEFAULT_TOOLBAR as ee, INK_HEADING_OPTIONS as oe, INK_QUICK_ACTIONS as re, INK_SIMPLE_TOOLBAR as te, INK_SLASH_COMMANDS as _e, INK_TRANSLATE_LANGUAGES as Ie } from "./constants/defaults.const.js";
22
- import { INK_AI_DEMO_MODEL_ID as Ee, INK_AI_DEMO_PROVIDER_ID as Te, INK_AI_MODEL_CATALOG as pe } from "./constants/aiModels.const.js";
23
- import { INK_AI_INK_SERVER_PROVIDER_ID as Ae, INK_AI_OPENAI_MODEL_GPT_4_1 as ie, INK_AI_OPENAI_MODEL_GPT_4_1_MINI as le, INK_AI_OPENAI_PROVIDER_ID as xe, INK_AI_OPENAI_PROVIDER_NAME as Ne } from "./constants/openai.const.js";
24
- import { INK_PREMIUM_FEATURES as fe, INK_PREMIUM_LICENSE_PREFIX as Re } from "./constants/premium.const.js";
25
- import { INK_DEFAULT_ICONS as ae } from "./constants/defaultIcons.js";
26
- import { createTrackChange as De } from "./utils/trackChanges.utils.js";
27
- import { createCommentThread as Ke } from "./utils/comments.utils.js";
28
- import { InkHistoryStack as se } from "./utils/history.utils.js";
29
- import { hasInkPremiumFeature as Me, isInkPremiumLicenseKey as de, resolveInkPremium as ue, themeTokensToStyle as He } from "./utils/premium.utils.js";
30
- import { mintInkPremiumLicenseKey as Ge } from "./utils/license.utils.js";
31
- import { sanitizePastedHtml as Fe } from "./utils/paste.utils.js";
32
- import { captureSelectionInRoot as he, restoreSelectionInRoot as Be, withPreservedSelection as ge } from "./utils/selection.utils.js";
33
- import { buildVisibleToolbarItems as ye, listCustomizableToolbarOptions as Ve, normalizeToolbarItems as Ye } from "./utils/toolbarStorage.utils.js";
34
- import { createInkAiPlugin as ze, inkAi as Xe } from "./plugins/ai/aiPlugin.js";
35
- import { createDemoAiProvider as We } from "./plugins/ai/demoProvider.js";
36
- import { createOpenAiProvider as qe } from "./plugins/ai/openaiProvider.js";
37
- import { createInkServerAiProvider as Ze } from "./plugins/ai/inkServerProvider.js";
38
- import { createInkPluginHost as eo, inkPlugins as oo } from "./plugins/host/inkPlugins.js";
39
- import { TITLE_PREVIEW_TEXT as to, TITLE_STYLE_DEFAULT as _o, TITLE_STYLE_IDS as Io } from "./plugins/titles/titles.const.js";
40
- import { buildTitleHtml as Eo } from "./plugins/titles/titles.utils.js";
41
- import { CSV_ACCEPT as po, createEmptyExcelGrid as Oo, excelGridToTableHtml as Ao, parseCsvText as io, setExcelCell as lo } from "./plugins/excel/excel.utils.js";
42
- import { GRAPH_KINDS as No, GRAPH_KIND_DEFAULT as no, GRAPH_KIND_LABELS as fo, GRAPH_SAMPLE as Ro } from "./plugins/graph/graph.const.js";
43
- import { buildGraphHtml as ao, parseGraphColors as Po } from "./plugins/graph/graph.utils.js";
44
- import { INK_THEMES as So, THEME_DEFAULT as Ko } from "./plugins/theme/theme.const.js";
45
- import { applyInkTheme as so, createInkThemePlugin as co, inkTheme as Mo } from "./plugins/theme/inkTheme.js";
25
+ import { cn as Ae } from "./utils/cn.utils.js";
26
+ import { applyTypoAutoFix as ne } from "./utils/typo.utils.js";
27
+ import { createInkId as fe } from "./utils/id.utils.js";
28
+ import { buildTableHtml as Re, deleteTableColumn as De, deleteTableRow as Le, getTableCellFromSelection as Pe, insertTableColumn as Se, insertTableRow as se, toggleTableHeaderRow as Ke } from "./utils/table.utils.js";
29
+ import { createTrackChange as Ce } from "./utils/trackChanges.utils.js";
30
+ import { createCommentThread as Me } from "./utils/comments.utils.js";
31
+ import { InkHistoryStack as ke } from "./utils/history.utils.js";
32
+ import { hasInkPremiumFeature as He, isInkPremiumLicenseKey as Ge, resolveInkPremium as Fe, themeTokensToStyle as Ue } from "./utils/premium.utils.js";
33
+ import { mintInkPremiumLicenseKey as Be } from "./utils/license.utils.js";
34
+ import { sanitizePastedHtml as ve } from "./utils/paste.utils.js";
35
+ import { captureSelectionInRoot as Ve, restoreSelectionInRoot as Ye, withPreservedSelection as we } from "./utils/selection.utils.js";
36
+ import { buildVisibleToolbarItems as We, listCustomizableToolbarOptions as Xe, normalizeToolbarItems as Qe } from "./utils/toolbarStorage.utils.js";
37
+ import { createDefaultCollaborator as qe, filterActiveCollaborators as Je, getCollaboratorInitials as Ze } from "./utils/collab.utils.js";
38
+ import { createDefaultDocument as eo, filterDocuments as oo, sortDocuments as ro } from "./utils/workspace.utils.js";
39
+ import { createInkAiPlugin as Io, inkAi as _o } from "./plugins/ai/aiPlugin.js";
40
+ import { createDemoAiProvider as Eo } from "./plugins/ai/demoProvider.js";
41
+ import { createOpenAiProvider as po } from "./plugins/ai/openaiProvider.js";
42
+ import { createInkServerAiProvider as Oo } from "./plugins/ai/inkServerProvider.js";
43
+ import { createInkPluginHost as Ao, inkPlugins as ao } from "./plugins/host/inkPlugins.js";
44
+ import { TITLE_PREVIEW_TEXT as xo, TITLE_STYLE_DEFAULT as fo, TITLE_STYLE_IDS as No } from "./plugins/titles/titles.const.js";
45
+ import { buildTitleHtml as Do } from "./plugins/titles/titles.utils.js";
46
+ import { CSV_ACCEPT as Po, createEmptyExcelGrid as So, excelGridToTableHtml as so, parseCsvText as Ko, setExcelCell as co } from "./plugins/excel/excel.utils.js";
47
+ import { GRAPH_KINDS as uo, GRAPH_KIND_DEFAULT as Mo, GRAPH_KIND_LABELS as bo, GRAPH_SAMPLE as ko } from "./plugins/graph/graph.const.js";
48
+ import { buildGraphHtml as Go, parseGraphColors as Fo } from "./plugins/graph/graph.utils.js";
49
+ import { INK_THEMES as ho, THEME_DEFAULT as Bo } from "./plugins/theme/theme.const.js";
50
+ import { applyInkTheme as vo, createInkThemePlugin as yo, inkTheme as Vo } from "./plugins/theme/inkTheme.js";
51
+ import { useInkCollaboration as wo } from "./hooks/useInkCollaboration.js";
46
52
  export {
47
- I as Box,
48
- E as Button,
49
- B as COLOR_MODE_DARK,
50
- g as COLOR_MODE_LIGHT,
51
- v as COLOR_MODE_SYSTEM,
52
- po as CSV_ACCEPT,
53
- p as Canvas,
54
- l as ContextMenu,
55
- A as Field,
56
- No as GRAPH_KINDS,
57
- no as GRAPH_KIND_DEFAULT,
58
- fo as GRAPH_KIND_LABELS,
59
- Ro as GRAPH_SAMPLE,
60
- L as GripIcon,
61
- Ee as INK_AI_DEMO_MODEL_ID,
62
- Te as INK_AI_DEMO_PROVIDER_ID,
63
- Ae as INK_AI_INK_SERVER_PROVIDER_ID,
64
- pe as INK_AI_MODEL_CATALOG,
65
- ie as INK_AI_OPENAI_MODEL_GPT_4_1,
66
- le as INK_AI_OPENAI_MODEL_GPT_4_1_MINI,
67
- xe as INK_AI_OPENAI_PROVIDER_ID,
68
- Ne as INK_AI_OPENAI_PROVIDER_NAME,
69
- J as INK_CHROME_TOOLBAR,
70
- Z as INK_COLLAB_TOOLBAR,
71
- y as INK_DEFAULT_COLOR_MODE,
72
- $ as INK_DEFAULT_FEATURES,
73
- ae as INK_DEFAULT_ICONS,
74
- ee as INK_DEFAULT_TOOLBAR,
75
- j as INK_FIND_REPLACE_OPTIONS,
76
- z as INK_FONT_OPTIONS,
77
- oe as INK_HEADING_OPTIONS,
78
- Q as INK_LIST_OPTIONS,
79
- fe as INK_PREMIUM_FEATURES,
80
- Re as INK_PREMIUM_LICENSE_PREFIX,
81
- re as INK_QUICK_ACTIONS,
82
- te as INK_SIMPLE_TOOLBAR,
83
- _e as INK_SLASH_COMMANDS,
84
- So as INK_THEMES,
85
- Ie as INK_TRANSLATE_LANGUAGES,
86
- t as InkEditor,
87
- se as InkHistoryStack,
88
- f as RedoIcon,
89
- Ko as THEME_DEFAULT,
90
- to as TITLE_PREVIEW_TEXT,
91
- _o as TITLE_STYLE_DEFAULT,
92
- Io as TITLE_STYLE_IDS,
93
- F as TOOLBAR_STORAGE_KEY_HIDDEN,
94
- U as TOOLBAR_STORAGE_KEY_ITEMS,
95
- Y as TYPO_DICTIONARY,
96
- N as UndoIcon,
97
- so as applyInkTheme,
98
- S as applyTypoAutoFix,
99
- ao as buildGraphHtml,
100
- c as buildTableHtml,
101
- Eo as buildTitleHtml,
102
- ye as buildVisibleToolbarItems,
103
- he as captureSelectionInRoot,
104
- P as cn,
105
- Ke as createCommentThread,
106
- We as createDemoAiProvider,
107
- Oo as createEmptyExcelGrid,
108
- ze as createInkAiPlugin,
109
- C as createInkId,
110
- eo as createInkPluginHost,
111
- Ze as createInkServerAiProvider,
112
- co as createInkThemePlugin,
113
- qe as createOpenAiProvider,
114
- De as createTrackChange,
115
- M as deleteTableColumn,
116
- d as deleteTableRow,
117
- Ao as excelGridToTableHtml,
118
- u as getTableCellFromSelection,
119
- Me as hasInkPremiumFeature,
120
- Xe as inkAi,
121
- oo as inkPlugins,
122
- Mo as inkTheme,
123
- H as insertTableColumn,
124
- k as insertTableRow,
125
- de as isInkPremiumLicenseKey,
126
- Ve as listCustomizableToolbarOptions,
127
- Ge as mintInkPremiumLicenseKey,
128
- Ye as normalizeToolbarItems,
129
- io as parseCsvText,
130
- Po as parseGraphColors,
131
- ue as resolveInkPremium,
132
- Be as restoreSelectionInRoot,
133
- Fe as sanitizePastedHtml,
134
- lo as setExcelCell,
135
- He as themeTokensToStyle,
136
- G as toggleTableHeaderRow,
137
- ge as withPreservedSelection
53
+ J as Box,
54
+ $ as Button,
55
+ A as COLOR_MODE_DARK,
56
+ a as COLOR_MODE_LIGHT,
57
+ n as COLOR_MODE_SYSTEM,
58
+ Po as CSV_ACCEPT,
59
+ oe as Canvas,
60
+ _e as ContextMenu,
61
+ te as Field,
62
+ uo as GRAPH_KINDS,
63
+ Mo as GRAPH_KIND_DEFAULT,
64
+ bo as GRAPH_KIND_LABELS,
65
+ ko as GRAPH_SAMPLE,
66
+ Oe as GripIcon,
67
+ U as INK_AI_DEMO_MODEL_ID,
68
+ h as INK_AI_DEMO_PROVIDER_ID,
69
+ v as INK_AI_INK_SERVER_PROVIDER_ID,
70
+ B as INK_AI_MODEL_CATALOG,
71
+ y as INK_AI_OPENAI_MODEL_GPT_4_1,
72
+ V as INK_AI_OPENAI_MODEL_GPT_4_1_MINI,
73
+ Y as INK_AI_OPENAI_PROVIDER_ID,
74
+ w as INK_AI_OPENAI_PROVIDER_NAME,
75
+ c as INK_CHROME_TOOLBAR,
76
+ C as INK_COLLAB_TOOLBAR,
77
+ x as INK_DEFAULT_COLOR_MODE,
78
+ u as INK_DEFAULT_FEATURES,
79
+ j as INK_DEFAULT_ICONS,
80
+ M as INK_DEFAULT_TOOLBAR,
81
+ s as INK_FIND_REPLACE_OPTIONS,
82
+ D as INK_FONT_OPTIONS,
83
+ b as INK_HEADING_OPTIONS,
84
+ P as INK_LIST_OPTIONS,
85
+ W as INK_PREMIUM_FEATURES,
86
+ X as INK_PREMIUM_LICENSE_PREFIX,
87
+ k as INK_QUICK_ACTIONS,
88
+ d as INK_SIMPLE_TOOLBAR,
89
+ H as INK_SLASH_COMMANDS,
90
+ ho as INK_THEMES,
91
+ G as INK_TRANSLATE_LANGUAGES,
92
+ I as InkEditor,
93
+ ke as InkHistoryStack,
94
+ m as InkTabs,
95
+ T as InkWorkspace,
96
+ pe as RedoIcon,
97
+ Bo as THEME_DEFAULT,
98
+ xo as TITLE_PREVIEW_TEXT,
99
+ fo as TITLE_STYLE_DEFAULT,
100
+ No as TITLE_STYLE_IDS,
101
+ l as TOOLBAR_STORAGE_KEY_HIDDEN,
102
+ O as TOOLBAR_STORAGE_KEY_ITEMS,
103
+ N as TYPO_DICTIONARY,
104
+ Ee as UndoIcon,
105
+ vo as applyInkTheme,
106
+ ne as applyTypoAutoFix,
107
+ Go as buildGraphHtml,
108
+ Re as buildTableHtml,
109
+ Do as buildTitleHtml,
110
+ We as buildVisibleToolbarItems,
111
+ Ve as captureSelectionInRoot,
112
+ Ae as cn,
113
+ Me as createCommentThread,
114
+ qe as createDefaultCollaborator,
115
+ eo as createDefaultDocument,
116
+ Eo as createDemoAiProvider,
117
+ So as createEmptyExcelGrid,
118
+ Io as createInkAiPlugin,
119
+ fe as createInkId,
120
+ Ao as createInkPluginHost,
121
+ Oo as createInkServerAiProvider,
122
+ yo as createInkThemePlugin,
123
+ po as createOpenAiProvider,
124
+ Ce as createTrackChange,
125
+ De as deleteTableColumn,
126
+ Le as deleteTableRow,
127
+ so as excelGridToTableHtml,
128
+ Je as filterActiveCollaborators,
129
+ oo as filterDocuments,
130
+ Ze as getCollaboratorInitials,
131
+ Pe as getTableCellFromSelection,
132
+ He as hasInkPremiumFeature,
133
+ _o as inkAi,
134
+ ao as inkPlugins,
135
+ Vo as inkTheme,
136
+ Se as insertTableColumn,
137
+ se as insertTableRow,
138
+ Ge as isInkPremiumLicenseKey,
139
+ Xe as listCustomizableToolbarOptions,
140
+ Be as mintInkPremiumLicenseKey,
141
+ Qe as normalizeToolbarItems,
142
+ Ko as parseCsvText,
143
+ Fo as parseGraphColors,
144
+ Fe as resolveInkPremium,
145
+ Ye as restoreSelectionInRoot,
146
+ ve as sanitizePastedHtml,
147
+ co as setExcelCell,
148
+ ro as sortDocuments,
149
+ Ue as themeTokensToStyle,
150
+ Ke as toggleTableHeaderRow,
151
+ wo as useInkCollaboration,
152
+ we as withPreservedSelection
138
153
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../../constants/plugins.const.cjs"),s=require("../host/inkPlugins.cjs"),e=require("./theme.const.cjs");let i=e.THEME_DEFAULT;const T=(t,n)=>{if(i=n,!!t){if(n===e.THEME_ID_PAPER){t.removeAttribute(e.THEME_ATTR);return}t.setAttribute(e.THEME_ATTR,n)}},l=()=>({install:()=>{s.inkPlugins.install({id:r.PLUGIN_ID_THEME,label:"Theme",color:r.PLUGIN_COLOR_THEME,hint:"Paper theme for the editor"})},apply:T,list:()=>e.INK_THEMES,current:()=>i}),u=l();exports.applyInkTheme=T;exports.createInkThemePlugin=l;exports.inkTheme=u;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("../../constants/plugins.const.cjs"),c=require("../host/inkPlugins.cjs"),e=require("./theme.const.cjs");let s=e.THEME_DEFAULT;const l=(t,n)=>{if(s=n,!t)return;t.setAttribute(e.THEME_ATTR,n);const r=t.closest(".ink-workspace-root");r&&r.setAttribute(e.THEME_ATTR,n)},T=()=>({install:()=>{c.inkPlugins.install({id:i.PLUGIN_ID_THEME,label:"Theme",color:i.PLUGIN_COLOR_THEME,hint:"Paper theme for the editor"})},apply:l,list:()=>e.INK_THEMES,current:()=>s}),o=T();exports.applyInkTheme=l;exports.createInkThemePlugin=T;exports.inkTheme=o;
@@ -1,30 +1,27 @@
1
- import { PLUGIN_COLOR_THEME as i, PLUGIN_ID_THEME as E } from "../../constants/plugins.const.js";
2
- import { inkPlugins as T } from "../host/inkPlugins.js";
3
- import { THEME_DEFAULT as l, INK_THEMES as m, THEME_ID_PAPER as o, THEME_ATTR as r } from "./theme.const.js";
4
- let n = l;
5
- const p = (e, t) => {
6
- if (n = t, !!e) {
7
- if (t === o) {
8
- e.removeAttribute(r);
9
- return;
10
- }
11
- e.setAttribute(r, t);
12
- }
13
- }, _ = () => ({
1
+ import { PLUGIN_COLOR_THEME as o, PLUGIN_ID_THEME as l } from "../../constants/plugins.const.js";
2
+ import { inkPlugins as s } from "../host/inkPlugins.js";
3
+ import { THEME_DEFAULT as T, INK_THEMES as m, THEME_ATTR as n } from "./theme.const.js";
4
+ let i = T;
5
+ const c = (e, t) => {
6
+ if (i = t, !e) return;
7
+ e.setAttribute(n, t);
8
+ const r = e.closest(".ink-workspace-root");
9
+ r && r.setAttribute(n, t);
10
+ }, p = () => ({
14
11
  install: () => {
15
- T.install({
16
- id: E,
12
+ s.install({
13
+ id: l,
17
14
  label: "Theme",
18
- color: i,
15
+ color: o,
19
16
  hint: "Paper theme for the editor"
20
17
  });
21
18
  },
22
- apply: p,
19
+ apply: c,
23
20
  list: () => m,
24
- current: () => n
25
- }), a = _();
21
+ current: () => i
22
+ }), k = p();
26
23
  export {
27
- p as applyInkTheme,
28
- _ as createInkThemePlugin,
29
- a as inkTheme
24
+ c as applyInkTheme,
25
+ p as createInkThemePlugin,
26
+ k as inkTheme
30
27
  };
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{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
+ :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=paper],.ink-workspace-root[data-ink-theme=paper]{--ink-border: #e6e2d8;--ink-bg: #fdfbf7;--ink-bg-subtle: #f7f4ee;--ink-toolbar: #f7f4ee;--ink-text: #2c2825;--ink-text-muted: #78716c;--ink-muted: #78716c;--ink-accent: #b45309;--ink-accent-soft: #fef3c7}.Ink-Editor[data-ink-theme=snow],.ink-workspace-root[data-ink-theme=snow]{--ink-border: #e5e7eb;--ink-bg: #ffffff;--ink-bg-subtle: #f8fafc;--ink-toolbar: #f9fafb;--ink-text: #111827;--ink-text-muted: #6b7280;--ink-muted: #6b7280;--ink-accent: #0f766e;--ink-accent-soft: #ccfbf1}.Ink-Editor[data-ink-theme=ink],.ink-workspace-root[data-ink-theme=ink]{--ink-border: #d7dbe3;--ink-bg: #fbfcfe;--ink-bg-subtle: #f1f4fa;--ink-toolbar: #ffffff;--ink-text: #171b24;--ink-text-muted: #5c6370;--ink-muted: #5c6370;--ink-accent: #2951c4;--ink-accent-soft: #eaf0fe}.Ink-Editor[data-ink-theme=dark],.ink-workspace-root[data-ink-theme=dark]{color-scheme:dark;--ink-border: #3f3f46;--ink-bg: #18181b;--ink-bg-subtle: #27272a;--ink-toolbar: #27272a;--ink-text: #f4f4f5;--ink-text-muted: #a1a1aa;--ink-muted: #a1a1aa;--ink-accent: #7b97ea;--ink-accent-soft: rgba(41, 81, 196, 0.25);--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}.ink-tabs-container{display:flex;align-items:center;gap:.25rem;background:var(--ink-bg-subtle, #f8fafc);border-bottom:1px solid var(--ink-border);padding:.35rem .5rem 0;overflow-x:auto;scrollbar-width:thin}.ink-tabs-scroll-area{display:flex;align-items:center;gap:.25rem;flex:1 1 auto;min-width:0}.ink-tab-item{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .75rem;font-size:.8125rem;font-weight:500;color:var(--ink-text-muted, #64748b);background:rgba(0,0,0,0);border-top-left-radius:.375rem;border-top-right-radius:.375rem;border:1px solid rgba(0,0,0,0);border-bottom:none;cursor:pointer;user-select:none;transition:all .15s ease-in-out;white-space:nowrap;max-width:200px}.ink-tab-item:hover{background:var(--ink-bg, #ffffff);color:var(--ink-text)}.ink-tab-item.ink-tab-active{background:var(--ink-bg, #ffffff);color:var(--ink-text);border-color:var(--ink-border);box-shadow:0 -1px 2px rgba(0,0,0,.03)}.ink-tab-icon{display:inline-flex;align-items:center;color:currentColor;opacity:.75}.ink-tab-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ink-tab-title-input{font:inherit;font-size:.8125rem;padding:0 .25rem;border:1px solid var(--ink-accent, #3b82f6);border-radius:.2rem;background:var(--ink-bg, #ffffff);color:inherit;outline:none;width:100px}.ink-tab-dirty-indicator{width:6px;height:6px;border-radius:50%;background:var(--ink-accent, #3b82f6);flex-shrink:0}.ink-tab-close-btn,.ink-tab-add-btn{display:inline-flex;align-items:center;justify-content:center;background:rgba(0,0,0,0);border:none;border-radius:.25rem;padding:.15rem;cursor:pointer;color:inherit;opacity:.6;transition:opacity .15s}.ink-tab-close-btn:hover,.ink-tab-add-btn:hover{opacity:1;background:rgba(0,0,0,.06)}.ink-tab-add-btn{padding:.35rem .5rem;margin-bottom:.1rem}.ink-presence-stack{display:inline-flex;align-items:center;margin-left:auto;padding-left:.5rem}.ink-presence-avatars{display:inline-flex;align-items:center}.ink-presence-avatar-btn{position:relative;width:26px;height:26px;border-radius:50%;border:2px solid var(--ink-bg, #ffffff);display:inline-flex;align-items:center;justify-content:center;margin-left:-6px;padding:0;cursor:pointer;color:#fff;font-size:.6875rem;font-weight:700;box-shadow:0 1px 3px rgba(0,0,0,.1);transition:transform .15s ease}.ink-presence-avatar-btn:first-child{margin-left:0}.ink-presence-avatar-btn:hover{transform:translateY(-2px) scale(1.1);z-index:10}.ink-presence-avatar-img{width:100%;height:100%;border-radius:50%;object-fit:cover}.ink-presence-status-dot{position:absolute;bottom:-1px;right:-1px;width:7px;height:7px;border-radius:50%;border:1.5px solid var(--ink-bg, #ffffff)}.ink-presence-status-dot.ink-presence-active{background:#10b981}.ink-presence-status-dot.ink-presence-idle{background:#f59e0b}.ink-presence-avatar-overflow{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;border:2px solid var(--ink-bg, #ffffff);background:#64748b;color:#fff;font-size:.625rem;font-weight:700;margin-left:-6px}.ink-remote-cursors-layer{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:5;overflow:hidden}.ink-remote-cursor-item{position:absolute;transition:top .1s ease-out,left .1s ease-out}.ink-remote-cursor-caret{width:2px;height:22px;border-radius:1px}.ink-remote-cursor-tag{position:absolute;top:-18px;left:0;padding:1px 5px;border-radius:3px;font-size:.625rem;font-weight:600;color:#fff;white-space:nowrap;pointer-events:none;box-shadow:0 1px 2px rgba(0,0,0,.15)}.ink-workspace-root{display:flex;flex-direction:column;width:100%;height:100%;min-height:520px;border:1px solid var(--ink-border);border-radius:var(--ink-radius, 8px);background:var(--ink-bg, #ffffff);overflow:hidden}.ink-workspace-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;background:var(--ink-bg-subtle, #f8fafc);border-bottom:1px solid var(--ink-border)}.ink-workspace-header-left,.ink-workspace-header-right{display:flex;align-items:center;gap:.5rem}.ink-workspace-title{font-weight:600;font-size:.875rem;color:var(--ink-text)}.ink-workspace-count{font-size:.75rem;color:var(--ink-text-muted, #64748b)}.ink-workspace-toggle-btn,.ink-workspace-icon-btn{display:inline-flex;align-items:center;justify-content:center;background:rgba(0,0,0,0);border:1px solid rgba(0,0,0,0);border-radius:.375rem;padding:.25rem .4rem;color:var(--ink-text-muted, #64748b);cursor:pointer;transition:all .15s}.ink-workspace-toggle-btn:hover,.ink-workspace-icon-btn:hover{background:rgba(0,0,0,.05);color:var(--ink-text)}.ink-workspace-icon-btn.ink-active{background:var(--ink-bg, #ffffff);color:var(--ink-accent, #3b82f6);border-color:var(--ink-border);box-shadow:0 1px 2px rgba(0,0,0,.05)}.ink-workspace-body{display:flex;flex:1 1 auto;min-height:0;overflow:hidden}.ink-workspace-sidebar{width:230px;flex-shrink:0;background:var(--ink-bg-subtle, #f8fafc);border-right:1px solid var(--ink-border);display:flex;flex-direction:column}.ink-workspace-sidebar-toolbar{display:flex;align-items:center;gap:.35rem;padding:.5rem;border-bottom:1px solid var(--ink-border)}.ink-workspace-search-input{flex:1 1 auto;min-width:0;font-size:.75rem;padding:.3rem .5rem;border:1px solid var(--ink-border);border-radius:.25rem;background:var(--ink-bg, #ffffff);color:inherit;outline:none}.ink-workspace-new-doc-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:.25rem;background:var(--ink-accent, #3b82f6);color:#fff;border:none;cursor:pointer;font-weight:700;font-size:.95rem;line-height:1;transition:opacity .15s}.ink-workspace-new-doc-btn:hover{opacity:.9}.ink-workspace-doc-list{flex:1 1 auto;overflow-y:auto;padding:.35rem}.ink-workspace-doc-item{display:flex;align-items:center;gap:.35rem;padding:.4rem .5rem;border-radius:.375rem;cursor:pointer;font-size:.8125rem;color:var(--ink-text-muted, #64748b);transition:background .15s}.ink-workspace-doc-item:hover{background:rgba(0,0,0,.04);color:var(--ink-text)}.ink-workspace-doc-item.ink-doc-active{background:var(--ink-accent-soft, #eff6ff);color:var(--ink-accent, #2563eb);font-weight:600}.ink-doc-icon{display:inline-flex;align-items:center;opacity:.75}.ink-doc-title{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ink-doc-title-input{flex:1 1 auto;font:inherit;font-size:.8125rem;padding:0 .2rem;border:1px solid var(--ink-accent, #3b82f6);border-radius:.2rem;background:var(--ink-bg, #ffffff);color:inherit;outline:none}.ink-doc-dirty-dot{width:5px;height:5px;border-radius:50%;background:var(--ink-accent, #3b82f6);flex-shrink:0}.ink-doc-actions{display:flex;align-items:center;gap:.15rem;opacity:0;transition:opacity .15s}.ink-workspace-doc-item:hover .ink-doc-actions{opacity:1}.ink-doc-action-btn{display:inline-flex;align-items:center;justify-content:center;background:rgba(0,0,0,0);border:none;border-radius:.2rem;padding:.15rem;cursor:pointer;color:inherit;opacity:.7}.ink-doc-action-btn:hover{opacity:1;background:rgba(0,0,0,.08)}.ink-doc-action-btn.ink-delete:hover{color:#ef4444}.ink-workspace-main-area{display:flex;flex:1 1 auto;min-width:0;overflow:hidden}.ink-workspace-pane{display:flex;flex-direction:column;flex:1 1 50%;min-width:0;overflow:hidden}.ink-workspace-main-area.ink-split-vertical{flex-direction:row}.ink-workspace-main-area.ink-split-vertical .ink-primary-pane{border-right:1px solid var(--ink-border)}.ink-workspace-main-area.ink-split-horizontal{flex-direction:column}.ink-workspace-main-area.ink-split-horizontal .ink-primary-pane{border-bottom:1px solid var(--ink-border)}.ink-secondary-pane-header{display:flex;align-items:center;gap:.5rem;padding:.35rem .75rem;background:var(--ink-bg-subtle, #f8fafc);border-bottom:1px solid var(--ink-border)}.ink-secondary-pane-label{font-size:.75rem;font-weight:600;color:var(--ink-text-muted, #64748b)}.ink-secondary-pane-select{font-size:.75rem;padding:.2rem .4rem;border:1px solid var(--ink-border);border-radius:.25rem;background:var(--ink-bg, #ffffff);color:var(--ink-text);outline:none}.ink-workspace-editor-wrapper{flex:1 1 auto;overflow:auto;position:relative}.ink-workspace-editor-wrapper .Ink-Editor{border:none;border-radius:0;box-shadow:none;height:100%}
@@ -0,0 +1,55 @@
1
+ export interface InkCollaboratorCursorSelection {
2
+ start: number;
3
+ end: number;
4
+ text?: string;
5
+ }
6
+ export interface InkCollaboratorCursor {
7
+ blockId?: string;
8
+ line?: number;
9
+ col?: number;
10
+ offset?: number;
11
+ selection?: InkCollaboratorCursorSelection;
12
+ }
13
+ export type InkCollaboratorRole = 'editor' | 'commenter' | 'viewer';
14
+ export type InkCollaboratorStatus = 'active' | 'idle' | 'offline';
15
+ export interface InkCollaborator {
16
+ id: string;
17
+ name: string;
18
+ color: string;
19
+ avatarUrl?: string;
20
+ cursor?: InkCollaboratorCursor;
21
+ status?: InkCollaboratorStatus;
22
+ lastActive?: number;
23
+ role?: InkCollaboratorRole;
24
+ }
25
+ export interface InkCollaborationConfig {
26
+ enabled?: boolean;
27
+ roomId?: string;
28
+ user?: InkCollaborator;
29
+ collaborators?: InkCollaborator[];
30
+ onCollaboratorsChange?: (collaborators: InkCollaborator[]) => void;
31
+ onBroadcastCursor?: (cursor: InkCollaboratorCursor) => void;
32
+ onFollow?: (collaborator: InkCollaborator) => void;
33
+ showPresenceStack?: boolean;
34
+ showRemoteCursors?: boolean;
35
+ maxAvatars?: number;
36
+ serverUrl?: string;
37
+ }
38
+ export interface UseInkCollaborationOptions {
39
+ roomId?: string;
40
+ user?: InkCollaborator;
41
+ initialCollaborators?: InkCollaborator[];
42
+ serverUrl?: string;
43
+ simulateDemo?: boolean;
44
+ }
45
+ export interface UseInkCollaborationReturn {
46
+ collaborators: InkCollaborator[];
47
+ isConnected: boolean;
48
+ broadcastCursor: (cursor: InkCollaboratorCursor) => void;
49
+ broadcastSelection: (start: number, end: number, text?: string) => void;
50
+ addCollaborator: (collaborator: InkCollaborator) => void;
51
+ removeCollaborator: (id: string) => void;
52
+ updateCollaboratorStatus: (id: string, status: InkCollaboratorStatus) => void;
53
+ setCollaborators: (collaborators: InkCollaborator[] | ((prev: InkCollaborator[]) => InkCollaborator[])) => void;
54
+ }
55
+ //# sourceMappingURL=collab.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collab.types.d.ts","sourceRoot":"","sources":["../../src/types/collab.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,8BAA8B;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,8BAA8B,CAAC;CAC5C;AAED,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAC;AACpE,MAAM,MAAM,qBAAqB,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;AAElE,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,qBAAqB,CAAC;IAC/B,MAAM,CAAC,EAAE,qBAAqB,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,mBAAmB,CAAC;CAC5B;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,aAAa,CAAC,EAAE,eAAe,EAAE,CAAC;IAClC,qBAAqB,CAAC,EAAE,CAAC,aAAa,EAAE,eAAe,EAAE,KAAK,IAAI,CAAC;IACnE,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAC5D,QAAQ,CAAC,EAAE,CAAC,YAAY,EAAE,eAAe,KAAK,IAAI,CAAC;IACnD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,0BAA0B;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,oBAAoB,CAAC,EAAE,eAAe,EAAE,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,yBAAyB;IACxC,aAAa,EAAE,eAAe,EAAE,CAAC;IACjC,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,IAAI,CAAC;IACzD,kBAAkB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACxE,eAAe,EAAE,CAAC,YAAY,EAAE,eAAe,KAAK,IAAI,CAAC;IACzD,kBAAkB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,wBAAwB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAC9E,gBAAgB,EAAE,CAAC,aAAa,EAAE,eAAe,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,eAAe,EAAE,CAAC,KAAK,IAAI,CAAC;CACjH"}
@@ -6,4 +6,6 @@ export type { InkFeatureName, InkFeaturesConfig, InkEditorVariant, InkEditorChro
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
8
  export type { InkHostPlugin, InkHostPluginId } from './plugin.types';
9
+ export type { InkCollaborator, InkCollaboratorCursor, InkCollaboratorCursorSelection, InkCollaboratorRole, InkCollaboratorStatus, InkCollaborationConfig, UseInkCollaborationOptions, UseInkCollaborationReturn, } from './collab.types';
10
+ export type { InkDocument, InkFolder, InkSplitMode, InkTabsProps, InkWorkspaceProps, } from './workspace.types';
9
11
  //# sourceMappingURL=index.d.ts.map