lexxy 0.1.20.beta → 0.1.22.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.
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
  }
@@ -121,7 +135,6 @@
121
135
  .code-token__property,
122
136
  .token.boolean,
123
137
  .token.constant,
124
- .token.deleted,
125
138
  .token.number,
126
139
  .token.property,
127
140
  .token.symbol,
@@ -134,6 +147,7 @@
134
147
  .token.builtin,
135
148
  .token.char,
136
149
  .token.inserted,
150
+ .token.line,
137
151
  .token.selector,
138
152
  .token.string {
139
153
  color: var(--lexxy-color-code-token-selector);
@@ -151,9 +165,11 @@
151
165
 
152
166
  /* Operators and symbolic entities */
153
167
  .code-token__operator,
168
+ .token.deleted,
154
169
  .token.entity,
155
170
  .token.operator,
156
- .token.url {
171
+ .token.url,
172
+ code[data-language="diff"] .code-token__operator + .code-token__selector {
157
173
  color: var(--lexxy-color-code-token-operator);
158
174
  }
159
175
 
@@ -211,12 +227,14 @@
211
227
  color: var(--lexxy-color-text-subtle);
212
228
  font-size: var(--lexxy-text-small);
213
229
 
214
- input {
230
+ textarea {
215
231
  background: var(--lexxy-color-canvas);
216
- color: var(--lexxy-color-text);
217
232
  border: none;
233
+ color: inherit;
234
+ font-family: inherit;
218
235
  inline-size: 100%;
219
236
  max-inline-size: 100%;
237
+ resize: none;
220
238
  text-align: center;
221
239
 
222
240
  &: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: flex;
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
- /* Link dialog
182
+ /* Dialog
173
183
  /* -------------------------------------------------------------------------- */
174
184
 
175
- :where(.lexxy-link-dialog) {
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: 1px solid var(--lexxy-color-ink-lighter);
191
+ border: 2px solid var(--lexxy-color-selected-hover);
181
192
  border-radius: var(--lexxy-radius);
182
- box-shadow: var(--lexxy-shadow);
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: 1;
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
- min-inline-size: 30ch;
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
@@ -1,3 +1,3 @@
1
1
  module Lexxy
2
- VERSION = "0.1.20.beta"
2
+ VERSION = "0.1.22.beta"
3
3
  end
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.20.beta
4
+ version: 0.1.22.beta
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jorge Manrubia
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-11-07 00:00:00.000000000 Z
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.2
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: []