lexxy 0.1.20.beta → 0.1.21.beta
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.
- checksums.yaml +4 -4
- data/README.md +6 -1
- data/app/assets/javascript/lexxy.js +535 -95
- data/app/assets/javascript/lexxy.js.br +0 -0
- data/app/assets/javascript/lexxy.js.gz +0 -0
- data/app/assets/javascript/lexxy.min.js +2 -2
- data/app/assets/javascript/lexxy.min.js.br +0 -0
- data/app/assets/javascript/lexxy.min.js.gz +0 -0
- data/app/assets/stylesheets/lexxy-content.css +19 -3
- data/app/assets/stylesheets/lexxy-editor.css +103 -7
- data/app/assets/stylesheets/lexxy-variables.css +20 -0
- data/config/ci.rb +13 -0
- data/lib/lexxy/version.rb +1 -1
- metadata +4 -3
|
Binary file
|
|
Binary file
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
.lexxy-content__bold {
|
|
45
45
|
font-weight: bold;
|
|
46
46
|
}
|
|
47
|
-
|
|
47
|
+
|
|
48
48
|
.lexxy-content__strikethrough {
|
|
49
49
|
text-decoration: line-through;
|
|
50
50
|
}
|
|
@@ -53,6 +53,12 @@
|
|
|
53
53
|
text-decoration: underline;
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
+
mark,
|
|
57
|
+
.lexxy-content__highlight {
|
|
58
|
+
background-color: transparent;
|
|
59
|
+
color: inherit;
|
|
60
|
+
}
|
|
61
|
+
|
|
56
62
|
blockquote {
|
|
57
63
|
border-inline-start: 0.25em solid var(--lexxy-color-ink-lighter);
|
|
58
64
|
font-style: italic;
|
|
@@ -105,6 +111,14 @@
|
|
|
105
111
|
}
|
|
106
112
|
}
|
|
107
113
|
|
|
114
|
+
li.lexxy-nested-listitem {
|
|
115
|
+
list-style-type: none;
|
|
116
|
+
|
|
117
|
+
ol, ul {
|
|
118
|
+
margin: 0;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
108
122
|
> :last-child {
|
|
109
123
|
margin-block-end: 0;
|
|
110
124
|
}
|
|
@@ -211,12 +225,14 @@
|
|
|
211
225
|
color: var(--lexxy-color-text-subtle);
|
|
212
226
|
font-size: var(--lexxy-text-small);
|
|
213
227
|
|
|
214
|
-
|
|
228
|
+
textarea {
|
|
215
229
|
background: var(--lexxy-color-canvas);
|
|
216
|
-
color: var(--lexxy-color-text);
|
|
217
230
|
border: none;
|
|
231
|
+
color: inherit;
|
|
232
|
+
font-family: inherit;
|
|
218
233
|
inline-size: 100%;
|
|
219
234
|
max-inline-size: 100%;
|
|
235
|
+
resize: none;
|
|
220
236
|
text-align: center;
|
|
221
237
|
|
|
222
238
|
&:focus {
|
|
@@ -163,29 +163,64 @@
|
|
|
163
163
|
background-color: var(--lexxy-color-canvas);
|
|
164
164
|
border-radius: calc(var(--lexxy-radius) + var(--lexxy-toolbar-gap));
|
|
165
165
|
box-shadow: var(--lexxy-shadow);
|
|
166
|
-
display:
|
|
166
|
+
display: grid;
|
|
167
|
+
grid-template-columns: repeat(4, 1fr);
|
|
168
|
+
gap: var(--lexxy-toolbar-gap);
|
|
167
169
|
inset-inline-end: 0;
|
|
168
170
|
padding: var(--lexxy-toolbar-gap);
|
|
169
171
|
position: absolute;
|
|
172
|
+
|
|
173
|
+
.lexxy-editor__toolbar-spacer {
|
|
174
|
+
display: none;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
* + .lexxy-editor__toolbar-spacer + button {
|
|
178
|
+
margin-left: 0.5lh;
|
|
179
|
+
}
|
|
170
180
|
}
|
|
171
181
|
|
|
172
|
-
/*
|
|
182
|
+
/* Dialog
|
|
173
183
|
/* -------------------------------------------------------------------------- */
|
|
174
184
|
|
|
175
|
-
:where(.lexxy-
|
|
185
|
+
:where(.lexxy-dialog) {
|
|
176
186
|
display: contents;
|
|
187
|
+
position: relative;
|
|
177
188
|
|
|
178
189
|
dialog {
|
|
179
190
|
background-color: var(--lexxy-color-canvas);
|
|
180
|
-
border:
|
|
191
|
+
border: 2px solid var(--lexxy-color-selected-hover);
|
|
181
192
|
border-radius: var(--lexxy-radius);
|
|
182
|
-
|
|
193
|
+
border-start-start-radius: 0;
|
|
194
|
+
box-sizing: border-box;
|
|
183
195
|
color: var(--lexxy-color-ink);
|
|
196
|
+
inset-block-start: 2lh;
|
|
197
|
+
inline-size: 100%;
|
|
198
|
+
max-inline-size: 38ch;
|
|
199
|
+
margin: 0;
|
|
184
200
|
padding: 1ch;
|
|
185
201
|
position: absolute;
|
|
186
|
-
z-index:
|
|
202
|
+
z-index: 3;
|
|
187
203
|
}
|
|
188
204
|
|
|
205
|
+
&:has(dialog[open]) + .lexxy-editor__toolbar-button {
|
|
206
|
+
background-color: var(--lexxy-color-selected-hover);
|
|
207
|
+
border-end-end-radius: 0;
|
|
208
|
+
border-end-start-radius: 0;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
:where(lexxy-toolbar[overflowing]) .lexxy-dialog dialog {
|
|
213
|
+
--dialog-padding: 0.5ch;
|
|
214
|
+
inset-inline-end: var(--dialog-padding);
|
|
215
|
+
inset-inline-start: var(--dialog-padding) !important;
|
|
216
|
+
inline-size: calc(100% - 2 * var(--dialog-padding));
|
|
217
|
+
margin: auto;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
/* Link dialog
|
|
221
|
+
/* -------------------------------------------------------------------------- */
|
|
222
|
+
|
|
223
|
+
:where(.lexxy-link-dialog) {
|
|
189
224
|
.lexxy-dialog-actions {
|
|
190
225
|
display: flex;
|
|
191
226
|
font-size: var(--lexxy-text-small);
|
|
@@ -205,7 +240,8 @@
|
|
|
205
240
|
border: 1px solid var(--lexxy-color-ink-lighter);
|
|
206
241
|
border-radius: var(--lexxy-radius);
|
|
207
242
|
color: var(--lexxy-color-text);
|
|
208
|
-
|
|
243
|
+
box-sizing: border-box;
|
|
244
|
+
inline-size: 100%;
|
|
209
245
|
}
|
|
210
246
|
|
|
211
247
|
button {
|
|
@@ -221,6 +257,66 @@
|
|
|
221
257
|
}
|
|
222
258
|
}
|
|
223
259
|
|
|
260
|
+
/* Color dialog
|
|
261
|
+
/* -------------------------------------------------------------------------- */
|
|
262
|
+
|
|
263
|
+
:where(.lexxy-highlight-dialog) {
|
|
264
|
+
.lexxy-highlight-dialog-content {
|
|
265
|
+
display: flex;
|
|
266
|
+
flex-direction: column;
|
|
267
|
+
gap: 0.75ch;
|
|
268
|
+
|
|
269
|
+
[data-button-group] {
|
|
270
|
+
display: flex;
|
|
271
|
+
flex-direction: row;
|
|
272
|
+
flex-wrap: wrap;
|
|
273
|
+
gap: 0.5ch;
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
button {
|
|
277
|
+
block-size: 3.5ch;
|
|
278
|
+
color: var(--lexxy-color-text);
|
|
279
|
+
inline-size: 3.5ch;
|
|
280
|
+
position: relative;
|
|
281
|
+
outline: none;
|
|
282
|
+
|
|
283
|
+
&:after {
|
|
284
|
+
align-self: center;
|
|
285
|
+
content: "Aa";
|
|
286
|
+
display: inline-block;
|
|
287
|
+
font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
|
288
|
+
position: absolute;
|
|
289
|
+
inset-block-start: 0;
|
|
290
|
+
inset-block-end: 0;
|
|
291
|
+
inset-inline-end: 0;
|
|
292
|
+
inset-inline-start: 0;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
&:hover {
|
|
296
|
+
opacity: 0.8;
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
&[aria-pressed="true"] {
|
|
300
|
+
box-shadow: 0 0 0 1px var(--lexxy-color-canvas), 0 0 0 3px var(--lexxy-color-accent-dark);
|
|
301
|
+
|
|
302
|
+
&:after {
|
|
303
|
+
content: "✓";
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
.lexxy-highlight-dialog-reset {
|
|
309
|
+
inline-size: 100%;
|
|
310
|
+
|
|
311
|
+
&[disabled] {
|
|
312
|
+
display: none;
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
&:after { display: none; }
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
|
|
224
320
|
/* Language picker
|
|
225
321
|
/* -------------------------------------------------------------------------- */
|
|
226
322
|
|
|
@@ -35,6 +35,26 @@
|
|
|
35
35
|
--lexxy-color-selected-dark: var(--lexxy-color-blue);
|
|
36
36
|
--lexxy-color-code-bg: var(--lexxy-color-ink-lightest);
|
|
37
37
|
|
|
38
|
+
--highlight-1: rgb(136, 118, 38);
|
|
39
|
+
--highlight-2: rgb(185, 94, 6);
|
|
40
|
+
--highlight-3: rgb(207, 0, 0);
|
|
41
|
+
--highlight-4: rgb(216, 28, 170);
|
|
42
|
+
--highlight-5: rgb(144, 19, 254);
|
|
43
|
+
--highlight-6: rgb(5, 98, 185);
|
|
44
|
+
--highlight-7: rgb(17, 138, 15);
|
|
45
|
+
--highlight-8: rgb(148, 82, 22);
|
|
46
|
+
--highlight-9: rgb(102, 102, 102);
|
|
47
|
+
|
|
48
|
+
--highlight-bg-1: rgba(229, 223, 6, 0.3);
|
|
49
|
+
--highlight-bg-2: rgba(255, 185, 87, 0.3);
|
|
50
|
+
--highlight-bg-3: rgba(255, 118, 118, 0.3);
|
|
51
|
+
--highlight-bg-4: rgba(248, 137, 216, 0.3);
|
|
52
|
+
--highlight-bg-5: rgba(190, 165, 255, 0.3);
|
|
53
|
+
--highlight-bg-6: rgba(124, 192, 252, 0.3);
|
|
54
|
+
--highlight-bg-7: rgba(140, 255, 129, 0.3);
|
|
55
|
+
--highlight-bg-8: rgba(221, 170, 123, 0.3);
|
|
56
|
+
--highlight-bg-9: rgba(200, 200, 200, 0.3);
|
|
57
|
+
|
|
38
58
|
/* Typography */
|
|
39
59
|
--lexxy-font-base: system-ui, sans-serif;
|
|
40
60
|
--lexxy-font-mono: ui-monospace, "Menlo", "Monaco", Consolas, monospace;
|
data/config/ci.rb
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Run using bin/ci
|
|
2
|
+
|
|
3
|
+
CI.run do
|
|
4
|
+
step "Style: Ruby", "bin/rubocop -f github"
|
|
5
|
+
step "Style: JavaScript", "yarn lint"
|
|
6
|
+
|
|
7
|
+
step "Tests: prepare", "env RAILS_ENV=test bin/rails db:test:prepare"
|
|
8
|
+
step "Tests: run", "env RAILS_ENV=test bin/rails test:all -d"
|
|
9
|
+
|
|
10
|
+
unless success?
|
|
11
|
+
failure "Signoff: CI failed.", "Fix the issues and try again."
|
|
12
|
+
end
|
|
13
|
+
end
|
data/lib/lexxy/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: lexxy
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.21.beta
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Jorge Manrubia
|
|
8
8
|
bindir: bin
|
|
9
9
|
cert_chain: []
|
|
10
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
12
|
- !ruby/object:Gem::Dependency
|
|
13
13
|
name: rails
|
|
@@ -136,6 +136,7 @@ files:
|
|
|
136
136
|
- app/views/people/_person.html.erb
|
|
137
137
|
- app/views/people/_prompt_item.html.erb
|
|
138
138
|
- app/views/people/index.html.erb
|
|
139
|
+
- config/ci.rb
|
|
139
140
|
- config/routes.rb
|
|
140
141
|
- lib/action_text/attachables/remote_video.rb
|
|
141
142
|
- lib/active_storage/blob_with_preview_url.rb
|
|
@@ -169,7 +170,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
169
170
|
- !ruby/object:Gem::Version
|
|
170
171
|
version: '0'
|
|
171
172
|
requirements: []
|
|
172
|
-
rubygems_version: 3.6.
|
|
173
|
+
rubygems_version: 3.6.9
|
|
173
174
|
specification_version: 4
|
|
174
175
|
summary: A new editor for Action Text based on Meta's Lexical framework.
|
|
175
176
|
test_files: []
|