lexgui 0.6.11 → 0.7.0

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.
Files changed (46) hide show
  1. package/README.md +14 -9
  2. package/build/{components → extensions}/audio.js +11 -11
  3. package/build/{components → extensions}/codeeditor.js +109 -74
  4. package/build/{components → extensions}/docmaker.js +10 -3
  5. package/build/{components → extensions}/imui.js +19 -12
  6. package/build/{components → extensions}/nodegraph.js +1 -1
  7. package/build/{components → extensions}/timeline.js +150 -94
  8. package/build/{components → extensions}/videoeditor.js +1 -1
  9. package/build/lexgui-docs.css +9 -9
  10. package/build/lexgui.css +489 -223
  11. package/build/lexgui.js +1771 -777
  12. package/build/lexgui.min.css +2 -2
  13. package/build/lexgui.min.js +1 -1
  14. package/build/lexgui.module.js +1803 -809
  15. package/build/lexgui.module.min.js +1 -1
  16. package/changelog.md +90 -21
  17. package/demo.js +52 -32
  18. package/examples/{all_widgets.html → all-components.html} +22 -4
  19. package/examples/{area_tabs.html → area-tabs.html} +3 -3
  20. package/examples/{asset_view.html → asset-view.html} +3 -3
  21. package/examples/{code_editor.html → code-editor.html} +4 -4
  22. package/examples/dialogs.html +3 -3
  23. package/examples/editor.html +27 -18
  24. package/examples/{immediate_ui.html → immediate-ui.html} +3 -3
  25. package/examples/index.html +8 -8
  26. package/examples/{node_graph.html → node-graph.html} +3 -3
  27. package/examples/previews/all-components.png +0 -0
  28. package/examples/previews/area-tabs.png +0 -0
  29. package/examples/previews/asset-view.png +0 -0
  30. package/examples/previews/code-editor.png +0 -0
  31. package/examples/previews/dialogs.png +0 -0
  32. package/examples/previews/editor.png +0 -0
  33. package/examples/previews/node-graph.png +0 -0
  34. package/examples/previews/side-bar.png +0 -0
  35. package/examples/previews/timeline.png +0 -0
  36. package/examples/{side_bar.html → side-bar.html} +3 -3
  37. package/examples/timeline.html +5 -5
  38. package/examples/{video_editor.html → video-editor.html} +3 -3
  39. package/examples/{video_editor2.html → video-editor2.html} +3 -3
  40. package/package.json +2 -2
  41. package/examples/previews/all_widgets.png +0 -0
  42. package/examples/previews/area_tabs.png +0 -0
  43. package/examples/previews/asset_view.png +0 -0
  44. package/examples/previews/code_editor.png +0 -0
  45. package/examples/previews/node_graph.png +0 -0
  46. package/examples/previews/side_bar.png +0 -0
package/build/lexgui.css CHANGED
@@ -1,6 +1,6 @@
1
1
  /* clean-css ignore:start */
2
- @import url('https://fonts.googleapis.com/css2?family=Ubuntu:wght@700&display=swap');
3
2
  @font-face { font-family: "GeistSans"; src: url("https://raw.githubusercontent.com/jxarco/lexgui.js/master/data/GeistSans.ttf"); }
3
+ @font-face { font-family: "CascadiaCode"; src: url("https://raw.githubusercontent.com/jxarco/lexgui.js/master/data/CascadiaCode.ttf"); font-weight: 400; }
4
4
  /* clean-css ignore:end */
5
5
 
6
6
  :root {
@@ -8,6 +8,7 @@
8
8
  color-scheme: dark;
9
9
 
10
10
  --global-font: "GeistSans", sans-serif;
11
+ --global-code-font: "CascadiaCode", monospace;
11
12
  --global-title-font: "GeistSans", sans-serif;
12
13
  --global-font-size-xs: 0.625rem; /* 10px */
13
14
  --global-font-size-sm: 0.75rem; /* 12px */
@@ -36,6 +37,13 @@
36
37
  --global-blur-background: light-dark(#f7f7f7d8, #1f1f1fe7);
37
38
  --global-color-transparent: #00000000;
38
39
 
40
+ --global-padding-xs: 0.25rem;
41
+ --global-padding-sm: 0.375rem;
42
+ --global-padding-md: 0.5rem;
43
+ --global-padding-lg: 0.75rem;
44
+ --global-padding-xl: 1rem;
45
+
46
+ --svg-size-xxs: 0.5rem;
39
47
  --svg-size-xs: 0.7rem;
40
48
  --svg-size-sm: 0.85rem;
41
49
  --svg-size-md: 1rem;
@@ -48,6 +56,14 @@
48
56
  --graphnode-background: 17, 17, 17;
49
57
  }
50
58
 
59
+ :root[data-spacing="compact"] {
60
+ --global-padding-xs: 0.15rem;
61
+ --global-padding-sm: 0.25rem;
62
+ --global-padding-md: 0.35rem;
63
+ --global-padding-lg: 0.5rem;
64
+ --global-padding-xl: 0.75rem;
65
+ }
66
+
51
67
  :root[data-theme="light"] { color-scheme: light }
52
68
 
53
69
  /* Font Size media queries */
@@ -194,6 +210,30 @@ body {
194
210
  flex-direction: column;
195
211
  position: absolute;
196
212
  outline: none;
213
+ transform-origin: center center;
214
+ transition-property: transform, border-radius;
215
+ transition-duration: 0.5s;
216
+ transition-timing-function: cubic-bezier(0.32, 0.72, 0, 1);
217
+ }
218
+
219
+ :root[data-scale="sheet-top"] #lexroot {
220
+ border-radius: 8px;
221
+ transform: scale(0.975) translate3d(0, -16px, 0);
222
+ }
223
+
224
+ :root[data-scale="sheet-bottom"] #lexroot {
225
+ border-radius: 8px;
226
+ transform: scale(0.975) translate3d(0, 16px, 0);
227
+ }
228
+
229
+ :root[data-scale="sheet-left"] #lexroot {
230
+ border-radius: 8px;
231
+ transform: scale(0.975) translate3d(-16px, 0, 0);
232
+ }
233
+
234
+ :root[data-scale="sheet-right"] #lexroot {
235
+ border-radius: 8px;
236
+ transform: scale(0.975) translate3d(16px, 0, 0);
197
237
  }
198
238
 
199
239
  /* document layout (scrolling page) */
@@ -319,8 +359,10 @@ body.noevents * {
319
359
  .pictonblue { color: #45B1E8 }
320
360
  .lightblue { color: #5aa8f7 }
321
361
  .goldenrod { color: goldenrod }
362
+ .metallicyellow { color: #FDCC0D }
322
363
  .heliotrope { color: #d460ff }
323
364
 
365
+ svg.xxs { width: var(--svg-size-xxs); height: var(--svg-size-xxs); }
324
366
  svg.xs { width: var(--svg-size-xs); height: var(--svg-size-xs); }
325
367
  svg.sm { width: var(--svg-size-sm); height: var(--svg-size-sm); }
326
368
  svg.lg { width: var(--svg-size-lg); height: var(--svg-size-lg); }
@@ -400,14 +442,12 @@ a svg, svg path {
400
442
  max-height: 100vh;
401
443
  position: fixed;
402
444
  margin: 0;
403
- right: 1rem;
404
- bottom: 1rem;
405
- top: auto;
406
445
  pointer-events: none;
407
446
  display: flex;
408
447
  flex-direction: column-reverse;
409
448
  gap: 0.15em;
410
449
  z-index: 100;
450
+ padding: 0;
411
451
  }
412
452
 
413
453
  .notifications ol.list {
@@ -419,9 +459,9 @@ a svg, svg path {
419
459
  flex-direction: row;
420
460
  position: relative;
421
461
  width: 100%;
422
- background-color: var(--global-intense-background);
462
+ background-color: light-dark(var(--global-color-primary), var(--global-color-secondary));
423
463
  border: 1px solid var(--global-color-tertiary);
424
- box-shadow: 0 3px 6px rgba(0, 0, 0, 0.1);
464
+ box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15);
425
465
  overflow: hidden;
426
466
  -webkit-user-select: none;
427
467
  -moz-user-select: none;
@@ -430,7 +470,7 @@ a svg, svg path {
430
470
  touch-action: none;
431
471
  overflow: hidden;
432
472
  pointer-events: auto;
433
- padding: 0.8rem;
473
+ padding: 0.75rem;
434
474
  border-radius: 8px;
435
475
  z-index: 3000;
436
476
  transition: all 0.5s cubic-bezier(.42,.97,.52,1.19);
@@ -438,12 +478,29 @@ a svg, svg path {
438
478
  --stack-offset: calc(100% - var(--element-offset));
439
479
  }
440
480
 
441
- .lextoast[data-open] {
481
+ .lextoast.top {
482
+ --stack-offset: calc(-100% + var(--element-offset));
483
+ }
484
+
485
+ .lextoast[data-open="true"] {
442
486
  translate: 0 0 !important;
443
487
  }
444
488
 
445
- .lextoast[data-closed] {
446
- translate: calc(100% + 30px) 0 !important;
489
+ .lextoast[data-open="false"] {
490
+ translate: 100% 0 !important;
491
+ opacity: 0 !important;
492
+ }
493
+
494
+ .lextoast.center[data-open="false"] {
495
+ translate: 0 30px !important;
496
+ }
497
+
498
+ .lextoast.center.top[data-open="false"] {
499
+ translate: 0 -30px !important;
500
+ }
501
+
502
+ .lextoast.left[data-open="false"] {
503
+ translate: -100% 0 !important;
447
504
  }
448
505
 
449
506
  .lextoast .lextoastcontent {
@@ -470,8 +527,8 @@ a svg, svg path {
470
527
  color: var(--global-text-secondary);
471
528
  }
472
529
 
473
- .lextoast .lexwidget {
474
- padding-inline: 16px;
530
+ .lextoast .lexcomponent {
531
+ padding-inline: 1rem;
475
532
  }
476
533
 
477
534
  .lextoast .closer {
@@ -685,8 +742,7 @@ a svg, svg path {
685
742
  font-size: var(--global-font-size-xl);
686
743
  color: var(--global-text-secondary);
687
744
  text-shadow: 0px 1px 6px #22222283;
688
- padding: 12px;
689
- padding-left: 16px;
745
+ padding: var(--global-padding-lg);
690
746
  border-top-left-radius: 8px;
691
747
  border-top-right-radius: 8px;
692
748
  outline: none;
@@ -701,7 +757,7 @@ a svg, svg path {
701
757
 
702
758
  .lexdialogcontent {
703
759
  width: 100%;
704
- padding: 15px;
760
+ padding: 0.25rem;
705
761
  word-break: break-all;
706
762
  color: var(--global-text-primary);
707
763
  font-size: var(--global-font-size);
@@ -713,7 +769,6 @@ a svg, svg path {
713
769
  .lexdialogcontent.notitle {
714
770
  border-top-left-radius: 8px;
715
771
  border-top-right-radius: 8px;
716
- padding-top: 24px;
717
772
  }
718
773
 
719
774
  .lexdialogcloser {
@@ -729,8 +784,8 @@ a svg, svg path {
729
784
 
730
785
  .lexdialogcloser.notitle {
731
786
  position: absolute;
732
- top: 0.8em;
733
- right: 0.6em;
787
+ top: 0.5em;
788
+ right: 0;
734
789
  }
735
790
 
736
791
  .lexdialogcloser:hover {
@@ -766,8 +821,6 @@ a svg, svg path {
766
821
  }
767
822
 
768
823
  .lexdialog.pocket .lexdialogcontent {
769
- padding: 4px;
770
- padding-left: 8px;
771
824
  max-height: -webkit-fill-available;
772
825
  opacity: 1;
773
826
 
@@ -836,11 +889,11 @@ a svg, svg path {
836
889
  .lexcontainer.wrapper {
837
890
  margin-left: auto;
838
891
  margin-right: auto;
839
- max-width: 1400px;
892
+ max-width: 1600px;
840
893
  border: 0px solid var(--global-color-tertiary);
841
894
  }
842
895
 
843
- @media (min-width: 1400px) {
896
+ @media (min-width: 1600px) {
844
897
  .lexcontainer.wrapper {
845
898
  border-left-width: 1px;
846
899
  border-right-width: 1px;
@@ -849,7 +902,13 @@ a svg, svg path {
849
902
 
850
903
  @media (min-width: 1800px) {
851
904
  .lexcontainer.wrapper {
852
- max-width: 1536px;
905
+ max-width: 1736px;
906
+ }
907
+ }
908
+
909
+ @media (min-width: 2100px) {
910
+ .lexcontainer.wrapper {
911
+ max-width: 1920px;
853
912
  }
854
913
  }
855
914
 
@@ -1031,7 +1090,7 @@ a svg, svg path {
1031
1090
  z-index: 150;
1032
1091
  display: flex;
1033
1092
  flex-direction: column;
1034
- padding: 0.2rem;
1093
+ padding: var(--global-padding-xs);
1035
1094
  border-radius: 6px;
1036
1095
  border: 1px solid #7a797c4f;
1037
1096
  outline: none;
@@ -1043,7 +1102,7 @@ a svg, svg path {
1043
1102
  .lexdropdownmenuitem {
1044
1103
  display: flex;
1045
1104
  flex-direction: row;
1046
- padding: 0.5rem;
1105
+ padding: var(--global-padding-md);
1047
1106
  border-radius: 6px;
1048
1107
  gap: 0.5rem;
1049
1108
  white-space: nowrap;
@@ -1154,7 +1213,7 @@ a svg, svg path {
1154
1213
 
1155
1214
  .lexpanel {
1156
1215
  margin: 0;
1157
- padding: 4px;
1216
+ padding: var(--global-padding-xs);
1158
1217
  overflow: hidden;
1159
1218
  overflow-y: scroll;
1160
1219
  }
@@ -1173,7 +1232,7 @@ a svg, svg path {
1173
1232
  }
1174
1233
 
1175
1234
  .lexbranch .lexbranchcontent {
1176
- padding: 4px;
1235
+ padding: var(--global-padding-xs);
1177
1236
  background-color: var(--global-color-secondary);
1178
1237
  border-bottom-left-radius: 8px;
1179
1238
  border-bottom-right-radius: 8px;
@@ -1191,7 +1250,7 @@ a svg, svg path {
1191
1250
  background-color: var(--global-color-secondary);
1192
1251
  text-shadow: 0px 1px 6px #42424260;
1193
1252
  letter-spacing: calc(var(--global-font-size-lg) * 0.025);
1194
- padding: 10px;
1253
+ padding: var(--global-padding-lg);
1195
1254
  display: flex;
1196
1255
  border-top-left-radius: 8px;
1197
1256
  border-top-right-radius: 8px;
@@ -1206,44 +1265,7 @@ a svg, svg path {
1206
1265
  background-color: inherit;
1207
1266
  }
1208
1267
 
1209
- .lexbranchtitle:active {
1210
- padding-left: 11px;
1211
- }
1212
-
1213
- .lexbranchtitle.wtabs {
1214
- display: flex;
1215
- padding: 0px;
1216
- cursor: default;
1217
- background-color: var(--global-color-tertiary);
1218
- text-shadow: none;
1219
- color: #5f6770;
1220
- }
1221
-
1222
1268
  /* Tab */
1223
- .lexbranchtitle.wtabs span {
1224
- padding: 10px;
1225
- cursor: pointer;
1226
- }
1227
-
1228
- .lexbranchtitle.wtabs span:hover {
1229
- background-color: #47505872;
1230
- }
1231
-
1232
- .lexbranchtitle.wtabs span:active {
1233
- margin-top: 1px;
1234
- }
1235
-
1236
- .lexbranchtitle.wtabs span.first {
1237
- border-top-left-radius: 8px;
1238
- }
1239
-
1240
- .lexbranchtitle.wtabs span.selected {
1241
- border-top: 2px solid var(--global-color-accent-light);
1242
- background-color: var(--global-color-secondary);
1243
- color: var(--global-text-primary);
1244
- text-shadow: 0px 1px 2px #000;
1245
- }
1246
-
1247
1269
  .lexbranch .branchicon {
1248
1270
  font-size: var(--global-font-size);
1249
1271
  margin-right: 12px;
@@ -1277,58 +1299,56 @@ a svg, svg path {
1277
1299
  background-color: inherit;
1278
1300
  }
1279
1301
 
1280
- /* Widgets */
1302
+ /* Components */
1281
1303
 
1282
- .lexwidget {
1304
+ .lexcomponent {
1283
1305
  display: flex;
1284
1306
  align-items: center;
1285
- padding: 5px;
1307
+ padding: var(--global-padding-xs);
1286
1308
  font-size: var(--global-font-size);
1287
1309
  color: var(--global-text-primary);
1288
1310
  line-height: 2;
1289
1311
  overflow: hidden;
1290
1312
  }
1291
1313
 
1292
- .lexinlinewidgets .lexwidgetname.float-center {
1314
+ .lexinlinecomponents .lexcomponentname.float-center {
1293
1315
  justify-content: center;
1294
1316
  }
1295
1317
 
1296
- .lexinlinewidgets .lexwidgetname.float-right {
1318
+ .lexinlinecomponents .lexcomponentname.float-right {
1297
1319
  justify-content: end;
1298
1320
  -moz-transform: translateX(-1em);
1299
1321
  -webkit-transform: translateX(-1em);
1300
1322
  transform: translateX(-1em);
1301
1323
  }
1302
1324
 
1303
- .lexwidget.auto {
1325
+ .lexcomponent.auto {
1304
1326
  width: unset !important;
1305
1327
  }
1306
1328
 
1307
- .lexwidget.micro {
1329
+ .lexcomponent.micro {
1308
1330
  min-width: 24px;
1309
1331
  width: 3% !important;
1310
- padding-left: 4px;
1311
- padding-right: 4px;
1312
1332
  }
1313
1333
 
1314
- .lexwidget.right {
1334
+ .lexcomponent.right {
1315
1335
  margin-left: auto;
1316
1336
  margin-right: 8px;
1317
1337
  }
1318
1338
 
1319
- .lexwidget.small {
1339
+ .lexcomponent.small {
1320
1340
  width: 5% !important;
1321
1341
  }
1322
1342
 
1323
- .lexwidget.md {
1343
+ .lexcomponent.md {
1324
1344
  width: 75% !important;
1325
1345
  }
1326
1346
 
1327
- .lexinlinewidgets {
1347
+ .lexinlinecomponents {
1328
1348
  display: flex;
1329
1349
  }
1330
1350
 
1331
- .lexwidgetseparator div {
1351
+ .lexcomponentseparator div {
1332
1352
  -ms-transform: translateY(-11px);
1333
1353
  -webkit-transform: translateY(-11px);
1334
1354
  transform: translateY(-11px);
@@ -1338,15 +1358,15 @@ a svg, svg path {
1338
1358
  color: var(--global-text-tertiary);
1339
1359
  }
1340
1360
 
1341
- .lexwidgetseparator div:hover {
1361
+ .lexcomponentseparator div:hover {
1342
1362
  color: #4d4d5ac4;
1343
1363
  }
1344
1364
 
1345
- .lexwidgetseparator div div {
1365
+ .lexcomponentseparator div div {
1346
1366
  background: #dddddd33;
1347
1367
  }
1348
1368
 
1349
- .lexwidgetname {
1369
+ .lexcomponentname {
1350
1370
  white-space: nowrap;
1351
1371
  overflow: hidden;
1352
1372
  display: flex;
@@ -1355,7 +1375,7 @@ a svg, svg path {
1355
1375
  color: var(--global-text-secondary);
1356
1376
  }
1357
1377
 
1358
- .lexinlinewidgets .lexwidgetname {
1378
+ .lexinlinecomponents .lexcomponentname {
1359
1379
  width: fit-content !important;
1360
1380
  padding-inline: 0.4rem;
1361
1381
  }
@@ -1380,9 +1400,9 @@ a svg, svg path {
1380
1400
  border-bottom: 1px solid #c1c1c1;
1381
1401
  }
1382
1402
 
1383
- .lexwidget input:not(.lexcheckbox, .lextoggle, .lexrangeslider) {
1403
+ .lexcomponent input:not(.lexcheckbox, .lextoggle, .lexrangeslider) {
1384
1404
  font-family: var(--global-font);
1385
- padding: 4px;
1405
+ padding: var(--global-padding-xs);
1386
1406
  color: var(--global-text-primary);
1387
1407
  --background-color: var(--global-color-tertiary);
1388
1408
  background-color: var(--background-color);
@@ -1394,37 +1414,37 @@ a svg, svg path {
1394
1414
  transition-duration: .15s;
1395
1415
  }
1396
1416
 
1397
- .lexwidget input:not(.lexcheckbox, .lextoggle, .lexrangeslider, .outline):hover {
1417
+ .lexcomponent input:not(.lexcheckbox, .lextoggle, .lexrangeslider, .outline):hover {
1398
1418
  background-color: color-mix(in srgb, var(--background-color), #000 5%);
1399
1419
  }
1400
1420
 
1401
- .lexwidget input.colorinput {
1421
+ .lexcomponent input.colorinput {
1402
1422
  border: none;
1403
1423
  margin-left: -4px;
1404
1424
  }
1405
1425
 
1406
- .lexwidget input:disabled:not(.lextoggle) {
1426
+ .lexcomponent input:disabled:not(.lextoggle) {
1407
1427
  outline: none;
1408
1428
  border: none;
1409
1429
  color: var(--global-text-tertiary);
1410
1430
  }
1411
1431
 
1412
- /* Text Widget */
1432
+ /* Text Component */
1413
1433
 
1414
- .lexwidget input.lextext, .lexwidget div.lextext {
1434
+ .lexcomponent input.lextext, .lexcomponent div.lextext {
1415
1435
  width: 100%;
1416
1436
  border-radius: 6px;
1417
1437
  position: relative;
1418
1438
  border: 1px solid transparent;
1419
- padding: 6px 12px;
1439
+ padding: var(--global-padding-xs) 0.75rem;
1420
1440
  }
1421
1441
 
1422
- .lexwidget .lextext:disabled {
1442
+ .lexcomponent .lextext:disabled {
1423
1443
  background-color: var(--global-color-tertiary);
1424
1444
  color: var(--global-text-tertiary);
1425
1445
  }
1426
1446
 
1427
- .lexwidget .lextext.formlabel {
1447
+ .lexcomponent .lextext.formlabel {
1428
1448
  margin-left: 8px;
1429
1449
  margin-bottom: -6px;
1430
1450
  font-weight: 500;
@@ -1432,51 +1452,51 @@ a svg, svg path {
1432
1452
  font-size: var(--global-font-size-sm);
1433
1453
  }
1434
1454
 
1435
- .lexwidget .lextext.outline {
1455
+ .lexcomponent .lextext.outline {
1436
1456
  background: var(--global-color-primary);
1437
1457
  border: 1px solid #7a797c4f;
1438
1458
  }
1439
1459
 
1440
- .lexwidget .lextext.nobg {
1460
+ .lexcomponent .lextext.nobg {
1441
1461
  background: none;
1442
1462
  border: 1px solid transparent;
1443
1463
  }
1444
1464
 
1445
- .lexwidget .lextext.dashed {
1465
+ .lexcomponent .lextext.dashed {
1446
1466
  background: var(--global-color-primary);
1447
1467
  border: 1px dashed #7a797c4f;
1448
1468
  }
1449
1469
 
1450
- .lexwidget .lextext.nobg:hover {
1470
+ .lexcomponent .lextext.nobg:hover {
1451
1471
  background: none;
1452
1472
  }
1453
1473
 
1454
- .lexwidget .lextext:focus {
1474
+ .lexcomponent .lextext:focus {
1455
1475
  border: 1px solid var(--global-text-quaternary);
1456
1476
  }
1457
1477
 
1458
- .lexwidget .lextext:invalid:focus {
1478
+ .lexcomponent .lextext:invalid:focus {
1459
1479
  border: 1px solid var(--global-color-error);
1460
1480
  }
1461
1481
 
1462
- .lexwidget .lextext.lexwarning div {
1482
+ .lexcomponent .lextext.lexwarning div {
1463
1483
  color: var(--global-color-warning);
1464
1484
  font-weight: 600;
1465
1485
  }
1466
1486
 
1467
- .lexwidget .lextext.lexwarning i {
1487
+ .lexcomponent .lextext.lexwarning i {
1468
1488
  color: var(--global-color-warning);
1469
1489
  margin-right: 16px;
1470
1490
  }
1471
1491
 
1472
- /* TextArea Widget */
1492
+ /* TextArea Component */
1473
1493
 
1474
- .lexwidget textarea {
1494
+ .lexcomponent textarea {
1475
1495
  width: 100%;
1476
1496
  word-break: break-word;
1477
1497
  font-family: var(--global-font);
1478
1498
  background: none;
1479
- padding: 5px;
1499
+ padding: var(--global-padding-md);
1480
1500
  color: var(--global-text-primary);
1481
1501
  outline: none;
1482
1502
  border-radius: 6px;
@@ -1484,34 +1504,34 @@ a svg, svg path {
1484
1504
  transition: 0.1s linear;
1485
1505
  }
1486
1506
 
1487
- .lexwidget textarea.outline {
1507
+ .lexcomponent textarea.outline {
1488
1508
  background: var(--global-color-primary);
1489
1509
  border: 1px solid #7a797c4f;
1490
1510
  }
1491
1511
 
1492
- .lexwidget textarea.nobg {
1512
+ .lexcomponent textarea.nobg {
1493
1513
  background: none;
1494
1514
  border: 1px solid transparent;
1495
1515
  }
1496
1516
 
1497
- .lexwidget textarea.dashed {
1517
+ .lexcomponent textarea.dashed {
1498
1518
  background: var(--global-color-primary);
1499
1519
  border: 1px dashed #7a797c4f;
1500
1520
  }
1501
1521
 
1502
- .lexwidget textarea.outline:hover, .lexwidget .lextext.nobg:hover {
1522
+ .lexcomponent textarea.outline:hover, .lexcomponent .lextext.nobg:hover {
1503
1523
  background: none;
1504
1524
  }
1505
1525
 
1506
- .lexwidget textarea:disabled {
1526
+ .lexcomponent textarea:disabled {
1507
1527
  resize: none;
1508
1528
  }
1509
1529
 
1510
- .lexwidget textarea:focus {
1530
+ .lexcomponent textarea:focus {
1511
1531
  border: 1px solid var(--global-text-quaternary);
1512
1532
  }
1513
1533
 
1514
- /* Input Color Widget */
1534
+ /* Input Color Component */
1515
1535
 
1516
1536
  .lexcolor {
1517
1537
  display: flex;
@@ -1536,7 +1556,7 @@ a svg, svg path {
1536
1556
  font-weight: 600;
1537
1557
  }
1538
1558
 
1539
- .lexcolor .lexwidget {
1559
+ .lexcolor .lexcomponent {
1540
1560
  padding: 0px;
1541
1561
  }
1542
1562
 
@@ -1603,11 +1623,11 @@ a svg, svg path {
1603
1623
  letter-spacing: 0.02rem;
1604
1624
  }
1605
1625
 
1606
- .lexcolorpicker .lexwidget {
1626
+ .lexcolorpicker .lexcomponent {
1607
1627
  padding: 2px !important;
1608
1628
  }
1609
1629
 
1610
- /* Title Widget */
1630
+ /* Title Component */
1611
1631
 
1612
1632
  .lextitle {
1613
1633
  width: fit-content !important;
@@ -1616,9 +1636,7 @@ a svg, svg path {
1616
1636
  font-weight: 600;
1617
1637
  font-size: var(--global-font-size);
1618
1638
  margin: 12px;
1619
- padding: 2px;
1620
- padding-left: 12px;
1621
- padding-right: 12px;
1639
+ padding: var(--global-padding-xs) var(--global-padding-lg);
1622
1640
  line-height: 1.5;
1623
1641
  display: grid;
1624
1642
  align-content: center;
@@ -1631,7 +1649,7 @@ a svg, svg path {
1631
1649
  user-select: none;
1632
1650
  }
1633
1651
 
1634
- .lexinlinewidgets .lextitle {
1652
+ .lexinlinecomponents .lextitle {
1635
1653
  margin: 8px;
1636
1654
  height: 24px;
1637
1655
  flex: none;
@@ -1649,7 +1667,7 @@ a svg, svg path {
1649
1667
  }
1650
1668
 
1651
1669
 
1652
- /* Button Widget */
1670
+ /* Button Component */
1653
1671
 
1654
1672
  .lexbutton {
1655
1673
  --button-color: var(--global-color-tertiary);
@@ -1757,7 +1775,7 @@ a svg, svg path {
1757
1775
  background-color: var(--global-color-tertiary);
1758
1776
  width: max-content;
1759
1777
  justify-self: center;
1760
- padding: 3px;
1778
+ padding: var(--global-padding-xs);
1761
1779
  border-radius: 8px;
1762
1780
  gap: 0.2em;
1763
1781
  }
@@ -1799,7 +1817,7 @@ a svg, svg path {
1799
1817
  position: relative;
1800
1818
  }
1801
1819
 
1802
- .lexselect .lexwidget {
1820
+ .lexselect .lexcomponent {
1803
1821
  padding: 0;
1804
1822
  }
1805
1823
 
@@ -2027,11 +2045,11 @@ dialog .lexselect .lexselectoptions {
2027
2045
  grid-column: span 2;
2028
2046
  }
2029
2047
 
2030
- .lexcheckboxsubmenu .lexwidget {
2048
+ .lexcheckboxsubmenu .lexcomponent {
2031
2049
  width: 100% !important;
2032
2050
  }
2033
2051
 
2034
- /* Toggle Widget */
2052
+ /* Toggle Component */
2035
2053
 
2036
2054
  .lextoggle {
2037
2055
  --toggle-bg-color: var(--global-text-tertiary); /* Color of background CHECKED */
@@ -2192,7 +2210,7 @@ dialog .lexselect .lexselectoptions {
2192
2210
  grid-column: span 2;
2193
2211
  }
2194
2212
 
2195
- /* Radio Group Widget */
2213
+ /* Radio Group Component */
2196
2214
 
2197
2215
  .lexradiogroup {
2198
2216
  width: 100% !important;
@@ -2257,7 +2275,7 @@ dialog .lexselect .lexselectoptions {
2257
2275
  .lexradiogroup.error .lexradiogroupitem button.checked span { background-color: var(--global-color-error); }
2258
2276
  .lexradiogroup.warning .lexradiogroupitem button.checked span { background-color: var(--global-color-warning); }
2259
2277
 
2260
- /* Vector Widgets */
2278
+ /* Vector Component */
2261
2279
 
2262
2280
  .lexvector {
2263
2281
  display: flex;
@@ -2284,8 +2302,8 @@ dialog .lexselect .lexselectoptions {
2284
2302
  background-color: color-mix(in srgb, var(--global-color-tertiary), #000 7%);
2285
2303
  }
2286
2304
 
2287
- .lexwidget .numberbox .drag-icon,
2288
- .lexwidget .vecbox .drag-icon {
2305
+ .lexcomponent .numberbox .drag-icon,
2306
+ .lexcomponent .vecbox .drag-icon {
2289
2307
  font-size: var(--global-font-size-sm);
2290
2308
  color: var(--global-text-secondary);
2291
2309
  z-index: 11;
@@ -2354,9 +2372,9 @@ input[type=number] {
2354
2372
  color: var(--global-text-secondary);
2355
2373
  }
2356
2374
 
2357
- /* Number Widget */
2375
+ /* Number Component */
2358
2376
 
2359
- .lexwidget .numberbox {
2377
+ .lexcomponent .numberbox {
2360
2378
  width: 100%;
2361
2379
  display: flex;
2362
2380
  flex-direction: column;
@@ -2369,21 +2387,33 @@ input[type=number] {
2369
2387
  transition: 0.1s linear;
2370
2388
  }
2371
2389
 
2372
- .lexwidget .numberbox:hover {
2390
+ .lexcomponent .numberbox::-webkit-scrollbar {
2391
+ display: none;
2392
+ }
2393
+
2394
+ .lexcomponent .numberbox:hover {
2373
2395
  background-color: color-mix(in srgb, var(--global-color-tertiary), #000 7%);
2374
2396
  }
2375
2397
 
2376
- .lexwidget .numberbox:has(input:focus) {
2398
+ .lexcomponent .numberbox:has(input:focus) {
2377
2399
  border: 1px solid var(--global-text-quaternary);
2378
2400
  }
2379
2401
 
2380
- .lexwidget .numberbox span {
2402
+ .lexcomponent .numberbox .input-box {
2403
+ padding-block: var(--global-padding-xs);
2404
+ }
2405
+
2406
+ .lexcomponent .numberbox .input-box input {
2407
+ padding-block: 0;
2408
+ }
2409
+
2410
+ .lexcomponent .numberbox span {
2381
2411
  position: absolute;
2382
2412
  pointer-events: none;
2383
2413
  align-self: center;
2384
2414
  }
2385
2415
 
2386
- .lexwidget .numberbox:has(input[type=range]) span {
2416
+ .lexcomponent .numberbox:has(input[type=range]) span {
2387
2417
  margin-top: -12px;
2388
2418
  }
2389
2419
 
@@ -2441,7 +2471,7 @@ input[type=number] {
2441
2471
  cursor: pointer;
2442
2472
  }
2443
2473
 
2444
- /* Range Widget */
2474
+ /* Range Component */
2445
2475
 
2446
2476
  .lexrangeslider {
2447
2477
  --range-thumb-color: var(--global-color-primary);
@@ -2546,7 +2576,7 @@ input[type=number] {
2546
2576
  top: 50%;
2547
2577
  }
2548
2578
 
2549
- /* OTP Widget */
2579
+ /* OTP Component */
2550
2580
 
2551
2581
  .lexotpslot.active {
2552
2582
  border: 1px solid var(--global-text-primary);
@@ -2558,18 +2588,18 @@ input[type=number] {
2558
2588
  cursor: not-allowed;
2559
2589
  }
2560
2590
 
2561
- /* Pad Widget */
2591
+ /* Pad Component */
2562
2592
 
2563
- .lexwidget .lexpad {
2593
+ .lexcomponent .lexpad {
2564
2594
  place-items: center;
2565
2595
  }
2566
2596
 
2567
- .lexwidget .lexpad .lexinnerpad {
2597
+ .lexcomponent .lexpad .lexinnerpad {
2568
2598
  border-radius: 4px;
2569
2599
  background-color: light-dark(var(--global-color-tertiary), var(--global-intense-background));
2570
2600
  }
2571
2601
 
2572
- .lexwidget .lexpad .lexinnerpad .lexpadthumb {
2602
+ .lexcomponent .lexpad .lexinnerpad .lexpadthumb {
2573
2603
  background-color: var(--global-color-accent);
2574
2604
  width: 10%;
2575
2605
  height: 10%;
@@ -2577,11 +2607,11 @@ input[type=number] {
2577
2607
  transform: translate(0px, 0px);
2578
2608
  }
2579
2609
 
2580
- .lexwidget .lexpad .lexinnerpad .lexpadthumb.active {
2610
+ .lexcomponent .lexpad .lexinnerpad .lexpadthumb.active {
2581
2611
  background-color: var(--global-color-accent-light);
2582
2612
  }
2583
2613
 
2584
- /* Tabs Widget */
2614
+ /* Tabs Component */
2585
2615
 
2586
2616
  .lextabscontainer {
2587
2617
  width: 100%;
@@ -2610,7 +2640,7 @@ input[type=number] {
2610
2640
  flex-direction: row;
2611
2641
  }
2612
2642
 
2613
- .lextabscontainer .widgets {
2643
+ .lextabscontainer .components {
2614
2644
  width: 100%;
2615
2645
  padding: 4px;
2616
2646
  }
@@ -2623,7 +2653,7 @@ input[type=number] {
2623
2653
  text-align: center;
2624
2654
  }
2625
2655
 
2626
- /* Data Tree Widget */
2656
+ /* Data Tree Component */
2627
2657
 
2628
2658
  .lextree {
2629
2659
  border-radius: 6px;
@@ -2653,7 +2683,7 @@ input[type=number] {
2653
2683
  gap: 0.5rem;
2654
2684
  }
2655
2685
 
2656
- .lexwidget.nobranch .lextree .lextreetools {
2686
+ .lexcomponent.nobranch .lextree .lextreetools {
2657
2687
  background: var(--global-color-secondary);
2658
2688
  }
2659
2689
 
@@ -2872,14 +2902,15 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
2872
2902
  /* Badges */
2873
2903
 
2874
2904
  .lexbadge {
2875
- border-radius: 0.35rem;
2905
+ border-radius: 0.4rem;
2876
2906
  color: #f4f4f5;
2877
2907
  border: 1px solid var(--badge-color, #14171a);
2878
2908
  width: fit-content;
2909
+ height: 1.1rem;
2879
2910
  justify-content: center;
2880
2911
  align-items: center;
2881
- gap: 0.5rem;
2882
- padding-inline: 0.6rem;
2912
+ gap: 0.25rem;
2913
+ padding-inline: 0.5rem;
2883
2914
  font-size: var(--global-font-size);
2884
2915
  display: inline-flex;
2885
2916
  background-color: var(--badge-color, #1d232a);
@@ -2905,11 +2936,30 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
2905
2936
  border: none;
2906
2937
  }
2907
2938
  /* Sizes */
2908
- .lexbadge.xs { padding-inline: 0.4rem; font-size: var(--global-font-size-xs); }
2909
- .lexbadge.sm { padding-inline: 0.5rem; font-size: var(--global-font-size-sm); }
2939
+ .lexbadge.xs { height: 0.7rem; padding-inline: 0.3rem; font-size: var(--global-font-size-xs); }
2940
+ .lexbadge.sm { height: 0.9rem; padding-inline: 0.4rem; font-size: var(--global-font-size-sm); }
2910
2941
  /* .lexbadge.md { default } */
2911
- .lexbadge.lg { padding-inline: 0.8rem; font-size: var(--global-font-size-lg); }
2912
- .lexbadge.xl { padding-inline: 1rem; font-size: var(--global-font-size-xl) }
2942
+ .lexbadge.lg { height: 1.3rem; padding-inline: 0.7rem; font-size: var(--global-font-size-lg); }
2943
+ .lexbadge.xl { height: 1.5rem; padding-inline: 0.85rem; font-size: var(--global-font-size-xl) }
2944
+
2945
+ .lexbadge-parent {
2946
+ position: relative;
2947
+ }
2948
+
2949
+ .lexbadge-parent .lexbadge {
2950
+ border-radius: 0.5rem;
2951
+ padding-inline: 0.25rem;
2952
+ position: absolute;
2953
+ margin-top: -0.25rem;
2954
+ right: 0.25rem;
2955
+ border: none !important;
2956
+ }
2957
+
2958
+ .lexbadge.chip {
2959
+ border-radius: 0.5rem;
2960
+ padding-inline: 0.25rem;
2961
+ border: none !important;
2962
+ }
2913
2963
 
2914
2964
  /* Menu Bar */
2915
2965
 
@@ -3135,7 +3185,7 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
3135
3185
  display: none;
3136
3186
  }
3137
3187
 
3138
- .lexsidebar .lexwidget {
3188
+ .lexsidebar .lexcomponent {
3139
3189
  width: 100% !important;
3140
3190
  padding: 0 !important;
3141
3191
  }
@@ -3177,7 +3227,7 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
3177
3227
  .lexsidebar .lexsidebargrouptitle {
3178
3228
  font-size: var(--global-font-size-sm);
3179
3229
  font-weight: 600;
3180
- color: var(--global-text-secondary);
3230
+ color: var(--global-text-tertiary);
3181
3231
  overflow: hidden;
3182
3232
  display: flex;
3183
3233
  }
@@ -3211,8 +3261,8 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
3211
3261
 
3212
3262
  .lexsidebar .lexsidebarentry {
3213
3263
  width: 100%;
3214
- padding-inline: 8px;
3215
- padding-block: 6px;
3264
+ padding-inline: var(--global-padding-md);
3265
+ padding-block: var(--global-padding-sm);
3216
3266
  margin-block: 0.15rem;
3217
3267
  border-radius: 8px;
3218
3268
  cursor: pointer;
@@ -3228,6 +3278,7 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
3228
3278
  white-space: nowrap;
3229
3279
  text-overflow: ellipsis;
3230
3280
  align-self: center;
3281
+ place-content: start;
3231
3282
  }
3232
3283
 
3233
3284
  .lexsidebar .lexsidebarentry:hover {
@@ -3242,7 +3293,7 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
3242
3293
  color: #f4f4f4;
3243
3294
  }
3244
3295
 
3245
- .lexsidebar .lexsidebarentry.selected svg path {
3296
+ .lexsidebar .lexsidebarentry.selected .lexsidebarentryicon svg path {
3246
3297
  color: #f4f4f4;
3247
3298
  }
3248
3299
 
@@ -3350,8 +3401,8 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
3350
3401
  width: 100%;
3351
3402
  height: 48px;
3352
3403
  display: flex;
3353
- border-radius: 8px;
3354
- padding: 8px;
3404
+ border-radius: 0.5rem;
3405
+ padding: 0.5rem;
3355
3406
  font-size: var(--global-font-size);
3356
3407
  cursor: pointer;
3357
3408
  align-items: center;
@@ -3460,13 +3511,13 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
3460
3511
  border-radius: 12px;
3461
3512
  }
3462
3513
 
3463
- .lexoverlaybuttons .lexwidget {
3514
+ .lexoverlaybuttons .lexcomponent {
3464
3515
  padding: 0px;
3465
3516
  pointer-events: auto;
3466
3517
  min-width: 32px;
3467
3518
  }
3468
3519
 
3469
- .lexoverlaybuttons .lexwidget button {
3520
+ .lexoverlaybuttons .lexcomponent button {
3470
3521
  min-width: 32px;
3471
3522
  }
3472
3523
 
@@ -3479,12 +3530,12 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
3479
3530
  display: grid;
3480
3531
  }
3481
3532
 
3482
- .lexoverlaybuttonscontainer.vertical .lexwidget {
3533
+ .lexoverlaybuttonscontainer.vertical .lexcomponent {
3483
3534
  margin-bottom: 6px;
3484
3535
  margin-right: 0px;
3485
3536
  }
3486
3537
 
3487
- .lexoverlaybuttonscontainer.vertical .lexwidget button {
3538
+ .lexoverlaybuttonscontainer.vertical .lexcomponent button {
3488
3539
  min-width: 32px;
3489
3540
  max-height: 32px !important;
3490
3541
  }
@@ -3510,13 +3561,13 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
3510
3561
  justify-items: right;
3511
3562
  }
3512
3563
 
3513
- .lexoverlaybuttons .lexwidget:hover {
3564
+ .lexoverlaybuttons .lexcomponent:hover {
3514
3565
  background-color: unset;
3515
3566
  }
3516
3567
 
3517
3568
  .lexoverlaybuttons .lexbutton {
3518
3569
  --button-color: var(--global-color-secondary);
3519
- padding: 6px 6px;
3570
+ padding: var(--global-padding-sm) var(--global-padding-sm);
3520
3571
  font-size: var(--global-font-size-lg);
3521
3572
  border-radius: 10px;
3522
3573
  justify-content: center;
@@ -3551,21 +3602,21 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
3551
3602
  margin-bottom: 6px;
3552
3603
  }
3553
3604
 
3554
- .lexoverlaybuttons .lexoverlaygroup .lexwidget {
3605
+ .lexoverlaybuttons .lexoverlaygroup .lexcomponent {
3555
3606
  padding: 0px;
3556
3607
  margin-right: 0px;
3557
3608
  }
3558
3609
 
3559
- .lexoverlaybuttonscontainer.vertical .lexoverlaygroup .lexwidget {
3610
+ .lexoverlaybuttonscontainer.vertical .lexoverlaygroup .lexcomponent {
3560
3611
  margin-right: 0px;
3561
3612
  margin-bottom: 0px;
3562
3613
  }
3563
3614
 
3564
- .lexoverlaybuttonscontainer.vertical .lexoverlaygroup .lexwidget button {
3615
+ .lexoverlaybuttonscontainer.vertical .lexoverlaygroup .lexcomponent button {
3565
3616
  width: 100% !important;
3566
3617
  }
3567
3618
 
3568
- .lexoverlaybuttons .lexwidget:last-child {
3619
+ .lexoverlaybuttons .lexcomponent:last-child {
3569
3620
  margin-right: 0px;
3570
3621
  }
3571
3622
 
@@ -3628,7 +3679,7 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
3628
3679
  }
3629
3680
 
3630
3681
  .lexareatabs.row .lexareatab {
3631
- padding: 0.45em 1.45em;
3682
+ padding: var(--global-padding-md) 1.45em;
3632
3683
  transition: 0.1s;
3633
3684
  background: none;
3634
3685
  border-radius: 6px;
@@ -3685,13 +3736,13 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
3685
3736
  max-height: 0px;
3686
3737
  }
3687
3738
 
3688
- /* Curve Widget */
3739
+ /* Curve Component */
3689
3740
 
3690
3741
  .curve canvas {
3691
3742
  border-radius: 2px;
3692
3743
  }
3693
3744
 
3694
- /* Avatar Widget */
3745
+ /* Avatar Component */
3695
3746
 
3696
3747
  .lexavatar {
3697
3748
  width: 48px;
@@ -3709,11 +3760,10 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
3709
3760
  height: 100%;
3710
3761
  }
3711
3762
 
3712
- /* Card Widget */
3763
+ /* Card Component */
3713
3764
 
3714
3765
  .lexcard {
3715
3766
  position: relative;
3716
- margin-bottom: 4px;
3717
3767
  }
3718
3768
 
3719
3769
  .lexcard img {
@@ -3721,7 +3771,7 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
3721
3771
  height: 128px;
3722
3772
  object-fit: cover;
3723
3773
  border-radius: 6px;
3724
- outline: 3px solid var(--global-text-tertiary);
3774
+ outline: 2px solid var(--global-text-tertiary);
3725
3775
  }
3726
3776
 
3727
3777
  .lexcard:hover a {
@@ -3729,16 +3779,13 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
3729
3779
  }
3730
3780
 
3731
3781
  .lexcard:hover img {
3732
- outline: 3px solid var(--global-color-accent);
3782
+ outline: 2px solid var(--global-color-accent);
3733
3783
  }
3734
3784
 
3735
3785
  .lexcard span {
3736
3786
  font-size: var(--global-font-size-lg);
3737
- font-family: var(--global-title-font);
3738
3787
  font-weight: 500;
3739
- text-transform: uppercase;
3740
3788
  width: 100%;
3741
- height: 32px;
3742
3789
  display: flex;
3743
3790
  background-color: var(--global-blur-background);
3744
3791
  --webkit-backdrop-filter: blur(12px);
@@ -3747,7 +3794,8 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
3747
3794
  position: absolute;
3748
3795
  top: 0;
3749
3796
  left: 0;
3750
- padding: 8px;
3797
+ padding: var(--global-padding-xs);
3798
+ padding-inline-start: 8px;
3751
3799
  border-top-left-radius: 6px;
3752
3800
  border-top-right-radius: 6px;
3753
3801
  }
@@ -3761,7 +3809,7 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
3761
3809
  color: var(--global-color-accent);
3762
3810
  }
3763
3811
 
3764
- /* Layers Widget */
3812
+ /* Layers Component */
3765
3813
 
3766
3814
  .lexlayers {
3767
3815
  display: grid;
@@ -3799,7 +3847,7 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
3799
3847
  transform: scale(0.99);
3800
3848
  }
3801
3849
 
3802
- /* List Widget */
3850
+ /* List Component */
3803
3851
 
3804
3852
  .lexlist {
3805
3853
  background: var(--global-color-primary);
@@ -3847,26 +3895,26 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
3847
3895
  background-color: var(--global-color-accent);
3848
3896
  }
3849
3897
 
3850
- /* Array Widget */
3898
+ /* Array Component */
3851
3899
 
3852
- .lexwidget:has(.lexarrayitems),
3853
- .lexwidget:has(.lexcheckboxsubmenu),
3854
- .lexwidget:has(.lextogglesubmenu),
3855
- .lexwidget:has(.lexcustomcontainer) {
3900
+ .lexcomponent:has(.lexarrayitems),
3901
+ .lexcomponent:has(.lexcheckboxsubmenu),
3902
+ .lexcomponent:has(.lextogglesubmenu),
3903
+ .lexcomponent:has(.lexcustomcontainer) {
3856
3904
  border-radius: 6px;
3857
3905
  transition: background-color 0.2s ease-out;
3858
3906
  display: flex;
3859
3907
  flex-wrap: wrap;
3860
3908
  }
3861
3909
 
3862
- .lexwidget:has(.lexarrayitems)[data-opened=true],
3863
- .lexwidget:has(.lexcheckboxsubmenu)[data-opened=true],
3864
- .lexwidget:has(.lextogglesubmenu)[data-opened=true],
3865
- .lexwidget:has(.lexcustomcontainer)[data-opened=true] {
3910
+ .lexcomponent:has(.lexarrayitems)[data-opened=true],
3911
+ .lexcomponent:has(.lexcheckboxsubmenu)[data-opened=true],
3912
+ .lexcomponent:has(.lextogglesubmenu)[data-opened=true],
3913
+ .lexcomponent:has(.lexcustomcontainer)[data-opened=true] {
3866
3914
  background-color: light-dark(var(--global-color-tertiary), var(--global-medium-background));
3867
3915
  }
3868
3916
 
3869
- .lexarray .lexwidget {
3917
+ .lexarray .lexcomponent {
3870
3918
  padding: 0px;
3871
3919
  width: 100% !important;
3872
3920
  }
@@ -3880,7 +3928,7 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
3880
3928
  grid-column: span 2;
3881
3929
  }
3882
3930
 
3883
- .lexarrayitems .lexwidgetname {
3931
+ .lexarrayitems .lexcomponentname {
3884
3932
  color: var(--global-text-tertiary);
3885
3933
  font-size: var(--global-font-size-sm);
3886
3934
  justify-content: center;
@@ -3888,7 +3936,7 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
3888
3936
  font-weight: 600;
3889
3937
  }
3890
3938
 
3891
- /* Tags Widget */
3939
+ /* Tags Component */
3892
3940
 
3893
3941
  .lextags {
3894
3942
  display: inline-flex;
@@ -3896,7 +3944,7 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
3896
3944
  line-height: 12px;
3897
3945
  background-color: var(--global-color-tertiary);
3898
3946
  border-radius: 8px;
3899
- padding: 4px;
3947
+ padding: var(--global-padding-xs);
3900
3948
  }
3901
3949
 
3902
3950
  .lextags input {
@@ -3926,7 +3974,7 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
3926
3974
  cursor: pointer;
3927
3975
  }
3928
3976
 
3929
- /* Counter Widget */
3977
+ /* Counter Component */
3930
3978
 
3931
3979
  .lexcounter {
3932
3980
  display: flex;
@@ -3954,7 +4002,7 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
3954
4002
  color: var(--global-text-secondary);
3955
4003
  }
3956
4004
 
3957
- /* Table Widget */
4005
+ /* Table Component */
3958
4006
 
3959
4007
  .lextable {
3960
4008
  overflow-x: scroll;
@@ -4007,7 +4055,7 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
4007
4055
  }
4008
4056
 
4009
4057
  .lextable th, .lextable td {
4010
- padding: 6px;
4058
+ padding-block: var(--global-padding-sm);
4011
4059
  padding-inline: 12px;
4012
4060
  text-align: left;
4013
4061
  align-content: center;
@@ -4114,7 +4162,7 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
4114
4162
  box-shadow: none;
4115
4163
  }
4116
4164
 
4117
- /* Custom Widgets Widget */
4165
+ /* Custom Component */
4118
4166
 
4119
4167
  .lexcustomitems {
4120
4168
  width: 100%;
@@ -4131,7 +4179,7 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
4131
4179
  justify-content: space-between;
4132
4180
  }
4133
4181
 
4134
- /* Knob Widget */
4182
+ /* Knob Component */
4135
4183
 
4136
4184
  .lexknob {
4137
4185
  padding: 8px;
@@ -4353,11 +4401,11 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
4353
4401
  padding: 0 10px;
4354
4402
  }
4355
4403
 
4356
- .lextimeline .lexwidget:has(.lexbutton:not(.array)) {
4404
+ .lextimeline .lexcomponent:has(.lexbutton:not(.array)) {
4357
4405
  padding: 1px;
4358
4406
  }
4359
4407
 
4360
- .lextimeline .lexinlinewidgets {
4408
+ .lextimeline .lexinlinecomponents {
4361
4409
  padding-right: 10px;
4362
4410
  }
4363
4411
 
@@ -4628,7 +4676,10 @@ ul.lexassetscontent {
4628
4676
  .lexassetscontent .asset-file-preview text {
4629
4677
  font-size: 4rem;
4630
4678
  text-anchor: middle;
4631
- font-family: 'Ubuntu', sans-serif;
4679
+ font-family: var(--global-code-font);
4680
+ font-feature-settings: "ss02", 'ss19', "ss20";
4681
+ font-feature-settings: "ss02", 'ss19', "ss20";
4682
+ font-weight: 800;
4632
4683
  color: var(--global-text-tertiary);
4633
4684
  }
4634
4685
 
@@ -4804,7 +4855,52 @@ ul.lexassetscontent {
4804
4855
  background-color: var(--global-text-primary);
4805
4856
  }
4806
4857
 
4858
+ /* Skeleton */
4859
+
4860
+ @keyframes skeletonHide {
4861
+ from {
4862
+ opacity: 1;
4863
+ transform: translate3d(0, 0, 0)
4864
+ scale3d(1, 1, 1);
4865
+ }
4866
+
4867
+ to {
4868
+ opacity: 0;
4869
+ transform: translate3d(0, 12.5%, 0)
4870
+ scale3d(0.75, 0.75, 0.75);
4871
+ }
4872
+ }
4873
+
4874
+ .lexskeleton[data-closed] {
4875
+ animation: skeletonHide 0.2s forwards;
4876
+ }
4877
+
4878
+ /* Shimmer keyframes */
4879
+ @keyframes skeleton-shimmer {
4880
+ 0% {
4881
+ opacity: 1;
4882
+ }
4883
+
4884
+ 50% {
4885
+ opacity: 0.5;
4886
+ }
4887
+
4888
+ 100% {
4889
+ opacity: 1;
4890
+ }
4891
+ }
4892
+
4893
+ .lexskeleton *.lexskeletonpart {
4894
+ position: relative;
4895
+ overflow: hidden;
4896
+ background-color: var(--global-color-tertiary);
4897
+ border-radius: 0.375rem;
4898
+ pointer-events: none;
4899
+ animation: skeleton-shimmer 2.0s ease-in-out infinite;
4900
+ }
4901
+
4807
4902
  /* Code Editor */
4903
+
4808
4904
  .codebasearea {
4809
4905
  display: flex;
4810
4906
  position: relative;
@@ -4898,7 +4994,7 @@ ul.lexassetscontent {
4898
4994
  padding-inline: 1rem;
4899
4995
  }
4900
4996
 
4901
- .lexcodetabinfo .lexinlinewidgets {
4997
+ .lexcodetabinfo .lexinlinecomponents {
4902
4998
  justify-content: end;
4903
4999
  }
4904
5000
 
@@ -4913,7 +5009,7 @@ ul.lexassetscontent {
4913
5009
  }
4914
5010
 
4915
5011
  .lexcodeeditor .codetabsarea {
4916
- height: calc(100% - 76px) !important;
5012
+ height: 100% !important;
4917
5013
  background-color: light-dark(var(--global-color-secondary), var(--global-medium-background));
4918
5014
  overflow: scroll;
4919
5015
  }
@@ -4940,19 +5036,19 @@ ul.lexassetscontent {
4940
5036
 
4941
5037
  .lexcodeeditor .code {
4942
5038
  cursor: text;
4943
- font-family: "CommitMono", monospace;
5039
+ font-family: var(--global-code-font);
5040
+ font-feature-settings: "ss02", 'ss19', "ss20";
4944
5041
  -webkit-font-smoothing: antialiased;
4945
5042
  -moz-osx-font-smoothing: grayscale;
4946
- font-feature-settings: "ss04", "ss05";
4947
5043
  font-size: var(--code-editor-font-size);
4948
5044
  position: relative;
4949
5045
  }
4950
5046
 
4951
5047
  .codechar {
4952
- font-family: "CommitMono", monospace;
5048
+ font-family: var(--global-code-font);
5049
+ font-feature-settings: "ss02", 'ss19', "ss20";
4953
5050
  -webkit-font-smoothing: antialiased;
4954
5051
  -moz-osx-font-smoothing: grayscale;
4955
- font-feature-settings: "ss04", "ss05";
4956
5052
  font-size: var(--code-editor-font-size);
4957
5053
  position: absolute;
4958
5054
  top: 0;
@@ -4963,6 +5059,9 @@ ul.lexassetscontent {
4963
5059
 
4964
5060
  .lexcodeeditor pre {
4965
5061
  -webkit-text-size-adjust: 100%;
5062
+ font-family: var(--global-code-font);
5063
+ font-feature-settings: "ss02", 'ss19', "ss20";
5064
+ font-size: var(--code-editor-font-size);
4966
5065
  cursor: text;
4967
5066
  box-sizing: border-box;
4968
5067
  border-radius: 0;
@@ -5819,7 +5918,7 @@ ul.lexassetscontent {
5819
5918
  height: inherit;
5820
5919
  }
5821
5920
 
5822
- .lexvideoeditor .lexwidget.nobranch {
5921
+ .lexvideoeditor .lexcomponent.nobranch {
5823
5922
  padding: 0;
5824
5923
  width: 100% !important;
5825
5924
  }
@@ -5942,11 +6041,13 @@ ul.lexassetscontent {
5942
6041
  .hover\:scale-xl:hover { transform: scale(1.25); transition: transform 0.3s cubic-bezier(.42,.97,.52,1.19); }
5943
6042
 
5944
6043
  .stroke-none { stroke: none }
6044
+ .fill-current { fill: currentColor }
5945
6045
 
5946
6046
  /* Layout */
5947
6047
 
5948
6048
  .flex { display: flex }
5949
- .inline-flex { display: inline-flex }
6049
+ .inline-flex { display: inline-flex !important }
6050
+ .inline-grid { display: inline-grid !important }
5950
6051
  .flex-fill { flex: 1 0 0% }
5951
6052
  .grid { display: grid }
5952
6053
  .block { display: block }
@@ -6017,6 +6118,15 @@ ul.lexassetscontent {
6017
6118
  .content-center { align-content: center }
6018
6119
  .content-end { align-content: end }
6019
6120
 
6121
+ .place-content-start { place-content: start }
6122
+ .place-content-center { place-content: center }
6123
+ .place-content-end { place-content: end }
6124
+
6125
+ .grid-column-start-1 { grid-column-start: 1 }
6126
+ .grid-column-start-2 { grid-column-start: 2 }
6127
+
6128
+ /* Spacing */
6129
+
6020
6130
  .gap-0 { gap: 0 }
6021
6131
  .gap-0\.5 { gap: 0.125rem }
6022
6132
  .gap-1 { gap: 0.25rem }
@@ -6032,8 +6142,6 @@ ul.lexassetscontent {
6032
6142
  .gap-11 { gap: 2.75rem }
6033
6143
  .gap-12 { gap: 3rem }
6034
6144
 
6035
- /* Spacing */
6036
-
6037
6145
  .mt-auto { margin-top: auto }
6038
6146
  .mb-auto { margin-bottom: auto }
6039
6147
  .ml-auto { margin-left: auto }
@@ -6122,6 +6230,10 @@ ul.lexassetscontent {
6122
6230
  .p-6 { padding: 1.5rem }
6123
6231
  .p-7 { padding: 1.75rem }
6124
6232
  .p-8 { padding: 2rem }
6233
+ .p-9 { padding: 2.25rem }
6234
+ .p-10 { padding: 2.5rem }
6235
+ .p-11 { padding: 2.75rem }
6236
+ .p-12 { padding: 3rem }
6125
6237
 
6126
6238
  .pt-0 { padding-top: 0 }
6127
6239
  .pt-1 { padding-top: 0.25rem }
@@ -6214,13 +6326,59 @@ ul.lexassetscontent {
6214
6326
 
6215
6327
  .uppercase { text-transform: uppercase }
6216
6328
  .capitalize { text-transform: capitalize }
6329
+ .decoration-none { text-decoration: none }
6217
6330
 
6218
6331
  /* Width / Height */
6219
6332
 
6220
6333
  .w-full { width: 100% }
6221
6334
  .w-screen { width: 100vw }
6335
+ .w-auto { width: auto }
6336
+
6337
+ .w-2\/3 { width: 66.666% }
6338
+ .w-1\/2 { width: 50% }
6339
+ .w-1\/3 { width: 33.333% }
6340
+ .w-1\/4 { width: 25% }
6341
+
6342
+ .w-1 { width: 0.25rem }
6343
+ .w-2 { width: 0.5rem }
6344
+ .w-3 { width: 0.75rem }
6345
+ .w-4 { width: 1rem } /* 16px */
6346
+ .w-5 { width: 1.25rem }
6347
+ .w-6 { width: 1.5rem }
6348
+ .w-7 { width: 1.75rem }
6349
+ .w-8 { width: 2rem }
6350
+ .w-9 { width: 2.25rem }
6351
+ .w-10 { width: 2.5rem }
6352
+ .w-11 { width: 2.75rem }
6353
+ .w-12 { width: 3rem }
6354
+ .w-13 { width: 3.25rem }
6355
+ .w-14 { width: 3.5rem }
6356
+ .w-15 { width: 3.75rem }
6357
+ .w-16 { width: 4rem } /* 64px */
6358
+ .w-32 { width: 8rem } /* 128px */
6359
+
6360
+
6222
6361
  .h-full { height: 100% }
6223
6362
  .h-screen { height: 100vh }
6363
+ .h-auto { height: auto }
6364
+
6365
+ .h-1 { height: 0.25rem }
6366
+ .h-2 { height: 0.5rem }
6367
+ .h-3 { height: 0.75rem }
6368
+ .h-4 { height: 1rem }
6369
+ .h-5 { height: 1.25rem }
6370
+ .h-6 { height: 1.5rem }
6371
+ .h-7 { height: 1.75rem }
6372
+ .h-8 { height: 2rem }
6373
+ .h-9 { height: 2.25rem }
6374
+ .h-10 { height: 2.5rem }
6375
+ .h-11 { height: 2.75rem }
6376
+ .h-12 { height: 3rem }
6377
+ .h-13 { height: 3.25rem }
6378
+ .h-14 { height: 3.5rem }
6379
+ .h-15 { height: 3.75rem }
6380
+ .h-16 { height: 4rem }
6381
+ .h-32 { height: 8rem }
6224
6382
 
6225
6383
  .resize-none { resize: none }
6226
6384
 
@@ -6249,6 +6407,7 @@ ul.lexassetscontent {
6249
6407
  /* Borders / Radius / Shadow */
6250
6408
 
6251
6409
  .border { border: 1px solid var(--global-color-tertiary) }
6410
+ .border-none { border: none }
6252
6411
  .border-colored { border: 1px solid currentColor }
6253
6412
 
6254
6413
  .border-solid { border-style: solid }
@@ -6272,16 +6431,16 @@ ul.lexassetscontent {
6272
6431
  .border-l-0 { border-left-width: 0 }
6273
6432
  .border-r-0 { border-right-width: 0 }
6274
6433
 
6275
- .rounded-none { border-radius: 0 }
6276
- .rounded-sm { border-radius: 0.125rem }
6277
- .rounded { border-radius: 0.25rem }
6278
- .rounded-md { border-radius: 0.375rem }
6279
- .rounded-lg { border-radius: 0.5rem }
6280
- .rounded-xl { border-radius: 0.75rem }
6281
- .rounded-2xl { border-radius: 1rem }
6282
- .rounded-3xl { border-radius: 1.5rem }
6283
- .rounded-full { border-radius: 9999px }
6284
- .rounded-inherit { border-radius: inherit }
6434
+ .rounded-none { border-radius: 0 !important }
6435
+ .rounded-sm { border-radius: 0.125rem !important }
6436
+ .rounded { border-radius: 0.25rem !important }
6437
+ .rounded-md { border-radius: 0.375rem !important }
6438
+ .rounded-lg { border-radius: 0.5rem !important }
6439
+ .rounded-xl { border-radius: 0.75rem !important }
6440
+ .rounded-2xl { border-radius: 1rem !important }
6441
+ .rounded-3xl { border-radius: 1.5rem !important }
6442
+ .rounded-full { border-radius: 9999px !important }
6443
+ .rounded-inherit { border-radius: inherit !important }
6285
6444
 
6286
6445
  .rounded-t-none { border-top-left-radius: 0; border-top-right-radius: 0 }
6287
6446
  .rounded-r-none { border-top-right-radius: 0; border-bottom-right-radius: 0 }
@@ -6324,4 +6483,111 @@ ul.lexassetscontent {
6324
6483
 
6325
6484
  .linear { transition-timing-function: linear }
6326
6485
  .ease-in { transition-timing-function: ease-in }
6327
- .ease-out { transition-timing-function: ease-out }
6486
+ .ease-out { transition-timing-function: ease-out }
6487
+
6488
+ /* Media queries for sizes */
6489
+
6490
+ @media (min-width: 768px) {
6491
+ .sm\:hidden { display: none !important }
6492
+ .sm\:block { display: block !important }
6493
+ .sm\:inline { display: inline !important }
6494
+ .sm\:flex { display: flex !important }
6495
+ .sm\:grid { display: grid !important }
6496
+ .sm\:inline-flex { display: inline-flex !important }
6497
+ .sm\:inline-block { display: inline-block !important }
6498
+ .sm\:flex-fill { flex: 1 0 0% !important }
6499
+
6500
+ .sm\:w-full { width: 100% !important }
6501
+ .sm\:w-screen { width: 100vw !important }
6502
+ .sm\:w-auto { width: auto !important }
6503
+ .sm\:h-full { height: 100% !important }
6504
+ .sm\:h-screen { height: 100vh !important }
6505
+ .sm\:h-auto { height: auto !important }
6506
+ .sm\:w-1\/2 { width: 50% !important }
6507
+ .sm\:w-1\/3 { width: 33.333% !important }
6508
+ .sm\:w-1\/4 { width: 25% !important }
6509
+ }
6510
+
6511
+ @media (min-width: 1024px) {
6512
+ .md\:hidden { display: none !important }
6513
+ .md\:block { display: block !important }
6514
+ .md\:inline { display: inline !important }
6515
+ .md\:flex { display: flex !important }
6516
+ .md\:grid { display: grid !important }
6517
+ .md\:inline-flex { display: inline-flex !important }
6518
+ .md\:inline-block { display: inline-block !important }
6519
+ .md\:flex-fill { flex: 1 0 0% !important }
6520
+
6521
+ .md\:w-full { width: 100% !important }
6522
+ .md\:w-screen { width: 100vw !important }
6523
+ .md\:w-auto { width: auto !important }
6524
+ .md\:h-full { height: 100% !important }
6525
+ .md\:h-screen { height: 100vh !important }
6526
+ .md\:h-auto { height: auto !important }
6527
+ .md\:w-1\/2 { width: 50% !important }
6528
+ .md\:w-1\/3 { width: 33.333% !important }
6529
+ .md\:w-1\/4 { width: 25% !important }
6530
+ }
6531
+
6532
+ @media (min-width: 1440px) {
6533
+ .lg\:hidden { display: none !important }
6534
+ .lg\:block { display: block !important }
6535
+ .lg\:inline { display: inline !important }
6536
+ .lg\:flex { display: flex !important }
6537
+ .lg\:grid { display: grid !important }
6538
+ .lg\:inline-flex { display: inline-flex !important }
6539
+ .lg\:inline-block { display: inline-block !important }
6540
+ .lg\:flex-fill { flex: 1 0 0% !important }
6541
+
6542
+ .lg\:w-full { width: 100% !important }
6543
+ .lg\:w-screen { width: 100vw !important }
6544
+ .lg\:w-auto { width: auto !important }
6545
+ .lg\:h-full { height: 100% !important }
6546
+ .lg\:h-screen { height: 100vh !important }
6547
+ .lg\:h-auto { height: auto !important }
6548
+ .lg\:w-1\/2 { width: 50% !important }
6549
+ .lg\:w-1\/3 { width: 33.333% !important }
6550
+ .lg\:w-1\/4 { width: 25% !important }
6551
+ }
6552
+
6553
+ @media (min-width: 1920px) {
6554
+ .xl\:hidden { display: none !important }
6555
+ .xl\:block { display: block !important }
6556
+ .xl\:inline { display: inline !important }
6557
+ .xl\:flex { display: flex !important }
6558
+ .xl\:grid { display: grid !important }
6559
+ .xl\:inline-flex { display: inline-flex !important }
6560
+ .xl\:inline-block { display: inline-block !important }
6561
+ .xl\:flex-fill { flex: 1 0 0% !important }
6562
+
6563
+ .xl\:w-full { width: 100% !important }
6564
+ .xl\:w-screen { width: 100vw !important }
6565
+ .xl\:w-auto { width: auto !important }
6566
+ .xl\:h-full { height: 100% !important }
6567
+ .xl\:h-screen { height: 100vh !important }
6568
+ .xl\:h-auto { height: auto !important }
6569
+ .xl\:w-1\/2 { width: 50% !important }
6570
+ .xl\:w-1\/3 { width: 33.333% !important }
6571
+ .xl\:w-1\/4 { width: 25% !important }
6572
+ }
6573
+
6574
+ @media (min-width: 2560px) {
6575
+ .xxl\:hidden { display: none !important }
6576
+ .xxl\:block { display: block !important }
6577
+ .xxl\:inline { display: inline !important }
6578
+ .xxl\:flex { display: flex !important }
6579
+ .xxl\:grid { display: grid !important }
6580
+ .xxl\:inline-flex { display: inline-flex !important }
6581
+ .xxl\:inline-block { display: inline-block !important }
6582
+ .xxl\:flex-fill { flex: 1 0 0% !important }
6583
+
6584
+ .xxl\:w-full { width: 100% !important }
6585
+ .xxl\:w-screen { width: 100vw !important }
6586
+ .xxl\:w-auto { width: auto !important }
6587
+ .xxl\:h-full { height: 100% !important }
6588
+ .xxl\:h-screen { height: 100vh !important }
6589
+ .xxl\:h-auto { height: auto !important }
6590
+ .xxl\:w-1\/2 { width: 50% !important }
6591
+ .xxl\:w-1\/3 { width: 33.333% !important }
6592
+ .xxl\:w-1\/4 { width: 25% !important }
6593
+ }