Browse Source

Merge pull request #2512 from zauberzeug/font-filepaths

Shorten filepaths for static fonts
Rodja Trappe 1 năm trước cách đây
mục cha
commit
532fe4414b
61 tập tin đã thay đổi với 58 bổ sung50 xóa
  1. 9 1
      fetch_google_fonts.py
  2. 49 49
      nicegui/static/fonts.css
  3. 0 0
      nicegui/static/fonts/01d40c9fd448face.woff2
  4. 0 0
      nicegui/static/fonts/042d031f00f025d3.woff2
  5. 0 0
      nicegui/static/fonts/0953a0ea5ec2fbe6.woff2
  6. 0 0
      nicegui/static/fonts/096bf4e001f30f3d.woff2
  7. 0 0
      nicegui/static/fonts/0c19a63c7528cc1a.woff2
  8. 0 0
      nicegui/static/fonts/0ca83f77c744e2a2.woff2
  9. 0 0
      nicegui/static/fonts/18cea8b33059950e.woff2
  10. 0 0
      nicegui/static/fonts/1e891d4a2a7f2f96.woff2
  11. 0 0
      nicegui/static/fonts/28b81f220ca048e2.woff2
  12. 0 0
      nicegui/static/fonts/2af55f54d9fac778.woff2
  13. 0 0
      nicegui/static/fonts/2c8ec1765f13887d.woff2
  14. 0 0
      nicegui/static/fonts/2e2ca037aef7b51d.woff2
  15. 0 0
      nicegui/static/fonts/334116c5190f1716.woff2
  16. 0 0
      nicegui/static/fonts/34d83f10ce3fa7b4.woff2
  17. 0 0
      nicegui/static/fonts/425b348f7eab066c.woff2
  18. 0 0
      nicegui/static/fonts/47c853f95b759bef.woff2
  19. 0 0
      nicegui/static/fonts/4ad9ee1c03eed305.woff2
  20. 0 0
      nicegui/static/fonts/4c401738b2e90c99.woff2
  21. 0 0
      nicegui/static/fonts/55a208f32a6be540.woff2
  22. 0 0
      nicegui/static/fonts/5f02a1396c9fc305.woff2
  23. 0 0
      nicegui/static/fonts/616907143b870cb1.woff2
  24. 0 0
      nicegui/static/fonts/62873223be6b39e0.woff2
  25. 0 0
      nicegui/static/fonts/66c1c422e62faf1d.woff2
  26. 0 0
      nicegui/static/fonts/6d6ebdc60d2cd01e.woff2
  27. 0 0
      nicegui/static/fonts/707a7c6749d7c089.woff2
  28. 0 0
      nicegui/static/fonts/7104372e0a34311e.woff2
  29. 0 0
      nicegui/static/fonts/7420c823209e4609.woff2
  30. 0 0
      nicegui/static/fonts/7c7f3bb965e2deae.woff2
  31. 0 0
      nicegui/static/fonts/7f5c1101832b02f5.woff2
  32. 0 0
      nicegui/static/fonts/81471017108054b9.woff2
  33. 0 0
      nicegui/static/fonts/851ed7636af29416.woff2
  34. 0 0
      nicegui/static/fonts/8d21fc3a9d063f00.woff2
  35. 0 0
      nicegui/static/fonts/8e146ffc255e03c3.woff2
  36. BIN
      nicegui/static/fonts/935e23d0cd87ac6f.woff2
  37. 0 0
      nicegui/static/fonts/9b5609bd55cc78e3.woff2
  38. BIN
      nicegui/static/fonts/KFOkCnqEu92Fr1MmgWxP.ttf
  39. BIN
      nicegui/static/fonts/KFOlCnqEu92Fr1MmEU9vAw.ttf
  40. BIN
      nicegui/static/fonts/KFOlCnqEu92Fr1MmSU5vAw.ttf
  41. BIN
      nicegui/static/fonts/KFOlCnqEu92Fr1MmWUlvAw.ttf
  42. BIN
      nicegui/static/fonts/KFOlCnqEu92Fr1MmYUtvAw.ttf
  43. BIN
      nicegui/static/fonts/KFOmCnqEu92Fr1Me5Q.ttf
  44. 0 0
      nicegui/static/fonts/a35a05f781345176.woff2
  45. 0 0
      nicegui/static/fonts/ab8cf1fb84e33cd6.woff2
  46. 0 0
      nicegui/static/fonts/afd447df78322d0d.woff2
  47. BIN
      nicegui/static/fonts/bb828b03a1f11130.woff2
  48. 0 0
      nicegui/static/fonts/c3f2f68bb77a7944.woff2
  49. 0 0
      nicegui/static/fonts/c854362e488d0bec.woff2
  50. 0 0
      nicegui/static/fonts/cf8e1fe457b4cc05.woff2
  51. BIN
      nicegui/static/fonts/d4e71f49ac06b20e.woff2
  52. 0 0
      nicegui/static/fonts/d5ec90d9ff9fdc02.woff2
  53. 0 0
      nicegui/static/fonts/dcbef151cf127173.woff2
  54. 0 0
      nicegui/static/fonts/e62204447c1ed92a.woff2
  55. 0 0
      nicegui/static/fonts/ea7496e801e7e453.woff2
  56. 0 0
      nicegui/static/fonts/f3d429b4c95dd3ce.woff2
  57. 0 0
      nicegui/static/fonts/fdbd937e991f101f.woff2
  58. BIN
      nicegui/static/fonts/flUhRq6tzZclQEJ-Vdg-IuiaDsNZ.ttf
  59. BIN
      nicegui/static/fonts/gNNBW2J8Roq16WD5tFNRaeLQk6-SHQ_R00k4c2_whPnoY9ruReaU4bHmz74m0ZkGH-VBYe1x0TV6x4yFH8F-H5OdzEL3sVTgJtfbYxOLojCLJ1H7-0Hk.woff2
  60. BIN
      nicegui/static/fonts/kJF1BvYX7BgnkSrUwT8OhrdQw4oELdPIeeII9v6oDMzByHX9rA6RzaxHMPdY43zj-jCxv3fzvRNU22ZXGJpEpjC_1v-p_4MrImHCIJIZrDCvHOejbd5zrDAt.woff2
  61. BIN
      nicegui/static/fonts/syl0-zNym6YjUruM-QrEh7-nyTnjDwKNJ_190FjpZIvDmUSVOK7BDB_Qb9vUSzq3wzLK-P0J-V_Zs-QtQth3-jOcbTCVpeRL2w5rwZu2rIelXxeJKJBiCa8.woff2

+ 9 - 1
fetch_google_fonts.py

@@ -1,10 +1,15 @@
 #!/usr/bin/env python3
+import hashlib
 import re
 from pathlib import Path
 
 import requests
 
 AGENT = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
+FONTS_DIRECTORY = Path('nicegui/static/fonts')
+
+for file in FONTS_DIRECTORY.glob('*'):
+    file.unlink()
 
 css_families = [
     'Roboto:100,300,400,500,700,900',
@@ -25,7 +30,10 @@ css += '\n' + requests.get(f'https://fonts.googleapis.com/css?family={"|".join(c
                            headers={'User-Agent': AGENT}, timeout=5).content.decode()
 for font_url in re.findall(r'url\((.*?)\)', css):
     font = requests.get(font_url, timeout=5).content
-    filepath = Path('nicegui/static/fonts').joinpath(font_url.split('/')[-1])
+    filepath = FONTS_DIRECTORY.joinpath(font_url.split('/')[-1])
+    filepath = filepath.with_stem(hashlib.sha256(filepath.stem.encode()).hexdigest()[:16])
+    if filepath.exists():
+        raise RuntimeError(f'Duplicate filepath: {filepath}')
     filepath.write_bytes(font)
     css = css.replace(font_url, f'fonts/{filepath.name}')
 css = css.replace('https://fonts.gstatic.com/s/materialicons/v140', 'fonts')

+ 49 - 49
nicegui/static/fonts.css

@@ -4,35 +4,35 @@
   font-family: "Material Icons";
   font-style: normal;
   font-weight: 400;
-  src: url(fonts/flUhRq6tzZclQEJ-Vdg-IuiaDsNcIhQ8tQ.woff2) format("woff2");
+  src: url(fonts/0c19a63c7528cc1a.woff2) format("woff2");
 }
 /* fallback */
 @font-face {
   font-family: "Material Icons Outlined";
   font-style: normal;
   font-weight: 400;
-  src: url(fonts/gok-H7zzDkdnRel8-DQ6KAXJ69wP1tGnf4ZGhUcel5euIg.woff2) format("woff2");
+  src: url(fonts/a35a05f781345176.woff2) format("woff2");
 }
 /* fallback */
 @font-face {
   font-family: "Material Icons Round";
   font-style: normal;
   font-weight: 400;
-  src: url(fonts/LDItaoyNOAY6Uewc665JcIzCKsKc_M9flwmPq_HTTw.woff2) format("woff2");
+  src: url(fonts/2af55f54d9fac778.woff2) format("woff2");
 }
 /* fallback */
 @font-face {
   font-family: "Material Icons Sharp";
   font-style: normal;
   font-weight: 400;
-  src: url(fonts/oPWQ_lt5nv4pWNJpghLP75WiFR4kLh3kvmvRImcycg.woff2) format("woff2");
+  src: url(fonts/1e891d4a2a7f2f96.woff2) format("woff2");
 }
 /* cyrillic-ext */
 @font-face {
   font-family: "Roboto";
   font-style: normal;
   font-weight: 100;
-  src: url(fonts/KFOkCnqEu92Fr1MmgVxFIzIXKMnyrYk.woff2) format("woff2");
+  src: url(fonts/c854362e488d0bec.woff2) format("woff2");
   unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
 }
 /* cyrillic */
@@ -40,7 +40,7 @@
   font-family: "Roboto";
   font-style: normal;
   font-weight: 100;
-  src: url(fonts/KFOkCnqEu92Fr1MmgVxMIzIXKMnyrYk.woff2) format("woff2");
+  src: url(fonts/8e146ffc255e03c3.woff2) format("woff2");
   unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
 }
 /* greek-ext */
@@ -48,7 +48,7 @@
   font-family: "Roboto";
   font-style: normal;
   font-weight: 100;
-  src: url(fonts/KFOkCnqEu92Fr1MmgVxEIzIXKMnyrYk.woff2) format("woff2");
+  src: url(fonts/7420c823209e4609.woff2) format("woff2");
   unicode-range: U+1F00-1FFF;
 }
 /* greek */
@@ -56,7 +56,7 @@
   font-family: "Roboto";
   font-style: normal;
   font-weight: 100;
-  src: url(fonts/KFOkCnqEu92Fr1MmgVxLIzIXKMnyrYk.woff2) format("woff2");
+  src: url(fonts/425b348f7eab066c.woff2) format("woff2");
   unicode-range: U+0370-03FF;
 }
 /* vietnamese */
@@ -64,7 +64,7 @@
   font-family: "Roboto";
   font-style: normal;
   font-weight: 100;
-  src: url(fonts/KFOkCnqEu92Fr1MmgVxHIzIXKMnyrYk.woff2) format("woff2");
+  src: url(fonts/81471017108054b9.woff2) format("woff2");
   unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
 }
 /* latin-ext */
@@ -72,7 +72,7 @@
   font-family: "Roboto";
   font-style: normal;
   font-weight: 100;
-  src: url(fonts/KFOkCnqEu92Fr1MmgVxGIzIXKMnyrYk.woff2) format("woff2");
+  src: url(fonts/334116c5190f1716.woff2) format("woff2");
   unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
 }
 /* latin */
@@ -80,7 +80,7 @@
   font-family: "Roboto";
   font-style: normal;
   font-weight: 100;
-  src: url(fonts/KFOkCnqEu92Fr1MmgVxIIzIXKMny.woff2) format("woff2");
+  src: url(fonts/55a208f32a6be540.woff2) format("woff2");
   unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
 }
 /* cyrillic-ext */
@@ -88,7 +88,7 @@
   font-family: "Roboto";
   font-style: normal;
   font-weight: 300;
-  src: url(fonts/KFOlCnqEu92Fr1MmSU5fCRc4AMP6lbBP.woff2) format("woff2");
+  src: url(fonts/2e2ca037aef7b51d.woff2) format("woff2");
   unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
 }
 /* cyrillic */
@@ -96,7 +96,7 @@
   font-family: "Roboto";
   font-style: normal;
   font-weight: 300;
-  src: url(fonts/KFOlCnqEu92Fr1MmSU5fABc4AMP6lbBP.woff2) format("woff2");
+  src: url(fonts/18cea8b33059950e.woff2) format("woff2");
   unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
 }
 /* greek-ext */
@@ -104,7 +104,7 @@
   font-family: "Roboto";
   font-style: normal;
   font-weight: 300;
-  src: url(fonts/KFOlCnqEu92Fr1MmSU5fCBc4AMP6lbBP.woff2) format("woff2");
+  src: url(fonts/707a7c6749d7c089.woff2) format("woff2");
   unicode-range: U+1F00-1FFF;
 }
 /* greek */
@@ -112,7 +112,7 @@
   font-family: "Roboto";
   font-style: normal;
   font-weight: 300;
-  src: url(fonts/KFOlCnqEu92Fr1MmSU5fBxc4AMP6lbBP.woff2) format("woff2");
+  src: url(fonts/2c8ec1765f13887d.woff2) format("woff2");
   unicode-range: U+0370-03FF;
 }
 /* vietnamese */
@@ -120,7 +120,7 @@
   font-family: "Roboto";
   font-style: normal;
   font-weight: 300;
-  src: url(fonts/KFOlCnqEu92Fr1MmSU5fCxc4AMP6lbBP.woff2) format("woff2");
+  src: url(fonts/8d21fc3a9d063f00.woff2) format("woff2");
   unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
 }
 /* latin-ext */
@@ -128,7 +128,7 @@
   font-family: "Roboto";
   font-style: normal;
   font-weight: 300;
-  src: url(fonts/KFOlCnqEu92Fr1MmSU5fChc4AMP6lbBP.woff2) format("woff2");
+  src: url(fonts/0953a0ea5ec2fbe6.woff2) format("woff2");
   unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
 }
 /* latin */
@@ -136,7 +136,7 @@
   font-family: "Roboto";
   font-style: normal;
   font-weight: 300;
-  src: url(fonts/KFOlCnqEu92Fr1MmSU5fBBc4AMP6lQ.woff2) format("woff2");
+  src: url(fonts/ea7496e801e7e453.woff2) format("woff2");
   unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
 }
 /* cyrillic-ext */
@@ -144,7 +144,7 @@
   font-family: "Roboto";
   font-style: normal;
   font-weight: 400;
-  src: url(fonts/KFOmCnqEu92Fr1Mu72xKKTU1Kvnz.woff2) format("woff2");
+  src: url(fonts/28b81f220ca048e2.woff2) format("woff2");
   unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
 }
 /* cyrillic */
@@ -152,7 +152,7 @@
   font-family: "Roboto";
   font-style: normal;
   font-weight: 400;
-  src: url(fonts/KFOmCnqEu92Fr1Mu5mxKKTU1Kvnz.woff2) format("woff2");
+  src: url(fonts/ab8cf1fb84e33cd6.woff2) format("woff2");
   unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
 }
 /* greek-ext */
@@ -160,7 +160,7 @@
   font-family: "Roboto";
   font-style: normal;
   font-weight: 400;
-  src: url(fonts/KFOmCnqEu92Fr1Mu7mxKKTU1Kvnz.woff2) format("woff2");
+  src: url(fonts/d5ec90d9ff9fdc02.woff2) format("woff2");
   unicode-range: U+1F00-1FFF;
 }
 /* greek */
@@ -168,7 +168,7 @@
   font-family: "Roboto";
   font-style: normal;
   font-weight: 400;
-  src: url(fonts/KFOmCnqEu92Fr1Mu4WxKKTU1Kvnz.woff2) format("woff2");
+  src: url(fonts/4c401738b2e90c99.woff2) format("woff2");
   unicode-range: U+0370-03FF;
 }
 /* vietnamese */
@@ -176,7 +176,7 @@
   font-family: "Roboto";
   font-style: normal;
   font-weight: 400;
-  src: url(fonts/KFOmCnqEu92Fr1Mu7WxKKTU1Kvnz.woff2) format("woff2");
+  src: url(fonts/c3f2f68bb77a7944.woff2) format("woff2");
   unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
 }
 /* latin-ext */
@@ -184,7 +184,7 @@
   font-family: "Roboto";
   font-style: normal;
   font-weight: 400;
-  src: url(fonts/KFOmCnqEu92Fr1Mu7GxKKTU1Kvnz.woff2) format("woff2");
+  src: url(fonts/851ed7636af29416.woff2) format("woff2");
   unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
 }
 /* latin */
@@ -192,7 +192,7 @@
   font-family: "Roboto";
   font-style: normal;
   font-weight: 400;
-  src: url(fonts/KFOmCnqEu92Fr1Mu4mxKKTU1Kg.woff2) format("woff2");
+  src: url(fonts/62873223be6b39e0.woff2) format("woff2");
   unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
 }
 /* cyrillic-ext */
@@ -200,7 +200,7 @@
   font-family: "Roboto";
   font-style: normal;
   font-weight: 500;
-  src: url(fonts/KFOlCnqEu92Fr1MmEU9fCRc4AMP6lbBP.woff2) format("woff2");
+  src: url(fonts/f3d429b4c95dd3ce.woff2) format("woff2");
   unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
 }
 /* cyrillic */
@@ -208,7 +208,7 @@
   font-family: "Roboto";
   font-style: normal;
   font-weight: 500;
-  src: url(fonts/KFOlCnqEu92Fr1MmEU9fABc4AMP6lbBP.woff2) format("woff2");
+  src: url(fonts/7f5c1101832b02f5.woff2) format("woff2");
   unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
 }
 /* greek-ext */
@@ -216,7 +216,7 @@
   font-family: "Roboto";
   font-style: normal;
   font-weight: 500;
-  src: url(fonts/KFOlCnqEu92Fr1MmEU9fCBc4AMP6lbBP.woff2) format("woff2");
+  src: url(fonts/616907143b870cb1.woff2) format("woff2");
   unicode-range: U+1F00-1FFF;
 }
 /* greek */
@@ -224,7 +224,7 @@
   font-family: "Roboto";
   font-style: normal;
   font-weight: 500;
-  src: url(fonts/KFOlCnqEu92Fr1MmEU9fBxc4AMP6lbBP.woff2) format("woff2");
+  src: url(fonts/7c7f3bb965e2deae.woff2) format("woff2");
   unicode-range: U+0370-03FF;
 }
 /* vietnamese */
@@ -232,7 +232,7 @@
   font-family: "Roboto";
   font-style: normal;
   font-weight: 500;
-  src: url(fonts/KFOlCnqEu92Fr1MmEU9fCxc4AMP6lbBP.woff2) format("woff2");
+  src: url(fonts/096bf4e001f30f3d.woff2) format("woff2");
   unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
 }
 /* latin-ext */
@@ -240,7 +240,7 @@
   font-family: "Roboto";
   font-style: normal;
   font-weight: 500;
-  src: url(fonts/KFOlCnqEu92Fr1MmEU9fChc4AMP6lbBP.woff2) format("woff2");
+  src: url(fonts/66c1c422e62faf1d.woff2) format("woff2");
   unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
 }
 /* latin */
@@ -248,7 +248,7 @@
   font-family: "Roboto";
   font-style: normal;
   font-weight: 500;
-  src: url(fonts/KFOlCnqEu92Fr1MmEU9fBBc4AMP6lQ.woff2) format("woff2");
+  src: url(fonts/e62204447c1ed92a.woff2) format("woff2");
   unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
 }
 /* cyrillic-ext */
@@ -256,7 +256,7 @@
   font-family: "Roboto";
   font-style: normal;
   font-weight: 700;
-  src: url(fonts/KFOlCnqEu92Fr1MmWUlfCRc4AMP6lbBP.woff2) format("woff2");
+  src: url(fonts/0ca83f77c744e2a2.woff2) format("woff2");
   unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
 }
 /* cyrillic */
@@ -264,7 +264,7 @@
   font-family: "Roboto";
   font-style: normal;
   font-weight: 700;
-  src: url(fonts/KFOlCnqEu92Fr1MmWUlfABc4AMP6lbBP.woff2) format("woff2");
+  src: url(fonts/042d031f00f025d3.woff2) format("woff2");
   unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
 }
 /* greek-ext */
@@ -272,7 +272,7 @@
   font-family: "Roboto";
   font-style: normal;
   font-weight: 700;
-  src: url(fonts/KFOlCnqEu92Fr1MmWUlfCBc4AMP6lbBP.woff2) format("woff2");
+  src: url(fonts/cf8e1fe457b4cc05.woff2) format("woff2");
   unicode-range: U+1F00-1FFF;
 }
 /* greek */
@@ -280,7 +280,7 @@
   font-family: "Roboto";
   font-style: normal;
   font-weight: 700;
-  src: url(fonts/KFOlCnqEu92Fr1MmWUlfBxc4AMP6lbBP.woff2) format("woff2");
+  src: url(fonts/afd447df78322d0d.woff2) format("woff2");
   unicode-range: U+0370-03FF;
 }
 /* vietnamese */
@@ -288,7 +288,7 @@
   font-family: "Roboto";
   font-style: normal;
   font-weight: 700;
-  src: url(fonts/KFOlCnqEu92Fr1MmWUlfCxc4AMP6lbBP.woff2) format("woff2");
+  src: url(fonts/5f02a1396c9fc305.woff2) format("woff2");
   unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
 }
 /* latin-ext */
@@ -296,7 +296,7 @@
   font-family: "Roboto";
   font-style: normal;
   font-weight: 700;
-  src: url(fonts/KFOlCnqEu92Fr1MmWUlfChc4AMP6lbBP.woff2) format("woff2");
+  src: url(fonts/4ad9ee1c03eed305.woff2) format("woff2");
   unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
 }
 /* latin */
@@ -304,7 +304,7 @@
   font-family: "Roboto";
   font-style: normal;
   font-weight: 700;
-  src: url(fonts/KFOlCnqEu92Fr1MmWUlfBBc4AMP6lQ.woff2) format("woff2");
+  src: url(fonts/01d40c9fd448face.woff2) format("woff2");
   unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
 }
 /* cyrillic-ext */
@@ -312,7 +312,7 @@
   font-family: "Roboto";
   font-style: normal;
   font-weight: 900;
-  src: url(fonts/KFOlCnqEu92Fr1MmYUtfCRc4AMP6lbBP.woff2) format("woff2");
+  src: url(fonts/7104372e0a34311e.woff2) format("woff2");
   unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
 }
 /* cyrillic */
@@ -320,7 +320,7 @@
   font-family: "Roboto";
   font-style: normal;
   font-weight: 900;
-  src: url(fonts/KFOlCnqEu92Fr1MmYUtfABc4AMP6lbBP.woff2) format("woff2");
+  src: url(fonts/47c853f95b759bef.woff2) format("woff2");
   unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
 }
 /* greek-ext */
@@ -328,7 +328,7 @@
   font-family: "Roboto";
   font-style: normal;
   font-weight: 900;
-  src: url(fonts/KFOlCnqEu92Fr1MmYUtfCBc4AMP6lbBP.woff2) format("woff2");
+  src: url(fonts/34d83f10ce3fa7b4.woff2) format("woff2");
   unicode-range: U+1F00-1FFF;
 }
 /* greek */
@@ -336,7 +336,7 @@
   font-family: "Roboto";
   font-style: normal;
   font-weight: 900;
-  src: url(fonts/KFOlCnqEu92Fr1MmYUtfBxc4AMP6lbBP.woff2) format("woff2");
+  src: url(fonts/dcbef151cf127173.woff2) format("woff2");
   unicode-range: U+0370-03FF;
 }
 /* vietnamese */
@@ -344,7 +344,7 @@
   font-family: "Roboto";
   font-style: normal;
   font-weight: 900;
-  src: url(fonts/KFOlCnqEu92Fr1MmYUtfCxc4AMP6lbBP.woff2) format("woff2");
+  src: url(fonts/9b5609bd55cc78e3.woff2) format("woff2");
   unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
 }
 /* latin-ext */
@@ -352,7 +352,7 @@
   font-family: "Roboto";
   font-style: normal;
   font-weight: 900;
-  src: url(fonts/KFOlCnqEu92Fr1MmYUtfChc4AMP6lbBP.woff2) format("woff2");
+  src: url(fonts/6d6ebdc60d2cd01e.woff2) format("woff2");
   unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
 }
 /* latin */
@@ -360,7 +360,7 @@
   font-family: "Roboto";
   font-style: normal;
   font-weight: 900;
-  src: url(fonts/KFOlCnqEu92Fr1MmYUtfBBc4AMP6lQ.woff2) format("woff2");
+  src: url(fonts/fdbd937e991f101f.woff2) format("woff2");
   unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
 }
 
@@ -433,21 +433,21 @@
   font-family: "Material Symbols Outlined";
   font-style: normal;
   font-weight: 400;
-  src: url(fonts/kJF1BvYX7BgnkSrUwT8OhrdQw4oELdPIeeII9v6oDMzByHX9rA6RzaxHMPdY43zj-jCxv3fzvRNU22ZXGJpEpjC_1v-p_4MrImHCIJIZrDCvHOejbd5zrDAt.woff2) format("woff2");
+  src: url(fonts/935e23d0cd87ac6f.woff2) format("woff2");
 }
 /* fallback */
 @font-face {
   font-family: "Material Symbols Rounded";
   font-style: normal;
   font-weight: 400;
-  src: url(fonts/syl0-zNym6YjUruM-QrEh7-nyTnjDwKNJ_190FjpZIvDmUSVOK7BDB_Qb9vUSzq3wzLK-P0J-V_Zs-QtQth3-jOcbTCVpeRL2w5rwZu2rIelXxeJKJBiCa8.woff2) format("woff2");
+  src: url(fonts/d4e71f49ac06b20e.woff2) format("woff2");
 }
 /* fallback */
 @font-face {
   font-family: "Material Symbols Sharp";
   font-style: normal;
   font-weight: 400;
-  src: url(fonts/gNNBW2J8Roq16WD5tFNRaeLQk6-SHQ_R00k4c2_whPnoY9ruReaU4bHmz74m0ZkGH-VBYe1x0TV6x4yFH8F-H5OdzEL3sVTgJtfbYxOLojCLJ1H7-0Hk.woff2) format("woff2");
+  src: url(fonts/bb828b03a1f11130.woff2) format("woff2");
 }
 
 .material-symbols-outlined {

+ 0 - 0
nicegui/static/fonts/KFOlCnqEu92Fr1MmWUlfBBc4AMP6lQ.woff2 → nicegui/static/fonts/01d40c9fd448face.woff2


+ 0 - 0
nicegui/static/fonts/KFOlCnqEu92Fr1MmWUlfABc4AMP6lbBP.woff2 → nicegui/static/fonts/042d031f00f025d3.woff2


+ 0 - 0
nicegui/static/fonts/KFOlCnqEu92Fr1MmSU5fChc4AMP6lbBP.woff2 → nicegui/static/fonts/0953a0ea5ec2fbe6.woff2


+ 0 - 0
nicegui/static/fonts/KFOlCnqEu92Fr1MmEU9fCxc4AMP6lbBP.woff2 → nicegui/static/fonts/096bf4e001f30f3d.woff2


+ 0 - 0
nicegui/static/fonts/flUhRq6tzZclQEJ-Vdg-IuiaDsNcIhQ8tQ.woff2 → nicegui/static/fonts/0c19a63c7528cc1a.woff2


+ 0 - 0
nicegui/static/fonts/KFOlCnqEu92Fr1MmWUlfCRc4AMP6lbBP.woff2 → nicegui/static/fonts/0ca83f77c744e2a2.woff2


+ 0 - 0
nicegui/static/fonts/KFOlCnqEu92Fr1MmSU5fABc4AMP6lbBP.woff2 → nicegui/static/fonts/18cea8b33059950e.woff2


+ 0 - 0
nicegui/static/fonts/oPWQ_lt5nv4pWNJpghLP75WiFR4kLh3kvmvRImcycg.woff2 → nicegui/static/fonts/1e891d4a2a7f2f96.woff2


+ 0 - 0
nicegui/static/fonts/KFOmCnqEu92Fr1Mu72xKKTU1Kvnz.woff2 → nicegui/static/fonts/28b81f220ca048e2.woff2


+ 0 - 0
nicegui/static/fonts/LDItaoyNOAY6Uewc665JcIzCKsKc_M9flwmPq_HTTw.woff2 → nicegui/static/fonts/2af55f54d9fac778.woff2


+ 0 - 0
nicegui/static/fonts/KFOlCnqEu92Fr1MmSU5fBxc4AMP6lbBP.woff2 → nicegui/static/fonts/2c8ec1765f13887d.woff2


+ 0 - 0
nicegui/static/fonts/KFOlCnqEu92Fr1MmSU5fCRc4AMP6lbBP.woff2 → nicegui/static/fonts/2e2ca037aef7b51d.woff2


+ 0 - 0
nicegui/static/fonts/KFOkCnqEu92Fr1MmgVxGIzIXKMnyrYk.woff2 → nicegui/static/fonts/334116c5190f1716.woff2


+ 0 - 0
nicegui/static/fonts/KFOlCnqEu92Fr1MmYUtfCBc4AMP6lbBP.woff2 → nicegui/static/fonts/34d83f10ce3fa7b4.woff2


+ 0 - 0
nicegui/static/fonts/KFOkCnqEu92Fr1MmgVxLIzIXKMnyrYk.woff2 → nicegui/static/fonts/425b348f7eab066c.woff2


+ 0 - 0
nicegui/static/fonts/KFOlCnqEu92Fr1MmYUtfABc4AMP6lbBP.woff2 → nicegui/static/fonts/47c853f95b759bef.woff2


+ 0 - 0
nicegui/static/fonts/KFOlCnqEu92Fr1MmWUlfChc4AMP6lbBP.woff2 → nicegui/static/fonts/4ad9ee1c03eed305.woff2


+ 0 - 0
nicegui/static/fonts/KFOmCnqEu92Fr1Mu4WxKKTU1Kvnz.woff2 → nicegui/static/fonts/4c401738b2e90c99.woff2


+ 0 - 0
nicegui/static/fonts/KFOkCnqEu92Fr1MmgVxIIzIXKMny.woff2 → nicegui/static/fonts/55a208f32a6be540.woff2


+ 0 - 0
nicegui/static/fonts/KFOlCnqEu92Fr1MmWUlfCxc4AMP6lbBP.woff2 → nicegui/static/fonts/5f02a1396c9fc305.woff2


+ 0 - 0
nicegui/static/fonts/KFOlCnqEu92Fr1MmEU9fCBc4AMP6lbBP.woff2 → nicegui/static/fonts/616907143b870cb1.woff2


+ 0 - 0
nicegui/static/fonts/KFOmCnqEu92Fr1Mu4mxKKTU1Kg.woff2 → nicegui/static/fonts/62873223be6b39e0.woff2


+ 0 - 0
nicegui/static/fonts/KFOlCnqEu92Fr1MmEU9fChc4AMP6lbBP.woff2 → nicegui/static/fonts/66c1c422e62faf1d.woff2


+ 0 - 0
nicegui/static/fonts/KFOlCnqEu92Fr1MmYUtfChc4AMP6lbBP.woff2 → nicegui/static/fonts/6d6ebdc60d2cd01e.woff2


+ 0 - 0
nicegui/static/fonts/KFOlCnqEu92Fr1MmSU5fCBc4AMP6lbBP.woff2 → nicegui/static/fonts/707a7c6749d7c089.woff2


+ 0 - 0
nicegui/static/fonts/KFOlCnqEu92Fr1MmYUtfCRc4AMP6lbBP.woff2 → nicegui/static/fonts/7104372e0a34311e.woff2


+ 0 - 0
nicegui/static/fonts/KFOkCnqEu92Fr1MmgVxEIzIXKMnyrYk.woff2 → nicegui/static/fonts/7420c823209e4609.woff2


+ 0 - 0
nicegui/static/fonts/KFOlCnqEu92Fr1MmEU9fBxc4AMP6lbBP.woff2 → nicegui/static/fonts/7c7f3bb965e2deae.woff2


+ 0 - 0
nicegui/static/fonts/KFOlCnqEu92Fr1MmEU9fABc4AMP6lbBP.woff2 → nicegui/static/fonts/7f5c1101832b02f5.woff2


+ 0 - 0
nicegui/static/fonts/KFOkCnqEu92Fr1MmgVxHIzIXKMnyrYk.woff2 → nicegui/static/fonts/81471017108054b9.woff2


+ 0 - 0
nicegui/static/fonts/KFOmCnqEu92Fr1Mu7GxKKTU1Kvnz.woff2 → nicegui/static/fonts/851ed7636af29416.woff2


+ 0 - 0
nicegui/static/fonts/KFOlCnqEu92Fr1MmSU5fCxc4AMP6lbBP.woff2 → nicegui/static/fonts/8d21fc3a9d063f00.woff2


+ 0 - 0
nicegui/static/fonts/KFOkCnqEu92Fr1MmgVxMIzIXKMnyrYk.woff2 → nicegui/static/fonts/8e146ffc255e03c3.woff2


BIN
nicegui/static/fonts/935e23d0cd87ac6f.woff2


+ 0 - 0
nicegui/static/fonts/KFOlCnqEu92Fr1MmYUtfCxc4AMP6lbBP.woff2 → nicegui/static/fonts/9b5609bd55cc78e3.woff2


BIN
nicegui/static/fonts/KFOkCnqEu92Fr1MmgWxP.ttf


BIN
nicegui/static/fonts/KFOlCnqEu92Fr1MmEU9vAw.ttf


BIN
nicegui/static/fonts/KFOlCnqEu92Fr1MmSU5vAw.ttf


BIN
nicegui/static/fonts/KFOlCnqEu92Fr1MmWUlvAw.ttf


BIN
nicegui/static/fonts/KFOlCnqEu92Fr1MmYUtvAw.ttf


BIN
nicegui/static/fonts/KFOmCnqEu92Fr1Me5Q.ttf


+ 0 - 0
nicegui/static/fonts/gok-H7zzDkdnRel8-DQ6KAXJ69wP1tGnf4ZGhUcel5euIg.woff2 → nicegui/static/fonts/a35a05f781345176.woff2


+ 0 - 0
nicegui/static/fonts/KFOmCnqEu92Fr1Mu5mxKKTU1Kvnz.woff2 → nicegui/static/fonts/ab8cf1fb84e33cd6.woff2


+ 0 - 0
nicegui/static/fonts/KFOlCnqEu92Fr1MmWUlfBxc4AMP6lbBP.woff2 → nicegui/static/fonts/afd447df78322d0d.woff2


BIN
nicegui/static/fonts/bb828b03a1f11130.woff2


+ 0 - 0
nicegui/static/fonts/KFOmCnqEu92Fr1Mu7WxKKTU1Kvnz.woff2 → nicegui/static/fonts/c3f2f68bb77a7944.woff2


+ 0 - 0
nicegui/static/fonts/KFOkCnqEu92Fr1MmgVxFIzIXKMnyrYk.woff2 → nicegui/static/fonts/c854362e488d0bec.woff2


+ 0 - 0
nicegui/static/fonts/KFOlCnqEu92Fr1MmWUlfCBc4AMP6lbBP.woff2 → nicegui/static/fonts/cf8e1fe457b4cc05.woff2


BIN
nicegui/static/fonts/d4e71f49ac06b20e.woff2


+ 0 - 0
nicegui/static/fonts/KFOmCnqEu92Fr1Mu7mxKKTU1Kvnz.woff2 → nicegui/static/fonts/d5ec90d9ff9fdc02.woff2


+ 0 - 0
nicegui/static/fonts/KFOlCnqEu92Fr1MmYUtfBxc4AMP6lbBP.woff2 → nicegui/static/fonts/dcbef151cf127173.woff2


+ 0 - 0
nicegui/static/fonts/KFOlCnqEu92Fr1MmEU9fBBc4AMP6lQ.woff2 → nicegui/static/fonts/e62204447c1ed92a.woff2


+ 0 - 0
nicegui/static/fonts/KFOlCnqEu92Fr1MmSU5fBBc4AMP6lQ.woff2 → nicegui/static/fonts/ea7496e801e7e453.woff2


+ 0 - 0
nicegui/static/fonts/KFOlCnqEu92Fr1MmEU9fCRc4AMP6lbBP.woff2 → nicegui/static/fonts/f3d429b4c95dd3ce.woff2


+ 0 - 0
nicegui/static/fonts/KFOlCnqEu92Fr1MmYUtfBBc4AMP6lQ.woff2 → nicegui/static/fonts/fdbd937e991f101f.woff2


BIN
nicegui/static/fonts/flUhRq6tzZclQEJ-Vdg-IuiaDsNZ.ttf


BIN
nicegui/static/fonts/gNNBW2J8Roq16WD5tFNRaeLQk6-SHQ_R00k4c2_whPnoY9ruReaU4bHmz74m0ZkGH-VBYe1x0TV6x4yFH8F-H5OdzEL3sVTgJtfbYxOLojCLJ1H7-0Hk.woff2


BIN
nicegui/static/fonts/kJF1BvYX7BgnkSrUwT8OhrdQw4oELdPIeeII9v6oDMzByHX9rA6RzaxHMPdY43zj-jCxv3fzvRNU22ZXGJpEpjC_1v-p_4MrImHCIJIZrDCvHOejbd5zrDAt.woff2


BIN
nicegui/static/fonts/syl0-zNym6YjUruM-QrEh7-nyTnjDwKNJ_190FjpZIvDmUSVOK7BDB_Qb9vUSzq3wzLK-P0J-V_Zs-QtQth3-jOcbTCVpeRL2w5rwZu2rIelXxeJKJBiCa8.woff2