lexgui 0.5.3 → 0.5.4
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/timeline.js +1 -1
- package/build/lexgui.css +107 -43
- package/build/lexgui.js +259 -84
- package/build/lexgui.min.css +1 -1
- package/build/lexgui.min.js +1 -1
- package/build/lexgui.module.js +259 -84
- package/build/lexgui.module.min.js +1 -1
- package/build/utilities.css +107 -8
- package/changelog.md +16 -1
- package/demo.js +372 -42
- package/package.json +1 -1
package/build/lexgui.module.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
var LX = {
|
|
9
|
-
version: "0.5.
|
|
9
|
+
version: "0.5.4",
|
|
10
10
|
ready: false,
|
|
11
11
|
components: [], // Specific pre-build components
|
|
12
12
|
signals: {}, // Events and triggers
|
|
@@ -777,7 +777,7 @@ function _createCommandbar( root )
|
|
|
777
777
|
className: "gs-tabs"
|
|
778
778
|
} );
|
|
779
779
|
|
|
780
|
-
const gsTabs = tabArea.addTabs();
|
|
780
|
+
const gsTabs = tabArea.addTabs( { parentClass: "p-2" } );
|
|
781
781
|
let gsFilter = null;
|
|
782
782
|
|
|
783
783
|
// These tabs will serve as buttons by now
|
|
@@ -933,6 +933,7 @@ function _createCommandbar( root )
|
|
|
933
933
|
* @param {Object} options
|
|
934
934
|
* container: Root location for the gui (default is the document body)
|
|
935
935
|
* id: Id of the main area
|
|
936
|
+
* rootClass: Extra class to the root container
|
|
936
937
|
* skipRoot: Skip adding LX root container
|
|
937
938
|
* skipDefaultArea: Skip creation of main area
|
|
938
939
|
* strictViewport: Use only window area
|
|
@@ -949,8 +950,14 @@ function init( options = { } )
|
|
|
949
950
|
|
|
950
951
|
var root = document.createElement( 'div' );
|
|
951
952
|
root.id = "lexroot";
|
|
953
|
+
root.className = "lexcontainer";
|
|
952
954
|
root.tabIndex = -1;
|
|
953
955
|
|
|
956
|
+
if( options.rootClass )
|
|
957
|
+
{
|
|
958
|
+
root.className += ` ${ options.rootClass }`;
|
|
959
|
+
}
|
|
960
|
+
|
|
954
961
|
var modal = document.createElement( 'div' );
|
|
955
962
|
modal.id = "modal";
|
|
956
963
|
|
|
@@ -963,7 +970,7 @@ function init( options = { } )
|
|
|
963
970
|
|
|
964
971
|
if( options.container )
|
|
965
972
|
{
|
|
966
|
-
this.container = document.getElementById( options.container );
|
|
973
|
+
this.container = options.container.constructor === String ? document.getElementById( options.container ) : options.container;
|
|
967
974
|
}
|
|
968
975
|
|
|
969
976
|
this.usingStrictViewport = options.strictViewport ?? true;
|
|
@@ -1001,7 +1008,7 @@ function init( options = { } )
|
|
|
1001
1008
|
this.notifications.className = "";
|
|
1002
1009
|
this.notifications.iWidth = 0;
|
|
1003
1010
|
notifSection.appendChild( this.notifications );
|
|
1004
|
-
|
|
1011
|
+
document.body.appendChild( notifSection );
|
|
1005
1012
|
|
|
1006
1013
|
this.notifications.addEventListener( "mouseenter", () => {
|
|
1007
1014
|
this.notifications.classList.add( "list" );
|
|
@@ -1318,6 +1325,7 @@ LX.toast = toast;
|
|
|
1318
1325
|
* @param {String} className
|
|
1319
1326
|
* @param {Object} options
|
|
1320
1327
|
* style: Style attributes to override
|
|
1328
|
+
* asElement: Returns the badge as HTMLElement [false]
|
|
1321
1329
|
*/
|
|
1322
1330
|
|
|
1323
1331
|
function badge( text, className, options = {} )
|
|
@@ -1326,7 +1334,7 @@ function badge( text, className, options = {} )
|
|
|
1326
1334
|
container.innerHTML = text;
|
|
1327
1335
|
container.className = "lexbadge " + ( className ?? "" );
|
|
1328
1336
|
Object.assign( container.style, options.style ?? {} );
|
|
1329
|
-
return container.outerHTML;
|
|
1337
|
+
return ( options.asElement ?? false ) ? container : container.outerHTML;
|
|
1330
1338
|
}
|
|
1331
1339
|
|
|
1332
1340
|
LX.badge = badge;
|
|
@@ -1335,21 +1343,84 @@ LX.badge = badge;
|
|
|
1335
1343
|
* @method makeContainer
|
|
1336
1344
|
* @param {Array} size
|
|
1337
1345
|
* @param {String} className
|
|
1346
|
+
* @param {String} innerHTML
|
|
1347
|
+
* @param {HTMLElement} parent
|
|
1338
1348
|
* @param {Object} overrideStyle
|
|
1339
1349
|
*/
|
|
1340
1350
|
|
|
1341
|
-
function makeContainer( size, className, overrideStyle = {} )
|
|
1351
|
+
function makeContainer( size, className, innerHTML, parent, overrideStyle = {} )
|
|
1342
1352
|
{
|
|
1343
1353
|
const container = document.createElement( "div" );
|
|
1344
1354
|
container.className = "lexcontainer " + ( className ?? "" );
|
|
1355
|
+
container.innerHTML = innerHTML ?? "";
|
|
1345
1356
|
container.style.width = size && size[ 0 ] ? size[ 0 ] : "100%";
|
|
1346
1357
|
container.style.height = size && size[ 1 ] ? size[ 1 ] : "100%";
|
|
1347
1358
|
Object.assign( container.style, overrideStyle );
|
|
1359
|
+
|
|
1360
|
+
if( parent )
|
|
1361
|
+
{
|
|
1362
|
+
if( parent.attach ) // Use attach method if possible
|
|
1363
|
+
{
|
|
1364
|
+
parent.attach( container );
|
|
1365
|
+
}
|
|
1366
|
+
else // its a native HTMLElement
|
|
1367
|
+
{
|
|
1368
|
+
parent.appendChild( container );
|
|
1369
|
+
}
|
|
1370
|
+
}
|
|
1371
|
+
|
|
1348
1372
|
return container;
|
|
1349
1373
|
}
|
|
1350
1374
|
|
|
1351
1375
|
LX.makeContainer = makeContainer;
|
|
1352
1376
|
|
|
1377
|
+
/**
|
|
1378
|
+
* @method asTooltip
|
|
1379
|
+
* @param {HTMLElement} trigger
|
|
1380
|
+
* @param {String} content
|
|
1381
|
+
*/
|
|
1382
|
+
|
|
1383
|
+
function asTooltip( trigger, content )
|
|
1384
|
+
{
|
|
1385
|
+
console.assert( trigger, "You need a trigger to generate a tooltip!" );
|
|
1386
|
+
|
|
1387
|
+
let tooltipDom = null;
|
|
1388
|
+
|
|
1389
|
+
trigger.addEventListener( "mouseenter", function(e) {
|
|
1390
|
+
|
|
1391
|
+
console.log(e.target);
|
|
1392
|
+
|
|
1393
|
+
LX.root.querySelectorAll( ".lextooltip" ).forEach( e => e.remove() );
|
|
1394
|
+
|
|
1395
|
+
let rect = this.getBoundingClientRect();
|
|
1396
|
+
rect.x += document.scrollingElement.scrollLeft;
|
|
1397
|
+
rect.y += document.scrollingElement.scrollTop;
|
|
1398
|
+
|
|
1399
|
+
tooltipDom = document.createElement( "div" );
|
|
1400
|
+
tooltipDom.className = "lextooltip";
|
|
1401
|
+
tooltipDom.innerHTML = content;
|
|
1402
|
+
|
|
1403
|
+
doAsync( () => {
|
|
1404
|
+
tooltipDom.style.top = ( rect.y - tooltipDom.offsetHeight - 6 ) + "px";
|
|
1405
|
+
tooltipDom.style.left = ( rect.x + rect.width * 0.5 - tooltipDom.offsetWidth * 0.5 ) + "px";
|
|
1406
|
+
} )
|
|
1407
|
+
|
|
1408
|
+
LX.root.appendChild( tooltipDom );
|
|
1409
|
+
} );
|
|
1410
|
+
|
|
1411
|
+
trigger.addEventListener( "mouseleave", function(e) {
|
|
1412
|
+
if( !tooltipDom ) return;
|
|
1413
|
+
|
|
1414
|
+
tooltipDom.dataset[ "closed" ] = true;
|
|
1415
|
+
|
|
1416
|
+
doAsync( () => {
|
|
1417
|
+
tooltipDom.remove();
|
|
1418
|
+
}, 300 )
|
|
1419
|
+
} )
|
|
1420
|
+
}
|
|
1421
|
+
|
|
1422
|
+
LX.asTooltip = asTooltip;
|
|
1423
|
+
|
|
1353
1424
|
/*
|
|
1354
1425
|
* Events and Signals
|
|
1355
1426
|
*/
|
|
@@ -1592,7 +1663,7 @@ class DropdownMenu {
|
|
|
1592
1663
|
}
|
|
1593
1664
|
|
|
1594
1665
|
const menuItem = document.createElement('div');
|
|
1595
|
-
menuItem.className = "lexdropdownmenuitem" + ( item.name ? "" : " label" ) + ( item.disabled ?? false ? " disabled" : "" );
|
|
1666
|
+
menuItem.className = "lexdropdownmenuitem" + ( item.name ? "" : " label" ) + ( item.disabled ?? false ? " disabled" : "" ) + ( ` ${ item.className ?? "" }` );
|
|
1596
1667
|
menuItem.id = pKey;
|
|
1597
1668
|
menuItem.innerHTML = `<span>${ key }</span>`;
|
|
1598
1669
|
|
|
@@ -1813,9 +1884,9 @@ class Area {
|
|
|
1813
1884
|
this.sections = [];
|
|
1814
1885
|
this.panels = [];
|
|
1815
1886
|
|
|
1816
|
-
|
|
1887
|
+
let lexroot = document.getElementById("lexroot");
|
|
1888
|
+
if( lexroot && !options.skipAppend )
|
|
1817
1889
|
{
|
|
1818
|
-
let lexroot = document.getElementById("lexroot");
|
|
1819
1890
|
lexroot.appendChild( this.root );
|
|
1820
1891
|
}
|
|
1821
1892
|
|
|
@@ -1962,7 +2033,7 @@ class Area {
|
|
|
1962
2033
|
attach( content ) {
|
|
1963
2034
|
|
|
1964
2035
|
// Append to last split section if area has been split
|
|
1965
|
-
if( this.sections.length)
|
|
2036
|
+
if( this.sections.length )
|
|
1966
2037
|
{
|
|
1967
2038
|
this.sections[ 1 ].attach( content );
|
|
1968
2039
|
return;
|
|
@@ -1998,7 +2069,7 @@ class Area {
|
|
|
1998
2069
|
|
|
1999
2070
|
const type = options.type || "horizontal";
|
|
2000
2071
|
const sizes = options.sizes || [ "50%", "50%" ];
|
|
2001
|
-
const auto = (options.sizes === 'auto');
|
|
2072
|
+
const auto = (options.sizes === 'auto') || ( options.sizes && options.sizes[ 0 ] == "auto" && options.sizes[ 1 ] == "auto" );
|
|
2002
2073
|
|
|
2003
2074
|
if( !sizes[ 1 ] )
|
|
2004
2075
|
{
|
|
@@ -2102,8 +2173,8 @@ class Area {
|
|
|
2102
2173
|
const resizeObserver = new ResizeObserver( entries => {
|
|
2103
2174
|
for ( const entry of entries )
|
|
2104
2175
|
{
|
|
2105
|
-
const
|
|
2106
|
-
area2.root.style.height = "calc(100% - " + (
|
|
2176
|
+
const size = entry.target.getComputedSize();
|
|
2177
|
+
area2.root.style.height = "calc(100% - " + ( size.height ) + "px )";
|
|
2107
2178
|
}
|
|
2108
2179
|
});
|
|
2109
2180
|
|
|
@@ -2384,6 +2455,11 @@ class Area {
|
|
|
2384
2455
|
bar.root.className += " sticky top-0";
|
|
2385
2456
|
}
|
|
2386
2457
|
|
|
2458
|
+
if( options.parentClass )
|
|
2459
|
+
{
|
|
2460
|
+
bar.root.className += ` ${ options.parentClass }`;
|
|
2461
|
+
}
|
|
2462
|
+
|
|
2387
2463
|
return menubar;
|
|
2388
2464
|
}
|
|
2389
2465
|
|
|
@@ -2415,6 +2491,11 @@ class Area {
|
|
|
2415
2491
|
bar.attach( sidebar );
|
|
2416
2492
|
bar.isSidebar = true;
|
|
2417
2493
|
|
|
2494
|
+
if( options.parentClass )
|
|
2495
|
+
{
|
|
2496
|
+
bar.root.className += ` ${ options.parentClass }`;
|
|
2497
|
+
}
|
|
2498
|
+
|
|
2418
2499
|
return sidebar;
|
|
2419
2500
|
}
|
|
2420
2501
|
|
|
@@ -2517,7 +2598,10 @@ class Area {
|
|
|
2517
2598
|
}
|
|
2518
2599
|
}
|
|
2519
2600
|
|
|
2520
|
-
|
|
2601
|
+
if( callback )
|
|
2602
|
+
{
|
|
2603
|
+
callback( value, event, button.root );
|
|
2604
|
+
}
|
|
2521
2605
|
|
|
2522
2606
|
}, _options );
|
|
2523
2607
|
}
|
|
@@ -2574,6 +2658,7 @@ class Area {
|
|
|
2574
2658
|
/**
|
|
2575
2659
|
* @method addTabs
|
|
2576
2660
|
* @param {Object} options:
|
|
2661
|
+
* parentClass: Add extra class to tab buttons container
|
|
2577
2662
|
*/
|
|
2578
2663
|
|
|
2579
2664
|
addTabs( options = {} ) {
|
|
@@ -2693,7 +2778,6 @@ function flushCss(element) {
|
|
|
2693
2778
|
|
|
2694
2779
|
class Tabs {
|
|
2695
2780
|
|
|
2696
|
-
static TAB_SIZE = 28;
|
|
2697
2781
|
static TAB_ID = 0;
|
|
2698
2782
|
|
|
2699
2783
|
constructor( area, options = {} ) {
|
|
@@ -2701,10 +2785,10 @@ class Tabs {
|
|
|
2701
2785
|
this.onclose = options.onclose;
|
|
2702
2786
|
|
|
2703
2787
|
let container = document.createElement('div');
|
|
2704
|
-
container.className = "lexareatabs " + (options.fit ? "fit" : "row");
|
|
2788
|
+
container.className = "lexareatabs " + ( options.fit ? "fit" : "row" );
|
|
2705
2789
|
|
|
2706
2790
|
const folding = options.folding ?? false;
|
|
2707
|
-
if(folding) container.classList.add("folding");
|
|
2791
|
+
if( folding ) container.classList.add("folding");
|
|
2708
2792
|
|
|
2709
2793
|
let that = this;
|
|
2710
2794
|
|
|
@@ -2777,10 +2861,15 @@ class Tabs {
|
|
|
2777
2861
|
|
|
2778
2862
|
area.root.classList.add( "lexareatabscontainer" );
|
|
2779
2863
|
|
|
2780
|
-
area.split({ type: 'vertical', sizes: options.sizes ?? "auto", resize: false, top:
|
|
2781
|
-
|
|
2864
|
+
const [ tabButtons, content ] = area.split({ type: 'vertical', sizes: options.sizes ?? "auto", resize: false, top: 2 });
|
|
2865
|
+
tabButtons.attach( container );
|
|
2782
2866
|
|
|
2783
|
-
|
|
2867
|
+
if( options.parentClass )
|
|
2868
|
+
{
|
|
2869
|
+
container.parentElement.className += ` ${ options.parentClass }`;
|
|
2870
|
+
}
|
|
2871
|
+
|
|
2872
|
+
this.area = content;
|
|
2784
2873
|
this.area.root.className += " lexareatabscontent";
|
|
2785
2874
|
|
|
2786
2875
|
if( options.contentClass )
|
|
@@ -2808,7 +2897,6 @@ class Tabs {
|
|
|
2808
2897
|
this.thumb.style.transition = "none";
|
|
2809
2898
|
this.thumb.style.transform = "translate( " + ( tabEl.childIndex * tabEl.offsetWidth ) + "px )";
|
|
2810
2899
|
this.thumb.style.width = ( tabEl.offsetWidth ) + "px";
|
|
2811
|
-
this.thumb.style.height = ( tabEl.offsetHeight ) + "px";
|
|
2812
2900
|
flushCss( this.thumb );
|
|
2813
2901
|
this.thumb.style.transition = transition;
|
|
2814
2902
|
});
|
|
@@ -2850,7 +2938,7 @@ class Tabs {
|
|
|
2850
2938
|
if( isSelected )
|
|
2851
2939
|
{
|
|
2852
2940
|
this.root.querySelectorAll( 'span' ).forEach( s => s.classList.remove( 'selected' ) );
|
|
2853
|
-
this.area.root.querySelectorAll( '.lextabcontent' ).forEach( c => c.style.display = 'none' );
|
|
2941
|
+
this.area.root.querySelectorAll( ':scope > .lextabcontent' ).forEach( c => c.style.display = 'none' );
|
|
2854
2942
|
}
|
|
2855
2943
|
|
|
2856
2944
|
isSelected = !Object.keys( this.tabs ).length && !this.folding ? true : isSelected;
|
|
@@ -2908,7 +2996,7 @@ class Tabs {
|
|
|
2908
2996
|
tabEl.parentElement.querySelectorAll( 'span' ).forEach( s => s.classList.remove( 'selected' ));
|
|
2909
2997
|
tabEl.classList.toggle('selected', ( this.folding && tabEl.selected ));
|
|
2910
2998
|
// Manage visibility
|
|
2911
|
-
scope.area.root.querySelectorAll( '.lextabcontent' ).forEach( c => c.style.display = 'none' );
|
|
2999
|
+
scope.area.root.querySelectorAll( ':scope > .lextabcontent' ).forEach( c => c.style.display = 'none' );
|
|
2912
3000
|
contentEl.style.display = contentEl.originalDisplay;
|
|
2913
3001
|
scope.selected = tabEl.dataset.name;
|
|
2914
3002
|
}
|
|
@@ -2927,8 +3015,7 @@ class Tabs {
|
|
|
2927
3015
|
if( scope.thumb )
|
|
2928
3016
|
{
|
|
2929
3017
|
scope.thumb.style.transform = "translate( " + ( tabEl.childIndex * tabEl.offsetWidth ) + "px )";
|
|
2930
|
-
scope.thumb.style.width = ( tabEl.offsetWidth
|
|
2931
|
-
scope.thumb.style.height = ( tabEl.offsetHeight - 6 ) + "px";
|
|
3018
|
+
scope.thumb.style.width = ( tabEl.offsetWidth ) + "px";
|
|
2932
3019
|
scope.thumb.item = tabEl;
|
|
2933
3020
|
}
|
|
2934
3021
|
});
|
|
@@ -2981,7 +3068,6 @@ class Tabs {
|
|
|
2981
3068
|
{
|
|
2982
3069
|
this.thumb.style.transform = "translate( " + ( tabEl.childIndex * tabEl.offsetWidth ) + "px )";
|
|
2983
3070
|
this.thumb.style.width = ( tabEl.offsetWidth ) + "px";
|
|
2984
|
-
this.thumb.style.height = ( tabEl.offsetHeight ) + "px";
|
|
2985
3071
|
this.thumb.item = tabEl;
|
|
2986
3072
|
}
|
|
2987
3073
|
|
|
@@ -3113,7 +3199,7 @@ class Menubar {
|
|
|
3113
3199
|
const hasSubmenu = subitem[ subkey ].length;
|
|
3114
3200
|
const isCheckbox = subitem[ 'type' ] == 'checkbox';
|
|
3115
3201
|
let subentry = document.createElement('div');
|
|
3116
|
-
subentry.tabIndex = "1";
|
|
3202
|
+
subentry.tabIndex = "-1";
|
|
3117
3203
|
subentry.className = "lexmenuboxentry";
|
|
3118
3204
|
subentry.className += (i == o[k].length - 1 ? " last" : "") + ( subitem.disabled ? " disabled" : "" );
|
|
3119
3205
|
|
|
@@ -3200,12 +3286,10 @@ class Menubar {
|
|
|
3200
3286
|
});
|
|
3201
3287
|
|
|
3202
3288
|
subentry.addEventListener("blur", e => {
|
|
3203
|
-
|
|
3204
|
-
if( e.target && e.target.className.includes( "lexmenu" ) )
|
|
3289
|
+
if( e.relatedTarget && !e.relatedTarget.className.includes( "lexmenu" ) )
|
|
3205
3290
|
{
|
|
3206
|
-
|
|
3291
|
+
this._resetMenubar();
|
|
3207
3292
|
}
|
|
3208
|
-
this._resetMenubar();
|
|
3209
3293
|
});
|
|
3210
3294
|
|
|
3211
3295
|
// Add icon if has submenu, else check for shortcut
|
|
@@ -3661,6 +3745,7 @@ class SideBar {
|
|
|
3661
3745
|
|
|
3662
3746
|
/**
|
|
3663
3747
|
* @param {Object} options
|
|
3748
|
+
* className: Extra class to customize root element
|
|
3664
3749
|
* filter: Add search bar to filter entries [false]
|
|
3665
3750
|
* displaySelected: Indicate if an entry is displayed as selected
|
|
3666
3751
|
* skipHeader: Do not use sidebar header [false]
|
|
@@ -3684,7 +3769,7 @@ class SideBar {
|
|
|
3684
3769
|
constructor( options = {} ) {
|
|
3685
3770
|
|
|
3686
3771
|
this.root = document.createElement( "div" );
|
|
3687
|
-
this.root.className = "lexsidebar";
|
|
3772
|
+
this.root.className = "lexsidebar " + ( options.className ?? "" );
|
|
3688
3773
|
|
|
3689
3774
|
this._displaySelected = options.displaySelected ?? false;
|
|
3690
3775
|
|
|
@@ -3771,10 +3856,10 @@ class SideBar {
|
|
|
3771
3856
|
|
|
3772
3857
|
// Set width depending on header/footer
|
|
3773
3858
|
doAsync( () => {
|
|
3774
|
-
// This account for header, footer and all inner
|
|
3775
|
-
const contentOffset = ( this.header?.
|
|
3776
|
-
|
|
3777
|
-
|
|
3859
|
+
// This account for header, footer and all inner margins
|
|
3860
|
+
const contentOffset = ( parseInt( this.header?.getComputedSize().height ) ?? 0 ) +
|
|
3861
|
+
( parseInt( this.filter?.getComputedSize().height ) ?? 0 ) +
|
|
3862
|
+
( parseInt( this.footer?.getComputedSize().height ) ?? 0 );
|
|
3778
3863
|
this.content.style.height = `calc(100% - ${ contentOffset }px)`;
|
|
3779
3864
|
}, 10 );
|
|
3780
3865
|
|
|
@@ -4060,8 +4145,13 @@ class SideBar {
|
|
|
4060
4145
|
let currentGroup = null;
|
|
4061
4146
|
|
|
4062
4147
|
let entry = document.createElement( 'div' );
|
|
4063
|
-
entry.className = "lexsidebarentry " + ( options.className ?? "" );
|
|
4064
4148
|
entry.id = item.name = pKey;
|
|
4149
|
+
entry.className = "lexsidebarentry " + ( options.className ?? "" );
|
|
4150
|
+
|
|
4151
|
+
if( this.displaySelected && options.selected )
|
|
4152
|
+
{
|
|
4153
|
+
entry.classList.add( "selected" );
|
|
4154
|
+
}
|
|
4065
4155
|
|
|
4066
4156
|
if( item.group )
|
|
4067
4157
|
{
|
|
@@ -4131,6 +4221,7 @@ class SideBar {
|
|
|
4131
4221
|
}
|
|
4132
4222
|
|
|
4133
4223
|
let itemDom = document.createElement( 'div' );
|
|
4224
|
+
itemDom.className = "lexsidebarentrycontent";
|
|
4134
4225
|
entry.appendChild( itemDom );
|
|
4135
4226
|
item.dom = entry;
|
|
4136
4227
|
|
|
@@ -4151,14 +4242,31 @@ class SideBar {
|
|
|
4151
4242
|
{
|
|
4152
4243
|
if( options.icon )
|
|
4153
4244
|
{
|
|
4154
|
-
let itemIcon =
|
|
4155
|
-
|
|
4245
|
+
let itemIcon = null;
|
|
4246
|
+
|
|
4247
|
+
// @legacy
|
|
4248
|
+
if( options.icon.includes( "fa-" ) )
|
|
4249
|
+
{
|
|
4250
|
+
itemIcon = document.createElement( 'i' );
|
|
4251
|
+
itemIcon.className = options.icon;
|
|
4252
|
+
}
|
|
4253
|
+
else
|
|
4254
|
+
{
|
|
4255
|
+
itemIcon = LX.makeIcon( options.icon );
|
|
4256
|
+
}
|
|
4257
|
+
|
|
4258
|
+
itemIcon.classList.add( "lexsidebarentryicon" );
|
|
4156
4259
|
itemDom.appendChild( itemIcon );
|
|
4157
4260
|
}
|
|
4158
4261
|
|
|
4159
4262
|
let itemName = document.createElement( 'a' );
|
|
4160
4263
|
itemName.innerHTML = key;
|
|
4161
4264
|
itemDom.appendChild( itemName );
|
|
4265
|
+
|
|
4266
|
+
if( options.content )
|
|
4267
|
+
{
|
|
4268
|
+
itemDom.appendChild( options.content );
|
|
4269
|
+
}
|
|
4162
4270
|
}
|
|
4163
4271
|
|
|
4164
4272
|
const isCollapsable = options.collapsable != undefined ? options.collapsable : ( options.collapsable || item[ key ].length );
|
|
@@ -5387,6 +5495,7 @@ class TextInput extends Widget {
|
|
|
5387
5495
|
let container = document.createElement( 'div' );
|
|
5388
5496
|
container.className = ( options.warning ? " lexwarning" : "" );
|
|
5389
5497
|
container.style.display = "flex";
|
|
5498
|
+
container.style.position = "relative";
|
|
5390
5499
|
this.root.appendChild( container );
|
|
5391
5500
|
|
|
5392
5501
|
this.disabled = ( options.disabled || options.warning ) ?? ( options.url ? true : false );
|
|
@@ -5442,6 +5551,7 @@ class TextInput extends Widget {
|
|
|
5442
5551
|
|
|
5443
5552
|
if( options.icon )
|
|
5444
5553
|
{
|
|
5554
|
+
wValue.style.paddingLeft = "1.75rem";
|
|
5445
5555
|
let icon = document.createElement( 'a' );
|
|
5446
5556
|
icon.className = "inputicon " + options.icon;
|
|
5447
5557
|
container.appendChild( icon );
|
|
@@ -5480,7 +5590,7 @@ class TextInput extends Widget {
|
|
|
5480
5590
|
}
|
|
5481
5591
|
}
|
|
5482
5592
|
|
|
5483
|
-
LX.
|
|
5593
|
+
LX.TextInput = TextInput;
|
|
5484
5594
|
|
|
5485
5595
|
/**
|
|
5486
5596
|
* @class TextArea
|
|
@@ -5518,6 +5628,13 @@ class TextArea extends Widget {
|
|
|
5518
5628
|
this.root.appendChild( container );
|
|
5519
5629
|
|
|
5520
5630
|
let wValue = document.createElement( "textarea" );
|
|
5631
|
+
|
|
5632
|
+
if( !( options.resize ?? true ) )
|
|
5633
|
+
{
|
|
5634
|
+
wValue.style.resize = "none";
|
|
5635
|
+
}
|
|
5636
|
+
|
|
5637
|
+
wValue.className = ( options.inputClass ?? "" );
|
|
5521
5638
|
wValue.value = wValue.iValue = value || "";
|
|
5522
5639
|
wValue.style.width = "100%";
|
|
5523
5640
|
wValue.style.textAlign = options.float ?? "";
|
|
@@ -5588,9 +5705,36 @@ class Button extends Widget {
|
|
|
5588
5705
|
};
|
|
5589
5706
|
|
|
5590
5707
|
this.onSetValue = ( newValue, skipCallback, event ) => {
|
|
5591
|
-
|
|
5592
|
-
|
|
5593
|
-
|
|
5708
|
+
|
|
5709
|
+
wValue.innerHTML = `<span></span>`;
|
|
5710
|
+
|
|
5711
|
+
if( options.icon )
|
|
5712
|
+
{
|
|
5713
|
+
let icon = null;
|
|
5714
|
+
|
|
5715
|
+
// @legacy
|
|
5716
|
+
if( options.icon.includes( "fa-" ) )
|
|
5717
|
+
{
|
|
5718
|
+
icon = document.createElement( 'a' );
|
|
5719
|
+
icon.className = options.icon;
|
|
5720
|
+
}
|
|
5721
|
+
else
|
|
5722
|
+
{
|
|
5723
|
+
icon = LX.makeIcon( options.icon );
|
|
5724
|
+
}
|
|
5725
|
+
|
|
5726
|
+
wValue.prepend( icon );
|
|
5727
|
+
}
|
|
5728
|
+
else if( options.img )
|
|
5729
|
+
{
|
|
5730
|
+
let img = document.createElement( 'img' );
|
|
5731
|
+
img.src = options.img;
|
|
5732
|
+
wValue.prepend( img );
|
|
5733
|
+
}
|
|
5734
|
+
else
|
|
5735
|
+
{
|
|
5736
|
+
wValue.innerHTML = `<span>${ ( newValue || "" ) }</span>`;
|
|
5737
|
+
}
|
|
5594
5738
|
};
|
|
5595
5739
|
|
|
5596
5740
|
this.onResize = ( rect ) => {
|
|
@@ -5599,7 +5743,7 @@ class Button extends Widget {
|
|
|
5599
5743
|
};
|
|
5600
5744
|
|
|
5601
5745
|
var wValue = document.createElement( 'button' );
|
|
5602
|
-
wValue.title = options.title ?? "";
|
|
5746
|
+
wValue.title = options.tooltip ? "" : ( options.title ?? "" );
|
|
5603
5747
|
wValue.className = "lexbutton " + ( options.buttonClass ?? "" );
|
|
5604
5748
|
|
|
5605
5749
|
if( options.icon )
|
|
@@ -5614,9 +5758,7 @@ class Button extends Widget {
|
|
|
5614
5758
|
wValue.classList.add( "selected" );
|
|
5615
5759
|
}
|
|
5616
5760
|
|
|
5617
|
-
|
|
5618
|
-
( options.icon ? "<a class='" + options.icon + "'></a>" :
|
|
5619
|
-
( options.img ? "<img src='" + options.img + "'>" : "<span>" + ( value || "" ) + "</span>" ) );
|
|
5761
|
+
this.onSetValue( value, true );
|
|
5620
5762
|
|
|
5621
5763
|
if( options.disabled )
|
|
5622
5764
|
{
|
|
@@ -5637,6 +5779,11 @@ class Button extends Widget {
|
|
|
5637
5779
|
this._trigger( new IEvent( name, value, e ), callback );
|
|
5638
5780
|
});
|
|
5639
5781
|
|
|
5782
|
+
if( options.tooltip )
|
|
5783
|
+
{
|
|
5784
|
+
LX.asTooltip( wValue, options.title ?? name );
|
|
5785
|
+
}
|
|
5786
|
+
|
|
5640
5787
|
doAsync( this.onResize.bind( this ) );
|
|
5641
5788
|
}
|
|
5642
5789
|
}
|
|
@@ -8474,7 +8621,7 @@ class Table extends Widget {
|
|
|
8474
8621
|
// Append header
|
|
8475
8622
|
if( this.filter || this.customFilters || this.toggleColumns )
|
|
8476
8623
|
{
|
|
8477
|
-
const headerContainer = LX.makeContainer( [ "100%", "auto" ] );
|
|
8624
|
+
const headerContainer = LX.makeContainer( [ "100%", "auto" ], "flex flex-row" );
|
|
8478
8625
|
|
|
8479
8626
|
if( this.filter )
|
|
8480
8627
|
{
|
|
@@ -9473,6 +9620,7 @@ class Panel {
|
|
|
9473
9620
|
* disabled: Make the widget disabled [false]
|
|
9474
9621
|
* required: Make the input required
|
|
9475
9622
|
* placeholder: Add input placeholder
|
|
9623
|
+
* icon: Icon (if any) to append at the input start
|
|
9476
9624
|
* pattern: Regular expression that value must match
|
|
9477
9625
|
* trigger: Choose onchange trigger (default, input) [default]
|
|
9478
9626
|
* inputWidth: Width of the text input
|
|
@@ -9496,6 +9644,7 @@ class Panel {
|
|
|
9496
9644
|
* hideName: Don't use name as label [false]
|
|
9497
9645
|
* disabled: Make the widget disabled [false]
|
|
9498
9646
|
* placeholder: Add input placeholder
|
|
9647
|
+
* resize: Allow resize [true]
|
|
9499
9648
|
* trigger: Choose onchange trigger (default, input) [default]
|
|
9500
9649
|
* inputWidth: Width of the text input
|
|
9501
9650
|
* float: Justify input text content
|
|
@@ -10299,6 +10448,9 @@ class Footer {
|
|
|
10299
10448
|
wrapper.className = "w-full";
|
|
10300
10449
|
root.appendChild( wrapper );
|
|
10301
10450
|
|
|
10451
|
+
// const hr = document.createElement( "hr" );
|
|
10452
|
+
// wrapper.appendChild( hr );
|
|
10453
|
+
|
|
10302
10454
|
if( options.columns && options.columns.constructor == Array )
|
|
10303
10455
|
{
|
|
10304
10456
|
const cols = document.createElement( "div" );
|
|
@@ -10335,9 +10487,6 @@ class Footer {
|
|
|
10335
10487
|
|
|
10336
10488
|
if( options.credits || options.socials )
|
|
10337
10489
|
{
|
|
10338
|
-
const hr = document.createElement( "hr" );
|
|
10339
|
-
wrapper.appendChild( hr );
|
|
10340
|
-
|
|
10341
10490
|
const creditsSocials = document.createElement( "div" );
|
|
10342
10491
|
creditsSocials.className = "credits-and-socials";
|
|
10343
10492
|
wrapper.appendChild( creditsSocials );
|
|
@@ -11046,8 +11195,8 @@ class CanvasCurve {
|
|
|
11046
11195
|
element.style.minHeight = "20px";
|
|
11047
11196
|
|
|
11048
11197
|
element.bgcolor = options.bgColor || LX.getThemeColor( "global-intense-background" );
|
|
11049
|
-
element.pointscolor = options.pointsColor || LX.getThemeColor( "global-
|
|
11050
|
-
element.activepointscolor = options.activePointsColor || LX.getThemeColor( "global-
|
|
11198
|
+
element.pointscolor = options.pointsColor || LX.getThemeColor( "global-color-accent" );
|
|
11199
|
+
element.activepointscolor = options.activePointsColor || LX.getThemeColor( "global-color-accent-light" );
|
|
11051
11200
|
element.linecolor = options.lineColor || "#555";
|
|
11052
11201
|
element.value = value || [];
|
|
11053
11202
|
element.xrange = options.xrange || [ 0, 1 ]; // min, max
|
|
@@ -11063,8 +11212,8 @@ class CanvasCurve {
|
|
|
11063
11212
|
|
|
11064
11213
|
LX.addSignal( "@on_new_color_scheme", (el, value) => {
|
|
11065
11214
|
element.bgcolor = options.bgColor || LX.getThemeColor( "global-intense-background" );
|
|
11066
|
-
element.pointscolor = options.pointsColor || LX.getThemeColor( "global-
|
|
11067
|
-
element.activepointscolor = options.activePointsColor || LX.getThemeColor( "global-
|
|
11215
|
+
element.pointscolor = options.pointsColor || LX.getThemeColor( "global-color-accent" );
|
|
11216
|
+
element.activepointscolor = options.activePointsColor || LX.getThemeColor( "global-color-accent-light" );
|
|
11068
11217
|
this.redraw();
|
|
11069
11218
|
} );
|
|
11070
11219
|
|
|
@@ -11393,7 +11542,7 @@ class CanvasDial {
|
|
|
11393
11542
|
element.style.minWidth = element.style.minHeight = "50px";
|
|
11394
11543
|
|
|
11395
11544
|
element.bgcolor = options.bgColor || LX.getThemeColor( "global-dark-background" );
|
|
11396
|
-
element.pointscolor = options.pointsColor || LX.getThemeColor( "global-
|
|
11545
|
+
element.pointscolor = options.pointsColor || LX.getThemeColor( "global-color-accent-light" );
|
|
11397
11546
|
element.linecolor = options.lineColor || "#555";
|
|
11398
11547
|
element.value = value || [];
|
|
11399
11548
|
element.xrange = options.xrange || [ 0, 1 ]; // min, max
|
|
@@ -12673,44 +12822,44 @@ Object.assign(LX, {
|
|
|
12673
12822
|
* Request file from url
|
|
12674
12823
|
* @method requestText
|
|
12675
12824
|
* @param {String} url
|
|
12676
|
-
* @param {Function}
|
|
12677
|
-
* @param {Function}
|
|
12825
|
+
* @param {Function} onComplete
|
|
12826
|
+
* @param {Function} onError
|
|
12678
12827
|
**/
|
|
12679
|
-
requestText(url,
|
|
12680
|
-
return this.request({ url: url, dataType:"text", success:
|
|
12828
|
+
requestText( url, onComplete, onError ) {
|
|
12829
|
+
return this.request({ url: url, dataType:"text", success: onComplete, error: onError });
|
|
12681
12830
|
},
|
|
12682
12831
|
|
|
12683
12832
|
/**
|
|
12684
12833
|
* Request file from url
|
|
12685
12834
|
* @method requestJSON
|
|
12686
12835
|
* @param {String} url
|
|
12687
|
-
* @param {Function}
|
|
12688
|
-
* @param {Function}
|
|
12836
|
+
* @param {Function} onComplete
|
|
12837
|
+
* @param {Function} onError
|
|
12689
12838
|
**/
|
|
12690
|
-
requestJSON(url,
|
|
12691
|
-
return this.request({ url: url, dataType:"json", success:
|
|
12839
|
+
requestJSON( url, onComplete, onError ) {
|
|
12840
|
+
return this.request({ url: url, dataType:"json", success: onComplete, error: onError });
|
|
12692
12841
|
},
|
|
12693
12842
|
|
|
12694
12843
|
/**
|
|
12695
12844
|
* Request binary file from url
|
|
12696
12845
|
* @method requestBinary
|
|
12697
12846
|
* @param {String} url
|
|
12698
|
-
* @param {Function}
|
|
12699
|
-
* @param {Function}
|
|
12847
|
+
* @param {Function} onComplete
|
|
12848
|
+
* @param {Function} onError
|
|
12700
12849
|
**/
|
|
12701
|
-
requestBinary(url,
|
|
12702
|
-
return this.request({ url: url, dataType:"binary", success:
|
|
12850
|
+
requestBinary( url, onComplete, onError ) {
|
|
12851
|
+
return this.request({ url: url, dataType:"binary", success: onComplete, error: onError });
|
|
12703
12852
|
},
|
|
12704
12853
|
|
|
12705
12854
|
/**
|
|
12706
12855
|
* Request script and inserts it in the DOM
|
|
12707
12856
|
* @method requireScript
|
|
12708
12857
|
* @param {String|Array} url the url of the script or an array containing several urls
|
|
12709
|
-
* @param {Function}
|
|
12710
|
-
* @param {Function}
|
|
12711
|
-
* @param {Function}
|
|
12858
|
+
* @param {Function} onComplete
|
|
12859
|
+
* @param {Function} onError
|
|
12860
|
+
* @param {Function} onProgress (if several files are required, onProgress is called after every file is added to the DOM)
|
|
12712
12861
|
**/
|
|
12713
|
-
requireScript(url,
|
|
12862
|
+
requireScript( url, onComplete, onError, onProgress, version ) {
|
|
12714
12863
|
|
|
12715
12864
|
if(!url)
|
|
12716
12865
|
throw("invalid URL");
|
|
@@ -12735,15 +12884,17 @@ Object.assign(LX, {
|
|
|
12735
12884
|
loaded_scripts.push(this);
|
|
12736
12885
|
if(total)
|
|
12737
12886
|
{
|
|
12738
|
-
if(
|
|
12739
|
-
|
|
12887
|
+
if( onProgress )
|
|
12888
|
+
{
|
|
12889
|
+
onProgress( this.original_src, this.num );
|
|
12890
|
+
}
|
|
12740
12891
|
}
|
|
12741
|
-
else if(
|
|
12742
|
-
|
|
12892
|
+
else if(onComplete)
|
|
12893
|
+
onComplete( loaded_scripts );
|
|
12743
12894
|
};
|
|
12744
|
-
if(
|
|
12895
|
+
if(onError)
|
|
12745
12896
|
script.onerror = function(err) {
|
|
12746
|
-
|
|
12897
|
+
onError(err, this.original_src, this.num );
|
|
12747
12898
|
}
|
|
12748
12899
|
document.getElementsByTagName('head')[0].appendChild(script);
|
|
12749
12900
|
}
|
|
@@ -12832,10 +12983,11 @@ Element.prototype.addClass = function( className ) {
|
|
|
12832
12983
|
}
|
|
12833
12984
|
|
|
12834
12985
|
Element.prototype.getComputedSize = function() {
|
|
12835
|
-
|
|
12986
|
+
// Since we use "box-sizing: border-box" now,
|
|
12987
|
+
// it's all included in offsetWidth/offsetHeight
|
|
12836
12988
|
return {
|
|
12837
|
-
width: this.offsetWidth
|
|
12838
|
-
height: this.offsetHeight
|
|
12989
|
+
width: this.offsetWidth,
|
|
12990
|
+
height: this.offsetHeight
|
|
12839
12991
|
}
|
|
12840
12992
|
}
|
|
12841
12993
|
|
|
@@ -12847,6 +12999,18 @@ Element.prototype.getParentArea = function() {
|
|
|
12847
12999
|
}
|
|
12848
13000
|
}
|
|
12849
13001
|
|
|
13002
|
+
Element.prototype.listen = function( eventName, callback, callbackName ) {
|
|
13003
|
+
callbackName = callbackName ?? ( "_on" + eventName );
|
|
13004
|
+
this[ callbackName ] = callback;
|
|
13005
|
+
this.addEventListener( eventName, callback );
|
|
13006
|
+
}
|
|
13007
|
+
|
|
13008
|
+
Element.prototype.ignore = function( eventName, callbackName ) {
|
|
13009
|
+
callbackName = callbackName ?? ( "_on" + eventName );
|
|
13010
|
+
const callback = this[ callbackName ];
|
|
13011
|
+
this.removeEventListener( eventName, callback );
|
|
13012
|
+
}
|
|
13013
|
+
|
|
12850
13014
|
LX.UTILS = {
|
|
12851
13015
|
getTime() { return new Date().getTime() },
|
|
12852
13016
|
compareThreshold( v, p, n, t ) { return Math.abs(v - p) >= t || Math.abs(v - n) >= t },
|
|
@@ -12947,6 +13111,7 @@ LX.ICONS = {
|
|
|
12947
13111
|
"edit": [512, 512, [], "regular", "M441 58.9L453.1 71c9.4 9.4 9.4 24.6 0 33.9L424 134.1 377.9 88 407 58.9c9.4-9.4 24.6-9.4 33.9 0zM209.8 256.2L344 121.9 390.1 168 255.8 302.2c-2.9 2.9-6.5 5-10.4 6.1l-58.5 16.7 16.7-58.5c1.1-3.9 3.2-7.5 6.1-10.4zM373.1 25L175.8 222.2c-8.7 8.7-15 19.4-18.3 31.1l-28.6 100c-2.4 8.4-.1 17.4 6.1 23.6s15.2 8.5 23.6 6.1l100-28.6c11.8-3.4 22.5-9.7 31.1-18.3L487 138.9c28.1-28.1 28.1-73.7 0-101.8L474.9 25C446.8-3.1 401.2-3.1 373.1 25zM88 64C39.4 64 0 103.4 0 152L0 424c0 48.6 39.4 88 88 88l272 0c48.6 0 88-39.4 88-88l0-112c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 112c0 22.1-17.9 40-40 40L88 464c-22.1 0-40-17.9-40-40l0-272c0-22.1 17.9-40 40-40l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L88 64z"],
|
|
12948
13112
|
"envelope": [512, 512, [], "regular", "M64 112c-8.8 0-16 7.2-16 16l0 22.1L220.5 291.7c20.7 17 50.4 17 71.1 0L464 150.1l0-22.1c0-8.8-7.2-16-16-16L64 112zM48 212.2L48 384c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-171.8L322 328.8c-38.4 31.5-93.7 31.5-132 0L48 212.2zM0 128C0 92.7 28.7 64 64 64l384 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 128z"],
|
|
12949
13113
|
"envelope-open": [512, 512, [], "regular", "M255.4 48.2c.2-.1 .4-.2 .6-.2s.4 .1 .6 .2L460.6 194c2.1 1.5 3.4 3.9 3.4 6.5l0 13.6L291.5 355.7c-20.7 17-50.4 17-71.1 0L48 214.1l0-13.6c0-2.6 1.2-5 3.4-6.5L255.4 48.2zM48 276.2L190 392.8c38.4 31.5 93.7 31.5 132 0L464 276.2 464 456c0 4.4-3.6 8-8 8L56 464c-4.4 0-8-3.6-8-8l0-179.8zM256 0c-10.2 0-20.2 3.2-28.5 9.1L23.5 154.9C8.7 165.4 0 182.4 0 200.5L0 456c0 30.9 25.1 56 56 56l400 0c30.9 0 56-25.1 56-56l0-255.5c0-18.1-8.7-35.1-23.4-45.6L284.5 9.1C276.2 3.2 266.2 0 256 0z"],
|
|
13114
|
+
"inbox": [24, 24, [], "regular", "M22 12H16l-2 3h-4l-2-3H2M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11Z", null, "fill=none stroke-width=2 stroke-linejoin=round stroke-linecap=round"],
|
|
12950
13115
|
"map": [576, 512, [], "regular", "M565.6 36.2C572.1 40.7 576 48.1 576 56l0 336c0 10-6.2 18.9-15.5 22.4l-168 64c-5.2 2-10.9 2.1-16.1 .3L192.5 417.5l-160 61c-7.4 2.8-15.7 1.8-22.2-2.7S0 463.9 0 456L0 120c0-10 6.1-18.9 15.5-22.4l168-64c5.2-2 10.9-2.1 16.1-.3L383.5 94.5l160-61c7.4-2.8 15.7-1.8 22.2 2.7zM48 136.5l0 284.6 120-45.7 0-284.6L48 136.5zM360 422.7l0-285.4-144-48 0 285.4 144 48zm48-1.5l120-45.7 0-284.6L408 136.5l0 284.6z"],
|
|
12951
13116
|
"note-sticky": [448, 512, ["sticky-note"], "regular", "M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l224 0 0-80c0-17.7 14.3-32 32-32l80 0 0-224c0-8.8-7.2-16-16-16L64 80zM288 480L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 224 0 5.5c0 17-6.7 33.3-18.7 45.3l-90.5 90.5c-12 12-28.3 18.7-45.3 18.7l-5.5 0z"],
|
|
12952
13117
|
"file": [384, 512, [], "regular", "M320 464c8.8 0 16-7.2 16-16l0-288-80 0c-17.7 0-32-14.3-32-32l0-80L64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l256 0zM0 64C0 28.7 28.7 0 64 0L229.5 0c17 0 33.3 6.7 45.3 18.7l90.5 90.5c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64z"],
|
|
@@ -12954,7 +13119,10 @@ LX.ICONS = {
|
|
|
12954
13119
|
"file-code": [384, 512, [], "regular", "M64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16l160 0 0 80c0 17.7 14.3 32 32 32l80 0 0 288c0 8.8-7.2 16-16 16L64 464zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-293.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0L64 0zm97 289c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L79 303c-9.4 9.4-9.4 24.6 0 33.9l48 48c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-31-31 31-31zM257 255c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l48-48c9.4-9.4 9.4-24.6 0-33.9l-48-48z"],
|
|
12955
13120
|
"file-zip": [384, 512, [], "regular", "M64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16l48 0c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l48 0 0 80c0 17.7 14.3 32 32 32l80 0 0 288c0 8.8-7.2 16-16 16L64 464zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-293.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0L64 0zm48 112c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm-6.3 71.8L82.1 335.9c-1.4 5.4-2.1 10.9-2.1 16.4c0 35.2 28.8 63.7 64 63.7s64-28.5 64-63.7c0-5.5-.7-11.1-2.1-16.4l-23.5-88.2c-3.7-14-16.4-23.8-30.9-23.8l-14.8 0c-14.5 0-27.2 9.7-30.9 23.8zM128 336l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z"],
|
|
12956
13121
|
"file-pdf": [512, 512, [], "regular", "M64 464l48 0 0 48-48 0c-35.3 0-64-28.7-64-64L0 64C0 28.7 28.7 0 64 0L229.5 0c17 0 33.3 6.7 45.3 18.7l90.5 90.5c12 12 18.7 28.3 18.7 45.3L384 304l-48 0 0-144-80 0c-17.7 0-32-14.3-32-32l0-80L64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16zM176 352l32 0c30.9 0 56 25.1 56 56s-25.1 56-56 56l-16 0 0 32c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48 0-80c0-8.8 7.2-16 16-16zm32 80c13.3 0 24-10.7 24-24s-10.7-24-24-24l-16 0 0 48 16 0zm96-80l32 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-32 0c-8.8 0-16-7.2-16-16l0-128c0-8.8 7.2-16 16-16zm32 128c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-16 0 0 96 16 0zm80-112c0-8.8 7.2-16 16-16l48 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0 0 32 32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0 0 48c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-64 0-64z"],
|
|
13122
|
+
"box-archive": [24, 24, [], "regular", "M2 3a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v3a1 1 0 0 1-1 1H2V3Zm2 5h16v11a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V8Zm6 4h4", null, "fill=none stroke-width=2 stroke-linecap=round stroke-linejoin=round"],
|
|
13123
|
+
"box-archive-x": [24, 24, [], "regular", "M3 3h18a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1ZM4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8M9.5 17l5-5m-5-0l5 5", null, "fill=none stroke-width=2 stroke-linecap=round stroke-linejoin=round"],
|
|
12957
13124
|
"scroll": [576, 512, ["script"], "solid", "M0 80l0 48c0 17.7 14.3 32 32 32l16 0 48 0 0-80c0-26.5-21.5-48-48-48S0 53.5 0 80zM112 32c10 13.4 16 30 16 48l0 304c0 35.3 28.7 64 64 64s64-28.7 64-64l0-5.3c0-32.4 26.3-58.7 58.7-58.7L480 320l0-192c0-53-43-96-96-96L112 32zM464 480c61.9 0 112-50.1 112-112c0-8.8-7.2-16-16-16l-245.3 0c-14.7 0-26.7 11.9-26.7 26.7l0 5.3c0 53-43 96-96 96l176 0 96 0z"],
|
|
13125
|
+
"paper-plane": [512, 512, [], "", "M16.1 260.2c-22.6 12.9-20.5 47.3 3.6 57.3L160 376l0 103.3c0 18.1 14.6 32.7 32.7 32.7c9.7 0 18.9-4.3 25.1-11.8l62-74.3 123.9 51.6c18.9 7.9 40.8-4.5 43.9-24.7l64-416c1.9-12.1-3.4-24.3-13.5-31.2s-23.3-7.5-34-1.4l-448 256zm52.1 25.5L409.7 90.6 190.1 336l1.2 1L68.2 285.7zM403.3 425.4L236.7 355.9 450.8 116.6 403.3 425.4z"],
|
|
12958
13126
|
"floppy-disk": [448, 512, ["save"], "regular", "M48 96l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-245.5c0-4.2-1.7-8.3-4.7-11.3l33.9-33.9c12 12 18.7 28.3 18.7 45.3L448 416c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l245.5 0c17 0 33.3 6.7 45.3 18.7l74.5 74.5-33.9 33.9L320.8 84.7c-.3-.3-.5-.5-.8-.8L320 184c0 13.3-10.7 24-24 24l-192 0c-13.3 0-24-10.7-24-24L80 80 64 80c-8.8 0-16 7.2-16 16zm80-16l0 80 144 0 0-80L128 80zm32 240a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z"],
|
|
12959
13127
|
"download": [512, 512, [], "solid", "M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 242.7-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 274.7 288 32zM64 352c-35.3 0-64 28.7-64 64l0 32c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-32c0-35.3-28.7-64-64-64l-101.5 0-45.3 45.3c-25 25-65.5 25-90.5 0L165.5 352 64 352zm368 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"],
|
|
12960
13128
|
"upload": [512, 512, [], "solid", "M288 109.3L288 352c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-242.7-73.4 73.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l128-128c12.5-12.5 32.8-12.5 45.3 0l128 128c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L288 109.3zM64 352l128 0c0 35.3 28.7 64 64 64s64-28.7 64-64l128 0c35.3 0 64 28.7 64 64l0 32c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64l0-32c0-35.3 28.7-64 64-64zM432 456a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"],
|
|
@@ -12964,6 +13132,7 @@ LX.ICONS = {
|
|
|
12964
13132
|
"eye": [576, 512, [], "regular", "M288 80c-65.2 0-118.8 29.6-159.9 67.7C89.6 183.5 63 226 49.4 256c13.6 30 40.2 72.5 78.6 108.3C169.2 402.4 222.8 432 288 432s118.8-29.6 159.9-67.7C486.4 328.5 513 286 526.6 256c-13.6-30-40.2-72.5-78.6-108.3C406.8 109.6 353.2 80 288 80zM95.4 112.6C142.5 68.8 207.2 32 288 32s145.5 36.8 192.6 80.6c46.8 43.5 78.1 95.4 93 131.1c3.3 7.9 3.3 16.7 0 24.6c-14.9 35.7-46.2 87.7-93 131.1C433.5 443.2 368.8 480 288 480s-145.5-36.8-192.6-80.6C48.6 356 17.3 304 2.5 268.3c-3.3-7.9-3.3-16.7 0-24.6C17.3 208 48.6 156 95.4 112.6zM288 336c44.2 0 80-35.8 80-80s-35.8-80-80-80c-.7 0-1.3 0-2 0c1.3 5.1 2 10.5 2 16c0 35.3-28.7 64-64 64c-5.5 0-10.9-.7-16-2c0 .7 0 1.3 0 2c0 44.2 35.8 80 80 80zm0-208a128 128 0 1 1 0 256 128 128 0 1 1 0-256z"],
|
|
12965
13133
|
"eye-slash": [640, 512, [], "regular", "M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zm151 118.3C226 97.7 269.5 80 320 80c65.2 0 118.8 29.6 159.9 67.7C518.4 183.5 545 226 558.6 256c-12.6 28-36.6 66.8-70.9 100.9l-53.8-42.2c9.1-17.6 14.2-37.5 14.2-58.7c0-70.7-57.3-128-128-128c-32.2 0-61.7 11.9-84.2 31.5l-46.1-36.1zM394.9 284.2l-81.5-63.9c4.2-8.5 6.6-18.2 6.6-28.3c0-5.5-.7-10.9-2-16c.7 0 1.3 0 2 0c44.2 0 80 35.8 80 80c0 9.9-1.8 19.4-5.1 28.2zm9.4 130.3C378.8 425.4 350.7 432 320 432c-65.2 0-118.8-29.6-159.9-67.7C121.6 328.5 95 286 81.4 256c8.3-18.4 21.5-41.5 39.4-64.8L83.1 161.5C60.3 191.2 44 220.8 34.5 243.7c-3.3 7.9-3.3 16.7 0 24.6c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c47.8 0 89.9-12.9 126.2-32.5l-41.9-33zM192 256c0 70.7 57.3 128 128 128c13.3 0 26.1-2 38.2-5.8L302 334c-23.5-5.4-43.1-21.2-53.7-42.3l-56.1-44.2c-.2 2.8-.3 5.6-.3 8.5z"],
|
|
12966
13134
|
"comment": [512, 512, [], "regular", "M123.6 391.3c12.9-9.4 29.6-11.8 44.6-6.4c26.5 9.6 56.2 15.1 87.8 15.1c124.7 0 208-80.5 208-160s-83.3-160-208-160S48 160.5 48 240c0 32 12.4 62.8 35.7 89.2c8.6 9.7 12.8 22.5 11.8 35.5c-1.4 18.1-5.7 34.7-11.3 49.4c17-7.9 31.1-16.7 39.4-22.7zM21.2 431.9c1.8-2.7 3.5-5.4 5.1-8.1c10-16.6 19.5-38.4 21.4-62.9C17.7 326.8 0 285.1 0 240C0 125.1 114.6 32 256 32s256 93.1 256 208s-114.6 208-256 208c-37.1 0-72.3-6.4-104.1-17.9c-11.9 8.7-31.3 20.6-54.3 30.6c-15.1 6.6-32.3 12.6-50.1 16.1c-.8 .2-1.6 .3-2.4 .5c-4.4 .8-8.7 1.5-13.2 1.9c-.2 0-.5 .1-.7 .1c-5.1 .5-10.2 .8-15.3 .8c-6.5 0-12.3-3.9-14.8-9.9c-2.5-6-1.1-12.8 3.4-17.4c4.1-4.2 7.8-8.7 11.3-13.5c1.7-2.3 3.3-4.6 4.8-6.9l.3-.5z"],
|
|
13135
|
+
"comments": [640, 512, [], "regular", "M88.2 309.1c9.8-18.3 6.8-40.8-7.5-55.8C59.4 230.9 48 204 48 176c0-63.5 63.8-128 160-128s160 64.5 160 128s-63.8 128-160 128c-13.1 0-25.8-1.3-37.8-3.6c-10.4-2-21.2-.6-30.7 4.2c-4.1 2.1-8.3 4.1-12.6 6c-16 7.2-32.9 13.5-49.9 18c2.8-4.6 5.4-9.1 7.9-13.6c1.1-1.9 2.2-3.9 3.2-5.9zM208 352c114.9 0 208-78.8 208-176S322.9 0 208 0S0 78.8 0 176c0 41.8 17.2 80.1 45.9 110.3c-.9 1.7-1.9 3.5-2.8 5.1c-10.3 18.4-22.3 36.5-36.6 52.1c-6.6 7-8.3 17.2-4.6 25.9C5.8 378.3 14.4 384 24 384c43 0 86.5-13.3 122.7-29.7c4.8-2.2 9.6-4.5 14.2-6.8c15.1 3 30.9 4.5 47.1 4.5zM432 480c16.2 0 31.9-1.6 47.1-4.5c4.6 2.3 9.4 4.6 14.2 6.8C529.5 498.7 573 512 616 512c9.6 0 18.2-5.7 22-14.5c3.8-8.8 2-19-4.6-25.9c-14.2-15.6-26.2-33.7-36.6-52.1c-.9-1.7-1.9-3.4-2.8-5.1C622.8 384.1 640 345.8 640 304c0-94.4-87.9-171.5-198.2-175.8c4.1 15.2 6.2 31.2 6.2 47.8l0 .6c87.2 6.7 144 67.5 144 127.4c0 28-11.4 54.9-32.7 77.2c-14.3 15-17.3 37.6-7.5 55.8c1.1 2 2.2 4 3.2 5.9c2.5 4.5 5.2 9 7.9 13.6c-17-4.5-33.9-10.7-49.9-18c-4.3-1.9-8.5-3.9-12.6-6c-9.5-4.8-20.3-6.2-30.7-4.2c-12.1 2.4-24.8 3.6-37.8 3.6c-61.7 0-110-26.5-136.8-62.3c-16 5.4-32.8 9.4-50 11.8C279 439.8 350 480 432 480z"],
|
|
12967
13136
|
"message": [512, 512, [], "regular", "M160 368c26.5 0 48 21.5 48 48l0 16 72.5-54.4c8.3-6.2 18.4-9.6 28.8-9.6L448 368c8.8 0 16-7.2 16-16l0-288c0-8.8-7.2-16-16-16L64 48c-8.8 0-16 7.2-16 16l0 288c0 8.8 7.2 16 16 16l96 0zm48 124l-.2 .2-5.1 3.8-17.1 12.8c-4.8 3.6-11.3 4.2-16.8 1.5s-8.8-8.2-8.8-14.3l0-21.3 0-6.4 0-.3 0-4 0-48-48 0-48 0c-35.3 0-64-28.7-64-64L0 64C0 28.7 28.7 0 64 0L448 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64l-138.7 0L208 492z"],
|
|
12968
13137
|
"folder": [512, 512, [], "regular", "M0 96C0 60.7 28.7 32 64 32l132.1 0c19.1 0 37.4 7.6 50.9 21.1L289.9 96 448 96c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-256c0-8.8-7.2-16-16-16l-161.4 0c-10.6 0-20.8-4.2-28.3-11.7L213.1 87c-4.5-4.5-10.6-7-17-7L64 80z"],
|
|
12969
13138
|
"folder-closed": [512, 512, [], "regular", "M251.7 127.6s0 0 0 0c10.5 10.5 24.7 16.4 39.6 16.4L448 144c8.8 0 16 7.2 16 16l0 32L48 192l0-96c0-8.8 7.2-16 16-16l133.5 0c4.2 0 8.3 1.7 11.3 4.7l33.9-33.9L208.8 84.7l42.9 42.9zM48 240l416 0 0 176c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16l0-176zM285.7 93.7L242.7 50.7c-12-12-28.3-18.7-45.3-18.7L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L291.3 96c-2.1 0-4.2-.8-5.7-2.3z"],
|
|
@@ -12977,27 +13146,33 @@ LX.ICONS = {
|
|
|
12977
13146
|
"up": [448, 512, [], "solid", "M201.4 137.4c12.5-12.5 32.8-12.5 45.3 0l160 160c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L224 205.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160z"],
|
|
12978
13147
|
"down": [448, 512, [], "solid", "M201.4 374.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 306.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z"],
|
|
12979
13148
|
"arrows": [512, 512, ["arrows-up-down-left-right"], "solid", "M278.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l9.4-9.4L224 224l-114.7 0 9.4-9.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4L224 288l0 114.7-9.4-9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-9.4 9.4L288 288l114.7 0-9.4 9.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l9.4 9.4L288 224l0-114.7 9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64z"],
|
|
13149
|
+
"arrow-pointer": [320, 512, [], "solid", "M0 55.2L0 426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320l118.1 0c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z"],
|
|
13150
|
+
"reply": [24, 24, [], "regular", "M9 17L4 12L9 7M4 12H16A4 4 0 0 1 20 16V18", null, "fill=none stroke-width=2 stroke-linejoin=round stroke-linecap=round"],
|
|
13151
|
+
"reply-all": [24, 24, [], "regular", "M7 17L2 12L7 7M12 17L7 12L12 7M7 12H18A4 4 0 0 1 22 16V18", null, "fill=none stroke-width=2 stroke-linejoin=round stroke-linecap=round"],
|
|
13152
|
+
"forward": [24, 24, [], "regular", "M15 17L20 12L15 7M4 18V16A4 4 0 0 1 8 12H20", null, "fill=none stroke-width=2 stroke-linejoin=round stroke-linecap=round"],
|
|
12980
13153
|
"rotate": [512, 512, [], "solid", "M142.9 142.9c-17.5 17.5-30.1 38-37.8 59.8c-5.9 16.7-24.2 25.4-40.8 19.5s-25.4-24.2-19.5-40.8C55.6 150.7 73.2 122 97.6 97.6c87.2-87.2 228.3-87.5 315.8-1L455 55c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2l0 128c0 13.3-10.7 24-24 24l-8.4 0c0 0 0 0 0 0L344 224c-9.7 0-18.5-5.8-22.2-14.8s-1.7-19.3 5.2-26.2l41.1-41.1c-62.6-61.5-163.1-61.2-225.3 1zM16 312c0-13.3 10.7-24 24-24l7.6 0 .7 0L168 288c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-41.1 41.1c62.6 61.5 163.1 61.2 225.3-1c17.5-17.5 30.1-38 37.8-59.8c5.9-16.7 24.2-25.4 40.8-19.5s25.4 24.2 19.5 40.8c-10.8 30.6-28.4 59.3-52.9 83.8c-87.2 87.2-228.3 87.5-315.8 1L57 457c-6.9 6.9-17.2 8.9-26.2 5.2S16 449.7 16 440l0-119.6 0-.7 0-7.6z"],
|
|
12981
13154
|
"rotate-right": [512, 512, ["rotate-forward"], "solid", "M463.5 224l8.5 0c13.3 0 24-10.7 24-24l0-128c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2L413.4 96.6c-87.6-86.5-228.7-86.2-315.8 1c-87.5 87.5-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3c62.2-62.2 162.7-62.5 225.3-1L327 183c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8l119.5 0z"],
|
|
12982
13155
|
"rotate-left": [512, 512, ["rotate-back"], "solid", "M48.5 224L40 224c-13.3 0-24-10.7-24-24L16 72c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2L98.6 96.6c87.6-86.5 228.7-86.2 315.8 1c87.5 87.5 87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3c-62.2-62.2-162.7-62.5-225.3-1L185 183c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8L48.5 224z"],
|
|
12983
|
-
"arrow-pointer": [320, 512, [], "solid", "M0 55.2L0 426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320l118.1 0c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z"],
|
|
12984
13156
|
"hand-pointer": [448, 512, [], "regular", "M160 64c0-8.8 7.2-16 16-16s16 7.2 16 16l0 136c0 10.3 6.6 19.5 16.4 22.8s20.6-.1 26.8-8.3c3-3.9 7.6-6.4 12.8-6.4c8.8 0 16 7.2 16 16c0 10.3 6.6 19.5 16.4 22.8s20.6-.1 26.8-8.3c3-3.9 7.6-6.4 12.8-6.4c7.8 0 14.3 5.6 15.7 13c1.6 8.2 7.3 15.1 15.1 18s16.7 1.6 23.3-3.6c2.7-2.1 6.1-3.4 9.9-3.4c8.8 0 16 7.2 16 16l0 16 0 104c0 39.8-32.2 72-72 72l-56 0-59.8 0-.9 0c-37.4 0-72.4-18.7-93.2-49.9L50.7 312.9c-4.9-7.4-2.9-17.3 4.4-22.2s17.3-2.9 22.2 4.4L116 353.2c5.9 8.8 16.8 12.7 26.9 9.7s17-12.4 17-23l0-19.9 0-256zM176 0c-35.3 0-64 28.7-64 64l0 197.7C91.2 238 55.5 232.8 28.5 250.7C-.9 270.4-8.9 310.1 10.8 339.5L78.3 440.8c29.7 44.5 79.6 71.2 133.1 71.2l.9 0 59.8 0 56 0c66.3 0 120-53.7 120-120l0-104 0-16c0-35.3-28.7-64-64-64c-4.5 0-8.8 .5-13 1.3c-11.7-15.4-30.2-25.3-51-25.3c-6.9 0-13.5 1.1-19.7 3.1C288.7 170.7 269.6 160 248 160c-2.7 0-5.4 .2-8 .5L240 64c0-35.3-28.7-64-64-64zm48 304c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96zm48-16c-8.8 0-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96c0-8.8-7.2-16-16-16zm80 16c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96z"],
|
|
12985
13157
|
"log-in": [512, 512, [], "solid", "M352 96l64 0c17.7 0 32 14.3 32 32l0 256c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c53 0 96-43 96-96l0-256c0-53-43-96-96-96l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm-9.4 182.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L242.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l210.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z"],
|
|
12986
13158
|
"log-out": [512, 512, [], "solid", "M502.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224 192 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l210.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128zM160 96c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 32C43 32 0 75 0 128L0 384c0 53 43 96 96 96l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l64 0z"],
|
|
12987
|
-
"menu-arrows": [512, 512, [], "solid", "M352 144l96 112-96 112M160 144L64 256l96 112", "transform=rotate(90)", "fill=none stroke
|
|
13159
|
+
"menu-arrows": [512, 512, [], "solid", "M352 144l96 112-96 112M160 144L64 256l96 112", "transform=rotate(90)", "fill=none stroke-width=60 stroke-linejoin=round stroke-linecap=round"],
|
|
12988
13160
|
"more": [128, 512, [], "solid", "M64 360a56 56 0 1 0 0 112 56 56 0 1 0 0-112zm0-160a56 56 0 1 0 0 112 56 56 0 1 0 0-112zM120 96A56 56 0 1 0 8 96a56 56 0 1 0 112 0z"],
|
|
12989
13161
|
"minus": [448, 512, [], "solid", "M432 256c0 17.7-14.3 32-32 32L48 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l352 0c17.7 0 32 14.3 32 32z"],
|
|
12990
13162
|
"more-horizontal": [448, 512, [], "solid", "M8 256a56 56 0 1 1 112 0A56 56 0 1 1 8 256zm160 0a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm216-56a56 56 0 1 1 0 112 56 56 0 1 1 0-112z"],
|
|
12991
13163
|
"plus": [448, 512, [], "solid", "M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 144L48 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l144 0 0 144c0 17.7 14.3 32 32 32s32-14.3 32-32l0-144 144 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-144 0 0-144z"],
|
|
12992
13164
|
"circle-plus": [24, 24, [], "regular", "M12 8V16M8 12H16M22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12Z", null, "fill=none stroke-width=2 stroke-linecap=round stroke-linejoin=round"],
|
|
13165
|
+
"circle-info": [24, 24, [], "regular", "M12 2a10 10 0 1 1 0 20 10 10 0 0 1 0-20ZM12 8v4M12 16h.01", null, "fill=none stroke-width=2 stroke-linejoin=round stroke-linecap=round"],
|
|
12993
13166
|
"search": [512, 512, [], "solid", "M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z"],
|
|
12994
13167
|
"compass": [512, 512, [], "regular", "M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm306.7 69.1L162.4 380.6c-19.4 7.5-38.5-11.6-31-31l55.5-144.3c3.3-8.5 9.9-15.1 18.4-18.4l144.3-55.5c19.4-7.5 38.5 11.6 31 31L325.1 306.7c-3.2 8.5-9.9 15.1-18.4 18.4zM288 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"],
|
|
12995
|
-
"
|
|
13168
|
+
"clock": [512, 512, [], "regular", "M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z"],
|
|
13169
|
+
"sidebar": [512, 512, [], "regular", "M64 64h384a32 32 0 0 1 32 32v320a32 32 0 0 1-32 32H64a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32zm128 0v384", null, "fill=none stroke-width=50 stroke-linejoin=round stroke-linecap=round"],
|
|
12996
13170
|
"table-cells": [512, 512, [], "solid", "M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm88 64l0 64-88 0 0-64 88 0zm56 0l88 0 0 64-88 0 0-64zm240 0l0 64-88 0 0-64 88 0zM64 224l88 0 0 64-88 0 0-64zm232 0l0 64-88 0 0-64 88 0zm64 0l88 0 0 64-88 0 0-64zM152 352l0 64-88 0 0-64 88 0zm56 0l88 0 0 64-88 0 0-64zm240 0l0 64-88 0 0-64 88 0z"],
|
|
12997
13171
|
"table-cells-large": [512, 512, [], "solid", "M448 96l0 128-160 0 0-128 160 0zm0 192l0 128-160 0 0-128 160 0zM224 224L64 224 64 96l160 0 0 128zM64 288l160 0 0 128L64 416l0-128zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z"],
|
|
12998
13172
|
"lightbulb": [384, 512, [], "regular", "M297.2 248.9C311.6 228.3 320 203.2 320 176c0-70.7-57.3-128-128-128S64 105.3 64 176c0 27.2 8.4 52.3 22.8 72.9c3.7 5.3 8.1 11.3 12.8 17.7c0 0 0 0 0 0c12.9 17.7 28.3 38.9 39.8 59.8c10.4 19 15.7 38.8 18.3 57.5L109 384c-2.2-12-5.9-23.7-11.8-34.5c-9.9-18-22.2-34.9-34.5-51.8c0 0 0 0 0 0s0 0 0 0c-5.2-7.1-10.4-14.2-15.4-21.4C27.6 247.9 16 213.3 16 176C16 78.8 94.8 0 192 0s176 78.8 176 176c0 37.3-11.6 71.9-31.4 100.3c-5 7.2-10.2 14.3-15.4 21.4c0 0 0 0 0 0s0 0 0 0c-12.3 16.8-24.6 33.7-34.5 51.8c-5.9 10.8-9.6 22.5-11.8 34.5l-48.6 0c2.6-18.7 7.9-38.6 18.3-57.5c11.5-20.9 26.9-42.1 39.8-59.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0c4.7-6.4 9-12.4 12.7-17.7zM192 128c-26.5 0-48 21.5-48 48c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16s-7.2 16-16 16zm0 384c-44.2 0-80-35.8-80-80l0-16 160 0 0 16c0 44.2-35.8 80-80 80z"],
|
|
12999
13173
|
"flag": [448, 512, [], "regular", "M48 24C48 10.7 37.3 0 24 0S0 10.7 0 24L0 64 0 350.5 0 400l0 88c0 13.3 10.7 24 24 24s24-10.7 24-24l0-100 80.3-20.1c41.1-10.3 84.6-5.5 122.5 13.4c44.2 22.1 95.5 24.8 141.7 7.4l34.7-13c12.5-4.7 20.8-16.6 20.8-30l0-279.7c0-23-24.2-38-44.8-27.7l-9.6 4.8c-46.3 23.2-100.8 23.2-147.1 0c-35.1-17.6-75.4-22-113.5-12.5L48 52l0-28zm0 77.5l96.6-24.2c27-6.7 55.5-3.6 80.4 8.8c54.9 27.4 118.7 29.7 175 6.8l0 241.8-24.4 9.1c-33.7 12.6-71.2 10.7-103.4-5.4c-48.2-24.1-103.3-30.1-155.6-17.1L48 338.5l0-237z"],
|
|
13000
13174
|
"shuffle": [512, 512, [], "solid", "M403.8 34.4c12-5 25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6l0-32-32 0c-10.1 0-19.6 4.7-25.6 12.8L284 229.3 244 176l31.2-41.6C293.3 110.2 321.8 96 352 96l32 0 0-32c0-12.9 7.8-24.6 19.8-29.6zM164 282.7L204 336l-31.2 41.6C154.7 401.8 126.2 416 96 416l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0c10.1 0 19.6-4.7 25.6-12.8L164 282.7zm274.6 188c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6l0-32-32 0c-30.2 0-58.7-14.2-76.8-38.4L121.6 172.8c-6-8.1-15.5-12.8-25.6-12.8l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0c30.2 0 58.7 14.2 76.8 38.4L326.4 339.2c6 8.1 15.5 12.8 25.6 12.8l32 0 0-32c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64z"],
|
|
13175
|
+
"shopping-cart": [24, 24, [], "regular", "M8 20a1 1 0 1 0 0 2 1 1 0 0 0 0-2ZM19 20a1 1 0 1 0 0 2 1 1 0 0 0 0-2ZM2.05 2.05h2l2.66 12.42a2 2 0 0 0 2 1.58h9.78a2 2 0 0 0 1.95-1.57l1.65-7.43H5.12", null, "fill=none stroke-width=2 stroke-linecap=round stroke-linejoin=round"],
|
|
13001
13176
|
"credit-card": [576, 512, [], "regular", "M512 80c8.8 0 16 7.2 16 16l0 32L48 128l0-32c0-8.8 7.2-16 16-16l448 0zm16 144l0 192c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16l0-192 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 32zm56 304c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0zm128 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0z"],
|
|
13002
13177
|
"lock": [448, 512, [], "solid", "M144 144l0 48 160 0 0-48c0-44.2-35.8-80-80-80s-80 35.8-80 80zM80 192l0-48C80 64.5 144.5 0 224 0s144 64.5 144 144l0 48 16 0c35.3 0 64 28.7 64 64l0 192c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 256c0-35.3 28.7-64 64-64l16 0z"],
|
|
13003
13178
|
"lock-open": [576, 512, [], "solid", "M352 144c0-44.2 35.8-80 80-80s80 35.8 80 80l0 48c0 17.7 14.3 32 32 32s32-14.3 32-32l0-48C576 64.5 511.5 0 432 0S288 64.5 288 144l0 48L64 192c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64l-32 0 0-48z"],
|