lexgui 0.6.12 → 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 +95 -63
  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 +23 -23
  8. package/build/{components → extensions}/videoeditor.js +1 -1
  9. package/build/lexgui-docs.css +9 -9
  10. package/build/lexgui.css +484 -224
  11. package/build/lexgui.js +1399 -735
  12. package/build/lexgui.min.css +2 -2
  13. package/build/lexgui.min.js +1 -1
  14. package/build/lexgui.module.js +1400 -736
  15. package/build/lexgui.module.min.js +1 -1
  16. package/changelog.md +72 -21
  17. package/demo.js +43 -30
  18. package/examples/{all_widgets.html → all-components.html} +21 -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 +4 -4
  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,13 +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;
853
906
  }
854
907
  }
855
908
 
856
909
  @media (min-width: 2100px) {
857
910
  .lexcontainer.wrapper {
858
- max-width: 1736px;
911
+ max-width: 1920px;
859
912
  }
860
913
  }
861
914
 
@@ -1037,7 +1090,7 @@ a svg, svg path {
1037
1090
  z-index: 150;
1038
1091
  display: flex;
1039
1092
  flex-direction: column;
1040
- padding: 0.2rem;
1093
+ padding: var(--global-padding-xs);
1041
1094
  border-radius: 6px;
1042
1095
  border: 1px solid #7a797c4f;
1043
1096
  outline: none;
@@ -1049,7 +1102,7 @@ a svg, svg path {
1049
1102
  .lexdropdownmenuitem {
1050
1103
  display: flex;
1051
1104
  flex-direction: row;
1052
- padding: 0.5rem;
1105
+ padding: var(--global-padding-md);
1053
1106
  border-radius: 6px;
1054
1107
  gap: 0.5rem;
1055
1108
  white-space: nowrap;
@@ -1160,7 +1213,7 @@ a svg, svg path {
1160
1213
 
1161
1214
  .lexpanel {
1162
1215
  margin: 0;
1163
- padding: 4px;
1216
+ padding: var(--global-padding-xs);
1164
1217
  overflow: hidden;
1165
1218
  overflow-y: scroll;
1166
1219
  }
@@ -1179,7 +1232,7 @@ a svg, svg path {
1179
1232
  }
1180
1233
 
1181
1234
  .lexbranch .lexbranchcontent {
1182
- padding: 4px;
1235
+ padding: var(--global-padding-xs);
1183
1236
  background-color: var(--global-color-secondary);
1184
1237
  border-bottom-left-radius: 8px;
1185
1238
  border-bottom-right-radius: 8px;
@@ -1197,7 +1250,7 @@ a svg, svg path {
1197
1250
  background-color: var(--global-color-secondary);
1198
1251
  text-shadow: 0px 1px 6px #42424260;
1199
1252
  letter-spacing: calc(var(--global-font-size-lg) * 0.025);
1200
- padding: 10px;
1253
+ padding: var(--global-padding-lg);
1201
1254
  display: flex;
1202
1255
  border-top-left-radius: 8px;
1203
1256
  border-top-right-radius: 8px;
@@ -1212,44 +1265,7 @@ a svg, svg path {
1212
1265
  background-color: inherit;
1213
1266
  }
1214
1267
 
1215
- .lexbranchtitle:active {
1216
- padding-left: 11px;
1217
- }
1218
-
1219
- .lexbranchtitle.wtabs {
1220
- display: flex;
1221
- padding: 0px;
1222
- cursor: default;
1223
- background-color: var(--global-color-tertiary);
1224
- text-shadow: none;
1225
- color: #5f6770;
1226
- }
1227
-
1228
1268
  /* Tab */
1229
- .lexbranchtitle.wtabs span {
1230
- padding: 10px;
1231
- cursor: pointer;
1232
- }
1233
-
1234
- .lexbranchtitle.wtabs span:hover {
1235
- background-color: #47505872;
1236
- }
1237
-
1238
- .lexbranchtitle.wtabs span:active {
1239
- margin-top: 1px;
1240
- }
1241
-
1242
- .lexbranchtitle.wtabs span.first {
1243
- border-top-left-radius: 8px;
1244
- }
1245
-
1246
- .lexbranchtitle.wtabs span.selected {
1247
- border-top: 2px solid var(--global-color-accent-light);
1248
- background-color: var(--global-color-secondary);
1249
- color: var(--global-text-primary);
1250
- text-shadow: 0px 1px 2px #000;
1251
- }
1252
-
1253
1269
  .lexbranch .branchicon {
1254
1270
  font-size: var(--global-font-size);
1255
1271
  margin-right: 12px;
@@ -1283,58 +1299,56 @@ a svg, svg path {
1283
1299
  background-color: inherit;
1284
1300
  }
1285
1301
 
1286
- /* Widgets */
1302
+ /* Components */
1287
1303
 
1288
- .lexwidget {
1304
+ .lexcomponent {
1289
1305
  display: flex;
1290
1306
  align-items: center;
1291
- padding: 5px;
1307
+ padding: var(--global-padding-xs);
1292
1308
  font-size: var(--global-font-size);
1293
1309
  color: var(--global-text-primary);
1294
1310
  line-height: 2;
1295
1311
  overflow: hidden;
1296
1312
  }
1297
1313
 
1298
- .lexinlinewidgets .lexwidgetname.float-center {
1314
+ .lexinlinecomponents .lexcomponentname.float-center {
1299
1315
  justify-content: center;
1300
1316
  }
1301
1317
 
1302
- .lexinlinewidgets .lexwidgetname.float-right {
1318
+ .lexinlinecomponents .lexcomponentname.float-right {
1303
1319
  justify-content: end;
1304
1320
  -moz-transform: translateX(-1em);
1305
1321
  -webkit-transform: translateX(-1em);
1306
1322
  transform: translateX(-1em);
1307
1323
  }
1308
1324
 
1309
- .lexwidget.auto {
1325
+ .lexcomponent.auto {
1310
1326
  width: unset !important;
1311
1327
  }
1312
1328
 
1313
- .lexwidget.micro {
1329
+ .lexcomponent.micro {
1314
1330
  min-width: 24px;
1315
1331
  width: 3% !important;
1316
- padding-left: 4px;
1317
- padding-right: 4px;
1318
1332
  }
1319
1333
 
1320
- .lexwidget.right {
1334
+ .lexcomponent.right {
1321
1335
  margin-left: auto;
1322
1336
  margin-right: 8px;
1323
1337
  }
1324
1338
 
1325
- .lexwidget.small {
1339
+ .lexcomponent.small {
1326
1340
  width: 5% !important;
1327
1341
  }
1328
1342
 
1329
- .lexwidget.md {
1343
+ .lexcomponent.md {
1330
1344
  width: 75% !important;
1331
1345
  }
1332
1346
 
1333
- .lexinlinewidgets {
1347
+ .lexinlinecomponents {
1334
1348
  display: flex;
1335
1349
  }
1336
1350
 
1337
- .lexwidgetseparator div {
1351
+ .lexcomponentseparator div {
1338
1352
  -ms-transform: translateY(-11px);
1339
1353
  -webkit-transform: translateY(-11px);
1340
1354
  transform: translateY(-11px);
@@ -1344,15 +1358,15 @@ a svg, svg path {
1344
1358
  color: var(--global-text-tertiary);
1345
1359
  }
1346
1360
 
1347
- .lexwidgetseparator div:hover {
1361
+ .lexcomponentseparator div:hover {
1348
1362
  color: #4d4d5ac4;
1349
1363
  }
1350
1364
 
1351
- .lexwidgetseparator div div {
1365
+ .lexcomponentseparator div div {
1352
1366
  background: #dddddd33;
1353
1367
  }
1354
1368
 
1355
- .lexwidgetname {
1369
+ .lexcomponentname {
1356
1370
  white-space: nowrap;
1357
1371
  overflow: hidden;
1358
1372
  display: flex;
@@ -1361,7 +1375,7 @@ a svg, svg path {
1361
1375
  color: var(--global-text-secondary);
1362
1376
  }
1363
1377
 
1364
- .lexinlinewidgets .lexwidgetname {
1378
+ .lexinlinecomponents .lexcomponentname {
1365
1379
  width: fit-content !important;
1366
1380
  padding-inline: 0.4rem;
1367
1381
  }
@@ -1386,9 +1400,9 @@ a svg, svg path {
1386
1400
  border-bottom: 1px solid #c1c1c1;
1387
1401
  }
1388
1402
 
1389
- .lexwidget input:not(.lexcheckbox, .lextoggle, .lexrangeslider) {
1403
+ .lexcomponent input:not(.lexcheckbox, .lextoggle, .lexrangeslider) {
1390
1404
  font-family: var(--global-font);
1391
- padding: 4px;
1405
+ padding: var(--global-padding-xs);
1392
1406
  color: var(--global-text-primary);
1393
1407
  --background-color: var(--global-color-tertiary);
1394
1408
  background-color: var(--background-color);
@@ -1400,37 +1414,37 @@ a svg, svg path {
1400
1414
  transition-duration: .15s;
1401
1415
  }
1402
1416
 
1403
- .lexwidget input:not(.lexcheckbox, .lextoggle, .lexrangeslider, .outline):hover {
1417
+ .lexcomponent input:not(.lexcheckbox, .lextoggle, .lexrangeslider, .outline):hover {
1404
1418
  background-color: color-mix(in srgb, var(--background-color), #000 5%);
1405
1419
  }
1406
1420
 
1407
- .lexwidget input.colorinput {
1421
+ .lexcomponent input.colorinput {
1408
1422
  border: none;
1409
1423
  margin-left: -4px;
1410
1424
  }
1411
1425
 
1412
- .lexwidget input:disabled:not(.lextoggle) {
1426
+ .lexcomponent input:disabled:not(.lextoggle) {
1413
1427
  outline: none;
1414
1428
  border: none;
1415
1429
  color: var(--global-text-tertiary);
1416
1430
  }
1417
1431
 
1418
- /* Text Widget */
1432
+ /* Text Component */
1419
1433
 
1420
- .lexwidget input.lextext, .lexwidget div.lextext {
1434
+ .lexcomponent input.lextext, .lexcomponent div.lextext {
1421
1435
  width: 100%;
1422
1436
  border-radius: 6px;
1423
1437
  position: relative;
1424
1438
  border: 1px solid transparent;
1425
- padding: 6px 12px;
1439
+ padding: var(--global-padding-xs) 0.75rem;
1426
1440
  }
1427
1441
 
1428
- .lexwidget .lextext:disabled {
1442
+ .lexcomponent .lextext:disabled {
1429
1443
  background-color: var(--global-color-tertiary);
1430
1444
  color: var(--global-text-tertiary);
1431
1445
  }
1432
1446
 
1433
- .lexwidget .lextext.formlabel {
1447
+ .lexcomponent .lextext.formlabel {
1434
1448
  margin-left: 8px;
1435
1449
  margin-bottom: -6px;
1436
1450
  font-weight: 500;
@@ -1438,51 +1452,51 @@ a svg, svg path {
1438
1452
  font-size: var(--global-font-size-sm);
1439
1453
  }
1440
1454
 
1441
- .lexwidget .lextext.outline {
1455
+ .lexcomponent .lextext.outline {
1442
1456
  background: var(--global-color-primary);
1443
1457
  border: 1px solid #7a797c4f;
1444
1458
  }
1445
1459
 
1446
- .lexwidget .lextext.nobg {
1460
+ .lexcomponent .lextext.nobg {
1447
1461
  background: none;
1448
1462
  border: 1px solid transparent;
1449
1463
  }
1450
1464
 
1451
- .lexwidget .lextext.dashed {
1465
+ .lexcomponent .lextext.dashed {
1452
1466
  background: var(--global-color-primary);
1453
1467
  border: 1px dashed #7a797c4f;
1454
1468
  }
1455
1469
 
1456
- .lexwidget .lextext.nobg:hover {
1470
+ .lexcomponent .lextext.nobg:hover {
1457
1471
  background: none;
1458
1472
  }
1459
1473
 
1460
- .lexwidget .lextext:focus {
1474
+ .lexcomponent .lextext:focus {
1461
1475
  border: 1px solid var(--global-text-quaternary);
1462
1476
  }
1463
1477
 
1464
- .lexwidget .lextext:invalid:focus {
1478
+ .lexcomponent .lextext:invalid:focus {
1465
1479
  border: 1px solid var(--global-color-error);
1466
1480
  }
1467
1481
 
1468
- .lexwidget .lextext.lexwarning div {
1482
+ .lexcomponent .lextext.lexwarning div {
1469
1483
  color: var(--global-color-warning);
1470
1484
  font-weight: 600;
1471
1485
  }
1472
1486
 
1473
- .lexwidget .lextext.lexwarning i {
1487
+ .lexcomponent .lextext.lexwarning i {
1474
1488
  color: var(--global-color-warning);
1475
1489
  margin-right: 16px;
1476
1490
  }
1477
1491
 
1478
- /* TextArea Widget */
1492
+ /* TextArea Component */
1479
1493
 
1480
- .lexwidget textarea {
1494
+ .lexcomponent textarea {
1481
1495
  width: 100%;
1482
1496
  word-break: break-word;
1483
1497
  font-family: var(--global-font);
1484
1498
  background: none;
1485
- padding: 5px;
1499
+ padding: var(--global-padding-md);
1486
1500
  color: var(--global-text-primary);
1487
1501
  outline: none;
1488
1502
  border-radius: 6px;
@@ -1490,34 +1504,34 @@ a svg, svg path {
1490
1504
  transition: 0.1s linear;
1491
1505
  }
1492
1506
 
1493
- .lexwidget textarea.outline {
1507
+ .lexcomponent textarea.outline {
1494
1508
  background: var(--global-color-primary);
1495
1509
  border: 1px solid #7a797c4f;
1496
1510
  }
1497
1511
 
1498
- .lexwidget textarea.nobg {
1512
+ .lexcomponent textarea.nobg {
1499
1513
  background: none;
1500
1514
  border: 1px solid transparent;
1501
1515
  }
1502
1516
 
1503
- .lexwidget textarea.dashed {
1517
+ .lexcomponent textarea.dashed {
1504
1518
  background: var(--global-color-primary);
1505
1519
  border: 1px dashed #7a797c4f;
1506
1520
  }
1507
1521
 
1508
- .lexwidget textarea.outline:hover, .lexwidget .lextext.nobg:hover {
1522
+ .lexcomponent textarea.outline:hover, .lexcomponent .lextext.nobg:hover {
1509
1523
  background: none;
1510
1524
  }
1511
1525
 
1512
- .lexwidget textarea:disabled {
1526
+ .lexcomponent textarea:disabled {
1513
1527
  resize: none;
1514
1528
  }
1515
1529
 
1516
- .lexwidget textarea:focus {
1530
+ .lexcomponent textarea:focus {
1517
1531
  border: 1px solid var(--global-text-quaternary);
1518
1532
  }
1519
1533
 
1520
- /* Input Color Widget */
1534
+ /* Input Color Component */
1521
1535
 
1522
1536
  .lexcolor {
1523
1537
  display: flex;
@@ -1542,7 +1556,7 @@ a svg, svg path {
1542
1556
  font-weight: 600;
1543
1557
  }
1544
1558
 
1545
- .lexcolor .lexwidget {
1559
+ .lexcolor .lexcomponent {
1546
1560
  padding: 0px;
1547
1561
  }
1548
1562
 
@@ -1609,11 +1623,11 @@ a svg, svg path {
1609
1623
  letter-spacing: 0.02rem;
1610
1624
  }
1611
1625
 
1612
- .lexcolorpicker .lexwidget {
1626
+ .lexcolorpicker .lexcomponent {
1613
1627
  padding: 2px !important;
1614
1628
  }
1615
1629
 
1616
- /* Title Widget */
1630
+ /* Title Component */
1617
1631
 
1618
1632
  .lextitle {
1619
1633
  width: fit-content !important;
@@ -1622,9 +1636,7 @@ a svg, svg path {
1622
1636
  font-weight: 600;
1623
1637
  font-size: var(--global-font-size);
1624
1638
  margin: 12px;
1625
- padding: 2px;
1626
- padding-left: 12px;
1627
- padding-right: 12px;
1639
+ padding: var(--global-padding-xs) var(--global-padding-lg);
1628
1640
  line-height: 1.5;
1629
1641
  display: grid;
1630
1642
  align-content: center;
@@ -1637,7 +1649,7 @@ a svg, svg path {
1637
1649
  user-select: none;
1638
1650
  }
1639
1651
 
1640
- .lexinlinewidgets .lextitle {
1652
+ .lexinlinecomponents .lextitle {
1641
1653
  margin: 8px;
1642
1654
  height: 24px;
1643
1655
  flex: none;
@@ -1655,7 +1667,7 @@ a svg, svg path {
1655
1667
  }
1656
1668
 
1657
1669
 
1658
- /* Button Widget */
1670
+ /* Button Component */
1659
1671
 
1660
1672
  .lexbutton {
1661
1673
  --button-color: var(--global-color-tertiary);
@@ -1763,7 +1775,7 @@ a svg, svg path {
1763
1775
  background-color: var(--global-color-tertiary);
1764
1776
  width: max-content;
1765
1777
  justify-self: center;
1766
- padding: 3px;
1778
+ padding: var(--global-padding-xs);
1767
1779
  border-radius: 8px;
1768
1780
  gap: 0.2em;
1769
1781
  }
@@ -1805,7 +1817,7 @@ a svg, svg path {
1805
1817
  position: relative;
1806
1818
  }
1807
1819
 
1808
- .lexselect .lexwidget {
1820
+ .lexselect .lexcomponent {
1809
1821
  padding: 0;
1810
1822
  }
1811
1823
 
@@ -2033,11 +2045,11 @@ dialog .lexselect .lexselectoptions {
2033
2045
  grid-column: span 2;
2034
2046
  }
2035
2047
 
2036
- .lexcheckboxsubmenu .lexwidget {
2048
+ .lexcheckboxsubmenu .lexcomponent {
2037
2049
  width: 100% !important;
2038
2050
  }
2039
2051
 
2040
- /* Toggle Widget */
2052
+ /* Toggle Component */
2041
2053
 
2042
2054
  .lextoggle {
2043
2055
  --toggle-bg-color: var(--global-text-tertiary); /* Color of background CHECKED */
@@ -2198,7 +2210,7 @@ dialog .lexselect .lexselectoptions {
2198
2210
  grid-column: span 2;
2199
2211
  }
2200
2212
 
2201
- /* Radio Group Widget */
2213
+ /* Radio Group Component */
2202
2214
 
2203
2215
  .lexradiogroup {
2204
2216
  width: 100% !important;
@@ -2263,7 +2275,7 @@ dialog .lexselect .lexselectoptions {
2263
2275
  .lexradiogroup.error .lexradiogroupitem button.checked span { background-color: var(--global-color-error); }
2264
2276
  .lexradiogroup.warning .lexradiogroupitem button.checked span { background-color: var(--global-color-warning); }
2265
2277
 
2266
- /* Vector Widgets */
2278
+ /* Vector Component */
2267
2279
 
2268
2280
  .lexvector {
2269
2281
  display: flex;
@@ -2290,8 +2302,8 @@ dialog .lexselect .lexselectoptions {
2290
2302
  background-color: color-mix(in srgb, var(--global-color-tertiary), #000 7%);
2291
2303
  }
2292
2304
 
2293
- .lexwidget .numberbox .drag-icon,
2294
- .lexwidget .vecbox .drag-icon {
2305
+ .lexcomponent .numberbox .drag-icon,
2306
+ .lexcomponent .vecbox .drag-icon {
2295
2307
  font-size: var(--global-font-size-sm);
2296
2308
  color: var(--global-text-secondary);
2297
2309
  z-index: 11;
@@ -2360,9 +2372,9 @@ input[type=number] {
2360
2372
  color: var(--global-text-secondary);
2361
2373
  }
2362
2374
 
2363
- /* Number Widget */
2375
+ /* Number Component */
2364
2376
 
2365
- .lexwidget .numberbox {
2377
+ .lexcomponent .numberbox {
2366
2378
  width: 100%;
2367
2379
  display: flex;
2368
2380
  flex-direction: column;
@@ -2375,21 +2387,33 @@ input[type=number] {
2375
2387
  transition: 0.1s linear;
2376
2388
  }
2377
2389
 
2378
- .lexwidget .numberbox:hover {
2390
+ .lexcomponent .numberbox::-webkit-scrollbar {
2391
+ display: none;
2392
+ }
2393
+
2394
+ .lexcomponent .numberbox:hover {
2379
2395
  background-color: color-mix(in srgb, var(--global-color-tertiary), #000 7%);
2380
2396
  }
2381
2397
 
2382
- .lexwidget .numberbox:has(input:focus) {
2398
+ .lexcomponent .numberbox:has(input:focus) {
2383
2399
  border: 1px solid var(--global-text-quaternary);
2384
2400
  }
2385
2401
 
2386
- .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 {
2387
2411
  position: absolute;
2388
2412
  pointer-events: none;
2389
2413
  align-self: center;
2390
2414
  }
2391
2415
 
2392
- .lexwidget .numberbox:has(input[type=range]) span {
2416
+ .lexcomponent .numberbox:has(input[type=range]) span {
2393
2417
  margin-top: -12px;
2394
2418
  }
2395
2419
 
@@ -2447,7 +2471,7 @@ input[type=number] {
2447
2471
  cursor: pointer;
2448
2472
  }
2449
2473
 
2450
- /* Range Widget */
2474
+ /* Range Component */
2451
2475
 
2452
2476
  .lexrangeslider {
2453
2477
  --range-thumb-color: var(--global-color-primary);
@@ -2552,7 +2576,7 @@ input[type=number] {
2552
2576
  top: 50%;
2553
2577
  }
2554
2578
 
2555
- /* OTP Widget */
2579
+ /* OTP Component */
2556
2580
 
2557
2581
  .lexotpslot.active {
2558
2582
  border: 1px solid var(--global-text-primary);
@@ -2564,18 +2588,18 @@ input[type=number] {
2564
2588
  cursor: not-allowed;
2565
2589
  }
2566
2590
 
2567
- /* Pad Widget */
2591
+ /* Pad Component */
2568
2592
 
2569
- .lexwidget .lexpad {
2593
+ .lexcomponent .lexpad {
2570
2594
  place-items: center;
2571
2595
  }
2572
2596
 
2573
- .lexwidget .lexpad .lexinnerpad {
2597
+ .lexcomponent .lexpad .lexinnerpad {
2574
2598
  border-radius: 4px;
2575
2599
  background-color: light-dark(var(--global-color-tertiary), var(--global-intense-background));
2576
2600
  }
2577
2601
 
2578
- .lexwidget .lexpad .lexinnerpad .lexpadthumb {
2602
+ .lexcomponent .lexpad .lexinnerpad .lexpadthumb {
2579
2603
  background-color: var(--global-color-accent);
2580
2604
  width: 10%;
2581
2605
  height: 10%;
@@ -2583,11 +2607,11 @@ input[type=number] {
2583
2607
  transform: translate(0px, 0px);
2584
2608
  }
2585
2609
 
2586
- .lexwidget .lexpad .lexinnerpad .lexpadthumb.active {
2610
+ .lexcomponent .lexpad .lexinnerpad .lexpadthumb.active {
2587
2611
  background-color: var(--global-color-accent-light);
2588
2612
  }
2589
2613
 
2590
- /* Tabs Widget */
2614
+ /* Tabs Component */
2591
2615
 
2592
2616
  .lextabscontainer {
2593
2617
  width: 100%;
@@ -2616,7 +2640,7 @@ input[type=number] {
2616
2640
  flex-direction: row;
2617
2641
  }
2618
2642
 
2619
- .lextabscontainer .widgets {
2643
+ .lextabscontainer .components {
2620
2644
  width: 100%;
2621
2645
  padding: 4px;
2622
2646
  }
@@ -2629,7 +2653,7 @@ input[type=number] {
2629
2653
  text-align: center;
2630
2654
  }
2631
2655
 
2632
- /* Data Tree Widget */
2656
+ /* Data Tree Component */
2633
2657
 
2634
2658
  .lextree {
2635
2659
  border-radius: 6px;
@@ -2659,7 +2683,7 @@ input[type=number] {
2659
2683
  gap: 0.5rem;
2660
2684
  }
2661
2685
 
2662
- .lexwidget.nobranch .lextree .lextreetools {
2686
+ .lexcomponent.nobranch .lextree .lextreetools {
2663
2687
  background: var(--global-color-secondary);
2664
2688
  }
2665
2689
 
@@ -2878,14 +2902,15 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
2878
2902
  /* Badges */
2879
2903
 
2880
2904
  .lexbadge {
2881
- border-radius: 0.35rem;
2905
+ border-radius: 0.4rem;
2882
2906
  color: #f4f4f5;
2883
2907
  border: 1px solid var(--badge-color, #14171a);
2884
2908
  width: fit-content;
2909
+ height: 1.1rem;
2885
2910
  justify-content: center;
2886
2911
  align-items: center;
2887
- gap: 0.5rem;
2888
- padding-inline: 0.6rem;
2912
+ gap: 0.25rem;
2913
+ padding-inline: 0.5rem;
2889
2914
  font-size: var(--global-font-size);
2890
2915
  display: inline-flex;
2891
2916
  background-color: var(--badge-color, #1d232a);
@@ -2911,11 +2936,30 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
2911
2936
  border: none;
2912
2937
  }
2913
2938
  /* Sizes */
2914
- .lexbadge.xs { padding-inline: 0.4rem; font-size: var(--global-font-size-xs); }
2915
- .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); }
2916
2941
  /* .lexbadge.md { default } */
2917
- .lexbadge.lg { padding-inline: 0.8rem; font-size: var(--global-font-size-lg); }
2918
- .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
+ }
2919
2963
 
2920
2964
  /* Menu Bar */
2921
2965
 
@@ -3141,7 +3185,7 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
3141
3185
  display: none;
3142
3186
  }
3143
3187
 
3144
- .lexsidebar .lexwidget {
3188
+ .lexsidebar .lexcomponent {
3145
3189
  width: 100% !important;
3146
3190
  padding: 0 !important;
3147
3191
  }
@@ -3183,7 +3227,7 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
3183
3227
  .lexsidebar .lexsidebargrouptitle {
3184
3228
  font-size: var(--global-font-size-sm);
3185
3229
  font-weight: 600;
3186
- color: var(--global-text-secondary);
3230
+ color: var(--global-text-tertiary);
3187
3231
  overflow: hidden;
3188
3232
  display: flex;
3189
3233
  }
@@ -3217,8 +3261,8 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
3217
3261
 
3218
3262
  .lexsidebar .lexsidebarentry {
3219
3263
  width: 100%;
3220
- padding-inline: 8px;
3221
- padding-block: 6px;
3264
+ padding-inline: var(--global-padding-md);
3265
+ padding-block: var(--global-padding-sm);
3222
3266
  margin-block: 0.15rem;
3223
3267
  border-radius: 8px;
3224
3268
  cursor: pointer;
@@ -3234,6 +3278,7 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
3234
3278
  white-space: nowrap;
3235
3279
  text-overflow: ellipsis;
3236
3280
  align-self: center;
3281
+ place-content: start;
3237
3282
  }
3238
3283
 
3239
3284
  .lexsidebar .lexsidebarentry:hover {
@@ -3248,7 +3293,7 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
3248
3293
  color: #f4f4f4;
3249
3294
  }
3250
3295
 
3251
- .lexsidebar .lexsidebarentry.selected svg path {
3296
+ .lexsidebar .lexsidebarentry.selected .lexsidebarentryicon svg path {
3252
3297
  color: #f4f4f4;
3253
3298
  }
3254
3299
 
@@ -3356,8 +3401,8 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
3356
3401
  width: 100%;
3357
3402
  height: 48px;
3358
3403
  display: flex;
3359
- border-radius: 8px;
3360
- padding: 8px;
3404
+ border-radius: 0.5rem;
3405
+ padding: 0.5rem;
3361
3406
  font-size: var(--global-font-size);
3362
3407
  cursor: pointer;
3363
3408
  align-items: center;
@@ -3466,13 +3511,13 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
3466
3511
  border-radius: 12px;
3467
3512
  }
3468
3513
 
3469
- .lexoverlaybuttons .lexwidget {
3514
+ .lexoverlaybuttons .lexcomponent {
3470
3515
  padding: 0px;
3471
3516
  pointer-events: auto;
3472
3517
  min-width: 32px;
3473
3518
  }
3474
3519
 
3475
- .lexoverlaybuttons .lexwidget button {
3520
+ .lexoverlaybuttons .lexcomponent button {
3476
3521
  min-width: 32px;
3477
3522
  }
3478
3523
 
@@ -3485,12 +3530,12 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
3485
3530
  display: grid;
3486
3531
  }
3487
3532
 
3488
- .lexoverlaybuttonscontainer.vertical .lexwidget {
3533
+ .lexoverlaybuttonscontainer.vertical .lexcomponent {
3489
3534
  margin-bottom: 6px;
3490
3535
  margin-right: 0px;
3491
3536
  }
3492
3537
 
3493
- .lexoverlaybuttonscontainer.vertical .lexwidget button {
3538
+ .lexoverlaybuttonscontainer.vertical .lexcomponent button {
3494
3539
  min-width: 32px;
3495
3540
  max-height: 32px !important;
3496
3541
  }
@@ -3516,13 +3561,13 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
3516
3561
  justify-items: right;
3517
3562
  }
3518
3563
 
3519
- .lexoverlaybuttons .lexwidget:hover {
3564
+ .lexoverlaybuttons .lexcomponent:hover {
3520
3565
  background-color: unset;
3521
3566
  }
3522
3567
 
3523
3568
  .lexoverlaybuttons .lexbutton {
3524
3569
  --button-color: var(--global-color-secondary);
3525
- padding: 6px 6px;
3570
+ padding: var(--global-padding-sm) var(--global-padding-sm);
3526
3571
  font-size: var(--global-font-size-lg);
3527
3572
  border-radius: 10px;
3528
3573
  justify-content: center;
@@ -3557,21 +3602,21 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
3557
3602
  margin-bottom: 6px;
3558
3603
  }
3559
3604
 
3560
- .lexoverlaybuttons .lexoverlaygroup .lexwidget {
3605
+ .lexoverlaybuttons .lexoverlaygroup .lexcomponent {
3561
3606
  padding: 0px;
3562
3607
  margin-right: 0px;
3563
3608
  }
3564
3609
 
3565
- .lexoverlaybuttonscontainer.vertical .lexoverlaygroup .lexwidget {
3610
+ .lexoverlaybuttonscontainer.vertical .lexoverlaygroup .lexcomponent {
3566
3611
  margin-right: 0px;
3567
3612
  margin-bottom: 0px;
3568
3613
  }
3569
3614
 
3570
- .lexoverlaybuttonscontainer.vertical .lexoverlaygroup .lexwidget button {
3615
+ .lexoverlaybuttonscontainer.vertical .lexoverlaygroup .lexcomponent button {
3571
3616
  width: 100% !important;
3572
3617
  }
3573
3618
 
3574
- .lexoverlaybuttons .lexwidget:last-child {
3619
+ .lexoverlaybuttons .lexcomponent:last-child {
3575
3620
  margin-right: 0px;
3576
3621
  }
3577
3622
 
@@ -3634,7 +3679,7 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
3634
3679
  }
3635
3680
 
3636
3681
  .lexareatabs.row .lexareatab {
3637
- padding: 0.45em 1.45em;
3682
+ padding: var(--global-padding-md) 1.45em;
3638
3683
  transition: 0.1s;
3639
3684
  background: none;
3640
3685
  border-radius: 6px;
@@ -3691,13 +3736,13 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
3691
3736
  max-height: 0px;
3692
3737
  }
3693
3738
 
3694
- /* Curve Widget */
3739
+ /* Curve Component */
3695
3740
 
3696
3741
  .curve canvas {
3697
3742
  border-radius: 2px;
3698
3743
  }
3699
3744
 
3700
- /* Avatar Widget */
3745
+ /* Avatar Component */
3701
3746
 
3702
3747
  .lexavatar {
3703
3748
  width: 48px;
@@ -3715,11 +3760,10 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
3715
3760
  height: 100%;
3716
3761
  }
3717
3762
 
3718
- /* Card Widget */
3763
+ /* Card Component */
3719
3764
 
3720
3765
  .lexcard {
3721
3766
  position: relative;
3722
- margin-bottom: 4px;
3723
3767
  }
3724
3768
 
3725
3769
  .lexcard img {
@@ -3727,7 +3771,7 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
3727
3771
  height: 128px;
3728
3772
  object-fit: cover;
3729
3773
  border-radius: 6px;
3730
- outline: 3px solid var(--global-text-tertiary);
3774
+ outline: 2px solid var(--global-text-tertiary);
3731
3775
  }
3732
3776
 
3733
3777
  .lexcard:hover a {
@@ -3735,16 +3779,13 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
3735
3779
  }
3736
3780
 
3737
3781
  .lexcard:hover img {
3738
- outline: 3px solid var(--global-color-accent);
3782
+ outline: 2px solid var(--global-color-accent);
3739
3783
  }
3740
3784
 
3741
3785
  .lexcard span {
3742
3786
  font-size: var(--global-font-size-lg);
3743
- font-family: var(--global-title-font);
3744
3787
  font-weight: 500;
3745
- text-transform: uppercase;
3746
3788
  width: 100%;
3747
- height: 32px;
3748
3789
  display: flex;
3749
3790
  background-color: var(--global-blur-background);
3750
3791
  --webkit-backdrop-filter: blur(12px);
@@ -3753,7 +3794,8 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
3753
3794
  position: absolute;
3754
3795
  top: 0;
3755
3796
  left: 0;
3756
- padding: 8px;
3797
+ padding: var(--global-padding-xs);
3798
+ padding-inline-start: 8px;
3757
3799
  border-top-left-radius: 6px;
3758
3800
  border-top-right-radius: 6px;
3759
3801
  }
@@ -3767,7 +3809,7 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
3767
3809
  color: var(--global-color-accent);
3768
3810
  }
3769
3811
 
3770
- /* Layers Widget */
3812
+ /* Layers Component */
3771
3813
 
3772
3814
  .lexlayers {
3773
3815
  display: grid;
@@ -3805,7 +3847,7 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
3805
3847
  transform: scale(0.99);
3806
3848
  }
3807
3849
 
3808
- /* List Widget */
3850
+ /* List Component */
3809
3851
 
3810
3852
  .lexlist {
3811
3853
  background: var(--global-color-primary);
@@ -3853,26 +3895,26 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
3853
3895
  background-color: var(--global-color-accent);
3854
3896
  }
3855
3897
 
3856
- /* Array Widget */
3898
+ /* Array Component */
3857
3899
 
3858
- .lexwidget:has(.lexarrayitems),
3859
- .lexwidget:has(.lexcheckboxsubmenu),
3860
- .lexwidget:has(.lextogglesubmenu),
3861
- .lexwidget:has(.lexcustomcontainer) {
3900
+ .lexcomponent:has(.lexarrayitems),
3901
+ .lexcomponent:has(.lexcheckboxsubmenu),
3902
+ .lexcomponent:has(.lextogglesubmenu),
3903
+ .lexcomponent:has(.lexcustomcontainer) {
3862
3904
  border-radius: 6px;
3863
3905
  transition: background-color 0.2s ease-out;
3864
3906
  display: flex;
3865
3907
  flex-wrap: wrap;
3866
3908
  }
3867
3909
 
3868
- .lexwidget:has(.lexarrayitems)[data-opened=true],
3869
- .lexwidget:has(.lexcheckboxsubmenu)[data-opened=true],
3870
- .lexwidget:has(.lextogglesubmenu)[data-opened=true],
3871
- .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] {
3872
3914
  background-color: light-dark(var(--global-color-tertiary), var(--global-medium-background));
3873
3915
  }
3874
3916
 
3875
- .lexarray .lexwidget {
3917
+ .lexarray .lexcomponent {
3876
3918
  padding: 0px;
3877
3919
  width: 100% !important;
3878
3920
  }
@@ -3886,7 +3928,7 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
3886
3928
  grid-column: span 2;
3887
3929
  }
3888
3930
 
3889
- .lexarrayitems .lexwidgetname {
3931
+ .lexarrayitems .lexcomponentname {
3890
3932
  color: var(--global-text-tertiary);
3891
3933
  font-size: var(--global-font-size-sm);
3892
3934
  justify-content: center;
@@ -3894,7 +3936,7 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
3894
3936
  font-weight: 600;
3895
3937
  }
3896
3938
 
3897
- /* Tags Widget */
3939
+ /* Tags Component */
3898
3940
 
3899
3941
  .lextags {
3900
3942
  display: inline-flex;
@@ -3902,7 +3944,7 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
3902
3944
  line-height: 12px;
3903
3945
  background-color: var(--global-color-tertiary);
3904
3946
  border-radius: 8px;
3905
- padding: 4px;
3947
+ padding: var(--global-padding-xs);
3906
3948
  }
3907
3949
 
3908
3950
  .lextags input {
@@ -3932,7 +3974,7 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
3932
3974
  cursor: pointer;
3933
3975
  }
3934
3976
 
3935
- /* Counter Widget */
3977
+ /* Counter Component */
3936
3978
 
3937
3979
  .lexcounter {
3938
3980
  display: flex;
@@ -3960,7 +4002,7 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
3960
4002
  color: var(--global-text-secondary);
3961
4003
  }
3962
4004
 
3963
- /* Table Widget */
4005
+ /* Table Component */
3964
4006
 
3965
4007
  .lextable {
3966
4008
  overflow-x: scroll;
@@ -4013,7 +4055,7 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
4013
4055
  }
4014
4056
 
4015
4057
  .lextable th, .lextable td {
4016
- padding: 6px;
4058
+ padding-block: var(--global-padding-sm);
4017
4059
  padding-inline: 12px;
4018
4060
  text-align: left;
4019
4061
  align-content: center;
@@ -4120,7 +4162,7 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
4120
4162
  box-shadow: none;
4121
4163
  }
4122
4164
 
4123
- /* Custom Widgets Widget */
4165
+ /* Custom Component */
4124
4166
 
4125
4167
  .lexcustomitems {
4126
4168
  width: 100%;
@@ -4137,7 +4179,7 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
4137
4179
  justify-content: space-between;
4138
4180
  }
4139
4181
 
4140
- /* Knob Widget */
4182
+ /* Knob Component */
4141
4183
 
4142
4184
  .lexknob {
4143
4185
  padding: 8px;
@@ -4359,11 +4401,11 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
4359
4401
  padding: 0 10px;
4360
4402
  }
4361
4403
 
4362
- .lextimeline .lexwidget:has(.lexbutton:not(.array)) {
4404
+ .lextimeline .lexcomponent:has(.lexbutton:not(.array)) {
4363
4405
  padding: 1px;
4364
4406
  }
4365
4407
 
4366
- .lextimeline .lexinlinewidgets {
4408
+ .lextimeline .lexinlinecomponents {
4367
4409
  padding-right: 10px;
4368
4410
  }
4369
4411
 
@@ -4634,7 +4676,10 @@ ul.lexassetscontent {
4634
4676
  .lexassetscontent .asset-file-preview text {
4635
4677
  font-size: 4rem;
4636
4678
  text-anchor: middle;
4637
- 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;
4638
4683
  color: var(--global-text-tertiary);
4639
4684
  }
4640
4685
 
@@ -4810,7 +4855,52 @@ ul.lexassetscontent {
4810
4855
  background-color: var(--global-text-primary);
4811
4856
  }
4812
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
+
4813
4902
  /* Code Editor */
4903
+
4814
4904
  .codebasearea {
4815
4905
  display: flex;
4816
4906
  position: relative;
@@ -4904,7 +4994,7 @@ ul.lexassetscontent {
4904
4994
  padding-inline: 1rem;
4905
4995
  }
4906
4996
 
4907
- .lexcodetabinfo .lexinlinewidgets {
4997
+ .lexcodetabinfo .lexinlinecomponents {
4908
4998
  justify-content: end;
4909
4999
  }
4910
5000
 
@@ -4919,7 +5009,7 @@ ul.lexassetscontent {
4919
5009
  }
4920
5010
 
4921
5011
  .lexcodeeditor .codetabsarea {
4922
- height: calc(100% - 76px) !important;
5012
+ height: 100% !important;
4923
5013
  background-color: light-dark(var(--global-color-secondary), var(--global-medium-background));
4924
5014
  overflow: scroll;
4925
5015
  }
@@ -4946,19 +5036,19 @@ ul.lexassetscontent {
4946
5036
 
4947
5037
  .lexcodeeditor .code {
4948
5038
  cursor: text;
4949
- font-family: "CommitMono", monospace;
5039
+ font-family: var(--global-code-font);
5040
+ font-feature-settings: "ss02", 'ss19', "ss20";
4950
5041
  -webkit-font-smoothing: antialiased;
4951
5042
  -moz-osx-font-smoothing: grayscale;
4952
- font-feature-settings: "ss04", "ss05";
4953
5043
  font-size: var(--code-editor-font-size);
4954
5044
  position: relative;
4955
5045
  }
4956
5046
 
4957
5047
  .codechar {
4958
- font-family: "CommitMono", monospace;
5048
+ font-family: var(--global-code-font);
5049
+ font-feature-settings: "ss02", 'ss19', "ss20";
4959
5050
  -webkit-font-smoothing: antialiased;
4960
5051
  -moz-osx-font-smoothing: grayscale;
4961
- font-feature-settings: "ss04", "ss05";
4962
5052
  font-size: var(--code-editor-font-size);
4963
5053
  position: absolute;
4964
5054
  top: 0;
@@ -4969,6 +5059,9 @@ ul.lexassetscontent {
4969
5059
 
4970
5060
  .lexcodeeditor pre {
4971
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);
4972
5065
  cursor: text;
4973
5066
  box-sizing: border-box;
4974
5067
  border-radius: 0;
@@ -5825,7 +5918,7 @@ ul.lexassetscontent {
5825
5918
  height: inherit;
5826
5919
  }
5827
5920
 
5828
- .lexvideoeditor .lexwidget.nobranch {
5921
+ .lexvideoeditor .lexcomponent.nobranch {
5829
5922
  padding: 0;
5830
5923
  width: 100% !important;
5831
5924
  }
@@ -5948,11 +6041,13 @@ ul.lexassetscontent {
5948
6041
  .hover\:scale-xl:hover { transform: scale(1.25); transition: transform 0.3s cubic-bezier(.42,.97,.52,1.19); }
5949
6042
 
5950
6043
  .stroke-none { stroke: none }
6044
+ .fill-current { fill: currentColor }
5951
6045
 
5952
6046
  /* Layout */
5953
6047
 
5954
6048
  .flex { display: flex }
5955
- .inline-flex { display: inline-flex }
6049
+ .inline-flex { display: inline-flex !important }
6050
+ .inline-grid { display: inline-grid !important }
5956
6051
  .flex-fill { flex: 1 0 0% }
5957
6052
  .grid { display: grid }
5958
6053
  .block { display: block }
@@ -6023,6 +6118,15 @@ ul.lexassetscontent {
6023
6118
  .content-center { align-content: center }
6024
6119
  .content-end { align-content: end }
6025
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
+
6026
6130
  .gap-0 { gap: 0 }
6027
6131
  .gap-0\.5 { gap: 0.125rem }
6028
6132
  .gap-1 { gap: 0.25rem }
@@ -6038,8 +6142,6 @@ ul.lexassetscontent {
6038
6142
  .gap-11 { gap: 2.75rem }
6039
6143
  .gap-12 { gap: 3rem }
6040
6144
 
6041
- /* Spacing */
6042
-
6043
6145
  .mt-auto { margin-top: auto }
6044
6146
  .mb-auto { margin-bottom: auto }
6045
6147
  .ml-auto { margin-left: auto }
@@ -6128,6 +6230,10 @@ ul.lexassetscontent {
6128
6230
  .p-6 { padding: 1.5rem }
6129
6231
  .p-7 { padding: 1.75rem }
6130
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 }
6131
6237
 
6132
6238
  .pt-0 { padding-top: 0 }
6133
6239
  .pt-1 { padding-top: 0.25rem }
@@ -6220,13 +6326,59 @@ ul.lexassetscontent {
6220
6326
 
6221
6327
  .uppercase { text-transform: uppercase }
6222
6328
  .capitalize { text-transform: capitalize }
6329
+ .decoration-none { text-decoration: none }
6223
6330
 
6224
6331
  /* Width / Height */
6225
6332
 
6226
6333
  .w-full { width: 100% }
6227
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
+
6228
6361
  .h-full { height: 100% }
6229
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 }
6230
6382
 
6231
6383
  .resize-none { resize: none }
6232
6384
 
@@ -6255,6 +6407,7 @@ ul.lexassetscontent {
6255
6407
  /* Borders / Radius / Shadow */
6256
6408
 
6257
6409
  .border { border: 1px solid var(--global-color-tertiary) }
6410
+ .border-none { border: none }
6258
6411
  .border-colored { border: 1px solid currentColor }
6259
6412
 
6260
6413
  .border-solid { border-style: solid }
@@ -6278,16 +6431,16 @@ ul.lexassetscontent {
6278
6431
  .border-l-0 { border-left-width: 0 }
6279
6432
  .border-r-0 { border-right-width: 0 }
6280
6433
 
6281
- .rounded-none { border-radius: 0 }
6282
- .rounded-sm { border-radius: 0.125rem }
6283
- .rounded { border-radius: 0.25rem }
6284
- .rounded-md { border-radius: 0.375rem }
6285
- .rounded-lg { border-radius: 0.5rem }
6286
- .rounded-xl { border-radius: 0.75rem }
6287
- .rounded-2xl { border-radius: 1rem }
6288
- .rounded-3xl { border-radius: 1.5rem }
6289
- .rounded-full { border-radius: 9999px }
6290
- .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 }
6291
6444
 
6292
6445
  .rounded-t-none { border-top-left-radius: 0; border-top-right-radius: 0 }
6293
6446
  .rounded-r-none { border-top-right-radius: 0; border-bottom-right-radius: 0 }
@@ -6330,4 +6483,111 @@ ul.lexassetscontent {
6330
6483
 
6331
6484
  .linear { transition-timing-function: linear }
6332
6485
  .ease-in { transition-timing-function: ease-in }
6333
- .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
+ }