@forgedevstack/ink 1.0.0 → 1.1.0

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