@fiduswriter/editor 0.1.51 → 0.1.53

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 (36) hide show
  1. package/css/access_rights_dialog.css +75 -0
  2. package/css/carets.css +17 -0
  3. package/css/chat.css +70 -0
  4. package/css/citation_dialog.css +71 -0
  5. package/css/colors.css +97 -0
  6. package/css/contributors.css +13 -0
  7. package/css/document.css +286 -0
  8. package/css/dot_menu.css +42 -0
  9. package/css/e2ee.css +331 -0
  10. package/css/editor.css +1484 -0
  11. package/css/footnotes.css +81 -0
  12. package/css/margin_boxes.css +514 -0
  13. package/css/merge.css +197 -0
  14. package/css/review.css +7 -0
  15. package/css/table.css +13 -0
  16. package/css/tags.css +36 -0
  17. package/css/tracking.css +63 -0
  18. package/package.json +56 -10
  19. package/static/fonts/document/Cardo-Bold.woff +0 -0
  20. package/static/fonts/document/Cardo-Italic.woff +0 -0
  21. package/static/fonts/document/Cardo-Regular.woff +0 -0
  22. package/static/fonts/document/CrimsonText-Bold.woff +0 -0
  23. package/static/fonts/document/CrimsonText-BoldItalic.woff +0 -0
  24. package/static/fonts/document/CrimsonText-Italic.woff +0 -0
  25. package/static/fonts/document/CrimsonText-Roman.woff +0 -0
  26. package/static/fonts/document/Lobster-1.4.woff +0 -0
  27. package/static/fonts/document/NoticiaText-Bold.woff +0 -0
  28. package/static/fonts/document/NoticiaText-BoldItalic.woff +0 -0
  29. package/static/fonts/document/NoticiaText-Italic.woff +0 -0
  30. package/static/fonts/document/NoticiaText-Regular.woff +0 -0
  31. package/static/fonts/document/OpenSans-Bold.woff +0 -0
  32. package/static/fonts/document/OpenSans-Regular.woff +0 -0
  33. package/static/fonts/document/SourceSansPro-Bold.woff +0 -0
  34. package/static/img/accept_change.avif +0 -0
  35. package/static/img/fidus_face.avif +0 -0
  36. package/static/ogg/chat_notification.ogg +0 -0
@@ -0,0 +1,75 @@
1
+ #access-rights-dialog .fw-green-title {
2
+ margin-bottom: 25px;
3
+ }
4
+
5
+ #access-rights-dialog .edit-right {
6
+ cursor: pointer;
7
+ }
8
+
9
+ /* People tab: keep existing side-by-side layout */
10
+ #access-rights-dialog #people {
11
+ display: flex;
12
+ align-items: flex-start;
13
+ }
14
+
15
+ /* Share-link tab */
16
+ #access-rights-dialog #sharelink {
17
+ display: flex;
18
+ flex-direction: column;
19
+ gap: 8px;
20
+ }
21
+
22
+ #access-rights-dialog .share-token-row {
23
+ border: 1px solid #dddddd;
24
+ border-radius: 4px;
25
+ padding: 8px 10px;
26
+ margin-bottom: 6px;
27
+ background: #fafafa;
28
+ }
29
+
30
+ #access-rights-dialog .share-token-meta {
31
+ margin-bottom: 5px;
32
+ font-size: 0.9em;
33
+ }
34
+
35
+ #access-rights-dialog .share-token-url-row {
36
+ display: flex;
37
+ align-items: center;
38
+ gap: 6px;
39
+ }
40
+
41
+ #access-rights-dialog .share-token-url-input {
42
+ flex: 1;
43
+ font-size: 0.82em;
44
+ padding: 3px 6px;
45
+ border: 1px solid #cccccc;
46
+ border-radius: 3px;
47
+ background: #ffffff;
48
+ color: #444444;
49
+ overflow: hidden;
50
+ text-overflow: ellipsis;
51
+ white-space: nowrap;
52
+ }
53
+
54
+ #access-rights-dialog .fw-ar-loading,
55
+ #access-rights-dialog .fw-ar-error,
56
+ #access-rights-dialog .fw-ar-no-tokens {
57
+ color: #888888;
58
+ font-style: italic;
59
+ margin: 8px 0;
60
+ }
61
+
62
+ #access-rights-dialog .fw-ar-error {
63
+ color: #c0392b;
64
+ }
65
+
66
+ /* Allow overflow in create share token dialog so focus outlines aren't clipped */
67
+ #create-share-token-dialog.fw-dialog {
68
+ overflow: visible;
69
+ }
70
+
71
+ #create-share-token-dialog .fw-button:focus,
72
+ #create-share-token-dialog .fw-button:active {
73
+ outline: 5px solid var(--cs-6-background-focus);
74
+ outline-offset: 2px;
75
+ }
package/css/carets.css ADDED
@@ -0,0 +1,17 @@
1
+ div.caret {
2
+ display: inline;
3
+ border-style: solid;
4
+ border-width: 1px;
5
+ margin: 0 -1px;
6
+ position: relative;
7
+ }
8
+
9
+ div.caret-head {
10
+ position: absolute;
11
+ top: -2px;
12
+ left: -3px;
13
+ width: 2px;
14
+ height: 2px;
15
+ border-width: 2px;
16
+ border-style: solid;
17
+ }
package/css/chat.css ADDED
@@ -0,0 +1,70 @@
1
+ /* For profile list */
2
+
3
+ .avatar {
4
+ border-bottom-width: 4px;
5
+ border-bottom-style: solid;
6
+ }
7
+
8
+ #chat {
9
+ position: fixed;
10
+ bottom: 0;
11
+ right: 5px;
12
+ background-color: var(--cs-white-background);
13
+ width: 250px;
14
+ padding: 10px;
15
+ border: 1px solid var(--cs-white-border);
16
+ border-bottom: 0;
17
+ display: none;
18
+ z-index: 100;
19
+ transition: top 2s ease;
20
+ }
21
+
22
+ #chat.highlighted {
23
+ background-color: var(--chat-highlight-background-color);
24
+ }
25
+
26
+ #chat .resize-button {
27
+ text-align: right;
28
+ cursor: pointer;
29
+ display: block;
30
+ }
31
+
32
+ #chat-container {
33
+ max-height: 300px;
34
+ overflow-y: auto;
35
+ }
36
+
37
+ #chat-container .fw-message {
38
+ padding-top: 5px;
39
+ }
40
+
41
+ #chat-container .fw-message:last-child {
42
+ border-bottom: 1px solid var(--cs-white-border);
43
+ margin-bottom: 6px;
44
+ padding-bottom: 6px;
45
+ }
46
+
47
+ #connected-collaborators {
48
+ position: fixed;
49
+ right: 85px;
50
+ top: 16px;
51
+ }
52
+
53
+ #connected-collaborators .fw-string-avatar,
54
+ #connected-collaborators img {
55
+ box-sizing: border-box;
56
+ width: 35px;
57
+ height: 35px;
58
+ margin-left: -10px;
59
+ display: inline-block;
60
+ vertical-align: middle;
61
+ }
62
+
63
+ #connected-collaborators .fw-string-avatar:first-child,
64
+ #connected-collaborators img:first-child {
65
+ margin-left: 0;
66
+ }
67
+
68
+ #messageform.empty::before {
69
+ color: var(--cs-white-placeholder-text);
70
+ }
@@ -0,0 +1,71 @@
1
+ #configure-citation .fw-ar-container {
2
+ width: 430px;
3
+ }
4
+
5
+ #cited-items h3,
6
+ #my-sources h3 {
7
+ margin-bottom: 15px;
8
+ }
9
+
10
+ #cited-items {
11
+ overflow-y: auto;
12
+ }
13
+
14
+ /* stylelint-disable selector-id-pattern */
15
+ #cite-source-table_filter {
16
+ text-align: left;
17
+ }
18
+
19
+ #cite-source-table_filter input[type="text"] {
20
+ width: 332px;
21
+ height: 33px;
22
+ }
23
+ /* stylelint-enable selector-id-pattern */
24
+
25
+ #selected-cite-source-table .fw-data-table-title > span {
26
+ width: 80px;
27
+ }
28
+
29
+ #cite-source-table .fw-data-table-title > span {
30
+ width: 128px;
31
+ }
32
+
33
+ #configure-citation .datatable-container tbody tr {
34
+ cursor: pointer;
35
+ }
36
+
37
+ #configure-citation .datatable-container tbody tr:nth-child(2n + 1) {
38
+ background-color: var(--table-row-background-color);
39
+ }
40
+
41
+ .fw-cite-parts-table td {
42
+ border: none;
43
+ padding: 0;
44
+ }
45
+
46
+ .fw-cite-parts-table .cite-extra-fields {
47
+ padding-bottom: 5px;
48
+ }
49
+
50
+ .cite-extra-fields > div {
51
+ margin-top: 10px;
52
+ }
53
+
54
+ .cite-extra-fields label {
55
+ display: inline-block;
56
+ width: 40px;
57
+ vertical-align: middle;
58
+ }
59
+
60
+ .cite-extra-fields input {
61
+ width: 230px;
62
+ border-radius: 4px;
63
+ }
64
+
65
+ .selected-source:first-child .order-up {
66
+ display: none;
67
+ }
68
+
69
+ .selected-source:last-child .order-down {
70
+ display: none;
71
+ }
package/css/colors.css ADDED
@@ -0,0 +1,97 @@
1
+ /*
2
+ * Editor-specific custom properties — load after fwtoolkit/css/colors.css
3
+ * and @fiduswriter/frontend/css/colors.css.
4
+ * Does NOT duplicate fwtoolkit's base; only adds editor-related variables.
5
+ */
6
+
7
+ :root {
8
+ /* -----------------------------------------------------------------
9
+ * Chat
10
+ * ----------------------------------------------------------------- */
11
+ --chat-highlight-background-color: #6495ed;
12
+
13
+ /* -----------------------------------------------------------------
14
+ * Input error state
15
+ * ----------------------------------------------------------------- */
16
+ --input-error-background-color: #f34141;
17
+
18
+ /* -----------------------------------------------------------------
19
+ * Track changes
20
+ * ----------------------------------------------------------------- */
21
+ --editor-track-background-color: 45 82 144 / 0.63;
22
+ --editor-track-active-background-color: #788fb4;
23
+ --editor-track-text-color: #ffffff;
24
+
25
+ /* -----------------------------------------------------------------
26
+ * Review
27
+ * ----------------------------------------------------------------- */
28
+ --editor-reviewed: #81f781;
29
+ --editor-text-content-item-background-color: #d3d3d3;
30
+ --editor-text-content-item-hover-background-color: #808080;
31
+ --editor-navigator-background-color: 0 0 0 / 0.8;
32
+ --editor-navigator-color: #ffffff;
33
+ --editor-navigator-scrollbar-background-color: #181818;
34
+ --editor-navigator-scrollbar-background-color-hover: #0f0f0f;
35
+ --editor-navigator-checkbox-color: #444444;
36
+ --editor-navigator-focus-color: #dddddd;
37
+
38
+ /* -----------------------------------------------------------------
39
+ * Comments
40
+ * ----------------------------------------------------------------- */
41
+ --editor-active-comment-background-color: #fffacf;
42
+ --editor-active-help-background-color: #fafafa;
43
+ --editor-active-help-arrow-color: #fafafa;
44
+ --editor-active-track-background-color: #afbed4;
45
+ --editor-major-comment-background-color: #f4c9d9;
46
+ --editor-resolved-comment-icon-color: #3c3c3c;
47
+ --editor-major-comment-icon-color: #af3515;
48
+ --editor-comment-resolved-opacity: 0.7;
49
+ --editor-comment-resolved-text-color: #ffffff;
50
+ --editor-comment-resolved-border-color: #ffffff;
51
+
52
+ /* -----------------------------------------------------------------
53
+ * E2EE — strength meter, badges, banners, info/warning panels
54
+ * ----------------------------------------------------------------- */
55
+
56
+ /* Strength meter */
57
+ --e2ee-strength-very-weak-color: var(--error-border-color, #af3515);
58
+ --e2ee-strength-weak-color: var(--cs-3-background-from, #d3421c);
59
+ --e2ee-strength-fair-color: var(
60
+ --warning-background-color,
61
+ rgb(221 208 63 / 80%)
62
+ );
63
+ --e2ee-strength-strong-color: var(--cs-6-background, #5a7e73);
64
+ --e2ee-strength-very-strong-color: var(--cs-5-background, #4c6860);
65
+
66
+ /* Badge / indicator */
67
+ --e2ee-badge-text-color: var(--cs-4-text, #4c6860);
68
+ --e2ee-badge-icon-color: var(--cs-6-background, #5a7e73);
69
+ --e2ee-badge-encrypted-background-color: var(
70
+ --cs-6-background-hover,
71
+ #96c6b8
72
+ );
73
+ --e2ee-badge-encrypted-text-color: var(--cs-6-background, #5a7e73);
74
+
75
+ /* Warning (share link) */
76
+ --e2ee-warning-background-color: var(--cs-light-background, #f9f9f9);
77
+ --e2ee-warning-border-color: var(--cs-3-background-from, #d3421c);
78
+ --e2ee-warning-text-color: var(--cs-3-background-to, #b13615);
79
+
80
+ /* Info (password reminder) */
81
+ --e2ee-info-background-color: var(--cs-light-background, #f9f9f9);
82
+ --e2ee-info-border-color: var(--cs-2-box-shadow, #3c9fdf);
83
+ --e2ee-info-text-color: var(--cs-2-background, #0d78be);
84
+
85
+ /* Mode banner */
86
+ --e2ee-banner-background-color: var(--cs-6-background-hover, #96c6b8);
87
+ --e2ee-banner-border-color: var(--cs-6-border, #7d948e);
88
+ --e2ee-banner-text-color: var(--cs-6-background, #5a7e73);
89
+ --e2ee-banner-link-color: var(--cs-2-background, #0d78be);
90
+
91
+ /* Encrypted placeholder */
92
+ --e2ee-encrypted-title-color: var(--cs-light-text-secondary, #6e6e6e);
93
+
94
+ /* Input focus */
95
+ --e2ee-input-focus-border-color: var(--cs-2-background, #0d78be);
96
+ --e2ee-input-focus-shadow-color: var(--cs-2-box-shadow, #3c9fdf);
97
+ }
@@ -0,0 +1,13 @@
1
+ .contributor {
2
+ margin-right: 5px;
3
+ margin-bottom: 5px;
4
+ padding: 0 12px;
5
+ height: 34px;
6
+ display: inline-block;
7
+ border-radius: 3px;
8
+ line-height: 34px;
9
+ cursor: pointer;
10
+ color: var(--cs-6-text);
11
+ background: var(--cs-6-background);
12
+ border: 1px solid var(--cs-6-border);
13
+ }
@@ -0,0 +1,286 @@
1
+ #document-editable,
2
+ #footnote-box-container {
3
+ counter-reset: cat-figure cat-equation cat-photo cat-table footnote-counter
4
+ footnote-marker-counter;
5
+ }
6
+
7
+ sup {
8
+ vertical-align: super;
9
+ font-size: smaller;
10
+ }
11
+
12
+ sub {
13
+ vertical-align: sub;
14
+ font-size: smaller;
15
+ }
16
+
17
+ code {
18
+ font-family: monospace;
19
+ background-color: #f0f0f0;
20
+ padding: 2px 4px;
21
+ border-radius: 3px;
22
+ }
23
+
24
+ /* CSL */
25
+
26
+ .csl-bib-body {
27
+ padding-top: 0.5em;
28
+ padding-bottom: 0.5em;
29
+ }
30
+
31
+ .csl-left-margin {
32
+ padding-right: 1ch;
33
+ clear: left;
34
+ float: left;
35
+ white-space: pre;
36
+ }
37
+
38
+ .csl-entry i,
39
+ .citation i {
40
+ font-style: italic;
41
+ }
42
+
43
+ .csl-entry b,
44
+ .citation b {
45
+ font-weight: bold;
46
+ }
47
+
48
+ .csl-entry sup,
49
+ .citation sup {
50
+ vertical-align: super;
51
+ font-size: smaller;
52
+ }
53
+
54
+ .csl-entry sub,
55
+ .citation sub {
56
+ vertical-align: sub;
57
+ font-size: smaller;
58
+ }
59
+
60
+ .csl-indent {
61
+ padding-left: 0.5in;
62
+ }
63
+
64
+ .csl-entry {
65
+ clear: left;
66
+ }
67
+
68
+ .csl-right-inline {
69
+ padding-left: 20px;
70
+ }
71
+
72
+ span.anchor {
73
+ text-decoration: underline;
74
+ color: var(--cs-4-text);
75
+ }
76
+
77
+ figure figcaption {
78
+ margin-top: 10px;
79
+ font-size: 0.9em;
80
+ }
81
+
82
+ figure img {
83
+ max-width: 100%;
84
+ }
85
+
86
+ figure {
87
+ width: calc(80% - 12px);
88
+ border: 1px solid black;
89
+ padding: 5px;
90
+ text-align: center;
91
+ break-inside: avoid;
92
+ cursor: pointer;
93
+ margin: 10%;
94
+ clear: none;
95
+ }
96
+
97
+ .aligned-right {
98
+ float: right;
99
+ }
100
+
101
+ .aligned-left {
102
+ float: left;
103
+ }
104
+
105
+ .aligned-center {
106
+ float: none;
107
+ display: block;
108
+ margin-left: auto;
109
+ margin-right: auto;
110
+ align-content: center;
111
+ }
112
+
113
+ .image-width-100 {
114
+ width: 80%;
115
+ box-sizing: border-box;
116
+ }
117
+
118
+ .image-width-75 {
119
+ width: 55%;
120
+ box-sizing: border-box;
121
+ }
122
+
123
+ .image-width-50 {
124
+ width: 40%;
125
+ box-sizing: border-box;
126
+ }
127
+
128
+ .image-width-25 {
129
+ width: 21%;
130
+ box-sizing: border-box;
131
+ }
132
+
133
+ figure[data-category="figure"] figcaption span.label::after {
134
+ counter-increment: cat-figure;
135
+ content: " " counter(cat-figure);
136
+ }
137
+
138
+ figure[data-category="equation"] figcaption span.label::after {
139
+ counter-increment: cat-equation;
140
+ content: " " counter(cat-equation);
141
+ }
142
+
143
+ figure[data-category="photo"] figcaption span.label::after {
144
+ counter-increment: cat-photo;
145
+ content: " " counter(cat-photo);
146
+ }
147
+
148
+ figure[data-category="table"] figcaption span.label::after,
149
+ table[data-category="table"] caption span.label::after {
150
+ counter-increment: cat-table;
151
+ content: " " counter(cat-table);
152
+ }
153
+
154
+ #footnote-box-container
155
+ figure[data-category="figure"]
156
+ figcaption
157
+ span.label::after {
158
+ content: " " counter(cat-figure) "A";
159
+ }
160
+
161
+ #footnote-box-container
162
+ figure[data-category="photo"]
163
+ figcaption
164
+ span.label::after {
165
+ content: " " counter(cat-photo) "A";
166
+ }
167
+
168
+ #footnote-box-container
169
+ figure[data-category="table"]
170
+ figcaption
171
+ span.label::after,
172
+ #footnote-box-container table[data-category="table"] caption span.label::after {
173
+ content: " " counter(cat-table) "A";
174
+ }
175
+
176
+ figure[data-category="table"] figcaption span.text::before,
177
+ figure[data-category="photo"] figcaption span.text::before,
178
+ figure[data-category="figure"] figcaption span.text::before,
179
+ table[data-category="table"] caption span.text::before {
180
+ content: ": ";
181
+ }
182
+
183
+ table {
184
+ clear: both;
185
+ }
186
+
187
+ .table-25 {
188
+ width: 25%;
189
+ }
190
+
191
+ .table-50 {
192
+ width: 50%;
193
+ }
194
+
195
+ .table-75 {
196
+ width: 75%;
197
+ }
198
+
199
+ .table-100 {
200
+ width: 100%;
201
+ }
202
+
203
+ .table-center {
204
+ margin-left: auto !important;
205
+ margin-right: auto !important;
206
+ clear: both;
207
+ }
208
+
209
+ .table-left {
210
+ float: left;
211
+ }
212
+
213
+ .table-right {
214
+ float: right;
215
+ }
216
+
217
+ .user-contents a {
218
+ text-decoration: underline;
219
+ }
220
+
221
+ .doc table[data-layout="fixed"] {
222
+ table-layout: fixed !important;
223
+ }
224
+
225
+ .doc table[data-layout="auto"] {
226
+ table-layout: auto !important;
227
+ }
228
+
229
+ .doc-title {
230
+ font-size: 48px;
231
+ }
232
+
233
+ .doc .table-of-contents h1,
234
+ .doc .table-of-contents h2,
235
+ .doc .table-of-contents h3,
236
+ .doc .table-of-contents h4,
237
+ .doc .table-of-contents h5,
238
+ .doc .table-of-contents h6 {
239
+ font-size: 1em;
240
+ font-weight: normal;
241
+ margin-bottom: unset;
242
+ }
243
+
244
+ .doc .table-of-contents h2 {
245
+ padding-left: 1em;
246
+ }
247
+
248
+ .doc .table-of-contents h3 {
249
+ padding-left: 2em;
250
+ }
251
+
252
+ .doc .table-of-contents h4 {
253
+ padding-left: 3em;
254
+ }
255
+
256
+ .doc .table-of-contents h5 {
257
+ padding-left: 4em;
258
+ }
259
+
260
+ .doc .table-of-contents h6 {
261
+ padding-left: 5em;
262
+ }
263
+
264
+ .doc .table-of-contents h1.toc {
265
+ font-style: italic;
266
+ }
267
+
268
+ .underline {
269
+ text-decoration: underline;
270
+ }
271
+
272
+ /* Ensure inline code marks stay inline even with higher specificity selectors */
273
+
274
+ /* Cover all block-level elements that can contain inline content */
275
+
276
+ .user-contents p code,
277
+ .user-contents h1 code,
278
+ .user-contents h2 code,
279
+ .user-contents h3 code,
280
+ .user-contents h4 code,
281
+ .user-contents h5 code,
282
+ .user-contents h6 code,
283
+ .user-contents figcaption code,
284
+ .user-contents caption code {
285
+ display: inline;
286
+ }
@@ -0,0 +1,42 @@
1
+ .content-container {
2
+ position: relative;
3
+ z-index: 5;
4
+ }
5
+
6
+ .fw-content-menu-btn {
7
+ background-color: transparent;
8
+ background-repeat: no-repeat;
9
+ border: 1px;
10
+ cursor: pointer;
11
+ overflow: hidden;
12
+ outline: none;
13
+ position: absolute;
14
+ right: -15px;
15
+ top: 0;
16
+ }
17
+
18
+ table .fw-content-menu-btn {
19
+ right: -7px;
20
+ }
21
+
22
+ .figure-menu-btn {
23
+ background-color: transparent;
24
+ background-repeat: no-repeat;
25
+ border: 1px;
26
+ cursor: pointer;
27
+ overflow: hidden;
28
+ outline: none;
29
+ right: -22px;
30
+ top: -7px;
31
+ float: right;
32
+ position: relative;
33
+ }
34
+
35
+ .dot-menu-icon {
36
+ font-size: 18px;
37
+ color: var(--cs-white-text-secondary);
38
+ }
39
+
40
+ .dot-menu-icon:hover {
41
+ color: var(--cs-white-text);
42
+ }