@atb-as/generate-assets 14.0.4 → 15.0.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 (42) hide show
  1. package/files/common/mono/miscellaneous/Accessibility-ISA.svg +5 -0
  2. package/files/common/mono/miscellaneous/Accessibility-wheelchair.svg +8 -0
  3. package/files/common/mono/miscellaneous/Accesstbility-Circle.svg +6 -0
  4. package/files/common/mono/miscellaneous/Activity.svg +4 -0
  5. package/files/common/mono/miscellaneous/BatteryEmpty.svg +4 -0
  6. package/files/common/mono/{vehicles/Battery.svg → miscellaneous/BatteryFull.svg} +2 -1
  7. package/files/common/mono/miscellaneous/BatteryHigh.svg +7 -0
  8. package/files/common/mono/miscellaneous/BatteryLow.svg +5 -0
  9. package/files/common/mono/miscellaneous/BatteryMedium.svg +6 -0
  10. package/files/common/mono/miscellaneous/Bluetooth.svg +3 -0
  11. package/files/common/mono/mobility/Distance.svg +6 -0
  12. package/files/common/mono/mobility/Duration.svg +5 -0
  13. package/files/common/mono/mobility/NoParking.svg +4 -0
  14. package/files/common/mono/mobility/Price.svg +4 -0
  15. package/files/common/mono/mobility/PricePerTime.svg +4 -0
  16. package/files/common/mono/mobility/Report.svg +4 -0
  17. package/files/common/mono/mobility/StartTrip.svg +3 -0
  18. package/files/common/mono/mobility/Unlock.svg +5 -0
  19. package/package.json +3 -3
  20. package/src/bin.ts +121 -0
  21. package/src/generate.ts +197 -0
  22. package/src/generateTs.ts +189 -0
  23. package/src/logger.ts +10 -0
  24. package/src/tools/validate-files.ts +94 -0
  25. package/src/utils.ts +66 -0
  26. package/tsconfig.json +10 -0
  27. package/lib/bin.d.ts +0 -2
  28. package/lib/bin.js +0 -131
  29. package/lib/bin.js.map +0 -1
  30. package/lib/generate.d.ts +0 -13
  31. package/lib/generate.js +0 -237
  32. package/lib/generate.js.map +0 -1
  33. package/lib/generateTs.d.ts +0 -2
  34. package/lib/generateTs.js +0 -162
  35. package/lib/generateTs.js.map +0 -1
  36. package/lib/logger.d.ts +0 -2
  37. package/lib/logger.js +0 -18
  38. package/lib/logger.js.map +0 -1
  39. package/lib/utils.d.ts +0 -10
  40. package/lib/utils.js +0 -64
  41. package/lib/utils.js.map +0 -1
  42. /package/files/common/mono/{vehicles → transportation}/Bicycle.svg +0 -0
@@ -0,0 +1,5 @@
1
+ <svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M17.8202 6.01965C17.8064 7.66929 16.4396 8.99507 14.7651 8.98316C13.0906 8.97125 11.7405 7.62615 11.7471 5.97646C11.7537 4.32677 13.1147 2.9952 14.7892 3.00001C16.4637 3.00482 17.8198 4.34419 17.8203 5.9939" fill="black"/>
3
+ <path d="M12.2755 7.52474L13.5654 22.3376L24.5634 22.2699L28.8404 32.4834L34 30.86L32.9138 28.2898L30.2661 28.9662L26.4643 19.632H16.213V17.5352H22.3231V14.8297H15.4663L15.3305 8.94515" fill="black"/>
4
+ <path d="M11.9464 15.0439C-4.01622 25.7271 16.0567 45.6027 26.6092 30.5899L25.4448 26.6002C20.7524 39.5007 1.60427 29.1191 12.1404 18.5503L11.9464 15.0439Z" fill="black"/>
5
+ </svg>
@@ -0,0 +1,8 @@
1
+ <svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M11.6929 36.2498C6.37287 36.2498 2.04248 31.9498 2.04248 26.6698C2.04248 21.3898 6.37287 17.0898 11.6929 17.0898C17.0129 17.0898 21.2427 21.3898 21.2427 26.6698C21.2427 31.9498 16.9629 36.2498 11.6929 36.2498ZM11.6929 19.5798C7.75287 19.5798 4.54248 22.7598 4.54248 26.6598C4.54248 30.5598 7.75287 33.7398 11.6929 33.7398C15.6329 33.7398 18.7427 30.5598 18.7427 26.6598C18.7427 22.7598 15.5829 19.5798 11.6929 19.5798Z" fill="black"/>
3
+ <path d="M27.4927 36.25C25.4227 36.25 23.7427 34.57 23.7427 32.5C23.7427 30.43 25.4227 28.75 27.4927 28.75C29.5627 28.75 31.2427 30.43 31.2427 32.5C31.2427 34.57 29.5627 36.25 27.4927 36.25ZM27.4927 31.25C26.7927 31.25 26.2427 31.8 26.2427 32.5C26.2427 33.2 26.7927 33.75 27.4927 33.75C28.1927 33.75 28.7427 33.2 28.7427 32.5C28.7427 31.8 28.1927 31.25 27.4927 31.25Z" fill="black"/>
4
+ <path d="M11.6929 28.33C11.5829 28.33 11.4728 28.32 11.3628 28.3C11.2628 28.28 11.1522 28.25 11.0522 28.2C10.9522 28.16 10.8629 28.11 10.7729 28.05C10.6729 27.99 10.5922 27.92 10.5122 27.84C10.4422 27.77 10.3722 27.68 10.3022 27.59C10.2422 27.5 10.1928 27.4 10.1528 27.3C10.1128 27.2 10.083 27.1 10.063 26.99C10.033 26.88 10.0229 26.77 10.0229 26.67C10.0229 26.56 10.033 26.45 10.063 26.34C10.083 26.23 10.1128 26.13 10.1528 26.03C10.1928 25.93 10.2422 25.83 10.3022 25.74C10.3722 25.65 10.4422 25.57 10.5122 25.49C10.5922 25.41 10.6729 25.34 10.7729 25.28C10.8629 25.22 10.9522 25.17 11.0522 25.13C11.1522 25.09 11.2628 25.06 11.3628 25.03C11.5828 24.99 11.8029 24.99 12.0229 25.03C12.1229 25.06 12.2325 25.09 12.3325 25.13C12.4325 25.17 12.5326 25.22 12.6226 25.28C12.7126 25.34 12.7926 25.41 12.8726 25.49C12.9526 25.57 13.0225 25.65 13.0825 25.74C13.1425 25.83 13.1929 25.93 13.2329 26.03C13.2729 26.13 13.3025 26.23 13.3325 26.34C13.3525 26.45 13.3628 26.56 13.3628 26.67C13.3628 26.77 13.3525 26.88 13.3325 26.99C13.3025 27.1 13.2729 27.2 13.2329 27.3C13.1929 27.4 13.1425 27.5 13.0825 27.59C13.0225 27.68 12.9526 27.77 12.8726 27.84C12.7926 27.92 12.7126 27.99 12.6226 28.05C12.5326 28.11 12.4325 28.16 12.3325 28.2C12.2325 28.25 12.1229 28.28 12.0229 28.3C11.9129 28.32 11.8029 28.33 11.6929 28.33Z" fill="black"/>
5
+ <path d="M9.99268 19.58C9.40268 19.58 8.87221 19.16 8.76221 18.56L6.56299 6.59C6.52299 6.43 6.31228 6.25 6.09229 6.25H3.29248C2.60248 6.25 2.04248 5.69 2.04248 5C2.04248 4.31 2.60248 3.75 3.29248 3.75H6.09229C7.46229 3.75 8.66244 4.7 9.00244 6.05L11.2231 18.11C11.3431 18.79 10.9031 19.44 10.2231 19.57C10.1431 19.58 10.0727 19.59 9.99268 19.59V19.58Z" fill="black"/>
6
+ <path d="M27.4927 31.25C26.8027 31.25 26.2427 30.6902 26.2427 30.0002V13.3302C26.2427 13.0702 26.0725 12.9102 25.7925 12.9102H9.19287C8.50287 12.9102 7.94287 12.3502 7.94287 11.6602C7.94287 10.9702 8.50287 10.4102 9.19287 10.4102H25.7925C27.4425 10.4102 28.7427 11.6902 28.7427 13.3302V30.0002C28.7427 30.6902 28.1827 31.25 27.4927 31.25Z" fill="black"/>
7
+ <path d="M34.0024 29.2098C33.0224 29.2098 32.0527 28.7198 31.5327 27.8698L29.4624 24.7798C29.4024 24.6898 29.313 24.5898 29.103 24.5898H20.0024C19.3124 24.5898 18.7524 24.0298 18.7524 23.3398C18.7524 22.6498 19.3124 22.0898 20.0024 22.0898H29.103C30.123 22.0898 31.0122 22.5698 31.5522 23.4098L33.6431 26.5298C33.7431 26.6898 33.9823 26.7598 34.1323 26.6998L36.2524 25.8798C36.9024 25.6298 37.6226 25.9498 37.8726 26.5898C38.1226 27.2298 37.8026 27.9598 37.1626 28.2098L35.063 29.0298C34.733 29.1698 34.3729 29.2298 34.0229 29.2298L34.0024 29.2098Z" fill="black"/>
8
+ </svg>
@@ -0,0 +1,6 @@
1
+ <svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M20 37.92C10.1 37.92 2.0498 29.88 2.0498 20C2.0498 10.12 10.1 2.07996 20 2.07996C29.9 2.07996 37.9502 10.12 37.9502 20C37.9502 29.88 29.9 37.92 20 37.92ZM20 4.57996C11.48 4.57996 4.5498 11.5 4.5498 20C4.5498 28.5 11.48 35.42 20 35.42C28.52 35.42 35.4502 28.5 35.4502 20C35.4502 11.5 28.52 4.57996 20 4.57996Z" fill="black"/>
3
+ <path d="M20 13.7499C18.63 13.7499 17.5498 12.6499 17.5498 11.2499C17.5498 9.84988 18.63 8.74988 20 8.74988C21.37 8.74988 22.4502 9.84988 22.4502 11.2499C22.4502 12.6499 21.37 13.7499 20 13.7499Z" fill="black"/>
4
+ <path d="M19.9997 17.9195C17.2997 17.9195 14.7694 17.2895 12.6794 16.0895C12.0794 15.7495 11.8695 14.9795 12.2195 14.3795C12.5595 13.7795 13.3294 13.5695 13.9294 13.9195C15.6394 14.8995 17.7495 15.4195 20.0095 15.4195C22.2695 15.4195 24.3696 14.8995 26.0896 13.9195C26.6896 13.5795 27.4496 13.7795 27.7996 14.3795C28.1396 14.9795 27.9396 15.7395 27.3396 16.0895C25.2496 17.2895 22.7193 17.9195 20.0193 17.9195H19.9997Z" fill="black"/>
5
+ <path d="M23.3002 31.25C22.7402 31.25 22.2203 30.87 22.0903 30.29L20.7201 24.58H19.2905L17.9203 30.29C17.7603 30.96 17.0806 31.37 16.4106 31.21C15.7406 31.05 15.3307 30.37 15.4907 29.7L17.06 23.18V16.66C17.06 15.97 17.62 15.41 18.31 15.41C18.64 15.41 18.9406 15.54 19.1606 15.74C19.6106 15.33 20.4108 15.33 20.8608 15.74C21.0808 15.53 21.3804 15.41 21.7104 15.41C22.4004 15.41 22.9604 15.97 22.9604 16.66V23.18L24.5307 29.7C24.6907 30.37 24.2808 31.05 23.6108 31.21C23.5108 31.23 23.4107 31.24 23.3207 31.24L23.3002 31.25Z" fill="black"/>
6
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M23.3501 27.9104C22.8801 27.9104 22.45 27.6404 22.23 27.2204L16.6597 16.1304L14.4702 20.5504C14.2602 20.9804 13.8301 21.2404 13.3501 21.2404H10.0503C9.36029 21.2404 8.80029 20.6804 8.80029 19.9904C8.80029 19.3004 9.36029 18.7404 10.0503 18.7404H12.5698L15.5298 12.7704C15.7398 12.3504 16.1699 12.0804 16.6499 12.0704C17.1199 12.0704 17.55 12.3404 17.77 12.7604L23.3403 23.8504L25.5298 19.4304C25.7398 19.0004 26.1699 18.7304 26.6499 18.7304H30.0503C30.7403 18.7304 31.3003 19.2904 31.3003 19.9804C31.3003 20.6704 30.7403 21.2304 30.0503 21.2304H27.4302L24.4702 27.2004C24.2602 27.6204 23.8301 27.8904 23.3501 27.9004V27.9104Z" fill="black"/>
3
+ <path d="M32.5503 37.08H7.55029C4.99029 37.08 2.8999 35.02 2.8999 32.5V7.50004C2.8999 4.97004 4.99029 2.92004 7.55029 2.92004H32.5503C35.0603 2.92004 37.1001 4.98004 37.1001 7.50004V32.5C37.1001 35.03 35.0603 37.08 32.5503 37.08ZM7.55029 5.41005C6.34029 5.41005 5.3999 6.33004 5.3999 7.49004V32.49C5.3999 33.66 6.34029 34.57 7.55029 34.57H32.5503C33.6803 34.57 34.6001 33.64 34.6001 32.49V7.49004C34.6001 6.34004 33.6803 5.41005 32.5503 5.41005H7.55029Z" fill="black"/>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M28.2996 31.245H6.69995C4.13995 31.245 2.04956 29.185 2.04956 26.665V13.335C2.04956 10.805 4.13995 8.755 6.69995 8.755H28.2996C30.8596 8.755 32.95 10.815 32.95 13.335V26.665C32.95 29.195 30.8596 31.245 28.2996 31.245ZM6.69995 11.245C5.48995 11.245 4.54956 12.165 4.54956 13.325V26.655C4.54956 27.825 5.48995 28.735 6.69995 28.735H28.2996C29.5096 28.735 30.45 27.815 30.45 26.655V13.325C30.45 12.155 29.5096 11.245 28.2996 11.245H6.69995Z" fill="black"/>
3
+ <path d="M31.7004 25.4151C31.1004 25.4151 30.57 24.9851 30.47 24.3751C30.35 23.6951 30.8105 23.0451 31.4905 22.9351L35.0901 22.3251C35.3001 22.2951 35.4504 22.1151 35.4504 21.9151V18.0851C35.4504 17.8851 35.3001 17.7051 35.0901 17.6751L31.4905 17.0651C30.8105 16.9451 30.35 16.3051 30.47 15.6251C30.59 14.9451 31.2404 14.4851 31.9104 14.6051L35.51 15.2151C36.92 15.4551 37.9504 16.6651 37.9504 18.0951V21.9251C37.9504 23.3551 36.92 24.5651 35.51 24.8051L31.9104 25.4151C31.8404 25.4251 31.7704 25.4351 31.7004 25.4351V25.4151Z" fill="black"/>
4
+ </svg>
@@ -1,7 +1,8 @@
1
- <svg width="20" height="20" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
1
+ <svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
2
2
  <path d="M28.2996 31.245H6.69995C4.13995 31.245 2.04956 29.185 2.04956 26.665V13.335C2.04956 10.805 4.13995 8.755 6.69995 8.755H28.2996C30.8596 8.755 32.95 10.815 32.95 13.335V26.665C32.95 29.195 30.8596 31.245 28.2996 31.245ZM6.69995 11.245C5.48995 11.245 4.54956 12.165 4.54956 13.325V26.655C4.54956 27.825 5.48995 28.735 6.69995 28.735H28.2996C29.5096 28.735 30.45 27.815 30.45 26.655V13.325C30.45 12.155 29.5096 11.245 28.2996 11.245H6.69995Z" fill="black"/>
3
3
  <path d="M31.7004 25.4151C31.1004 25.4151 30.57 24.9851 30.47 24.3751C30.35 23.6951 30.8105 23.0451 31.4905 22.9351L35.0901 22.3251C35.3001 22.2951 35.4504 22.1151 35.4504 21.9151V18.0851C35.4504 17.8851 35.3001 17.7051 35.0901 17.6751L31.4905 17.0651C30.8105 16.9451 30.35 16.3051 30.47 15.6251C30.59 14.9451 31.2404 14.4851 31.9104 14.6051L35.51 15.2151C36.92 15.4551 37.9504 16.6651 37.9504 18.0951V21.9251C37.9504 23.3551 36.92 24.5651 35.51 24.8051L31.9104 25.4151C31.8404 25.4251 31.7704 25.4351 31.7004 25.4351V25.4151Z" fill="black"/>
4
4
  <path d="M9.99976 24.5754C9.30976 24.5754 8.74976 24.0154 8.74976 23.3254V16.6554C8.74976 15.9654 9.30976 15.4054 9.99976 15.4054C10.6898 15.4054 11.2498 15.9654 11.2498 16.6554V23.3254C11.2498 24.0154 10.6898 24.5754 9.99976 24.5754Z" fill="black"/>
5
5
  <path d="M14.9998 24.5754C14.3098 24.5754 13.7498 24.0154 13.7498 23.3254V16.6554C13.7498 15.9654 14.3098 15.4054 14.9998 15.4054C15.6898 15.4054 16.2498 15.9654 16.2498 16.6554V23.3254C16.2498 24.0154 15.6898 24.5754 14.9998 24.5754Z" fill="black"/>
6
6
  <path d="M19.9998 24.5754C19.3098 24.5754 18.7498 24.0154 18.7498 23.3254V16.6554C18.7498 15.9654 19.3098 15.4054 19.9998 15.4054C20.6898 15.4054 21.2498 15.9654 21.2498 16.6554V23.3254C21.2498 24.0154 20.6898 24.5754 19.9998 24.5754Z" fill="black"/>
7
+ <path d="M24.9998 24.5754C24.3098 24.5754 23.7498 24.0154 23.7498 23.3254V16.6554C23.7498 15.9654 24.3098 15.4054 24.9998 15.4054C25.6898 15.4054 26.2498 15.9654 26.2498 16.6554V23.3254C26.2498 24.0154 25.6898 24.5754 24.9998 24.5754Z" fill="black"/>
7
8
  </svg>
@@ -0,0 +1,7 @@
1
+ <svg width="41" height="40" viewBox="0 0 41 40" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M29.2498 31.245H7.65015C5.09015 31.245 2.99976 29.185 2.99976 26.665V13.335C2.99976 10.805 5.09015 8.755 7.65015 8.755H29.2498C31.8098 8.755 33.9001 10.815 33.9001 13.335V26.665C33.9001 29.195 31.8098 31.245 29.2498 31.245ZM7.65015 11.245C6.44015 11.245 5.49976 12.165 5.49976 13.325V26.655C5.49976 27.825 6.44015 28.735 7.65015 28.735H29.2498C30.4598 28.735 31.4001 27.815 31.4001 26.655V13.325C31.4001 12.155 30.4598 11.245 29.2498 11.245H7.65015Z" fill="black"/>
3
+ <path d="M32.6506 25.4151C32.0506 25.4151 31.5201 24.9851 31.4201 24.3751C31.3001 23.6951 31.7607 23.0451 32.4407 22.9351L36.0403 22.3251C36.2503 22.2951 36.4006 22.1151 36.4006 21.9151V18.0851C36.4006 17.8851 36.2503 17.7051 36.0403 17.6751L32.4407 17.0651C31.7607 16.9451 31.3001 16.3051 31.4201 15.6251C31.5401 14.9451 32.1906 14.4851 32.8606 14.6051L36.4602 15.2151C37.8702 15.4551 38.9006 16.6651 38.9006 18.0951V21.9251C38.9006 23.3551 37.8702 24.5651 36.4602 24.8051L32.8606 25.4151C32.7906 25.4251 32.7206 25.4351 32.6506 25.4351V25.4151Z" fill="black"/>
4
+ <path d="M10.95 24.5754C10.26 24.5754 9.69995 24.0154 9.69995 23.3254V16.6554C9.69995 15.9654 10.26 15.4054 10.95 15.4054C11.64 15.4054 12.2 15.9654 12.2 16.6554V23.3254C12.2 24.0154 11.64 24.5754 10.95 24.5754Z" fill="black"/>
5
+ <path d="M15.95 24.5754C15.26 24.5754 14.7 24.0154 14.7 23.3254V16.6554C14.7 15.9654 15.26 15.4054 15.95 15.4054C16.64 15.4054 17.2 15.9654 17.2 16.6554V23.3254C17.2 24.0154 16.64 24.5754 15.95 24.5754Z" fill="black"/>
6
+ <path d="M20.95 24.5754C20.26 24.5754 19.7 24.0154 19.7 23.3254V16.6554C19.7 15.9654 20.26 15.4054 20.95 15.4054C21.64 15.4054 22.2 15.9654 22.2 16.6554V23.3254C22.2 24.0154 21.64 24.5754 20.95 24.5754Z" fill="black"/>
7
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg width="41" height="40" viewBox="0 0 41 40" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M28.7498 31.245H7.15015C4.59015 31.245 2.49976 29.185 2.49976 26.665V13.335C2.49976 10.805 4.59015 8.755 7.15015 8.755H28.7498C31.3098 8.755 33.4001 10.815 33.4001 13.335V26.665C33.4001 29.195 31.3098 31.245 28.7498 31.245ZM7.15015 11.245C5.94015 11.245 4.99976 12.165 4.99976 13.325V26.655C4.99976 27.825 5.94015 28.735 7.15015 28.735H28.7498C29.9598 28.735 30.9001 27.815 30.9001 26.655V13.325C30.9001 12.155 29.9598 11.245 28.7498 11.245H7.15015Z" fill="black"/>
3
+ <path d="M32.1506 25.4151C31.5506 25.4151 31.0201 24.9851 30.9201 24.3751C30.8001 23.6951 31.2607 23.0451 31.9407 22.9351L35.5403 22.3251C35.7503 22.2951 35.9006 22.1151 35.9006 21.9151V18.0851C35.9006 17.8851 35.7503 17.7051 35.5403 17.6751L31.9407 17.0651C31.2607 16.9451 30.8001 16.3051 30.9201 15.6251C31.0401 14.9451 31.6906 14.4851 32.3606 14.6051L35.9602 15.2151C37.3702 15.4551 38.4006 16.6651 38.4006 18.0951V21.9251C38.4006 23.3551 37.3702 24.5651 35.9602 24.8051L32.3606 25.4151C32.2906 25.4251 32.2206 25.4351 32.1506 25.4351V25.4151Z" fill="black"/>
4
+ <path d="M10.45 24.5754C9.75995 24.5754 9.19995 24.0154 9.19995 23.3254V16.6554C9.19995 15.9654 9.75995 15.4054 10.45 15.4054C11.14 15.4054 11.7 15.9654 11.7 16.6554V23.3254C11.7 24.0154 11.14 24.5754 10.45 24.5754Z" fill="black"/>
5
+ </svg>
@@ -0,0 +1,6 @@
1
+ <svg width="41" height="40" viewBox="0 0 41 40" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M28.4998 31.245H6.90015C4.34015 31.245 2.24976 29.185 2.24976 26.665V13.335C2.24976 10.805 4.34015 8.755 6.90015 8.755H28.4998C31.0598 8.755 33.1501 10.815 33.1501 13.335V26.665C33.1501 29.195 31.0598 31.245 28.4998 31.245ZM6.90015 11.245C5.69015 11.245 4.74976 12.165 4.74976 13.325V26.655C4.74976 27.825 5.69015 28.735 6.90015 28.735H28.4998C29.7098 28.735 30.6501 27.815 30.6501 26.655V13.325C30.6501 12.155 29.7098 11.245 28.4998 11.245H6.90015Z" fill="black"/>
3
+ <path d="M31.9006 25.4151C31.3006 25.4151 30.7701 24.9851 30.6701 24.3751C30.5501 23.6951 31.0107 23.0451 31.6907 22.9351L35.2903 22.3251C35.5003 22.2951 35.6506 22.1151 35.6506 21.9151V18.0851C35.6506 17.8851 35.5003 17.7051 35.2903 17.6751L31.6907 17.0651C31.0107 16.9451 30.5501 16.3051 30.6701 15.6251C30.7901 14.9451 31.4306 14.4851 32.1106 14.6051L35.7102 15.2151C37.1202 15.4551 38.1506 16.6651 38.1506 18.0951V21.9251C38.1506 23.3551 37.1202 24.5651 35.7102 24.8051L32.1106 25.4151C32.0406 25.4251 31.9706 25.4351 31.9006 25.4351V25.4151Z" fill="black"/>
4
+ <path d="M10.2 24.5754C9.50995 24.5754 8.94995 24.0154 8.94995 23.3254V16.6554C8.94995 15.9654 9.50995 15.4054 10.2 15.4054C10.89 15.4054 11.45 15.9654 11.45 16.6554V23.3254C11.45 24.0154 10.89 24.5754 10.2 24.5754Z" fill="black"/>
5
+ <path d="M15.2 24.5754C14.51 24.5754 13.95 24.0154 13.95 23.3254V16.6554C13.95 15.9654 14.51 15.4054 15.2 15.4054C15.89 15.4054 16.45 15.9654 16.45 16.6554V23.3254C16.45 24.0154 15.89 24.5754 15.2 24.5754Z" fill="black"/>
6
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M20.0034 36.249C19.8034 36.249 19.5935 36.199 19.4135 36.099C19.0035 35.879 18.7534 35.459 18.7534 34.999V22.669L10.8032 29.289C10.2732 29.729 9.48343 29.659 9.04343 29.129C8.60343 28.599 8.67358 27.809 9.20358 27.369L18.0532 19.999L9.20358 12.629C8.67358 12.189 8.60343 11.399 9.04343 10.869C9.48343 10.339 10.2732 10.269 10.8032 10.709L18.7534 17.329V4.99896C18.7534 4.53896 19.0035 4.11896 19.4135 3.89896C19.8135 3.67896 20.3138 3.70896 20.6938 3.95896L30.6938 10.629C31.0238 10.849 31.2236 11.209 31.2436 11.599C31.2636 11.989 31.1034 12.369 30.7934 12.629L21.9438 19.999L30.7934 27.369C31.0934 27.619 31.2636 27.999 31.2436 28.399C31.2236 28.789 31.0138 29.149 30.6938 29.369L20.6938 36.039C20.4838 36.179 20.2434 36.249 20.0034 36.249ZM21.2534 22.669V32.669L27.9135 28.229L21.2534 22.679V22.669ZM21.2534 7.33896V17.339L27.9135 11.789L21.2534 7.34896V7.33896Z" fill="black"/>
3
+ </svg>
@@ -0,0 +1,6 @@
1
+ <svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M29.9697 20.44C29.2797 20.44 28.64 20.14 28.21 19.63C27.6 18.85 26.8906 18.15 26.1406 17.42C24.2106 15.52 22.0098 13.36 22.0098 9.98C22.0098 5.58 25.58 2 29.96 2C34.34 2 37.9102 5.58 37.9102 9.98C37.9102 13.41 35.6301 15.67 33.6201 17.66C32.9301 18.34 32.2797 18.98 31.7197 19.66C31.2897 20.17 30.6497 20.46 29.9697 20.46V20.44ZM29.9502 4.48C26.9502 4.48 24.5 6.94 24.5 9.96C24.5 12.29 26.0699 13.84 27.8799 15.62C28.5899 16.32 29.32 17.04 29.96 17.83C30.55 17.14 31.2106 16.49 31.8506 15.86C33.6806 14.05 35.4004 12.35 35.4004 9.96C35.4004 6.94 32.9502 4.48 29.9502 4.48Z" fill="black"/>
3
+ <path d="M29.9502 11.5699C29.8402 11.5699 29.7299 11.5599 29.6299 11.5299C29.5199 11.5099 29.4105 11.4799 29.3105 11.4399C29.2105 11.3999 29.1103 11.3499 29.0303 11.2899C28.9303 11.2299 28.8505 11.1599 28.7705 11.0799C28.4605 10.7699 28.2803 10.3399 28.2803 9.89994C28.2803 9.45994 28.4605 9.02994 28.7705 8.71994C28.8505 8.64994 28.9303 8.57994 29.0303 8.51994C29.1103 8.45994 29.2105 8.39994 29.3105 8.35994C29.4105 8.31994 29.5199 8.28994 29.6299 8.26994C30.1699 8.15994 30.7399 8.32994 31.1299 8.71994C31.4399 9.02994 31.6201 9.45994 31.6201 9.89994C31.6201 10.0099 31.6198 10.1199 31.5898 10.2299C31.5598 10.3299 31.5302 10.4399 31.4902 10.5399C31.4502 10.6399 31.3998 10.7299 31.3398 10.8299C31.2798 10.9199 31.2099 10.9999 31.1299 11.0799C30.8199 11.3899 30.3902 11.5699 29.9502 11.5699Z" fill="black"/>
4
+ <path d="M8.25 37.8198C4.8 37.8198 2 35.0198 2 31.5698C2 28.1198 4.8 25.3198 8.25 25.3198C11.7 25.3198 14.5 28.1198 14.5 31.5698C14.5 35.0198 11.7 37.8198 8.25 37.8198ZM8.25 27.8198C6.22 27.8198 4.5 29.5398 4.5 31.5698C4.5 33.5998 6.22 35.3198 8.25 35.3198C10.28 35.3198 12 33.6698 12 31.5698C12 29.4698 10.35 27.8198 8.25 27.8198Z" fill="black"/>
5
+ <path d="M20.75 32.8198H18.25C17.56 32.8198 17 32.2598 17 31.5698C17 30.8798 17.56 30.3198 18.25 30.3198H20.75C23.31 30.3198 25.4004 28.6398 25.4004 26.5698C25.4004 24.4998 23.31 22.8198 20.75 22.8198H15.75C11.86 22.8198 8.7002 20.0198 8.7002 16.5698C8.7002 13.1198 11.86 10.3198 15.75 10.3198H18.25C18.94 10.3198 19.5 10.8798 19.5 11.5698C19.5 12.2598 18.94 12.8198 18.25 12.8198H15.75C13.24 12.8198 11.2002 14.4998 11.2002 16.5698C11.2002 18.6398 13.24 20.3198 15.75 20.3198H20.75C24.69 20.3198 27.9004 23.1198 27.9004 26.5698C27.9004 30.0198 24.76 32.8198 20.75 32.8198Z" fill="black"/>
6
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M19.6504 37.84C19.4404 37.84 19.2198 37.84 19.0098 37.83C18.3198 37.81 17.7798 37.23 17.7998 36.54C17.8198 35.85 18.3998 35.29 19.0898 35.33C19.4598 35.34 19.8302 35.34 20.2002 35.33C20.8802 35.29 21.4702 35.85 21.4902 36.54C21.5102 37.23 20.9703 37.81 20.2803 37.83C20.0703 37.83 19.8506 37.84 19.6406 37.84H19.6504ZM25.3506 36.79C24.8106 36.79 24.3204 36.44 24.1504 35.91C23.9504 35.25 24.3205 34.55 24.9805 34.35C25.2905 34.25 25.5305 34.15 25.8105 34.02C26.4305 33.72 27.1797 33.99 27.4697 34.62C27.7597 35.24 27.5001 35.99 26.8701 36.28C26.5501 36.43 26.1802 36.59 25.7002 36.74C25.5802 36.78 25.4501 36.79 25.3301 36.79H25.3506ZM13.8506 36.78C13.7006 36.78 13.5406 36.75 13.3906 36.69C13.0706 36.57 12.7507 36.43 12.4307 36.29C11.8007 36.01 11.5198 35.27 11.7998 34.64C12.0798 34.01 12.8202 33.73 13.4502 34.01C13.7302 34.14 14.01 34.26 14.29 34.37C14.93 34.62 15.25 35.35 15 35.99C14.81 36.48 14.3398 36.78 13.8398 36.78H13.8506ZM30.75 33.44C30.41 33.44 30.0603 33.3 29.8203 33.02C29.3603 32.51 29.3999 31.72 29.9199 31.26C30.2099 31 30.5 30.74 30.79 30.46C31.29 29.98 32.0805 30 32.5605 30.5C33.0405 31 33.0205 31.79 32.5205 32.27C32.2105 32.57 31.8998 32.85 31.5898 33.13C31.3498 33.34 31.0498 33.45 30.7598 33.45L30.75 33.44ZM8.4502 33.41C8.1002 33.41 7.75977 33.27 7.50977 32.99C7.43977 32.91 7.36051 32.83 7.27051 32.76C7.10051 32.6 6.92027 32.43 6.78027 32.26C6.34027 31.73 6.41043 30.94 6.94043 30.5C7.47043 30.06 8.2602 30.13 8.7002 30.66C8.7802 30.75 8.86973 30.84 8.96973 30.93C9.11973 31.07 9.25988 31.2 9.37988 31.34C9.83988 31.86 9.79051 32.65 9.27051 33.1C9.03051 33.31 8.74043 33.41 8.44043 33.41H8.4502ZM34.4502 28.34C34.2502 28.34 34.0404 28.29 33.8604 28.19C33.2504 27.86 33.0304 27.1 33.3604 26.5C33.5104 26.22 33.68 25.9 33.75 25.65C33.92 24.98 34.6105 24.58 35.2705 24.75C35.9405 24.92 36.3399 25.61 36.1699 26.27C36.0299 26.81 35.7705 27.29 35.5605 27.68C35.3305 28.1 34.9 28.33 34.46 28.33L34.4502 28.34ZM4.75 28.25C4.33 28.25 3.93043 28.04 3.69043 27.67C3.40043 27.21 3.26039 26.76 3.15039 26.39C2.95039 25.73 3.32047 25.03 3.98047 24.83C4.65047 24.63 5.34004 25 5.54004 25.66C5.62004 25.92 5.6898 26.15 5.7998 26.33C6.1698 26.91 5.99016 27.69 5.41016 28.05C5.20016 28.18 4.97 28.24 4.75 28.24V28.25ZM3.25 22.01C2.56 22.01 2 21.45 2 20.76V19.72C2 19.03 2.56 18.47 3.25 18.47C3.94 18.47 4.5 19.03 4.5 19.72V20.76C4.5 21.45 3.94 22.01 3.25 22.01ZM4.35059 15.73C4.23059 15.73 4.11047 15.71 3.98047 15.67C3.32047 15.47 2.95039 14.77 3.15039 14.11C3.26039 13.75 3.40043 13.31 3.69043 12.84C4.06043 12.26 4.83992 12.09 5.41992 12.45C5.99992 12.82 6.18055 13.59 5.81055 14.18C5.70055 14.36 5.6298 14.58 5.5498 14.84C5.3798 15.38 4.89059 15.72 4.35059 15.72V15.73ZM7.75 10.3C7.48 10.3 7.21047 10.21 6.98047 10.04C6.44047 9.62001 6.33977 8.83001 6.75977 8.29001C6.89977 8.11001 7.07 7.93001 7.25 7.76001C7.33 7.68001 7.42023 7.59001 7.49023 7.51001C7.93023 6.98001 8.72 6.91001 9.25 7.35001C9.78 7.79001 9.85016 8.58001 9.41016 9.11001C9.29016 9.25001 9.15977 9.39001 9.00977 9.53001C8.90977 9.63001 8.81047 9.72002 8.73047 9.82001C8.48047 10.14 8.12023 10.3 7.74023 10.3H7.75ZM12.8506 6.61001C12.3506 6.61001 11.8804 6.31001 11.6904 5.82001C11.4404 5.18002 11.7504 4.45001 12.4004 4.20001L12.7705 4.05001C13.0305 3.94001 13.2705 3.84001 13.5605 3.74001C14.2205 3.52001 14.9206 3.88001 15.1406 4.53001C15.3606 5.19001 15.0006 5.89001 14.3506 6.11001C14.1206 6.19001 13.9402 6.27001 13.7402 6.35001C13.6102 6.41001 13.4703 6.46001 13.3203 6.52001C13.1703 6.58001 13.0104 6.61001 12.8604 6.61001H12.8506Z" fill="black"/>
3
+ <path d="M19.9502 23.6699C17.8802 23.6699 16.2002 21.9899 16.2002 19.9199C16.2002 18.2899 17.2402 16.8999 18.7002 16.3799V9.91992C18.7002 9.22992 19.2602 8.66992 19.9502 8.66992C20.6402 8.66992 21.2002 9.22992 21.2002 9.91992V16.3799C22.2602 16.7599 23.1102 17.5999 23.4902 18.6699H26.6504C27.3404 18.6699 27.9004 19.2299 27.9004 19.9199C27.9004 20.6099 27.3404 21.1699 26.6504 21.1699H23.4902C22.9702 22.6299 21.5802 23.6699 19.9502 23.6699ZM19.9502 18.6699C19.2502 18.6699 18.7002 19.2199 18.7002 19.9199C18.7002 20.6199 19.2502 21.1699 19.9502 21.1699C20.6502 21.1699 21.2002 20.6199 21.2002 19.9199C21.2002 19.2199 20.6502 18.6699 19.9502 18.6699Z" fill="black"/>
4
+ <path d="M36.6504 21.17C35.9604 21.17 35.4004 20.61 35.4004 19.92C35.4004 11.42 28.4702 4.5 19.9502 4.5C19.2602 4.5 18.7002 3.94 18.7002 3.25C18.7002 2.56 19.2602 2 19.9502 2C29.8502 2 37.9004 10.04 37.9004 19.92C37.9004 20.61 37.3404 21.17 36.6504 21.17Z" fill="black"/>
5
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M31.2001 32.3999C30.8901 32.3999 30.5902 32.2799 30.3502 32.0499L7.95016 9.64991C7.48016 9.17991 7.48016 8.41991 7.95016 7.94991C8.42016 7.47991 9.18015 7.47991 9.65015 7.94991L32.0501 30.3499C32.5201 30.8199 32.5201 31.5799 32.0501 32.0499C31.8201 32.2799 31.5101 32.3999 31.2001 32.3999Z" fill="black"/>
3
+ <path d="M20.0001 37.2001C10.5201 37.2001 2.80005 29.48 2.80005 20C2.80005 10.52 10.5201 2.80005 20.0001 2.80005C29.4801 2.80005 37.2 10.52 37.2 20C37.2 29.48 29.4801 37.2001 20.0001 37.2001ZM20.0001 5.20005C11.8401 5.20005 5.20006 11.84 5.20006 20C5.20006 28.16 11.8401 34.8 20.0001 34.8C28.1601 34.8 34.8 28.16 34.8 20C34.8 11.84 28.1601 5.20005 20.0001 5.20005Z" fill="black"/>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M26.436 37.8125H14.0356C10.8556 37.8125 7.82598 36.4825 5.93598 34.2525C4.37598 32.4125 3.7259 30.1025 4.1059 27.7525C5.1459 21.2325 10.6155 14.6825 12.9155 12.1725C14.0455 10.9725 15.5758 10.3125 17.2358 10.3125H23.2358C24.8958 10.3125 26.4254 10.9725 27.5454 12.1625C29.8554 14.6825 35.3257 21.2325 36.3657 27.7625C36.7457 30.1125 36.0956 32.4125 34.5356 34.2525C32.6356 36.4825 29.606 37.8125 26.436 37.8125ZM17.2358 12.8125C16.2558 12.8125 15.3956 13.1825 14.7456 13.8725C12.6056 16.2025 7.50587 22.2925 6.56587 28.1525C6.22587 30.2225 7.0654 31.7325 7.8354 32.6325C9.2654 34.3125 11.5756 35.3125 14.0356 35.3125H26.436C28.886 35.3125 31.2062 34.3125 32.6362 32.6325C33.3962 31.7325 34.2457 30.2225 33.9057 28.1625C32.9757 22.3125 27.8663 16.2225 25.7163 13.8725C25.0763 13.1925 24.2158 12.8225 23.2358 12.8225H17.2358V12.8125Z" fill="black"/>
3
+ <path d="M25.136 12.8125C24.926 12.8125 24.7051 12.7625 24.5051 12.6425C23.9051 12.2925 23.7059 11.5325 24.0559 10.9325L26.1155 7.4025L25.4456 7.5125C24.0556 7.7625 22.5658 7.2925 21.4758 6.2525L20.2356 5.0025L19.0256 6.2225C17.9056 7.2825 16.4159 7.7525 15.0159 7.5025L14.3557 7.3925L16.4153 10.9225C16.7653 11.5225 16.5661 12.2825 15.9661 12.6325C15.3761 12.9825 14.6051 12.7825 14.2551 12.1825L10.8557 6.3525C10.6157 5.9325 10.6355 5.4125 10.9055 5.0125C11.1755 4.6125 11.656 4.4025 12.136 4.4925L15.4358 5.0425C16.0658 5.1525 16.7659 4.9225 17.2659 4.4425L19.3352 2.3525C19.8052 1.8825 20.6455 1.8825 21.1155 2.3525L23.2161 4.4725C23.6961 4.9325 24.3851 5.1625 25.0051 5.0525L28.3157 4.5025C28.7957 4.4225 29.2752 4.6225 29.5452 5.0225C29.8152 5.4225 29.8459 5.9425 29.5959 6.3625L26.1956 12.1925C25.9656 12.5925 25.5455 12.8125 25.1155 12.8125H25.136Z" fill="black"/>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M20.7303 24.4998C20.4403 24.4998 20.1404 24.4698 19.8504 24.3998C18.7404 24.1398 17.8201 23.4098 17.3201 22.3898L12.1199 12.1498C11.8599 11.6298 11.9902 10.9898 12.4402 10.6198C12.8902 10.2498 13.5398 10.2398 13.9998 10.5998L23.1004 17.7298C24.0204 18.5098 24.5403 19.6498 24.5203 20.8098C24.5003 21.9298 23.9802 22.9798 23.1102 23.6698C22.4102 24.2198 21.5695 24.4998 20.7195 24.4998H20.7303ZM16.91 16.0398L19.5604 21.2698C19.5604 21.2698 19.5601 21.2898 19.5701 21.2898C19.7901 21.7498 20.19 21.9098 20.41 21.9598C20.81 22.0498 21.2301 21.9598 21.5701 21.6998C21.9401 21.4098 22.0301 21.0298 22.0301 20.7598C22.0301 20.3398 21.8499 19.9298 21.5399 19.6698L16.91 16.0398Z" fill="black"/>
3
+ <path d="M19.9502 37.84C10.0502 37.84 2 29.8 2 19.92C2 15.05 3.90988 10.51 7.37988 7.12C7.87988 6.64 8.67039 6.65 9.15039 7.14C9.63039 7.63 9.61988 8.43 9.12988 8.91C6.14988 11.82 4.50977 15.73 4.50977 19.92C4.50977 28.42 11.44 35.34 19.96 35.34C28.48 35.34 35.4102 28.42 35.4102 19.92C35.4102 11.42 29.15 5.19 21.21 4.55V7.42C21.21 8.11 20.65 8.67 19.96 8.67C19.27 8.67 18.71 8.11 18.71 7.42V3.25C18.71 2.56 19.27 2 19.96 2C29.86 2 37.9102 10.04 37.9102 19.92C37.9102 29.8 29.86 37.84 19.96 37.84H19.9502Z" fill="black"/>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M21.6006 36.58V37.83C22.3006 37.83 22.8008 37.27 22.8008 36.58H21.6006ZM3.2002 36.58H2C2 37.27 2.5002 37.83 3.2002 37.83V36.58ZM21.6006 35.33H3.2002V37.83H21.6006V35.33ZM4.5 36.58C4.5 32.78 7.90039 29.5 12.4004 29.5V27C6.80039 27 2 31.18 2 36.58H4.5ZM12.4004 29.49C16.9004 29.49 20.3008 32.77 20.3008 36.57H22.8008C22.8008 31.17 18.0004 26.99 12.4004 26.99V29.49ZM15.3008 19.91C15.3008 21.52 14.0004 22.83 12.4004 22.83V25.33C15.4004 25.33 17.8008 22.9 17.8008 19.91H15.3008ZM12.4004 22.83C10.8004 22.83 9.5 21.52 9.5 19.91H7C7 22.9 9.40039 25.33 12.4004 25.33V22.83ZM9.5 19.91C9.5 18.3 10.8004 16.99 12.4004 16.99V14.49C9.40039 14.49 7 16.92 7 19.91H9.5ZM12.4004 16.99C14.0004 16.99 15.3008 18.3 15.3008 19.91H17.8008C17.8008 16.92 15.4004 14.49 12.4004 14.49V16.99Z" fill="black"/>
3
+ <path d="M22.6602 21.16C22.2602 21.16 21.8607 21.12 21.4707 21.05C21.0507 20.97 20.7 20.68 20.54 20.29C20.38 19.89 20.4307 19.44 20.6807 19.1C20.9407 18.74 21.2904 18.2 21.3604 17.7C21.3604 17.67 21.3601 17.65 21.3701 17.62C21.3601 17.64 21.33 17.6 21.29 17.55C19.59 15.82 18.6406 13.56 18.6406 11.22C18.6406 6.14 22.9204 2 28.1904 2C33.4604 2 37.8408 6.14 37.8408 11.22C37.8408 16.3 33.5104 20.44 28.1904 20.44H28.1699C27.6299 20.44 27.0709 20.39 26.3809 20.27C26.2609 20.25 26.1608 20.23 26.0908 20.22C26.0008 20.26 25.89 20.32 25.75 20.39C24.77 20.9 23.7104 21.16 22.6504 21.16H22.6602ZM23.8301 18.08C23.8101 18.23 23.7802 18.37 23.7402 18.51C24.0402 18.43 24.3301 18.31 24.6201 18.16C25.1601 17.89 25.3804 17.78 25.6504 17.72C25.9804 17.65 26.2603 17.7 26.8203 17.8C27.3603 17.89 27.8302 17.93 28.2002 17.93C32.1502 17.93 35.3506 14.91 35.3506 11.21C35.3506 7.51 32.1402 4.49 28.2002 4.49C24.2602 4.49 21.1504 7.51 21.1504 11.21C21.1504 12.89 21.8408 14.52 23.0908 15.8C23.7208 16.46 23.9901 17.29 23.8301 18.08ZM28.21 16.16C27.52 16.16 26.96 15.6 26.96 14.91C26.96 14.22 27.51 13.66 28.21 13.66C28.9 13.66 29.46 14.22 29.46 14.91C29.46 15.6 28.9 16.16 28.21 16.16ZM28.2002 12.83C27.5102 12.83 26.9502 12.27 26.9502 11.58V8.25C26.9502 7.56 27.5102 7 28.2002 7C28.8902 7 29.4502 7.56 29.4502 8.25V11.58C29.4502 12.27 28.8902 12.83 28.2002 12.83Z" fill="black"/>
4
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M11.8896 33.547C11.4096 33.547 10.9302 33.427 10.4902 33.177C9.57023 32.667 9 31.687 9 30.627V9.92696C9 8.86696 9.57023 7.88696 10.4902 7.36696C11.4202 6.85696 12.5002 6.87696 13.4102 7.43696L30.2998 17.787C31.1498 18.347 31.6504 19.267 31.6504 20.267C31.6504 21.267 31.1601 22.197 30.3301 22.737L13.4004 33.107C12.9304 33.397 12.4096 33.547 11.8896 33.547ZM11.8896 9.50696C11.8196 9.50696 11.76 9.52696 11.71 9.55696C11.63 9.59696 11.5 9.70696 11.5 9.92696V30.627C11.5 30.847 11.63 30.957 11.71 30.997C11.8 31.047 11.9298 31.087 12.0898 30.987L28.9902 20.637C29.1302 20.547 29.1396 20.357 29.1396 20.287C29.1396 20.217 29.12 20.017 28.96 19.917L12.0898 9.58696C12.0098 9.53696 11.9399 9.51696 11.8799 9.51696L11.8896 9.50696Z" fill="black"/>
3
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M12.0498 16.17C11.3598 16.17 10.7998 15.61 10.7998 14.92V10.75C10.7998 5.93 14.7198 2 19.5498 2C23.0998 2 26.0499 4.17 27.4199 7.81C27.6599 8.46 27.3395 9.18 26.6895 9.42C26.0395 9.66 25.3201 9.34 25.0801 8.69C24.4901 7.12 22.9798 4.5 19.5498 4.5C16.1198 4.5 13.2998 7.3 13.2998 10.75V14.92C13.2998 15.61 12.7398 16.17 12.0498 16.17Z" fill="black"/>
3
+ <path d="M29.5498 37.8399H9.5498C7.0398 37.8399 5 35.7799 5 33.2599V18.2599C5 15.7299 7.0398 13.6799 9.5498 13.6799H29.5498C32.0598 13.6799 34.0996 15.7399 34.0996 18.2599V33.2599C34.0996 35.7899 32.0598 37.8399 29.5498 37.8399ZM9.5498 16.1699C8.4398 16.1699 7.5 17.1199 7.5 18.2499V33.2499C7.5 34.3999 8.4198 35.3299 9.5498 35.3299H29.5498C30.6598 35.3299 31.5996 34.3799 31.5996 33.2499V18.2499C31.5996 17.0999 30.6798 16.1699 29.5498 16.1699H9.5498Z" fill="black"/>
4
+ <path d="M19.5498 28.6698C18.8598 28.6698 18.2998 28.1098 18.2998 27.4198V24.0898C18.2998 23.3998 18.8598 22.8398 19.5498 22.8398C20.2398 22.8398 20.7998 23.3998 20.7998 24.0898V27.4198C20.7998 28.1098 20.2398 28.6698 19.5498 28.6698Z" fill="black"/>
5
+ </svg>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atb-as/generate-assets",
3
- "version": "14.0.4",
3
+ "version": "15.0.0",
4
4
  "private": false,
5
5
  "type": "commonjs",
6
6
  "description": "OOS Design System generate-assets",
@@ -28,12 +28,12 @@
28
28
  "access": "public"
29
29
  },
30
30
  "dependencies": {
31
- "@atb-as/theme": "^13.1.2",
31
+ "@atb-as/theme": "^13.1.3",
32
32
  "commander": "^9.4.0",
33
33
  "fast-glob": "^3.2.11",
34
34
  "micromatch": "^4.0.5",
35
35
  "normalize-path": "^3.0.0",
36
36
  "stream-editor": "^1.11.0"
37
37
  },
38
- "gitHead": "e0c2532a80646ac49a4f05e6e6acf85f9a23f846"
38
+ "gitHead": "0d9bbd3ee68c327450409f0b33a3d4fafdfae8f8"
39
39
  }
package/src/bin.ts ADDED
@@ -0,0 +1,121 @@
1
+ #!/usr/bin/env node
2
+
3
+ import {validOrgIds, generateAssets, searchGlob} from './generate';
4
+ import pathlib from 'path';
5
+ import {AssetType, stringAsThemeVariant, themeVariantAsString} from './utils';
6
+ import {setDebug} from './logger';
7
+
8
+ import {program, Argument} from 'commander';
9
+ import {generateTs} from './generateTs';
10
+
11
+ type InputOptions = {
12
+ debug: boolean;
13
+ generateMonoTheme: boolean;
14
+ glob?: string;
15
+ outDir: string;
16
+ generateTs: boolean;
17
+ tsOutDir: string | undefined;
18
+ };
19
+
20
+ program
21
+ .name('npx @atb-as/generate-assets')
22
+ .addArgument(
23
+ new Argument('<type>', 'Type of assets to generate')
24
+ .choices(['colors', 'all', 'mono'])
25
+ .argRequired(),
26
+ )
27
+ .addArgument(
28
+ new Argument('<orgId>', 'Generate for specific organization')
29
+ .choices(validOrgIds.map(themeVariantAsString))
30
+ .argRequired(),
31
+ )
32
+ .requiredOption('-o, --out-dir <output>', 'Output directory')
33
+ .option(
34
+ '-ts-o, --ts-out-dir <output>',
35
+ 'Output directory for generated typescript',
36
+ )
37
+ .option('-d, --debug', 'Log all files generated', false)
38
+ .option(
39
+ '-nm, --no-generate-mono-theme',
40
+ 'Ignore generating themed mono-icons, but keep general mono icons.',
41
+ )
42
+ .option('-ts, --generate-ts', 'Generates typescript resolution file.', false)
43
+ .option(
44
+ '-g, --glob [glob]',
45
+ 'Pass in custom glob for matching files.',
46
+ searchGlob,
47
+ );
48
+
49
+ program.showHelpAfterError();
50
+ program.showSuggestionAfterError();
51
+
52
+ program.parse();
53
+
54
+ const opts = program.opts<InputOptions>();
55
+ const assetType = program.args[0] as AssetType;
56
+ const orgId = program.args[1];
57
+
58
+ if (opts.debug) setDebug(true);
59
+
60
+ const main = async () => {
61
+ const outputFolder = pathlib.join(process.cwd(), opts.outDir);
62
+
63
+ try {
64
+ const potentialGlob = findPotentialGlobPattern(process.argv);
65
+
66
+ console.log(`Writing assets for ${orgId} to ${outputFolder}`);
67
+ const assets = await generateAssets(
68
+ assetType,
69
+ stringAsThemeVariant(orgId),
70
+ outputFolder,
71
+ {
72
+ patterns: potentialGlob,
73
+ generateMonoTheme: opts.generateMonoTheme,
74
+ },
75
+ );
76
+ if (opts.debug) {
77
+ console.log(`Written ${assets.length} assets for ${orgId}:\n`);
78
+
79
+ console.log();
80
+ assets.forEach((i) => console.log(i));
81
+ } else {
82
+ console.log(
83
+ `Successfully written ${assets.length} assets for ${orgId} to ${outputFolder}`,
84
+ );
85
+ }
86
+
87
+ if (opts.generateTs) {
88
+ const generatedTsFile = await generateTs(
89
+ assets,
90
+ assetType,
91
+ outputFolder,
92
+ opts.tsOutDir,
93
+ );
94
+ console.log(`Generated typescript file: ${generatedTsFile}`);
95
+ }
96
+ } catch (e) {
97
+ console.error((e as Error)?.message);
98
+ program.help({error: true});
99
+ }
100
+ };
101
+
102
+ main();
103
+
104
+ function findPotentialGlobPattern(args: string[]) {
105
+ for (let arg in args) {
106
+ if (!args[arg]?.startsWith('--glob') && !args[arg]?.startsWith('-g'))
107
+ continue;
108
+
109
+ // Is glob, check for valid next argument or if using =
110
+ if (args[arg].includes('=')) {
111
+ const [, glob] = args[arg].split('=');
112
+ return glob;
113
+ }
114
+ const potentialGlob = args[Number(arg) + 1];
115
+ if (!potentialGlob) {
116
+ throw new Error('Missing argument to --glob.');
117
+ }
118
+ return potentialGlob;
119
+ }
120
+ return undefined;
121
+ }
@@ -0,0 +1,197 @@
1
+ import fs from 'fs/promises';
2
+ import {createReadStream, createWriteStream} from 'fs';
3
+ import path from 'path';
4
+
5
+ import {createThemesFor, Mode, Themes, ThemeVariant} from '@atb-as/theme';
6
+
7
+ import micromatch from 'micromatch';
8
+ import {sed as updateFiles} from 'stream-editor';
9
+
10
+ import {
11
+ fgNormalizedForUnix,
12
+ normalizeToUnix,
13
+ themeVariantAsString,
14
+ } from './utils';
15
+ import {log} from './logger';
16
+
17
+ export const validOrgIds = [
18
+ ThemeVariant.AtB,
19
+ ThemeVariant.Nfk,
20
+ ThemeVariant.FRAM,
21
+ ThemeVariant.Troms,
22
+ ThemeVariant.Innlandet,
23
+ ThemeVariant.VKT,
24
+ ThemeVariant.Farte,
25
+ ];
26
+ export const searchGlob = '**/*.{svg,png,jpg,jpeg,ico}';
27
+ export const searchGlobSvg = '**/*.svg';
28
+
29
+ type AssetTypes = 'colors' | 'mono' | 'all';
30
+
31
+ type Options = {
32
+ generateMonoTheme?: boolean;
33
+ onlyOutputMono?: boolean;
34
+ patterns?: string | readonly string[];
35
+ };
36
+ const defaultOpts: Options = {
37
+ generateMonoTheme: true,
38
+ onlyOutputMono: false,
39
+ };
40
+
41
+ export async function generateAssets(
42
+ assetType: AssetTypes,
43
+ orgId: ThemeVariant,
44
+ destinationDirectory: string,
45
+ opts: Options = defaultOpts,
46
+ ) {
47
+ const assetDir = assetType == 'all' ? '{colors,mono}' : assetType;
48
+ const fromBase = (...p: string[]) => {
49
+ const fullPath = path.join(
50
+ __dirname,
51
+ '..',
52
+ 'files',
53
+ ...p,
54
+ assetDir,
55
+ searchGlob,
56
+ );
57
+
58
+ log('searching for files in', fullPath);
59
+ return fgNormalizedForUnix(fullPath);
60
+ };
61
+
62
+ if (!validOrgIds.includes(orgId))
63
+ throw new Error(`Invalid orgId provided, valid orgIds are ${validOrgIds}`);
64
+
65
+ // File paths are returned as UNIX type separators.
66
+ const commonFiles = await fromBase('common');
67
+ const orgFiles = await fromBase(themeVariantAsString(orgId));
68
+
69
+ log('Found common files:', commonFiles.length);
70
+ log('Found org files for', orgId, ':', orgFiles.length);
71
+
72
+ log('Merging files for ', assetType);
73
+ const allFilesToBeCopied = mergeFiles(assetType, commonFiles, orgFiles);
74
+ log('Found merged files:', allFilesToBeCopied.length);
75
+
76
+ const potentiallyFiltered = opts.patterns
77
+ ? micromatch(allFilesToBeCopied, opts.patterns)
78
+ : allFilesToBeCopied;
79
+
80
+ let allFiles = potentiallyFiltered.map(async (absolutePath) => {
81
+ const relativePath = path.normalize(
82
+ getGeneralNameWithoutFullPath(assetType, absolutePath),
83
+ );
84
+ const destinationPath = path.join(destinationDirectory, relativePath);
85
+
86
+ await fs.mkdir(path.dirname(destinationPath), {recursive: true});
87
+ await fs.copyFile(path.normalize(absolutePath), destinationPath);
88
+
89
+ return destinationPath;
90
+ });
91
+
92
+ log('Total files before generated mono icons:', allFiles.length);
93
+
94
+ let created = await Promise.all(allFiles);
95
+ if (opts.generateMonoTheme && assetType !== 'colors') {
96
+ const allExtraMonoIcons = await generateMonoIconsInDestinationDirectory(
97
+ assetType,
98
+ orgId,
99
+ destinationDirectory,
100
+ );
101
+ created = created.concat(await Promise.all(allExtraMonoIcons));
102
+ }
103
+ log('Total files after generated mono icons:', created.length);
104
+
105
+ return created;
106
+ }
107
+
108
+ export async function generateMonoIconsInDestinationDirectory(
109
+ assetType: AssetTypes,
110
+ orgId: ThemeVariant,
111
+ destinationDirectory: string,
112
+ ) {
113
+ const themes = createThemesFor(orgId);
114
+
115
+ // Assume mono-icons is created directly on destination root.
116
+ const base = path.join(
117
+ destinationDirectory,
118
+ assetType === 'all' ? 'mono' : '',
119
+ );
120
+ const folder = path.join(base, searchGlobSvg);
121
+
122
+ const darkBase = path.join(base, 'dark');
123
+ const lightBase = path.join(base, 'light');
124
+
125
+ await fs.mkdir(darkBase, {recursive: true});
126
+ await fs.mkdir(lightBase, {recursive: true});
127
+
128
+ let files: Promise<string>[] = [];
129
+ for (const entry of await fgNormalizedForUnix(folder, {
130
+ // Avoid trying to convert what we have from before.
131
+ ignore: [darkBase, lightBase],
132
+ })) {
133
+ files = files.concat([
134
+ rewriteAndSave('dark', themes, entry, base),
135
+ rewriteAndSave('light', themes, entry, base),
136
+ ]);
137
+ }
138
+ return files;
139
+ }
140
+
141
+ async function rewriteAndSave(
142
+ color: Mode,
143
+ themes: Themes,
144
+ absoluteFile: string,
145
+ monoIconsBase: string,
146
+ ) {
147
+ const relativeFileName = path.relative(monoIconsBase, absoluteFile);
148
+ const filename = path.basename(relativeFileName);
149
+ const destinationDir = path.join(
150
+ monoIconsBase,
151
+ color,
152
+ path.dirname(relativeFileName),
153
+ );
154
+
155
+ await fs.mkdir(destinationDir, {recursive: true});
156
+ const destination = path.join(destinationDir, filename);
157
+
158
+ await updateFiles({
159
+ from: createReadStream(absoluteFile),
160
+ to: createWriteStream(destination),
161
+ match: /((fill|stroke)\=\"(?:[^"]+)\")/,
162
+ replacement: `$2="${themes[color].color.foreground.dynamic.primary}"`,
163
+ });
164
+
165
+ return destination;
166
+ }
167
+
168
+ function mergeFiles(
169
+ assetType: AssetTypes,
170
+ commonFiles: string[],
171
+ orgFiles: string[],
172
+ ) {
173
+ const relativeOrgFiles = orgFiles.map((f) =>
174
+ getGeneralNameWithoutFullPath(assetType, f),
175
+ );
176
+ const commonsWithoutOverrides = commonFiles.filter(function (filepath) {
177
+ return !relativeOrgFiles.includes(
178
+ getGeneralNameWithoutFullPath(assetType, filepath),
179
+ );
180
+ });
181
+
182
+ return commonsWithoutOverrides.concat(orgFiles);
183
+ }
184
+
185
+ function getGeneralNameWithoutFullPath(
186
+ assetType: AssetTypes,
187
+ fullPath: string,
188
+ ) {
189
+ const assetDir = assetType == 'all' ? '' : escapeRegex(`/${assetType}`);
190
+ const regexString = `^.*\/files\/[^\/]+${assetDir}`;
191
+
192
+ // Normalize to unix style instead if handling separator manually
193
+ return normalizeToUnix(fullPath).replace(new RegExp(regexString), '');
194
+ }
195
+ function escapeRegex(str: string) {
196
+ return str.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
197
+ }