lexgui 0.5.6 → 0.5.8
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.
- package/build/components/audio.js +2 -2
- package/build/components/timeline.js +475 -420
- package/build/components/videoeditor.js +97 -148
- package/build/lexgui.css +25 -1
- package/build/lexgui.js +323 -196
- package/build/lexgui.min.css +1 -1
- package/build/lexgui.min.js +1 -1
- package/build/lexgui.module.js +323 -196
- package/build/lexgui.module.min.js +1 -1
- package/build/utilities.css +62 -8
- package/changelog.md +31 -1
- package/demo.js +17 -10
- package/package.json +1 -1
package/build/utilities.css
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
/* Colors */
|
|
2
2
|
/* Using !important to override anything written in main stylesheet */
|
|
3
3
|
|
|
4
|
-
.bg-primary { background-color: var(--global-color-primary) !important }
|
|
5
|
-
.bg-secondary { background-color: var(--global-color-secondary) !important }
|
|
6
|
-
.bg-tertiary { background-color: var(--global-color-tertiary) !important }
|
|
7
|
-
.bg-quaternary { background-color: var(--global-color-quaternary) !important }
|
|
8
|
-
.bg-accent { background-color: var(--global-color-accent) !important }
|
|
9
|
-
.bg-contrast { background-color: var(--global-text-primary) !important }
|
|
10
|
-
.bg-warning { background-color: var(--global-color-warning) !important }
|
|
11
|
-
.bg-error { background-color: var(--global-color-error) !important }
|
|
4
|
+
.bg-primary { --background-color: var(--global-color-primary); background-color: var(--background-color)!important }
|
|
5
|
+
.bg-secondary { --background-color: var(--global-color-secondary); background-color: var(--background-color)!important }
|
|
6
|
+
.bg-tertiary { --background-color: var(--global-color-tertiary); background-color: var(--background-color)!important }
|
|
7
|
+
.bg-quaternary { --background-color: var(--global-color-quaternary); background-color: var(--background-color)!important }
|
|
8
|
+
.bg-accent { --background-color: var(--global-color-accent); background-color: var(--background-color)!important }
|
|
9
|
+
.bg-contrast { --background-color: var(--global-text-primary); background-color: var(--background-color)!important }
|
|
10
|
+
.bg-warning { --background-color: var(--global-color-warning); background-color: var(--background-color)!important }
|
|
11
|
+
.bg-error { --background-color: var(--global-color-error); background-color: var(--background-color)!important }
|
|
12
|
+
.bg-white { --background-color: white; background-color: var(--background-color)!important }
|
|
13
|
+
.bg-black { --background-color: black; background-color: var(--background-color)!important }
|
|
12
14
|
.bg-none { background: none !important }
|
|
13
15
|
|
|
14
16
|
.hover\:bg-primary:hover { background-color: var(--global-color-primary) !important }
|
|
@@ -19,6 +21,8 @@
|
|
|
19
21
|
.hover\:bg-contrast:hover { background-color: var(--global-text-primary) !important }
|
|
20
22
|
.hover\:bg-warning:hover { background-color: var(--global-color-warning) !important }
|
|
21
23
|
.hover\:bg-error:hover { background-color: var(--global-color-error) !important }
|
|
24
|
+
.hover\:bg-mix:hover { background-color: color-mix(in srgb, var(--background-color), var(--global-text-primary) 5%) !important }
|
|
25
|
+
.hover\:bg-mix-contrast:hover { background-color: color-mix(in srgb, var(--background-color), var(--global-color-primary) 5%) !important }
|
|
22
26
|
.hover\:bg-none:hover { background: none !important }
|
|
23
27
|
|
|
24
28
|
.fg-primary { color: var(--global-text-primary) !important }
|
|
@@ -29,6 +33,8 @@
|
|
|
29
33
|
.fg-contrast { color: var(--global-color-primary) !important }
|
|
30
34
|
.fg-warning { color: var(--global-color-warning) !important }
|
|
31
35
|
.fg-error { color: var(--global-color-error) !important }
|
|
36
|
+
.fg-white { color: white !important }
|
|
37
|
+
.fg-black { color: black !important }
|
|
32
38
|
|
|
33
39
|
.hover\:fg-primary:hover { color: var(--global-text-primary) !important }
|
|
34
40
|
.hover\:fg-secondary:hover { color: var(--global-text-secondary) !important }
|
|
@@ -60,12 +66,35 @@
|
|
|
60
66
|
.whitespace-pre-wrap { white-space: pre-wrap }
|
|
61
67
|
.whitespace-break-spaces { white-space: break-spaces }
|
|
62
68
|
|
|
69
|
+
.text-start { text-align: start }
|
|
70
|
+
.text-center { text-align: center }
|
|
71
|
+
.text-end { text-align: end }
|
|
72
|
+
|
|
73
|
+
.leading-none { line-height: 1 }
|
|
74
|
+
.leading-tight { line-height: 1.25 }
|
|
75
|
+
.leading-snug { line-height: 1.375 }
|
|
76
|
+
.leading-normal { line-height: 1.5 }
|
|
77
|
+
.leading-relaxed { line-height: 1.625 }
|
|
78
|
+
.leading-loose { line-height: 2 }
|
|
79
|
+
.leading-inherit { line-height: inherit }
|
|
80
|
+
|
|
81
|
+
.leading-3 { line-height: 0.75rem }
|
|
82
|
+
.leading-4 { line-height: 1rem }
|
|
83
|
+
.leading-5 { line-height: 1.25rem }
|
|
84
|
+
.leading-6 { line-height: 1.5rem }
|
|
85
|
+
.leading-7 { line-height: 1.75rem }
|
|
86
|
+
.leading-8 { line-height: 2rem }
|
|
87
|
+
.leading-9 { line-height: 2.25rem }
|
|
88
|
+
.leading-10 { line-height: 2.5rem }
|
|
89
|
+
|
|
63
90
|
.text-balance { text-wrap: balance }
|
|
64
91
|
.break-words { overflow-wrap: break-word }
|
|
65
92
|
|
|
66
93
|
.line-clamp-1, .line-clamp-2 { overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical }
|
|
67
94
|
.line-clamp-1 { -webkit-line-clamp: 1; line-clamp: 1 }
|
|
68
95
|
.line-clamp-2 { -webkit-line-clamp: 2; line-clamp: 2 }
|
|
96
|
+
.line-clamp-3 { -webkit-line-clamp: 3; line-clamp: 3 }
|
|
97
|
+
.line-clamp-4 { -webkit-line-clamp: 4; line-clamp: 4 }
|
|
69
98
|
|
|
70
99
|
.flex-col { flex-direction: column }
|
|
71
100
|
.flex-row { flex-direction: row }
|
|
@@ -85,6 +114,10 @@
|
|
|
85
114
|
.self-center { place-self: center }
|
|
86
115
|
.self-end { place-self: end }
|
|
87
116
|
|
|
117
|
+
.content-start { align-content: start }
|
|
118
|
+
.content-center { align-content: center }
|
|
119
|
+
.content-end { align-content: end }
|
|
120
|
+
|
|
88
121
|
.gap-0 { gap: 0 }
|
|
89
122
|
.gap-0\.5 { gap: 0.125rem }
|
|
90
123
|
.gap-1 { gap: 0.25rem }
|
|
@@ -267,6 +300,13 @@
|
|
|
267
300
|
.font-bold { font-weight: 700 }
|
|
268
301
|
.font-extrabold { font-weight: 800 }
|
|
269
302
|
|
|
303
|
+
.tracking-tighter { letter-spacing: -0.05em }
|
|
304
|
+
.tracking-tight { letter-spacing: -0.025em }
|
|
305
|
+
.tracking-normal { letter-spacing: 0em }
|
|
306
|
+
.tracking-wide { letter-spacing: 0.025em }
|
|
307
|
+
.tracking-wider { letter-spacing: 0.05em }
|
|
308
|
+
.tracking-widest { letter-spacing: 0.1em }
|
|
309
|
+
|
|
270
310
|
.italic { font-style: italic }
|
|
271
311
|
|
|
272
312
|
.uppercase { text-transform: uppercase }
|
|
@@ -307,12 +347,20 @@
|
|
|
307
347
|
.border { border: 1px solid var(--global-color-tertiary) }
|
|
308
348
|
.border-colored { border: 1px solid currentColor }
|
|
309
349
|
|
|
350
|
+
.border-solid { border-style: solid }
|
|
351
|
+
.border-dashed { border-style: dashed }
|
|
352
|
+
.border-dotted { border-style: dotted }
|
|
353
|
+
.border-double { border-style: double }
|
|
354
|
+
|
|
310
355
|
.border-top { border-top: 1px solid var(--global-color-tertiary) }
|
|
311
356
|
.border-bottom { border-bottom: 1px solid var(--global-color-tertiary) }
|
|
312
357
|
.border-left { border-left: 1px solid var(--global-color-tertiary) }
|
|
313
358
|
.border-right { border-right: 1px solid var(--global-color-tertiary) }
|
|
314
359
|
|
|
315
360
|
.border-2 { border-width: 2px }
|
|
361
|
+
.border-4 { border-width: 4px }
|
|
362
|
+
.border-6 { border-width: 6px }
|
|
363
|
+
.border-8 { border-width: 8px }
|
|
316
364
|
|
|
317
365
|
.border-t-0 { border-top-width: 0 }
|
|
318
366
|
.border-b-0 { border-bottom-width: 0 }
|
|
@@ -320,9 +368,15 @@
|
|
|
320
368
|
.border-r-0 { border-right-width: 0 }
|
|
321
369
|
|
|
322
370
|
.rounded-none { border-radius: 0 }
|
|
371
|
+
.rounded-sm { border-radius: 0.125rem }
|
|
323
372
|
.rounded { border-radius: 0.25rem }
|
|
373
|
+
.rounded-md { border-radius: 0.375rem }
|
|
324
374
|
.rounded-lg { border-radius: 0.5rem }
|
|
375
|
+
.rounded-xl { border-radius: 0.75rem }
|
|
376
|
+
.rounded-2xl { border-radius: 1rem }
|
|
377
|
+
.rounded-3xl { border-radius: 1.5rem }
|
|
325
378
|
.rounded-full { border-radius: 9999px }
|
|
379
|
+
.rounded-inherit { border-radius: inherit }
|
|
326
380
|
|
|
327
381
|
.rounded-t-none { border-top-left-radius: 0; border-top-right-radius: 0 }
|
|
328
382
|
.rounded-r-none { border-top-right-radius: 0; border-bottom-right-radius: 0 }
|
package/changelog.md
CHANGED
|
@@ -2,7 +2,37 @@
|
|
|
2
2
|
|
|
3
3
|
## dev
|
|
4
4
|
|
|
5
|
-
## 0.5.
|
|
5
|
+
## 0.5.8 (master)
|
|
6
|
+
|
|
7
|
+
Widgets:
|
|
8
|
+
- Added missing support for `NodeTree.refresh()` on Array data.
|
|
9
|
+
|
|
10
|
+
Timeline:
|
|
11
|
+
- Fix setSelectedItems.
|
|
12
|
+
- Keyframe colors.
|
|
13
|
+
- Integrate swap buttons.
|
|
14
|
+
- Fixed scroll bar and zoom.
|
|
15
|
+
- Hiding tracks on left panel also hides canvas tracks.
|
|
16
|
+
- Fix track lines match the left panel tree.
|
|
17
|
+
|
|
18
|
+
VideoEditor:
|
|
19
|
+
- Fix crop and area reload crop.
|
|
20
|
+
- Timebar fixes.
|
|
21
|
+
|
|
22
|
+
Fixed area resizing issues. Improved performance (less layout trashing).
|
|
23
|
+
Added missing support for swap functionality in OverlayButtons.
|
|
24
|
+
Added tracking (`letter-spacing`) CSS class utilities.
|
|
25
|
+
Fixed minor issues with ColorPicker mouse tracking.
|
|
26
|
+
|
|
27
|
+
## 0.5.7
|
|
28
|
+
|
|
29
|
+
`LX.makeIcon` now accepts `options` as second parameter (`title`, `iconClass`, `svgClass`).
|
|
30
|
+
Exposed `LX.setStrictViewport(value)` to allow switching manually.
|
|
31
|
+
Fixed ColorPicker minor issues.
|
|
32
|
+
Fixed Examples and SourceCode links in docs.
|
|
33
|
+
Added more CSS class utilities.
|
|
34
|
+
|
|
35
|
+
## 0.5.6
|
|
6
36
|
|
|
7
37
|
Widgets:
|
|
8
38
|
- ColorInput Widget now uses a new custom `ColorPicker`.
|
package/demo.js
CHANGED
|
@@ -32,7 +32,7 @@ const area = LX.init( { strictViewport: false, rootClass: "wrapper" } );
|
|
|
32
32
|
title: "Change Theme",
|
|
33
33
|
icon: "fa-solid fa-sun",
|
|
34
34
|
swap: "fa-solid fa-moon",
|
|
35
|
-
callback: (
|
|
35
|
+
callback: (swapValue) => { LX.setTheme( swapValue ? "light" : "dark" ) }
|
|
36
36
|
}
|
|
37
37
|
], { float: "right" });
|
|
38
38
|
});
|
|
@@ -288,10 +288,11 @@ const area = LX.init( { strictViewport: false, rootClass: "wrapper" } );
|
|
|
288
288
|
{
|
|
289
289
|
const allMailContent = LX.makeContainer( [ "100%", "calc(100% - 50px)" ], "flex flex-col p-4 pt-0 gap-2 overflow-scroll", "", container );
|
|
290
290
|
|
|
291
|
-
window.__addMail = ( mail, mailContainer ) => {
|
|
291
|
+
window.__addMail = ( mail, mailContainer, idx ) => {
|
|
292
292
|
|
|
293
|
+
const selected = ( idx == 0 );
|
|
293
294
|
const msgContent = LX.makeContainer( [ "100%", "auto" ],
|
|
294
|
-
|
|
295
|
+
`flex flex-col border p-3 rounded-lg gap-2 select-none hover:bg-mix cursor-pointer ${ selected ? "bg-secondary" : "" }`, "", mailContainer );
|
|
295
296
|
|
|
296
297
|
// Name, subject, date
|
|
297
298
|
{
|
|
@@ -316,13 +317,15 @@ const area = LX.init( { strictViewport: false, rootClass: "wrapper" } );
|
|
|
316
317
|
msgTags.appendChild( LX.badge( tag, "sm", { asElement: true } ) );
|
|
317
318
|
}
|
|
318
319
|
|
|
319
|
-
msgContent.listen( "click", ()
|
|
320
|
+
msgContent.listen( "click", function() {
|
|
321
|
+
mailContainer.childNodes.forEach( e => e.classList.remove( "bg-secondary" ) );
|
|
322
|
+
this.classList.add( "bg-secondary" );
|
|
320
323
|
window.__openMail( mail );
|
|
321
324
|
} );
|
|
322
325
|
};
|
|
323
326
|
|
|
324
327
|
LX.requestJSON( "data/example_mail_data.json", data => {
|
|
325
|
-
data.forEach( e => { if( !unreadOnly || ( unreadOnly && !e.read ) ) window.__addMail( e, allMailContent ) } );
|
|
328
|
+
data.forEach( ( e, idx ) => { if( !unreadOnly || ( unreadOnly && !e.read ) ) window.__addMail( e, allMailContent, idx ) } );
|
|
326
329
|
window.__openMail( data[ 0 ] );
|
|
327
330
|
} )
|
|
328
331
|
}
|
|
@@ -371,20 +374,24 @@ const area = LX.init( { strictViewport: false, rootClass: "wrapper" } );
|
|
|
371
374
|
|
|
372
375
|
previewDataContent.innerHTML = "";
|
|
373
376
|
|
|
374
|
-
const mailPreviewInfo = LX.makeContainer( [ "100%", "auto" ], "flex flex-row border-bottom p-
|
|
377
|
+
const mailPreviewInfo = LX.makeContainer( [ "100%", "auto" ], "flex flex-row border-bottom p-4 gap-3", "", previewDataContent );
|
|
378
|
+
const avatarContainer = LX.makeContainer( [ "40px", "40px" ], "bg-tertiary rounded-full content-center", "", mailPreviewInfo );
|
|
375
379
|
|
|
376
|
-
const
|
|
380
|
+
const mailNames = mail.name.split( ' ' );
|
|
381
|
+
const avatarIcon = LX.makeContainer( [ "auto", "auto" ], "font-medium text-lg self-center", mailNames[ 0 ][ 0 ] + mailNames[ 1 ][ 0 ], avatarContainer );
|
|
382
|
+
|
|
383
|
+
const senderData = LX.makeContainer( [ "auto", "auto" ], "flex flex-col gap-0.5", `
|
|
377
384
|
<div class="text-md font-semibold">${ mail.name }</div>
|
|
378
385
|
<div class="text-sm">${ mail.subject }</div>
|
|
379
386
|
<div class="text-sm">Reply-To: ${ mail.email }</div>
|
|
380
387
|
`, mailPreviewInfo );
|
|
381
388
|
|
|
382
|
-
const exactDate = LX.makeContainer( [ "
|
|
383
|
-
const mailPreviewContent = LX.makeContainer( [ "100%", "
|
|
389
|
+
const exactDate = LX.makeContainer( [ "auto", "auto" ], "flex flex-row text-sm fg-tertiary ml-auto", mail.exactDate, mailPreviewInfo );
|
|
390
|
+
const mailPreviewContent = LX.makeContainer( [ "100%", "515px" ], "flex flex-row border-bottom text-md whitespace-pre-wrap p-4", mail.content, previewDataContent );
|
|
384
391
|
const previewFooter = LX.makeContainer( [ "100%", "auto" ], "flex flex-col p-2", "", previewDataContent );
|
|
385
392
|
|
|
386
393
|
const msgReplyTextArea = new LX.TextArea(null, "", null,
|
|
387
|
-
{ className: "mt-1", inputClass: "outline", width: "100%", resize: false, placeholder: `Reply ${ mail.name }
|
|
394
|
+
{ className: "mt-1", inputClass: "outline", width: "100%", resize: false, placeholder: `Reply ${ mail.name }...` }
|
|
388
395
|
);
|
|
389
396
|
previewFooter.appendChild( msgReplyTextArea.root );
|
|
390
397
|
|