lexgui 0.5.4 → 0.5.6

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.
@@ -491,9 +491,9 @@ class CodeEditor {
491
491
 
492
492
  searchPanel.sameLine( 4 );
493
493
  searchPanel.addText( null, "", null, { placeholder: "Find" } );
494
- searchPanel.addButton( null, "up", () => this.search( null, true ), { className: 'micro', icon: "fa fa-arrow-up" } );
495
- searchPanel.addButton( null, "down", () => this.search(), { className: 'micro', icon: "fa fa-arrow-down" } );
496
- searchPanel.addButton( null, "x", this.hideSearchBox.bind( this ), { className: 'micro', icon: "fa fa-xmark" } );
494
+ searchPanel.addButton( null, "up", () => this.search( null, true ), { icon: "fa fa-arrow-up" } );
495
+ searchPanel.addButton( null, "down", () => this.search(), { icon: "fa fa-arrow-down" } );
496
+ searchPanel.addButton( null, "x", this.hideSearchBox.bind( this ), { icon: "fa fa-xmark" } );
497
497
 
498
498
  box.querySelector( 'input' ).addEventListener( 'keyup', e => {
499
499
  if( e.key == 'Escape' ) this.hideSearchBox();
@@ -530,7 +530,7 @@ class CodeEditor {
530
530
  // Add code-sizer
531
531
  {
532
532
  this.codeSizer = document.createElement( 'div' );
533
- this.codeSizer.className = "code-sizer";
533
+ this.codeSizer.className = "code-sizer pseudoparent-tabs";
534
534
 
535
535
  // Append all childs
536
536
  while( this.codeScroller.firstChild )
@@ -1535,9 +1535,9 @@ class CodeEditor {
1535
1535
  let panel = new LX.Panel({ className: "lexcodetabinfo", width: "calc(100%)", height: "auto" });
1536
1536
 
1537
1537
  panel.sameLine();
1538
- panel.addLabel( this.code.title, { float: 'right', signal: "@tab-name" });
1539
- panel.addLabel( "Ln " + 1, { xmaxWidth: "48px", signal: "@cursor-line" });
1540
- panel.addLabel( "Col " + 1, { xmaxWidth: "48px", signal: "@cursor-pos" });
1538
+ panel.addLabel( this.code.title, { fit: true, signal: "@tab-name" });
1539
+ panel.addLabel( "Ln " + 1, { fit: true, signal: "@cursor-line" });
1540
+ panel.addLabel( "Col " + 1, { fit: true, signal: "@cursor-pos" });
1541
1541
  panel.addButton( null, "Spaces: " + this.tabSpaces, ( value, event ) => {
1542
1542
  LX.addContextMenu( "Spaces", event, m => {
1543
1543
  const options = [ 2, 4, 8 ];
@@ -1619,7 +1619,7 @@ class CodeEditor {
1619
1619
  this.processFocus(false);
1620
1620
 
1621
1621
  LX.addContextMenu( null, e, m => {
1622
- m.add( "Create", this.addTab.bind( this, "unnamed.js", true ) );
1622
+ m.add( "Create", this.addTab.bind( this, "unnamed.js", true, "", { language: "JavaScript" } ) );
1623
1623
  m.add( "Load", this.loadTabFromFile.bind( this, "unnamed.js", true ) );
1624
1624
  });
1625
1625
  }
@@ -1731,7 +1731,8 @@ class CodeEditor {
1731
1731
  title: code.title,
1732
1732
  icon: tabIcon,
1733
1733
  onSelect: this._onSelectTab.bind( this, isNewTabButton ),
1734
- onContextMenu: this._onContextMenuTab.bind( this, isNewTabButton )
1734
+ onContextMenu: this._onContextMenuTab.bind( this, isNewTabButton ),
1735
+ allowDelete: true
1735
1736
  } );
1736
1737
 
1737
1738
  // Move into the sizer..
@@ -1805,7 +1806,8 @@ class CodeEditor {
1805
1806
  title: code.title,
1806
1807
  icon: tabIcon,
1807
1808
  onSelect: this._onSelectTab.bind( this, isNewTabButton ),
1808
- onContextMenu: this._onContextMenuTab.bind( this, isNewTabButton )
1809
+ onContextMenu: this._onContextMenuTab.bind( this, isNewTabButton ),
1810
+ allowDelete: true
1809
1811
  });
1810
1812
 
1811
1813
  // Move into the sizer..
@@ -3911,14 +3913,15 @@ class CodeEditor {
3911
3913
  }
3912
3914
 
3913
3915
  _measureChar( char = "a", use_floating = false, get_bb = false ) {
3914
-
3915
- var line = document.createElement( "pre" );
3916
- var text = document.createElement( "span" );
3916
+ const parentContainer = LX.makeContainer( null, "lexcodeeditor", "", document.body );
3917
+ const container = LX.makeContainer( null, "code", "", parentContainer );
3918
+ const line = document.createElement( "pre" );
3919
+ container.appendChild( line );
3920
+ const text = document.createElement( "span" );
3917
3921
  line.appendChild( text );
3918
3922
  text.innerText = char;
3919
- this.code.appendChild( line );
3920
3923
  var rect = text.getBoundingClientRect();
3921
- LX.UTILS.deleteElement( line );
3924
+ LX.UTILS.deleteElement( parentContainer );
3922
3925
  const bb = [ use_floating ? rect.width : Math.floor( rect.width ), use_floating ? rect.height : Math.floor( rect.height ) ];
3923
3926
  return get_bb ? bb : bb[ 0 ];
3924
3927
  }
@@ -4489,8 +4492,8 @@ CodeEditor.keywords = {
4489
4492
  'arguments', 'extends', 'instanceof', 'Infinity'],
4490
4493
  'C': ['int', 'float', 'double', 'long', 'short', 'char', 'const', 'void', 'true', 'false', 'auto', 'struct', 'typedef', 'signed', 'volatile', 'unsigned', 'static', 'extern', 'enum', 'register',
4491
4494
  'union'],
4492
- 'C++': ['int', 'float', 'double', 'bool', 'long', 'short', 'char', 'wchar_t', 'const', 'static_cast', 'dynamic_cast', 'new', 'delete', 'void', 'true', 'false', 'auto', 'struct', 'typedef', 'nullptr',
4493
- 'NULL', 'signed', 'unsigned', 'namespace', 'enum', 'extern', 'union', 'sizeof', 'static'],
4495
+ 'C++': ['int', 'float', 'double', 'bool', 'long', 'short', 'char', 'wchar_t', 'const', 'static_cast', 'dynamic_cast', 'new', 'delete', 'void', 'true', 'false', 'auto', 'class', 'struct', 'typedef', 'nullptr',
4496
+ 'NULL', 'signed', 'unsigned', 'namespace', 'enum', 'extern', 'union', 'sizeof', 'static', 'private', 'public'],
4494
4497
  'CMake': ['cmake_minimum_required', 'set', 'not', 'if', 'endif', 'exists', 'string', 'strequal', 'add_definitions', 'macro', 'endmacro', 'file', 'list', 'source_group', 'add_executable',
4495
4498
  'target_include_directories', 'set_target_properties', 'set_property', 'add_compile_options', 'add_link_options', 'include_directories', 'add_library', 'target_link_libraries',
4496
4499
  'target_link_options', 'add_subdirectory', 'add_compile_definitions', 'project', 'cache'],
package/build/lexgui.css CHANGED
@@ -31,9 +31,9 @@
31
31
  --global-color-warning: #ffc107;
32
32
  --global-color-error: #f54c4c;
33
33
  --global-text-primary: light-dark(#0d0d0e, #f0efef);
34
- --global-text-secondary: light-dark(#262627, #d1d1d3);
35
- --global-text-tertiary: light-dark(#3c3c3df5, #aaaaaa);
36
- --global-text-quaternary: light-dark(#515152f5, #807f7f);
34
+ --global-text-secondary: light-dark(#232324, #d1d1d3);
35
+ --global-text-tertiary: light-dark(#4e4e4f, #aaaaaa);
36
+ --global-text-quaternary: light-dark(#6a6a6b, #807f7f);
37
37
  --global-intense-background: light-dark(#fefefe, #040405);
38
38
  --global-medium-background: #252525;
39
39
  --global-blur-background: light-dark(#f7f7f7d8, #1f1f1fe7);
@@ -333,7 +333,7 @@ svg.xxl { width: var(--svg-size-xxl); height: var(--svg-size-xxl); }
333
333
  outline: none;
334
334
  }
335
335
 
336
- :root[data-strictVP="false"] {
336
+ :root[data-strictVP="false"] #lexroot {
337
337
  bottom: unset;
338
338
  }
339
339
 
@@ -356,6 +356,7 @@ svg.xxl { width: var(--svg-size-xxl); height: var(--svg-size-xxl); }
356
356
  align-content: center;
357
357
  border-radius: 4px;
358
358
  transition: all 0.15s linear;
359
+ place-self: center;
359
360
  }
360
361
 
361
362
  .lexicon:hover {
@@ -1360,7 +1361,8 @@ a svg, svg path {
1360
1361
  font-family: var(--global-font);
1361
1362
  padding: 4px;
1362
1363
  color: var(--global-text-primary);
1363
- background-color: var(--global-color-tertiary);
1364
+ --background-color: var(--global-color-tertiary);
1365
+ background-color: var(--background-color);
1364
1366
  outline: none;
1365
1367
  border-radius: 6px;
1366
1368
  border: 1px solid var(--global-color-transparent);
@@ -1370,7 +1372,7 @@ a svg, svg path {
1370
1372
  }
1371
1373
 
1372
1374
  .lexwidget input:not(.lexcheckbox, .lextoggle, .lexrangeslider):hover {
1373
- background-color: color-mix(in srgb, var(--global-color-tertiary), #000 7%);
1375
+ background-color: color-mix(in srgb, var(--background-color), #000 5%);
1374
1376
  }
1375
1377
 
1376
1378
  .lexwidget input.colorinput {
@@ -1387,6 +1389,7 @@ a svg, svg path {
1387
1389
  /* Text Widget */
1388
1390
 
1389
1391
  .lexwidget input.lextext, .lexwidget div.lextext {
1392
+ width: 100%;
1390
1393
  border-radius: 6px;
1391
1394
  position: relative;
1392
1395
  border: 1px solid transparent;
@@ -1443,6 +1446,7 @@ a svg, svg path {
1443
1446
  /* TextArea Widget */
1444
1447
 
1445
1448
  .lexwidget textarea {
1449
+ width: 100%;
1446
1450
  word-break: break-word;
1447
1451
  font-family: var(--global-font);
1448
1452
  background: none;
@@ -1481,6 +1485,118 @@ a svg, svg path {
1481
1485
  border: 1px solid var(--global-text-quaternary);
1482
1486
  }
1483
1487
 
1488
+ /* Input Color Widget */
1489
+
1490
+ .lexcolor {
1491
+ display: flex;
1492
+ align-items: center;
1493
+ }
1494
+
1495
+ .lexcolor > div:first-child {
1496
+ background: repeating-conic-gradient(#ccc 0% 25%, #fff 0% 50%) 50% / 12px 12px;
1497
+ }
1498
+
1499
+ .lexcolor .lexcolorsample {
1500
+ width: 9px;
1501
+ height: 18px;
1502
+ cursor: pointer;
1503
+ background-color: currentColor;
1504
+ }
1505
+
1506
+ .lexcolor .colorinfo {
1507
+ color: var(--global-text-primary);
1508
+ min-width: 56px;
1509
+ margin-left: 8px;
1510
+ font-weight: 600;
1511
+ }
1512
+
1513
+ .lexcolor .lexwidget {
1514
+ padding: 0px;
1515
+ }
1516
+
1517
+ .lexcolorpicker {
1518
+ background-color: var(--global-color-primary);
1519
+ font-size: var(--global-font-size);
1520
+ position: fixed;
1521
+ left: 0px;
1522
+ top: 0px;
1523
+ width: 256px;
1524
+ z-index: 150;
1525
+ display: flex;
1526
+ flex-direction: column;
1527
+ padding: 0.2rem;
1528
+ border-radius: 0.5rem;
1529
+ border: 1px solid #7a797c4f;
1530
+ padding: 0.5rem;
1531
+ gap: 0.5rem;
1532
+ animation-duration: 400ms;
1533
+ animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
1534
+ will-change: transform, opacity;
1535
+ outline: none;
1536
+ }
1537
+
1538
+ .lexcolorpicker[data-side="top"] { animation-name: slideDownAndFade }
1539
+ .lexcolorpicker[data-side="right"] { animation-name: slideLeftAndFade }
1540
+ .lexcolorpicker[data-side="bottom"] { animation-name: slideUpAndFade }
1541
+ .lexcolorpicker[data-side="left"] { animation-name: slideRightAndFade }
1542
+
1543
+ .lexcolorpicker input.lextext {
1544
+ padding-inline: 0 !important;
1545
+ color: var(--global-text-secondary) !important;
1546
+ cursor: pointer;
1547
+ }
1548
+
1549
+ .lexcolormarker {
1550
+ width: 1rem;
1551
+ height: 1rem;
1552
+ border-radius: 0.5rem;
1553
+ background-color: transparent;
1554
+ position: absolute;
1555
+ border: 3px solid #fff;
1556
+ pointer-events: none;
1557
+ }
1558
+
1559
+ .lexcolorpickerbg {
1560
+ width: 100%;
1561
+ aspect-ratio: 1;
1562
+ border-radius: 0.3rem;
1563
+ background-image: linear-gradient(0deg, #000000 0, transparent), linear-gradient(90deg, #ffffff 0, #fff0);
1564
+ position: relative;
1565
+ cursor: pointer;
1566
+ }
1567
+
1568
+ .lexhuetracker {
1569
+ width: 100%;
1570
+ height: 1rem;
1571
+ border-radius: 0.5rem;
1572
+ background-image: linear-gradient(-90deg, red, #f0f 17%, #00f 33%, #0ff, #0f0 67%, #ff0 83%, red);
1573
+ position: relative;
1574
+ cursor: pointer;
1575
+ }
1576
+
1577
+ .lexalphatracker {
1578
+ width: 100%;
1579
+ height: 1rem;
1580
+ border-radius: 0.5rem;
1581
+ /* color: rgba(0, 0, 0, 1); */
1582
+ background: linear-gradient(90deg, rgba(0, 0, 0, 0), currentColor), repeating-conic-gradient(#ccc 0% 25%, #fff 0% 50%) 50% / 12px 12px;
1583
+ background-color: white; /* fallback */
1584
+ position: relative;
1585
+ cursor: pointer;
1586
+ }
1587
+
1588
+ .lexcolorpicker * {
1589
+ font-size: var(--global-font-size-sm);
1590
+ }
1591
+
1592
+ .lexcolorpicker .lextext {
1593
+ letter-spacing: 0.02rem;
1594
+ }
1595
+
1596
+ .lexcolorpicker .lexwidget {
1597
+ padding: 2px !important;
1598
+ }
1599
+
1484
1600
  /* Title Widget */
1485
1601
 
1486
1602
  .lextitle {
@@ -1530,7 +1646,7 @@ a svg, svg path {
1530
1646
  }
1531
1647
 
1532
1648
 
1533
- /* Buttons */
1649
+ /* Button Widget */
1534
1650
 
1535
1651
  .lexbutton {
1536
1652
  --button-color: var(--global-color-tertiary);
@@ -1558,7 +1674,7 @@ a svg, svg path {
1558
1674
  .lexbutton.accent { --button-color: var(--global-color-accent); --border-color: var(--global-color-quaternary); color: #fefefe; }
1559
1675
  .lexbutton.contrast { --button-color: var(--global-text-primary); --border-color: var(--global-color-quaternary); color: var(--global-color-primary); }
1560
1676
  .lexbutton.warning { --button-color: var(--global-color-warning); --border-color: #793205; color: var(--border-color); }
1561
- .lexbutton.error { --button-color: var(--global-color-error); --border-color: #52020d; color: var(--border-color); }
1677
+ .lexbutton.error { --button-color: var(--global-color-error); --border-color: #310108; color: var(--border-color); }
1562
1678
 
1563
1679
  /* Few Sizes */
1564
1680
  .lexbutton.xs { width: 35%; margin: 0 auto; }
@@ -1577,18 +1693,18 @@ a svg, svg path {
1577
1693
  background-color: color-mix(in srgb, var(--button-color), #000 9%) !important;
1578
1694
  }
1579
1695
  :root[data-theme="light"] .lexbutton:hover {
1580
- background-color: color-mix(in srgb, var(--button-color), #fff 18%) !important;
1696
+ background-color: color-mix(in srgb, var(--button-color), #fff 9%) !important;
1581
1697
  }
1582
1698
 
1583
1699
  .lexbutton:active:not(.lexbutton.combo) {
1584
- background-color: color-mix(in srgb, var(--button-color), #fff 4%) !important;
1700
+ background-color: color-mix(in srgb, var(--button-color), #fff 4%);
1585
1701
  }
1586
1702
  :root[data-theme="light"] .lexbutton:active:not(.lexbutton.combo) {
1587
- background-color: color-mix(in srgb, var(--button-color), #000 4%) !important;
1703
+ background-color: color-mix(in srgb, var(--button-color), #000 4%);
1588
1704
  }
1589
1705
 
1590
- .lexbutton:disabled {
1591
- color: var(--global-text-tertiary);
1706
+ .lexbutton:disabled, .lexbutton:disabled a {
1707
+ color: var(--global-text-quaternary);
1592
1708
  }
1593
1709
 
1594
1710
  .lexbutton.selected {
@@ -2133,49 +2249,6 @@ dialog .lexselect .lexselectoptions {
2133
2249
  .lexradiogroup.warning .lexradiogroupitem button.checked span { background-color: var(--global-color-warning); }
2134
2250
  .lexradiogroup.error .lexradiogroupitem button.checked span { background-color: var(--global-color-error); }
2135
2251
 
2136
- /* Input Color Widget */
2137
-
2138
- .lexcolor {
2139
- display: flex;
2140
- align-items: center;
2141
- }
2142
-
2143
- .lexcolor input {
2144
- width: 96px;
2145
- }
2146
-
2147
- .lexcolor input[type="color"]::-webkit-color-swatch-wrapper {
2148
- padding: 2px;
2149
- border-radius: 4px;
2150
-
2151
- }
2152
-
2153
- .lexcolor input[type="color"]::-webkit-color-swatch {
2154
- border-radius: 4px;
2155
- border: none;
2156
- }
2157
-
2158
- .lexcolor:has(input:focus) input[type="color"] {
2159
- outline: 2px solid var(--global-color-accent);
2160
- border-radius: 4px;
2161
- }
2162
-
2163
- .lexcolor .colorinfo {
2164
- color: var(--global-text-primary);
2165
- min-width: 56px;
2166
- margin-left: 8px;
2167
- font-weight: 600;
2168
- }
2169
-
2170
- .lexcolor input[type="color"] {
2171
- cursor: pointer;
2172
- background: none;
2173
- }
2174
-
2175
- .lexcolor .lexwidget {
2176
- padding: 0px;
2177
- }
2178
-
2179
2252
  /* Vector Widgets */
2180
2253
 
2181
2254
  .lexvector {
@@ -2209,7 +2282,7 @@ dialog .lexselect .lexselectoptions {
2209
2282
  .lexwidget .vecbox .drag-icon {
2210
2283
  position: absolute;
2211
2284
  width: 2px;
2212
- right: 0.25em;
2285
+ right: 1em;
2213
2286
  top: 25%;
2214
2287
  font-size: var(--global-font-size-sm);
2215
2288
  color: var(--global-text-secondary);
@@ -2350,8 +2423,7 @@ input[type=number] {
2350
2423
  height: 12px;
2351
2424
  border: 1px solid #c9c7de;
2352
2425
  border-radius: 6px;
2353
- background: light-dark(var(--global-color-accent-light), var(--global-color-accent));
2354
- box-shadow: 0px 0px 6px #505050;
2426
+ background: var(--global-color-accent);
2355
2427
  cursor: pointer;
2356
2428
  }
2357
2429
 
@@ -2488,6 +2560,18 @@ input[type=number] {
2488
2560
  user-select: none;
2489
2561
  }
2490
2562
 
2563
+ /* Size Widget */
2564
+
2565
+ .lexotpslot.active {
2566
+ border: 1px solid var(--global-text-primary);
2567
+ transition: border-color 0.1s ease-in;
2568
+ }
2569
+
2570
+ .lexotpslot.disabled {
2571
+ color: var(--global-text-tertiary);
2572
+ cursor: not-allowed;
2573
+ }
2574
+
2491
2575
  /* Pad Widget */
2492
2576
 
2493
2577
  .lexwidget .lexpad {
@@ -2621,7 +2705,6 @@ input[type=number] {
2621
2705
  }
2622
2706
 
2623
2707
  .lextree .lextreetools.notitle {
2624
- /* padding-top: 14px; */
2625
2708
  border-top-left-radius: 8px;
2626
2709
  border-top-right-radius: 8px;
2627
2710
  }
@@ -2673,9 +2756,13 @@ input[type=number] {
2673
2756
  -moz-user-select: none;
2674
2757
  -ms-user-select: none;
2675
2758
  user-select: none;
2759
+ transition-property: color, background-color, border-color;
2760
+ transition-timing-function: ease-out;
2761
+ transition-duration: .15s;
2676
2762
  }
2677
2763
 
2678
2764
  .lextree .lextreeitem input {
2765
+ color: var(--global-color-primary);
2679
2766
  padding: 0;
2680
2767
  border: none;
2681
2768
  }
@@ -2716,8 +2803,12 @@ input[type=number] {
2716
2803
  }
2717
2804
 
2718
2805
  .lextree .lextreeitem.selected {
2719
- color: var(--global-text-primary);
2720
- background: light-dark(var(--global-color-accent-light), var(--global-color-accent));
2806
+ color: #f4f4f5;
2807
+ background: var(--global-color-accent);
2808
+ }
2809
+
2810
+ .lextree .lextreeitem.selected a.lexicon {
2811
+ color: #f4f4f5;
2721
2812
  }
2722
2813
 
2723
2814
  .lextree .lextreeitem a.hierarchy {
@@ -2728,18 +2819,6 @@ input[type=number] {
2728
2819
  font-size: var(--global-font-size-sm);
2729
2820
  }
2730
2821
 
2731
- .lextree .lextreeitem .itemicon:hover {
2732
- color: var(--global-color-accent);
2733
- }
2734
-
2735
- .lextree .lextreeitem.selected .itemicon:hover {
2736
- color: var(--global-text-secondary);
2737
- }
2738
-
2739
- .lextree .lextreeitem .itemicon:active {
2740
- margin-top: 7px;
2741
- }
2742
-
2743
2822
  /* File Input */
2744
2823
 
2745
2824
  .lexfileinput::file-selector-button {
@@ -2843,7 +2922,7 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
2843
2922
 
2844
2923
  .lexbadge {
2845
2924
  border-radius: 0.35rem;
2846
- color: var(--global-text-primary);
2925
+ color: #f4f4f5;
2847
2926
  border: 1px solid var(--badge-color, #14171a);
2848
2927
  width: fit-content;
2849
2928
  justify-content: center;
@@ -2856,12 +2935,12 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
2856
2935
  }
2857
2936
 
2858
2937
  /* Colors */
2859
- .lexbadge.primary { --badge-color: var(--global-color-accent); }
2860
- .lexbadge.secondary { --badge-color: var(--global-color-accent-light); }
2938
+ .lexbadge.primary { --badge-color: var(--global-color-primary); color: var(--global-text-primary); }
2939
+ .lexbadge.secondary { --badge-color: var(--global-color-secondary); color: var(--global-text-primary); }
2861
2940
  .lexbadge.accent { --badge-color: var(--global-color-accent); }
2862
2941
  .lexbadge.contrast { --badge-color: var(--global-text-primary); color: var(--global-color-primary); }
2863
- .lexbadge.warning { --badge-color: var(--global-color-warning); }
2864
- .lexbadge.error { --badge-color: var(--global-color-error); }
2942
+ .lexbadge.warning { --badge-color: var(--global-color-warning); color: #793205; }
2943
+ .lexbadge.error { --badge-color: var(--global-color-error); color: #310108; }
2865
2944
  /* Styles */
2866
2945
  .lexbadge.outline {
2867
2946
  color: var(--badge-color, var(--global-text-primary));
@@ -3085,6 +3164,18 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
3085
3164
  margin-right: 12px;
3086
3165
  }
3087
3166
 
3167
+ .lexmenubar .lexbutton {
3168
+ padding-inline: 0.15rem;
3169
+ }
3170
+
3171
+ .lexmenubar .lexbutton:hover, :root[data-theme="light"] .lexmenubar .lexbutton:hover {
3172
+ background-color: transparent !important;
3173
+ }
3174
+
3175
+ .lexmenubar .lexbutton:active, :root[data-theme="light"] .lexmenubar .lexbutton:active {
3176
+ background-color: transparent !important;
3177
+ }
3178
+
3088
3179
  .lexmenubar .lexmenubutton {
3089
3180
  color: var(--global-text-secondary);
3090
3181
  padding-inline: 0.45em;
@@ -3221,7 +3312,6 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
3221
3312
  padding: 10px;
3222
3313
  display: flex;
3223
3314
  flex-direction: column;
3224
- /* gap: 0.2rem; */
3225
3315
  }
3226
3316
 
3227
3317
  .lexsidebar *::-webkit-scrollbar {
@@ -3419,32 +3509,10 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
3419
3509
  display: none !important;
3420
3510
  }
3421
3511
 
3422
- .lexsidebar.collapsed .lexsidebarcontent div a:not(.lexsidebarentryicon) {
3512
+ .lexsidebar.collapsed .lexsidebarentrycontent div, .lexsidebar.collapsed .lexsidebarcontent div a:not(.lexsidebarentryicon) {
3423
3513
  display: none;
3424
3514
  }
3425
3515
 
3426
- .lexsidebar .lexsidebarentry .lexsidebarentrydesc {
3427
- position: absolute;
3428
- margin-left: 32px;
3429
- font-weight: 600;
3430
- background-color: var(--global-text-primary);
3431
- color: var(--global-color-primary);
3432
- font-size: var(--global-font-size-sm);
3433
- border-radius: 6px;
3434
- text-align: center;
3435
- opacity: 0;
3436
- transform: translate(-12px, 0);
3437
- z-index: 102;
3438
- padding: 4px 8px;
3439
- transition: opacity ease-in 0.15s, transform ease-in 0.15s;
3440
- pointer-events: none;
3441
- }
3442
-
3443
- .lexsidebar.collapsed .lexsidebarentry:hover .lexsidebarentrydesc {
3444
- opacity: 1;
3445
- transform: translate(2px, 0);
3446
- }
3447
-
3448
3516
  .lexsidebar.collapsed .lexsidebarentry:hover {
3449
3517
  display: flex;
3450
3518
  }
@@ -4354,22 +4422,28 @@ thead:last-child tr:last-child th:first-child, tbody:last-child tr:last-child td
4354
4422
  /* Icon swap */
4355
4423
 
4356
4424
  .swap {
4357
- cursor: pointer;
4358
4425
  vertical-align: middle;
4359
4426
  -webkit-user-select: none;
4360
4427
  -moz-user-select: none;
4361
4428
  -ms-user-select: none;
4362
4429
  user-select: none;
4363
- place-content: center;
4430
+ place-self: center;
4364
4431
  display: inline-grid;
4365
4432
  position: relative;
4433
+ pointer-events: none;
4366
4434
  }
4367
4435
 
4368
4436
  .swap input {
4437
+ pointer-events: auto;
4438
+ cursor: pointer;
4369
4439
  -webkit-appearance: none;
4370
4440
  -moz-appearance: none;
4371
4441
  appearance: none;
4372
4442
  border: none;
4443
+ width: 100%;
4444
+ height: 100%;
4445
+ transform: translate(-0.2rem, -0.2rem);
4446
+ background: none !important;
4373
4447
  }
4374
4448
 
4375
4449
  .swap > * {
@@ -4640,7 +4714,7 @@ ul.lexassetscontent {
4640
4714
  padding: 0;
4641
4715
  box-shadow: 0 0 2px rgba(0, 0, 0, .14);
4642
4716
  overflow: hidden;
4643
- background-color: #555;
4717
+ background-color: var(--global-color-quaternary);
4644
4718
  cursor: pointer;
4645
4719
  text-align: center;
4646
4720
  border-top-left-radius: 2px;
@@ -4694,6 +4768,7 @@ ul.lexassetscontent {
4694
4768
  font-size: 4rem;
4695
4769
  text-anchor: middle;
4696
4770
  font-family: 'Ubuntu', sans-serif;
4771
+ color: var(--global-text-tertiary);
4697
4772
  }
4698
4773
 
4699
4774
  .lexassetscontent li.image {
@@ -4797,10 +4872,6 @@ ul.lexassetscontent {
4797
4872
  top: 3px;
4798
4873
  }
4799
4874
 
4800
- .lexassetscontent li:hover span {
4801
- color: #f5f5f5;
4802
- }
4803
-
4804
4875
  .lexassetscontent li.selected .lexassettitle {
4805
4876
  color: #f5f5f5;
4806
4877
  text-shadow: 0 0 3px black;
@@ -4847,7 +4918,6 @@ ul.lexassetscontent {
4847
4918
 
4848
4919
  /* Code Editor */
4849
4920
  .codebasearea {
4850
-
4851
4921
  display: flex;
4852
4922
  position: relative;
4853
4923
  overflow: inherit;
@@ -4935,20 +5005,25 @@ ul.lexassetscontent {
4935
5005
  z-index: 3;
4936
5006
  bottom: 0px;
4937
5007
  justify-items: end;
5008
+ padding-inline: 1rem;
5009
+ }
5010
+
5011
+ .lexcodetabinfo .lexinlinewidgets {
5012
+ justify-content: end;
4938
5013
  }
4939
5014
 
4940
5015
  .lexcodegutter {
4941
5016
  width: 48px;
4942
5017
  height: calc(100% - 65px);
4943
5018
  background-color: light-dark(var(--global-color-tertiary), var(--global-medium-background));
4944
- margin-top: 28px;
5019
+ margin-top: 31px;
4945
5020
  overflow: hidden;
4946
5021
  position: absolute;
4947
5022
  top: 0;
4948
5023
  }
4949
5024
 
4950
5025
  .lexcodeeditor .codetabsarea {
4951
- height: calc(100% - 64px) !important;
5026
+ height: calc(100% - 80px) !important;
4952
5027
  background-color: light-dark(var(--global-color-tertiary), var(--global-medium-background));
4953
5028
  overflow: scroll;
4954
5029
  }
@@ -4980,7 +5055,6 @@ ul.lexassetscontent {
4980
5055
  -moz-osx-font-smoothing: grayscale;
4981
5056
  font-feature-settings: "ss04", "ss05";
4982
5057
  font-size: var(--code-editor-font-size);
4983
- /* padding-right: 6px; */
4984
5058
  position: relative;
4985
5059
  }
4986
5060
 
@@ -5117,7 +5191,7 @@ ul.lexassetscontent {
5117
5191
  box-sizing: border-box;
5118
5192
  margin: 0;
5119
5193
  padding: 0;
5120
- margin-top: 26px;
5194
+ margin-top: 31px;
5121
5195
  z-index: 1 !important;
5122
5196
  right: 0px;
5123
5197
  pointer-events: none;
@@ -5184,7 +5258,7 @@ ul.lexassetscontent {
5184
5258
 
5185
5259
  .lexcodeeditor .searchbox {
5186
5260
  background-color: var(--global-color-secondary);
5187
- width: 256px;
5261
+ /* width: 256px; */
5188
5262
  position: absolute;
5189
5263
  right: 6px;
5190
5264
  top: 26px;
@@ -5193,8 +5267,9 @@ ul.lexassetscontent {
5193
5267
  border: 1px solid var(--global-color-tertiary);
5194
5268
  box-shadow: 0 0px 4px #101010;
5195
5269
  overflow-y: scroll;
5196
- transform: translateY(-72px);
5197
- transition: transform 0.2s ease-in;
5270
+ transform: translateY(-96px);
5271
+ opacity: 0;
5272
+ transition: transform 0.2s ease-in, opacity 0.2s ease-in;
5198
5273
  }
5199
5274
 
5200
5275
  .lexcodeeditor .searchbox.gotoline {
@@ -5203,6 +5278,7 @@ ul.lexassetscontent {
5203
5278
 
5204
5279
  .lexcodeeditor .searchbox.opened {
5205
5280
  transform: translateY(0px);
5281
+ opacity: 1;
5206
5282
  }
5207
5283
 
5208
5284
  .lexcodeeditor .searchbox .lexpanel span {
@@ -5276,6 +5352,10 @@ ul.lexassetscontent {
5276
5352
  border: 2px solid var(--global-color-primary);
5277
5353
  }
5278
5354
 
5355
+ .lexcodesnippet .lexareatabs.row {
5356
+ border-radius: 0;
5357
+ }
5358
+
5279
5359
  .lexcodesnippet .lexwindowbuttons {
5280
5360
  width: 100px;
5281
5361
  padding-inline: 16px;