lexgui 0.5.11 → 0.6.1
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/README.md +1 -1
- package/build/components/codeeditor.js +89 -40
- package/build/components/nodegraph.js +32 -23
- package/build/components/timeline.js +5 -5
- package/build/components/videoeditor.js +1 -1
- package/build/lexgui.css +185 -395
- package/build/lexgui.js +966 -1030
- package/build/lexgui.min.css +1 -1
- package/build/lexgui.min.js +1 -1
- package/build/lexgui.module.js +966 -1030
- package/build/lexgui.module.min.js +1 -1
- package/changelog.md +41 -1
- package/demo.js +103 -88
- package/examples/all_widgets.html +37 -38
- package/examples/area_tabs.html +5 -5
- package/examples/asset_view.html +1 -1
- package/examples/code_editor.html +1 -1
- package/examples/dialogs.html +4 -4
- package/examples/immediate_ui.html +1 -1
- package/examples/index.html +8 -8
- package/examples/node_graph.html +1 -1
- package/examples/side_bar.html +15 -15
- package/examples/timeline.html +9 -9
- package/examples/video_editor.html +1 -1
- package/examples/video_editor2.html +5 -6
- package/package.json +1 -1
package/build/lexgui.js
CHANGED
|
@@ -12,7 +12,7 @@ console.warn( 'Script _build/lexgui.js_ is depracated and will be removed soon.
|
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
14
|
var LX = {
|
|
15
|
-
version: "0.
|
|
15
|
+
version: "0.6.1",
|
|
16
16
|
ready: false,
|
|
17
17
|
components: [], // Specific pre-build components
|
|
18
18
|
signals: {}, // Events and triggers
|
|
@@ -91,7 +91,21 @@ LX.doAsync = doAsync;
|
|
|
91
91
|
*/
|
|
92
92
|
function getSupportedDOMName( text )
|
|
93
93
|
{
|
|
94
|
-
|
|
94
|
+
console.assert( typeof text == "string", "getSupportedDOMName: Text is not a string!" );
|
|
95
|
+
|
|
96
|
+
let name = text.trim();
|
|
97
|
+
|
|
98
|
+
// Replace specific known symbols
|
|
99
|
+
name = name.replace( /@/g, '_at_' ).replace( /\+/g, '_plus_' ).replace( /\./g, '_dot_' );
|
|
100
|
+
name = name.replace( /[^a-zA-Z0-9_-]/g, '_' );
|
|
101
|
+
|
|
102
|
+
// prefix with an underscore if needed
|
|
103
|
+
if( /^[0-9]/.test( name ) )
|
|
104
|
+
{
|
|
105
|
+
name = '_' + name;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
return name;
|
|
95
109
|
}
|
|
96
110
|
|
|
97
111
|
LX.getSupportedDOMName = getSupportedDOMName;
|
|
@@ -503,6 +517,7 @@ LX.buildTextPattern = buildTextPattern;
|
|
|
503
517
|
* dragMargin (Number): Margin of drag container
|
|
504
518
|
* onMove (Function): Called each move event
|
|
505
519
|
* onDragStart (Function): Called when drag event starts
|
|
520
|
+
* updateLayers (Function): Update Zindex of elements to update layers
|
|
506
521
|
*/
|
|
507
522
|
function makeDraggable( domEl, options = { } )
|
|
508
523
|
{
|
|
@@ -589,14 +604,17 @@ function makeDraggable( domEl, options = { } )
|
|
|
589
604
|
|
|
590
605
|
currentTarget.eventCatched = true;
|
|
591
606
|
|
|
592
|
-
|
|
593
|
-
if( LX.activeDraggable )
|
|
607
|
+
if( options.updateLayers ?? true )
|
|
594
608
|
{
|
|
595
|
-
|
|
596
|
-
|
|
609
|
+
// Force active dialog to show on top
|
|
610
|
+
if( LX.activeDraggable )
|
|
611
|
+
{
|
|
612
|
+
LX.activeDraggable.style.zIndex = LX.DRAGGABLE_Z_INDEX;
|
|
613
|
+
}
|
|
597
614
|
|
|
598
|
-
|
|
599
|
-
|
|
615
|
+
LX.activeDraggable = domEl;
|
|
616
|
+
LX.activeDraggable.style.zIndex = LX.DRAGGABLE_Z_INDEX + 1;
|
|
617
|
+
}
|
|
600
618
|
|
|
601
619
|
if( onDragStart )
|
|
602
620
|
{
|
|
@@ -628,7 +646,7 @@ function makeCollapsible( domEl, content, parent, options = { } )
|
|
|
628
646
|
domEl.classList.add( "collapsible" );
|
|
629
647
|
|
|
630
648
|
const collapsed = ( options.collapsed ?? true );
|
|
631
|
-
const actionIcon = LX.makeIcon( "
|
|
649
|
+
const actionIcon = LX.makeIcon( "Right" );
|
|
632
650
|
actionIcon.classList.add( "collapser" );
|
|
633
651
|
actionIcon.dataset[ "collapsed" ] = collapsed;
|
|
634
652
|
actionIcon.style.marginLeft = "auto";
|
|
@@ -805,59 +823,98 @@ LX.makeKbd = makeKbd;
|
|
|
805
823
|
* title
|
|
806
824
|
* extraClass
|
|
807
825
|
* svgClass
|
|
826
|
+
* variant
|
|
827
|
+
* ...Any Lucide icon options
|
|
808
828
|
*/
|
|
809
829
|
function makeIcon( iconName, options = { } )
|
|
810
830
|
{
|
|
811
|
-
let
|
|
812
|
-
console.assert( data, `No icon named _${ iconName }_` );
|
|
831
|
+
let svg = null;
|
|
813
832
|
|
|
814
|
-
const
|
|
815
|
-
|
|
816
|
-
|
|
833
|
+
const _createIconFromSVG = ( svg ) => {
|
|
834
|
+
if( options.svgClass && options.svgClass.length )
|
|
835
|
+
{
|
|
836
|
+
options.svgClass.split( " " ).forEach( c => svg.classList.add( c ) );
|
|
837
|
+
}
|
|
838
|
+
const icon = document.createElement( "a" );
|
|
839
|
+
icon.title = options.title ?? "";
|
|
840
|
+
icon.className = "lexicon " + ( options.iconClass ?? "" );
|
|
841
|
+
icon.appendChild( svg );
|
|
842
|
+
svg.dataset[ "name" ] = iconName;
|
|
843
|
+
return icon;
|
|
844
|
+
}
|
|
817
845
|
|
|
818
|
-
|
|
819
|
-
if( data.constructor == String )
|
|
846
|
+
if( iconName.includes( "@" ) )
|
|
820
847
|
{
|
|
821
|
-
|
|
848
|
+
const parts = iconName.split( "@" );
|
|
849
|
+
iconName = parts[ 0 ];
|
|
850
|
+
options.variant = parts[ 1 ];
|
|
822
851
|
}
|
|
823
852
|
|
|
824
|
-
|
|
825
|
-
|
|
853
|
+
let data = LX.ICONS[ iconName ];
|
|
854
|
+
const lucideData = lucide[ iconName ] ?? lucide[ LX.LucideIconAlias[ iconName ] ];
|
|
826
855
|
|
|
827
|
-
if(
|
|
856
|
+
if( data )
|
|
828
857
|
{
|
|
829
|
-
|
|
830
|
-
|
|
858
|
+
// Resolve alias
|
|
859
|
+
if( data.constructor == String )
|
|
860
|
+
{
|
|
861
|
+
data = LX.ICONS[ data ];
|
|
862
|
+
}
|
|
831
863
|
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
const
|
|
835
|
-
svg.setAttribute( attr[ 0 ], attr[ 1 ] );
|
|
836
|
-
}
|
|
864
|
+
// Resolve variant
|
|
865
|
+
const requestedVariant = options.variant ?? "regular";
|
|
866
|
+
const variant = data[ 3 ];
|
|
837
867
|
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
868
|
+
// Create internal icon if variant is the same as requested, there's no lucide/fallback data or if variant is "regular" (default)
|
|
869
|
+
if( ( requestedVariant == variant ) || !lucideData || variant == "regular" )
|
|
870
|
+
{
|
|
871
|
+
svg = document.createElementNS( "http://www.w3.org/2000/svg", "svg" );
|
|
872
|
+
svg.setAttribute( "viewBox", `0 0 ${ data[ 0 ] } ${ data[ 1 ] }` );
|
|
842
873
|
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
874
|
+
if( data[ 5 ] )
|
|
875
|
+
{
|
|
876
|
+
const classes = data[ 5 ].svgClass;
|
|
877
|
+
classes?.split( ' ' ).forEach( c => {
|
|
878
|
+
svg.classList.add( c )
|
|
879
|
+
} );
|
|
880
|
+
|
|
881
|
+
const attrs = data[ 5 ].svgAttributes;
|
|
882
|
+
attrs?.split( ' ' ).forEach( attr => {
|
|
883
|
+
const t = attr.split( '=' );
|
|
884
|
+
svg.setAttribute( t[ 0 ], t[ 1 ] );
|
|
885
|
+
} );
|
|
886
|
+
}
|
|
887
|
+
|
|
888
|
+
const path = document.createElement( "path" );
|
|
889
|
+
path.setAttribute( "fill", "currentColor" );
|
|
890
|
+
path.setAttribute( "d", data[ 4 ] );
|
|
891
|
+
svg.appendChild( path );
|
|
851
892
|
|
|
852
|
-
|
|
853
|
-
|
|
893
|
+
if( data[ 5 ] )
|
|
894
|
+
{
|
|
895
|
+
const classes = data[ 5 ].pathClass;
|
|
896
|
+
classes?.split( ' ' ).forEach( c => {
|
|
897
|
+
path.classList.add( c )
|
|
898
|
+
} );
|
|
854
899
|
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
900
|
+
const attrs = data[ 5 ].pathAttributes;
|
|
901
|
+
attrs?.split( ' ' ).forEach( attr => {
|
|
902
|
+
const t = attr.split( '=' );
|
|
903
|
+
path.setAttribute( t[ 0 ], t[ 1 ] );
|
|
904
|
+
} );
|
|
905
|
+
}
|
|
859
906
|
|
|
860
|
-
|
|
907
|
+
const faLicense = `<!-- This icon might belong to a collection from Iconify - https://iconify.design/ - or !Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc. -->`;
|
|
908
|
+
svg.innerHTML += faLicense;
|
|
909
|
+
return _createIconFromSVG( svg );
|
|
910
|
+
}
|
|
911
|
+
}
|
|
912
|
+
|
|
913
|
+
// Fallback to Lucide icon
|
|
914
|
+
console.assert( lucideData, `No existing icon named _${ iconName }_` );
|
|
915
|
+
svg = lucide.createElement( lucideData, options );
|
|
916
|
+
|
|
917
|
+
return _createIconFromSVG( svg );
|
|
861
918
|
}
|
|
862
919
|
|
|
863
920
|
LX.makeIcon = makeIcon;
|
|
@@ -867,10 +924,10 @@ LX.makeIcon = makeIcon;
|
|
|
867
924
|
* @description Register an SVG icon to LX.ICONS
|
|
868
925
|
* @param {String} iconName
|
|
869
926
|
* @param {String} svgString
|
|
870
|
-
* @param {String}
|
|
927
|
+
* @param {String} variant
|
|
871
928
|
* @param {Array} aliases
|
|
872
929
|
*/
|
|
873
|
-
function registerIcon( iconName, svgString,
|
|
930
|
+
function registerIcon( iconName, svgString, variant = "none", aliases = [] )
|
|
874
931
|
{
|
|
875
932
|
const svg = new DOMParser().parseFromString( svgString, 'image/svg+xml' ).documentElement;
|
|
876
933
|
const path = svg.querySelector( "path" );
|
|
@@ -912,15 +969,17 @@ function registerIcon( iconName, svgString, category = "none", aliases = [] )
|
|
|
912
969
|
parseInt( viewBox[ 2 ] ),
|
|
913
970
|
parseInt( viewBox[ 3 ] ),
|
|
914
971
|
aliases,
|
|
915
|
-
|
|
972
|
+
variant,
|
|
916
973
|
pathData,
|
|
917
|
-
|
|
918
|
-
|
|
974
|
+
{
|
|
975
|
+
svgAttributes: svgAttributes.length ? svgAttributes.join( ' ' ) : null,
|
|
976
|
+
pathAttributes: pathAttributes.length ? pathAttributes.join( ' ' ) : null
|
|
977
|
+
}
|
|
919
978
|
];
|
|
920
979
|
|
|
921
980
|
if( LX.ICONS[ iconName ] )
|
|
922
981
|
{
|
|
923
|
-
console.warn( `${ iconName } will be replaced in LX.ICONS` );
|
|
982
|
+
console.warn( `${ iconName } will be added/replaced in LX.ICONS` );
|
|
924
983
|
}
|
|
925
984
|
|
|
926
985
|
LX.ICONS[ iconName ] = iconData;
|
|
@@ -1064,17 +1123,14 @@ function _createCommandbar( root )
|
|
|
1064
1123
|
const el = allItems[ hoverElId ];
|
|
1065
1124
|
if( el )
|
|
1066
1125
|
{
|
|
1067
|
-
|
|
1068
|
-
this.close();
|
|
1069
|
-
if( isCheckbox )
|
|
1126
|
+
if( el.item.checked != undefined )
|
|
1070
1127
|
{
|
|
1071
1128
|
el.item.checked = !el.item.checked;
|
|
1072
|
-
el.callback.call( window, el.item.checked, el.entry_name );
|
|
1073
|
-
}
|
|
1074
|
-
else
|
|
1075
|
-
{
|
|
1076
|
-
el.callback.call( window, el.entry_name );
|
|
1077
1129
|
}
|
|
1130
|
+
|
|
1131
|
+
this.close();
|
|
1132
|
+
|
|
1133
|
+
el.callback.call( window, el.item.name, el.item.checked );
|
|
1078
1134
|
}
|
|
1079
1135
|
}
|
|
1080
1136
|
else if ( e.key == 'ArrowDown' && hoverElId < (allItems.length - 1) )
|
|
@@ -1136,36 +1192,31 @@ function _createCommandbar( root )
|
|
|
1136
1192
|
}
|
|
1137
1193
|
});
|
|
1138
1194
|
|
|
1139
|
-
const header =
|
|
1140
|
-
header.className = "gs-header";
|
|
1195
|
+
const header = LX.makeContainer( ["100%", "auto"], "flex flex-row" );
|
|
1141
1196
|
|
|
1142
|
-
const
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
const input = document.createElement("input");
|
|
1147
|
-
input.placeholder = "Search...";
|
|
1148
|
-
input.value = "";
|
|
1149
|
-
header.appendChild( input );
|
|
1197
|
+
const filter = new TextInput( null, "", (v) => {
|
|
1198
|
+
commandbar._addElements( v.toLowerCase() );
|
|
1199
|
+
}, { width: "100%", icon: "Search", trigger: "input", placeholder: "Search..." } );
|
|
1200
|
+
header.appendChild( filter.root );
|
|
1150
1201
|
|
|
1151
1202
|
const tabArea = new Area( {
|
|
1152
1203
|
width: "100%",
|
|
1153
1204
|
skipAppend: true,
|
|
1154
|
-
className: "
|
|
1205
|
+
className: "cb-tabs"
|
|
1155
1206
|
} );
|
|
1156
1207
|
|
|
1157
|
-
const
|
|
1158
|
-
let
|
|
1208
|
+
const cbTabs = tabArea.addTabs( { parentClass: "p-2" } );
|
|
1209
|
+
let cbFilter = null;
|
|
1159
1210
|
|
|
1160
1211
|
// These tabs will serve as buttons by now
|
|
1161
1212
|
// Filter stuff depending of the type of search
|
|
1162
1213
|
{
|
|
1163
1214
|
const _onSelectTab = ( e, tabName ) => {
|
|
1164
|
-
|
|
1215
|
+
cbFilter = tabName;
|
|
1165
1216
|
}
|
|
1166
1217
|
|
|
1167
|
-
|
|
1168
|
-
//
|
|
1218
|
+
cbTabs.add( "All", document.createElement('div'), { selected: true, onSelect: _onSelectTab } );
|
|
1219
|
+
// cbTabs.add( "Main", document.createElement('div'), { onSelect: _onSelectTab } );
|
|
1169
1220
|
}
|
|
1170
1221
|
|
|
1171
1222
|
const itemContainer = document.createElement("div");
|
|
@@ -1173,11 +1224,14 @@ function _createCommandbar( root )
|
|
|
1173
1224
|
|
|
1174
1225
|
let refPrevious = null;
|
|
1175
1226
|
|
|
1176
|
-
const _resetBar =
|
|
1227
|
+
const _resetBar = resetInput => {
|
|
1177
1228
|
itemContainer.innerHTML = "";
|
|
1178
1229
|
allItems.length = 0;
|
|
1179
1230
|
hoverElId = null;
|
|
1180
|
-
if(
|
|
1231
|
+
if( resetInput )
|
|
1232
|
+
{
|
|
1233
|
+
filter.set( "", true );
|
|
1234
|
+
}
|
|
1181
1235
|
}
|
|
1182
1236
|
|
|
1183
1237
|
const _addElement = ( t, c, p, i ) => {
|
|
@@ -1191,56 +1245,74 @@ function _createCommandbar( root )
|
|
|
1191
1245
|
|
|
1192
1246
|
let searchItem = document.createElement("div");
|
|
1193
1247
|
searchItem.className = "searchitem last";
|
|
1194
|
-
|
|
1195
|
-
if( isCheckbox )
|
|
1248
|
+
if( i?.checked !== undefined )
|
|
1196
1249
|
{
|
|
1197
|
-
|
|
1250
|
+
const iconHtml = i.checked ? LX.makeIcon( "Check" ).innerHTML : "";
|
|
1251
|
+
searchItem.innerHTML = iconHtml + ( p + t );
|
|
1198
1252
|
}
|
|
1199
1253
|
else
|
|
1200
1254
|
{
|
|
1201
1255
|
searchItem.innerHTML = ( p + t );
|
|
1202
1256
|
}
|
|
1203
|
-
searchItem.entry_name = t;
|
|
1204
1257
|
searchItem.callback = c;
|
|
1205
1258
|
searchItem.item = i;
|
|
1206
|
-
|
|
1207
|
-
|
|
1259
|
+
|
|
1260
|
+
searchItem.addEventListener('click', e => {
|
|
1261
|
+
|
|
1262
|
+
if( i.checked != undefined )
|
|
1263
|
+
{
|
|
1264
|
+
i.checked = !i.checked;
|
|
1265
|
+
}
|
|
1266
|
+
|
|
1267
|
+
c.call( window, t, i.checked );
|
|
1208
1268
|
LX.setCommandbarState( false );
|
|
1209
1269
|
_resetBar( true );
|
|
1210
1270
|
});
|
|
1271
|
+
|
|
1211
1272
|
searchItem.addEventListener('mouseenter', function( e ) {
|
|
1212
1273
|
commandbar.querySelectorAll(".hovered").forEach(e => e.classList.remove('hovered'));
|
|
1213
1274
|
this.classList.add('hovered');
|
|
1214
1275
|
hoverElId = allItems.indexOf( this );
|
|
1215
1276
|
});
|
|
1277
|
+
|
|
1216
1278
|
searchItem.addEventListener('mouseleave', function( e ) {
|
|
1217
1279
|
this.classList.remove('hovered');
|
|
1218
1280
|
});
|
|
1281
|
+
|
|
1219
1282
|
allItems.push( searchItem );
|
|
1220
1283
|
itemContainer.appendChild( searchItem );
|
|
1221
1284
|
refPrevious = searchItem;
|
|
1222
1285
|
}
|
|
1223
1286
|
|
|
1224
|
-
const _propagateAdd = ( item, filter, path ) => {
|
|
1287
|
+
const _propagateAdd = ( item, filter, path, skipPropagation ) => {
|
|
1225
1288
|
|
|
1226
|
-
|
|
1227
|
-
|
|
1289
|
+
if( !item )
|
|
1290
|
+
{
|
|
1291
|
+
return;
|
|
1292
|
+
}
|
|
1293
|
+
|
|
1294
|
+
let name = item.name;
|
|
1228
1295
|
if( name.toLowerCase().includes( filter ) )
|
|
1229
1296
|
{
|
|
1230
1297
|
if( item.callback )
|
|
1231
1298
|
{
|
|
1232
|
-
_addElement(
|
|
1299
|
+
_addElement( name, item.callback, path, item );
|
|
1233
1300
|
}
|
|
1234
1301
|
}
|
|
1235
1302
|
|
|
1236
|
-
|
|
1237
|
-
if(
|
|
1238
|
-
|
|
1303
|
+
const submenu = item.submenu ?? item[ name ];
|
|
1304
|
+
if( skipPropagation || !submenu )
|
|
1305
|
+
{
|
|
1306
|
+
return;
|
|
1307
|
+
}
|
|
1239
1308
|
|
|
1240
|
-
|
|
1309
|
+
const icon = LX.makeIcon( "ChevronRight", { svgClass: "sm fg-secondary separator" } );
|
|
1310
|
+
path += name + icon.innerHTML;
|
|
1241
1311
|
|
|
1242
|
-
for( let c of
|
|
1312
|
+
for( let c of submenu )
|
|
1313
|
+
{
|
|
1243
1314
|
_propagateAdd( c, filter, path );
|
|
1315
|
+
}
|
|
1244
1316
|
};
|
|
1245
1317
|
|
|
1246
1318
|
commandbar._addElements = filter => {
|
|
@@ -1255,6 +1327,14 @@ function _createCommandbar( root )
|
|
|
1255
1327
|
}
|
|
1256
1328
|
}
|
|
1257
1329
|
|
|
1330
|
+
for( let m of LX.sidebars )
|
|
1331
|
+
{
|
|
1332
|
+
for( let i of m.items )
|
|
1333
|
+
{
|
|
1334
|
+
_propagateAdd( i, filter, "" );
|
|
1335
|
+
}
|
|
1336
|
+
}
|
|
1337
|
+
|
|
1258
1338
|
for( let entry of LX.extraCommandbarEntries )
|
|
1259
1339
|
{
|
|
1260
1340
|
const name = entry.name;
|
|
@@ -1276,11 +1356,11 @@ function _createCommandbar( root )
|
|
|
1276
1356
|
{
|
|
1277
1357
|
const key = "Language: " + l;
|
|
1278
1358
|
const icon = instances[ 0 ]._getFileIcon( null, languages[ l ].ext );
|
|
1359
|
+
const classes = icon.split( ' ' );
|
|
1279
1360
|
|
|
1280
|
-
let value =
|
|
1281
|
-
"<img src='" + ( "https://raw.githubusercontent.com/jxarco/lexgui.js/master/" + icon ) + "'>";
|
|
1282
|
-
|
|
1361
|
+
let value = LX.makeIcon( classes[ 0 ], { svgClass: `${ classes.slice( 0 ).join( ' ' ) }` } ).innerHTML;
|
|
1283
1362
|
value += key + " <span class='lang-ext'>(" + languages[ l ].ext + ")</span>";
|
|
1363
|
+
|
|
1284
1364
|
if( key.toLowerCase().includes( filter ) )
|
|
1285
1365
|
{
|
|
1286
1366
|
_addElement( value, () => {
|
|
@@ -1294,10 +1374,6 @@ function _createCommandbar( root )
|
|
|
1294
1374
|
}
|
|
1295
1375
|
}
|
|
1296
1376
|
|
|
1297
|
-
input.addEventListener('input', function( e ) {
|
|
1298
|
-
commandbar._addElements( this.value.toLowerCase() );
|
|
1299
|
-
});
|
|
1300
|
-
|
|
1301
1377
|
commandbar.appendChild( header );
|
|
1302
1378
|
commandbar.appendChild( tabArea.root );
|
|
1303
1379
|
commandbar.appendChild( itemContainer );
|
|
@@ -1314,17 +1390,20 @@ function _createCommandbar( root )
|
|
|
1314
1390
|
* rootClass: Extra class to the root container
|
|
1315
1391
|
* skipRoot: Skip adding LX root container
|
|
1316
1392
|
* skipDefaultArea: Skip creation of main area
|
|
1317
|
-
*
|
|
1393
|
+
* layoutMode: Sets page layout mode (document | app)
|
|
1318
1394
|
*/
|
|
1319
1395
|
|
|
1320
|
-
function init( options = { } )
|
|
1396
|
+
async function init( options = { } )
|
|
1321
1397
|
{
|
|
1322
1398
|
if( this.ready )
|
|
1323
1399
|
{
|
|
1324
1400
|
return this.main_area;
|
|
1325
1401
|
}
|
|
1326
1402
|
|
|
1403
|
+
await LX.loadScriptSync( "https://unpkg.com/lucide@latest" );
|
|
1404
|
+
|
|
1327
1405
|
// LexGUI root
|
|
1406
|
+
console.log( `LexGUI v${ this.version }` );
|
|
1328
1407
|
|
|
1329
1408
|
var root = document.createElement( 'div' );
|
|
1330
1409
|
root.id = "lexroot";
|
|
@@ -1336,38 +1415,34 @@ function init( options = { } )
|
|
|
1336
1415
|
root.className += ` ${ options.rootClass }`;
|
|
1337
1416
|
}
|
|
1338
1417
|
|
|
1339
|
-
|
|
1340
|
-
modal.id = "modal";
|
|
1418
|
+
this.modal = document.createElement( 'div' );
|
|
1419
|
+
this.modal.id = "modal";
|
|
1420
|
+
this.modal.classList.add( 'hidden-opacity' );
|
|
1421
|
+
this.modal.toggle = function( force ) { this.classList.toggle( 'hidden-opacity', force ); };
|
|
1341
1422
|
|
|
1342
|
-
this.modal = modal;
|
|
1343
1423
|
this.root = root;
|
|
1344
1424
|
this.container = document.body;
|
|
1345
1425
|
|
|
1346
|
-
this.modal.classList.add( 'hidden-opacity' );
|
|
1347
|
-
this.modal.toggle = function( force ) { this.classList.toggle( 'hidden-opacity', force ); };
|
|
1348
|
-
|
|
1349
1426
|
if( options.container )
|
|
1350
1427
|
{
|
|
1351
1428
|
this.container = options.container.constructor === String ? document.getElementById( options.container ) : options.container;
|
|
1352
1429
|
}
|
|
1353
1430
|
|
|
1354
|
-
this.
|
|
1355
|
-
document.documentElement.setAttribute( "data-
|
|
1431
|
+
this.layoutMode = options.layoutMode ?? "app";
|
|
1432
|
+
document.documentElement.setAttribute( "data-layout", this.layoutMode );
|
|
1356
1433
|
|
|
1357
|
-
if(
|
|
1434
|
+
if( this.layoutMode == "document" )
|
|
1358
1435
|
{
|
|
1359
1436
|
document.addEventListener( "scroll", e => {
|
|
1360
1437
|
// Get all active menuboxes
|
|
1361
|
-
const mbs = document.body.querySelectorAll( ".
|
|
1438
|
+
const mbs = document.body.querySelectorAll( ".lexdropdownmenu" );
|
|
1362
1439
|
mbs.forEach( ( mb ) => {
|
|
1363
1440
|
mb._updatePosition();
|
|
1364
1441
|
} );
|
|
1365
1442
|
} );
|
|
1366
1443
|
}
|
|
1367
1444
|
|
|
1368
|
-
this.
|
|
1369
|
-
|
|
1370
|
-
this.container.appendChild( modal );
|
|
1445
|
+
this.container.appendChild( this.modal );
|
|
1371
1446
|
|
|
1372
1447
|
if( !options.skipRoot )
|
|
1373
1448
|
{
|
|
@@ -1406,15 +1481,6 @@ function init( options = { } )
|
|
|
1406
1481
|
e.preventDefault();
|
|
1407
1482
|
}, false );
|
|
1408
1483
|
|
|
1409
|
-
// CSS fontawesome
|
|
1410
|
-
var head = document.getElementsByTagName( 'HEAD' )[ 0 ];
|
|
1411
|
-
var link = document.createElement( 'link' );
|
|
1412
|
-
link.rel = 'stylesheet';
|
|
1413
|
-
link.type = 'text/css';
|
|
1414
|
-
link.crossOrigin = 'anonymous';
|
|
1415
|
-
link.href = 'https://use.fontawesome.com/releases/v6.7.2/css/all.css';
|
|
1416
|
-
head.appendChild( link );
|
|
1417
|
-
|
|
1418
1484
|
// Global vars
|
|
1419
1485
|
this.DEFAULT_NAME_WIDTH = "30%";
|
|
1420
1486
|
this.DEFAULT_SPLITBAR_SIZE = 4;
|
|
@@ -1433,6 +1499,8 @@ function init( options = { } )
|
|
|
1433
1499
|
|
|
1434
1500
|
this.ready = true;
|
|
1435
1501
|
this.menubars = [ ];
|
|
1502
|
+
this.sidebars = [ ];
|
|
1503
|
+
this.commandbar = _createCommandbar( this.container );
|
|
1436
1504
|
|
|
1437
1505
|
if( !options.skipRoot && !options.skipDefaultArea )
|
|
1438
1506
|
{
|
|
@@ -1454,17 +1522,17 @@ function init( options = { } )
|
|
|
1454
1522
|
LX.init = init;
|
|
1455
1523
|
|
|
1456
1524
|
/**
|
|
1457
|
-
* @method
|
|
1458
|
-
* @param {
|
|
1525
|
+
* @method setLayoutMode
|
|
1526
|
+
* @param {String} mode: document | app
|
|
1459
1527
|
*/
|
|
1460
1528
|
|
|
1461
|
-
function
|
|
1529
|
+
function setLayoutMode( mode )
|
|
1462
1530
|
{
|
|
1463
|
-
this.
|
|
1464
|
-
document.documentElement.setAttribute( "data-
|
|
1531
|
+
this.layoutMode = mode;
|
|
1532
|
+
document.documentElement.setAttribute( "data-layout", this.layoutMode );
|
|
1465
1533
|
}
|
|
1466
1534
|
|
|
1467
|
-
LX.
|
|
1535
|
+
LX.setLayoutMode = setLayoutMode;
|
|
1468
1536
|
|
|
1469
1537
|
/**
|
|
1470
1538
|
* @method setCommandbarState
|
|
@@ -1690,12 +1758,11 @@ function toast( title, description, options = {} )
|
|
|
1690
1758
|
|
|
1691
1759
|
if( options.closable ?? true )
|
|
1692
1760
|
{
|
|
1693
|
-
const
|
|
1694
|
-
|
|
1695
|
-
closeButton.addEventListener( "click", () => {
|
|
1761
|
+
const closeIcon = LX.makeIcon( "X", { iconClass: "closer" } );
|
|
1762
|
+
closeIcon.addEventListener( "click", () => {
|
|
1696
1763
|
toast.close();
|
|
1697
1764
|
} );
|
|
1698
|
-
toast.appendChild(
|
|
1765
|
+
toast.appendChild( closeIcon );
|
|
1699
1766
|
}
|
|
1700
1767
|
|
|
1701
1768
|
const timeout = options.timeout ?? 3000;
|
|
@@ -2068,7 +2135,8 @@ class Popover {
|
|
|
2068
2135
|
|
|
2069
2136
|
delete this._trigger.active;
|
|
2070
2137
|
|
|
2071
|
-
document.body.removeEventListener( "
|
|
2138
|
+
document.body.removeEventListener( "mousedown", this._onClick, true );
|
|
2139
|
+
document.body.removeEventListener( "focusin", this._onClick, true );
|
|
2072
2140
|
|
|
2073
2141
|
this.root.remove();
|
|
2074
2142
|
|
|
@@ -2139,6 +2207,103 @@ class Popover {
|
|
|
2139
2207
|
|
|
2140
2208
|
LX.Popover = Popover;
|
|
2141
2209
|
|
|
2210
|
+
/**
|
|
2211
|
+
* @class Sheet
|
|
2212
|
+
*/
|
|
2213
|
+
|
|
2214
|
+
class Sheet {
|
|
2215
|
+
|
|
2216
|
+
constructor( size, content, options = {} ) {
|
|
2217
|
+
|
|
2218
|
+
this.side = options.side ?? "left";
|
|
2219
|
+
|
|
2220
|
+
this.root = document.createElement( "div" );
|
|
2221
|
+
this.root.dataset["side"] = this.side;
|
|
2222
|
+
this.root.tabIndex = "1";
|
|
2223
|
+
this.root.role = "dialog";
|
|
2224
|
+
this.root.className = "lexsheet fixed z-100 bg-primary";
|
|
2225
|
+
LX.root.appendChild( this.root );
|
|
2226
|
+
|
|
2227
|
+
this.root.addEventListener( "keydown", (e) => {
|
|
2228
|
+
if( e.key == "Escape" )
|
|
2229
|
+
{
|
|
2230
|
+
e.preventDefault();
|
|
2231
|
+
e.stopPropagation();
|
|
2232
|
+
this.destroy();
|
|
2233
|
+
}
|
|
2234
|
+
} )
|
|
2235
|
+
|
|
2236
|
+
if( content )
|
|
2237
|
+
{
|
|
2238
|
+
content = [].concat( content );
|
|
2239
|
+
content.forEach( e => {
|
|
2240
|
+
const domNode = e.root ?? e;
|
|
2241
|
+
this.root.appendChild( domNode );
|
|
2242
|
+
if( e.onSheet )
|
|
2243
|
+
{
|
|
2244
|
+
e.onSheet();
|
|
2245
|
+
}
|
|
2246
|
+
} );
|
|
2247
|
+
}
|
|
2248
|
+
|
|
2249
|
+
doAsync( () => {
|
|
2250
|
+
|
|
2251
|
+
LX.modal.toggle( false );
|
|
2252
|
+
|
|
2253
|
+
switch( this.side )
|
|
2254
|
+
{
|
|
2255
|
+
case "left":
|
|
2256
|
+
this.root.style.left = 0;
|
|
2257
|
+
this.root.style.width = size;
|
|
2258
|
+
this.root.style.height = "100%";
|
|
2259
|
+
break;
|
|
2260
|
+
case "right":
|
|
2261
|
+
this.root.style.right = 0;
|
|
2262
|
+
this.root.style.width = size;
|
|
2263
|
+
this.root.style.height = "100%";
|
|
2264
|
+
break;
|
|
2265
|
+
case "top":
|
|
2266
|
+
this.root.style.top = 0;
|
|
2267
|
+
this.root.style.width = "100%";
|
|
2268
|
+
this.root.style.height = size;
|
|
2269
|
+
break;
|
|
2270
|
+
case "bottom":
|
|
2271
|
+
this.root.style.bottom = 0;
|
|
2272
|
+
this.root.style.width = "100%";
|
|
2273
|
+
this.root.style.height = size;
|
|
2274
|
+
break;
|
|
2275
|
+
default:
|
|
2276
|
+
break;
|
|
2277
|
+
}
|
|
2278
|
+
|
|
2279
|
+
this.root.focus();
|
|
2280
|
+
|
|
2281
|
+
this._onClick = e => {
|
|
2282
|
+
if( e.target && ( this.root.contains( e.target ) ) )
|
|
2283
|
+
{
|
|
2284
|
+
return;
|
|
2285
|
+
}
|
|
2286
|
+
this.destroy();
|
|
2287
|
+
};
|
|
2288
|
+
|
|
2289
|
+
document.body.addEventListener( "mousedown", this._onClick, true );
|
|
2290
|
+
document.body.addEventListener( "focusin", this._onClick, true );
|
|
2291
|
+
}, 10 );
|
|
2292
|
+
}
|
|
2293
|
+
|
|
2294
|
+
destroy() {
|
|
2295
|
+
|
|
2296
|
+
document.body.removeEventListener( "mousedown", this._onClick, true );
|
|
2297
|
+
document.body.removeEventListener( "focusin", this._onClick, true );
|
|
2298
|
+
|
|
2299
|
+
this.root.remove();
|
|
2300
|
+
|
|
2301
|
+
LX.modal.toggle( true );
|
|
2302
|
+
}
|
|
2303
|
+
};
|
|
2304
|
+
|
|
2305
|
+
LX.Sheet = Sheet;
|
|
2306
|
+
|
|
2142
2307
|
/**
|
|
2143
2308
|
* @class DropdownMenu
|
|
2144
2309
|
*/
|
|
@@ -2151,9 +2316,10 @@ class DropdownMenu {
|
|
|
2151
2316
|
|
|
2152
2317
|
console.assert( trigger, "DropdownMenu needs a DOM element as trigger!" );
|
|
2153
2318
|
|
|
2154
|
-
if( DropdownMenu.currentMenu )
|
|
2319
|
+
if( DropdownMenu.currentMenu || !items?.length )
|
|
2155
2320
|
{
|
|
2156
2321
|
DropdownMenu.currentMenu.destroy();
|
|
2322
|
+
this.invalid = true;
|
|
2157
2323
|
return;
|
|
2158
2324
|
}
|
|
2159
2325
|
|
|
@@ -2167,6 +2333,8 @@ class DropdownMenu {
|
|
|
2167
2333
|
this.side = options.side ?? "bottom";
|
|
2168
2334
|
this.align = options.align ?? "center";
|
|
2169
2335
|
this.avoidCollisions = options.avoidCollisions ?? true;
|
|
2336
|
+
this.onBlur = options.onBlur;
|
|
2337
|
+
this.inPlace = false;
|
|
2170
2338
|
|
|
2171
2339
|
this.root = document.createElement( "div" );
|
|
2172
2340
|
this.root.id = "root";
|
|
@@ -2185,28 +2353,38 @@ class DropdownMenu {
|
|
|
2185
2353
|
this.root.focus();
|
|
2186
2354
|
|
|
2187
2355
|
this._onClick = e => {
|
|
2188
|
-
|
|
2356
|
+
|
|
2357
|
+
// Check if the click is inside a menu or on the trigger
|
|
2358
|
+
if( e.target && ( e.target.closest( ".lexdropdownmenu" ) != undefined || e.target == this._trigger ) )
|
|
2189
2359
|
{
|
|
2190
2360
|
return;
|
|
2191
2361
|
}
|
|
2192
|
-
|
|
2362
|
+
|
|
2363
|
+
this.destroy( true );
|
|
2193
2364
|
};
|
|
2194
2365
|
|
|
2195
|
-
document.body.addEventListener( "
|
|
2366
|
+
document.body.addEventListener( "mousedown", this._onClick, true );
|
|
2367
|
+
document.body.addEventListener( "focusin", this._onClick, true );
|
|
2196
2368
|
}, 10 );
|
|
2197
2369
|
}
|
|
2198
2370
|
|
|
2199
|
-
destroy() {
|
|
2371
|
+
destroy( blurEvent ) {
|
|
2200
2372
|
|
|
2201
2373
|
this._trigger.classList.remove( "triggered" );
|
|
2202
2374
|
|
|
2203
2375
|
delete this._trigger.ddm;
|
|
2204
2376
|
|
|
2205
|
-
document.body.removeEventListener( "
|
|
2377
|
+
document.body.removeEventListener( "mousedown", this._onClick, true );
|
|
2378
|
+
document.body.removeEventListener( "focusin", this._onClick, true );
|
|
2206
2379
|
|
|
2207
2380
|
LX.root.querySelectorAll( ".lexdropdownmenu" ).forEach( m => { m.remove(); } );
|
|
2208
2381
|
|
|
2209
2382
|
DropdownMenu.currentMenu = null;
|
|
2383
|
+
|
|
2384
|
+
if( blurEvent && this.onBlur )
|
|
2385
|
+
{
|
|
2386
|
+
this.onBlur();
|
|
2387
|
+
}
|
|
2210
2388
|
}
|
|
2211
2389
|
|
|
2212
2390
|
_create( items, parentDom ) {
|
|
@@ -2222,7 +2400,7 @@ class DropdownMenu {
|
|
|
2222
2400
|
let newParent = document.createElement( "div" );
|
|
2223
2401
|
newParent.tabIndex = "1";
|
|
2224
2402
|
newParent.className = "lexdropdownmenu";
|
|
2225
|
-
newParent.id = parentDom.id;
|
|
2403
|
+
newParent.dataset["id"] = parentDom.dataset["id"];
|
|
2226
2404
|
newParent.dataset["side"] = "right"; // submenus always come from the right
|
|
2227
2405
|
LX.root.appendChild( newParent );
|
|
2228
2406
|
|
|
@@ -2243,6 +2421,8 @@ class DropdownMenu {
|
|
|
2243
2421
|
}, 10 );
|
|
2244
2422
|
}
|
|
2245
2423
|
|
|
2424
|
+
let applyIconPadding = items.filter( i => { return ( i?.icon != undefined ) || ( i?.checked != undefined ) } ).length > 0;
|
|
2425
|
+
|
|
2246
2426
|
for( let item of items )
|
|
2247
2427
|
{
|
|
2248
2428
|
if( !item )
|
|
@@ -2252,7 +2432,7 @@ class DropdownMenu {
|
|
|
2252
2432
|
}
|
|
2253
2433
|
|
|
2254
2434
|
const key = item.name ?? item;
|
|
2255
|
-
const pKey =
|
|
2435
|
+
const pKey = LX.getSupportedDOMName( key );
|
|
2256
2436
|
|
|
2257
2437
|
// Item already created
|
|
2258
2438
|
if( parentDom.querySelector( "#" + pKey ) )
|
|
@@ -2262,21 +2442,19 @@ class DropdownMenu {
|
|
|
2262
2442
|
|
|
2263
2443
|
const menuItem = document.createElement('div');
|
|
2264
2444
|
menuItem.className = "lexdropdownmenuitem" + ( item.name ? "" : " label" ) + ( item.disabled ?? false ? " disabled" : "" ) + ( ` ${ item.className ?? "" }` );
|
|
2265
|
-
menuItem.id = pKey;
|
|
2445
|
+
menuItem.dataset["id"] = pKey;
|
|
2266
2446
|
menuItem.innerHTML = `<span>${ key }</span>`;
|
|
2267
|
-
|
|
2268
2447
|
menuItem.tabIndex = "1";
|
|
2269
2448
|
parentDom.appendChild( menuItem );
|
|
2270
2449
|
|
|
2271
|
-
if( item.constructor === String
|
|
2450
|
+
if( item.constructor === String ) // Label case
|
|
2272
2451
|
{
|
|
2273
2452
|
continue;
|
|
2274
2453
|
}
|
|
2275
2454
|
|
|
2276
2455
|
if( item.submenu )
|
|
2277
2456
|
{
|
|
2278
|
-
|
|
2279
|
-
submenuIcon.className = "fa-solid fa-angle-right fa-xs";
|
|
2457
|
+
const submenuIcon = LX.makeIcon( "Right", { svgClass: "sm" } );
|
|
2280
2458
|
menuItem.appendChild( submenuIcon );
|
|
2281
2459
|
}
|
|
2282
2460
|
else if( item.kbd )
|
|
@@ -2285,13 +2463,36 @@ class DropdownMenu {
|
|
|
2285
2463
|
|
|
2286
2464
|
const kbd = LX.makeKbd( item.kbd );
|
|
2287
2465
|
menuItem.appendChild( kbd );
|
|
2466
|
+
|
|
2467
|
+
document.addEventListener( "keydown", e => {
|
|
2468
|
+
if( !this._trigger.ddm ) return;
|
|
2469
|
+
e.preventDefault();
|
|
2470
|
+
// Check if it's a letter or other key
|
|
2471
|
+
let kdbKey = item.kbd.join("");
|
|
2472
|
+
kdbKey = kdbKey.length == 1 ? kdbKey.toLowerCase() : kdbKey;
|
|
2473
|
+
if( kdbKey == e.key )
|
|
2474
|
+
{
|
|
2475
|
+
menuItem.click()
|
|
2476
|
+
}
|
|
2477
|
+
} );
|
|
2288
2478
|
}
|
|
2289
2479
|
|
|
2480
|
+
const disabled = item.disabled ?? false;
|
|
2481
|
+
|
|
2290
2482
|
if( item.icon )
|
|
2291
2483
|
{
|
|
2292
|
-
const icon = LX.makeIcon( item.icon );
|
|
2484
|
+
const icon = LX.makeIcon( item.icon, { svgClass: disabled ? "fg-tertiary" : item.className } );
|
|
2293
2485
|
menuItem.prepend( icon );
|
|
2294
2486
|
}
|
|
2487
|
+
else if( item.checked == undefined && applyIconPadding ) // no checkbox, no icon, apply padding if there's checkbox or icon in other items
|
|
2488
|
+
{
|
|
2489
|
+
menuItem.classList.add( "pl-8" );
|
|
2490
|
+
}
|
|
2491
|
+
|
|
2492
|
+
if( disabled )
|
|
2493
|
+
{
|
|
2494
|
+
continue;
|
|
2495
|
+
}
|
|
2295
2496
|
|
|
2296
2497
|
if( item.checked != undefined )
|
|
2297
2498
|
{
|
|
@@ -2299,11 +2500,12 @@ class DropdownMenu {
|
|
|
2299
2500
|
const f = item[ 'callback' ];
|
|
2300
2501
|
if( f )
|
|
2301
2502
|
{
|
|
2302
|
-
f.call( this, key,
|
|
2503
|
+
f.call( this, key, v, menuItem );
|
|
2303
2504
|
}
|
|
2304
2505
|
}, { className: "accent" });
|
|
2305
2506
|
const input = checkbox.root.querySelector( "input" );
|
|
2306
|
-
|
|
2507
|
+
input.classList.add( "ml-auto" );
|
|
2508
|
+
menuItem.appendChild( input );
|
|
2307
2509
|
|
|
2308
2510
|
menuItem.addEventListener( "click", (e) => {
|
|
2309
2511
|
if( e.target.type == "checkbox" ) return;
|
|
@@ -2319,30 +2521,31 @@ class DropdownMenu {
|
|
|
2319
2521
|
{
|
|
2320
2522
|
f.call( this, key, menuItem );
|
|
2321
2523
|
}
|
|
2322
|
-
|
|
2524
|
+
|
|
2525
|
+
this.destroy( true );
|
|
2323
2526
|
} );
|
|
2324
2527
|
}
|
|
2325
2528
|
|
|
2326
2529
|
menuItem.addEventListener("mouseover", e => {
|
|
2327
2530
|
|
|
2328
|
-
let path = menuItem.id;
|
|
2531
|
+
let path = menuItem.dataset["id"];
|
|
2329
2532
|
let p = parentDom;
|
|
2330
2533
|
|
|
2331
2534
|
while( p )
|
|
2332
2535
|
{
|
|
2333
|
-
path += "/" + p.id;
|
|
2536
|
+
path += "/" + p.dataset["id"];
|
|
2334
2537
|
p = p.currentParent?.parentElement;
|
|
2335
2538
|
}
|
|
2336
2539
|
|
|
2337
2540
|
LX.root.querySelectorAll( ".lexdropdownmenu" ).forEach( m => {
|
|
2338
|
-
if( !path.includes( m.id ) )
|
|
2541
|
+
if( !path.includes( m.dataset["id"] ) )
|
|
2339
2542
|
{
|
|
2340
2543
|
m.currentParent.built = false;
|
|
2341
2544
|
m.remove();
|
|
2342
2545
|
}
|
|
2343
2546
|
} );
|
|
2344
2547
|
|
|
2345
|
-
if( item.submenu )
|
|
2548
|
+
if( item.submenu && this.inPlace )
|
|
2346
2549
|
{
|
|
2347
2550
|
if( menuItem.built )
|
|
2348
2551
|
{
|
|
@@ -2416,6 +2619,7 @@ class DropdownMenu {
|
|
|
2416
2619
|
|
|
2417
2620
|
this.root.style.left = `${ position[ 0 ] }px`;
|
|
2418
2621
|
this.root.style.top = `${ position[ 1 ] }px`;
|
|
2622
|
+
this.inPlace = true;
|
|
2419
2623
|
}
|
|
2420
2624
|
|
|
2421
2625
|
_addSeparator( parent ) {
|
|
@@ -2428,6 +2632,18 @@ class DropdownMenu {
|
|
|
2428
2632
|
|
|
2429
2633
|
LX.DropdownMenu = DropdownMenu;
|
|
2430
2634
|
|
|
2635
|
+
function addDropdownMenu( trigger, items, options )
|
|
2636
|
+
{
|
|
2637
|
+
const menu = new DropdownMenu( trigger, items, options );
|
|
2638
|
+
if( !menu.invalid )
|
|
2639
|
+
{
|
|
2640
|
+
return menu;
|
|
2641
|
+
}
|
|
2642
|
+
return null;
|
|
2643
|
+
}
|
|
2644
|
+
|
|
2645
|
+
LX.addDropdownMenu = addDropdownMenu;
|
|
2646
|
+
|
|
2431
2647
|
/**
|
|
2432
2648
|
* @class ColorPicker
|
|
2433
2649
|
*/
|
|
@@ -2531,7 +2747,7 @@ class ColorPicker {
|
|
|
2531
2747
|
} catch ( err ) {
|
|
2532
2748
|
// console.error("EyeDropper cancelled or failed: ", err)
|
|
2533
2749
|
}
|
|
2534
|
-
}, { icon: "
|
|
2750
|
+
}, { icon: "Pipette", buttonClass: "bg-none", title: "Sample Color" }).root );
|
|
2535
2751
|
}
|
|
2536
2752
|
|
|
2537
2753
|
const innerHueAlpha = LX.makeContainer( ["100%", "100%"], "flex flex-col gap-2", "", hueAlphaContainer );
|
|
@@ -2676,9 +2892,9 @@ class ColorPicker {
|
|
|
2676
2892
|
copyButtonWidget.root.querySelector( "input[type='checkbox']" ).style.pointerEvents = "auto";
|
|
2677
2893
|
}, 3000 );
|
|
2678
2894
|
|
|
2679
|
-
}, { swap: "
|
|
2895
|
+
}, { swap: "Check", icon: "Copy", buttonClass: "bg-none", className: "ml-auto", title: "Copy" })
|
|
2680
2896
|
|
|
2681
|
-
copyButtonWidget.root.querySelector( ".swap-on svg
|
|
2897
|
+
copyButtonWidget.root.querySelector( ".swap-on svg" ).addClass( "fg-success" );
|
|
2682
2898
|
|
|
2683
2899
|
colorLabel.appendChild( copyButtonWidget.root );
|
|
2684
2900
|
}
|
|
@@ -2848,7 +3064,7 @@ class Calendar {
|
|
|
2848
3064
|
{
|
|
2849
3065
|
const header = LX.makeContainer( ["100%", "auto"], "flex flex-row p-1", "", this.root );
|
|
2850
3066
|
|
|
2851
|
-
const prevMonthIcon = LX.makeIcon( "
|
|
3067
|
+
const prevMonthIcon = LX.makeIcon( "Left", { title: "Previous Month", iconClass: "border p-1 rounded hover:bg-secondary", svgClass: "sm" } );
|
|
2852
3068
|
header.appendChild( prevMonthIcon );
|
|
2853
3069
|
prevMonthIcon.addEventListener( "click", () => {
|
|
2854
3070
|
this._previousMonth();
|
|
@@ -2856,7 +3072,7 @@ class Calendar {
|
|
|
2856
3072
|
|
|
2857
3073
|
const monthYearLabel = LX.makeContainer( ["100%", "auto"], "text-center font-medium select-none", `${ this.monthName } ${ this.year }`, header );
|
|
2858
3074
|
|
|
2859
|
-
const nextMonthIcon = LX.makeIcon( "
|
|
3075
|
+
const nextMonthIcon = LX.makeIcon( "Right", { title: "Next Month", iconClass: "border p-1 rounded hover:bg-secondary", svgClass: "sm" } );
|
|
2860
3076
|
header.appendChild( nextMonthIcon );
|
|
2861
3077
|
nextMonthIcon.addEventListener( "click", () => {
|
|
2862
3078
|
this._nextMonth();
|
|
@@ -3265,6 +3481,7 @@ class Area {
|
|
|
3265
3481
|
const type = options.type ?? "horizontal";
|
|
3266
3482
|
const sizes = options.sizes || [ "50%", "50%" ];
|
|
3267
3483
|
const auto = (options.sizes === 'auto') || ( options.sizes && options.sizes[ 0 ] == "auto" && options.sizes[ 1 ] == "auto" );
|
|
3484
|
+
const rect = this.root.getBoundingClientRect();
|
|
3268
3485
|
|
|
3269
3486
|
// Secondary area fills space
|
|
3270
3487
|
if( !sizes[ 1 ] || ( sizes[ 0 ] != "auto" && sizes[ 1 ] == "auto" ) )
|
|
@@ -3315,7 +3532,7 @@ class Area {
|
|
|
3315
3532
|
|
|
3316
3533
|
if( !fixedSize )
|
|
3317
3534
|
{
|
|
3318
|
-
const parentWidth =
|
|
3535
|
+
const parentWidth = rect.width;
|
|
3319
3536
|
const leftPx = parsePixelSize( sizes[ 0 ], parentWidth );
|
|
3320
3537
|
const rightPx = parsePixelSize( sizes[ 1 ], parentWidth );
|
|
3321
3538
|
const leftPercent = ( leftPx / parentWidth ) * 100;
|
|
@@ -3339,10 +3556,11 @@ class Area {
|
|
|
3339
3556
|
if( auto )
|
|
3340
3557
|
{
|
|
3341
3558
|
primarySize[ 1 ] = "auto";
|
|
3559
|
+
secondarySize[ 1 ] = "auto";
|
|
3342
3560
|
}
|
|
3343
3561
|
else if( !fixedSize )
|
|
3344
3562
|
{
|
|
3345
|
-
const parentHeight =
|
|
3563
|
+
const parentHeight = rect.height;
|
|
3346
3564
|
const topPx = parsePixelSize( sizes[ 0 ], parentHeight );
|
|
3347
3565
|
const bottomPx = parsePixelSize( sizes[ 1 ], parentHeight );
|
|
3348
3566
|
const topPercent = ( topPx / parentHeight ) * 100;
|
|
@@ -3365,6 +3583,72 @@ class Area {
|
|
|
3365
3583
|
let area1 = new Area( { width: primarySize[ 0 ], height: primarySize[ 1 ], skipAppend: true, className: "split" + ( options.menubar || options.sidebar ? "" : " origin" ) } );
|
|
3366
3584
|
let area2 = new Area( { width: secondarySize[ 0 ], height: secondarySize[ 1 ], skipAppend: true, className: "split" } );
|
|
3367
3585
|
|
|
3586
|
+
/*
|
|
3587
|
+
If the parent area is not in the DOM, we need to wait for the resize event to get the its correct size
|
|
3588
|
+
and set the sizes of the split areas accordingly.
|
|
3589
|
+
*/
|
|
3590
|
+
if( !fixedSize && ( !rect.width || !rect.height ) )
|
|
3591
|
+
{
|
|
3592
|
+
const observer = new ResizeObserver( entries => {
|
|
3593
|
+
|
|
3594
|
+
console.assert( entries.length == 1, "AreaResizeObserver: more than one entry" );
|
|
3595
|
+
|
|
3596
|
+
const rect = entries[ 0 ].contentRect;
|
|
3597
|
+
if( !rect.width || !rect.height )
|
|
3598
|
+
{
|
|
3599
|
+
return;
|
|
3600
|
+
}
|
|
3601
|
+
|
|
3602
|
+
this._update( [ rect.width, rect.height ], false );
|
|
3603
|
+
|
|
3604
|
+
// On auto splits, we only need to set the size of the parent area
|
|
3605
|
+
if( !auto )
|
|
3606
|
+
{
|
|
3607
|
+
if( type == "horizontal" )
|
|
3608
|
+
{
|
|
3609
|
+
const parentWidth = rect.width;
|
|
3610
|
+
const leftPx = parsePixelSize( sizes[ 0 ], parentWidth );
|
|
3611
|
+
const rightPx = parsePixelSize( sizes[ 1 ], parentWidth );
|
|
3612
|
+
const leftPercent = ( leftPx / parentWidth ) * 100;
|
|
3613
|
+
const rightPercent = ( rightPx / parentWidth ) * 100;
|
|
3614
|
+
|
|
3615
|
+
// Style using percentages
|
|
3616
|
+
primarySize[ 0 ] = `calc(${ leftPercent }% - ${ splitbarOffset }px)`;
|
|
3617
|
+
secondarySize[ 0 ] = `calc(${ rightPercent }% - ${ splitbarOffset }px)`;
|
|
3618
|
+
}
|
|
3619
|
+
else // vertical
|
|
3620
|
+
{
|
|
3621
|
+
const parentHeight = rect.height;
|
|
3622
|
+
const topPx = parsePixelSize( sizes[ 0 ], parentHeight );
|
|
3623
|
+
const bottomPx = parsePixelSize( sizes[ 1 ], parentHeight );
|
|
3624
|
+
const topPercent = ( topPx / parentHeight ) * 100;
|
|
3625
|
+
const bottomPercent = ( bottomPx / parentHeight ) * 100;
|
|
3626
|
+
|
|
3627
|
+
primarySize[ 1 ] = ( sizes[ 0 ] == "auto" ? "auto" : `calc(${ topPercent }% - ${ splitbarOffset }px)`);
|
|
3628
|
+
secondarySize[ 1 ] = ( sizes[ 1 ] == "auto" ? "auto" : `calc(${ bottomPercent }% - ${ splitbarOffset }px)`);
|
|
3629
|
+
}
|
|
3630
|
+
|
|
3631
|
+
area1.root.style.width = primarySize[ 0 ];
|
|
3632
|
+
area1.root.style.height = primarySize[ 1 ];
|
|
3633
|
+
|
|
3634
|
+
area2.root.style.width = secondarySize[ 0 ];
|
|
3635
|
+
area2.root.style.height = secondarySize[ 1 ];
|
|
3636
|
+
}
|
|
3637
|
+
|
|
3638
|
+
area1._update();
|
|
3639
|
+
area2._update();
|
|
3640
|
+
|
|
3641
|
+
// Stop observing
|
|
3642
|
+
observer.disconnect();
|
|
3643
|
+
});
|
|
3644
|
+
|
|
3645
|
+
// Observe the parent area until the DOM is ready
|
|
3646
|
+
// and the size is set correctly.
|
|
3647
|
+
doAsync( () => {
|
|
3648
|
+
observer.observe( this.root );
|
|
3649
|
+
}, 100 );
|
|
3650
|
+
}
|
|
3651
|
+
|
|
3368
3652
|
if( auto && type == "vertical" )
|
|
3369
3653
|
{
|
|
3370
3654
|
// Listen resize event on first area
|
|
@@ -3374,6 +3658,7 @@ class Area {
|
|
|
3374
3658
|
const size = entry.target.getComputedSize();
|
|
3375
3659
|
area2.root.style.height = "calc(100% - " + ( size.height ) + "px )";
|
|
3376
3660
|
}
|
|
3661
|
+
resizeObserver.disconnect();
|
|
3377
3662
|
});
|
|
3378
3663
|
|
|
3379
3664
|
resizeObserver.observe( area1.root );
|
|
@@ -3417,7 +3702,7 @@ class Area {
|
|
|
3417
3702
|
this.type = type;
|
|
3418
3703
|
|
|
3419
3704
|
// Update sizes
|
|
3420
|
-
this._update();
|
|
3705
|
+
this._update( rect.width || rect.height ? [ rect.width, rect.height ] : undefined );
|
|
3421
3706
|
|
|
3422
3707
|
if( !resize )
|
|
3423
3708
|
{
|
|
@@ -3474,6 +3759,11 @@ class Area {
|
|
|
3474
3759
|
this.minHeight = minh;
|
|
3475
3760
|
this.maxWidth = maxw;
|
|
3476
3761
|
this.maxHeight = maxh;
|
|
3762
|
+
|
|
3763
|
+
if( minw != 0 ) this.root.style.minWidth = `${ minw }px`;
|
|
3764
|
+
if( minh != 0 ) this.root.style.minHeight = `${ minh }px`;
|
|
3765
|
+
if( maxw != Infinity ) this.root.style.maxWidth = `${ maxw }px`;
|
|
3766
|
+
if( maxh != Infinity ) this.root.style.maxHeight = `${ maxh }px`;
|
|
3477
3767
|
}
|
|
3478
3768
|
|
|
3479
3769
|
/**
|
|
@@ -3533,7 +3823,7 @@ class Area {
|
|
|
3533
3823
|
{
|
|
3534
3824
|
this.offset = area2.root.offsetHeight;
|
|
3535
3825
|
area2.root.classList.add("fadeout-vertical");
|
|
3536
|
-
this._moveSplit(-Infinity, true);
|
|
3826
|
+
this._moveSplit( -Infinity, true );
|
|
3537
3827
|
|
|
3538
3828
|
}
|
|
3539
3829
|
else
|
|
@@ -3630,20 +3920,15 @@ class Area {
|
|
|
3630
3920
|
|
|
3631
3921
|
/**
|
|
3632
3922
|
* @method addMenubar
|
|
3633
|
-
* @param {
|
|
3923
|
+
* @param {Array} items Items to fill the menubar
|
|
3634
3924
|
* @param {Object} options:
|
|
3635
3925
|
* float: Justify content (left, center, right) [left]
|
|
3636
3926
|
* sticky: Fix menubar at the top [true]
|
|
3637
3927
|
*/
|
|
3638
3928
|
|
|
3639
|
-
addMenubar(
|
|
3640
|
-
|
|
3641
|
-
let menubar = new Menubar( options );
|
|
3929
|
+
addMenubar( items, options = {} ) {
|
|
3642
3930
|
|
|
3643
|
-
|
|
3644
|
-
{
|
|
3645
|
-
callback( menubar );
|
|
3646
|
-
}
|
|
3931
|
+
let menubar = new Menubar( items, options );
|
|
3647
3932
|
|
|
3648
3933
|
LX.menubars.push( menubar );
|
|
3649
3934
|
|
|
@@ -3671,6 +3956,7 @@ class Area {
|
|
|
3671
3956
|
* @param {Function} callback Function to fill the sidebar
|
|
3672
3957
|
* @param {Object} options: Sidebar options
|
|
3673
3958
|
* width: Width of the sidebar [16rem]
|
|
3959
|
+
* side: Side to attach the sidebar (left|right) [left]
|
|
3674
3960
|
*/
|
|
3675
3961
|
|
|
3676
3962
|
addSidebar( callback, options = {} ) {
|
|
@@ -3685,12 +3971,18 @@ class Area {
|
|
|
3685
3971
|
// Generate DOM elements after adding all entries
|
|
3686
3972
|
sidebar.update();
|
|
3687
3973
|
|
|
3688
|
-
LX.
|
|
3974
|
+
LX.sidebars.push( sidebar );
|
|
3975
|
+
|
|
3976
|
+
const side = options.side ?? "left";
|
|
3977
|
+
console.assert( side == "left" || side == "right", "Invalid sidebar side: " + side );
|
|
3978
|
+
const leftSidebar = ( side == "left" );
|
|
3689
3979
|
|
|
3690
3980
|
const width = options.width ?? "16rem";
|
|
3691
|
-
const
|
|
3692
|
-
|
|
3981
|
+
const sizes = leftSidebar ? [ width, null ] : [ null, width ];
|
|
3982
|
+
const [ left, right ] = this.split( { type: 'horizontal', sizes, resize: false, sidebar: true } );
|
|
3983
|
+
sidebar.siblingArea = leftSidebar ? right : left;
|
|
3693
3984
|
|
|
3985
|
+
let bar = leftSidebar ? left : right;
|
|
3694
3986
|
bar.attach( sidebar );
|
|
3695
3987
|
bar.isSidebar = true;
|
|
3696
3988
|
|
|
@@ -3839,7 +4131,6 @@ class Area {
|
|
|
3839
4131
|
{
|
|
3840
4132
|
_addButton( b );
|
|
3841
4133
|
}
|
|
3842
|
-
|
|
3843
4134
|
}
|
|
3844
4135
|
|
|
3845
4136
|
// Add floating info
|
|
@@ -3931,12 +4222,12 @@ class Area {
|
|
|
3931
4222
|
|
|
3932
4223
|
if( a1.maxWidth != Infinity )
|
|
3933
4224
|
{
|
|
3934
|
-
a2Root.style.minWidth =
|
|
4225
|
+
a2Root.style.minWidth = `calc( 100% - ${ parseInt( a1.maxWidth ) }px )`;
|
|
3935
4226
|
}
|
|
3936
4227
|
}
|
|
3937
4228
|
else
|
|
3938
4229
|
{
|
|
3939
|
-
var size = Math.max( ( a2Root.offsetHeight + dt ) + a2.offset, parseInt(a2.minHeight) );
|
|
4230
|
+
var size = Math.max( ( a2Root.offsetHeight + dt ) + a2.offset, parseInt( a2.minHeight ) );
|
|
3940
4231
|
if( forceWidth ) size = forceWidth;
|
|
3941
4232
|
|
|
3942
4233
|
const parentHeight = this.size[ 1 ];
|
|
@@ -3950,7 +4241,10 @@ class Area {
|
|
|
3950
4241
|
a2Root.style.height = `${ bottomPercent }%`;
|
|
3951
4242
|
a2Root.style.height = `${ bottomPercent }%`;
|
|
3952
4243
|
|
|
3953
|
-
|
|
4244
|
+
if( a1.maxHeight != Infinity )
|
|
4245
|
+
{
|
|
4246
|
+
a2Root.style.minHeight = `calc( 100% - ${ parseInt( a1.maxHeight ) }px )`;
|
|
4247
|
+
}
|
|
3954
4248
|
}
|
|
3955
4249
|
|
|
3956
4250
|
if( !forceAnimation )
|
|
@@ -3972,15 +4266,24 @@ class Area {
|
|
|
3972
4266
|
delete this.splitBar;
|
|
3973
4267
|
}
|
|
3974
4268
|
|
|
3975
|
-
_update() {
|
|
4269
|
+
_update( newSize, propagate = true ) {
|
|
3976
4270
|
|
|
3977
|
-
|
|
3978
|
-
|
|
3979
|
-
|
|
4271
|
+
if( !newSize )
|
|
4272
|
+
{
|
|
4273
|
+
const rect = this.root.getBoundingClientRect();
|
|
4274
|
+
this.size = [ rect.width, rect.height ];
|
|
4275
|
+
}
|
|
4276
|
+
else
|
|
4277
|
+
{
|
|
4278
|
+
this.size = newSize;
|
|
4279
|
+
}
|
|
3980
4280
|
|
|
3981
|
-
|
|
4281
|
+
if( propagate )
|
|
3982
4282
|
{
|
|
3983
|
-
this.sections
|
|
4283
|
+
for( var i = 0; i < this.sections.length; i++ )
|
|
4284
|
+
{
|
|
4285
|
+
this.sections[ i ]._update();
|
|
4286
|
+
}
|
|
3984
4287
|
}
|
|
3985
4288
|
}
|
|
3986
4289
|
};
|
|
@@ -4175,9 +4478,10 @@ class Tabs {
|
|
|
4175
4478
|
// Process icon
|
|
4176
4479
|
if( options.icon )
|
|
4177
4480
|
{
|
|
4178
|
-
if( options.icon.includes( '
|
|
4481
|
+
if( !options.icon.includes( '.' ) ) // Not a file
|
|
4179
4482
|
{
|
|
4180
|
-
|
|
4483
|
+
const classes = options.icon.split( ' ' );
|
|
4484
|
+
options.icon = LX.makeIcon( classes[ 0 ], { svgClass: "sm " + classes.slice( 0 ).join( ' ' ) } ).innerHTML;
|
|
4181
4485
|
}
|
|
4182
4486
|
else // an image..
|
|
4183
4487
|
{
|
|
@@ -4189,7 +4493,7 @@ class Tabs {
|
|
|
4189
4493
|
// Create tab
|
|
4190
4494
|
let tabEl = document.createElement( 'span' );
|
|
4191
4495
|
tabEl.dataset[ "name" ] = name;
|
|
4192
|
-
tabEl.className = "lexareatab" + ( isSelected ? " selected" : "" );
|
|
4496
|
+
tabEl.className = "lexareatab flex flex-row gap-1" + ( isSelected ? " selected" : "" );
|
|
4193
4497
|
tabEl.innerHTML = ( options.icon ?? "" ) + name;
|
|
4194
4498
|
tabEl.id = name.replace( /\s/g, '' ) + Tabs.TAB_ID++;
|
|
4195
4499
|
tabEl.title = options.title ?? "";
|
|
@@ -4313,327 +4617,95 @@ class Tabs {
|
|
|
4313
4617
|
select( name ) {
|
|
4314
4618
|
|
|
4315
4619
|
if(!this.tabDOMs[ name ] )
|
|
4316
|
-
return;
|
|
4317
|
-
|
|
4318
|
-
this.tabDOMs[ name ].click();
|
|
4319
|
-
}
|
|
4320
|
-
|
|
4321
|
-
delete( name ) {
|
|
4322
|
-
|
|
4323
|
-
const tabEl = this.tabDOMs[ name ];
|
|
4324
|
-
|
|
4325
|
-
if( !tabEl || tabEl.fixed )
|
|
4326
|
-
{
|
|
4327
|
-
return;
|
|
4328
|
-
}
|
|
4329
|
-
|
|
4330
|
-
if( this.onclose )
|
|
4331
|
-
{
|
|
4332
|
-
this.onclose( name );
|
|
4333
|
-
}
|
|
4334
|
-
|
|
4335
|
-
// Delete tab element
|
|
4336
|
-
this.tabDOMs[ name ].remove();
|
|
4337
|
-
delete this.tabDOMs[ name ];
|
|
4338
|
-
|
|
4339
|
-
// Delete content
|
|
4340
|
-
this.tabs[ name ].remove();
|
|
4341
|
-
delete this.tabs[ name ];
|
|
4342
|
-
|
|
4343
|
-
// Select last tab
|
|
4344
|
-
const lastTab = this.root.lastChild;
|
|
4345
|
-
if( lastTab && !lastTab.fixed )
|
|
4346
|
-
{
|
|
4347
|
-
this.root.lastChild.click();
|
|
4348
|
-
}
|
|
4349
|
-
}
|
|
4350
|
-
}
|
|
4351
|
-
|
|
4352
|
-
LX.Tabs = Tabs;
|
|
4353
|
-
|
|
4354
|
-
/**
|
|
4355
|
-
* @class Menubar
|
|
4356
|
-
*/
|
|
4357
|
-
|
|
4358
|
-
class Menubar {
|
|
4359
|
-
|
|
4360
|
-
constructor( options = {} ) {
|
|
4361
|
-
|
|
4362
|
-
this.root = document.createElement( "div" );
|
|
4363
|
-
this.root.className = "lexmenubar";
|
|
4364
|
-
|
|
4365
|
-
if( options.float )
|
|
4366
|
-
{
|
|
4367
|
-
this.root.style.justifyContent = options.float;
|
|
4368
|
-
}
|
|
4369
|
-
|
|
4370
|
-
this.items = [ ];
|
|
4371
|
-
this.buttons = [ ];
|
|
4372
|
-
this.icons = { };
|
|
4373
|
-
this.shorts = { };
|
|
4374
|
-
}
|
|
4375
|
-
|
|
4376
|
-
_resetMenubar( focus ) {
|
|
4377
|
-
|
|
4378
|
-
// Menu entries are in the menubar..
|
|
4379
|
-
this.root.querySelectorAll(".lexmenuentry").forEach( _entry => {
|
|
4380
|
-
_entry.classList.remove( 'selected' );
|
|
4381
|
-
_entry.built = false;
|
|
4382
|
-
} );
|
|
4383
|
-
|
|
4384
|
-
// Menuboxes are in the root area!
|
|
4385
|
-
LX.root.querySelectorAll(".lexmenubox").forEach(e => e.remove());
|
|
4386
|
-
|
|
4387
|
-
// Next time we need to click again
|
|
4388
|
-
this.focused = focus ?? false;
|
|
4389
|
-
}
|
|
4390
|
-
|
|
4391
|
-
_createSubmenu( o, k, c, d ) {
|
|
4392
|
-
|
|
4393
|
-
let menuElement = document.createElement('div');
|
|
4394
|
-
menuElement.className = "lexmenubox";
|
|
4395
|
-
menuElement.tabIndex = "0";
|
|
4396
|
-
c.currentMenu = menuElement;
|
|
4397
|
-
menuElement.parentEntry = c;
|
|
4398
|
-
|
|
4399
|
-
const isSubMenu = c.classList.contains( "lexmenuboxentry" );
|
|
4400
|
-
if( isSubMenu )
|
|
4401
|
-
{
|
|
4402
|
-
menuElement.dataset[ "submenu" ] = true;
|
|
4403
|
-
}
|
|
4404
|
-
|
|
4405
|
-
menuElement._updatePosition = () => {
|
|
4406
|
-
// Remove transitions for this change..
|
|
4407
|
-
const transition = menuElement.style.transition;
|
|
4408
|
-
menuElement.style.transition = "none";
|
|
4409
|
-
flushCss( menuElement );
|
|
4410
|
-
|
|
4411
|
-
doAsync( () => {
|
|
4412
|
-
let rect = c.getBoundingClientRect();
|
|
4413
|
-
menuElement.style.left = ( isSubMenu ? ( rect.x + rect.width ) : rect.x ) + "px";
|
|
4414
|
-
menuElement.style.top = ( isSubMenu ? rect.y : ( ( rect.y + rect.height ) ) - 4 ) + "px";
|
|
4415
|
-
menuElement.style.transition = transition;
|
|
4416
|
-
} );
|
|
4417
|
-
};
|
|
4418
|
-
|
|
4419
|
-
menuElement._updatePosition();
|
|
4420
|
-
|
|
4421
|
-
doAsync( () => {
|
|
4422
|
-
menuElement.dataset[ "open" ] = true;
|
|
4423
|
-
}, 10 );
|
|
4424
|
-
|
|
4425
|
-
LX.root.appendChild( menuElement );
|
|
4426
|
-
|
|
4427
|
-
for( var i = 0; i < o[ k ].length; ++i )
|
|
4428
|
-
{
|
|
4429
|
-
const subitem = o[ k ][ i ];
|
|
4430
|
-
const subkey = Object.keys( subitem )[ 0 ];
|
|
4431
|
-
const hasSubmenu = subitem[ subkey ].length;
|
|
4432
|
-
const isCheckbox = subitem[ 'type' ] == 'checkbox';
|
|
4433
|
-
let subentry = document.createElement('div');
|
|
4434
|
-
subentry.tabIndex = "-1";
|
|
4435
|
-
subentry.className = "lexmenuboxentry";
|
|
4436
|
-
subentry.className += (i == o[k].length - 1 ? " last" : "") + ( subitem.disabled ? " disabled" : "" );
|
|
4437
|
-
|
|
4438
|
-
if( subkey == '' )
|
|
4439
|
-
{
|
|
4440
|
-
subentry.className = " lexseparator";
|
|
4441
|
-
}
|
|
4442
|
-
else
|
|
4443
|
-
{
|
|
4444
|
-
subentry.id = subkey;
|
|
4445
|
-
let subentrycont = document.createElement('div');
|
|
4446
|
-
subentrycont.innerHTML = "";
|
|
4447
|
-
subentrycont.classList = "lexmenuboxentrycontainer";
|
|
4448
|
-
subentry.appendChild(subentrycont);
|
|
4449
|
-
const icon = this.icons[ subkey ];
|
|
4450
|
-
if( isCheckbox )
|
|
4451
|
-
{
|
|
4452
|
-
subentrycont.innerHTML += "<input type='checkbox' >";
|
|
4453
|
-
}
|
|
4454
|
-
else if( icon )
|
|
4455
|
-
{
|
|
4456
|
-
subentrycont.innerHTML += "<a class='" + icon + " fa-sm'></a>";
|
|
4457
|
-
}
|
|
4458
|
-
else
|
|
4459
|
-
{
|
|
4460
|
-
subentrycont.innerHTML += "<a class='fa-solid fa-sm noicon'></a>";
|
|
4461
|
-
subentrycont.classList.add( "noicon" );
|
|
4462
|
-
|
|
4463
|
-
}
|
|
4464
|
-
subentrycont.innerHTML += "<div class='lexentryname'>" + subkey + "</div>";
|
|
4465
|
-
}
|
|
4466
|
-
|
|
4467
|
-
let checkboxInput = subentry.querySelector('input');
|
|
4468
|
-
if( checkboxInput )
|
|
4469
|
-
{
|
|
4470
|
-
checkboxInput.checked = subitem.checked ?? false;
|
|
4471
|
-
checkboxInput.addEventListener('change', e => {
|
|
4472
|
-
subitem.checked = checkboxInput.checked;
|
|
4473
|
-
const f = subitem[ 'callback' ];
|
|
4474
|
-
if( f )
|
|
4475
|
-
{
|
|
4476
|
-
f.call( this, subitem.checked, subkey, subentry );
|
|
4477
|
-
this._resetMenubar();
|
|
4478
|
-
}
|
|
4479
|
-
e.stopPropagation();
|
|
4480
|
-
e.stopImmediatePropagation();
|
|
4481
|
-
})
|
|
4482
|
-
}
|
|
4483
|
-
|
|
4484
|
-
menuElement.appendChild( subentry );
|
|
4485
|
-
|
|
4486
|
-
// Nothing more for separators
|
|
4487
|
-
if( subkey == '' )
|
|
4488
|
-
{
|
|
4489
|
-
continue;
|
|
4490
|
-
}
|
|
4491
|
-
|
|
4492
|
-
menuElement.addEventListener('keydown', e => {
|
|
4493
|
-
e.preventDefault();
|
|
4494
|
-
let short = this.shorts[ subkey ];
|
|
4495
|
-
if(!short) return;
|
|
4496
|
-
// check if it's a letter or other key
|
|
4497
|
-
short = short.length == 1 ? short.toLowerCase() : short;
|
|
4498
|
-
if( short == e.key )
|
|
4499
|
-
{
|
|
4500
|
-
subentry.click()
|
|
4501
|
-
}
|
|
4502
|
-
});
|
|
4503
|
-
|
|
4504
|
-
// Add callback
|
|
4505
|
-
subentry.addEventListener("click", e => {
|
|
4506
|
-
if( checkboxInput )
|
|
4507
|
-
{
|
|
4508
|
-
subitem.checked = !subitem.checked;
|
|
4509
|
-
}
|
|
4510
|
-
const f = subitem[ 'callback' ];
|
|
4511
|
-
if( f )
|
|
4512
|
-
{
|
|
4513
|
-
f.call( this, checkboxInput ? subitem.checked : subkey, checkboxInput ? subkey : subentry );
|
|
4514
|
-
this._resetMenubar();
|
|
4515
|
-
}
|
|
4516
|
-
e.stopPropagation();
|
|
4517
|
-
e.stopImmediatePropagation();
|
|
4518
|
-
});
|
|
4519
|
-
|
|
4520
|
-
subentry.addEventListener("blur", e => {
|
|
4521
|
-
if( e.relatedTarget && !e.relatedTarget.className.includes( "lexmenu" ) )
|
|
4522
|
-
{
|
|
4523
|
-
this._resetMenubar();
|
|
4524
|
-
}
|
|
4525
|
-
});
|
|
4620
|
+
return;
|
|
4526
4621
|
|
|
4527
|
-
|
|
4528
|
-
|
|
4529
|
-
{
|
|
4530
|
-
if( this.shorts[ subkey ] )
|
|
4531
|
-
{
|
|
4532
|
-
let shortEl = document.createElement('div');
|
|
4533
|
-
shortEl.className = "lexentryshort";
|
|
4534
|
-
shortEl.innerText = this.shorts[ subkey ];
|
|
4535
|
-
subentry.appendChild( shortEl );
|
|
4536
|
-
}
|
|
4537
|
-
continue;
|
|
4538
|
-
}
|
|
4622
|
+
this.tabDOMs[ name ].click();
|
|
4623
|
+
}
|
|
4539
4624
|
|
|
4540
|
-
|
|
4541
|
-
submenuIcon.className = "fa-solid fa-angle-right fa-xs";
|
|
4542
|
-
subentry.appendChild( submenuIcon );
|
|
4625
|
+
delete( name ) {
|
|
4543
4626
|
|
|
4544
|
-
|
|
4545
|
-
if( subentry.built )
|
|
4546
|
-
{
|
|
4547
|
-
return;
|
|
4548
|
-
}
|
|
4549
|
-
subentry.built = true;
|
|
4550
|
-
this._createSubmenu( subitem, subkey, subentry, ++d );
|
|
4551
|
-
e.stopPropagation();
|
|
4552
|
-
});
|
|
4627
|
+
const tabEl = this.tabDOMs[ name ];
|
|
4553
4628
|
|
|
4554
|
-
|
|
4555
|
-
|
|
4556
|
-
|
|
4557
|
-
d = -1; // Reset depth
|
|
4558
|
-
delete subentry.built;
|
|
4559
|
-
subentry.currentMenu.remove();
|
|
4560
|
-
delete subentry.currentMenu;
|
|
4561
|
-
}
|
|
4562
|
-
});
|
|
4629
|
+
if( !tabEl || tabEl.fixed )
|
|
4630
|
+
{
|
|
4631
|
+
return;
|
|
4563
4632
|
}
|
|
4564
4633
|
|
|
4565
|
-
|
|
4566
|
-
|
|
4634
|
+
if( this.onclose )
|
|
4635
|
+
{
|
|
4636
|
+
this.onclose( name );
|
|
4637
|
+
}
|
|
4638
|
+
|
|
4639
|
+
// Delete tab element
|
|
4640
|
+
this.tabDOMs[ name ].remove();
|
|
4641
|
+
delete this.tabDOMs[ name ];
|
|
4642
|
+
|
|
4643
|
+
// Delete content
|
|
4644
|
+
this.tabs[ name ].remove();
|
|
4645
|
+
delete this.tabs[ name ];
|
|
4646
|
+
|
|
4647
|
+
// Select last tab
|
|
4648
|
+
const lastTab = this.root.lastChild;
|
|
4649
|
+
if( lastTab && !lastTab.fixed )
|
|
4650
|
+
{
|
|
4651
|
+
this.root.lastChild.click();
|
|
4652
|
+
}
|
|
4567
4653
|
}
|
|
4654
|
+
}
|
|
4568
4655
|
|
|
4569
|
-
|
|
4570
|
-
* @method add
|
|
4571
|
-
* @param {Object} options:
|
|
4572
|
-
* callback: Function to call on each item
|
|
4573
|
-
* icon: Entry icon
|
|
4574
|
-
* short: Entry shortcut name
|
|
4575
|
-
*/
|
|
4656
|
+
LX.Tabs = Tabs;
|
|
4576
4657
|
|
|
4577
|
-
|
|
4658
|
+
/**
|
|
4659
|
+
* @class Menubar
|
|
4660
|
+
*/
|
|
4578
4661
|
|
|
4579
|
-
|
|
4662
|
+
class Menubar {
|
|
4663
|
+
|
|
4664
|
+
constructor( items, options = {} ) {
|
|
4665
|
+
|
|
4666
|
+
this.root = document.createElement( "div" );
|
|
4667
|
+
this.root.className = "lexmenubar";
|
|
4668
|
+
|
|
4669
|
+
if( options.float )
|
|
4580
4670
|
{
|
|
4581
|
-
|
|
4671
|
+
this.root.style.justifyContent = options.float;
|
|
4582
4672
|
}
|
|
4583
4673
|
|
|
4584
|
-
|
|
4585
|
-
|
|
4674
|
+
this.buttons = [ ];
|
|
4675
|
+
this.icons = { };
|
|
4676
|
+
this.shorts = { };
|
|
4677
|
+
this.items = items ?? [];
|
|
4586
4678
|
|
|
4587
|
-
|
|
4588
|
-
|
|
4589
|
-
this.icons[ lastPath ] = options.icon;
|
|
4590
|
-
this.shorts[ lastPath ] = options.short;
|
|
4679
|
+
this.createEntries();
|
|
4680
|
+
}
|
|
4591
4681
|
|
|
4592
|
-
|
|
4682
|
+
_resetMenubar( focus ) {
|
|
4593
4683
|
|
|
4594
|
-
|
|
4595
|
-
|
|
4596
|
-
|
|
4597
|
-
|
|
4598
|
-
}
|
|
4684
|
+
this.root.querySelectorAll(".lexmenuentry").forEach( e => {
|
|
4685
|
+
e.classList.remove( 'selected' );
|
|
4686
|
+
delete e.dataset[ "built" ];
|
|
4687
|
+
} );
|
|
4599
4688
|
|
|
4600
|
-
|
|
4601
|
-
|
|
4602
|
-
|
|
4603
|
-
|
|
4604
|
-
|
|
4605
|
-
} );
|
|
4689
|
+
if( this._currentDropdown )
|
|
4690
|
+
{
|
|
4691
|
+
this._currentDropdown.destroy();
|
|
4692
|
+
this._currentDropdown = null;
|
|
4693
|
+
}
|
|
4606
4694
|
|
|
4607
|
-
|
|
4608
|
-
|
|
4609
|
-
|
|
4610
|
-
}
|
|
4611
|
-
else
|
|
4612
|
-
{
|
|
4613
|
-
let item = {};
|
|
4614
|
-
item[ token ] = [];
|
|
4615
|
-
const nextToken = tokens[ idx++ ];
|
|
4616
|
-
// Check if last token -> add callback
|
|
4617
|
-
if( !nextToken )
|
|
4618
|
-
{
|
|
4619
|
-
item[ 'callback' ] = options.callback;
|
|
4620
|
-
item[ 'disabled' ] = options.disabled;
|
|
4621
|
-
item[ 'type' ] = options.type;
|
|
4622
|
-
item[ 'checked' ] = options.checked;
|
|
4623
|
-
}
|
|
4624
|
-
list.push( item );
|
|
4625
|
-
_insertEntry( nextToken, item[ token ] );
|
|
4626
|
-
}
|
|
4627
|
-
};
|
|
4695
|
+
// Next time we need to click again
|
|
4696
|
+
this.focused = focus ?? false;
|
|
4697
|
+
}
|
|
4628
4698
|
|
|
4629
|
-
|
|
4699
|
+
/**
|
|
4700
|
+
* @method createEntries
|
|
4701
|
+
*/
|
|
4630
4702
|
|
|
4631
|
-
|
|
4703
|
+
createEntries() {
|
|
4632
4704
|
|
|
4633
4705
|
for( let item of this.items )
|
|
4634
4706
|
{
|
|
4635
|
-
let key =
|
|
4636
|
-
let pKey =
|
|
4707
|
+
let key = item.name;
|
|
4708
|
+
let pKey = LX.getSupportedDOMName( key );
|
|
4637
4709
|
|
|
4638
4710
|
// Item already created
|
|
4639
4711
|
if( this.root.querySelector( "#" + pKey ) )
|
|
@@ -4647,32 +4719,15 @@ class Menubar {
|
|
|
4647
4719
|
entry.innerHTML = "<span>" + key + "</span>";
|
|
4648
4720
|
entry.tabIndex = "1";
|
|
4649
4721
|
|
|
4650
|
-
|
|
4651
|
-
{
|
|
4652
|
-
this.root.prepend( entry );
|
|
4653
|
-
}
|
|
4654
|
-
else
|
|
4655
|
-
{
|
|
4656
|
-
if( options.position == "right" )
|
|
4657
|
-
{
|
|
4658
|
-
entry.right = true;
|
|
4659
|
-
}
|
|
4660
|
-
|
|
4661
|
-
if( this.root.lastChild && this.root.lastChild.right )
|
|
4662
|
-
{
|
|
4663
|
-
this.root.lastChild.before( entry );
|
|
4664
|
-
}
|
|
4665
|
-
else
|
|
4666
|
-
{
|
|
4667
|
-
this.root.appendChild( entry );
|
|
4668
|
-
}
|
|
4669
|
-
}
|
|
4722
|
+
this.root.appendChild( entry );
|
|
4670
4723
|
|
|
4671
4724
|
const _showEntry = () => {
|
|
4672
4725
|
this._resetMenubar(true);
|
|
4673
4726
|
entry.classList.add( "selected" );
|
|
4674
|
-
entry.built = true;
|
|
4675
|
-
this.
|
|
4727
|
+
entry.dataset["built"] = "true";
|
|
4728
|
+
this._currentDropdown = addDropdownMenu( entry, item.submenu ?? [], { side: "bottom", align: "start", onBlur: () => {
|
|
4729
|
+
this._resetMenubar();
|
|
4730
|
+
} });
|
|
4676
4731
|
};
|
|
4677
4732
|
|
|
4678
4733
|
entry.addEventListener("click", () => {
|
|
@@ -4690,21 +4745,11 @@ class Menubar {
|
|
|
4690
4745
|
|
|
4691
4746
|
entry.addEventListener( "mouseover", (e) => {
|
|
4692
4747
|
|
|
4693
|
-
if( this.focused && !entry.built )
|
|
4748
|
+
if( this.focused && !( entry.dataset[ "built" ] ?? false ) )
|
|
4694
4749
|
{
|
|
4695
4750
|
_showEntry();
|
|
4696
4751
|
}
|
|
4697
4752
|
});
|
|
4698
|
-
|
|
4699
|
-
entry.addEventListener("blur", e => {
|
|
4700
|
-
|
|
4701
|
-
if( e.relatedTarget && e.relatedTarget.className.includes( "lexmenubox" ) )
|
|
4702
|
-
{
|
|
4703
|
-
return;
|
|
4704
|
-
}
|
|
4705
|
-
|
|
4706
|
-
this._resetMenubar();
|
|
4707
|
-
});
|
|
4708
4753
|
}
|
|
4709
4754
|
}
|
|
4710
4755
|
|
|
@@ -4776,7 +4821,8 @@ class Menubar {
|
|
|
4776
4821
|
let button = this.buttons[ name ];
|
|
4777
4822
|
if( button )
|
|
4778
4823
|
{
|
|
4779
|
-
button.
|
|
4824
|
+
button.innerHTML = "";
|
|
4825
|
+
button.appendChild( LX.makeIcon( icon, { svgClass: "xl" } ) );
|
|
4780
4826
|
return;
|
|
4781
4827
|
}
|
|
4782
4828
|
|
|
@@ -4785,7 +4831,7 @@ class Menubar {
|
|
|
4785
4831
|
const disabled = options.disabled ?? false;
|
|
4786
4832
|
button.className = "lexmenubutton main" + (disabled ? " disabled" : "");
|
|
4787
4833
|
button.title = name;
|
|
4788
|
-
button.
|
|
4834
|
+
button.appendChild( LX.makeIcon( icon, { svgClass: "xl" } ) );
|
|
4789
4835
|
|
|
4790
4836
|
if( options.float == "right" )
|
|
4791
4837
|
{
|
|
@@ -4975,6 +5021,7 @@ class SideBar {
|
|
|
4975
5021
|
configurable: true
|
|
4976
5022
|
});
|
|
4977
5023
|
|
|
5024
|
+
this.side = options.side ?? "left";
|
|
4978
5025
|
this.collapsable = options.collapsable ?? true;
|
|
4979
5026
|
this._collapseWidth = ( options.collapseToIcons ?? true ) ? "58px" : "0px";
|
|
4980
5027
|
this.collapsed = false;
|
|
@@ -5005,7 +5052,7 @@ class SideBar {
|
|
|
5005
5052
|
|
|
5006
5053
|
if( this.collapsable )
|
|
5007
5054
|
{
|
|
5008
|
-
const icon = LX.makeIcon( "
|
|
5055
|
+
const icon = LX.makeIcon( this.side == "left" ? "PanelLeft" : "PanelRight", { title: "Toggle Sidebar", iconClass: "toggler" } );
|
|
5009
5056
|
this.header.appendChild( icon );
|
|
5010
5057
|
|
|
5011
5058
|
icon.addEventListener( "click", (e) => {
|
|
@@ -5022,7 +5069,7 @@ class SideBar {
|
|
|
5022
5069
|
const filterTextInput = new TextInput(null, "", (value, event) => {
|
|
5023
5070
|
this.filterString = value;
|
|
5024
5071
|
this.update();
|
|
5025
|
-
}, { inputClass: "outline", placeholder: "Search...", icon: "
|
|
5072
|
+
}, { inputClass: "outline", placeholder: "Search...", icon: "Search", className: "lexsidebarfilter" });
|
|
5026
5073
|
this.filter = filterTextInput.root;
|
|
5027
5074
|
this.root.appendChild( this.filter );
|
|
5028
5075
|
}
|
|
@@ -5150,7 +5197,7 @@ class SideBar {
|
|
|
5150
5197
|
info.appendChild( infoSubtext );
|
|
5151
5198
|
}
|
|
5152
5199
|
|
|
5153
|
-
const icon = LX.makeIcon( "
|
|
5200
|
+
const icon = LX.makeIcon( "MenuArrows" );
|
|
5154
5201
|
footer.appendChild( icon );
|
|
5155
5202
|
|
|
5156
5203
|
return footer;
|
|
@@ -5291,7 +5338,7 @@ class SideBar {
|
|
|
5291
5338
|
|
|
5292
5339
|
select( name ) {
|
|
5293
5340
|
|
|
5294
|
-
let pKey =
|
|
5341
|
+
let pKey = LX.getSupportedDOMName( name );
|
|
5295
5342
|
|
|
5296
5343
|
const entry = this.items.find( v => v.name === pKey );
|
|
5297
5344
|
|
|
@@ -5322,18 +5369,18 @@ class SideBar {
|
|
|
5322
5369
|
continue;
|
|
5323
5370
|
}
|
|
5324
5371
|
|
|
5325
|
-
let key = Object.keys( item )[ 0 ];
|
|
5372
|
+
let key = item.name = Object.keys( item )[ 0 ];
|
|
5326
5373
|
|
|
5327
5374
|
if( this.filterString.length && !key.toLowerCase().includes( this.filterString.toLowerCase() ) )
|
|
5328
5375
|
{
|
|
5329
5376
|
continue;
|
|
5330
5377
|
}
|
|
5331
5378
|
|
|
5332
|
-
let pKey =
|
|
5379
|
+
let pKey = LX.getSupportedDOMName( key );
|
|
5333
5380
|
let currentGroup = null;
|
|
5334
5381
|
|
|
5335
5382
|
let entry = document.createElement( 'div' );
|
|
5336
|
-
entry.id =
|
|
5383
|
+
entry.id = pKey;
|
|
5337
5384
|
entry.className = "lexsidebarentry " + ( options.className ?? "" );
|
|
5338
5385
|
|
|
5339
5386
|
if( this.displaySelected && options.selected )
|
|
@@ -5363,10 +5410,9 @@ class SideBar {
|
|
|
5363
5410
|
|
|
5364
5411
|
if( this.groups[ item.group ] != null )
|
|
5365
5412
|
{
|
|
5366
|
-
|
|
5367
|
-
|
|
5368
|
-
|
|
5369
|
-
groupAction.addEventListener( "click", (e) => {
|
|
5413
|
+
const groupActionIcon = LX.makeIcon( this.groups[ item.group ].icon, { svgClass: "sm" } )
|
|
5414
|
+
groupEntry.appendChild( groupActionIcon );
|
|
5415
|
+
groupActionIcon.addEventListener( "click", e => {
|
|
5370
5416
|
if( this.groups[ item.group ].callback )
|
|
5371
5417
|
{
|
|
5372
5418
|
this.groups[ item.group ].callback( item.group, e );
|
|
@@ -5430,20 +5476,7 @@ class SideBar {
|
|
|
5430
5476
|
{
|
|
5431
5477
|
if( options.icon )
|
|
5432
5478
|
{
|
|
5433
|
-
|
|
5434
|
-
|
|
5435
|
-
// @legacy
|
|
5436
|
-
if( options.icon.includes( "fa-" ) )
|
|
5437
|
-
{
|
|
5438
|
-
itemIcon = document.createElement( 'i' );
|
|
5439
|
-
itemIcon.className = options.icon;
|
|
5440
|
-
}
|
|
5441
|
-
else
|
|
5442
|
-
{
|
|
5443
|
-
itemIcon = LX.makeIcon( options.icon );
|
|
5444
|
-
}
|
|
5445
|
-
|
|
5446
|
-
itemIcon.classList.add( "lexsidebarentryicon" );
|
|
5479
|
+
const itemIcon = LX.makeIcon( options.icon, { iconClass: "lexsidebarentryicon" } );
|
|
5447
5480
|
itemDom.appendChild( itemIcon );
|
|
5448
5481
|
LX.asTooltip( itemDom, key, { side: "right", offset: 16, active: false } );
|
|
5449
5482
|
}
|
|
@@ -5492,7 +5525,7 @@ class SideBar {
|
|
|
5492
5525
|
|
|
5493
5526
|
if( options.action )
|
|
5494
5527
|
{
|
|
5495
|
-
const actionIcon = LX.makeIcon( options.action.icon ?? "
|
|
5528
|
+
const actionIcon = LX.makeIcon( options.action.icon ?? "Ellipsis", { title: options.action.name } );
|
|
5496
5529
|
itemDom.appendChild( actionIcon );
|
|
5497
5530
|
|
|
5498
5531
|
actionIcon.addEventListener( "click", (e) => {
|
|
@@ -5540,7 +5573,7 @@ class SideBar {
|
|
|
5540
5573
|
{
|
|
5541
5574
|
const subitem = item[ key ][ i ];
|
|
5542
5575
|
const suboptions = subitem.options ?? {};
|
|
5543
|
-
const subkey = Object.keys( subitem )[ 0 ];
|
|
5576
|
+
const subkey = subitem.name = Object.keys( subitem )[ 0 ];
|
|
5544
5577
|
|
|
5545
5578
|
if( this.filterString.length && !subkey.toLowerCase().includes( this.filterString.toLowerCase() ) )
|
|
5546
5579
|
{
|
|
@@ -5552,7 +5585,7 @@ class SideBar {
|
|
|
5552
5585
|
|
|
5553
5586
|
if( suboptions.action )
|
|
5554
5587
|
{
|
|
5555
|
-
const actionIcon = LX.makeIcon( suboptions.action.icon ?? "
|
|
5588
|
+
const actionIcon = LX.makeIcon( suboptions.action.icon ?? "Ellipsis", { title: suboptions.action.name } );
|
|
5556
5589
|
subentry.appendChild( actionIcon );
|
|
5557
5590
|
|
|
5558
5591
|
actionIcon.addEventListener( "click", (e) => {
|
|
@@ -5745,11 +5778,8 @@ class Widget {
|
|
|
5745
5778
|
|
|
5746
5779
|
_addResetProperty( container, callback ) {
|
|
5747
5780
|
|
|
5748
|
-
const domEl = LX.makeIcon( "
|
|
5781
|
+
const domEl = LX.makeIcon( "Undo2", { iconClass: "ml-0 mr-1 px-1", title: "Reset" } )
|
|
5749
5782
|
domEl.style.display = "none";
|
|
5750
|
-
domEl.style.marginRight = "6px";
|
|
5751
|
-
domEl.style.marginLeft = "0";
|
|
5752
|
-
domEl.style.paddingInline = "6px";
|
|
5753
5783
|
domEl.addEventListener( "click", callback );
|
|
5754
5784
|
container.appendChild( domEl );
|
|
5755
5785
|
return domEl;
|
|
@@ -5935,11 +5965,10 @@ function ADD_CUSTOM_WIDGET( customWidgetName, options = {} )
|
|
|
5935
5965
|
element.appendChild( container );
|
|
5936
5966
|
element.dataset["opened"] = false;
|
|
5937
5967
|
|
|
5938
|
-
|
|
5939
|
-
|
|
5940
|
-
// Add always icon to keep spacing right
|
|
5941
|
-
buttonName += "<a class='fa-solid " + (instance ? "fa-bars-staggered" : " ") + " menu'></a>";
|
|
5968
|
+
const customIcon = LX.makeIcon( options.icon ?? "Box" );
|
|
5969
|
+
const menuIcon = LX.makeIcon( "Menu" );
|
|
5942
5970
|
|
|
5971
|
+
let buttonName = customWidgetName + (!instance ? " [empty]" : "");
|
|
5943
5972
|
let buttonEl = this.addButton(null, buttonName, (value, event) => {
|
|
5944
5973
|
if( instance )
|
|
5945
5974
|
{
|
|
@@ -5959,11 +5988,15 @@ function ADD_CUSTOM_WIDGET( customWidgetName, options = {} )
|
|
|
5959
5988
|
}
|
|
5960
5989
|
|
|
5961
5990
|
}, { buttonClass: 'custom' });
|
|
5991
|
+
|
|
5992
|
+
const buttonSpan = buttonEl.root.querySelector( "span" );
|
|
5993
|
+
buttonSpan.prepend( customIcon );
|
|
5994
|
+
buttonSpan.appendChild( menuIcon );
|
|
5962
5995
|
container.appendChild( buttonEl.root );
|
|
5963
5996
|
|
|
5964
5997
|
if( instance )
|
|
5965
5998
|
{
|
|
5966
|
-
|
|
5999
|
+
menuIcon.addEventListener( "click", e => {
|
|
5967
6000
|
e.stopImmediatePropagation();
|
|
5968
6001
|
e.stopPropagation();
|
|
5969
6002
|
addContextMenu(null, e, c => {
|
|
@@ -6068,7 +6101,7 @@ class NodeTree {
|
|
|
6068
6101
|
_createItem( parent, node, level = 0, selectedId ) {
|
|
6069
6102
|
|
|
6070
6103
|
const that = this;
|
|
6071
|
-
const nodeFilterInput = this.domEl.querySelector( ".
|
|
6104
|
+
const nodeFilterInput = this.domEl.querySelector( ".lexnodetreefilter" );
|
|
6072
6105
|
|
|
6073
6106
|
node.children = node.children ?? [];
|
|
6074
6107
|
if( nodeFilterInput && nodeFilterInput.value != "" && !node.id.includes( nodeFilterInput.value ) )
|
|
@@ -6101,21 +6134,29 @@ class NodeTree {
|
|
|
6101
6134
|
item.treeData = node;
|
|
6102
6135
|
|
|
6103
6136
|
// Select hierarchy icon
|
|
6104
|
-
let icon = (this.options.
|
|
6137
|
+
let icon = (this.options.skipDefaultIcon ?? true) ? null : "Dot"; // Default: no childs
|
|
6105
6138
|
if( isParent )
|
|
6106
6139
|
{
|
|
6107
|
-
icon = node.closed ? "
|
|
6108
|
-
|
|
6140
|
+
icon = node.closed ? "Right" : "Down";
|
|
6141
|
+
}
|
|
6142
|
+
|
|
6143
|
+
if( icon )
|
|
6144
|
+
{
|
|
6145
|
+
item.appendChild( LX.makeIcon( icon, { iconClass: "hierarchy", svgClass: "xs" } ) );
|
|
6109
6146
|
}
|
|
6110
6147
|
|
|
6111
6148
|
// Add display icon
|
|
6112
6149
|
icon = node.icon;
|
|
6113
6150
|
|
|
6114
6151
|
// Process icon
|
|
6115
|
-
if(
|
|
6152
|
+
if( icon )
|
|
6116
6153
|
{
|
|
6117
|
-
if( node.icon.includes( '
|
|
6118
|
-
|
|
6154
|
+
if( !node.icon.includes( '.' ) ) // Not a file
|
|
6155
|
+
{
|
|
6156
|
+
const classes = node.icon.split( ' ' );
|
|
6157
|
+
const nodeIcon = LX.makeIcon( classes[ 0 ], { iconClass: "tree-item-icon mr-2", svgClass: "md" + ( classes.length > 1 ? ` ${ classes.slice( 0 ).join( ' ' ) }` : '' ) } );
|
|
6158
|
+
item.appendChild( nodeIcon );
|
|
6159
|
+
}
|
|
6119
6160
|
else // an image..
|
|
6120
6161
|
{
|
|
6121
6162
|
const rootPath = "https://raw.githubusercontent.com/jxarco/lexgui.js/master/";
|
|
@@ -6464,40 +6505,33 @@ class NodeTree {
|
|
|
6464
6505
|
{
|
|
6465
6506
|
for( let i = 0; i < node.actions.length; ++i )
|
|
6466
6507
|
{
|
|
6467
|
-
|
|
6468
|
-
|
|
6469
|
-
|
|
6470
|
-
|
|
6471
|
-
actionEl.addEventListener("click", function( e ) {
|
|
6472
|
-
if( a.callback )
|
|
6508
|
+
const action = node.actions[ i ];
|
|
6509
|
+
const actionIcon = LX.makeIcon( action.icon, { title: action.name } );
|
|
6510
|
+
actionIcon.addEventListener("click", function( e ) {
|
|
6511
|
+
if( action.callback )
|
|
6473
6512
|
{
|
|
6474
|
-
|
|
6513
|
+
action.callback( node, actionIcon );
|
|
6475
6514
|
e.stopPropagation();
|
|
6476
6515
|
}
|
|
6477
6516
|
});
|
|
6478
6517
|
|
|
6479
|
-
inputContainer.appendChild(
|
|
6518
|
+
inputContainer.appendChild( actionIcon );
|
|
6480
6519
|
}
|
|
6481
6520
|
}
|
|
6482
6521
|
|
|
6483
6522
|
if( !node.skipVisibility ?? false )
|
|
6484
6523
|
{
|
|
6485
|
-
|
|
6486
|
-
|
|
6487
|
-
visibility.title = "Toggle visible";
|
|
6488
|
-
visibility.addEventListener("click", function( e ) {
|
|
6489
|
-
e.stopPropagation();
|
|
6524
|
+
const visibilityBtn = new Button( null, "", ( swapValue, event ) => {
|
|
6525
|
+
event.stopPropagation();
|
|
6490
6526
|
node.visible = node.visible === undefined ? false : !node.visible;
|
|
6491
|
-
this.className = "lexicon fa-solid fa-eye" + ( !node.visible ? "-slash" : "" );
|
|
6492
6527
|
// Trigger visibility event
|
|
6493
6528
|
if( that.onevent )
|
|
6494
6529
|
{
|
|
6495
6530
|
const event = new TreeEvent( TreeEvent.NODE_VISIBILITY, node, node.visible );
|
|
6496
6531
|
that.onevent( event );
|
|
6497
6532
|
}
|
|
6498
|
-
});
|
|
6499
|
-
|
|
6500
|
-
inputContainer.appendChild( visibility );
|
|
6533
|
+
}, { icon: node.visible ? "Eye" : "EyeOff", swap: node.visible ? "EyeOff" : "Eye", title: "Toggle visible", className: "p-0 m-0", buttonClass: "bg-none" } );
|
|
6534
|
+
inputContainer.appendChild( visibilityBtn.root );
|
|
6501
6535
|
}
|
|
6502
6536
|
|
|
6503
6537
|
const _hasChild = function( parent, id ) {
|
|
@@ -6612,9 +6646,8 @@ class Title extends Widget {
|
|
|
6612
6646
|
|
|
6613
6647
|
if( options.icon )
|
|
6614
6648
|
{
|
|
6615
|
-
let icon =
|
|
6616
|
-
icon.
|
|
6617
|
-
icon.style.color = options.iconColor || "";
|
|
6649
|
+
let icon = LX.makeIcon( options.icon, { iconClass: "mr-2" } );
|
|
6650
|
+
icon.querySelector( "svg" ).style.color = options.iconColor || "";
|
|
6618
6651
|
this.root.appendChild( icon );
|
|
6619
6652
|
}
|
|
6620
6653
|
|
|
@@ -6742,8 +6775,7 @@ class TextInput extends Widget {
|
|
|
6742
6775
|
if( options.icon )
|
|
6743
6776
|
{
|
|
6744
6777
|
wValue.style.paddingLeft = "1.75rem";
|
|
6745
|
-
|
|
6746
|
-
icon.className = "inputicon " + options.icon;
|
|
6778
|
+
const icon = LX.makeIcon( options.icon, { iconClass: "absolute z-1 ml-2", svgClass: "sm" } );
|
|
6747
6779
|
container.appendChild( icon );
|
|
6748
6780
|
}
|
|
6749
6781
|
|
|
@@ -6753,19 +6785,14 @@ class TextInput extends Widget {
|
|
|
6753
6785
|
wValue = document.createElement( 'a' );
|
|
6754
6786
|
wValue.href = options.url;
|
|
6755
6787
|
wValue.target = "_blank";
|
|
6756
|
-
|
|
6757
|
-
const icon = options.warning ? '<i class="fa-solid fa-triangle-exclamation"></i>' : '';
|
|
6758
|
-
wValue.innerHTML = ( icon + value ) || "";
|
|
6788
|
+
wValue.innerHTML = value ?? "";
|
|
6759
6789
|
wValue.style.textAlign = options.float ?? "";
|
|
6760
6790
|
wValue.className = "lextext ellipsis-overflow";
|
|
6761
6791
|
}
|
|
6762
6792
|
else
|
|
6763
6793
|
{
|
|
6764
6794
|
wValue = document.createElement( 'input' );
|
|
6765
|
-
|
|
6766
|
-
const icon = options.warning ? '<i class="fa-solid fa-triangle-exclamation"></i>' : '';
|
|
6767
6795
|
wValue.disabled = true;
|
|
6768
|
-
wValue.innerHTML = icon;
|
|
6769
6796
|
wValue.value = value;
|
|
6770
6797
|
wValue.style.textAlign = options.float ?? "";
|
|
6771
6798
|
wValue.className = "lextext ellipsis-overflow " + ( options.inputClass ?? "" );
|
|
@@ -6826,7 +6853,7 @@ class TextArea extends Widget {
|
|
|
6826
6853
|
wValue.style.textAlign = options.float ?? "";
|
|
6827
6854
|
Object.assign( wValue.style, options.style ?? {} );
|
|
6828
6855
|
|
|
6829
|
-
if( options.fitHeight )
|
|
6856
|
+
if( options.fitHeight ?? false )
|
|
6830
6857
|
{
|
|
6831
6858
|
wValue.classList.add( "size-content" );
|
|
6832
6859
|
}
|
|
@@ -6865,8 +6892,7 @@ class TextArea extends Widget {
|
|
|
6865
6892
|
|
|
6866
6893
|
if( options.icon )
|
|
6867
6894
|
{
|
|
6868
|
-
|
|
6869
|
-
icon.className = "inputicon " + options.icon;
|
|
6895
|
+
const icon = LX.makeIcon( options.icon, { iconClass: "absolute z-1 ml-2", svgClass: "sm" } );
|
|
6870
6896
|
container.appendChild( icon );
|
|
6871
6897
|
}
|
|
6872
6898
|
|
|
@@ -6896,12 +6922,31 @@ class Button extends Widget {
|
|
|
6896
6922
|
|
|
6897
6923
|
this.onSetValue = ( newValue, skipCallback, event ) => {
|
|
6898
6924
|
|
|
6899
|
-
if(
|
|
6925
|
+
if( ( options.swap ?? false ) )
|
|
6900
6926
|
{
|
|
6927
|
+
this.root.setState( newValue, skipCallback );
|
|
6901
6928
|
return;
|
|
6902
6929
|
}
|
|
6903
6930
|
|
|
6904
|
-
|
|
6931
|
+
// No-swap buttons
|
|
6932
|
+
|
|
6933
|
+
wValue.innerHTML = "";
|
|
6934
|
+
|
|
6935
|
+
if( options.icon )
|
|
6936
|
+
{
|
|
6937
|
+
const icon = LX.makeIcon( options.icon );
|
|
6938
|
+
wValue.prepend( icon );
|
|
6939
|
+
}
|
|
6940
|
+
else if( options.img )
|
|
6941
|
+
{
|
|
6942
|
+
let img = document.createElement( 'img' );
|
|
6943
|
+
img.src = options.img;
|
|
6944
|
+
wValue.prepend( img );
|
|
6945
|
+
}
|
|
6946
|
+
else
|
|
6947
|
+
{
|
|
6948
|
+
wValue.innerHTML = `<span>${ ( newValue ?? "" ) }</span>`;
|
|
6949
|
+
}
|
|
6905
6950
|
};
|
|
6906
6951
|
|
|
6907
6952
|
this.onResize = ( rect ) => {
|
|
@@ -6913,11 +6958,6 @@ class Button extends Widget {
|
|
|
6913
6958
|
wValue.title = options.tooltip ? "" : ( options.title ?? "" );
|
|
6914
6959
|
wValue.className = "lexbutton " + ( options.buttonClass ?? "" );
|
|
6915
6960
|
|
|
6916
|
-
if( options.icon )
|
|
6917
|
-
{
|
|
6918
|
-
wValue.classList.add( "justify-center" );
|
|
6919
|
-
}
|
|
6920
|
-
|
|
6921
6961
|
this.root.appendChild( wValue );
|
|
6922
6962
|
|
|
6923
6963
|
if( options.selected )
|
|
@@ -6927,20 +6967,9 @@ class Button extends Widget {
|
|
|
6927
6967
|
|
|
6928
6968
|
if( options.icon )
|
|
6929
6969
|
{
|
|
6930
|
-
|
|
6931
|
-
|
|
6932
|
-
// @legacy
|
|
6933
|
-
if( options.icon.includes( "fa-" ) )
|
|
6934
|
-
{
|
|
6935
|
-
icon = document.createElement( 'a' );
|
|
6936
|
-
icon.className = options.icon + " lexicon";
|
|
6937
|
-
}
|
|
6938
|
-
else
|
|
6939
|
-
{
|
|
6940
|
-
icon = LX.makeIcon( options.icon );
|
|
6941
|
-
}
|
|
6942
|
-
|
|
6970
|
+
const icon = LX.makeIcon( options.icon );
|
|
6943
6971
|
wValue.prepend( icon );
|
|
6972
|
+
wValue.classList.add( "justify-center" );
|
|
6944
6973
|
}
|
|
6945
6974
|
else if( options.img )
|
|
6946
6975
|
{
|
|
@@ -6970,19 +6999,7 @@ class Button extends Widget {
|
|
|
6970
6999
|
input.type = "checkbox";
|
|
6971
7000
|
wValue.prepend( input );
|
|
6972
7001
|
|
|
6973
|
-
|
|
6974
|
-
|
|
6975
|
-
// @legacy
|
|
6976
|
-
if( options.swap.includes( "fa-" ) )
|
|
6977
|
-
{
|
|
6978
|
-
swapIcon = document.createElement( 'a' );
|
|
6979
|
-
swapIcon.className = options.swap + " swap-on lexicon";
|
|
6980
|
-
}
|
|
6981
|
-
else
|
|
6982
|
-
{
|
|
6983
|
-
swapIcon = LX.makeIcon( options.swap, { iconClass: "swap-on" } );
|
|
6984
|
-
}
|
|
6985
|
-
|
|
7002
|
+
const swapIcon = LX.makeIcon( options.swap, { iconClass: "swap-on" } );
|
|
6986
7003
|
wValue.appendChild( swapIcon );
|
|
6987
7004
|
|
|
6988
7005
|
this.root.swap = function( skipCallback ) {
|
|
@@ -7076,13 +7093,21 @@ class ComboButtons extends Widget {
|
|
|
7076
7093
|
buttonEl.classList.add( options.buttonClass );
|
|
7077
7094
|
}
|
|
7078
7095
|
|
|
7079
|
-
if( shouldSelect && ( b.selected || options.selected
|
|
7096
|
+
if( shouldSelect && ( b.selected || options.selected?.includes( b.value ) ) )
|
|
7080
7097
|
{
|
|
7081
7098
|
buttonEl.classList.add("selected");
|
|
7082
7099
|
currentValue = ( currentValue ).concat( [ b.value ] );
|
|
7083
7100
|
}
|
|
7084
7101
|
|
|
7085
|
-
|
|
7102
|
+
if( b.icon )
|
|
7103
|
+
{
|
|
7104
|
+
const icon = LX.makeIcon( b.icon );
|
|
7105
|
+
buttonEl.appendChild( icon );
|
|
7106
|
+
}
|
|
7107
|
+
else
|
|
7108
|
+
{
|
|
7109
|
+
buttonEl.innerHTML = `<span>${ b.value }</span>`;
|
|
7110
|
+
}
|
|
7086
7111
|
|
|
7087
7112
|
if( b.disabled )
|
|
7088
7113
|
{
|
|
@@ -7117,7 +7142,7 @@ class ComboButtons extends Widget {
|
|
|
7117
7142
|
|
|
7118
7143
|
if( !shouldToggle && currentValue.length > 1 )
|
|
7119
7144
|
{
|
|
7120
|
-
console.error( `Enable _options.toggle_ to allow selecting multiple options in ComboButtons.` )
|
|
7145
|
+
console.error( `Enable _options.toggle_ to allow selecting multiple options in ComboButtons.` );
|
|
7121
7146
|
return;
|
|
7122
7147
|
}
|
|
7123
7148
|
|
|
@@ -7131,9 +7156,12 @@ class ComboButtons extends Widget {
|
|
|
7131
7156
|
|
|
7132
7157
|
if( currentValue.length > 1 )
|
|
7133
7158
|
{
|
|
7134
|
-
|
|
7135
|
-
|
|
7136
|
-
|
|
7159
|
+
if( !shouldToggle )
|
|
7160
|
+
{
|
|
7161
|
+
options.toggle = true;
|
|
7162
|
+
shouldToggle = shouldSelect;
|
|
7163
|
+
console.warn( `Multiple options selected in '${ name }' ComboButtons. Enabling _toggle_ mode.` );
|
|
7164
|
+
}
|
|
7137
7165
|
}
|
|
7138
7166
|
else
|
|
7139
7167
|
{
|
|
@@ -7416,10 +7444,6 @@ class Select extends Widget {
|
|
|
7416
7444
|
wValue.name = name;
|
|
7417
7445
|
wValue.iValue = value;
|
|
7418
7446
|
|
|
7419
|
-
// Add select widget button
|
|
7420
|
-
let buttonName = value;
|
|
7421
|
-
buttonName += "<a class='fa-solid fa-angle-down'></a>";
|
|
7422
|
-
|
|
7423
7447
|
if( options.overflowContainer )
|
|
7424
7448
|
{
|
|
7425
7449
|
options.overflowContainerX = options.overflowContainerY = options.overflowContainer;
|
|
@@ -7494,7 +7518,7 @@ class Select extends Widget {
|
|
|
7494
7518
|
}
|
|
7495
7519
|
};
|
|
7496
7520
|
|
|
7497
|
-
let selectedOption = new Button( null,
|
|
7521
|
+
let selectedOption = new Button( null, value, ( value, event ) => {
|
|
7498
7522
|
if( list.unfocus_event )
|
|
7499
7523
|
{
|
|
7500
7524
|
delete list.unfocus_event;
|
|
@@ -7521,9 +7545,10 @@ class Select extends Widget {
|
|
|
7521
7545
|
|
|
7522
7546
|
}, { buttonClass: "array", skipInlineCount: true, disabled: options.disabled } );
|
|
7523
7547
|
|
|
7524
|
-
container.appendChild( selectedOption.root );
|
|
7525
|
-
|
|
7526
7548
|
selectedOption.root.style.width = "100%";
|
|
7549
|
+
selectedOption.root.querySelector( "span" ).appendChild( LX.makeIcon( "Down", { svgClass: "sm" } ) );
|
|
7550
|
+
|
|
7551
|
+
container.appendChild( selectedOption.root );
|
|
7527
7552
|
|
|
7528
7553
|
selectedOption.refresh = (v) => {
|
|
7529
7554
|
const buttonSpan = selectedOption.root.querySelector("span");
|
|
@@ -7574,7 +7599,7 @@ class Select extends Widget {
|
|
|
7574
7599
|
filterOptions.placeholder = filterOptions.placeholder ?? "Search...";
|
|
7575
7600
|
filterOptions.skipWidget = filterOptions.skipWidget ?? true;
|
|
7576
7601
|
filterOptions.trigger = "input";
|
|
7577
|
-
filterOptions.icon = "
|
|
7602
|
+
filterOptions.icon = "Search";
|
|
7578
7603
|
filterOptions.className = "lexfilter";
|
|
7579
7604
|
filterOptions.inputClass = "outline";
|
|
7580
7605
|
|
|
@@ -7646,7 +7671,8 @@ class Select extends Widget {
|
|
|
7646
7671
|
|
|
7647
7672
|
if( !asLabel )
|
|
7648
7673
|
{
|
|
7649
|
-
option.innerHTML =
|
|
7674
|
+
option.innerHTML = `<span>${ iValue }</span>`;
|
|
7675
|
+
option.appendChild( LX.makeIcon( "Check" ) )
|
|
7650
7676
|
option.value = iValue;
|
|
7651
7677
|
li.setAttribute( "value", iValue );
|
|
7652
7678
|
|
|
@@ -7952,23 +7978,19 @@ class ItemArray extends Widget {
|
|
|
7952
7978
|
|
|
7953
7979
|
// Add open array button
|
|
7954
7980
|
|
|
7955
|
-
|
|
7956
|
-
|
|
7957
|
-
var container = document.createElement('div');
|
|
7981
|
+
let container = document.createElement( "div" );
|
|
7958
7982
|
container.className = "lexarray";
|
|
7959
7983
|
container.style.width = "100%";
|
|
7960
7984
|
this.root.appendChild( container );
|
|
7961
7985
|
this.root.dataset["opened"] = false;
|
|
7962
7986
|
|
|
7963
|
-
|
|
7964
|
-
|
|
7965
|
-
let buttonName = "Array (size " + values.length + ")";
|
|
7966
|
-
buttonName += angleDown;
|
|
7987
|
+
let buttonName = `Array (size ${ values.length })`;
|
|
7967
7988
|
|
|
7968
7989
|
const toggleButton = new Button(null, buttonName, () => {
|
|
7969
7990
|
this.root.dataset["opened"] = this.root.dataset["opened"] == "true" ? false : true;
|
|
7970
|
-
this.root.querySelector(".lexarrayitems").toggleAttribute(
|
|
7971
|
-
}, { buttonClass:
|
|
7991
|
+
this.root.querySelector(".lexarrayitems").toggleAttribute( "hidden" );
|
|
7992
|
+
}, { buttonClass: "array" });
|
|
7993
|
+
toggleButton.root.querySelector( "span" ).appendChild( LX.makeIcon( "Down", { svgClass: "sm" } ) );
|
|
7972
7994
|
container.appendChild( toggleButton.root );
|
|
7973
7995
|
|
|
7974
7996
|
// Show elements
|
|
@@ -7981,9 +8003,11 @@ class ItemArray extends Widget {
|
|
|
7981
8003
|
this._updateItems = () => {
|
|
7982
8004
|
|
|
7983
8005
|
// Update num items
|
|
7984
|
-
let
|
|
7985
|
-
|
|
7986
|
-
|
|
8006
|
+
let buttonSpan = this.root.querySelector(".lexbutton.array span");
|
|
8007
|
+
for( let node of buttonSpan.childNodes )
|
|
8008
|
+
{
|
|
8009
|
+
if ( node.nodeType === Node.TEXT_NODE ) { node.textContent = `Array (size ${ values.length })`; break; }
|
|
8010
|
+
}
|
|
7987
8011
|
|
|
7988
8012
|
// Update inputs
|
|
7989
8013
|
arrayItems.innerHTML = "";
|
|
@@ -8000,19 +8024,19 @@ class ItemArray extends Widget {
|
|
|
8000
8024
|
widget = new TextInput(i + "", value, function(value, event) {
|
|
8001
8025
|
values[ i ] = value;
|
|
8002
8026
|
callback( values );
|
|
8003
|
-
}, { nameWidth:
|
|
8027
|
+
}, { nameWidth: "12px", className: "p-0", skipReset: true });
|
|
8004
8028
|
break;
|
|
8005
8029
|
case Number:
|
|
8006
8030
|
widget = new NumberInput(i + "", value, function(value, event) {
|
|
8007
8031
|
values[ i ] = value;
|
|
8008
8032
|
callback( values );
|
|
8009
|
-
}, { nameWidth:
|
|
8033
|
+
}, { nameWidth: "12px", className: "p-0", skipReset: true });
|
|
8010
8034
|
break;
|
|
8011
8035
|
case 'select':
|
|
8012
8036
|
widget = new Select(i + "", options.innerValues, value, function(value, event) {
|
|
8013
8037
|
values[ i ] = value;
|
|
8014
8038
|
callback( values );
|
|
8015
|
-
}, { nameWidth:
|
|
8039
|
+
}, { nameWidth: "12px", className: "p-0", skipReset: true });
|
|
8016
8040
|
break;
|
|
8017
8041
|
}
|
|
8018
8042
|
|
|
@@ -8020,19 +8044,16 @@ class ItemArray extends Widget {
|
|
|
8020
8044
|
|
|
8021
8045
|
arrayItems.appendChild( widget.root );
|
|
8022
8046
|
|
|
8023
|
-
const removeWidget = new Button( null, "
|
|
8047
|
+
const removeWidget = new Button( null, "", ( v, event) => {
|
|
8024
8048
|
values.splice( values.indexOf( value ), 1 );
|
|
8025
8049
|
this._updateItems();
|
|
8026
8050
|
this._trigger( new IEvent(name, values, event), callback );
|
|
8027
|
-
}, { title: "Remove item",
|
|
8051
|
+
}, { title: "Remove item", icon: "Trash3"} );
|
|
8028
8052
|
|
|
8029
8053
|
widget.root.appendChild( removeWidget.root );
|
|
8030
8054
|
}
|
|
8031
8055
|
|
|
8032
|
-
|
|
8033
|
-
buttonName += "<a class='fa-solid fa-plus'></a>";
|
|
8034
|
-
|
|
8035
|
-
const addButton = new Button(null, buttonName, (v, event) => {
|
|
8056
|
+
const addButton = new Button(null, LX.makeIcon( "Plus", { svgClass: "sm" } ).innerHTML + "Add item", (v, event) => {
|
|
8036
8057
|
values.push( options.innerValues ? options.innerValues[ 0 ] : "" );
|
|
8037
8058
|
this._updateItems();
|
|
8038
8059
|
this._trigger( new IEvent(name, values, event), callback );
|
|
@@ -8114,7 +8135,13 @@ class List extends Widget {
|
|
|
8114
8135
|
|
|
8115
8136
|
let listElement = document.createElement( 'div' );
|
|
8116
8137
|
listElement.className = "lexlistitem" + ( value == itemValue ? " selected" : "" );
|
|
8117
|
-
|
|
8138
|
+
|
|
8139
|
+
if( icon )
|
|
8140
|
+
{
|
|
8141
|
+
listElement.appendChild( LX.makeIcon( icon ) );
|
|
8142
|
+
}
|
|
8143
|
+
|
|
8144
|
+
listElement.innerHTML += `<span>${ itemValue }</span>`;
|
|
8118
8145
|
|
|
8119
8146
|
listElement.addEventListener( 'click', e => {
|
|
8120
8147
|
listContainer.querySelectorAll( '.lexlistitem' ).forEach( e => e.classList.remove( 'selected' ) );
|
|
@@ -8190,8 +8217,7 @@ class Tags extends Widget {
|
|
|
8190
8217
|
tag.className = "lextag";
|
|
8191
8218
|
tag.innerHTML = tagName;
|
|
8192
8219
|
|
|
8193
|
-
const removeButton =
|
|
8194
|
-
removeButton.className = "lextagrmb fa-solid fa-xmark lexicon";
|
|
8220
|
+
const removeButton = LX.makeIcon( "X", { svgClass: "sm" } );
|
|
8195
8221
|
tag.appendChild( removeButton );
|
|
8196
8222
|
|
|
8197
8223
|
removeButton.addEventListener( 'click', e => {
|
|
@@ -8486,6 +8512,8 @@ class ColorInput extends Widget {
|
|
|
8486
8512
|
|
|
8487
8513
|
constructor( name, value, callback, options = {} ) {
|
|
8488
8514
|
|
|
8515
|
+
value = value ?? "#000000";
|
|
8516
|
+
|
|
8489
8517
|
const useAlpha = options.useAlpha ??
|
|
8490
8518
|
( ( value.constructor === Object && 'a' in value ) || ( value.constructor === String && [ 5, 9 ].includes( value.length ) ) );
|
|
8491
8519
|
|
|
@@ -8732,11 +8760,6 @@ class NumberInput extends Widget {
|
|
|
8732
8760
|
box.querySelector( ".lexinputslider" ).value = value;
|
|
8733
8761
|
}
|
|
8734
8762
|
|
|
8735
|
-
if( options.units )
|
|
8736
|
-
{
|
|
8737
|
-
vecinput.unitSpan.style.left = measureRealWidth( value ) + "px";
|
|
8738
|
-
}
|
|
8739
|
-
|
|
8740
8763
|
if( !skipCallback )
|
|
8741
8764
|
{
|
|
8742
8765
|
this._trigger( new IEvent( name, value, event ), callback );
|
|
@@ -8756,6 +8779,8 @@ class NumberInput extends Widget {
|
|
|
8756
8779
|
box.className = "numberbox";
|
|
8757
8780
|
container.appendChild( box );
|
|
8758
8781
|
|
|
8782
|
+
let valueBox = LX.makeContainer( [ "auto", "100%" ], "relative flex flex-row", "", box );
|
|
8783
|
+
|
|
8759
8784
|
let vecinput = document.createElement( 'input' );
|
|
8760
8785
|
vecinput.id = "number_" + simple_guidGenerator();
|
|
8761
8786
|
vecinput.className = "vecinput";
|
|
@@ -8771,22 +8796,17 @@ class NumberInput extends Widget {
|
|
|
8771
8796
|
}
|
|
8772
8797
|
|
|
8773
8798
|
vecinput.value = vecinput.iValue = value;
|
|
8774
|
-
|
|
8799
|
+
valueBox.appendChild( vecinput );
|
|
8800
|
+
|
|
8801
|
+
const dragIcon = LX.makeIcon( "MoveVertical", { iconClass: "drag-icon hidden-opacity", svgClass: "sm" } );
|
|
8802
|
+
valueBox.appendChild( dragIcon );
|
|
8775
8803
|
|
|
8776
8804
|
if( options.units )
|
|
8777
8805
|
{
|
|
8778
|
-
let
|
|
8779
|
-
|
|
8780
|
-
unitSpan.innerText = options.units;
|
|
8781
|
-
unitSpan.style.left = measureRealWidth( vecinput.value ) + "px";
|
|
8782
|
-
vecinput.unitSpan = unitSpan;
|
|
8783
|
-
box.appendChild( unitSpan );
|
|
8806
|
+
let unitBox = LX.makeContainer( [ "auto", "auto" ], "px-2 bg-secondary content-center", options.units, valueBox );
|
|
8807
|
+
vecinput.unitBox = unitBox;
|
|
8784
8808
|
}
|
|
8785
8809
|
|
|
8786
|
-
let dragIcon = document.createElement( 'a' );
|
|
8787
|
-
dragIcon.className = "fa-solid fa-arrows-up-down drag-icon hidden";
|
|
8788
|
-
box.appendChild( dragIcon );
|
|
8789
|
-
|
|
8790
8810
|
if( options.disabled )
|
|
8791
8811
|
{
|
|
8792
8812
|
vecinput.disabled = true;
|
|
@@ -8795,6 +8815,7 @@ class NumberInput extends Widget {
|
|
|
8795
8815
|
// Add slider below
|
|
8796
8816
|
if( !options.skipSlider && options.min !== undefined && options.max !== undefined )
|
|
8797
8817
|
{
|
|
8818
|
+
let sliderBox = LX.makeContainer( [ "100%", "auto" ], "", "", box );
|
|
8798
8819
|
let slider = document.createElement( 'input' );
|
|
8799
8820
|
slider.className = "lexinputslider";
|
|
8800
8821
|
slider.min = options.min;
|
|
@@ -8821,7 +8842,7 @@ class NumberInput extends Widget {
|
|
|
8821
8842
|
}
|
|
8822
8843
|
}, false );
|
|
8823
8844
|
|
|
8824
|
-
|
|
8845
|
+
sliderBox.appendChild( slider );
|
|
8825
8846
|
|
|
8826
8847
|
// Method to change min, max, step parameters
|
|
8827
8848
|
this.setLimits = ( newMin, newMax, newStep ) => {
|
|
@@ -8836,10 +8857,6 @@ class NumberInput extends Widget {
|
|
|
8836
8857
|
vecinput.addEventListener( "input", function( e ) {
|
|
8837
8858
|
value = +this.valueAsNumber;
|
|
8838
8859
|
value = round( value, options.precision );
|
|
8839
|
-
if( options.units )
|
|
8840
|
-
{
|
|
8841
|
-
vecinput.unitSpan.style.left = measureRealWidth( vecinput.value ) + "px";
|
|
8842
|
-
}
|
|
8843
8860
|
}, false );
|
|
8844
8861
|
|
|
8845
8862
|
vecinput.addEventListener( "wheel", e => {
|
|
@@ -8874,7 +8891,7 @@ class NumberInput extends Widget {
|
|
|
8874
8891
|
doc.addEventListener( 'mousemove', innerMouseMove );
|
|
8875
8892
|
doc.addEventListener( 'mouseup', innerMouseUp );
|
|
8876
8893
|
document.body.classList.add( 'noevents' );
|
|
8877
|
-
dragIcon.classList.remove( 'hidden' );
|
|
8894
|
+
dragIcon.classList.remove( 'hidden-opacity' );
|
|
8878
8895
|
e.stopImmediatePropagation();
|
|
8879
8896
|
e.stopPropagation();
|
|
8880
8897
|
|
|
@@ -8912,7 +8929,7 @@ class NumberInput extends Widget {
|
|
|
8912
8929
|
doc.removeEventListener( 'mousemove', innerMouseMove );
|
|
8913
8930
|
doc.removeEventListener( 'mouseup', innerMouseUp );
|
|
8914
8931
|
document.body.classList.remove( 'noevents' );
|
|
8915
|
-
dragIcon.classList.add( 'hidden' );
|
|
8932
|
+
dragIcon.classList.add( 'hidden-opacity' );
|
|
8916
8933
|
|
|
8917
8934
|
if( document.pointerLockElement )
|
|
8918
8935
|
{
|
|
@@ -9007,6 +9024,7 @@ class Vector extends Widget {
|
|
|
9007
9024
|
vecinput.id = "vec" + numComponents + "_" + simple_guidGenerator();
|
|
9008
9025
|
vecinput.idx = i;
|
|
9009
9026
|
vectorInputs[ i ] = vecinput;
|
|
9027
|
+
box.appendChild( vecinput );
|
|
9010
9028
|
|
|
9011
9029
|
if( value[ i ].constructor == Number )
|
|
9012
9030
|
{
|
|
@@ -9016,8 +9034,7 @@ class Vector extends Widget {
|
|
|
9016
9034
|
|
|
9017
9035
|
vecinput.value = vecinput.iValue = value[ i ];
|
|
9018
9036
|
|
|
9019
|
-
|
|
9020
|
-
dragIcon.className = "fa-solid fa-arrows-up-down drag-icon hidden";
|
|
9037
|
+
const dragIcon = LX.makeIcon( "MoveVertical", { iconClass: "drag-icon hidden-opacity", svgClass: "sm" } );
|
|
9021
9038
|
box.appendChild( dragIcon );
|
|
9022
9039
|
|
|
9023
9040
|
if( options.disabled )
|
|
@@ -9034,7 +9051,7 @@ class Vector extends Widget {
|
|
|
9034
9051
|
if( e.shiftKey ) mult = 10;
|
|
9035
9052
|
else if( e.altKey ) mult = 0.1;
|
|
9036
9053
|
|
|
9037
|
-
if(
|
|
9054
|
+
if( lockerButton.locked )
|
|
9038
9055
|
{
|
|
9039
9056
|
for( let v of that.querySelectorAll(".vecinput") )
|
|
9040
9057
|
{
|
|
@@ -9059,7 +9076,7 @@ class Vector extends Widget {
|
|
|
9059
9076
|
let val = clamp( e.target.value, +vecinput.min, +vecinput.max );
|
|
9060
9077
|
val = round( val, options.precision );
|
|
9061
9078
|
|
|
9062
|
-
if(
|
|
9079
|
+
if( lockerButton.locked )
|
|
9063
9080
|
{
|
|
9064
9081
|
for( let v of vectorInputs )
|
|
9065
9082
|
{
|
|
@@ -9089,7 +9106,7 @@ class Vector extends Widget {
|
|
|
9089
9106
|
doc.addEventListener( 'mousemove', innerMouseMove );
|
|
9090
9107
|
doc.addEventListener( 'mouseup', innerMouseUp );
|
|
9091
9108
|
document.body.classList.add( 'noevents' );
|
|
9092
|
-
dragIcon.classList.remove( 'hidden' );
|
|
9109
|
+
dragIcon.classList.remove( 'hidden-opacity' );
|
|
9093
9110
|
e.stopImmediatePropagation();
|
|
9094
9111
|
e.stopPropagation();
|
|
9095
9112
|
|
|
@@ -9114,9 +9131,9 @@ class Vector extends Widget {
|
|
|
9114
9131
|
if( e.shiftKey ) mult = 10;
|
|
9115
9132
|
else if( e.altKey ) mult = 0.1;
|
|
9116
9133
|
|
|
9117
|
-
if(
|
|
9134
|
+
if( lockerButton.locked )
|
|
9118
9135
|
{
|
|
9119
|
-
for( let v of
|
|
9136
|
+
for( let v of that.root.querySelectorAll( ".vecinput" ) )
|
|
9120
9137
|
{
|
|
9121
9138
|
v.value = round( +v.valueAsNumber + mult * dt, options.precision );
|
|
9122
9139
|
Widget._dispatchEvent( v, "change" );
|
|
@@ -9139,7 +9156,7 @@ class Vector extends Widget {
|
|
|
9139
9156
|
doc.removeEventListener( 'mousemove', innerMouseMove );
|
|
9140
9157
|
doc.removeEventListener( 'mouseup', innerMouseUp );
|
|
9141
9158
|
document.body.classList.remove( 'noevents' );
|
|
9142
|
-
dragIcon.classList.add('hidden');
|
|
9159
|
+
dragIcon.classList.add('hidden-opacity');
|
|
9143
9160
|
|
|
9144
9161
|
if( document.pointerLockElement )
|
|
9145
9162
|
{
|
|
@@ -9153,8 +9170,6 @@ class Vector extends Widget {
|
|
|
9153
9170
|
}
|
|
9154
9171
|
|
|
9155
9172
|
vecinput.addEventListener( "mousedown", innerMouseDown );
|
|
9156
|
-
|
|
9157
|
-
box.appendChild( vecinput );
|
|
9158
9173
|
container.appendChild( box );
|
|
9159
9174
|
}
|
|
9160
9175
|
|
|
@@ -9173,23 +9188,10 @@ class Vector extends Widget {
|
|
|
9173
9188
|
};
|
|
9174
9189
|
}
|
|
9175
9190
|
|
|
9176
|
-
|
|
9177
|
-
|
|
9178
|
-
|
|
9179
|
-
container.appendChild(
|
|
9180
|
-
locker.addEventListener( "click", function( e ) {
|
|
9181
|
-
this.locked = !this.locked;
|
|
9182
|
-
if( this.locked )
|
|
9183
|
-
{
|
|
9184
|
-
this.classList.add( "fa-lock" );
|
|
9185
|
-
this.classList.remove( "fa-lock-open" );
|
|
9186
|
-
}
|
|
9187
|
-
else
|
|
9188
|
-
{
|
|
9189
|
-
this.classList.add( "fa-lock-open" );
|
|
9190
|
-
this.classList.remove( "fa-lock" );
|
|
9191
|
-
}
|
|
9192
|
-
}, false );
|
|
9191
|
+
const lockerButton = new Button( null, "", (swapValue) => {
|
|
9192
|
+
lockerButton.locked = swapValue;
|
|
9193
|
+
}, { title: "Lock", icon: "LockOpen", swap: "Lock", buttonClass: "bg-none p-0" } );
|
|
9194
|
+
container.appendChild( lockerButton.root );
|
|
9193
9195
|
|
|
9194
9196
|
doAsync( this.onResize.bind( this ) );
|
|
9195
9197
|
}
|
|
@@ -9247,22 +9249,21 @@ class SizeInput extends Widget {
|
|
|
9247
9249
|
callback( value );
|
|
9248
9250
|
}
|
|
9249
9251
|
|
|
9250
|
-
}, { min: 0, disabled: options.disabled, precision: options.precision } );
|
|
9252
|
+
}, { min: 0, disabled: options.disabled, precision: options.precision, className: "flex-fill" } );
|
|
9251
9253
|
|
|
9252
9254
|
this.root.appendChild( this.root.dimensions[ i ].root );
|
|
9253
9255
|
|
|
9254
9256
|
if( ( i + 1 ) != value.length )
|
|
9255
9257
|
{
|
|
9256
|
-
|
|
9257
|
-
|
|
9258
|
-
this.root.appendChild( cross );
|
|
9258
|
+
const xIcon = LX.makeIcon( "X", { svgClass: "fg-accent font-bold" } );
|
|
9259
|
+
this.root.appendChild( xIcon );
|
|
9259
9260
|
}
|
|
9260
9261
|
}
|
|
9261
9262
|
|
|
9262
9263
|
if( options.units )
|
|
9263
9264
|
{
|
|
9264
9265
|
let unitSpan = document.createElement( 'span' );
|
|
9265
|
-
unitSpan.className = "
|
|
9266
|
+
unitSpan.className = "select-none fg-tertiary font-medium";
|
|
9266
9267
|
unitSpan.innerText = options.units;
|
|
9267
9268
|
this.root.appendChild( unitSpan );
|
|
9268
9269
|
}
|
|
@@ -9270,27 +9271,16 @@ class SizeInput extends Widget {
|
|
|
9270
9271
|
// Lock aspect ratio
|
|
9271
9272
|
if( this.root.aspectRatio )
|
|
9272
9273
|
{
|
|
9273
|
-
|
|
9274
|
-
|
|
9275
|
-
|
|
9276
|
-
this.root.appendChild( locker );
|
|
9277
|
-
locker.addEventListener( "click", e => {
|
|
9278
|
-
this.root.locked = !this.root.locked;
|
|
9279
|
-
if( this.root.locked )
|
|
9274
|
+
const lockerButton = new Button( null, "", (swapValue) => {
|
|
9275
|
+
this.root.locked = swapValue;
|
|
9276
|
+
if( swapValue )
|
|
9280
9277
|
{
|
|
9281
|
-
locker.classList.add( "fa-lock" );
|
|
9282
|
-
locker.classList.remove( "fa-lock-open" );
|
|
9283
|
-
|
|
9284
9278
|
// Recompute ratio
|
|
9285
9279
|
const value = this.value();
|
|
9286
9280
|
this.root.aspectRatio = value[ 0 ] / value[ 1 ];
|
|
9287
9281
|
}
|
|
9288
|
-
|
|
9289
|
-
|
|
9290
|
-
locker.classList.add( "fa-lock-open" );
|
|
9291
|
-
locker.classList.remove( "fa-lock" );
|
|
9292
|
-
}
|
|
9293
|
-
}, false );
|
|
9282
|
+
}, { title: "Lock Aspect Ratio", icon: "LockOpen", swap: "Lock", buttonClass: "bg-none p-0" } );
|
|
9283
|
+
this.root.appendChild( lockerButton.root );
|
|
9294
9284
|
}
|
|
9295
9285
|
}
|
|
9296
9286
|
}
|
|
@@ -9652,7 +9642,7 @@ class Progress extends Widget {
|
|
|
9652
9642
|
container.appendChild( span );
|
|
9653
9643
|
}
|
|
9654
9644
|
|
|
9655
|
-
if( options.editable )
|
|
9645
|
+
if( options.editable ?? false )
|
|
9656
9646
|
{
|
|
9657
9647
|
progress.classList.add( "editable" );
|
|
9658
9648
|
|
|
@@ -9785,7 +9775,7 @@ class FileInput extends Widget {
|
|
|
9785
9775
|
p.addButton( null, "Reload", v => { input.dispatchEvent( new Event( 'change' ) ) } );
|
|
9786
9776
|
}, { onclose: ( root ) => { root.remove(); settingsDialog = null; } } );
|
|
9787
9777
|
|
|
9788
|
-
}, { skipInlineCount: true, title: "Settings", disabled: options.disabled, icon: "
|
|
9778
|
+
}, { skipInlineCount: true, title: "Settings", disabled: options.disabled, icon: "Settings" });
|
|
9789
9779
|
|
|
9790
9780
|
this.root.appendChild( settingButton.root );
|
|
9791
9781
|
}
|
|
@@ -9832,10 +9822,8 @@ class Tree extends Widget {
|
|
|
9832
9822
|
{
|
|
9833
9823
|
for( let data of options.icons )
|
|
9834
9824
|
{
|
|
9835
|
-
|
|
9836
|
-
iconEl.
|
|
9837
|
-
iconEl.className = "lexicon " + data.icon;
|
|
9838
|
-
iconEl.addEventListener("click", data.callback);
|
|
9825
|
+
const iconEl = LX.makeIcon( data.icon, { title: data.name } );
|
|
9826
|
+
iconEl.addEventListener( "click", data.callback );
|
|
9839
9827
|
toolsDiv.appendChild( iconEl );
|
|
9840
9828
|
}
|
|
9841
9829
|
}
|
|
@@ -9847,16 +9835,15 @@ class Tree extends Widget {
|
|
|
9847
9835
|
let nodeFilterInput = null;
|
|
9848
9836
|
if( options.filter )
|
|
9849
9837
|
{
|
|
9850
|
-
nodeFilterInput = document.createElement(
|
|
9851
|
-
nodeFilterInput.className = "
|
|
9838
|
+
nodeFilterInput = document.createElement( "input" );
|
|
9839
|
+
nodeFilterInput.className = "lexnodetreefilter";
|
|
9852
9840
|
nodeFilterInput.setAttribute("placeholder", "Filter..");
|
|
9853
9841
|
nodeFilterInput.style.width = "100%";
|
|
9854
9842
|
nodeFilterInput.addEventListener('input', () => {
|
|
9855
9843
|
this.innerTree.refresh();
|
|
9856
9844
|
});
|
|
9857
9845
|
|
|
9858
|
-
let searchIcon =
|
|
9859
|
-
searchIcon.className = "lexicon fa-solid fa-magnifying-glass";
|
|
9846
|
+
let searchIcon = LX.makeIcon( "Search" );
|
|
9860
9847
|
toolsDiv.appendChild( nodeFilterInput );
|
|
9861
9848
|
toolsDiv.appendChild( searchIcon );
|
|
9862
9849
|
}
|
|
@@ -9921,8 +9908,8 @@ class TabSections extends Widget {
|
|
|
9921
9908
|
const isSelected = ( i == 0 );
|
|
9922
9909
|
let tabEl = document.createElement( "div" );
|
|
9923
9910
|
tabEl.className = "lextab " + (i == tabs.length - 1 ? "last" : "") + ( isSelected ? "selected" : "" );
|
|
9924
|
-
tabEl.innerHTML = ( showNames ? tab.name : "" )
|
|
9925
|
-
tabEl.
|
|
9911
|
+
tabEl.innerHTML = ( showNames ? tab.name : "" );
|
|
9912
|
+
tabEl.appendChild( LX.makeIcon( tab.icon ?? "Hash", { title: tab.name } ) );
|
|
9926
9913
|
|
|
9927
9914
|
let infoContainer = document.createElement( "div" );
|
|
9928
9915
|
infoContainer.id = tab.name.replace( /\s/g, '' );
|
|
@@ -10004,7 +9991,7 @@ class Counter extends Widget {
|
|
|
10004
9991
|
let mult = step ?? 1;
|
|
10005
9992
|
if( e.shiftKey ) mult *= 10;
|
|
10006
9993
|
this.set( counterText.count - mult, false, e );
|
|
10007
|
-
}, { skipInlineCount: true, title: "Minus", icon: "
|
|
9994
|
+
}, { skipInlineCount: true, title: "Minus", icon: "Minus" });
|
|
10008
9995
|
|
|
10009
9996
|
container.appendChild( substrButton.root );
|
|
10010
9997
|
|
|
@@ -10030,7 +10017,7 @@ class Counter extends Widget {
|
|
|
10030
10017
|
let mult = step ?? 1;
|
|
10031
10018
|
if( e.shiftKey ) mult *= 10;
|
|
10032
10019
|
this.set( counterText.count + mult, false, e );
|
|
10033
|
-
}, { skipInlineCount: true, title: "Plus", icon: "
|
|
10020
|
+
}, { skipInlineCount: true, title: "Plus", icon: "Plus" });
|
|
10034
10021
|
container.appendChild( addButton.root );
|
|
10035
10022
|
}
|
|
10036
10023
|
}
|
|
@@ -10114,7 +10101,7 @@ class Table extends Widget {
|
|
|
10114
10101
|
|
|
10115
10102
|
if( this.customFilters )
|
|
10116
10103
|
{
|
|
10117
|
-
const icon = LX.makeIcon( "
|
|
10104
|
+
const icon = LX.makeIcon( "CirclePlus", { svgClass: "sm" } );
|
|
10118
10105
|
|
|
10119
10106
|
for( let f of this.customFilters )
|
|
10120
10107
|
{
|
|
@@ -10124,7 +10111,7 @@ class Table extends Widget {
|
|
|
10124
10111
|
const item = {
|
|
10125
10112
|
name: colName,
|
|
10126
10113
|
checked: !!this.activeCustomFilters[ colName ],
|
|
10127
|
-
callback: (key,
|
|
10114
|
+
callback: (key, v, dom) => {
|
|
10128
10115
|
if( v ) { this.activeCustomFilters[ key ] = f.name; }
|
|
10129
10116
|
else {
|
|
10130
10117
|
delete this.activeCustomFilters[ key ];
|
|
@@ -10143,19 +10130,19 @@ class Table extends Widget {
|
|
|
10143
10130
|
this.activeCustomFilters = {};
|
|
10144
10131
|
this.refresh();
|
|
10145
10132
|
this._resetCustomFiltersBtn.root.classList.add( "hidden" );
|
|
10146
|
-
}, { title: "Reset filters", icon: "
|
|
10133
|
+
}, { title: "Reset filters", icon: "X" } );
|
|
10147
10134
|
headerContainer.appendChild( this._resetCustomFiltersBtn.root );
|
|
10148
10135
|
this._resetCustomFiltersBtn.root.classList.add( "hidden" );
|
|
10149
10136
|
}
|
|
10150
10137
|
|
|
10151
10138
|
if( this.toggleColumns )
|
|
10152
10139
|
{
|
|
10153
|
-
const icon = LX.makeIcon( "
|
|
10140
|
+
const icon = LX.makeIcon( "Settings2" );
|
|
10154
10141
|
const toggleColumnsBtn = new Button( "toggleColumnsBtn", icon.innerHTML + "View", (value, e) => {
|
|
10155
10142
|
const menuOptions = data.head.map( ( colName, idx ) => {
|
|
10156
10143
|
const item = {
|
|
10157
10144
|
name: colName,
|
|
10158
|
-
icon: "
|
|
10145
|
+
icon: "Check",
|
|
10159
10146
|
callback: () => {
|
|
10160
10147
|
data.colVisibilityMap[ idx ] = !data.colVisibilityMap[ idx ];
|
|
10161
10148
|
const cells = table.querySelectorAll(`tr > *:nth-child(${idx + this.rowOffsetCount + 1})`);
|
|
@@ -10195,7 +10182,7 @@ class Table extends Widget {
|
|
|
10195
10182
|
|
|
10196
10183
|
const hrow = document.createElement( 'tr' );
|
|
10197
10184
|
|
|
10198
|
-
if( options.sortable )
|
|
10185
|
+
if( options.sortable ?? false )
|
|
10199
10186
|
{
|
|
10200
10187
|
const th = document.createElement( 'th' );
|
|
10201
10188
|
th.style.width = "0px";
|
|
@@ -10203,7 +10190,7 @@ class Table extends Widget {
|
|
|
10203
10190
|
this.rowOffsetCount++;
|
|
10204
10191
|
}
|
|
10205
10192
|
|
|
10206
|
-
if( options.selectable )
|
|
10193
|
+
if( options.selectable ?? false )
|
|
10207
10194
|
{
|
|
10208
10195
|
const th = document.createElement( 'th' );
|
|
10209
10196
|
th.style.width = "0px";
|
|
@@ -10233,7 +10220,7 @@ class Table extends Widget {
|
|
|
10233
10220
|
{
|
|
10234
10221
|
const th = document.createElement( 'th' );
|
|
10235
10222
|
th.innerHTML = `<span>${ headData }</span>`;
|
|
10236
|
-
th.querySelector( "span" ).appendChild( LX.makeIcon( "
|
|
10223
|
+
th.querySelector( "span" ).appendChild( LX.makeIcon( "MenuArrows", { svgClass: "sm" } ) );
|
|
10237
10224
|
|
|
10238
10225
|
const idx = data.head.indexOf( headData );
|
|
10239
10226
|
if( this.centered && this.centered.indexOf( idx ) > -1 )
|
|
@@ -10242,8 +10229,8 @@ class Table extends Widget {
|
|
|
10242
10229
|
}
|
|
10243
10230
|
|
|
10244
10231
|
const menuOptions = [
|
|
10245
|
-
{ name: "Asc", icon: "
|
|
10246
|
-
{ name: "Desc", icon: "
|
|
10232
|
+
{ name: "Asc", icon: "ArrowUpAZ", callback: sortFn.bind( this, idx, 1 ) },
|
|
10233
|
+
{ name: "Desc", icon: "ArrowDownAZ", callback: sortFn.bind( this, idx, -1 ) }
|
|
10247
10234
|
];
|
|
10248
10235
|
|
|
10249
10236
|
if( this.toggleColumns )
|
|
@@ -10251,7 +10238,7 @@ class Table extends Widget {
|
|
|
10251
10238
|
menuOptions.push(
|
|
10252
10239
|
null,
|
|
10253
10240
|
{
|
|
10254
|
-
name: "Hide", icon: "
|
|
10241
|
+
name: "Hide", icon: "EyeOff", callback: () => {
|
|
10255
10242
|
data.colVisibilityMap[ idx ] = false;
|
|
10256
10243
|
const cells = table.querySelectorAll(`tr > *:nth-child(${idx + this.rowOffsetCount + 1})`);
|
|
10257
10244
|
cells.forEach(cell => {
|
|
@@ -10379,11 +10366,11 @@ class Table extends Widget {
|
|
|
10379
10366
|
const rowId = LX.getSupportedDOMName( bodyData.join( '-' ) );
|
|
10380
10367
|
row.setAttribute( "rowId", rowId.substr(0, 32) );
|
|
10381
10368
|
|
|
10382
|
-
if( options.sortable )
|
|
10369
|
+
if( options.sortable ?? false )
|
|
10383
10370
|
{
|
|
10384
10371
|
const td = document.createElement( 'td' );
|
|
10385
10372
|
td.style.width = "0px";
|
|
10386
|
-
const icon = LX.makeIcon( "
|
|
10373
|
+
const icon = LX.makeIcon( "GripVertical" );
|
|
10387
10374
|
td.appendChild( icon );
|
|
10388
10375
|
|
|
10389
10376
|
icon.draggable = true;
|
|
@@ -10423,7 +10410,7 @@ class Table extends Widget {
|
|
|
10423
10410
|
row.appendChild( td );
|
|
10424
10411
|
}
|
|
10425
10412
|
|
|
10426
|
-
if( options.selectable )
|
|
10413
|
+
if( options.selectable ?? false )
|
|
10427
10414
|
{
|
|
10428
10415
|
const td = document.createElement( 'td' );
|
|
10429
10416
|
const input = document.createElement( 'input' );
|
|
@@ -10484,7 +10471,7 @@ class Table extends Widget {
|
|
|
10484
10471
|
|
|
10485
10472
|
if( action == "delete" )
|
|
10486
10473
|
{
|
|
10487
|
-
button = LX.makeIcon( "
|
|
10474
|
+
button = LX.makeIcon( "Trash3", { title: "Delete Row" } );
|
|
10488
10475
|
button.addEventListener( 'click', function() {
|
|
10489
10476
|
// Don't need to refresh table..
|
|
10490
10477
|
data.body.splice( r, 1 );
|
|
@@ -10493,7 +10480,7 @@ class Table extends Widget {
|
|
|
10493
10480
|
}
|
|
10494
10481
|
else if( action == "menu" )
|
|
10495
10482
|
{
|
|
10496
|
-
button = LX.makeIcon( "
|
|
10483
|
+
button = LX.makeIcon( "Ellipsis", { title: "Menu" } );
|
|
10497
10484
|
button.addEventListener( 'click', function( event ) {
|
|
10498
10485
|
if( !options.onMenuAction )
|
|
10499
10486
|
{
|
|
@@ -10605,7 +10592,7 @@ class DatePicker extends Widget {
|
|
|
10605
10592
|
|
|
10606
10593
|
const refresh = ( currentDate ) => {
|
|
10607
10594
|
container.innerHTML = "";
|
|
10608
|
-
const calendarIcon = LX.makeIcon( "
|
|
10595
|
+
const calendarIcon = LX.makeIcon( "Calendar" );
|
|
10609
10596
|
const calendarButton = new Button( null, currentDate ?? "Pick a date", () => {
|
|
10610
10597
|
this._popover = new Popover( calendarButton.root, [ this.calendar ] );
|
|
10611
10598
|
}, { buttonClass: `flex flex-row px-3 ${ currentDate ? "" : "fg-tertiary" } justify-between` } );
|
|
@@ -10756,13 +10743,15 @@ class Panel {
|
|
|
10756
10743
|
/**
|
|
10757
10744
|
* @method sameLine
|
|
10758
10745
|
* @param {Number} number Of widgets that will be placed in the same line
|
|
10746
|
+
* @param {String} className Extra class to customize inline widgets parent container
|
|
10759
10747
|
* @description Next N widgets will be in the same line. If no number, it will inline all until calling nextLine()
|
|
10760
10748
|
*/
|
|
10761
10749
|
|
|
10762
|
-
sameLine( number ) {
|
|
10750
|
+
sameLine( number, className ) {
|
|
10763
10751
|
|
|
10764
10752
|
this._inline_queued_container = this.queuedContainer;
|
|
10765
|
-
this._inlineWidgetsLeft = ( number
|
|
10753
|
+
this._inlineWidgetsLeft = ( number ?? Infinity );
|
|
10754
|
+
this._inlineExtraClass = className ?? null;
|
|
10766
10755
|
}
|
|
10767
10756
|
|
|
10768
10757
|
/**
|
|
@@ -10773,6 +10762,8 @@ class Panel {
|
|
|
10773
10762
|
|
|
10774
10763
|
endLine( className ) {
|
|
10775
10764
|
|
|
10765
|
+
className = className ?? this._inlineExtraClass;
|
|
10766
|
+
|
|
10776
10767
|
if( this._inlineWidgetsLeft == -1 )
|
|
10777
10768
|
{
|
|
10778
10769
|
console.warn("No pending widgets to be inlined!");
|
|
@@ -10834,6 +10825,7 @@ class Panel {
|
|
|
10834
10825
|
|
|
10835
10826
|
delete this._inlineWidgets;
|
|
10836
10827
|
delete this._inlineContainer;
|
|
10828
|
+
delete this._inlineExtraClass;
|
|
10837
10829
|
}
|
|
10838
10830
|
|
|
10839
10831
|
/**
|
|
@@ -10843,7 +10835,7 @@ class Panel {
|
|
|
10843
10835
|
* id: Id of the branch
|
|
10844
10836
|
* className: Add class to the branch
|
|
10845
10837
|
* closed: Set branch collapsed/opened [false]
|
|
10846
|
-
* icon: Set branch icon (
|
|
10838
|
+
* icon: Set branch icon (LX.ICONS)
|
|
10847
10839
|
* filter: Allow filter widgets in branch by name [false]
|
|
10848
10840
|
*/
|
|
10849
10841
|
|
|
@@ -10998,8 +10990,7 @@ class Panel {
|
|
|
10998
10990
|
input.style.width = "100%";
|
|
10999
10991
|
input.value = options.filterValue || "";
|
|
11000
10992
|
|
|
11001
|
-
let searchIcon =
|
|
11002
|
-
searchIcon.className = "fa-solid fa-magnifying-glass";
|
|
10993
|
+
let searchIcon = LX.makeIcon( "Search" );
|
|
11003
10994
|
element.appendChild( searchIcon );
|
|
11004
10995
|
element.appendChild( input );
|
|
11005
10996
|
|
|
@@ -11150,7 +11141,7 @@ class Panel {
|
|
|
11150
11141
|
* @param {Object} options:
|
|
11151
11142
|
* link: Href in case title is an hyperlink
|
|
11152
11143
|
* target: Target name of the iframe (if any)
|
|
11153
|
-
* icon:
|
|
11144
|
+
* icon: Name of the icon (if any)
|
|
11154
11145
|
* iconColor: Color of title icon (if any)
|
|
11155
11146
|
* style: CSS to override
|
|
11156
11147
|
*/
|
|
@@ -11248,7 +11239,7 @@ class Panel {
|
|
|
11248
11239
|
* @param {Object} options:
|
|
11249
11240
|
* hideName: Don't use name as label [false]
|
|
11250
11241
|
* float: Justify content (left, center, right) [center]
|
|
11251
|
-
*
|
|
11242
|
+
* selected: Selected button by default (String|Array)
|
|
11252
11243
|
* noSelection: Buttons can be clicked, but they are not selectable
|
|
11253
11244
|
* toggle: Buttons can be toggled insted of selecting only one
|
|
11254
11245
|
*/
|
|
@@ -11822,18 +11813,20 @@ class Branch {
|
|
|
11822
11813
|
this.root = root;
|
|
11823
11814
|
this.widgets = [];
|
|
11824
11815
|
|
|
11825
|
-
//
|
|
11816
|
+
// Create element
|
|
11826
11817
|
var title = document.createElement( 'div' );
|
|
11827
11818
|
title.className = "lexbranchtitle";
|
|
11828
11819
|
|
|
11829
11820
|
if( options.icon )
|
|
11830
11821
|
{
|
|
11831
|
-
|
|
11822
|
+
const branchIcon = LX.makeIcon( options.icon, { iconClass: "mr-2" } );
|
|
11823
|
+
title.appendChild( branchIcon );
|
|
11832
11824
|
}
|
|
11833
11825
|
|
|
11834
11826
|
title.innerHTML += ( name || "Branch" );
|
|
11835
11827
|
|
|
11836
|
-
|
|
11828
|
+
const collapseIcon = LX.makeIcon( "Right", { iconClass: "switch-branch-button", svgClass: "sm" } );
|
|
11829
|
+
title.appendChild( collapseIcon );
|
|
11837
11830
|
|
|
11838
11831
|
root.appendChild( title );
|
|
11839
11832
|
|
|
@@ -11878,12 +11871,8 @@ class Branch {
|
|
|
11878
11871
|
|
|
11879
11872
|
addContextMenu("Dock", e, p => {
|
|
11880
11873
|
e.preventDefault();
|
|
11881
|
-
// p.add('<i class="fa-regular fa-window-maximize">', {id: 'dock_options0'});
|
|
11882
|
-
// p.add('<i class="fa-regular fa-window-maximize fa-rotate-180">', {id: 'dock_options1'});
|
|
11883
|
-
// p.add('<i class="fa-regular fa-window-maximize fa-rotate-90">', {id: 'dock_options2'});
|
|
11884
|
-
// p.add('<i class="fa-regular fa-window-maximize fa-rotate-270">', {id: 'dock_options3'});
|
|
11885
11874
|
p.add( 'Floating', that._onMakeFloating.bind( that ) );
|
|
11886
|
-
}, { icon: "
|
|
11875
|
+
}, { icon: "WindowRestore" });
|
|
11887
11876
|
};
|
|
11888
11877
|
|
|
11889
11878
|
title.addEventListener( 'click', this.onclick );
|
|
@@ -12029,7 +12018,7 @@ class Footer {
|
|
|
12029
12018
|
* @param {Object} options:
|
|
12030
12019
|
* columns: Array with data per column { title, items: [ { title, link } ] }
|
|
12031
12020
|
* credits: html string
|
|
12032
|
-
* socials: Array with data per item { title, link,
|
|
12021
|
+
* socials: Array with data per item { title, link, icon }
|
|
12033
12022
|
* className: Extra class to customize
|
|
12034
12023
|
*/
|
|
12035
12024
|
constructor( options = {} ) {
|
|
@@ -12095,16 +12084,14 @@ class Footer {
|
|
|
12095
12084
|
if( options.socials )
|
|
12096
12085
|
{
|
|
12097
12086
|
const socials = document.createElement( "div" );
|
|
12098
|
-
socials.className = "
|
|
12087
|
+
socials.className = "socials flex flex-row gap-1 my-2 justify-end";
|
|
12099
12088
|
|
|
12100
12089
|
for( let social of options.socials )
|
|
12101
12090
|
{
|
|
12102
|
-
const
|
|
12103
|
-
|
|
12104
|
-
|
|
12105
|
-
|
|
12106
|
-
itemDom.target = "_blank";
|
|
12107
|
-
socials.appendChild( itemDom );
|
|
12091
|
+
const socialIcon = LX.makeIcon( social.icon, { title: social.title, svgClass: "xl" } );
|
|
12092
|
+
socialIcon.href = social.link;
|
|
12093
|
+
socialIcon.target = "_blank";
|
|
12094
|
+
socials.appendChild( socialIcon );
|
|
12108
12095
|
}
|
|
12109
12096
|
|
|
12110
12097
|
creditsSocials.appendChild( socials );
|
|
@@ -12212,15 +12199,15 @@ class Dialog {
|
|
|
12212
12199
|
|
|
12213
12200
|
// Right
|
|
12214
12201
|
let rpanel = _getNextPanel(LX.main_area.sections[ 1 ]);
|
|
12215
|
-
p.add('<i class="
|
|
12202
|
+
p.add('<i class="This goes to the right">', { icon: "PanelRightDashed", disabled: !rpanel, id: 'dock_options0', callback: () => {
|
|
12216
12203
|
_appendBranch(rpanel);
|
|
12217
12204
|
}});
|
|
12218
12205
|
// Left
|
|
12219
12206
|
let lpanel = _getNextPanel(LX.main_area.sections[ 0 ]);
|
|
12220
|
-
p.add('<i class="
|
|
12207
|
+
p.add('<i class="This goes to the left">', { icon: "PanelLeftDashed", disabled: !lpanel, id: 'dock_options1', callback: () => {
|
|
12221
12208
|
_appendBranch(lpanel);
|
|
12222
12209
|
}});
|
|
12223
|
-
}, { icon: "
|
|
12210
|
+
}, { icon: "WindowRestore" });
|
|
12224
12211
|
};
|
|
12225
12212
|
|
|
12226
12213
|
root.appendChild( titleDiv );
|
|
@@ -12250,9 +12237,7 @@ class Dialog {
|
|
|
12250
12237
|
}
|
|
12251
12238
|
};
|
|
12252
12239
|
|
|
12253
|
-
|
|
12254
|
-
closeButton.className = "lexdialogcloser fa-solid fa-xmark";
|
|
12255
|
-
closeButton.title = "Close";
|
|
12240
|
+
const closeButton = LX.makeIcon( "X", { title: "Close", iconClass: "lexdialogcloser" } );
|
|
12256
12241
|
closeButton.addEventListener( "click", this.close );
|
|
12257
12242
|
|
|
12258
12243
|
if( title )
|
|
@@ -12579,7 +12564,7 @@ class ContextMenu {
|
|
|
12579
12564
|
const icon = o[ 'icon' ];
|
|
12580
12565
|
if( icon )
|
|
12581
12566
|
{
|
|
12582
|
-
entry.
|
|
12567
|
+
entry.appendChild( LX.makeIcon( icon, { svgClass: "sm" } ) );
|
|
12583
12568
|
}
|
|
12584
12569
|
const disabled = o['disabled'];
|
|
12585
12570
|
entry.innerHTML += "<div class='lexentryname" + (disabled ? " disabled" : "") + "'>" + k + "</div>";
|
|
@@ -12601,7 +12586,10 @@ class ContextMenu {
|
|
|
12601
12586
|
e.stopPropagation();
|
|
12602
12587
|
e.stopImmediatePropagation();
|
|
12603
12588
|
|
|
12604
|
-
if(disabled)
|
|
12589
|
+
if( disabled )
|
|
12590
|
+
{
|
|
12591
|
+
return;
|
|
12592
|
+
}
|
|
12605
12593
|
|
|
12606
12594
|
const f = o[ 'callback' ];
|
|
12607
12595
|
if( f )
|
|
@@ -12611,17 +12599,20 @@ class ContextMenu {
|
|
|
12611
12599
|
}
|
|
12612
12600
|
|
|
12613
12601
|
if( !hasSubmenu )
|
|
12614
|
-
|
|
12602
|
+
{
|
|
12603
|
+
return;
|
|
12604
|
+
}
|
|
12615
12605
|
|
|
12616
12606
|
if( LX.OPEN_CONTEXTMENU_ENTRY == 'click' )
|
|
12617
12607
|
this._createSubmenu( o, k, entry, ++d );
|
|
12618
12608
|
});
|
|
12619
12609
|
|
|
12620
12610
|
if( !hasSubmenu )
|
|
12611
|
+
{
|
|
12621
12612
|
return;
|
|
12613
|
+
}
|
|
12622
12614
|
|
|
12623
|
-
|
|
12624
|
-
submenuIcon.className = "fa-solid fa-bars-staggered fa-xs";
|
|
12615
|
+
const submenuIcon = LX.makeIcon( "Menu", { svgClass: "sm" } )
|
|
12625
12616
|
entry.appendChild( submenuIcon );
|
|
12626
12617
|
|
|
12627
12618
|
if( LX.OPEN_CONTEXTMENU_ENTRY == 'mouseover' )
|
|
@@ -12683,6 +12674,7 @@ class ContextMenu {
|
|
|
12683
12674
|
if( !nextToken )
|
|
12684
12675
|
{
|
|
12685
12676
|
item[ 'id' ] = options.id;
|
|
12677
|
+
item[ 'icon' ] = options.icon;
|
|
12686
12678
|
item[ 'callback' ] = options.callback;
|
|
12687
12679
|
item[ 'disabled' ] = options.disabled ?? false;
|
|
12688
12680
|
}
|
|
@@ -13530,7 +13522,7 @@ class AssetView {
|
|
|
13530
13522
|
|
|
13531
13523
|
if( !this.skipBrowser )
|
|
13532
13524
|
{
|
|
13533
|
-
[left, right] = area.split({ type: "horizontal", sizes: ["15%", "85%"]});
|
|
13525
|
+
[ left, right ] = area.split({ type: "horizontal", sizes: ["15%", "85%"]});
|
|
13534
13526
|
contentArea = right;
|
|
13535
13527
|
|
|
13536
13528
|
left.setLimitBox( 210, 0 );
|
|
@@ -13740,7 +13732,7 @@ class AssetView {
|
|
|
13740
13732
|
}
|
|
13741
13733
|
else
|
|
13742
13734
|
{
|
|
13743
|
-
this.rightPanel = area.addPanel({ className: 'lexassetcontentpanel' });
|
|
13735
|
+
this.rightPanel = area.addPanel({ className: 'lexassetcontentpanel flex flex-col overflow-hidden' });
|
|
13744
13736
|
}
|
|
13745
13737
|
|
|
13746
13738
|
const on_sort = ( value, event ) => {
|
|
@@ -13788,11 +13780,11 @@ class AssetView {
|
|
|
13788
13780
|
this.rightPanel.sameLine();
|
|
13789
13781
|
this.rightPanel.addSelect( "Filter", this.allowedTypes, this.allowedTypes[ 0 ], v => this._refreshContent.call(this, null, v), { width: "30%", minWidth: "128px" } );
|
|
13790
13782
|
this.rightPanel.addText( null, this.searchValue ?? "", v => this._refreshContent.call(this, v, null), { placeholder: "Search assets.." } );
|
|
13791
|
-
this.rightPanel.addButton( null, "
|
|
13792
|
-
this.rightPanel.addButton( null, "
|
|
13783
|
+
this.rightPanel.addButton( null, "", on_sort.bind(this), { title: "Sort", icon: "ArrowUpNarrowWide" } );
|
|
13784
|
+
this.rightPanel.addButton( null, "", on_change_view.bind(this), { title: "View", icon: "GripHorizontal" } );
|
|
13793
13785
|
// Content Pages
|
|
13794
|
-
this.rightPanel.addButton( null, "
|
|
13795
|
-
this.rightPanel.addButton( null, "
|
|
13786
|
+
this.rightPanel.addButton( null, "", on_change_page.bind(this, -1), { title: "Previous Page", icon: "ChevronsLeft", className: "ml-auto" } );
|
|
13787
|
+
this.rightPanel.addButton( null, "", on_change_page.bind(this, 1), { title: "Next Page", icon: "ChevronsRight" } );
|
|
13796
13788
|
const textString = "Page " + this.contentPage + " / " + ((((this.currentData.length - 1) / AssetView.MAX_PAGE_ELEMENTS )|0) + 1);
|
|
13797
13789
|
this.rightPanel.addText(null, textString, null, {
|
|
13798
13790
|
inputClass: "nobg", disabled: true, signal: "@on_page_change", maxWidth: "16ch" }
|
|
@@ -13805,7 +13797,7 @@ class AssetView {
|
|
|
13805
13797
|
this.rightPanel.addComboButtons( null, [
|
|
13806
13798
|
{
|
|
13807
13799
|
value: "Left",
|
|
13808
|
-
icon: "
|
|
13800
|
+
icon: "ArrowLeft",
|
|
13809
13801
|
callback: domEl => {
|
|
13810
13802
|
if(!this.prevData.length) return;
|
|
13811
13803
|
this.nextData.push( this.currentData );
|
|
@@ -13816,7 +13808,7 @@ class AssetView {
|
|
|
13816
13808
|
},
|
|
13817
13809
|
{
|
|
13818
13810
|
value: "Right",
|
|
13819
|
-
icon: "
|
|
13811
|
+
icon: "ArrowRight",
|
|
13820
13812
|
callback: domEl => {
|
|
13821
13813
|
if(!this.nextData.length) return;
|
|
13822
13814
|
this.prevData.push( this.currentData );
|
|
@@ -13827,7 +13819,7 @@ class AssetView {
|
|
|
13827
13819
|
},
|
|
13828
13820
|
{
|
|
13829
13821
|
value: "Refresh",
|
|
13830
|
-
icon: "
|
|
13822
|
+
icon: "Refresh",
|
|
13831
13823
|
callback: domEl => { this._refreshContent(); }
|
|
13832
13824
|
}
|
|
13833
13825
|
], { noSelection: true } );
|
|
@@ -14488,6 +14480,17 @@ Object.assign(LX, {
|
|
|
14488
14480
|
}
|
|
14489
14481
|
},
|
|
14490
14482
|
|
|
14483
|
+
loadScriptSync( url ) {
|
|
14484
|
+
return new Promise((resolve, reject) => {
|
|
14485
|
+
const script = document.createElement( "script" );
|
|
14486
|
+
script.src = url;
|
|
14487
|
+
script.async = false;
|
|
14488
|
+
script.onload = () => resolve();
|
|
14489
|
+
script.onerror = () => reject(new Error(`Failed to load ${url}`));
|
|
14490
|
+
document.head.appendChild( script );
|
|
14491
|
+
});
|
|
14492
|
+
},
|
|
14493
|
+
|
|
14491
14494
|
downloadURL( url, filename ) {
|
|
14492
14495
|
|
|
14493
14496
|
const fr = new FileReader();
|
|
@@ -14674,223 +14677,156 @@ LX.UTILS = {
|
|
|
14674
14677
|
};
|
|
14675
14678
|
|
|
14676
14679
|
LX.ICONS = {
|
|
14677
|
-
|
|
14678
|
-
"
|
|
14679
|
-
"
|
|
14680
|
-
"
|
|
14681
|
-
"
|
|
14682
|
-
"
|
|
14683
|
-
"
|
|
14684
|
-
"
|
|
14685
|
-
"
|
|
14686
|
-
"
|
|
14687
|
-
"
|
|
14688
|
-
"
|
|
14689
|
-
"
|
|
14690
|
-
"
|
|
14691
|
-
"
|
|
14692
|
-
"
|
|
14693
|
-
"
|
|
14694
|
-
"
|
|
14695
|
-
"
|
|
14696
|
-
"
|
|
14697
|
-
"
|
|
14698
|
-
"
|
|
14699
|
-
"
|
|
14700
|
-
"
|
|
14701
|
-
"
|
|
14702
|
-
"
|
|
14703
|
-
"
|
|
14704
|
-
"
|
|
14705
|
-
"
|
|
14706
|
-
"
|
|
14707
|
-
"
|
|
14708
|
-
"
|
|
14709
|
-
"
|
|
14710
|
-
"
|
|
14711
|
-
"
|
|
14712
|
-
"
|
|
14713
|
-
"
|
|
14714
|
-
"
|
|
14715
|
-
"
|
|
14716
|
-
"
|
|
14717
|
-
"
|
|
14718
|
-
"
|
|
14719
|
-
"
|
|
14720
|
-
"
|
|
14721
|
-
"
|
|
14722
|
-
"
|
|
14723
|
-
"
|
|
14724
|
-
"
|
|
14725
|
-
"
|
|
14726
|
-
"
|
|
14727
|
-
"
|
|
14728
|
-
"
|
|
14729
|
-
"
|
|
14730
|
-
"
|
|
14731
|
-
"
|
|
14732
|
-
"
|
|
14733
|
-
"
|
|
14734
|
-
"
|
|
14735
|
-
"
|
|
14736
|
-
"
|
|
14737
|
-
"
|
|
14738
|
-
"
|
|
14739
|
-
"
|
|
14740
|
-
|
|
14741
|
-
"
|
|
14742
|
-
"
|
|
14743
|
-
"
|
|
14744
|
-
"
|
|
14745
|
-
"
|
|
14746
|
-
"
|
|
14747
|
-
"
|
|
14748
|
-
"
|
|
14749
|
-
"
|
|
14750
|
-
|
|
14751
|
-
"
|
|
14752
|
-
"
|
|
14753
|
-
"
|
|
14754
|
-
"
|
|
14755
|
-
"
|
|
14756
|
-
"
|
|
14757
|
-
"
|
|
14758
|
-
"
|
|
14759
|
-
"
|
|
14760
|
-
"
|
|
14761
|
-
"
|
|
14762
|
-
"
|
|
14763
|
-
"
|
|
14764
|
-
"
|
|
14765
|
-
"
|
|
14766
|
-
"
|
|
14767
|
-
"
|
|
14768
|
-
"
|
|
14769
|
-
"
|
|
14770
|
-
"
|
|
14771
|
-
"
|
|
14772
|
-
"
|
|
14773
|
-
"
|
|
14774
|
-
"
|
|
14775
|
-
"
|
|
14776
|
-
"
|
|
14777
|
-
"
|
|
14778
|
-
"
|
|
14779
|
-
"
|
|
14780
|
-
"
|
|
14781
|
-
"
|
|
14782
|
-
"
|
|
14783
|
-
"
|
|
14784
|
-
"
|
|
14785
|
-
"
|
|
14786
|
-
"
|
|
14787
|
-
"
|
|
14788
|
-
"
|
|
14789
|
-
"
|
|
14790
|
-
"
|
|
14791
|
-
"
|
|
14792
|
-
"
|
|
14793
|
-
"
|
|
14794
|
-
"
|
|
14795
|
-
"
|
|
14796
|
-
"
|
|
14797
|
-
"
|
|
14798
|
-
"
|
|
14799
|
-
"
|
|
14800
|
-
"
|
|
14801
|
-
"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"],
|
|
14802
|
-
"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"],
|
|
14803
|
-
"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"],
|
|
14804
|
-
"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"],
|
|
14805
|
-
"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"],
|
|
14806
|
-
"equals": [448, 512, [], "solid", "M48 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l352 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L48 128zm0 192c-17.7 0-32 14.3-32 32s14.3 32 32 32l352 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L48 320z"],
|
|
14807
|
-
"circle-nodes": [512, 512, [], "solid", "M418.4 157.9c35.3-8.3 61.6-40 61.6-77.9c0-44.2-35.8-80-80-80c-43.4 0-78.7 34.5-80 77.5L136.2 151.1C121.7 136.8 101.9 128 80 128c-44.2 0-80 35.8-80 80s35.8 80 80 80c12.2 0 23.8-2.7 34.1-7.6L259.7 407.8c-2.4 7.6-3.7 15.8-3.7 24.2c0 44.2 35.8 80 80 80s80-35.8 80-80c0-27.7-14-52.1-35.4-66.4l37.8-207.7zM156.3 232.2c2.2-6.9 3.5-14.2 3.7-21.7l183.8-73.5c3.6 3.5 7.4 6.7 11.6 9.5L317.6 354.1c-5.5 1.3-10.8 3.1-15.8 5.5L156.3 232.2z"],
|
|
14808
|
-
"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"],
|
|
14809
|
-
"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"],
|
|
14810
|
-
"circle-play": [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 256zM188.3 147.1c7.6-4.2 16.8-4.1 24.3 .5l144 88c7.1 4.4 11.5 12.1 11.5 20.5s-4.4 16.1-11.5 20.5l-144 88c-7.4 4.5-16.7 4.7-24.3 .5s-12.3-12.2-12.3-20.9l0-176c0-8.7 4.7-16.7 12.3-20.9z"],
|
|
14811
|
-
"circle-check": [512, 512, [], "regular", "M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM369 209c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-111 111-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L369 209z"],
|
|
14812
|
-
"circle-stop": [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 256zm192-96l128 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32z"],
|
|
14813
|
-
"circle-pause": [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 256zm224-72l0 144c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-144c0-13.3 10.7-24 24-24s24 10.7 24 24zm112 0l0 144c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-144c0-13.3 10.7-24 24-24s24 10.7 24 24z"],
|
|
14814
|
-
"circle-xmark": [512, 512, [], "regular", "M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM175 175c-9.4 9.4-9.4 24.6 0 33.9l47 47-47 47c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l47-47 47 47c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-47-47 47-47c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-47 47-47-47c-9.4-9.4-24.6-9.4-33.9 0z"],
|
|
14815
|
-
"circle-user": [512, 512, [], "regular", "M406.5 399.6C387.4 352.9 341.5 320 288 320l-64 0c-53.5 0-99.4 32.9-118.5 79.6C69.9 362.2 48 311.7 48 256C48 141.1 141.1 48 256 48s208 93.1 208 208c0 55.7-21.9 106.2-57.5 143.6zm-40.1 32.7C334.4 452.4 296.6 464 256 464s-78.4-11.6-110.5-31.7c7.3-36.7 39.7-64.3 78.5-64.3l64 0c38.8 0 71.2 27.6 78.5 64.3zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-272a40 40 0 1 1 0-80 40 40 0 1 1 0 80zm-88-40a88 88 0 1 0 176 0 88 88 0 1 0 -176 0z"],
|
|
14816
|
-
"circle-dot": [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 256zm256-96a96 96 0 1 1 0 192 96 96 0 1 1 0-192z"],
|
|
14817
|
-
"circle-right": [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 256zM294.6 151.2c-4.2-4.6-10.1-7.2-16.4-7.2C266 144 256 154 256 166.3l0 41.7-96 0c-17.7 0-32 14.3-32 32l0 32c0 17.7 14.3 32 32 32l96 0 0 41.7c0 12.3 10 22.3 22.3 22.3c6.2 0 12.1-2.6 16.4-7.2l84-91c3.5-3.8 5.4-8.7 5.4-13.9s-1.9-10.1-5.4-13.9l-84-91z"],
|
|
14818
|
-
"circle-up": [512, 512, [], "regular", "M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM151.2 217.4c-4.6 4.2-7.2 10.1-7.2 16.4c0 12.3 10 22.3 22.3 22.3l41.7 0 0 96c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-96 41.7 0c12.3 0 22.3-10 22.3-22.3c0-6.2-2.6-12.1-7.2-16.4l-91-84c-3.8-3.5-8.7-5.4-13.9-5.4s-10.1 1.9-13.9 5.4l-91 84z"],
|
|
14819
|
-
"circle-question": [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 256zm169.8-90.7c7.9-22.3 29.1-37.3 52.8-37.3l58.3 0c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L280 264.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24l0-13.5c0-8.6 4.6-16.5 12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1l-58.3 0c-3.4 0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"],
|
|
14820
|
-
"circle-left": [512, 512, [], "regular", "M48 256a208 208 0 1 1 416 0A208 208 0 1 1 48 256zm464 0A256 256 0 1 0 0 256a256 256 0 1 0 512 0zM217.4 376.9c4.2 4.5 10.1 7.1 16.3 7.1c12.3 0 22.3-10 22.3-22.3l0-57.7 96 0c17.7 0 32-14.3 32-32l0-32c0-17.7-14.3-32-32-32l-96 0 0-57.7c0-12.3-10-22.3-22.3-22.3c-6.2 0-12.1 2.6-16.3 7.1L117.5 242.2c-3.5 3.8-5.5 8.7-5.5 13.8s2 10.1 5.5 13.8l99.9 107.1z"],
|
|
14821
|
-
"circle-down": [512, 512, [], "regular", "M256 464a208 208 0 1 1 0-416 208 208 0 1 1 0 416zM256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM376.9 294.6c4.5-4.2 7.1-10.1 7.1-16.3c0-12.3-10-22.3-22.3-22.3L304 256l0-96c0-17.7-14.3-32-32-32l-32 0c-17.7 0-32 14.3-32 32l0 96-57.7 0C138 256 128 266 128 278.3c0 6.2 2.6 12.1 7.1 16.3l107.1 99.9c3.8 3.5 8.7 5.5 13.8 5.5s10.1-2 13.8-5.5l107.1-99.9z"],
|
|
14822
|
-
"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"],
|
|
14823
|
-
"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"],
|
|
14824
|
-
"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"],
|
|
14825
|
-
"hourglass": [384, 512, [], "regular", "M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48l8 0 0 19c0 40.3 16 79 44.5 107.5L158.1 256 76.5 337.5C48 366 32 404.7 32 445l0 19-8 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l336 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0-19c0-40.3-16-79-44.5-107.5L225.9 256l81.5-81.5C336 146 352 107.3 352 67l0-19 8 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 0zM192 289.9l81.5 81.5C293 391 304 417.4 304 445l0 19L80 464l0-19c0-27.6 11-54 30.5-73.5L192 289.9zm0-67.9l-81.5-81.5C91 121 80 94.6 80 67l0-19 224 0 0 19c0 27.6-11 54-30.5 73.5L192 222.1z"],
|
|
14826
|
-
"hourglass-half": [384, 512, [], "regular", "M0 24C0 10.7 10.7 0 24 0L360 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 19c0 40.3-16 79-44.5 107.5L225.9 256l81.5 81.5C336 366 352 404.7 352 445l0 19 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-19c0-40.3 16-79 44.5-107.5L158.1 256 76.5 174.5C48 146 32 107.3 32 67l0-19-8 0C10.7 48 0 37.3 0 24zM110.5 371.5c-3.9 3.9-7.5 8.1-10.7 12.5l184.4 0c-3.2-4.4-6.8-8.6-10.7-12.5L192 289.9l-81.5 81.5zM284.2 128C297 110.4 304 89 304 67l0-19L80 48l0 19c0 22.1 7 43.4 19.8 61l184.4 0z"],
|
|
14827
|
-
"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"],
|
|
14828
|
-
"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"],
|
|
14829
|
-
"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"],
|
|
14830
|
-
"frame": [24, 24, [], "solid", "M2 6h20M2 18h20M6 2v20M18 2v20", null, "fill=none stroke-width=2 stroke-linejoin=round stroke-linecap=round"],
|
|
14831
|
-
"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"],
|
|
14832
|
-
"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"],
|
|
14833
|
-
"newspaper": [512, 512, [], "regular", "M168 80c-13.3 0-24 10.7-24 24l0 304c0 8.4-1.4 16.5-4.1 24L440 432c13.3 0 24-10.7 24-24l0-304c0-13.3-10.7-24-24-24L168 80zM72 480c-39.8 0-72-32.2-72-72L0 112C0 98.7 10.7 88 24 88s24 10.7 24 24l0 296c0 13.3 10.7 24 24 24s24-10.7 24-24l0-304c0-39.8 32.2-72 72-72l272 0c39.8 0 72 32.2 72 72l0 304c0 39.8-32.2 72-72 72L72 480zM176 136c0-13.3 10.7-24 24-24l96 0c13.3 0 24 10.7 24 24l0 80c0 13.3-10.7 24-24 24l-96 0c-13.3 0-24-10.7-24-24l0-80zm200-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 80l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM200 272l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-208 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 80l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-208 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z"],
|
|
14834
|
-
"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"],
|
|
14835
|
-
"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"],
|
|
14836
|
-
"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"],
|
|
14837
|
-
"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"],
|
|
14838
|
-
"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"],
|
|
14839
|
-
"trash-can": [448, 512, [], "regular", "M170.5 51.6L151.5 80l145 0-19-28.4c-1.5-2.2-4-3.6-6.7-3.6l-93.7 0c-2.7 0-5.2 1.3-6.7 3.6zm147-26.6L354.2 80 368 80l48 0 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 304c0 44.2-35.8 80-80 80l-224 0c-44.2 0-80-35.8-80-80l0-304-8 0c-13.3 0-24-10.7-24-24S10.7 80 24 80l8 0 48 0 13.8 0 36.7-55.1C140.9 9.4 158.4 0 177.1 0l93.7 0c18.7 0 36.2 9.4 46.6 24.9zM80 128l0 304c0 17.7 14.3 32 32 32l224 0c17.7 0 32-14.3 32-32l0-304L80 128zm80 64l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208c0-8.8 7.2-16 16-16s16 7.2 16 16zm80 0l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208c0-8.8 7.2-16 16-16s16 7.2 16 16zm80 0l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208c0-8.8 7.2-16 16-16s16 7.2 16 16z"],
|
|
14840
|
-
"user": [448, 512, [], "regular", "M304 128a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM49.3 464l349.5 0c-8.9-63.3-63.3-112-129-112l-91.4 0c-65.7 0-120.1 48.7-129 112zM0 482.3C0 383.8 79.8 304 178.3 304l91.4 0C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3z"],
|
|
14841
|
-
"user-check": [640, 512, [], "solid", "M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304l91.4 0C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3zM625 177L497 305c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L591 143c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"],
|
|
14842
|
-
"user-xmark": [640, 512, [], "solid", "M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304l91.4 0C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3zM471 143c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z"],
|
|
14843
|
-
"user-large": [512, 512, [], "solid", "M256 288A144 144 0 1 0 256 0a144 144 0 1 0 0 288zm-94.7 32C72.2 320 0 392.2 0 481.3c0 17 13.8 30.7 30.7 30.7l450.6 0c17 0 30.7-13.8 30.7-30.7C512 392.2 439.8 320 350.7 320l-189.4 0z"],
|
|
14844
|
-
"user-large-slash": [640, 512, [], "solid", "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.7L381.9 274c48.5-23.2 82.1-72.7 82.1-130C464 64.5 399.5 0 320 0C250.4 0 192.4 49.3 178.9 114.9L38.8 5.1zM545.5 512L528 512 284.3 320l-59 0C136.2 320 64 392.2 64 481.3c0 17 13.8 30.7 30.7 30.7l450.6 0 .3 0z"],
|
|
14845
|
-
"child-reaching": [384, 512, [], "solid", "M256 64A64 64 0 1 0 128 64a64 64 0 1 0 128 0zM152.9 169.3c-23.7-8.4-44.5-24.3-58.8-45.8L74.6 94.2C64.8 79.5 45 75.6 30.2 85.4s-18.7 29.7-8.9 44.4L40.9 159c18.1 27.1 42.8 48.4 71.1 62.4L112 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 32 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-258.4c29.1-14.2 54.4-36.2 72.7-64.2l18.2-27.9c9.6-14.8 5.4-34.6-9.4-44.3s-34.6-5.5-44.3 9.4L291 122.4c-21.8 33.4-58.9 53.6-98.8 53.6c-12.6 0-24.9-2-36.6-5.8c-.9-.3-1.8-.7-2.7-.9z"],
|
|
14846
|
-
"person-walking-dashed-line-arrow-right": [640, 512, [], "solid", "M208 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM123.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L281 232.7l-15.3-36.8C248.5 154.8 208.3 128 163.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1L68.7 398 9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L116.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zM550.6 153.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L530.7 224 384 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l146.7 0-25.4 25.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l80-80c12.5-12.5 12.5-32.8 0-45.3l-80-80zM392 0c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48c0-13.3-10.7-24-24-24zm24 152c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16zM392 320c-13.3 0-24 10.7-24 24l0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16c0-13.3-10.7-24-24-24zm24 120c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48z"],
|
|
14847
|
-
"person-walking-arrow-loop-left": [640, 512, [], "solid", "M208 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM123.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L281 232.7l-15.3-36.8C248.5 154.8 208.3 128 163.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1L68.7 398 9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L116.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zm347.7 119c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L461.3 384l18.7 0c88.4 0 160-71.6 160-160s-71.6-160-160-160L352 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c53 0 96 43 96 96s-43 96-96 96l-18.7 0 25.4-25.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3l80 80z"],
|
|
14848
|
-
"person-walking-arrow-right": [640, 512, [], "solid", "M208 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM123.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L281 232.7l-15.3-36.8C248.5 154.8 208.3 128 163.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1L68.7 398 9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L116.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zM550.6 153.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L530.7 224 384 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l146.7 0-25.4 25.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l80-80c12.5-12.5 12.5-32.8 0-45.3l-80-80z"],
|
|
14849
|
-
"street-view": [512, 512, [], "solid", "M320 64A64 64 0 1 0 192 64a64 64 0 1 0 128 0zm-96 96c-35.3 0-64 28.7-64 64l0 48c0 17.7 14.3 32 32 32l1.8 0 11.1 99.5c1.8 16.2 15.5 28.5 31.8 28.5l38.7 0c16.3 0 30-12.3 31.8-28.5L318.2 304l1.8 0c17.7 0 32-14.3 32-32l0-48c0-35.3-28.7-64-64-64l-64 0zM132.3 394.2c13-2.4 21.7-14.9 19.3-27.9s-14.9-21.7-27.9-19.3c-32.4 5.9-60.9 14.2-82 24.8c-10.5 5.3-20.3 11.7-27.8 19.6C6.4 399.5 0 410.5 0 424c0 21.4 15.5 36.1 29.1 45c14.7 9.6 34.3 17.3 56.4 23.4C130.2 504.7 190.4 512 256 512s125.8-7.3 170.4-19.6c22.1-6.1 41.8-13.8 56.4-23.4c13.7-8.9 29.1-23.6 29.1-45c0-13.5-6.4-24.5-14-32.6c-7.5-7.9-17.3-14.3-27.8-19.6c-21-10.6-49.5-18.9-82-24.8c-13-2.4-25.5 6.3-27.9 19.3s6.3 25.5 19.3 27.9c30.2 5.5 53.7 12.8 69 20.5c3.2 1.6 5.8 3.1 7.9 4.5c3.6 2.4 3.6 7.2 0 9.6c-8.8 5.7-23.1 11.8-43 17.3C374.3 457 318.5 464 256 464s-118.3-7-157.7-17.9c-19.9-5.5-34.2-11.6-43-17.3c-3.6-2.4-3.6-7.2 0-9.6c2.1-1.4 4.8-2.9 7.9-4.5c15.3-7.7 38.8-14.9 69-20.5z"],
|
|
14850
|
-
"closed-captioning": [576, 512, ["cc"], "regular", "M512 80c8.8 0 16 7.2 16 16l0 320c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16L48 96c0-8.8 7.2-16 16-16l448 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 32zM200 208c14.2 0 27 6.1 35.8 16c8.8 9.9 24 10.7 33.9 1.9s10.7-24 1.9-33.9c-17.5-19.6-43.1-32-71.5-32c-53 0-96 43-96 96s43 96 96 96c28.4 0 54-12.4 71.5-32c8.8-9.9 8-25-1.9-33.9s-25-8-33.9 1.9c-8.8 9.9-21.6 16-35.8 16c-26.5 0-48-21.5-48-48s21.5-48 48-48zm144 48c0-26.5 21.5-48 48-48c14.2 0 27 6.1 35.8 16c8.8 9.9 24 10.7 33.9 1.9s10.7-24 1.9-33.9c-17.5-19.6-43.1-32-71.5-32c-53 0-96 43-96 96s43 96 96 96c28.4 0 54-12.4 71.5-32c8.8-9.9 8-25-1.9-33.9s-25-8-33.9 1.9c-8.8 9.9-21.6 16-35.8 16c-26.5 0-48-21.5-48-48z"],
|
|
14851
|
-
"bone": [576, 512, [], "solid", "M153.7 144.8c6.9 16.3 20.6 31.2 38.3 31.2l192 0c17.7 0 31.4-14.9 38.3-31.2C434.4 116.1 462.9 96 496 96c44.2 0 80 35.8 80 80c0 30.4-17 56.9-42 70.4c-3.6 1.9-6 5.5-6 9.6s2.4 7.7 6 9.6c25 13.5 42 40 42 70.4c0 44.2-35.8 80-80 80c-33.1 0-61.6-20.1-73.7-48.8C415.4 350.9 401.7 336 384 336l-192 0c-17.7 0-31.4 14.9-38.3 31.2C141.6 395.9 113.1 416 80 416c-44.2 0-80-35.8-80-80c0-30.4 17-56.9 42-70.4c3.6-1.9 6-5.5 6-9.6s-2.4-7.7-6-9.6C17 232.9 0 206.4 0 176c0-44.2 35.8-80 80-80c33.1 0 61.6 20.1 73.7 48.8z"],
|
|
14852
|
-
"sun": [512, 512, [], "regular", "M375.7 19.7c-1.5-8-6.9-14.7-14.4-17.8s-16.1-2.2-22.8 2.4L256 61.1 173.5 4.2c-6.7-4.6-15.3-5.5-22.8-2.4s-12.9 9.8-14.4 17.8l-18.1 98.5L19.7 136.3c-8 1.5-14.7 6.9-17.8 14.4s-2.2 16.1 2.4 22.8L61.1 256 4.2 338.5c-4.6 6.7-5.5 15.3-2.4 22.8s9.8 13 17.8 14.4l98.5 18.1 18.1 98.5c1.5 8 6.9 14.7 14.4 17.8s16.1 2.2 22.8-2.4L256 450.9l82.5 56.9c6.7 4.6 15.3 5.5 22.8 2.4s12.9-9.8 14.4-17.8l18.1-98.5 98.5-18.1c8-1.5 14.7-6.9 17.8-14.4s2.2-16.1-2.4-22.8L450.9 256l56.9-82.5c4.6-6.7 5.5-15.3 2.4-22.8s-9.8-12.9-17.8-14.4l-98.5-18.1L375.7 19.7zM269.6 110l65.6-45.2 14.4 78.3c1.8 9.8 9.5 17.5 19.3 19.3l78.3 14.4L402 242.4c-5.7 8.2-5.7 19 0 27.2l45.2 65.6-78.3 14.4c-9.8 1.8-17.5 9.5-19.3 19.3l-14.4 78.3L269.6 402c-8.2-5.7-19-5.7-27.2 0l-65.6 45.2-14.4-78.3c-1.8-9.8-9.5-17.5-19.3-19.3L64.8 335.2 110 269.6c5.7-8.2 5.7-19 0-27.2L64.8 176.8l78.3-14.4c9.8-1.8 17.5-9.5 19.3-19.3l14.4-78.3L242.4 110c8.2 5.7 19 5.7 27.2 0zM256 368a112 112 0 1 0 0-224 112 112 0 1 0 0 224zM192 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z"],
|
|
14853
|
-
"moon": [384, 512, [], "regular", "M144.7 98.7c-21 34.1-33.1 74.3-33.1 117.3c0 98 62.8 181.4 150.4 211.7c-12.4 2.8-25.3 4.3-38.6 4.3C126.6 432 48 353.3 48 256c0-68.9 39.4-128.4 96.8-157.3zm62.1-66C91.1 41.2 0 137.9 0 256C0 379.7 100 480 223.5 480c47.8 0 92-15 128.4-40.6c1.9-1.3 3.7-2.7 5.5-4c4.8-3.6 9.4-7.4 13.9-11.4c2.7-2.4 5.3-4.8 7.9-7.3c5-4.9 6.3-12.5 3.1-18.7s-10.1-9.7-17-8.5c-3.7 .6-7.4 1.2-11.1 1.6c-5 .5-10.1 .9-15.3 1c-1.2 0-2.5 0-3.7 0l-.3 0c-96.8-.2-175.2-78.9-175.2-176c0-54.8 24.9-103.7 64.1-136c1-.9 2.1-1.7 3.2-2.6c4-3.2 8.2-6.2 12.5-9c3.1-2 6.3-4 9.6-5.8c6.1-3.5 9.2-10.5 7.7-17.3s-7.3-11.9-14.3-12.5c-3.6-.3-7.1-.5-10.7-.6c-2.7-.1-5.5-.1-8.2-.1c-3.3 0-6.5 .1-9.8 .2c-2.3 .1-4.6 .2-6.9 .4z"],
|
|
14854
|
-
"heart": [512, 512, [], "regular", "M225.8 468.2l-2.5-2.3L48.1 303.2C17.4 274.7 0 234.7 0 192.8l0-3.3c0-70.4 50-130.8 119.2-144C158.6 37.9 198.9 47 231 69.6c9 6.4 17.4 13.8 25 22.3c4.2-4.8 8.7-9.2 13.5-13.3c3.7-3.2 7.5-6.2 11.5-9c0 0 0 0 0 0C313.1 47 353.4 37.9 392.8 45.4C462 58.6 512 119.1 512 189.5l0 3.3c0 41.9-17.4 81.9-48.1 110.4L288.7 465.9l-2.5 2.3c-8.2 7.6-19 11.9-30.2 11.9s-22-4.2-30.2-11.9zM239.1 145c-.4-.3-.7-.7-1-1.1l-17.8-20-.1-.1s0 0 0 0c-23.1-25.9-58-37.7-92-31.2C81.6 101.5 48 142.1 48 189.5l0 3.3c0 28.5 11.9 55.8 32.8 75.2L256 430.7 431.2 268c20.9-19.4 32.8-46.7 32.8-75.2l0-3.3c0-47.3-33.6-88-80.1-96.9c-34-6.5-69 5.4-92 31.2c0 0 0 0-.1 .1s0 0-.1 .1l-17.8 20c-.3 .4-.7 .7-1 1.1c-4.5 4.5-10.6 7-16.9 7s-12.4-2.5-16.9-7z"],
|
|
14855
|
-
"face-smile": [512, 512, ["smile"], "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 256zm177.6 62.1C192.8 334.5 218.8 352 256 352s63.2-17.5 78.4-33.9c9-9.7 24.2-10.4 33.9-1.4s10.4 24.2 1.4 33.9c-22 23.8-60 49.4-113.6 49.4s-91.7-25.5-113.6-49.4c-9-9.7-8.4-24.9 1.4-33.9s24.9-8.4 33.9 1.4zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"],
|
|
14856
|
-
"xmark": [384, 512, [], "solid", "M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z"],
|
|
14857
|
-
"wand-sparkles": [512, 512, [], "solid", "M464 6.1c9.5-8.5 24-8.1 33 .9l8 8c9 9 9.4 23.5 .9 33l-85.8 95.9c-2.6 2.9-4.1 6.7-4.1 10.7l0 21.4c0 8.8-7.2 16-16 16l-15.8 0c-4.6 0-8.9 1.9-11.9 5.3L100.7 500.9C94.3 508 85.3 512 75.8 512c-8.8 0-17.3-3.5-23.5-9.8L9.7 459.7C3.5 453.4 0 445 0 436.2c0-9.5 4-18.5 11.1-24.8l111.6-99.8c3.4-3 5.3-7.4 5.3-11.9l0-27.6c0-8.8 7.2-16 16-16l34.6 0c3.9 0 7.7-1.5 10.7-4.1L464 6.1zM432 288c3.6 0 6.7 2.4 7.7 5.8l14.8 51.7 51.7 14.8c3.4 1 5.8 4.1 5.8 7.7s-2.4 6.7-5.8 7.7l-51.7 14.8-14.8 51.7c-1 3.4-4.1 5.8-7.7 5.8s-6.7-2.4-7.7-5.8l-14.8-51.7-51.7-14.8c-3.4-1-5.8-4.1-5.8-7.7s2.4-6.7 5.8-7.7l51.7-14.8 14.8-51.7c1-3.4 4.1-5.8 7.7-5.8zM87.7 69.8l14.8 51.7 51.7 14.8c3.4 1 5.8 4.1 5.8 7.7s-2.4 6.7-5.8 7.7l-51.7 14.8L87.7 218.2c-1 3.4-4.1 5.8-7.7 5.8s-6.7-2.4-7.7-5.8L57.5 166.5 5.8 151.7c-3.4-1-5.8-4.1-5.8-7.7s2.4-6.7 5.8-7.7l51.7-14.8L72.3 69.8c1-3.4 4.1-5.8 7.7-5.8s6.7 2.4 7.7 5.8zM208 0c3.7 0 6.9 2.5 7.8 6.1l6.8 27.3 27.3 6.8c3.6 .9 6.1 4.1 6.1 7.8s-2.5 6.9-6.1 7.8l-27.3 6.8-6.8 27.3c-.9 3.6-4.1 6.1-7.8 6.1s-6.9-2.5-7.8-6.1l-6.8-27.3-27.3-6.8c-3.6-.9-6.1-4.1-6.1-7.8s2.5-6.9 6.1-7.8l27.3-6.8 6.8-27.3c.9-3.6 4.1-6.1 7.8-6.1z"],
|
|
14858
|
-
"star": [576, 512, [], "regular", "M287.9 0c9.2 0 17.6 5.2 21.6 13.5l68.6 141.3 153.2 22.6c9 1.3 16.5 7.6 19.3 16.3s.5 18.1-5.9 24.5L433.6 328.4l26.2 155.6c1.5 9-2.2 18.1-9.7 23.5s-17.3 6-25.3 1.7l-137-73.2L151 509.1c-8.1 4.3-17.9 3.7-25.3-1.7s-11.2-14.5-9.7-23.5l26.2-155.6L31.1 218.2c-6.5-6.4-8.7-15.9-5.9-24.5s10.3-14.9 19.3-16.3l153.2-22.6L266.3 13.5C270.4 5.2 278.7 0 287.9 0zm0 79L235.4 187.2c-3.5 7.1-10.2 12.1-18.1 13.3L99 217.9 184.9 303c5.5 5.5 8.1 13.3 6.8 21L171.4 443.7l105.2-56.2c7.1-3.8 15.6-3.8 22.6 0l105.2 56.2L384.2 324.1c-1.3-7.7 1.2-15.5 6.8-21l85.9-85.1L358.6 200.5c-7.8-1.2-14.6-6.1-18.1-13.3L287.9 79z"],
|
|
14859
|
-
"puzzle-piece": [512, 512, [], "solid", "M192 104.8c0-9.2-5.8-17.3-13.2-22.8C167.2 73.3 160 61.3 160 48c0-26.5 28.7-48 64-48s64 21.5 64 48c0 13.3-7.2 25.3-18.8 34c-7.4 5.5-13.2 13.6-13.2 22.8c0 12.8 10.4 23.2 23.2 23.2l56.8 0c26.5 0 48 21.5 48 48l0 56.8c0 12.8 10.4 23.2 23.2 23.2c9.2 0 17.3-5.8 22.8-13.2c8.7-11.6 20.7-18.8 34-18.8c26.5 0 48 28.7 48 64s-21.5 64-48 64c-13.3 0-25.3-7.2-34-18.8c-5.5-7.4-13.6-13.2-22.8-13.2c-12.8 0-23.2 10.4-23.2 23.2L384 464c0 26.5-21.5 48-48 48l-56.8 0c-12.8 0-23.2-10.4-23.2-23.2c0-9.2 5.8-17.3 13.2-22.8c11.6-8.7 18.8-20.7 18.8-34c0-26.5-28.7-48-64-48s-64 21.5-64 48c0 13.3 7.2 25.3 18.8 34c7.4 5.5 13.2 13.6 13.2 22.8c0 12.8-10.4 23.2-23.2 23.2L48 512c-26.5 0-48-21.5-48-48L0 343.2C0 330.4 10.4 320 23.2 320c9.2 0 17.3 5.8 22.8 13.2C54.7 344.8 66.7 352 80 352c26.5 0 48-28.7 48-64s-21.5-64-48-64c-13.3 0-25.3 7.2-34 18.8C40.5 250.2 32.4 256 23.2 256C10.4 256 0 245.6 0 232.8L0 176c0-26.5 21.5-48 48-48l120.8 0c12.8 0 23.2-10.4 23.2-23.2z"],
|
|
14860
|
-
// brands
|
|
14861
|
-
"discord": [640, 512, [], "brands", "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"],
|
|
14862
|
-
"github": [496, 512, [], "brands", "M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"],
|
|
14863
|
-
"square-js": [448, 512, [], "brands", "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"],
|
|
14864
|
-
"python": [448, 512, [], "brands", "M439.8 200.5c-7.7-30.9-22.3-54.2-53.4-54.2h-40.1v47.4c0 36.8-31.2 67.8-66.8 67.8H172.7c-29.2 0-53.4 25-53.4 54.3v101.8c0 29 25.2 46 53.4 54.3 33.8 9.9 66.3 11.7 106.8 0 26.9-7.8 53.4-23.5 53.4-54.3v-40.7H226.2v-13.6h160.2c31.1 0 42.6-21.7 53.4-54.2 11.2-33.5 10.7-65.7 0-108.6zM286.2 404c11.1 0 20.1 9.1 20.1 20.3 0 11.3-9 20.4-20.1 20.4-11 0-20.1-9.2-20.1-20.4.1-11.3 9.1-20.3 20.1-20.3zM167.8 248.1h106.8c29.7 0 53.4-24.5 53.4-54.3V91.9c0-29-24.4-50.7-53.4-55.6-35.8-5.9-74.7-5.6-106.8.1-45.2 8-53.4 24.7-53.4 55.6v40.7h106.9v13.6h-147c-31.1 0-58.3 18.7-66.8 54.2-9.8 40.7-10.2 66.1 0 108.6 7.6 31.6 25.7 54.2 56.8 54.2H101v-48.8c0-35.3 30.5-66.4 66.8-66.4zm-6.7-142.6c-11.1 0-20.1-9.1-20.1-20.3.1-11.3 9-20.4 20.1-20.4 11 0 20.1 9.2 20.1 20.4s-9 20.3-20.1 20.3z"],
|
|
14865
|
-
"microsoft": [448, 512, [], "brands", "M0 32h214.6v214.6H0V32zm233.4 0H448v214.6H233.4V32zM0 265.4h214.6V480H0V265.4zm233.4 0H448V480H233.4V265.4z"],
|
|
14866
|
-
"apple": [384, 512, [], "brands", "M318.7 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7C63.3 141.2 4 184.8 4 273.5q0 39.3 14.4 81.2c12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zm-56.6-164.2c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z"],
|
|
14867
|
-
"youtube": [576, 512, [], "brands", "M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z"],
|
|
14868
|
-
"x-twitter": [512, 512, [], "brands", "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"],
|
|
14869
|
-
"chrome": [512, 512, [], "brands", "M0 256C0 209.4 12.47 165.6 34.27 127.1L144.1 318.3C166 357.5 207.9 384 256 384C270.3 384 283.1 381.7 296.8 377.4L220.5 509.6C95.9 492.3 0 385.3 0 256zM365.1 321.6C377.4 302.4 384 279.1 384 256C384 217.8 367.2 183.5 340.7 160H493.4C505.4 189.6 512 222.1 512 256C512 397.4 397.4 511.1 256 512L365.1 321.6zM477.8 128H256C193.1 128 142.3 172.1 130.5 230.7L54.19 98.47C101 38.53 174 0 256 0C350.8 0 433.5 51.48 477.8 128V128zM168 256C168 207.4 207.4 168 256 168C304.6 168 344 207.4 344 256C344 304.6 304.6 344 256 344C207.4 344 168 304.6 168 256z"],
|
|
14870
|
-
"reddit": [512, 512, [], "brands", "M0 256C0 114.6 114.6 0 256 0S512 114.6 512 256s-114.6 256-256 256L37.1 512c-13.7 0-20.5-16.5-10.9-26.2L75 437C28.7 390.7 0 326.7 0 256zM349.6 153.6c23.6 0 42.7-19.1 42.7-42.7s-19.1-42.7-42.7-42.7c-20.6 0-37.8 14.6-41.8 34c-34.5 3.7-61.4 33-61.4 68.4l0 .2c-37.5 1.6-71.8 12.3-99 29.1c-10.1-7.8-22.8-12.5-36.5-12.5c-33 0-59.8 26.8-59.8 59.8c0 24 14.1 44.6 34.4 54.1c2 69.4 77.6 125.2 170.6 125.2s168.7-55.9 170.6-125.3c20.2-9.6 34.1-30.2 34.1-54c0-33-26.8-59.8-59.8-59.8c-13.7 0-26.3 4.6-36.4 12.4c-27.4-17-62.1-27.7-100-29.1l0-.2c0-25.4 18.9-46.5 43.4-49.9l0 0c4.4 18.8 21.3 32.8 41.5 32.8zM177.1 246.9c16.7 0 29.5 17.6 28.5 39.3s-13.5 29.6-30.3 29.6s-31.4-8.8-30.4-30.5s15.4-38.3 32.1-38.3zm190.1 38.3c1 21.7-13.7 30.5-30.4 30.5s-29.3-7.9-30.3-29.6c-1-21.7 11.8-39.3 28.5-39.3s31.2 16.6 32.1 38.3zm-48.1 56.7c-10.3 24.6-34.6 41.9-63 41.9s-52.7-17.3-63-41.9c-1.2-2.9 .8-6.2 3.9-6.5c18.4-1.9 38.3-2.9 59.1-2.9s40.7 1 59.1 2.9c3.1 .3 5.1 3.6 3.9 6.5z"],
|
|
14871
|
-
"ubuntu": [576, 512, [], "brands", "M469.2 75A75.6 75.6 0 1 0 317.9 75a75.6 75.6 0 1 0 151.2 0zM154.2 240.7A75.6 75.6 0 1 0 3 240.7a75.6 75.6 0 1 0 151.2 0zM57 346C75.6 392.9 108 433 150 461.1s91.5 42.6 142 41.7c-14.7-18.6-22.9-41.5-23.2-65.2c-6.8-.9-13.3-2.1-19.5-3.4c-26.8-5.7-51.9-17.3-73.6-34s-39.3-38.1-51.7-62.5c-20.9 9.9-44.5 12.8-67.1 8.2zm395.1 89.8a75.6 75.6 0 1 0 -151.2 0 75.6 75.6 0 1 0 151.2 0zM444 351.6c18.5 14.8 31.6 35.2 37.2 58.2c33.3-41.3 52.6-92.2 54.8-145.2s-12.5-105.4-42.2-149.4c-8.6 21.5-24 39.6-43.8 51.6c15.4 28.6 22.9 60.8 21.9 93.2s-10.7 64-28 91.6zM101.1 135.4c12.4 2.7 24.3 7.5 35.1 14.3c16.6-24.2 38.9-44.1 64.8-58S255.8 70.4 285.2 70c.2-5.9 .9-11.9 2-17.7c3.6-16.7 11.1-32.3 21.8-45.5c-47.7-3.8-95.4 6-137.6 28.5S94.3 91.7 70.8 133.4c2.7-.2 5.3-.3 8-.3c7.5 0 15 .8 22.4 2.3z"],
|
|
14872
|
-
"whatsapp": [448, 512, [], "brands", "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"],
|
|
14873
|
-
"linux": [448, 512, [], "brands", "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"],
|
|
14874
|
-
"instagram": [448, 512, [], "brands", "M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z"],
|
|
14875
|
-
"facebook": [512, 512, [], "brands", "M512 256C512 114.6 397.4 0 256 0S0 114.6 0 256C0 376 82.7 476.8 194.2 504.5V334.2H141.4V256h52.8V222.3c0-87.1 39.4-127.5 125-127.5c16.2 0 44.2 3.2 55.7 6.4V172c-6-.6-16.5-1-29.6-1c-42 0-58.2 15.9-58.2 57.2V256h83.6l-14.4 78.2H287V510.1C413.8 494.8 512 386.9 512 256h0z"],
|
|
14876
|
-
"safari": [512, 512, [], "brands", "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"],
|
|
14877
|
-
"google": [488, 512, [], "brands", "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"],
|
|
14878
|
-
"npm": [576, 512, [], "brands", "M288 288h-32v-64h32v64zm288-128v192H288v32H160v-32H0V160h576zm-416 32H32v128h64v-96h32v96h32V192zm160 0H192v160h64v-32h64V192zm224 0H352v128h64v-96h32v96h32v-96h32v96h32V192z"],
|
|
14879
|
-
"bluetooth-b": [320, 512, [], "brands", "M196.48 260.023l92.626-103.333L143.125 0v206.33l-86.111-86.111-31.406 31.405 108.061 108.399L25.608 368.422l31.406 31.405 86.111-86.111L145.84 512l148.552-148.644-97.912-103.333zm40.86-102.996l-49.977 49.978-.338-100.295 50.315 50.317zM187.363 313.04l49.977 49.978-50.315 50.316.338-100.294z"],
|
|
14680
|
+
// Internals
|
|
14681
|
+
"Clone": [512, 512, [], "regular", "M64 464l224 0c8.8 0 16-7.2 16-16l0-64 48 0 0 64c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 224c0-35.3 28.7-64 64-64l64 0 0 48-64 0c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16zM224 304l224 0c8.8 0 16-7.2 16-16l0-224c0-8.8-7.2-16-16-16L224 48c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16zm-64-16l0-224c0-35.3 28.7-64 64-64L448 0c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64l-224 0c-35.3 0-64-28.7-64-64z"],
|
|
14682
|
+
"IdBadge": [384, 512, [], "regular", "M256 48l0 16c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-16L64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-384c0-8.8-7.2-16-16-16l-64 0zM0 64C0 28.7 28.7 0 64 0L320 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM160 320l64 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16L96 416c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-32-96a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z"],
|
|
14683
|
+
"Paste": [512, 512, [], "regular", "M104.6 48L64 48C28.7 48 0 76.7 0 112L0 384c0 35.3 28.7 64 64 64l96 0 0-48-96 0c-8.8 0-16-7.2-16-16l0-272c0-8.8 7.2-16 16-16l16 0c0 17.7 14.3 32 32 32l72.4 0C202 108.4 227.6 96 256 96l62 0c-7.1-27.6-32.2-48-62-48l-40.6 0C211.6 20.9 188.2 0 160 0s-51.6 20.9-55.4 48zM144 56a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM448 464l-192 0c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l140.1 0L464 243.9 464 448c0 8.8-7.2 16-16 16zM256 512l192 0c35.3 0 64-28.7 64-64l0-204.1c0-12.7-5.1-24.9-14.1-33.9l-67.9-67.9c-9-9-21.2-14.1-33.9-14.1L256 128c-35.3 0-64 28.7-64 64l0 256c0 35.3 28.7 64 64 64z"],
|
|
14684
|
+
"Trash3": [448, 512, [], "regular", "M170.5 51.6L151.5 80l145 0-19-28.4c-1.5-2.2-4-3.6-6.7-3.6l-93.7 0c-2.7 0-5.2 1.3-6.7 3.6zm147-26.6L354.2 80 368 80l48 0 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 304c0 44.2-35.8 80-80 80l-224 0c-44.2 0-80-35.8-80-80l0-304-8 0c-13.3 0-24-10.7-24-24S10.7 80 24 80l8 0 48 0 13.8 0 36.7-55.1C140.9 9.4 158.4 0 177.1 0l93.7 0c18.7 0 36.2 9.4 46.6 24.9zM80 128l0 304c0 17.7 14.3 32 32 32l224 0c17.7 0 32-14.3 32-32l0-304L80 128zm80 64l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208c0-8.8 7.2-16 16-16s16 7.2 16 16zm80 0l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208c0-8.8 7.2-16 16-16s16 7.2 16 16zm80 0l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208c0-8.8 7.2-16 16-16s16 7.2 16 16z"],
|
|
14685
|
+
"FilePdf": [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"],
|
|
14686
|
+
"FileWord": [384, 512, [], "regular", "M48 448L48 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 464c-8.8 0-16-7.2-16-16zM64 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 0zm55 241.1c-3.8-12.7-17.2-19.9-29.9-16.1s-19.9 17.2-16.1 29.9l48 160c3 10.2 12.4 17.1 23 17.1s19.9-7 23-17.1l25-83.4 25 83.4c3 10.2 12.4 17.1 23 17.1s19.9-7 23-17.1l48-160c3.8-12.7-3.4-26.1-16.1-29.9s-26.1 3.4-29.9 16.1l-25 83.4-25-83.4c-3-10.2-12.4-17.1-23-17.1s-19.9 7-23 17.1l-25 83.4-25-83.4z"],
|
|
14687
|
+
"FilePowerpoint": [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 0zm72 208c-13.3 0-24 10.7-24 24l0 104 0 56c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32 44 0c42 0 76-34 76-76s-34-76-76-76l-68 0zm68 104l-44 0 0-56 44 0c15.5 0 28 12.5 28 28s-12.5 28-28 28z"],
|
|
14688
|
+
"FileExcel": [384, 512, [], "regular", "M48 448L48 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 464c-8.8 0-16-7.2-16-16zM64 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 0zm90.9 233.3c-8.1-10.5-23.2-12.3-33.7-4.2s-12.3 23.2-4.2 33.7L161.6 320l-44.5 57.3c-8.1 10.5-6.3 25.5 4.2 33.7s25.5 6.3 33.7-4.2L192 359.1l37.1 47.6c8.1 10.5 23.2 12.3 33.7 4.2s12.3-23.2 4.2-33.7L222.4 320l44.5-57.3c8.1-10.5 6.3-25.5-4.2-33.7s-25.5-6.3-33.7 4.2L192 280.9l-37.1-47.6z"],
|
|
14689
|
+
"Settings3": [640, 512, [], "solid", "M308.5 135.3c7.1-6.3 9.9-16.2 6.2-25c-2.3-5.3-4.8-10.5-7.6-15.5L304 89.4c-3-5-6.3-9.9-9.8-14.6c-5.7-7.6-15.7-10.1-24.7-7.1l-28.2 9.3c-10.7-8.8-23-16-36.2-20.9L199 27.1c-1.9-9.3-9.1-16.7-18.5-17.8C173.9 8.4 167.2 8 160.4 8l-.7 0c-6.8 0-13.5 .4-20.1 1.2c-9.4 1.1-16.6 8.6-18.5 17.8L115 56.1c-13.3 5-25.5 12.1-36.2 20.9L50.5 67.8c-9-3-19-.5-24.7 7.1c-3.5 4.7-6.8 9.6-9.9 14.6l-3 5.3c-2.8 5-5.3 10.2-7.6 15.6c-3.7 8.7-.9 18.6 6.2 25l22.2 19.8C32.6 161.9 32 168.9 32 176s.6 14.1 1.7 20.9L11.5 216.7c-7.1 6.3-9.9 16.2-6.2 25c2.3 5.3 4.8 10.5 7.6 15.6l3 5.2c3 5.1 6.3 9.9 9.9 14.6c5.7 7.6 15.7 10.1 24.7 7.1l28.2-9.3c10.7 8.8 23 16 36.2 20.9l6.1 29.1c1.9 9.3 9.1 16.7 18.5 17.8c6.7 .8 13.5 1.2 20.4 1.2s13.7-.4 20.4-1.2c9.4-1.1 16.6-8.6 18.5-17.8l6.1-29.1c13.3-5 25.5-12.1 36.2-20.9l28.2 9.3c9 3 19 .5 24.7-7.1c3.5-4.7 6.8-9.5 9.8-14.6l3.1-5.4c2.8-5 5.3-10.2 7.6-15.5c3.7-8.7 .9-18.6-6.2-25l-22.2-19.8c1.1-6.8 1.7-13.8 1.7-20.9s-.6-14.1-1.7-20.9l22.2-19.8zM112 176a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM504.7 500.5c6.3 7.1 16.2 9.9 25 6.2c5.3-2.3 10.5-4.8 15.5-7.6l5.4-3.1c5-3 9.9-6.3 14.6-9.8c7.6-5.7 10.1-15.7 7.1-24.7l-9.3-28.2c8.8-10.7 16-23 20.9-36.2l29.1-6.1c9.3-1.9 16.7-9.1 17.8-18.5c.8-6.7 1.2-13.5 1.2-20.4s-.4-13.7-1.2-20.4c-1.1-9.4-8.6-16.6-17.8-18.5L583.9 307c-5-13.3-12.1-25.5-20.9-36.2l9.3-28.2c3-9 .5-19-7.1-24.7c-4.7-3.5-9.6-6.8-14.6-9.9l-5.3-3c-5-2.8-10.2-5.3-15.6-7.6c-8.7-3.7-18.6-.9-25 6.2l-19.8 22.2c-6.8-1.1-13.8-1.7-20.9-1.7s-14.1 .6-20.9 1.7l-19.8-22.2c-6.3-7.1-16.2-9.9-25-6.2c-5.3 2.3-10.5 4.8-15.6 7.6l-5.2 3c-5.1 3-9.9 6.3-14.6 9.9c-7.6 5.7-10.1 15.7-7.1 24.7l9.3 28.2c-8.8 10.7-16 23-20.9 36.2L315.1 313c-9.3 1.9-16.7 9.1-17.8 18.5c-.8 6.7-1.2 13.5-1.2 20.4s.4 13.7 1.2 20.4c1.1 9.4 8.6 16.6 17.8 18.5l29.1 6.1c5 13.3 12.1 25.5 20.9 36.2l-9.3 28.2c-3 9-.5 19 7.1 24.7c4.7 3.5 9.5 6.8 14.6 9.8l5.4 3.1c5 2.8 10.2 5.3 15.5 7.6c8.7 3.7 18.6 .9 25-6.2l19.8-22.2c6.8 1.1 13.8 1.7 20.9 1.7s14.1-.6 20.9-1.7l19.8 22.2zM464 304a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"],
|
|
14690
|
+
"MessagesCircle": [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"],
|
|
14691
|
+
"LinkOff": [640, 512, ["ChainBroken", "ChainOff", "Unlink"], "solid", "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.7L489.3 358.2l90.5-90.5c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114l-96 96-31.9-25C430.9 239.6 420.1 175.1 377 132c-52.2-52.3-134.5-56.2-191.3-11.7L38.8 5.1zM239 162c30.1-14.9 67.7-9.9 92.8 15.3c20 20 27.5 48.3 21.7 74.5L239 162zM406.6 416.4L220.9 270c-2.1 39.8 12.2 80.1 42.2 110c38.9 38.9 94.4 51 143.6 36.3zm-290-228.5L60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5l61.8-61.8-50.6-39.9z"],
|
|
14692
|
+
"StreetView": [512, 512, [], "solid", "M320 64A64 64 0 1 0 192 64a64 64 0 1 0 128 0zm-96 96c-35.3 0-64 28.7-64 64l0 48c0 17.7 14.3 32 32 32l1.8 0 11.1 99.5c1.8 16.2 15.5 28.5 31.8 28.5l38.7 0c16.3 0 30-12.3 31.8-28.5L318.2 304l1.8 0c17.7 0 32-14.3 32-32l0-48c0-35.3-28.7-64-64-64l-64 0zM132.3 394.2c13-2.4 21.7-14.9 19.3-27.9s-14.9-21.7-27.9-19.3c-32.4 5.9-60.9 14.2-82 24.8c-10.5 5.3-20.3 11.7-27.8 19.6C6.4 399.5 0 410.5 0 424c0 21.4 15.5 36.1 29.1 45c14.7 9.6 34.3 17.3 56.4 23.4C130.2 504.7 190.4 512 256 512s125.8-7.3 170.4-19.6c22.1-6.1 41.8-13.8 56.4-23.4c13.7-8.9 29.1-23.6 29.1-45c0-13.5-6.4-24.5-14-32.6c-7.5-7.9-17.3-14.3-27.8-19.6c-21-10.6-49.5-18.9-82-24.8c-13-2.4-25.5 6.3-27.9 19.3s6.3 25.5 19.3 27.9c30.2 5.5 53.7 12.8 69 20.5c3.2 1.6 5.8 3.1 7.9 4.5c3.6 2.4 3.6 7.2 0 9.6c-8.8 5.7-23.1 11.8-43 17.3C374.3 457 318.5 464 256 464s-118.3-7-157.7-17.9c-19.9-5.5-34.2-11.6-43-17.3c-3.6-2.4-3.6-7.2 0-9.6c2.1-1.4 4.8-2.9 7.9-4.5c15.3-7.7 38.8-14.9 69-20.5z"],
|
|
14693
|
+
"ClosedCaptioning": [576, 512, ["CC"], "regular", "M512 80c8.8 0 16 7.2 16 16l0 320c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16L48 96c0-8.8 7.2-16 16-16l448 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 32zM200 208c14.2 0 27 6.1 35.8 16c8.8 9.9 24 10.7 33.9 1.9s10.7-24 1.9-33.9c-17.5-19.6-43.1-32-71.5-32c-53 0-96 43-96 96s43 96 96 96c28.4 0 54-12.4 71.5-32c8.8-9.9 8-25-1.9-33.9s-25-8-33.9 1.9c-8.8 9.9-21.6 16-35.8 16c-26.5 0-48-21.5-48-48s21.5-48 48-48zm144 48c0-26.5 21.5-48 48-48c14.2 0 27 6.1 35.8 16c8.8 9.9 24 10.7 33.9 1.9s10.7-24 1.9-33.9c-17.5-19.6-43.1-32-71.5-32c-53 0-96 43-96 96s43 96 96 96c28.4 0 54-12.4 71.5-32c8.8-9.9 8-25-1.9-33.9s-25-8-33.9 1.9c-8.8 9.9-21.6 16-35.8 16c-26.5 0-48-21.5-48-48z"],
|
|
14694
|
+
"ChildReaching": [384, 512, [], "solid", "M256 64A64 64 0 1 0 128 64a64 64 0 1 0 128 0zM152.9 169.3c-23.7-8.4-44.5-24.3-58.8-45.8L74.6 94.2C64.8 79.5 45 75.6 30.2 85.4s-18.7 29.7-8.9 44.4L40.9 159c18.1 27.1 42.8 48.4 71.1 62.4L112 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 32 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-258.4c29.1-14.2 54.4-36.2 72.7-64.2l18.2-27.9c9.6-14.8 5.4-34.6-9.4-44.3s-34.6-5.5-44.3 9.4L291 122.4c-21.8 33.4-58.9 53.6-98.8 53.6c-12.6 0-24.9-2-36.6-5.8c-.9-.3-1.8-.7-2.7-.9z"],
|
|
14695
|
+
"HourglassHalf": [384, 512, [], "regular", "M0 24C0 10.7 10.7 0 24 0L360 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 19c0 40.3-16 79-44.5 107.5L225.9 256l81.5 81.5C336 366 352 404.7 352 445l0 19 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-19c0-40.3 16-79 44.5-107.5L158.1 256 76.5 174.5C48 146 32 107.3 32 67l0-19-8 0C10.7 48 0 37.3 0 24zM110.5 371.5c-3.9 3.9-7.5 8.1-10.7 12.5l184.4 0c-3.2-4.4-6.8-8.6-10.7-12.5L192 289.9l-81.5 81.5zM284.2 128C297 110.4 304 89 304 67l0-19L80 48l0 19c0 22.1 7 43.4 19.8 61l184.4 0z"],
|
|
14696
|
+
"PaperPlane": [512, 512, [], "regular", "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"],
|
|
14697
|
+
// "PaperPlane": [512, 512, [], "solid", "M498.1 5.6c10.1 7 15.4 19.1 13.5 31.2l-64 416c-1.5 9.7-7.4 18.2-16 23s-18.9 5.4-28 1.6L284 427.7l-68.5 74.1c-8.9 9.7-22.9 12.9-35.2 8.1S160 493.2 160 480l0-83.6c0-4 1.5-7.8 4.2-10.8L331.8 202.8c5.8-6.3 5.6-16-.4-22s-15.7-6.4-22-.7L106 360.8 17.7 316.6C7.1 311.3 .3 300.7 0 288.9s5.9-22.8 16.1-28.7l448-256c10.7-6.1 23.9-5.5 34 1.4z"],
|
|
14698
|
+
"Axis3DArrows": [24, 24, [], "solid", "m12 2l4 4h-3v7.85l6.53 3.76L21 15.03l1.5 5.47l-5.5 1.46l1.53-2.61L12 15.58l-6.53 3.77L7 21.96L1.5 20.5L3 15.03l1.47 2.58L11 13.85V6H8z"],
|
|
14699
|
+
"PersonWalkingDashedLineArrowRight": [640, 512, [], "solid", "M208 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM123.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L281 232.7l-15.3-36.8C248.5 154.8 208.3 128 163.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1L68.7 398 9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L116.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zM550.6 153.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L530.7 224 384 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l146.7 0-25.4 25.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l80-80c12.5-12.5 12.5-32.8 0-45.3l-80-80zM392 0c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48c0-13.3-10.7-24-24-24zm24 152c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16zM392 320c-13.3 0-24 10.7-24 24l0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16c0-13.3-10.7-24-24-24zm24 120c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48z"],
|
|
14700
|
+
"PersonWalkingArrowLoopLeft": [640, 512, [], "solid", "M208 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM123.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L281 232.7l-15.3-36.8C248.5 154.8 208.3 128 163.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1L68.7 398 9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L116.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zm347.7 119c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L461.3 384l18.7 0c88.4 0 160-71.6 160-160s-71.6-160-160-160L352 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c53 0 96 43 96 96s-43 96-96 96l-18.7 0 25.4-25.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3l80 80z"],
|
|
14701
|
+
"PersonWalkingArrowRight": [640, 512, [], "solid", "M208 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM123.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L281 232.7l-15.3-36.8C248.5 154.8 208.3 128 163.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1L68.7 398 9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L116.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zM550.6 153.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L530.7 224 384 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l146.7 0-25.4 25.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l80-80c12.5-12.5 12.5-32.8 0-45.3l-80-80z"],
|
|
14702
|
+
"ClapperboardClosed": [512, 512, [], "solid", "M448 32l-86.1 0-1 1-127 127 92.1 0 1-1L453.8 32.3c-1.9-.2-3.8-.3-5.8-.3zm64 128l0-64c0-15.1-5.3-29.1-14-40l-104 104L512 160zM294.1 32l-92.1 0-1 1L73.9 160l92.1 0 1-1 127-127zM64 32C28.7 32 0 60.7 0 96l0 64 6.1 0 1-1 127-127L64 32zM512 192L0 192 0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-224z"],
|
|
14703
|
+
"UserOff": [640, 512, [], "solid", "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.7L381.9 274c48.5-23.2 82.1-72.7 82.1-130C464 64.5 399.5 0 320 0C250.4 0 192.4 49.3 178.9 114.9L38.8 5.1zM545.5 512L528 512 284.3 320l-59 0C136.2 320 64 392.2 64 481.3c0 17 13.8 30.7 30.7 30.7l450.6 0 .3 0z"],
|
|
14704
|
+
"PhotoFilm": [640, 512, ["Media"], "solid", "M256 0L576 0c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64l-320 0c-35.3 0-64-28.7-64-64l0-224c0-35.3 28.7-64 64-64zM476 106.7C471.5 100 464 96 456 96s-15.5 4-20 10.7l-56 84L362.7 169c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6l80 0 48 0 144 0c8.9 0 17-4.9 21.2-12.7s3.7-17.3-1.2-24.6l-96-144zM336 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM64 128l96 0 0 256 0 32c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-32 160 0 0 64c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192c0-35.3 28.7-64 64-64zm8 64c-8.8 0-16 7.2-16 16l0 16c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-16 0zm0 104c-8.8 0-16 7.2-16 16l0 16c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-16 0zm0 104c-8.8 0-16 7.2-16 16l0 16c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-16 0zm336 16l0 16c0 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 16z"],
|
|
14705
|
+
"Chart": [448, 512, [], "solid", "M160 80c0-26.5 21.5-48 48-48l32 0c26.5 0 48 21.5 48 48l0 352c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-352zM0 272c0-26.5 21.5-48 48-48l32 0c26.5 0 48 21.5 48 48l0 160c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48L0 272zM368 96l32 0c26.5 0 48 21.5 48 48l0 288c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-288c0-26.5 21.5-48 48-48z"],
|
|
14706
|
+
"HandsAslInterpreting": [640, 512, ["ASL"], "solid", "M156.6 46.3c7.9-15.8 1.5-35-14.3-42.9s-35-1.5-42.9 14.3L13.5 189.4C4.6 207.2 0 226.8 0 246.7L0 256c0 70.7 57.3 128 128 128l72 0 8 0 0-.3c35.2-2.7 65.4-22.8 82.1-51.7c8.8-15.3 3.6-34.9-11.7-43.7s-34.9-3.6-43.7 11.7c-7 12-19.9 20-34.7 20c-22.1 0-40-17.9-40-40s17.9-40 40-40c14.8 0 27.7 8 34.7 20c8.8 15.3 28.4 20.5 43.7 11.7s20.5-28.4 11.7-43.7c-12.8-22.1-33.6-39.1-58.4-47.1l80.8-22c17-4.6 27.1-22.2 22.5-39.3s-22.2-27.1-39.3-22.5L194.9 124.6l81.6-68c13.6-11.3 15.4-31.5 4.1-45.1S249.1-3.9 235.5 7.4L133.6 92.3l23-46zM483.4 465.7c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l85.9-171.7c8.9-17.8 13.5-37.4 13.5-57.2l0-9.3c0-70.7-57.3-128-128-128l-72 0-8 0 0 .3c-35.2 2.7-65.4 22.8-82.1 51.7c-8.9 15.3-3.6 34.9 11.7 43.7s34.9 3.6 43.7-11.7c7-12 19.9-20 34.7-20c22.1 0 40 17.9 40 40s-17.9 40-40 40c-14.8 0-27.7-8-34.7-20c-8.9-15.3-28.4-20.5-43.7-11.7s-20.5 28.4-11.7 43.7c12.8 22.1 33.6 39.1 58.4 47.1l-80.8 22c-17.1 4.7-27.1 22.2-22.5 39.3s22.2 27.1 39.3 22.5l100.7-27.5-81.6 68c-13.6 11.3-15.4 31.5-4.1 45.1s31.5 15.4 45.1 4.1l101.9-84.9-23 46z"],
|
|
14707
|
+
"HandPointRight": [512, 512, [], "regular", "M448 128l-177.6 0c1 5.2 1.6 10.5 1.6 16l0 16 32 0 144 0c8.8 0 16-7.2 16-16s-7.2-16-16-16zM224 144c0-17.7-14.3-32-32-32c0 0 0 0 0 0l-24 0c-66.3 0-120 53.7-120 120l0 48c0 52.5 33.7 97.1 80.7 113.4c-.5-3.1-.7-6.2-.7-9.4c0-20 9.2-37.9 23.6-49.7c-4.9-9-7.6-19.4-7.6-30.3c0-15.1 5.3-29 14-40c-8.8-11-14-24.9-14-40l0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40c0 8.8 7.2 16 16 16s16-7.2 16-16l0-40 0-40zM192 64s0 0 0 0c18 0 34.6 6 48 16l208 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-82 0c1.3 5.1 2 10.5 2 16c0 25.3-14.7 47.2-36 57.6c2.6 7 4 14.5 4 22.4c0 20-9.2 37.9-23.6 49.7c4.9 9 7.6 19.4 7.6 30.3c0 35.3-28.7 64-64 64l-64 0-24 0C75.2 448 0 372.8 0 280l0-48C0 139.2 75.2 64 168 64l24 0zm64 336c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0-16 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l64 0zm16-176c0 5.5-.7 10.9-2 16l2 0 32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0 0 16zm-24 64l-40 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-24 0z"],
|
|
14708
|
+
"HandPointUp": [384, 512, [], "regular", "M64 64l0 177.6c5.2-1 10.5-1.6 16-1.6l16 0 0-32L96 64c0-8.8-7.2-16-16-16s-16 7.2-16 16zM80 288c-17.7 0-32 14.3-32 32c0 0 0 0 0 0l0 24c0 66.3 53.7 120 120 120l48 0c52.5 0 97.1-33.7 113.4-80.7c-3.1 .5-6.2 .7-9.4 .7c-20 0-37.9-9.2-49.7-23.6c-9 4.9-19.4 7.6-30.3 7.6c-15.1 0-29-5.3-40-14c-11 8.8-24.9 14-40 14l-40 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l40 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-40 0-40 0zM0 320s0 0 0 0c0-18 6-34.6 16-48L16 64C16 28.7 44.7 0 80 0s64 28.7 64 64l0 82c5.1-1.3 10.5-2 16-2c25.3 0 47.2 14.7 57.6 36c7-2.6 14.5-4 22.4-4c20 0 37.9 9.2 49.7 23.6c9-4.9 19.4-7.6 30.3-7.6c35.3 0 64 28.7 64 64l0 64 0 24c0 92.8-75.2 168-168 168l-48 0C75.2 512 0 436.8 0 344l0-24zm336-64c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 48 0 16c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64zM160 240c5.5 0 10.9 .7 16 2l0-2 0-32c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 32 16 0zm64 24l0 40c0 8.8 7.2 16 16 16s16-7.2 16-16l0-48 0-16c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 24z"],
|
|
14709
|
+
"HandPointDown": [384, 512, [], "regular", "M64 448l0-177.6c5.2 1 10.5 1.6 16 1.6l16 0 0 32 0 144c0 8.8-7.2 16-16 16s-16-7.2-16-16zM80 224c-17.7 0-32-14.3-32-32c0 0 0 0 0 0l0-24c0-66.3 53.7-120 120-120l48 0c52.5 0 97.1 33.7 113.4 80.7c-3.1-.5-6.2-.7-9.4-.7c-20 0-37.9 9.2-49.7 23.6c-9-4.9-19.4-7.6-30.3-7.6c-15.1 0-29 5.3-40 14c-11-8.8-24.9-14-40-14l-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-40 0-40 0zM0 192s0 0 0 0c0 18 6 34.6 16 48l0 208c0 35.3 28.7 64 64 64s64-28.7 64-64l0-82c5.1 1.3 10.5 2 16 2c25.3 0 47.2-14.7 57.6-36c7 2.6 14.5 4 22.4 4c20 0 37.9-9.2 49.7-23.6c9 4.9 19.4 7.6 30.3 7.6c35.3 0 64-28.7 64-64l0-64 0-24C384 75.2 308.8 0 216 0L168 0C75.2 0 0 75.2 0 168l0 24zm336 64c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48 0-16c0-8.8 7.2-16 16-16s16 7.2 16 16l0 64zM160 272c5.5 0 10.9-.7 16-2l0 2 0 32c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-32 16 0zm64-24l0-40c0-8.8 7.2-16 16-16s16 7.2 16 16l0 48 0 16c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-24z"],
|
|
14710
|
+
"HandPointLeft": [512, 512, [], "regular", "M64 128l177.6 0c-1 5.2-1.6 10.5-1.6 16l0 16-32 0L64 160c-8.8 0-16-7.2-16-16s7.2-16 16-16zm224 16c0-17.7 14.3-32 32-32c0 0 0 0 0 0l24 0c66.3 0 120 53.7 120 120l0 48c0 52.5-33.7 97.1-80.7 113.4c.5-3.1 .7-6.2 .7-9.4c0-20-9.2-37.9-23.6-49.7c4.9-9 7.6-19.4 7.6-30.3c0-15.1-5.3-29-14-40c8.8-11 14-24.9 14-40l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-40 0-40zm32-80s0 0 0 0c-18 0-34.6 6-48 16L64 80C28.7 80 0 108.7 0 144s28.7 64 64 64l82 0c-1.3 5.1-2 10.5-2 16c0 25.3 14.7 47.2 36 57.6c-2.6 7-4 14.5-4 22.4c0 20 9.2 37.9 23.6 49.7c-4.9 9-7.6 19.4-7.6 30.3c0 35.3 28.7 64 64 64l64 0 24 0c92.8 0 168-75.2 168-168l0-48c0-92.8-75.2-168-168-168l-24 0zM256 400c-8.8 0-16-7.2-16-16s7.2-16 16-16l48 0 16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0zM240 224c0 5.5 .7 10.9 2 16l-2 0-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l32 0 0 16zm24 64l40 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l24 0z"],
|
|
14711
|
+
"HandScissors": [512, 512, [], "regular", "M.2 276.3c-1.2-35.3 26.4-65 61.7-66.2l3.3-.1L57 208.1C22.5 200.5 .7 166.3 8.3 131.8S50.2 75.5 84.7 83.2l173 38.3c2.3-2.9 4.7-5.7 7.1-8.5l18.4-20.3C299.9 74.5 323.5 64 348.3 64l10.2 0c54.1 0 104.1 28.7 131.3 75.4l1.5 2.6c13.6 23.2 20.7 49.7 20.7 76.6L512 344c0 66.3-53.7 120-120 120l-8 0-96 0c-35.3 0-64-28.7-64-64c0-2.8 .2-5.6 .5-8.3c-19.4-11-32.5-31.8-32.5-55.7c0-.8 0-1.6 0-2.4L66.4 338c-35.3 1.2-65-26.4-66.2-61.7zm63.4-18.2c-8.8 .3-15.7 7.7-15.4 16.5s7.7 15.7 16.5 15.4l161.5-5.6c9.8-.3 18.7 5.3 22.7 14.2s2.2 19.3-4.5 26.4c-2.8 2.9-4.4 6.7-4.4 11c0 8.8 7.2 16 16 16c9.1 0 17.4 5.1 21.5 13.3s3.2 17.9-2.3 25.1c-2 2.7-3.2 6-3.2 9.6c0 8.8 7.2 16 16 16l96 0 8 0c39.8 0 72-32.2 72-72l0-125.4c0-18.4-4.9-36.5-14.2-52.4l-1.5-2.6c-18.6-32-52.8-51.6-89.8-51.6l-10.2 0c-11.3 0-22 4.8-29.6 13.1l-17.5-15.9 17.5 15.9-18.4 20.3c-.6 .6-1.1 1.3-1.7 1.9l57 13.2c8.6 2 14 10.6 12 19.2s-10.6 14-19.2 12l-85.6-19.7L74.3 130c-8.6-1.9-17.2 3.5-19.1 12.2s3.5 17.2 12.2 19.1l187.5 41.6c10.2 2.3 17.8 10.9 18.7 21.4l.1 1c.6 6.6-1.5 13.1-5.8 18.1s-10.6 7.9-17.2 8.2L63.6 258.1z"],
|
|
14712
|
+
"HandSpock": [576, 512, [], "regular", "M170.2 80.8C161 47 180.8 12 214.6 2.4c34-9.6 69.4 10.2 79 44.2l30.3 107.1L337.1 84c6.6-34.7 40.1-57.5 74.8-50.9c31.4 6 53 33.9 52 64.9c10-2.6 20.8-2.8 31.5-.1c34.3 8.6 55.1 43.3 46.6 77.6L486.7 397.2C469.8 464.7 409.2 512 339.6 512l-33.7 0c-56.9 0-112.2-19-157.2-53.9l-92-71.6c-27.9-21.7-32.9-61.9-11.2-89.8s61.9-32.9 89.8-11.2l17 13.2L100.5 167.5c-13-32.9 3.2-70.1 36-83c11.1-4.4 22.7-5.4 33.7-3.7zm77.1-21.2c-2.4-8.5-11.2-13.4-19.7-11s-13.4 11.2-11 19.7l54.8 182.4c3.5 12.3-3.3 25.2-15.4 29.3s-25.3-2-30-13.9L174.9 138.1c-3.2-8.2-12.5-12.3-20.8-9s-12.3 12.5-9 20.8l73.3 185.6c12 30.3-23.7 57-49.4 37l-63.1-49.1c-7-5.4-17-4.2-22.5 2.8s-4.2 17 2.8 22.5l92 71.6c36.5 28.4 81.4 43.8 127.7 43.8l33.7 0c47.5 0 89-32.4 100.5-78.5l55.4-221.6c2.1-8.6-3.1-17.3-11.6-19.4s-17.3 3.1-19.4 11.6l-26 104C435.6 271.8 425 280 413 280c-16.5 0-28.9-15-25.8-31.2L415.7 99c1.7-8.7-4-17.1-12.7-18.7s-17.1 4-18.7 12.7L352.5 260c-2.2 11.6-12.4 20-24.2 20c-11 0-20.7-7.3-23.7-17.9L247.4 59.6z"],
|
|
14713
|
+
"HandBackFist": [448, 512, ["HandRock"], "regular", "M144 64c0-8.8 7.2-16 16-16s16 7.2 16 16c0 9.1 5.1 17.4 13.3 21.5s17.9 3.2 25.1-2.3c2.7-2 6-3.2 9.6-3.2c8.8 0 16 7.2 16 16c0 9.1 5.1 17.4 13.3 21.5s17.9 3.2 25.1-2.3c2.7-2 6-3.2 9.6-3.2c8.8 0 16 7.2 16 16c0 9.1 5.1 17.4 13.3 21.5s17.9 3.2 25.1-2.3c2.7-2 6-3.2 9.6-3.2c8.8 0 16 7.2 16 16l0 104c0 31.3-20 58-48 67.9c-9.6 3.4-16 12.5-16 22.6L304 488c0 13.3 10.7 24 24 24s24-10.7 24-24l0-117.8c38-20.1 64-60.1 64-106.2l0-104c0-35.3-28.7-64-64-64c-2.8 0-5.6 .2-8.3 .5C332.8 77.1 311.9 64 288 64c-2.8 0-5.6 .2-8.3 .5C268.8 45.1 247.9 32 224 32c-2.8 0-5.6 .2-8.3 .5C204.8 13.1 183.9 0 160 0C124.7 0 96 28.7 96 64l0 64.3c-11.7 7.4-22.5 16.4-32 26.9l17.8 16.1L64 155.2l-9.4 10.5C40 181.8 32 202.8 32 224.6l0 12.8c0 49.6 24.2 96.1 64.8 124.5l13.8-19.7L96.8 361.9l8.9 6.2c6.9 4.8 14.4 8.6 22.3 11.3L128 488c0 13.3 10.7 24 24 24s24-10.7 24-24l0-128.1c0-12.6-9.8-23.1-22.4-23.9c-7.3-.5-14.3-2.9-20.3-7.1l-13.1 18.7 13.1-18.7-8.9-6.2C96.6 303.1 80 271.3 80 237.4l0-12.8c0-9.9 3.7-19.4 10.3-26.8l9.4-10.5c3.8-4.2 7.9-8.1 12.3-11.6l0 32.3c0 8.8 7.2 16 16 16s16-7.2 16-16l0-65.7 0-14.3 0-64z"],
|
|
14714
|
+
"HandLizard": [512, 512, [], "regular", "M72 112c-13.3 0-24 10.7-24 24s10.7 24 24 24l168 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-104 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l152 0c4.5 0 8.9 1.3 12.7 3.6l64 40c7 4.4 11.3 12.1 11.3 20.4l0 24c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-10.7L281.1 384 136 384c-39.8 0-72-32.2-72-72s32.2-72 72-72l104 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L72 208c-39.8 0-72-32.2-72-72S32.2 64 72 64l209.6 0c46.7 0 90.9 21.5 119.7 58.3l78.4 100.1c20.9 26.7 32.3 59.7 32.3 93.7L512 424c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-107.9c0-23.2-7.8-45.8-22.1-64.1L363.5 151.9c-19.7-25.2-49.9-39.9-81.9-39.9L72 112z"],
|
|
14715
|
+
"HandPeace": [512, 512, [], "regular", "M250.8 1.4c-35.2-3.7-66.6 21.8-70.3 57L174 119 156.7 69.6C145 36.3 108.4 18.8 75.1 30.5S24.2 78.8 35.9 112.1L88.7 262.2C73.5 276.7 64 297.3 64 320c0 0 0 0 0 0l0 24c0 92.8 75.2 168 168 168l48 0c92.8 0 168-75.2 168-168l0-72 0-16 0-32c0-35.3-28.7-64-64-64c-7.9 0-15.4 1.4-22.4 4c-10.4-21.3-32.3-36-57.6-36c-.7 0-1.5 0-2.2 0l5.9-56.3c3.7-35.2-21.8-66.6-57-70.3zm-.2 155.4C243.9 166.9 240 179 240 192l0 48c0 .7 0 1.4 0 2c-5.1-1.3-10.5-2-16-2l-7.4 0-5.4-15.3 17-161.3c.9-8.8 8.8-15.2 17.6-14.2s15.2 8.8 14.2 17.6l-9.5 90.1zM111.4 85.6L165.7 240 144 240c-4 0-8 .3-11.9 .9L81.2 96.2c-2.9-8.3 1.5-17.5 9.8-20.4s17.5 1.5 20.4 9.8zM288 192c0-8.8 7.2-16 16-16s16 7.2 16 16l0 32 0 16c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48zm38.4 108c10.4 21.3 32.3 36 57.6 36c5.5 0 10.9-.7 16-2l0 10c0 66.3-53.7 120-120 120l-48 0c-66.3 0-120-53.7-120-120l0-24s0 0 0 0c0-17.7 14.3-32 32-32l80 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0c35.3 0 64-28.7 64-64c0-.7 0-1.4 0-2c5.1 1.3 10.5 2 16 2c7.9 0 15.4-1.4 22.4-4zM400 272c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-32 0-16c0-8.8 7.2-16 16-16s16 7.2 16 16l0 32 0 16z"],
|
|
14716
|
+
"CircleNodes": [512, 512, [], "solid", "M418.4 157.9c35.3-8.3 61.6-40 61.6-77.9c0-44.2-35.8-80-80-80c-43.4 0-78.7 34.5-80 77.5L136.2 151.1C121.7 136.8 101.9 128 80 128c-44.2 0-80 35.8-80 80s35.8 80 80 80c12.2 0 23.8-2.7 34.1-7.6L259.7 407.8c-2.4 7.6-3.7 15.8-3.7 24.2c0 44.2 35.8 80 80 80s80-35.8 80-80c0-27.7-14-52.1-35.4-66.4l37.8-207.7zM156.3 232.2c2.2-6.9 3.5-14.2 3.7-21.7l183.8-73.5c3.6 3.5 7.4 6.7 11.6 9.5L317.6 354.1c-5.5 1.3-10.8 3.1-15.8 5.5L156.3 232.2z"],
|
|
14717
|
+
"CircleRight": [512, 512, [], "solid", "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 256zM294.6 151.2c-4.2-4.6-10.1-7.2-16.4-7.2C266 144 256 154 256 166.3l0 41.7-96 0c-17.7 0-32 14.3-32 32l0 32c0 17.7 14.3 32 32 32l96 0 0 41.7c0 12.3 10 22.3 22.3 22.3c6.2 0 12.1-2.6 16.4-7.2l84-91c3.5-3.8 5.4-8.7 5.4-13.9s-1.9-10.1-5.4-13.9l-84-91z"],
|
|
14718
|
+
"CircleUp": [512, 512, [], "solid", "M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM151.2 217.4c-4.6 4.2-7.2 10.1-7.2 16.4c0 12.3 10 22.3 22.3 22.3l41.7 0 0 96c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-96 41.7 0c12.3 0 22.3-10 22.3-22.3c0-6.2-2.6-12.1-7.2-16.4l-91-84c-3.8-3.5-8.7-5.4-13.9-5.4s-10.1 1.9-13.9 5.4l-91 84z"],
|
|
14719
|
+
"CircleLeft": [512, 512, [], "solid", "M48 256a208 208 0 1 1 416 0A208 208 0 1 1 48 256zm464 0A256 256 0 1 0 0 256a256 256 0 1 0 512 0zM217.4 376.9c4.2 4.5 10.1 7.1 16.3 7.1c12.3 0 22.3-10 22.3-22.3l0-57.7 96 0c17.7 0 32-14.3 32-32l0-32c0-17.7-14.3-32-32-32l-96 0 0-57.7c0-12.3-10-22.3-22.3-22.3c-6.2 0-12.1 2.6-16.3 7.1L117.5 242.2c-3.5 3.8-5.5 8.7-5.5 13.8s2 10.1 5.5 13.8l99.9 107.1z"],
|
|
14720
|
+
"CircleDown": [512, 512, [], "solid", "M256 464a208 208 0 1 1 0-416 208 208 0 1 1 0 416zM256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM376.9 294.6c4.5-4.2 7.1-10.1 7.1-16.3c0-12.3-10-22.3-22.3-22.3L304 256l0-96c0-17.7-14.3-32-32-32l-32 0c-17.7 0-32 14.3-32 32l0 96-57.7 0C138 256 128 266 128 278.3c0 6.2 2.6 12.1 7.1 16.3l107.1 99.9c3.8 3.5 8.7 5.5 13.8 5.5s10.1-2 13.8-5.5l107.1-99.9z"],
|
|
14721
|
+
"WindowRestore": [512, 512, [], "solid", "M432 48L208 48c-17.7 0-32 14.3-32 32l0 16-48 0 0-16c0-44.2 35.8-80 80-80L432 0c44.2 0 80 35.8 80 80l0 224c0 44.2-35.8 80-80 80l-16 0 0-48 16 0c17.7 0 32-14.3 32-32l0-224c0-17.7-14.3-32-32-32zM48 448c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-192L48 256l0 192zM64 128l256 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192c0-35.3 28.7-64 64-64z"],
|
|
14722
|
+
"WindowMaximize": [512, 512, [], "solid", "M.3 89.5C.1 91.6 0 93.8 0 96L0 224 0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-192 0-128c0-35.3-28.7-64-64-64L64 32c-2.2 0-4.4 .1-6.5 .3c-9.2 .9-17.8 3.8-25.5 8.2C21.8 46.5 13.4 55.1 7.7 65.5c-3.9 7.3-6.5 15.4-7.4 24zM48 224l416 0 0 192c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16l0-192z"],
|
|
14723
|
+
"WindowMinimize": [512, 512, [], "solid", "M24 432c-13.3 0-24 10.7-24 24s10.7 24 24 24l464 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 432z"],
|
|
14724
|
+
"VrCardboard": [640, 512, ["VR"], "solid", "M576 64L64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l120.4 0c24.2 0 46.4-13.7 57.2-35.4l32-64c8.8-17.5 26.7-28.6 46.3-28.6s37.5 11.1 46.3 28.6l32 64c10.8 21.7 33 35.4 57.2 35.4L576 448c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64zM96 240a64 64 0 1 1 128 0A64 64 0 1 1 96 240zm384-64a64 64 0 1 1 0 128 64 64 0 1 1 0-128z"],
|
|
14725
|
+
"C": [32, 32, [], "solid", "M29.86 8c-.224-.385-.532-.724-.871-.921L17.234.292c-.677-.391-1.787-.391-2.464 0L3.015 7.079C2.338 7.47 1.78 8.432 1.78 9.214v13.573c0 .391.14.828.364 1.213.219.385.532.724.871.917l11.749 6.791c.683.391 1.787.391 2.464 0l11.755-6.791c.339-.193.647-.532.871-.917s.359-.823.359-1.213V9.214c.005-.391-.135-.828-.353-1.213zM16 25.479c-5.229 0-9.479-4.249-9.479-9.479S10.77 6.521 16 6.521a9.51 9.51 0 0 1 8.208 4.733l-4.104 2.376A4.76 4.76 0 0 0 16 11.259c-2.615 0-4.74 2.125-4.74 4.74s2.125 4.74 4.74 4.74a4.76 4.76 0 0 0 4.104-2.371l4.104 2.376A9.51 9.51 0 0 1 16 25.479z", { svgClass: "stroke-none" }],
|
|
14726
|
+
"CPlusPlus": [32, 32, [], "solid", "M29.86 8c-.224-.385-.532-.724-.871-.921L17.234.292c-.677-.391-1.787-.391-2.464 0L3.015 7.079C2.338 7.47 1.78 8.432 1.78 9.214v13.573c0 .391.14.828.364 1.213c.219.385.532.724.871.917l11.749 6.791c.683.391 1.787.391 2.464 0l11.755-6.791c.339-.193.647-.532.871-.917s.359-.823.359-1.213V9.214c.005-.391-.135-.828-.353-1.213zM16 25.479c-5.229 0-9.479-4.249-9.479-9.479S10.77 6.521 16 6.521a9.51 9.51 0 0 1 8.208 4.733l-4.104 2.376A4.76 4.76 0 0 0 16 11.259c-2.615 0-4.74 2.125-4.74 4.74s2.125 4.74 4.74 4.74a4.76 4.76 0 0 0 4.104-2.371l4.104 2.376A9.51 9.51 0 0 1 16 25.477zm9.479-8.952h-1.052v1.052H23.37v-1.052h-1.052v-1.053h1.052v-1.052h1.057v1.052h1.052zm3.948 0h-1.052v1.052h-1.052v-1.052h-1.052v-1.053h1.052v-1.052h1.052v1.052h1.052z", { svgClass: "stroke-none" }],
|
|
14727
|
+
"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"],
|
|
14728
|
+
"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"],
|
|
14729
|
+
"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"],
|
|
14730
|
+
"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"],
|
|
14731
|
+
"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"],
|
|
14732
|
+
"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"],
|
|
14733
|
+
"Python": [448, 512, [], "solid", "M439.8 200.5c-7.7-30.9-22.3-54.2-53.4-54.2h-40.1v47.4c0 36.8-31.2 67.8-66.8 67.8H172.7c-29.2 0-53.4 25-53.4 54.3v101.8c0 29 25.2 46 53.4 54.3 33.8 9.9 66.3 11.7 106.8 0 26.9-7.8 53.4-23.5 53.4-54.3v-40.7H226.2v-13.6h160.2c31.1 0 42.6-21.7 53.4-54.2 11.2-33.5 10.7-65.7 0-108.6zM286.2 404c11.1 0 20.1 9.1 20.1 20.3 0 11.3-9 20.4-20.1 20.4-11 0-20.1-9.2-20.1-20.4.1-11.3 9.1-20.3 20.1-20.3zM167.8 248.1h106.8c29.7 0 53.4-24.5 53.4-54.3V91.9c0-29-24.4-50.7-53.4-55.6-35.8-5.9-74.7-5.6-106.8.1-45.2 8-53.4 24.7-53.4 55.6v40.7h106.9v13.6h-147c-31.1 0-58.3 18.7-66.8 54.2-9.8 40.7-10.2 66.1 0 108.6 7.6 31.6 25.7 54.2 56.8 54.2H101v-48.8c0-35.3 30.5-66.4 66.8-66.4zm-6.7-142.6c-11.1 0-20.1-9.1-20.1-20.3.1-11.3 9-20.4 20.1-20.4 11 0 20.1 9.2 20.1 20.4s-9 20.3-20.1 20.3z"],
|
|
14734
|
+
"Markdown": [640, 512, [], "solid", "M593.8 59.1H46.2C20.7 59.1 0 79.8 0 105.2v301.5c0 25.5 20.7 46.2 46.2 46.2h547.7c25.5 0 46.2-20.7 46.1-46.1V105.2c0-25.4-20.7-46.1-46.2-46.1zM338.5 360.6H277v-120l-61.5 76.9-61.5-76.9v120H92.3V151.4h61.5l61.5 76.9 61.5-76.9h61.5v209.2zm135.3 3.1L381.5 256H443V151.4h61.5V256H566z"],
|
|
14735
|
+
"Microsoft": [448, 512, [], "solid", "M0 32h214.6v214.6H0V32zm233.4 0H448v214.6H233.4V32zM0 265.4h214.6V480H0V265.4zm233.4 0H448V480H233.4V265.4z"],
|
|
14736
|
+
"Npm": [576, 512, [], "solid", "M288 288h-32v-64h32v64zm288-128v192H288v32H160v-32H0V160h576zm-416 32H32v128h64v-96h32v96h32V192zm160 0H192v160h64v-32h64V192zm224 0H352v128h64v-96h32v96h32v-96h32v96h32V192z"],
|
|
14737
|
+
"Reddit": [512, 512, [], "solid", "M0 256C0 114.6 114.6 0 256 0S512 114.6 512 256s-114.6 256-256 256L37.1 512c-13.7 0-20.5-16.5-10.9-26.2L75 437C28.7 390.7 0 326.7 0 256zM349.6 153.6c23.6 0 42.7-19.1 42.7-42.7s-19.1-42.7-42.7-42.7c-20.6 0-37.8 14.6-41.8 34c-34.5 3.7-61.4 33-61.4 68.4l0 .2c-37.5 1.6-71.8 12.3-99 29.1c-10.1-7.8-22.8-12.5-36.5-12.5c-33 0-59.8 26.8-59.8 59.8c0 24 14.1 44.6 34.4 54.1c2 69.4 77.6 125.2 170.6 125.2s168.7-55.9 170.6-125.3c20.2-9.6 34.1-30.2 34.1-54c0-33-26.8-59.8-59.8-59.8c-13.7 0-26.3 4.6-36.4 12.4c-27.4-17-62.1-27.7-100-29.1l0-.2c0-25.4 18.9-46.5 43.4-49.9l0 0c4.4 18.8 21.3 32.8 41.5 32.8zM177.1 246.9c16.7 0 29.5 17.6 28.5 39.3s-13.5 29.6-30.3 29.6s-31.4-8.8-30.4-30.5s15.4-38.3 32.1-38.3zm190.1 38.3c1 21.7-13.7 30.5-30.4 30.5s-29.3-7.9-30.3-29.6c-1-21.7 11.8-39.3 28.5-39.3s31.2 16.6 32.1 38.3zm-48.1 56.7c-10.3 24.6-34.6 41.9-63 41.9s-52.7-17.3-63-41.9c-1.2-2.9 .8-6.2 3.9-6.5c18.4-1.9 38.3-2.9 59.1-2.9s40.7 1 59.1 2.9c3.1 .3 5.1 3.6 3.9 6.5z"],
|
|
14738
|
+
"Rust": [512, 512, [], "solid", "M508.52,249.75,486.7,236.24c-.17-2-.34-3.93-.55-5.88l18.72-17.5a7.35,7.35,0,0,0-2.44-12.25l-24-9c-.54-1.88-1.08-3.78-1.67-5.64l15-20.83a7.35,7.35,0,0,0-4.79-11.54l-25.42-4.15c-.9-1.73-1.79-3.45-2.73-5.15l10.68-23.42a7.35,7.35,0,0,0-6.95-10.39l-25.82.91q-1.79-2.22-3.61-4.4L439,81.84A7.36,7.36,0,0,0,430.16,73L405,78.93q-2.17-1.83-4.4-3.61l.91-25.82a7.35,7.35,0,0,0-10.39-7L367.7,53.23c-1.7-.94-3.43-1.84-5.15-2.73L358.4,25.08a7.35,7.35,0,0,0-11.54-4.79L326,35.26c-1.86-.59-3.75-1.13-5.64-1.67l-9-24a7.35,7.35,0,0,0-12.25-2.44l-17.5,18.72c-1.95-.21-3.91-.38-5.88-.55L262.25,3.48a7.35,7.35,0,0,0-12.5,0L236.24,25.3c-2,.17-3.93.34-5.88.55L212.86,7.13a7.35,7.35,0,0,0-12.25,2.44l-9,24c-1.89.55-3.79,1.08-5.66,1.68l-20.82-15a7.35,7.35,0,0,0-11.54,4.79l-4.15,25.41c-1.73.9-3.45,1.79-5.16,2.73L120.88,42.55a7.35,7.35,0,0,0-10.39,7l.92,25.81c-1.49,1.19-3,2.39-4.42,3.61L81.84,73A7.36,7.36,0,0,0,73,81.84L78.93,107c-1.23,1.45-2.43,2.93-3.62,4.41l-25.81-.91a7.42,7.42,0,0,0-6.37,3.26,7.35,7.35,0,0,0-.57,7.13l10.66,23.41c-.94,1.7-1.83,3.43-2.73,5.16L25.08,153.6a7.35,7.35,0,0,0-4.79,11.54l15,20.82c-.59,1.87-1.13,3.77-1.68,5.66l-24,9a7.35,7.35,0,0,0-2.44,12.25l18.72,17.5c-.21,1.95-.38,3.91-.55,5.88L3.48,249.75a7.35,7.35,0,0,0,0,12.5L25.3,275.76c.17,2,.34,3.92.55,5.87L7.13,299.13a7.35,7.35,0,0,0,2.44,12.25l24,9c.55,1.89,1.08,3.78,1.68,5.65l-15,20.83a7.35,7.35,0,0,0,4.79,11.54l25.42,4.15c.9,1.72,1.79,3.45,2.73,5.14L42.56,391.12a7.35,7.35,0,0,0,.57,7.13,7.13,7.13,0,0,0,6.37,3.26l25.83-.91q1.77,2.22,3.6,4.4L73,430.16A7.36,7.36,0,0,0,81.84,439L107,433.07q2.18,1.83,4.41,3.61l-.92,25.82a7.35,7.35,0,0,0,10.39,6.95l23.43-10.68c1.69.94,3.42,1.83,5.14,2.73l4.15,25.42a7.34,7.34,0,0,0,11.54,4.78l20.83-15c1.86.6,3.76,1.13,5.65,1.68l9,24a7.36,7.36,0,0,0,12.25,2.44l17.5-18.72c1.95.21,3.92.38,5.88.55l13.51,21.82a7.35,7.35,0,0,0,12.5,0l13.51-21.82c2-.17,3.93-.34,5.88-.56l17.5,18.73a7.36,7.36,0,0,0,12.25-2.44l9-24c1.89-.55,3.78-1.08,5.65-1.68l20.82,15a7.34,7.34,0,0,0,11.54-4.78l4.15-25.42c1.72-.9,3.45-1.79,5.15-2.73l23.42,10.68a7.35,7.35,0,0,0,10.39-6.95l-.91-25.82q2.22-1.79,4.4-3.61L430.16,439a7.36,7.36,0,0,0,8.84-8.84L433.07,405q1.83-2.17,3.61-4.4l25.82.91a7.23,7.23,0,0,0,6.37-3.26,7.35,7.35,0,0,0,.58-7.13L458.77,367.7c.94-1.7,1.83-3.43,2.73-5.15l25.42-4.15a7.35,7.35,0,0,0,4.79-11.54l-15-20.83c.59-1.87,1.13-3.76,1.67-5.65l24-9a7.35,7.35,0,0,0,2.44-12.25l-18.72-17.5c.21-1.95.38-3.91.55-5.87l21.82-13.51a7.35,7.35,0,0,0,0-12.5Zm-151,129.08A13.91,13.91,0,0,0,341,389.51l-7.64,35.67A187.51,187.51,0,0,1,177,424.44l-7.64-35.66a13.87,13.87,0,0,0-16.46-10.68l-31.51,6.76a187.38,187.38,0,0,1-16.26-19.21H258.3c1.72,0,2.89-.29,2.89-1.91V309.55c0-1.57-1.17-1.91-2.89-1.91H213.47l.05-34.35H262c4.41,0,23.66,1.28,29.79,25.87,1.91,7.55,6.17,32.14,9.06,40,2.89,8.82,14.6,26.46,27.1,26.46H407a187.3,187.3,0,0,1-17.34,20.09Zm25.77,34.49A15.24,15.24,0,1,1,368,398.08h.44A15.23,15.23,0,0,1,383.24,413.32Zm-225.62-.68a15.24,15.24,0,1,1-15.25-15.25h.45A15.25,15.25,0,0,1,157.62,412.64ZM69.57,234.15l32.83-14.6a13.88,13.88,0,0,0,7.06-18.33L102.69,186h26.56V305.73H75.65A187.65,187.65,0,0,1,69.57,234.15ZM58.31,198.09a15.24,15.24,0,0,1,15.23-15.25H74a15.24,15.24,0,1,1-15.67,15.24Zm155.16,24.49.05-35.32h63.26c3.28,0,23.07,3.77,23.07,18.62,0,12.29-15.19,16.7-27.68,16.7ZM399,306.71c-9.8,1.13-20.63-4.12-22-10.09-5.78-32.49-15.39-39.4-30.57-51.4,18.86-11.95,38.46-29.64,38.46-53.26,0-25.52-17.49-41.59-29.4-49.48-16.76-11-35.28-13.23-40.27-13.23H116.32A187.49,187.49,0,0,1,221.21,70.06l23.47,24.6a13.82,13.82,0,0,0,19.6.44l26.26-25a187.51,187.51,0,0,1,128.37,91.43l-18,40.57A14,14,0,0,0,408,220.43l34.59,15.33a187.12,187.12,0,0,1,.4,32.54H423.71c-1.91,0-2.69,1.27-2.69,3.13v8.82C421,301,409.31,305.58,399,306.71ZM240,60.21A15.24,15.24,0,0,1,255.21,45h.45A15.24,15.24,0,1,1,240,60.21ZM436.84,214a15.24,15.24,0,1,1,0-30.48h.44a15.24,15.24,0,0,1-.44,30.48Z"],
|
|
14739
|
+
"Ubuntu": [576, 512, [], "solid", "M469.2 75A75.6 75.6 0 1 0 317.9 75a75.6 75.6 0 1 0 151.2 0zM154.2 240.7A75.6 75.6 0 1 0 3 240.7a75.6 75.6 0 1 0 151.2 0zM57 346C75.6 392.9 108 433 150 461.1s91.5 42.6 142 41.7c-14.7-18.6-22.9-41.5-23.2-65.2c-6.8-.9-13.3-2.1-19.5-3.4c-26.8-5.7-51.9-17.3-73.6-34s-39.3-38.1-51.7-62.5c-20.9 9.9-44.5 12.8-67.1 8.2zm395.1 89.8a75.6 75.6 0 1 0 -151.2 0 75.6 75.6 0 1 0 151.2 0zM444 351.6c18.5 14.8 31.6 35.2 37.2 58.2c33.3-41.3 52.6-92.2 54.8-145.2s-12.5-105.4-42.2-149.4c-8.6 21.5-24 39.6-43.8 51.6c15.4 28.6 22.9 60.8 21.9 93.2s-10.7 64-28 91.6zM101.1 135.4c12.4 2.7 24.3 7.5 35.1 14.3c16.6-24.2 38.9-44.1 64.8-58S255.8 70.4 285.2 70c.2-5.9 .9-11.9 2-17.7c3.6-16.7 11.1-32.3 21.8-45.5c-47.7-3.8-95.4 6-137.6 28.5S94.3 91.7 70.8 133.4c2.7-.2 5.3-.3 8-.3c7.5 0 15 .8 22.4 2.3z"],
|
|
14740
|
+
"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"],
|
|
14741
|
+
"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"],
|
|
14742
|
+
"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"],
|
|
14743
|
+
// Internals Override
|
|
14744
|
+
"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"],
|
|
14745
|
+
"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"],
|
|
14746
|
+
"BookUser": [576, 512, [], "regular", "M512 80c8.8 0 16 7.2 16 16l0 320c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16L48 96c0-8.8 7.2-16 16-16l448 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 32zM208 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm-32 32c-44.2 0-80 35.8-80 80c0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16c0-44.2-35.8-80-80-80l-64 0zM376 144c-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"],
|
|
14747
|
+
"Copy": [448, 512, [], "regular", "M384 336l-192 0c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l140.1 0L400 115.9 400 320c0 8.8-7.2 16-16 16zM192 384l192 0c35.3 0 64-28.7 64-64l0-204.1c0-12.7-5.1-24.9-14.1-33.9L366.1 14.1c-9-9-21.2-14.1-33.9-14.1L192 0c-35.3 0-64 28.7-64 64l0 256c0 35.3 28.7 64 64 64zM64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-32-48 0 0 32c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l32 0 0-48-32 0z"],
|
|
14748
|
+
"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"],
|
|
14749
|
+
"EyeOff": [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"],
|
|
14750
|
+
"StickyNote": [448, 512, [], "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"],
|
|
14751
|
+
"CreditCard": [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"],
|
|
14752
|
+
"Hourglass": [384, 512, [], "regular", "M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48l8 0 0 19c0 40.3 16 79 44.5 107.5L158.1 256 76.5 337.5C48 366 32 404.7 32 445l0 19-8 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l336 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0-19c0-40.3-16-79-44.5-107.5L225.9 256l81.5-81.5C336 146 352 107.3 352 67l0-19 8 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 0zM192 289.9l81.5 81.5C293 391 304 417.4 304 445l0 19L80 464l0-19c0-27.6 11-54 30.5-73.5L192 289.9zm0-67.9l-81.5-81.5C91 121 80 94.6 80 67l0-19 224 0 0 19c0 27.6-11 54-30.5 73.5L192 222.1z"],
|
|
14753
|
+
// Solid Variants
|
|
14754
|
+
"Bell": [448, 512, [], "solid", "M224 0c-17.7 0-32 14.3-32 32l0 19.2C119 66 64 130.6 64 208l0 18.8c0 47-17.3 92.4-48.5 127.6l-7.4 8.3c-8.4 9.4-10.4 22.9-5.3 34.4S19.4 416 32 416l384 0c12.6 0 24-7.4 29.2-18.9s3.1-25-5.3-34.4l-7.4-8.3C401.3 319.2 384 273.9 384 226.8l0-18.8c0-77.4-55-142-128-156.8L256 32c0-17.7-14.3-32-32-32zm45.3 493.3c12-12 18.7-28.3 18.7-45.3l-64 0-64 0c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7z"],
|
|
14755
|
+
"BellOff": [640, 512, [], "solid", "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.7l-90.2-70.7c.2-.4 .4-.9 .6-1.3c5.2-11.5 3.1-25-5.3-34.4l-7.4-8.3C497.3 319.2 480 273.9 480 226.8l0-18.8c0-77.4-55-142-128-156.8L352 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 19.2c-42.6 8.6-79 34.2-102 69.3L38.8 5.1zM406.2 416L160 222.1l0 4.8c0 47-17.3 92.4-48.5 127.6l-7.4 8.3c-8.4 9.4-10.4 22.9-5.3 34.4S115.4 416 128 416l278.2 0zm-40.9 77.3c12-12 18.7-28.3 18.7-45.3l-64 0-64 0c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7z"],
|
|
14756
|
+
"Compass": [512, 512, [], "solid", "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm50.7-186.9L162.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"],
|
|
14757
|
+
"File": [384, 512, [], "solid", "M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 288c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128z"],
|
|
14758
|
+
"MessageCircle": [512, 512, [], "solid", "M512 240c0 114.9-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.6C73.6 471.1 44.7 480 16 480c-6.5 0-12.3-3.9-14.8-9.9c-2.5-6-1.1-12.8 3.4-17.4c0 0 0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.3-.3c.3-.3 .7-.7 1.3-1.4c1.1-1.2 2.8-3.1 4.9-5.7c4.1-5 9.6-12.4 15.2-21.6c10-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 208z"],
|
|
14759
|
+
"Inbox": [512, 512, [], "solid", "M121 32C91.6 32 66 52 58.9 80.5L1.9 308.4C.6 313.5 0 318.7 0 323.9L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-92.1c0-5.2-.6-10.4-1.9-15.5l-57-227.9C446 52 420.4 32 391 32L121 32zm0 64l270 0 48 192-51.2 0c-12.1 0-23.2 6.8-28.6 17.7l-14.3 28.6c-5.4 10.8-16.5 17.7-28.6 17.7l-120.4 0c-12.1 0-23.2-6.8-28.6-17.7l-14.3-28.6c-5.4-10.8-16.5-17.7-28.6-17.7L73 288 121 96z"],
|
|
14760
|
+
"Mail": [512, 512, [], "solid", "M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0L492.8 150.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48L48 64zM0 176L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-208L294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176z"],
|
|
14761
|
+
"MailOpen": [512, 512, [], "solid", "M64 208.1L256 65.9 448 208.1l0 47.4L289.5 373c-9.7 7.2-21.4 11-33.5 11s-23.8-3.9-33.5-11L64 255.5l0-47.4zM256 0c-12.1 0-23.8 3.9-33.5 11L25.9 156.7C9.6 168.8 0 187.8 0 208.1L0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-239.9c0-20.3-9.6-39.4-25.9-51.4L289.5 11C279.8 3.9 268.1 0 256 0z"],
|
|
14762
|
+
"Mic": [384, 512, [], "solid", "M192 0C139 0 96 43 96 96l0 160c0 53 43 96 96 96s96-43 96-96l0-160c0-53-43-96-96-96zM64 216c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 89.1 66.2 162.7 152 174.4l0 33.6-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0 72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-33.6c85.8-11.7 152-85.3 152-174.4l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 70.7-57.3 128-128 128s-128-57.3-128-128l0-40z"],
|
|
14763
|
+
"MicOff": [640, 512, [], "solid", "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.7L472.1 344.7c15.2-26 23.9-56.3 23.9-88.7l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 21.2-5.1 41.1-14.2 58.7L416 300.8 416 96c0-53-43-96-96-96s-96 43-96 96l0 54.3L38.8 5.1zM344 430.4c20.4-2.8 39.7-9.1 57.3-18.2l-43.1-33.9C346.1 382 333.3 384 320 384c-70.7 0-128-57.3-128-128l0-8.7L144.7 210c-.5 1.9-.7 3.9-.7 6l0 40c0 89.1 66.2 162.7 152 174.4l0 33.6-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0 72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-33.6z"],
|
|
14764
|
+
"Link": [640, 512, ["Chain"], "solid", "M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0L579.8 267.7zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5L217.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0L60.2 244.3z"],
|
|
14765
|
+
"House": [576, 512, [], "solid", "M575.8 255.5c0 18-15 32.1-32 32.1l-32 0 .7 160.2c0 2.7-.2 5.4-.5 8.1l0 16.2c0 22.1-17.9 40-40 40l-16 0c-1.1 0-2.2 0-3.3-.1c-1.4 .1-2.8 .1-4.2 .1L416 512l-24 0c-22.1 0-40-17.9-40-40l0-24 0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 64 0 24c0 22.1-17.9 40-40 40l-24 0-31.9 0c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2l-16 0c-22.1 0-40-17.9-40-40l0-112c0-.9 0-1.9 .1-2.8l0-69.7-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L564.8 231.5c8 7 12 15 11 24z"],
|
|
14766
|
+
"Gamepad": [640, 512, [], "solid", "M192 64C86 64 0 150 0 256S86 448 192 448l256 0c106 0 192-86 192-192s-86-192-192-192L192 64zM496 168a40 40 0 1 1 0 80 40 40 0 1 1 0-80zM392 304a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM168 200c0-13.3 10.7-24 24-24s24 10.7 24 24l0 32 32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0 0 32c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-32-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l32 0 0-32z"],
|
|
14767
|
+
"Camera": [512, 512, [], "solid", "M149.1 64.8L138.7 96 64 96C28.7 96 0 124.7 0 160L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-74.7 0L362.9 64.8C356.4 45.2 338.1 32 317.4 32L194.6 32c-20.7 0-39 13.2-45.5 32.8zM256 192a96 96 0 1 1 0 192 96 96 0 1 1 0-192z"],
|
|
14768
|
+
"Printer": [512, 512, [], "solid", "M128 0C92.7 0 64 28.7 64 64l0 96 64 0 0-96 226.7 0L384 93.3l0 66.7 64 0 0-66.7c0-17-6.7-33.3-18.7-45.3L400 18.7C388 6.7 371.7 0 354.7 0L128 0zM384 352l0 32 0 64-256 0 0-64 0-16 0-16 256 0zm64 32l32 0c17.7 0 32-14.3 32-32l0-96c0-35.3-28.7-64-64-64L64 192c-35.3 0-64 28.7-64 64l0 96c0 17.7 14.3 32 32 32l32 0 0 64c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-64zM432 248a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"],
|
|
14769
|
+
"Server": [512, 512, [], "solid", "M64 32C28.7 32 0 60.7 0 96l0 64c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-64c0-35.3-28.7-64-64-64L64 32zm280 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm48 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM64 288c-35.3 0-64 28.7-64 64l0 64c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-64c0-35.3-28.7-64-64-64L64 288zm280 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm56 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"],
|
|
14770
|
+
"Calendar": [448, 512, [], "solid", "M96 32l0 32L48 64C21.5 64 0 85.5 0 112l0 48 448 0 0-48c0-26.5-21.5-48-48-48l-48 0 0-32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32L160 64l0-32c0-17.7-14.3-32-32-32S96 14.3 96 32zM448 192L0 192 0 464c0 26.5 21.5 48 48 48l352 0c26.5 0 48-21.5 48-48l0-272z"],
|
|
14771
|
+
"Pipette": [512, 512, [], "solid", "M341.6 29.2L240.1 130.8l-9.4-9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4L482.8 170.4c39-39 39-102.2 0-141.1s-102.2-39-141.1 0zM55.4 323.3c-15 15-23.4 35.4-23.4 56.6l0 42.4L5.4 462.2c-8.5 12.7-6.8 29.6 4 40.4s27.7 12.5 40.4 4L89.7 480l42.4 0c21.2 0 41.6-8.4 56.6-23.4L309.4 335.9l-45.3-45.3L143.4 411.3c-3 3-7.1 4.7-11.3 4.7L96 416l0-36.1c0-4.2 1.7-8.3 4.7-11.3L221.4 247.9l-45.3-45.3L55.4 323.3z"],
|
|
14772
|
+
"Scroll": [576, 512, [], "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"],
|
|
14773
|
+
"Smartphone": [384, 512, [], "solid", "M16 64C16 28.7 44.7 0 80 0L304 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L80 512c-35.3 0-64-28.7-64-64L16 64zM144 448c0 8.8 7.2 16 16 16l64 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-64 0c-8.8 0-16 7.2-16 16zM304 64L80 64l0 320 224 0 0-320z"],
|
|
14774
|
+
"Settings": [512, 512, [], "solid", "M495.9 166.6c3.2 8.7 .5 18.4-6.4 24.6l-43.3 39.4c1.1 8.3 1.7 16.8 1.7 25.4s-.6 17.1-1.7 25.4l43.3 39.4c6.9 6.2 9.6 15.9 6.4 24.6c-4.4 11.9-9.7 23.3-15.8 34.3l-4.7 8.1c-6.6 11-14 21.4-22.1 31.2c-5.9 7.2-15.7 9.6-24.5 6.8l-55.7-17.7c-13.4 10.3-28.2 18.9-44 25.4l-12.5 57.1c-2 9.1-9 16.3-18.2 17.8c-13.8 2.3-28 3.5-42.5 3.5s-28.7-1.2-42.5-3.5c-9.2-1.5-16.2-8.7-18.2-17.8l-12.5-57.1c-15.8-6.5-30.6-15.1-44-25.4L83.1 425.9c-8.8 2.8-18.6 .3-24.5-6.8c-8.1-9.8-15.5-20.2-22.1-31.2l-4.7-8.1c-6.1-11-11.4-22.4-15.8-34.3c-3.2-8.7-.5-18.4 6.4-24.6l43.3-39.4C64.6 273.1 64 264.6 64 256s.6-17.1 1.7-25.4L22.4 191.2c-6.9-6.2-9.6-15.9-6.4-24.6c4.4-11.9 9.7-23.3 15.8-34.3l4.7-8.1c6.6-11 14-21.4 22.1-31.2c5.9-7.2 15.7-9.6 24.5-6.8l55.7 17.7c13.4-10.3 28.2-18.9 44-25.4l12.5-57.1c2-9.1 9-16.3 18.2-17.8C227.3 1.2 241.5 0 256 0s28.7 1.2 42.5 3.5c9.2 1.5 16.2 8.7 18.2 17.8l12.5 57.1c15.8 6.5 30.6 15.1 44 25.4l55.7-17.7c8.8-2.8 18.6-.3 24.5 6.8c8.1 9.8 15.5 20.2 22.1 31.2l4.7 8.1c6.1 11 11.4 22.4 15.8 34.3zM256 336a80 80 0 1 0 0-160 80 80 0 1 0 0 160z"],
|
|
14775
|
+
"Map": [576, 512, [], "solid", "M384 476.1L192 421.2l0-385.3L384 90.8l0 385.3zm32-1.2l0-386.5L543.1 37.5c15.8-6.3 32.9 5.3 32.9 22.3l0 334.8c0 9.8-6 18.6-15.1 22.3L416 474.8zM15.1 95.1L160 37.2l0 386.5L32.9 474.5C17.1 480.8 0 469.2 0 452.2L0 117.4c0-9.8 6-18.6 15.1-22.3z"],
|
|
14776
|
+
"Folder": [512, 512, [], "solid", "M64 480H448c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H288c-10.1 0-19.6-4.7-25.6-12.8L243.2 57.6C231.1 41.5 212.1 32 192 32H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64z"],
|
|
14777
|
+
"FolderOpen": [576, 512, [], "solid", "M384 480l48 0c11.4 0 21.9-6 27.6-15.9l112-192c5.8-9.9 5.8-22.1 .1-32.1S555.5 224 544 224l-400 0c-11.4 0-21.9 6-27.6 15.9L48 357.1 48 96c0-8.8 7.2-16 16-16l117.5 0c4.2 0 8.3 1.7 11.3 4.7l26.5 26.5c21 21 49.5 32.8 79.2 32.8L416 144c8.8 0 16 7.2 16 16l0 32 48 0 0-32c0-35.3-28.7-64-64-64L298.5 96c-17 0-33.3-6.7-45.3-18.7L226.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 64l23.7 0L384 480z"],
|
|
14778
|
+
"FolderClosed": [512, 512, [], "solid", "M448 480L64 480c-35.3 0-64-28.7-64-64L0 192l512 0 0 224c0 35.3-28.7 64-64 64zm64-320L0 160 0 96C0 60.7 28.7 32 64 32l128 0c20.1 0 39.1 9.5 51.2 25.6l19.2 25.6c6 8.1 15.5 12.8 25.6 12.8l160 0c35.3 0 64 28.7 64 64z"],
|
|
14779
|
+
"Play": [384, 512, [], "solid", "M73 39c-14.8-9.1-33.4-9.4-48.5-.9S0 62.6 0 80L0 432c0 17.4 9.4 33.4 24.5 41.9s33.7 8.1 48.5-.9L361 297c14.3-8.7 23-24.2 23-41s-8.7-32.2-23-41L73 39z"],
|
|
14780
|
+
"Pause": [320, 512, [], "solid", "M48 64C21.5 64 0 85.5 0 112L0 400c0 26.5 21.5 48 48 48l32 0c26.5 0 48-21.5 48-48l0-288c0-26.5-21.5-48-48-48L48 64zm192 0c-26.5 0-48 21.5-48 48l0 288c0 26.5 21.5 48 48 48l32 0c26.5 0 48-21.5 48-48l0-288c0-26.5-21.5-48-48-48l-32 0z"],
|
|
14781
|
+
"Stop": [384, 512, [], "solid", "M0 128C0 92.7 28.7 64 64 64H320c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128z"],
|
|
14782
|
+
"Image": [512, 512, [], "solid", "M448 80c8.8 0 16 7.2 16 16l0 319.8-5-6.5-136-176c-4.5-5.9-11.6-9.3-19-9.3s-14.4 3.4-19 9.3L202 340.7l-30.5-42.7C167 291.7 159.8 288 152 288s-15 3.7-19.5 10.1l-80 112L48 416.3l0-.3L48 96c0-8.8 7.2-16 16-16l384 0zM64 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 32zm80 192a48 48 0 1 0 0-96 48 48 0 1 0 0 96z"],
|
|
14783
|
+
"Images": [576, 512, [], "solid", "M160 80l352 0c8.8 0 16 7.2 16 16l0 224c0 8.8-7.2 16-16 16l-21.2 0L388.1 178.9c-4.4-6.8-12-10.9-20.1-10.9s-15.7 4.1-20.1 10.9l-52.2 79.8-12.4-16.9c-4.5-6.2-11.7-9.8-19.4-9.8s-14.8 3.6-19.4 9.8L175.6 336 160 336c-8.8 0-16-7.2-16-16l0-224c0-8.8 7.2-16 16-16zM96 96l0 224c0 35.3 28.7 64 64 64l352 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L160 32c-35.3 0-64 28.7-64 64zM48 120c0-13.3-10.7-24-24-24S0 106.7 0 120L0 344c0 75.1 60.9 136 136 136l320 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-320 0c-48.6 0-88-39.4-88-88l0-224zm208 24a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"],
|
|
14784
|
+
"Function": [384, 512, [], "solid", "M314.7 32c-38.8 0-73.7 23.3-88.6 59.1L170.7 224 64 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l80 0L98.9 396.3c-5 11.9-16.6 19.7-29.5 19.7L32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l37.3 0c38.8 0 73.7-23.3 88.6-59.1L213.3 288 320 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-80 0 45.1-108.3c5-11.9 16.6-19.7 29.5-19.7L352 96c17.7 0 32-14.3 32-32s-14.3-32-32-32l-37.3 0z"],
|
|
14785
|
+
"Bone": [576, 512, [], "solid", "M153.7 144.8c6.9 16.3 20.6 31.2 38.3 31.2l192 0c17.7 0 31.4-14.9 38.3-31.2C434.4 116.1 462.9 96 496 96c44.2 0 80 35.8 80 80c0 30.4-17 56.9-42 70.4c-3.6 1.9-6 5.5-6 9.6s2.4 7.7 6 9.6c25 13.5 42 40 42 70.4c0 44.2-35.8 80-80 80c-33.1 0-61.6-20.1-73.7-48.8C415.4 350.9 401.7 336 384 336l-192 0c-17.7 0-31.4 14.9-38.3 31.2C141.6 395.9 113.1 416 80 416c-44.2 0-80-35.8-80-80c0-30.4 17-56.9 42-70.4c3.6-1.9 6-5.5 6-9.6s-2.4-7.7-6-9.6C17 232.9 0 206.4 0 176c0-44.2 35.8-80 80-80c33.1 0 61.6 20.1 73.7 48.8z"],
|
|
14786
|
+
"Puzzle": [512, 512, [], "solid", "M192 104.8c0-9.2-5.8-17.3-13.2-22.8C167.2 73.3 160 61.3 160 48c0-26.5 28.7-48 64-48s64 21.5 64 48c0 13.3-7.2 25.3-18.8 34c-7.4 5.5-13.2 13.6-13.2 22.8c0 12.8 10.4 23.2 23.2 23.2l56.8 0c26.5 0 48 21.5 48 48l0 56.8c0 12.8 10.4 23.2 23.2 23.2c9.2 0 17.3-5.8 22.8-13.2c8.7-11.6 20.7-18.8 34-18.8c26.5 0 48 28.7 48 64s-21.5 64-48 64c-13.3 0-25.3-7.2-34-18.8c-5.5-7.4-13.6-13.2-22.8-13.2c-12.8 0-23.2 10.4-23.2 23.2L384 464c0 26.5-21.5 48-48 48l-56.8 0c-12.8 0-23.2-10.4-23.2-23.2c0-9.2 5.8-17.3 13.2-22.8c11.6-8.7 18.8-20.7 18.8-34c0-26.5-28.7-48-64-48s-64 21.5-64 48c0 13.3 7.2 25.3 18.8 34c7.4 5.5 13.2 13.6 13.2 22.8c0 12.8-10.4 23.2-23.2 23.2L48 512c-26.5 0-48-21.5-48-48L0 343.2C0 330.4 10.4 320 23.2 320c9.2 0 17.3 5.8 22.8 13.2C54.7 344.8 66.7 352 80 352c26.5 0 48-28.7 48-64s-21.5-64-48-64c-13.3 0-25.3 7.2-34 18.8C40.5 250.2 32.4 256 23.2 256C10.4 256 0 245.6 0 232.8L0 176c0-26.5 21.5-48 48-48l120.8 0c12.8 0 23.2-10.4 23.2-23.2z"],
|
|
14787
|
+
"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"],
|
|
14788
|
+
"LockOpen": [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"],
|
|
14789
|
+
"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"],
|
|
14790
|
+
"LogIn": [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"],
|
|
14791
|
+
"LogOut": [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"],
|
|
14792
|
+
"MousePointer": [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"],
|
|
14793
|
+
"User": [512, 512, [], "solid", "M256 288A144 144 0 1 0 256 0a144 144 0 1 0 0 288zm-94.7 32C72.2 320 0 392.2 0 481.3c0 17 13.8 30.7 30.7 30.7l450.6 0c17 0 30.7-13.8 30.7-30.7C512 392.2 439.8 320 350.7 320l-189.4 0z"],
|
|
14794
|
+
"HardDriveDownload": [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"],
|
|
14795
|
+
"HardDriveUpload": [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"],
|
|
14796
|
+
"CirclePlay": [512, 512, [], "solid", "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 256zM188.3 147.1c7.6-4.2 16.8-4.1 24.3 .5l144 88c7.1 4.4 11.5 12.1 11.5 20.5s-4.4 16.1-11.5 20.5l-144 88c-7.4 4.5-16.7 4.7-24.3 .5s-12.3-12.2-12.3-20.9l0-176c0-8.7 4.7-16.7 12.3-20.9z"],
|
|
14797
|
+
"CircleStop": [512, 512, [], "solid", "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 256zm192-96l128 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32z"],
|
|
14798
|
+
"CircleDot": [512, 512, [], "solid", "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 256zm256-96a96 96 0 1 1 0 192 96 96 0 1 1 0-192z"],
|
|
14799
|
+
"Apple": [384, 512, [], "solid", "M318.7 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7C63.3 141.2 4 184.8 4 273.5q0 39.3 14.4 81.2c12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zm-56.6-164.2c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z"],
|
|
14800
|
+
"Chrome": [512, 512, [], "solid", "M0 256C0 209.4 12.47 165.6 34.27 127.1L144.1 318.3C166 357.5 207.9 384 256 384C270.3 384 283.1 381.7 296.8 377.4L220.5 509.6C95.9 492.3 0 385.3 0 256zM365.1 321.6C377.4 302.4 384 279.1 384 256C384 217.8 367.2 183.5 340.7 160H493.4C505.4 189.6 512 222.1 512 256C512 397.4 397.4 511.1 256 512L365.1 321.6zM477.8 128H256C193.1 128 142.3 172.1 130.5 230.7L54.19 98.47C101 38.53 174 0 256 0C350.8 0 433.5 51.48 477.8 128V128zM168 256C168 207.4 207.4 168 256 168C304.6 168 344 207.4 344 256C344 304.6 304.6 344 256 344C207.4 344 168 304.6 168 256z"],
|
|
14801
|
+
"Facebook": [512, 512, [], "solid", "M512 256C512 114.6 397.4 0 256 0S0 114.6 0 256C0 376 82.7 476.8 194.2 504.5V334.2H141.4V256h52.8V222.3c0-87.1 39.4-127.5 125-127.5c16.2 0 44.2 3.2 55.7 6.4V172c-6-.6-16.5-1-29.6-1c-42 0-58.2 15.9-58.2 57.2V256h83.6l-14.4 78.2H287V510.1C413.8 494.8 512 386.9 512 256h0z"],
|
|
14802
|
+
"Github": [496, 512, [], "solid", "M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"],
|
|
14803
|
+
"Youtube": [576, 512, [], "solid", "M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z"],
|
|
14880
14804
|
// Some Aliases
|
|
14881
|
-
"
|
|
14882
|
-
"
|
|
14883
|
-
"
|
|
14884
|
-
"
|
|
14885
|
-
"
|
|
14886
|
-
"
|
|
14887
|
-
"
|
|
14888
|
-
"
|
|
14889
|
-
"
|
|
14890
|
-
"
|
|
14891
|
-
|
|
14892
|
-
|
|
14893
|
-
|
|
14805
|
+
"VR": "VrCardboard",
|
|
14806
|
+
"Script": "Scroll",
|
|
14807
|
+
"Media": "PhotoFilm",
|
|
14808
|
+
"CC": "ClosedCaptioning",
|
|
14809
|
+
"ASL": "HandsAslInterpreting",
|
|
14810
|
+
"HandRock": "HandBackFist",
|
|
14811
|
+
"Chain": "Link",
|
|
14812
|
+
"ChainBroken": "LinkOff",
|
|
14813
|
+
"ChainOff": "LinkOff",
|
|
14814
|
+
"Unlink": "LinkOff"
|
|
14815
|
+
}
|
|
14816
|
+
|
|
14817
|
+
// Alias for Lucide Icons
|
|
14818
|
+
LX.LucideIconAlias = {
|
|
14819
|
+
"Stop": "Square",
|
|
14820
|
+
"Refresh": "RefreshCw",
|
|
14821
|
+
"Left": "ChevronLeft",
|
|
14822
|
+
"Right": "ChevronRight",
|
|
14823
|
+
"Up": "ChevronUp",
|
|
14824
|
+
"Down": "ChevronDown",
|
|
14825
|
+
"MenuArrows": "ChevronsUpDown",
|
|
14826
|
+
"RotateForward": "RotateCw",
|
|
14827
|
+
"RotateRight": "RotateCw",
|
|
14828
|
+
"RotateBack": "RotateCcw",
|
|
14829
|
+
"RotateLeft": "RotateCcw",
|
|
14894
14830
|
}
|
|
14895
14831
|
|
|
14896
14832
|
})( typeof(window) != 'undefined' ? window : (typeof(self) != 'undefined' ? self : global ) );
|