@forgedevstack/ink 1.0.1 → 1.1.1

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 (134) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/README.md +78 -122
  3. package/dist/components/InkEditor/InkEditor.cjs +1 -1
  4. package/dist/components/InkEditor/InkEditor.d.ts.map +1 -1
  5. package/dist/components/InkEditor/InkEditor.js +524 -172
  6. package/dist/components/InkEditor/components/AiPanel/AiPanel.cjs +1 -0
  7. package/dist/components/InkEditor/components/AiPanel/AiPanel.d.ts +11 -0
  8. package/dist/components/InkEditor/components/AiPanel/AiPanel.d.ts.map +1 -0
  9. package/dist/components/InkEditor/components/AiPanel/AiPanel.js +179 -0
  10. package/dist/components/InkEditor/components/AiPanel/index.d.ts +3 -0
  11. package/dist/components/InkEditor/components/AiPanel/index.d.ts.map +1 -0
  12. package/dist/components/InkEditor/components/BlockHandles/BlockHandles.cjs +1 -0
  13. package/dist/components/InkEditor/components/BlockHandles/BlockHandles.d.ts +9 -0
  14. package/dist/components/InkEditor/components/BlockHandles/BlockHandles.d.ts.map +1 -0
  15. package/dist/components/InkEditor/components/BlockHandles/BlockHandles.js +12 -0
  16. package/dist/components/InkEditor/components/BlockHandles/index.d.ts +3 -0
  17. package/dist/components/InkEditor/components/BlockHandles/index.d.ts.map +1 -0
  18. package/dist/components/InkEditor/components/CommentsPanel/CommentsPanel.cjs +1 -0
  19. package/dist/components/InkEditor/components/CommentsPanel/CommentsPanel.d.ts +11 -0
  20. package/dist/components/InkEditor/components/CommentsPanel/CommentsPanel.d.ts.map +1 -0
  21. package/dist/components/InkEditor/components/CommentsPanel/CommentsPanel.js +61 -0
  22. package/dist/components/InkEditor/components/CommentsPanel/index.d.ts +3 -0
  23. package/dist/components/InkEditor/components/CommentsPanel/index.d.ts.map +1 -0
  24. package/dist/components/InkEditor/components/SlashMenu/SlashMenu.cjs +1 -0
  25. package/dist/components/InkEditor/components/SlashMenu/SlashMenu.d.ts +10 -0
  26. package/dist/components/InkEditor/components/SlashMenu/SlashMenu.d.ts.map +1 -0
  27. package/dist/components/InkEditor/components/SlashMenu/SlashMenu.js +20 -0
  28. package/dist/components/InkEditor/components/SlashMenu/index.d.ts +3 -0
  29. package/dist/components/InkEditor/components/SlashMenu/index.d.ts.map +1 -0
  30. package/dist/components/InkEditor/components/ToolbarButton/ToolbarButton.cjs +1 -1
  31. package/dist/components/InkEditor/components/ToolbarButton/ToolbarButton.js +3 -2
  32. package/dist/components/InkEditor/components/TrackChangesBar/TrackChangesBar.cjs +1 -0
  33. package/dist/components/InkEditor/components/TrackChangesBar/TrackChangesBar.d.ts +11 -0
  34. package/dist/components/InkEditor/components/TrackChangesBar/TrackChangesBar.d.ts.map +1 -0
  35. package/dist/components/InkEditor/components/TrackChangesBar/TrackChangesBar.js +27 -0
  36. package/dist/components/InkEditor/components/TrackChangesBar/index.d.ts +3 -0
  37. package/dist/components/InkEditor/components/TrackChangesBar/index.d.ts.map +1 -0
  38. package/dist/components/InkEditor/components/index.d.ts +5 -0
  39. package/dist/components/InkEditor/components/index.d.ts.map +1 -1
  40. package/dist/constants/aiModels.const.cjs +1 -0
  41. package/dist/constants/aiModels.const.d.ts +5 -0
  42. package/dist/constants/aiModels.const.d.ts.map +1 -0
  43. package/dist/constants/aiModels.const.js +31 -0
  44. package/dist/constants/defaults.const.cjs +1 -1
  45. package/dist/constants/defaults.const.d.ts +32 -1
  46. package/dist/constants/defaults.const.d.ts.map +1 -1
  47. package/dist/constants/defaults.const.js +124 -20
  48. package/dist/constants/index.d.ts +2 -0
  49. package/dist/constants/index.d.ts.map +1 -1
  50. package/dist/constants/numbers.const.cjs +1 -1
  51. package/dist/constants/numbers.const.d.ts +13 -0
  52. package/dist/constants/numbers.const.d.ts.map +1 -1
  53. package/dist/constants/numbers.const.js +13 -3
  54. package/dist/constants/premium.const.cjs +1 -0
  55. package/dist/constants/premium.const.d.ts +8 -0
  56. package/dist/constants/premium.const.d.ts.map +1 -0
  57. package/dist/constants/premium.const.js +97 -0
  58. package/dist/index.cjs +1 -1
  59. package/dist/index.d.ts +3 -3
  60. package/dist/index.d.ts.map +1 -1
  61. package/dist/index.js +43 -11
  62. package/dist/plugins/ai/aiPlugin.cjs +1 -1
  63. package/dist/plugins/ai/aiPlugin.d.ts.map +1 -1
  64. package/dist/plugins/ai/aiPlugin.js +40 -18
  65. package/dist/plugins/ai/demoProvider.cjs +1 -0
  66. package/dist/plugins/ai/demoProvider.d.ts +3 -0
  67. package/dist/plugins/ai/demoProvider.d.ts.map +1 -0
  68. package/dist/plugins/ai/demoProvider.js +130 -0
  69. package/dist/plugins/ai/index.cjs +1 -1
  70. package/dist/plugins/ai/index.d.ts +4 -1
  71. package/dist/plugins/ai/index.d.ts.map +1 -1
  72. package/dist/plugins/ai/index.js +15 -3
  73. package/dist/plugins/ai/stubs.cjs +1 -0
  74. package/dist/plugins/ai/stubs.d.ts +7 -0
  75. package/dist/plugins/ai/stubs.d.ts.map +1 -0
  76. package/dist/plugins/ai/stubs.js +23 -0
  77. package/dist/styles.css +486 -19
  78. package/dist/types/ai.types.d.ts +111 -2
  79. package/dist/types/ai.types.d.ts.map +1 -1
  80. package/dist/types/comments.types.d.ts +17 -0
  81. package/dist/types/comments.types.d.ts.map +1 -0
  82. package/dist/types/features.types.d.ts +5 -0
  83. package/dist/types/features.types.d.ts.map +1 -0
  84. package/dist/types/index.d.ts +6 -2
  85. package/dist/types/index.d.ts.map +1 -1
  86. package/dist/types/ink.types.d.ts +33 -1
  87. package/dist/types/ink.types.d.ts.map +1 -1
  88. package/dist/types/premium.types.d.ts +30 -0
  89. package/dist/types/premium.types.d.ts.map +1 -0
  90. package/dist/types/trackChanges.types.d.ts +12 -0
  91. package/dist/types/trackChanges.types.d.ts.map +1 -0
  92. package/dist/utils/blocks.utils.cjs +1 -0
  93. package/dist/utils/blocks.utils.d.ts +4 -0
  94. package/dist/utils/blocks.utils.d.ts.map +1 -0
  95. package/dist/utils/blocks.utils.js +41 -0
  96. package/dist/utils/comments.utils.cjs +1 -0
  97. package/dist/utils/comments.utils.d.ts +5 -0
  98. package/dist/utils/comments.utils.d.ts.map +1 -0
  99. package/dist/utils/comments.utils.js +32 -0
  100. package/dist/utils/history.utils.cjs +1 -0
  101. package/dist/utils/history.utils.d.ts +13 -0
  102. package/dist/utils/history.utils.d.ts.map +1 -0
  103. package/dist/utils/history.utils.js +29 -0
  104. package/dist/utils/id.utils.cjs +1 -0
  105. package/dist/utils/id.utils.d.ts +2 -0
  106. package/dist/utils/id.utils.d.ts.map +1 -0
  107. package/dist/utils/id.utils.js +4 -0
  108. package/dist/utils/index.d.ts +10 -0
  109. package/dist/utils/index.d.ts.map +1 -1
  110. package/dist/utils/license.utils.cjs +1 -0
  111. package/dist/utils/license.utils.d.ts +2 -0
  112. package/dist/utils/license.utils.d.ts.map +1 -0
  113. package/dist/utils/license.utils.js +16 -0
  114. package/dist/utils/paste.utils.cjs +1 -0
  115. package/dist/utils/paste.utils.d.ts +4 -0
  116. package/dist/utils/paste.utils.d.ts.map +1 -0
  117. package/dist/utils/paste.utils.js +31 -0
  118. package/dist/utils/premium.utils.cjs +1 -0
  119. package/dist/utils/premium.utils.d.ts +6 -0
  120. package/dist/utils/premium.utils.d.ts.map +1 -0
  121. package/dist/utils/premium.utils.js +30 -0
  122. package/dist/utils/slash.utils.cjs +1 -0
  123. package/dist/utils/slash.utils.d.ts +4 -0
  124. package/dist/utils/slash.utils.d.ts.map +1 -0
  125. package/dist/utils/slash.utils.js +13 -0
  126. package/dist/utils/table.utils.cjs +1 -0
  127. package/dist/utils/table.utils.d.ts +2 -0
  128. package/dist/utils/table.utils.d.ts.map +1 -0
  129. package/dist/utils/table.utils.js +13 -0
  130. package/dist/utils/trackChanges.utils.cjs +1 -0
  131. package/dist/utils/trackChanges.utils.d.ts +7 -0
  132. package/dist/utils/trackChanges.utils.d.ts.map +1 -0
  133. package/dist/utils/trackChanges.utils.js +34 -0
  134. package/package.json +2 -2
package/dist/styles.css CHANGED
@@ -1,17 +1,50 @@
1
1
  .Ink-Editor {
2
2
  --ink-border: #e5e7eb;
3
3
  --ink-bg: #ffffff;
4
- --ink-toolbar: #f9fafb;
5
- --ink-text: #111827;
6
- --ink-muted: #6b7280;
7
- --ink-accent: #0f766e;
4
+ --ink-toolbar: #f8fafc;
5
+ --ink-text: #0f172a;
6
+ --ink-muted: #64748b;
7
+ --ink-accent: #0d9488;
8
8
  --ink-accent-soft: #ccfbf1;
9
+ --ink-shadow: 0 10px 40px rgb(15 23 42 / 0.08);
10
+ --ink-radius: 1rem;
11
+ --ink-font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
12
+ --ink-ai-accent: var(--ink-accent);
13
+ --ink-ai-surface: #f8fafc;
14
+ --ink-ai-border: var(--ink-border);
9
15
  border: 1px solid var(--ink-border);
10
- border-radius: 0.75rem;
16
+ border-radius: var(--ink-radius);
11
17
  overflow: hidden;
12
18
  background: var(--ink-bg);
13
19
  color: var(--ink-text);
14
- box-shadow: 0 1px 2px rgb(0 0 0 / 0.04);
20
+ box-shadow: var(--ink-shadow);
21
+ font-family: var(--ink-font-family);
22
+ }
23
+
24
+ .Ink-Editor[data-wysiwyg='true'] .Ink-Editor__content {
25
+ font-family: inherit;
26
+ line-height: 1.65;
27
+ }
28
+
29
+ .Ink-Editor[data-wysiwyg='true'] .Ink-Editor__content img {
30
+ max-width: 100%;
31
+ height: auto;
32
+ }
33
+
34
+ .Ink-Editor[data-wysiwyg='true'] .Ink-Editor__content table {
35
+ border-collapse: collapse;
36
+ width: 100%;
37
+ }
38
+
39
+ .Ink-Editor[data-wysiwyg='true'] .Ink-Editor__content th,
40
+ .Ink-Editor[data-wysiwyg='true'] .Ink-Editor__content td {
41
+ border: 1px solid var(--ink-border);
42
+ padding: 0.4rem 0.6rem;
43
+ }
44
+
45
+ .Ink-Editor[data-variant='document'] {
46
+ --ink-toolbar: #ffffff;
47
+ box-shadow: 0 4px 24px rgb(15 23 42 / 0.06);
15
48
  }
16
49
 
17
50
  .Ink-Editor[data-disabled='true'] {
@@ -23,8 +56,8 @@
23
56
  display: flex;
24
57
  flex-wrap: wrap;
25
58
  align-items: center;
26
- gap: 0.25rem;
27
- padding: 0.5rem;
59
+ gap: 0.2rem;
60
+ padding: 0.55rem 0.65rem;
28
61
  border-bottom: 1px solid var(--ink-border);
29
62
  background: var(--ink-toolbar);
30
63
  }
@@ -34,7 +67,7 @@
34
67
  border: 0;
35
68
  background: transparent;
36
69
  color: inherit;
37
- border-radius: 0.375rem;
70
+ border-radius: 0.45rem;
38
71
  cursor: pointer;
39
72
  }
40
73
 
@@ -42,12 +75,13 @@
42
75
  min-width: 2rem;
43
76
  height: 2rem;
44
77
  padding: 0 0.4rem;
45
- font-weight: 700;
78
+ font-weight: 650;
79
+ font-size: 0.85rem;
46
80
  }
47
81
 
48
82
  .Ink-Editor__button:hover,
49
83
  .Ink-Editor__select:hover {
50
- background: rgb(0 0 0 / 0.06);
84
+ background: rgb(15 23 42 / 0.05);
51
85
  }
52
86
 
53
87
  .Ink-Editor__button--active {
@@ -58,12 +92,19 @@
58
92
  .Ink-Editor__select {
59
93
  height: 2rem;
60
94
  padding: 0 0.5rem;
95
+ border: 1px solid transparent;
96
+ }
97
+
98
+ .Ink-Editor__select:focus {
99
+ outline: none;
100
+ border-color: var(--ink-accent);
101
+ background: #fff;
61
102
  }
62
103
 
63
104
  .Ink-Editor__divider {
64
105
  width: 1px;
65
106
  height: 1.25rem;
66
- margin: 0 0.25rem;
107
+ margin: 0 0.3rem;
67
108
  background: var(--ink-border);
68
109
  }
69
110
 
@@ -91,12 +132,31 @@
91
132
  border: 1px solid var(--ink-border);
92
133
  }
93
134
 
135
+ .Ink-Editor__shell {
136
+ position: relative;
137
+ display: flex;
138
+ align-items: stretch;
139
+ min-height: 0;
140
+ }
141
+
142
+ .Ink-Editor__body {
143
+ position: relative;
144
+ flex: 1 1 auto;
145
+ min-width: 0;
146
+ }
147
+
94
148
  .Ink-Editor__content {
95
149
  min-height: 150px;
96
- padding: 1rem;
150
+ padding: 1.1rem 1.25rem 1.1rem 2.5rem;
97
151
  outline: none;
98
152
  overflow: auto;
99
- line-height: 1.6;
153
+ line-height: 1.65;
154
+ }
155
+
156
+ .Ink-Editor[data-variant='document'] .Ink-Editor__content {
157
+ padding: 2rem 2.5rem 2rem 3rem;
158
+ max-width: 48rem;
159
+ margin: 0 auto;
100
160
  }
101
161
 
102
162
  .Ink-Editor__content:empty::before {
@@ -108,6 +168,7 @@
108
168
  .Ink-Editor__content img {
109
169
  max-width: 100%;
110
170
  height: auto;
171
+ border-radius: 0.35rem;
111
172
  }
112
173
 
113
174
  .Ink-Editor__content h1,
@@ -116,7 +177,7 @@
116
177
  .Ink-Editor__content h4,
117
178
  .Ink-Editor__content h5,
118
179
  .Ink-Editor__content h6 {
119
- margin: 0.75rem 0 0.5rem;
180
+ margin: 0.85rem 0 0.45rem;
120
181
  line-height: 1.25;
121
182
  }
122
183
 
@@ -125,7 +186,50 @@
125
186
  .Ink-Editor__content ol,
126
187
  .Ink-Editor__content blockquote,
127
188
  .Ink-Editor__content pre {
128
- margin: 0.5rem 0;
189
+ margin: 0.55rem 0;
190
+ }
191
+
192
+ .Ink-Editor__content .Ink-block--active {
193
+ outline: 1px solid rgb(13 148 136 / 0.35);
194
+ border-radius: 0.35rem;
195
+ background: rgb(13 148 136 / 0.03);
196
+ }
197
+
198
+ .Ink-Editor__content .Ink-table {
199
+ width: 100%;
200
+ border-collapse: collapse;
201
+ margin: 0.75rem 0;
202
+ font-size: 0.95rem;
203
+ }
204
+
205
+ .Ink-Editor__content .Ink-table th,
206
+ .Ink-Editor__content .Ink-table td {
207
+ border: 1px solid var(--ink-border);
208
+ padding: 0.45rem 0.6rem;
209
+ min-width: 4rem;
210
+ }
211
+
212
+ .Ink-Editor__content .Ink-table th {
213
+ background: #f1f5f9;
214
+ font-weight: 650;
215
+ text-align: left;
216
+ }
217
+
218
+ .Ink-Editor__content .Ink-tc-insert {
219
+ background: rgb(34 197 94 / 0.18);
220
+ text-decoration: none;
221
+ color: inherit;
222
+ }
223
+
224
+ .Ink-Editor__content .Ink-tc-delete {
225
+ background: rgb(239 68 68 / 0.14);
226
+ color: #991b1b;
227
+ }
228
+
229
+ .Ink-Editor__content .Ink-comment-mark {
230
+ background: #fde047;
231
+ border-radius: 0.15rem;
232
+ padding: 0 0.1rem;
129
233
  }
130
234
 
131
235
  .Ink-Editor__footer {
@@ -136,6 +240,368 @@
136
240
  text-align: right;
137
241
  }
138
242
 
243
+ .Ink-BlockHandles {
244
+ position: absolute;
245
+ left: 0.25rem;
246
+ z-index: 2;
247
+ display: flex;
248
+ flex-direction: column;
249
+ gap: 0.1rem;
250
+ }
251
+
252
+ .Ink-BlockHandles__grip,
253
+ .Ink-BlockHandles__btn {
254
+ width: 1.5rem;
255
+ height: 1.35rem;
256
+ border: 0;
257
+ border-radius: 0.3rem;
258
+ background: #fff;
259
+ box-shadow: 0 1px 3px rgb(15 23 42 / 0.12);
260
+ color: var(--ink-muted);
261
+ cursor: pointer;
262
+ font-size: 0.7rem;
263
+ line-height: 1;
264
+ }
265
+
266
+ .Ink-BlockHandles__btn:hover,
267
+ .Ink-BlockHandles__grip:hover {
268
+ color: var(--ink-accent);
269
+ background: var(--ink-accent-soft);
270
+ }
271
+
272
+ .Ink-Slash {
273
+ position: absolute;
274
+ z-index: 5;
275
+ min-width: 12rem;
276
+ background: #fff;
277
+ border: 1px solid var(--ink-border);
278
+ border-radius: 0.65rem;
279
+ box-shadow: 0 12px 32px rgb(15 23 42 / 0.12);
280
+ padding: 0.3rem;
281
+ }
282
+
283
+ .Ink-Slash__item {
284
+ display: block;
285
+ width: 100%;
286
+ text-align: left;
287
+ border: 0;
288
+ background: transparent;
289
+ padding: 0.45rem 0.6rem;
290
+ border-radius: 0.4rem;
291
+ cursor: pointer;
292
+ color: inherit;
293
+ }
294
+
295
+ .Ink-Slash__item:hover {
296
+ background: var(--ink-accent-soft);
297
+ color: var(--ink-accent);
298
+ }
299
+
300
+ .Ink-TrackBar {
301
+ display: flex;
302
+ flex-wrap: wrap;
303
+ align-items: center;
304
+ gap: 0.5rem;
305
+ padding: 0.45rem 0.75rem;
306
+ border-bottom: 1px solid var(--ink-border);
307
+ background: #fffbeb;
308
+ font-size: 0.8rem;
309
+ }
310
+
311
+ .Ink-TrackBar__label {
312
+ font-weight: 650;
313
+ color: #92400e;
314
+ }
315
+
316
+ .Ink-TrackBar__actions {
317
+ display: flex;
318
+ gap: 0.25rem;
319
+ }
320
+
321
+ .Ink-TrackBar__list {
322
+ list-style: none;
323
+ margin: 0;
324
+ padding: 0;
325
+ display: flex;
326
+ flex-wrap: wrap;
327
+ gap: 0.35rem;
328
+ width: 100%;
329
+ }
330
+
331
+ .Ink-TrackBar__list li {
332
+ display: flex;
333
+ align-items: center;
334
+ gap: 0.25rem;
335
+ background: #fff;
336
+ border: 1px solid #fde68a;
337
+ border-radius: 0.45rem;
338
+ padding: 0.2rem 0.35rem;
339
+ }
340
+
341
+ .Ink-Comments {
342
+ width: 300px;
343
+ flex: 0 0 300px;
344
+ border-left: 1px solid var(--ink-border);
345
+ background: #fcfcfd;
346
+ display: flex;
347
+ flex-direction: column;
348
+ max-height: 100%;
349
+ }
350
+
351
+ .Ink-Comments__header,
352
+ .Ink-Ai__header {
353
+ display: flex;
354
+ align-items: center;
355
+ justify-content: space-between;
356
+ padding: 0.65rem 0.75rem;
357
+ border-bottom: 1px solid var(--ink-border);
358
+ font-size: 0.9rem;
359
+ }
360
+
361
+ .Ink-Comments__list {
362
+ overflow: auto;
363
+ padding: 0.65rem;
364
+ display: flex;
365
+ flex-direction: column;
366
+ gap: 0.65rem;
367
+ }
368
+
369
+ .Ink-Comments__empty,
370
+ .Ink-Ai__empty,
371
+ .Ink-Ai__hint {
372
+ color: var(--ink-muted);
373
+ font-size: 0.85rem;
374
+ line-height: 1.45;
375
+ }
376
+
377
+ .Ink-Comments__thread {
378
+ border: 1px solid var(--ink-border);
379
+ border-radius: 0.65rem;
380
+ padding: 0.65rem;
381
+ background: #fff;
382
+ box-shadow: 0 1px 2px rgb(15 23 42 / 0.04);
383
+ }
384
+
385
+ .Ink-Comments__thread--resolved {
386
+ opacity: 0.65;
387
+ }
388
+
389
+ .Ink-Comments__meta {
390
+ display: flex;
391
+ justify-content: space-between;
392
+ gap: 0.5rem;
393
+ font-size: 0.72rem;
394
+ color: var(--ink-muted);
395
+ margin-bottom: 0.35rem;
396
+ }
397
+
398
+ .Ink-Comments__body {
399
+ margin: 0;
400
+ font-size: 0.88rem;
401
+ }
402
+
403
+ .Ink-Comments__reply {
404
+ margin-top: 0.5rem;
405
+ padding-left: 0.65rem;
406
+ border-left: 2px solid var(--ink-accent-soft);
407
+ }
408
+
409
+ .Ink-Comments__form {
410
+ display: flex;
411
+ flex-wrap: wrap;
412
+ gap: 0.3rem;
413
+ margin-top: 0.55rem;
414
+ }
415
+
416
+ .Ink-Comments__form input,
417
+ .Ink-Ai__form input,
418
+ .Ink-Ai__translate select {
419
+ flex: 1 1 auto;
420
+ min-width: 0;
421
+ border: 1px solid var(--ink-border);
422
+ border-radius: 0.45rem;
423
+ padding: 0.4rem 0.5rem;
424
+ font: inherit;
425
+ }
426
+
427
+ .Ink-Comments__resolved {
428
+ margin: 0.4rem 0 0;
429
+ font-size: 0.75rem;
430
+ color: var(--ink-muted);
431
+ }
432
+
433
+ .Ink-Ai {
434
+ width: 320px;
435
+ flex: 0 0 320px;
436
+ border-left: 1px solid var(--ink-ai-border, var(--ink-border));
437
+ background: var(--ink-ai-surface, #f8fafc);
438
+ display: flex;
439
+ flex-direction: column;
440
+ max-height: 100%;
441
+ }
442
+
443
+ .Ink-Ai[data-placement='floating'] {
444
+ position: absolute;
445
+ right: 1rem;
446
+ top: 3.5rem;
447
+ z-index: 6;
448
+ border: 1px solid var(--ink-ai-border, var(--ink-border));
449
+ border-radius: 0.85rem;
450
+ box-shadow: 0 16px 40px rgb(15 23 42 / 0.14);
451
+ max-height: min(28rem, 70vh);
452
+ }
453
+
454
+ .Ink-Ai[data-placement='drawer'] {
455
+ position: absolute;
456
+ inset: 0 0 0 auto;
457
+ z-index: 6;
458
+ box-shadow: -8px 0 24px rgb(15 23 42 / 0.08);
459
+ }
460
+
461
+ .Ink-Ai__tabs {
462
+ display: flex;
463
+ flex-wrap: wrap;
464
+ gap: 0.2rem;
465
+ padding: 0.4rem 0.55rem;
466
+ border-bottom: 1px solid var(--ink-ai-border, var(--ink-border));
467
+ }
468
+
469
+ .Ink-Ai__body {
470
+ flex: 1 1 auto;
471
+ overflow: auto;
472
+ padding: 0.65rem;
473
+ display: flex;
474
+ flex-direction: column;
475
+ gap: 0.65rem;
476
+ }
477
+
478
+ .Ink-Ai__history {
479
+ display: flex;
480
+ flex-direction: column;
481
+ gap: 0.45rem;
482
+ min-height: 8rem;
483
+ }
484
+
485
+ .Ink-Ai__turn {
486
+ border-radius: 0.55rem;
487
+ padding: 0.5rem 0.6rem;
488
+ background: #fff;
489
+ border: 1px solid var(--ink-border);
490
+ font-size: 0.85rem;
491
+ }
492
+
493
+ .Ink-Ai__turn span {
494
+ display: block;
495
+ font-size: 0.68rem;
496
+ text-transform: uppercase;
497
+ letter-spacing: 0.04em;
498
+ color: var(--ink-muted);
499
+ margin-bottom: 0.2rem;
500
+ }
501
+
502
+ .Ink-Ai__turn p {
503
+ margin: 0;
504
+ }
505
+
506
+ .Ink-Ai__turn--user {
507
+ border-color: rgb(13 148 136 / 0.35);
508
+ background: rgb(13 148 136 / 0.06);
509
+ }
510
+
511
+ .Ink-Ai__form,
512
+ .Ink-Ai__diff-actions,
513
+ .Ink-Ai__actions {
514
+ display: flex;
515
+ flex-wrap: wrap;
516
+ gap: 0.35rem;
517
+ }
518
+
519
+ .Ink-Ai__action {
520
+ width: 100%;
521
+ justify-content: flex-start;
522
+ text-align: left;
523
+ background: #fff;
524
+ border: 1px solid var(--ink-border) !important;
525
+ }
526
+
527
+ .Ink-Ai__suggestion {
528
+ border: 1px solid var(--ink-border);
529
+ border-radius: 0.55rem;
530
+ padding: 0.55rem;
531
+ background: #fff;
532
+ font-size: 0.85rem;
533
+ }
534
+
535
+ .Ink-Ai__suggestion--warning {
536
+ border-color: #fbbf24;
537
+ }
538
+
539
+ .Ink-Ai__suggestion--error {
540
+ border-color: #f87171;
541
+ }
542
+
543
+ .Ink-Ai__suggestion p {
544
+ margin: 0.25rem 0;
545
+ }
546
+
547
+ .Ink-Ai__suggestion code {
548
+ display: block;
549
+ font-size: 0.75rem;
550
+ color: var(--ink-muted);
551
+ }
552
+
553
+ .Ink-Ai__translate label {
554
+ display: flex;
555
+ flex-direction: column;
556
+ gap: 0.3rem;
557
+ font-size: 0.8rem;
558
+ color: var(--ink-muted);
559
+ }
560
+
561
+ .Ink-Ai__diff {
562
+ border: 1px solid rgb(13 148 136 / 0.35);
563
+ border-radius: 0.65rem;
564
+ padding: 0.65rem;
565
+ background: #fff;
566
+ }
567
+
568
+ .Ink-Ai__diff-preview {
569
+ margin: 0.4rem 0;
570
+ padding: 0.45rem;
571
+ border-radius: 0.4rem;
572
+ background: rgb(13 148 136 / 0.06);
573
+ font-size: 0.85rem;
574
+ }
575
+
576
+ .Ink-Ai__footer {
577
+ padding: 0.4rem 0.75rem;
578
+ border-top: 1px solid var(--ink-ai-border, var(--ink-border));
579
+ font-size: 0.7rem;
580
+ color: var(--ink-muted);
581
+ }
582
+
583
+ @media (max-width: 900px) {
584
+ .Ink-Editor__shell {
585
+ flex-direction: column;
586
+ }
587
+
588
+ .Ink-Comments,
589
+ .Ink-Ai {
590
+ width: 100%;
591
+ flex: none;
592
+ border-left: 0;
593
+ border-top: 1px solid var(--ink-border);
594
+ max-height: 16rem;
595
+ }
596
+
597
+ .Ink-Ai[data-placement='floating'],
598
+ .Ink-Ai[data-placement='drawer'] {
599
+ position: static;
600
+ box-shadow: none;
601
+ max-height: 16rem;
602
+ }
603
+ }
604
+
139
605
  @media (prefers-color-scheme: dark) {
140
606
  .Ink-Editor {
141
607
  --ink-border: #3f3f46;
@@ -145,6 +611,7 @@
145
611
  --ink-muted: #a1a1aa;
146
612
  --ink-accent: #2dd4bf;
147
613
  --ink-accent-soft: rgb(45 212 191 / 0.15);
614
+ --ink-shadow: 0 10px 40px rgb(0 0 0 / 0.35);
148
615
  }
149
616
  }
150
617
 
@@ -157,7 +624,7 @@
157
624
  --ink-muted: #6b7280;
158
625
  --ink-accent: #0f766e;
159
626
  --ink-accent-soft: #ccfbf1;
160
- border-radius: 0.25rem;
627
+ border-radius: 0.75rem;
161
628
  }
162
629
 
163
630
  .ink-theme-bubble .Ink-Editor,
@@ -198,6 +665,6 @@
198
665
  }
199
666
 
200
667
  .ink-theme-minimal .Ink-Editor__toolbar,
201
- .Ink-Editor.ink-theme-minimal .Ink-Editor__toolbar {
202
- border-bottom-style: dashed;
668
+ .ink-theme-minimal.Ink-Editor .Ink-Editor__toolbar {
669
+ border-bottom: 1px solid var(--ink-border);
203
670
  }