lexgui 0.7.1 → 0.7.3

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.
@@ -4,6 +4,7 @@ if(!LX) {
4
4
  throw("lexgui.js missing!");
5
5
  }
6
6
 
7
+ LX.extensions.push( 'TimeBar' );
7
8
  LX.extensions.push( 'VideoEditor' );
8
9
 
9
10
  /**
@@ -304,6 +305,8 @@ class TimeBar {
304
305
  this._draw();
305
306
  }
306
307
  }
308
+ LX.TimeBar = TimeBar;
309
+
307
310
 
308
311
  /**
309
312
  * @class VideoEditor
@@ -322,7 +325,15 @@ class VideoEditor {
322
325
 
323
326
  this.mainArea = area;
324
327
 
325
- let [videoArea, controlsArea] = area.split({ type: 'vertical', sizes: ["85%", null], minimizable: false, resize: false });
328
+ let videoArea = null;
329
+ let controlsArea = null;
330
+ if(options.controlsArea) {
331
+ videoArea = area;
332
+ controlsArea = options.controlsArea;
333
+ }
334
+ else {
335
+ [videoArea, controlsArea] = area.split({ type: 'vertical', sizes: ["85%", null], minimizable: false, resize: false });
336
+ }
326
337
  controlsArea.root.classList.add('lexconstrolsarea');
327
338
 
328
339
  this.cropArea = document.createElement("div");
@@ -344,6 +355,7 @@ class VideoEditor {
344
355
  this.video.src = options.src;
345
356
  this._loadVideo(options);
346
357
  }
358
+
347
359
  if(options.videoArea) {
348
360
  options.videoArea.root.classList.add("lexvideoeditor");
349
361
  options.videoArea.attach(this.cropArea);
@@ -393,7 +405,7 @@ class VideoEditor {
393
405
  this.controlsPanelLeft.refresh();
394
406
  }, { width: '40px', icon: (this.playing ? 'Pause@solid' : 'Play@solid'), className: "justify-center"});
395
407
 
396
- this.controlsPanelLeft.addLabel(this.startTimeString, {width: 50});
408
+ this.controlsPanelLeft.addLabel(this.startTimeString, {width: 100});
397
409
  this.controlsPanelLeft.endLine();
398
410
 
399
411
  let availableWidth = leftArea.root.clientWidth - controlsLeft.root.clientWidth;
@@ -408,7 +420,7 @@ class VideoEditor {
408
420
  this.controlsPanelRight = new LX.Panel({className: 'lexcontrolspanel'});
409
421
  this.controlsPanelRight.refresh = () => {
410
422
  this.controlsPanelRight.clear();
411
- this.controlsPanelRight.addLabel(this.endTimeString, {width: 50});
423
+ this.controlsPanelRight.addLabel(this.endTimeString, {width: 100});
412
424
  }
413
425
  this.controlsPanelRight.refresh();
414
426
  controlsRight.root.style.minWidth = 'fit-content';
@@ -461,13 +473,15 @@ class VideoEditor {
461
473
  this.timebar.resize([availableWidth, v.height]);
462
474
  }
463
475
 
476
+ const parent = controlsArea.parentElement ? controlsArea.parentElement : controlsArea.root.parentElement;
477
+
464
478
  // Add canvas event listeneres
465
- area.root.addEventListener( "mousedown", (event) => {
479
+ parent.addEventListener( "mousedown", (event) => {
466
480
  if(this.controls) {
467
481
  this.timebar.onMouseDown(event);
468
482
  }
469
483
  });
470
- area.root.addEventListener( "mouseup", (event) => {
484
+ parent.addEventListener( "mouseup", (event) => {
471
485
  if(this.controls) {
472
486
  this.timebar.onMouseUp(event);
473
487
  }
@@ -481,7 +495,7 @@ class VideoEditor {
481
495
  this.isResizing = false;
482
496
 
483
497
  });
484
- area.root.addEventListener( "mousemove", (event) => {
498
+ parent.addEventListener( "mousemove", (event) => {
485
499
  if(this.controls) {
486
500
  this.timebar.onMouseMove(event);
487
501
  }
@@ -795,4 +809,4 @@ class VideoEditor {
795
809
 
796
810
  LX.VideoEditor = VideoEditor;
797
811
 
798
- export { VideoEditor }
812
+ export { VideoEditor, TimeBar }
package/build/lexgui.css CHANGED
@@ -354,6 +354,7 @@ body.noevents * {
354
354
 
355
355
  .orange { color: orange }
356
356
  .gray { color: gray }
357
+ .pipelineblue { color: #007acc }
357
358
  .dodgerblue { color: dodgerblue }
358
359
  .munsellblue { color: #0093af }
359
360
  .pictonblue { color: #45B1E8 }
@@ -361,6 +362,7 @@ body.noevents * {
361
362
  .goldenrod { color: goldenrod }
362
363
  .metallicyellow { color: #FDCC0D }
363
364
  .heliotrope { color: #d460ff }
365
+ .blueviolet { color: blueviolet }
364
366
 
365
367
  svg.xxs { width: var(--svg-size-xxs); height: var(--svg-size-xxs); }
366
368
  svg.xs { width: var(--svg-size-xs); height: var(--svg-size-xs); }
@@ -925,6 +927,8 @@ a svg, svg path {
925
927
  animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
926
928
  will-change: transform, opacity;
927
929
  animation-name: slideUpAndFade;
930
+ z-index: 150;
931
+ pointer-events: none;
928
932
  }
929
933
 
930
934
  .lextooltip[data-closed] {
@@ -4919,6 +4923,7 @@ ul.lexassetscontent {
4919
4923
  display: flex;
4920
4924
  position: relative;
4921
4925
  overflow: inherit;
4926
+ background-color: light-dark(var(--global-color-secondary), var(--global-medium-background));
4922
4927
  }
4923
4928
 
4924
4929
  .codebasearea * {
@@ -4993,6 +4998,7 @@ ul.lexassetscontent {
4993
4998
  -moz-user-select: none;
4994
4999
  -ms-user-select: none;
4995
5000
  user-select: none;
5001
+ background-color: inherit;
4996
5002
  }
4997
5003
 
4998
5004
  .lexcodeeditor .lexareatabscontent {
@@ -5008,43 +5014,25 @@ ul.lexassetscontent {
5008
5014
  padding-inline: 1rem;
5009
5015
  }
5010
5016
 
5011
- .lexcodetabinfo .lexinlinecomponents {
5012
- justify-content: end;
5013
- }
5014
-
5015
5017
  .lexcodegutter {
5016
5018
  width: 48px;
5017
- height: calc(100% - 65px);
5018
- background-color: light-dark(var(--global-color-secondary), var(--global-medium-background));
5019
- margin-top: 31px;
5019
+ background-color: inherit;
5020
5020
  overflow: hidden;
5021
5021
  position: absolute;
5022
5022
  top: 0;
5023
5023
  }
5024
5024
 
5025
- .lexcodeeditor .codetabsarea {
5026
- height: 100% !important;
5027
- background-color: light-dark(var(--global-color-secondary), var(--global-medium-background));
5025
+ .lexcodeeditor .lexcodearea {
5026
+ width: 100%;
5027
+ background-color: inherit;
5028
5028
  overflow: scroll;
5029
5029
  }
5030
5030
 
5031
- .lexcodeeditor .codetabsarea.no-code-info {
5032
- height: calc(100% - 28px) !important;
5033
- }
5034
-
5035
- .lexcodeeditor .codetabsarea::-webkit-scrollbar {
5031
+ .lexcodeeditor .lexcodearea::-webkit-scrollbar {
5036
5032
  display: none;
5037
5033
  }
5038
5034
 
5039
- .lexcodeeditor .codetabsarea.with-vscrollbar {
5040
- width: 100% !important;
5041
- }
5042
-
5043
- .lexcodeeditor .codetabsarea.with-hscrollbar {
5044
- height: calc(100% - 72px) !important;
5045
- }
5046
-
5047
- .lexcodeeditor .codetabsarea.dragging {
5035
+ .lexcodeeditor .lexcodearea.dragging {
5048
5036
  background-color: var(--global-color-secondary);
5049
5037
  }
5050
5038
 
@@ -5143,6 +5131,10 @@ ul.lexassetscontent {
5143
5131
  z-index: 1;
5144
5132
  }
5145
5133
 
5134
+ .lexcodeeditor pre.active-line .line-gutter {
5135
+ color: var(--global-text-primary);
5136
+ }
5137
+
5146
5138
  .lexcodeeditor.no-gutter pre .line-gutter {
5147
5139
  opacity: 0;
5148
5140
  }
@@ -5188,31 +5180,21 @@ ul.lexassetscontent {
5188
5180
 
5189
5181
  .lexcodescrollbar {
5190
5182
  width: 10px;
5191
- height: calc(100% - 62px);
5192
5183
  position: absolute;
5193
5184
  background-color: transparent;
5194
5185
  box-sizing: border-box;
5195
5186
  margin: 0;
5196
5187
  padding: 0;
5197
- margin-top: 31px;
5198
5188
  z-index: 1 !important;
5199
5189
  right: 0px;
5200
5190
  pointer-events: none;
5201
5191
  }
5202
5192
 
5203
5193
  .lexcodescrollbar.horizontal {
5204
- width: calc(100% - 58px);
5194
+ width: calc(100% - 48px);
5205
5195
  height: 10px;
5206
- bottom: 47px;
5207
- right: 10px;
5208
- }
5209
-
5210
- .codebasearea:has(.codetabsarea.no-code-info) .lexcodescrollbar.horizontal {
5211
5196
  bottom: 0px;
5212
- }
5213
-
5214
- .lexcodescrollbar.scrollbar-unused {
5215
- display: none;
5197
+ left: 48px; /* gutter offset */
5216
5198
  }
5217
5199
 
5218
5200
  .lexcodescrollbar div {
@@ -5380,61 +5362,52 @@ ul.lexassetscontent {
5380
5362
  .cm-std { color: #d181d1; } /* statements & declarations */
5381
5363
  .cm-kwd { color: #2194ce; } /* keyword */
5382
5364
  .cm-com { color: #5cab5a; } /* comment */
5365
+ .cm-typ { color: #36c0b0; } /* type */
5366
+ .cm-dec { color: #b1ce9b; } /* decimal */
5383
5367
 
5384
- .cm-typ.javascript { color: #36c0b0; } /* type */
5385
- .cm-dec.javascript { color: #b1ce9b; } /* decimal */
5368
+ .cm-bln.javascript { color: #d2d6f5; } /* builtin */
5386
5369
  .cm-sym.javascript { color: #e7ded2; } /* symbol */
5387
- .cm-mtd.javascript { color: #e0cc68 } /* method */
5370
+ .cm-mtd.javascript { color: #e9d98a } /* method */
5371
+
5372
+ .cm-mtd.typescript { color: #e9d98a } /* method */
5373
+ .cm-enu.typescript { color: #4cacff } /* enums */
5388
5374
 
5389
- .cm-typ.c { color: #36c0b0; } /* type */
5390
5375
  .cm-bln.c { color: #d44141; } /* builtin */
5391
5376
  .cm-dec.c { color: #2ddf53; } /* decimal */
5392
5377
  .cm-sym.c { color: #e7ded2; } /* symbol */
5393
5378
  .cm-mtd.c { color: #7a9ae0 } /* method */
5394
5379
  .cm-ppc.c { color: #969696 } /* preprocessor */
5395
5380
 
5396
- .cm-typ.cpp { color: #36c0b0; } /* type */
5397
5381
  .cm-bln.cpp { color: #d44141; } /* builtin */
5398
5382
  .cm-dec.cpp { color: #2ddf53; } /* decimal */
5399
5383
  .cm-sym.cpp { color: #e7ded2; } /* symbol */
5400
5384
  .cm-mtd.cpp { color: #7a9ae0 } /* method */
5401
5385
  .cm-ppc.cpp { color: #969696 } /* preprocessor */
5386
+ .cm-enu.cpp { color: #b1ce9b } /* enums */
5402
5387
 
5403
5388
  .cm-sym.cmake { color: #cf6dcf; } /* symbol */
5404
5389
 
5405
5390
  .cm-kwd.css { color: #e8be53; } /* keyword */
5406
5391
  .cm-typ.css { color: #b7c3ec; } /* type */
5407
5392
  .cm-bln.css { color: #2194ce; } /* builtin */
5408
- .cm-dec.css { color: #b1ce9b; } /* decimal */
5409
5393
  .cm-sym.css { color: #f9d620; } /* symbol */
5410
5394
  .cm-mtd.css { color: #e0cc68; } /* method */
5411
5395
 
5412
- .cm-dec.json { color: #b1ce9b; } /* decimal */
5413
5396
  .cm-sym.json { color: #cf6dcf; } /* symbol */
5414
5397
 
5415
- .cm-typ.glsl { color: #36c0b0; } /* type */
5416
- .cm-dec.glsl { color: #b1ce9b; } /* decimal */
5417
5398
  .cm-sym.glsl { color: #f9cb20; } /* symbol */
5418
5399
  .cm-mtd.glsl { color: #e0cc68; } /* method */
5419
5400
 
5420
- .cm-typ.wgsl { color: #36c0b0; } /* type */
5421
- .cm-dec.wgsl { color: #b1ce9b; } /* decimal */
5422
5401
  .cm-mtd.wgsl { color: #dfe093; } /* method */
5423
5402
  .cm-sym.wgsl { color: #f9cb20; } /* symbol */
5424
5403
  .cm-ppc.wgsl { color: #99caf1; } /* preprocessor */
5425
5404
 
5426
- .cm-typ.rust { color: #36c0b0; } /* type */
5427
- .cm-dec.rust { color: #b1ce9b; } /* decimal */
5428
5405
  .cm-sym.rust { color: #e7ded2; } /* symbol */
5429
5406
  .cm-mtd.rust { color: #e0cc68 } /* method */
5430
5407
 
5431
- .cm-typ.python { color: #36c0b0; } /* type */
5432
- .cm-dec.python { color: #b1ce9b; } /* decimal */
5433
5408
  .cm-sym.python { color: #e7ded2; } /* symbol */
5434
5409
  .cm-mtd.python { color: #e0cc68 } /* method */
5435
5410
 
5436
- .cm-typ.batch { color: #36c0b0; } /* type */
5437
- .cm-dec.batch { color: #b1ce9b; } /* decimal */
5438
5411
  .cm-sym.batch { color: #dfd85e; } /* symbol */
5439
5412
 
5440
5413
  .cm-bln.html { color: #a1d2f0; } /* builtin */
@@ -5445,6 +5418,11 @@ ul.lexassetscontent {
5445
5418
 
5446
5419
  .cm-bln.markdown { color: #a1d2f0; } /* builtin */
5447
5420
 
5421
+ .cm-sym.php { color: #cf6dcf; } /* symbol */
5422
+ .cm-mtd.php { color: #ddce80 } /* method */
5423
+ .cm-bln.php { color: #ddce80; } /* builtin */
5424
+ .cm-var.php { color: #88bde9; } /* variable */
5425
+
5448
5426
  :root[data-theme="light"] .lexcodeeditor pre.active-line {
5449
5427
  background-color: #e4e0e0ab;
5450
5428
  }
package/build/lexgui.js CHANGED
@@ -14,7 +14,7 @@ console.warn( 'Script _build/lexgui.js_ is depracated and will be removed soon.
14
14
  */
15
15
 
16
16
  const LX = {
17
- version: "0.7.1",
17
+ version: "0.7.3",
18
18
  ready: false,
19
19
  extensions: [], // Store extensions used
20
20
  signals: {}, // Events and triggers
@@ -382,7 +382,7 @@ function _createCommandbar( root )
382
382
  const instances = LX.CodeEditor.getInstances();
383
383
  if( !instances.length || !instances[ 0 ].area.root.offsetHeight ) return;
384
384
 
385
- const languages = instances[ 0 ].languages;
385
+ const languages = LX.CodeEditor.languages;
386
386
 
387
387
  for( let l of Object.keys( languages ) )
388
388
  {
@@ -1281,7 +1281,7 @@ class DropdownMenu {
1281
1281
  }
1282
1282
  else if( item.icon )
1283
1283
  {
1284
- const icon = LX.makeIcon( item.icon, { svgClass: disabled ? "fg-tertiary" : item.className } );
1284
+ const icon = LX.makeIcon( item.icon, { svgClass: disabled ? "fg-tertiary" : item.svgClass ?? item.className } );
1285
1285
  menuItem.prepend( icon );
1286
1286
  }
1287
1287
  else if( item.checked == undefined && applyIconPadding ) // no checkbox, no icon, apply padding if there's checkbox or icon in other items
@@ -4603,6 +4603,7 @@ const RAW_ICONS = {
4603
4603
  "Discord": [640, 512, [], "solid", "M524.531,69.836a1.5,1.5,0,0,0-.764-.7A485.065,485.065,0,0,0,404.081,32.03a1.816,1.816,0,0,0-1.923.91,337.461,337.461,0,0,0-14.9,30.6,447.848,447.848,0,0,0-134.426,0,309.541,309.541,0,0,0-15.135-30.6,1.89,1.89,0,0,0-1.924-.91A483.689,483.689,0,0,0,116.085,69.137a1.712,1.712,0,0,0-.788.676C39.068,183.651,18.186,294.69,28.43,404.354a2.016,2.016,0,0,0,.765,1.375A487.666,487.666,0,0,0,176.02,479.918a1.9,1.9,0,0,0,2.063-.676A348.2,348.2,0,0,0,208.12,430.4a1.86,1.86,0,0,0-1.019-2.588,321.173,321.173,0,0,1-45.868-21.853,1.885,1.885,0,0,1-.185-3.126c3.082-2.309,6.166-4.711,9.109-7.137a1.819,1.819,0,0,1,1.9-.256c96.229,43.917,200.41,43.917,295.5,0a1.812,1.812,0,0,1,1.924.233c2.944,2.426,6.027,4.851,9.132,7.16a1.884,1.884,0,0,1-.162,3.126,301.407,301.407,0,0,1-45.89,21.83,1.875,1.875,0,0,0-1,2.611,391.055,391.055,0,0,0,30.014,48.815,1.864,1.864,0,0,0,2.063.7A486.048,486.048,0,0,0,610.7,405.729a1.882,1.882,0,0,0,.765-1.352C623.729,277.594,590.933,167.465,524.531,69.836ZM222.491,337.58c-28.972,0-52.844-26.587-52.844-59.239S193.056,219.1,222.491,219.1c29.665,0,53.306,26.82,52.843,59.239C275.334,310.993,251.924,337.58,222.491,337.58Zm195.38,0c-28.971,0-52.843-26.587-52.843-59.239S388.437,219.1,417.871,219.1c29.667,0,53.307,26.82,52.844,59.239C470.715,310.993,447.538,337.58,417.871,337.58Z"],
4604
4604
  "Google": [488, 512, [], "solid", "M488 261.8C488 403.3 391.1 504 248 504 110.8 504 0 393.2 0 256S110.8 8 248 8c66.8 0 123 24.5 166.3 64.9l-67.5 64.9C258.5 52.6 94.3 116.6 94.3 256c0 86.5 69.1 156.6 153.7 156.6 98.2 0 135-70.4 140.8-106.9H248v-85.3h236.1c2.3 12.7 3.9 24.9 3.9 41.4z"],
4605
4605
  "Js": [32, 32, [], "solid", "M18.774 19.7a3.73 3.73 0 0 0 3.376 2.078c1.418 0 2.324-.709 2.324-1.688c0-1.173-.931-1.589-2.491-2.272l-.856-.367c-2.469-1.052-4.11-2.37-4.11-5.156c0-2.567 1.956-4.52 5.012-4.52A5.06 5.06 0 0 1 26.9 10.52l-2.665 1.711a2.33 2.33 0 0 0-2.2-1.467a1.49 1.49 0 0 0-1.638 1.467c0 1.027.636 1.442 2.1 2.078l.856.366c2.908 1.247 4.549 2.518 4.549 5.376c0 3.081-2.42 4.769-5.671 4.769a6.58 6.58 0 0 1-6.236-3.5ZM6.686 20c.538.954 1.027 1.76 2.2 1.76c1.124 0 1.834-.44 1.834-2.15V7.975h3.422v11.683c0 3.543-2.078 5.156-5.11 5.156A5.31 5.31 0 0 1 3.9 21.688Z"],
4606
+ "Ts": [32, 32, [], "solid", "M23.827 8.243a4.4 4.4 0 0 1 2.223 1.281a6 6 0 0 1 .852 1.143c.011.045-1.534 1.083-2.471 1.662c-.034.023-.169-.124-.322-.35a2.01 2.01 0 0 0-1.67-1c-1.077-.074-1.771.49-1.766 1.433a1.3 1.3 0 0 0 .153.666c.237.49.677.784 2.059 1.383c2.544 1.095 3.636 1.817 4.31 2.843a5.16 5.16 0 0 1 .416 4.333a4.76 4.76 0 0 1-3.932 2.815a11 11 0 0 1-2.708-.028a6.53 6.53 0 0 1-3.616-1.884a6.3 6.3 0 0 1-.926-1.371a3 3 0 0 1 .327-.208c.158-.09.756-.434 1.32-.761l1.024-.6l.214.312a4.8 4.8 0 0 0 1.35 1.292a3.3 3.3 0 0 0 3.458-.175a1.545 1.545 0 0 0 .2-1.974c-.276-.395-.84-.727-2.443-1.422a8.8 8.8 0 0 1-3.349-2.055a4.7 4.7 0 0 1-.976-1.777a7.1 7.1 0 0 1-.062-2.268a4.33 4.33 0 0 1 3.644-3.374a9 9 0 0 1 2.691.084m-8.343 1.483l.011 1.454h-4.63v13.148H7.6V11.183H2.97V9.755a14 14 0 0 1 .04-1.466c.017-.023 2.832-.034 6.245-.028l6.211.017Z"],
4606
4607
  "Linux": [448, 512, [], "regular", "M220.8 123.3c1 .5 1.8 1.7 3 1.7 1.1 0 2.8-.4 2.9-1.5.2-1.4-1.9-2.3-3.2-2.9-1.7-.7-3.9-1-5.5-.1-.4.2-.8.7-.6 1.1.3 1.3 2.3 1.1 3.4 1.7zm-21.9 1.7c1.2 0 2-1.2 3-1.7 1.1-.6 3.1-.4 3.5-1.6.2-.4-.2-.9-.6-1.1-1.6-.9-3.8-.6-5.5.1-1.3.6-3.4 1.5-3.2 2.9.1 1 1.8 1.5 2.8 1.4zM420 403.8c-3.6-4-5.3-11.6-7.2-19.7-1.8-8.1-3.9-16.8-10.5-22.4-1.3-1.1-2.6-2.1-4-2.9-1.3-.8-2.7-1.5-4.1-2 9.2-27.3 5.6-54.5-3.7-79.1-11.4-30.1-31.3-56.4-46.5-74.4-17.1-21.5-33.7-41.9-33.4-72C311.1 85.4 315.7.1 234.8 0 132.4-.2 158 103.4 156.9 135.2c-1.7 23.4-6.4 41.8-22.5 64.7-18.9 22.5-45.5 58.8-58.1 96.7-6 17.9-8.8 36.1-6.2 53.3-6.5 5.8-11.4 14.7-16.6 20.2-4.2 4.3-10.3 5.9-17 8.3s-14 6-18.5 14.5c-2.1 3.9-2.8 8.1-2.8 12.4 0 3.9.6 7.9 1.2 11.8 1.2 8.1 2.5 15.7.8 20.8-5.2 14.4-5.9 24.4-2.2 31.7 3.8 7.3 11.4 10.5 20.1 12.3 17.3 3.6 40.8 2.7 59.3 12.5 19.8 10.4 39.9 14.1 55.9 10.4 11.6-2.6 21.1-9.6 25.9-20.2 12.5-.1 26.3-5.4 48.3-6.6 14.9-1.2 33.6 5.3 55.1 4.1.6 2.3 1.4 4.6 2.5 6.7v.1c8.3 16.7 23.8 24.3 40.3 23 16.6-1.3 34.1-11 48.3-27.9 13.6-16.4 36-23.2 50.9-32.2 7.4-4.5 13.4-10.1 13.9-18.3.4-8.2-4.4-17.3-15.5-29.7zM223.7 87.3c9.8-22.2 34.2-21.8 44-.4 6.5 14.2 3.6 30.9-4.3 40.4-1.6-.8-5.9-2.6-12.6-4.9 1.1-1.2 3.1-2.7 3.9-4.6 4.8-11.8-.2-27-9.1-27.3-7.3-.5-13.9 10.8-11.8 23-4.1-2-9.4-3.5-13-4.4-1-6.9-.3-14.6 2.9-21.8zM183 75.8c10.1 0 20.8 14.2 19.1 33.5-3.5 1-7.1 2.5-10.2 4.6 1.2-8.9-3.3-20.1-9.6-19.6-8.4.7-9.8 21.2-1.8 28.1 1 .8 1.9-.2-5.9 5.5-15.6-14.6-10.5-52.1 8.4-52.1zm-13.6 60.7c6.2-4.6 13.6-10 14.1-10.5 4.7-4.4 13.5-14.2 27.9-14.2 7.1 0 15.6 2.3 25.9 8.9 6.3 4.1 11.3 4.4 22.6 9.3 8.4 3.5 13.7 9.7 10.5 18.2-2.6 7.1-11 14.4-22.7 18.1-11.1 3.6-19.8 16-38.2 14.9-3.9-.2-7-1-9.6-2.1-8-3.5-12.2-10.4-20-15-8.6-4.8-13.2-10.4-14.7-15.3-1.4-4.9 0-9 4.2-12.3zm3.3 334c-2.7 35.1-43.9 34.4-75.3 18-29.9-15.8-68.6-6.5-76.5-21.9-2.4-4.7-2.4-12.7 2.6-26.4v-.2c2.4-7.6.6-16-.6-23.9-1.2-7.8-1.8-15 .9-20 3.5-6.7 8.5-9.1 14.8-11.3 10.3-3.7 11.8-3.4 19.6-9.9 5.5-5.7 9.5-12.9 14.3-18 5.1-5.5 10-8.1 17.7-6.9 8.1 1.2 15.1 6.8 21.9 16l19.6 35.6c9.5 19.9 43.1 48.4 41 68.9zm-1.4-25.9c-4.1-6.6-9.6-13.6-14.4-19.6 7.1 0 14.2-2.2 16.7-8.9 2.3-6.2 0-14.9-7.4-24.9-13.5-18.2-38.3-32.5-38.3-32.5-13.5-8.4-21.1-18.7-24.6-29.9s-3-23.3-.3-35.2c5.2-22.9 18.6-45.2 27.2-59.2 2.3-1.7.8 3.2-8.7 20.8-8.5 16.1-24.4 53.3-2.6 82.4.6-20.7 5.5-41.8 13.8-61.5 12-27.4 37.3-74.9 39.3-112.7 1.1.8 4.6 3.2 6.2 4.1 4.6 2.7 8.1 6.7 12.6 10.3 12.4 10 28.5 9.2 42.4 1.2 6.2-3.5 11.2-7.5 15.9-9 9.9-3.1 17.8-8.6 22.3-15 7.7 30.4 25.7 74.3 37.2 95.7 6.1 11.4 18.3 35.5 23.6 64.6 3.3-.1 7 .4 10.9 1.4 13.8-35.7-11.7-74.2-23.3-84.9-4.7-4.6-4.9-6.6-2.6-6.5 12.6 11.2 29.2 33.7 35.2 59 2.8 11.6 3.3 23.7.4 35.7 16.4 6.8 35.9 17.9 30.7 34.8-2.2-.1-3.2 0-4.2 0 3.2-10.1-3.9-17.6-22.8-26.1-19.6-8.6-36-8.6-38.3 12.5-12.1 4.2-18.3 14.7-21.4 27.3-2.8 11.2-3.6 24.7-4.4 39.9-.5 7.7-3.6 18-6.8 29-32.1 22.9-76.7 32.9-114.3 7.2zm257.4-11.5c-.9 16.8-41.2 19.9-63.2 46.5-13.2 15.7-29.4 24.4-43.6 25.5s-26.5-4.8-33.7-19.3c-4.7-11.1-2.4-23.1 1.1-36.3 3.7-14.2 9.2-28.8 9.9-40.6.8-15.2 1.7-28.5 4.2-38.7 2.6-10.3 6.6-17.2 13.7-21.1.3-.2.7-.3 1-.5.8 13.2 7.3 26.6 18.8 29.5 12.6 3.3 30.7-7.5 38.4-16.3 9-.3 15.7-.9 22.6 5.1 9.9 8.5 7.1 30.3 17.1 41.6 10.6 11.6 14 19.5 13.7 24.6zM173.3 148.7c2 1.9 4.7 4.5 8 7.1 6.6 5.2 15.8 10.6 27.3 10.6 11.6 0 22.5-5.9 31.8-10.8 4.9-2.6 10.9-7 14.8-10.4s5.9-6.3 3.1-6.6-2.6 2.6-6 5.1c-4.4 3.2-9.7 7.4-13.9 9.8-7.4 4.2-19.5 10.2-29.9 10.2s-18.7-4.8-24.9-9.7c-3.1-2.5-5.7-5-7.7-6.9-1.5-1.4-1.9-4.6-4.3-4.9-1.4-.1-1.8 3.7 1.7 6.5z"],
4607
4608
  "SquareJs": [448, 512, [], "solid", "M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM180.9 444.9c-33.7 0-53.2-17.4-63.2-38.5L152 385.7c6.6 11.7 12.6 21.6 27.1 21.6c13.8 0 22.6-5.4 22.6-26.5V237.7h42.1V381.4c0 43.6-25.6 63.5-62.9 63.5zm85.8-43L301 382.1c9 14.7 20.8 25.6 41.5 25.6c17.4 0 28.6-8.7 28.6-20.8c0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5c0-31.6 24.1-55.6 61.6-55.6c26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18c-12.3 0-20.1 7.8-20.1 18c0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2c0 37.8-29.8 58.6-69.7 58.6c-39.1 0-64.4-18.6-76.7-43z"],
4608
4609
  "Safari": [512, 512, [], "solid", "M274.69,274.69l-37.38-37.38L166,346ZM256,8C119,8,8,119,8,256S119,504,256,504,504,393,504,256,393,8,256,8ZM411.85,182.79l14.78-6.13A8,8,0,0,1,437.08,181h0a8,8,0,0,1-4.33,10.46L418,197.57a8,8,0,0,1-10.45-4.33h0A8,8,0,0,1,411.85,182.79ZM314.43,94l6.12-14.78A8,8,0,0,1,331,74.92h0a8,8,0,0,1,4.33,10.45l-6.13,14.78a8,8,0,0,1-10.45,4.33h0A8,8,0,0,1,314.43,94ZM256,60h0a8,8,0,0,1,8,8V84a8,8,0,0,1-8,8h0a8,8,0,0,1-8-8V68A8,8,0,0,1,256,60ZM181,74.92a8,8,0,0,1,10.46,4.33L197.57,94a8,8,0,1,1-14.78,6.12l-6.13-14.78A8,8,0,0,1,181,74.92Zm-63.58,42.49h0a8,8,0,0,1,11.31,0L140,128.72A8,8,0,0,1,140,140h0a8,8,0,0,1-11.31,0l-11.31-11.31A8,8,0,0,1,117.41,117.41ZM60,256h0a8,8,0,0,1,8-8H84a8,8,0,0,1,8,8h0a8,8,0,0,1-8,8H68A8,8,0,0,1,60,256Zm40.15,73.21-14.78,6.13A8,8,0,0,1,74.92,331h0a8,8,0,0,1,4.33-10.46L94,314.43a8,8,0,0,1,10.45,4.33h0A8,8,0,0,1,100.15,329.21Zm4.33-136h0A8,8,0,0,1,94,197.57l-14.78-6.12A8,8,0,0,1,74.92,181h0a8,8,0,0,1,10.45-4.33l14.78,6.13A8,8,0,0,1,104.48,193.24ZM197.57,418l-6.12,14.78a8,8,0,0,1-14.79-6.12l6.13-14.78A8,8,0,1,1,197.57,418ZM264,444a8,8,0,0,1-8,8h0a8,8,0,0,1-8-8V428a8,8,0,0,1,8-8h0a8,8,0,0,1,8,8Zm67-6.92h0a8,8,0,0,1-10.46-4.33L314.43,418a8,8,0,0,1,4.33-10.45h0a8,8,0,0,1,10.45,4.33l6.13,14.78A8,8,0,0,1,331,437.08Zm63.58-42.49h0a8,8,0,0,1-11.31,0L372,383.28A8,8,0,0,1,372,372h0a8,8,0,0,1,11.31,0l11.31,11.31A8,8,0,0,1,394.59,394.59ZM286.25,286.25,110.34,401.66,225.75,225.75,401.66,110.34ZM437.08,331h0a8,8,0,0,1-10.45,4.33l-14.78-6.13a8,8,0,0,1-4.33-10.45h0A8,8,0,0,1,418,314.43l14.78,6.12A8,8,0,0,1,437.08,331ZM444,264H428a8,8,0,0,1-8-8h0a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8h0A8,8,0,0,1,444,264Z"],
@@ -4616,6 +4617,7 @@ const RAW_ICONS = {
4616
4617
  "Windows": [448, 512, [], "solid", "M0 93.7l183.6-25.3v177.4H0V93.7zm0 324.6l183.6 25.3V268.4H0v149.9zm203.8 28L448 480V268.4H203.8v177.9zm0-380.6v180.1H448V32L203.8 65.7z"],
4617
4618
  "Whatsapp": [448, 512, [], "regular", "M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7.9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z"],
4618
4619
  "X-Twitter": [512, 512, [], "regular", "M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8L200.7 275.5 26.8 48H172.4L272.9 180.9 389.2 48zM364.4 421.8h39.1L151.1 88h-42L364.4 421.8z"],
4620
+ "Php": [512, 512, [], "solid", "M170.322 349.808c-2.4-15.66-9-28.38-25.02-34.531c-6.27-2.4-11.7-6.78-17.88-9.54c-7.02-3.15-14.16-6.15-21.57-8.1c-5.61-1.5-10.83 1.02-14.16 5.94c-3.15 4.62-.87 8.97 1.77 12.84c2.97 4.35 6.27 8.49 9.6 12.57c5.52 6.78 11.37 13.29 16.74 20.161c5.13 6.57 9.51 13.86 8.76 22.56c-1.65 19.08-10.29 34.891-24.21 47.76c-1.53 1.38-4.23 2.37-6.21 2.19c-8.88-.96-16.95-4.32-23.46-10.53c-7.47-7.11-6.33-15.48 2.61-20.67c2.13-1.23 4.35-2.37 6.3-3.87c5.46-4.11 7.29-11.13 4.32-17.22c-1.41-2.94-3-6.12-5.34-8.25c-11.43-10.41-22.651-21.151-34.891-30.63C18.01 307.447 2.771 276.968.43 240.067c-2.64-40.981 6.87-79.231 28.5-114.242c8.19-13.29 17.73-25.951 32.37-32.52c9.96-4.47 20.88-6.99 31.531-9.78c29.311-7.71 58.89-13.5 89.401-8.34c26.28 4.41 45.511 17.94 54.331 43.77c5.79 16.89 7.17 34.35 5.37 52.231c-3.54 35.131-29.49 66.541-63.331 75.841c-14.67 4.02-22.68 1.77-31.5-10.44c-6.33-8.79-11.58-18.36-17.25-27.631c-.84-1.38-1.44-2.97-2.16-4.44c-.69-1.47-1.44-2.88-2.16-4.35c2.13 15.24 5.67 29.911 13.98 42.99c4.5 7.11 10.5 12.36 19.29 13.14c32.34 2.91 59.641-7.71 79.021-33.721c21.69-29.101 26.461-62.581 20.19-97.831c-1.23-6.96-3.3-13.77-4.77-20.7c-.99-4.47.78-7.77 5.19-9.33c2.04-.69 4.14-1.26 6.18-1.68c26.461-5.7 53.221-7.59 80.191-4.86c30.601 3.06 59.551 11.46 85.441 28.471c40.531 26.67 65.641 64.621 79.291 110.522c1.98 6.66 2.28 13.95 2.46 20.971c.12 4.68-2.88 5.91-6.45 2.97c-3.93-3.21-7.53-6.87-10.92-10.65c-3.15-3.57-5.67-7.65-8.73-11.4c-2.37-2.94-4.44-2.49-5.58 1.17c-.72 2.22-1.35 4.41-1.98 6.63c-7.08 25.26-18.24 48.3-36.33 67.711c-2.52 2.73-4.77 6.78-5.07 10.38c-.78 9.96-1.35 20.13-.39 30.06c1.98 21.331 5.07 42.57 7.47 63.871c1.35 12.03-2.52 19.11-13.83 23.281c-7.95 2.91-16.47 5.04-24.87 5.64c-13.38.93-26.88.27-40.32.27c-.36-15 .93-29.731-13.17-37.771c2.73-11.13 5.88-21.69 7.77-32.49c1.56-8.97.24-17.79-6.06-25.14c-5.91-6.93-13.32-8.82-20.101-4.86c-20.43 11.91-41.671 11.97-63.301 4.17c-9.93-3.6-16.86-1.56-22.351 7.5c-5.91 9.75-8.4 20.7-7.74 31.771c.84 13.95 3.27 27.75 5.13 41.64c1.02 7.77.15 9.78-7.56 11.76c-17.13 4.35-34.56 4.83-52.081 3.42c-.93-.09-1.86-.48-2.46-.63c-.87-14.55.66-29.671-16.68-37.411c7.68-16.29 6.63-33.18 3.99-50.07l-.06-.15zm-103.561-57.09c2.55-2.4 4.59-6.15 5.31-9.6c1.8-8.64-4.68-20.22-12.18-23.43c-3.99-1.74-7.47-1.11-10.29 2.07c-6.87 7.77-13.65 15.63-20.401 23.521c-1.14 1.35-2.16 2.94-2.97 4.53c-2.7 5.19-1.11 8.97 4.65 10.38c3.48.87 7.08 1.05 10.65 1.56c9.3-.9 18.3-2.46 25.23-9zm.78-86.371c-.03-6.18-5.19-11.34-11.28-11.37c-6.27-.03-11.67 5.58-11.46 11.76c.27 6.21 5.43 11.19 11.61 11.07c6.24-.09 11.22-5.19 11.16-11.43z"],
4619
4621
  // Internals Override
4620
4622
  "Keyboard": [576, 512, [], "regular", "M64 112c-8.8 0-16 7.2-16 16l0 256c0 8.8 7.2 16 16 16l448 0c8.8 0 16-7.2 16-16l0-256c0-8.8-7.2-16-16-16L64 112zM0 128C0 92.7 28.7 64 64 64l448 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zM176 320l224 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm-72-72c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16z"],
4621
4623
  "IdCard": [576, 512, [], "regular", "M528 160l0 256c0 8.8-7.2 16-16 16l-192 0c0-44.2-35.8-80-80-80l-64 0c-44.2 0-80 35.8-80 80l-32 0c-8.8 0-16-7.2-16-16l0-256 480 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM272 256a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zm104-48c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0z"],
@@ -4796,7 +4798,7 @@ LX.flushCss = flushCss;
4796
4798
  */
4797
4799
  function deleteElement( element )
4798
4800
  {
4799
- if( element !== undefined ) element.remove();
4801
+ if( element ) element.remove();
4800
4802
  }
4801
4803
 
4802
4804
  LX.deleteElement = deleteElement;
@@ -6223,11 +6225,10 @@ function asTooltip( trigger, content, options = {} )
6223
6225
  trigger.dataset[ "disableTooltip" ] = !( options.active ?? true );
6224
6226
 
6225
6227
  let tooltipDom = null;
6226
- let tooltipParent = LX.root;
6227
6228
 
6228
- const _offset = options.offset ?? 6;
6229
- const _offsetX = options.offsetX ?? _offset;
6230
- const _offsetY = options.offsetY ?? _offset;
6229
+ const _offset = options.offset;
6230
+ const _offsetX = options.offsetX ?? ( _offset ?? 0 );
6231
+ const _offsetY = options.offsetY ?? ( _offset ?? 6 );
6231
6232
 
6232
6233
  trigger.addEventListener( "mouseenter", function(e) {
6233
6234
 
@@ -6241,10 +6242,7 @@ function asTooltip( trigger, content, options = {} )
6241
6242
  tooltipDom.innerHTML = trigger.dataset[ "tooltipContent" ] ?? content;
6242
6243
 
6243
6244
  const nestedDialog = trigger.closest( "dialog" );
6244
- if( nestedDialog && nestedDialog.dataset[ "modal" ] == 'true' )
6245
- {
6246
- tooltipParent = nestedDialog;
6247
- }
6245
+ const tooltipParent = nestedDialog ?? LX.root;
6248
6246
 
6249
6247
  // Remove other first
6250
6248
  LX.root.querySelectorAll( ".lextooltip" ).forEach( e => e.remove() );
@@ -6287,7 +6285,7 @@ function asTooltip( trigger, content, options = {} )
6287
6285
  position[ 0 ] = LX.clamp( position[ 0 ], 0, window.innerWidth - tooltipDom.offsetWidth - 4 );
6288
6286
  position[ 1 ] = LX.clamp( position[ 1 ], 0, window.innerHeight - tooltipDom.offsetHeight - 4 );
6289
6287
 
6290
- if( tooltipParent instanceof HTMLDialogElement )
6288
+ if( nestedDialog )
6291
6289
  {
6292
6290
  let parentRect = tooltipParent.getBoundingClientRect();
6293
6291
  position[ 0 ] -= parentRect.x;
@@ -16410,7 +16408,7 @@ class AssetView {
16410
16408
  this.toolsPanel.sameLine();
16411
16409
  this.toolsPanel.addSelect( "Filter", this.allowedTypes, this.filter ?? this.allowedTypes[ 0 ], v => {
16412
16410
  this._refreshContent( null, v );
16413
- }, { width: "30%", minWidth: "128px" } );
16411
+ }, { width: "30%", minWidth: "128px", overflowContainer: null } );
16414
16412
  this.toolsPanel.addText( null, this.searchValue ?? "", v => this._refreshContent.call(this, v, null), { placeholder: "Search assets.." } );
16415
16413
  this.toolsPanel.addButton( null, "", _onSort.bind(this), { title: "Sort", tooltip: true, icon: ( this.sortMode === AssetView.CONTENT_SORT_ASC ) ? "SortAsc" : "SortDesc" } );
16416
16414
  this.toolsPanel.addButton( null, "", _onChangeView.bind(this), { title: "View", tooltip: true, icon: ( this.layout === AssetView.LAYOUT_GRID ) ? "LayoutGrid" : "LayoutList" } );