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.
@@ -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.6 (master)
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: (event, swapValue) => { LX.setTheme( swapValue ? "light" : "dark" ) }
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
- "flex flex-col border p-3 rounded-lg gap-2 select-none hover:bg-secondary cursor-pointer", "", mailContainer );
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-6", "", previewDataContent );
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 senderData = LX.makeContainer( [ "100%", "auto" ], "flex flex-col gap-0.5", `
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( [ "100%", "auto" ], "flex flex-row text-sm fg-tertiary justify-end", mail.exactDate, mailPreviewInfo );
383
- const mailPreviewContent = LX.makeContainer( [ "100%", "505px" ], "flex flex-row border-bottom text-md whitespace-pre-wrap p-4", mail.content, previewDataContent );
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
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lexgui",
3
- "version": "0.5.6",
3
+ "version": "0.5.8",
4
4
  "description": "JS library to create web graphical user interfaces",
5
5
  "type": "module",
6
6
  "main": "./build/lexgui.js",