index.html 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. <!doctype html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
  6. <!-- L-4: Restrict Referer header to origin-only on cross-origin navigation so
  7. sensitive tokens in query parameters are not leaked to third-party servers. -->
  8. <meta name="referrer" content="strict-origin-when-cross-origin" />
  9. <title>Bambuddy</title>
  10. <!-- PWA Meta Tags -->
  11. <meta name="description" content="Monitor and manage your Bambu Lab 3D printers" />
  12. <meta name="theme-color" content="#00ae42" />
  13. <meta name="mobile-web-app-capable" content="yes" />
  14. <meta name="apple-mobile-web-app-capable" content="yes" />
  15. <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
  16. <meta name="apple-mobile-web-app-title" content="Bambuddy" />
  17. <!-- Manifest -->
  18. <link rel="manifest" href="/manifest.json" />
  19. <!-- Favicons -->
  20. <link rel="icon" type="image/png" sizes="32x32" href="/img/favicon-32x32.png" />
  21. <link rel="icon" type="image/png" sizes="16x16" href="/img/favicon-16x16.png" />
  22. <link rel="apple-touch-icon" sizes="180x180" href="/img/apple-touch-icon.png" />
  23. <!-- Splash screens for iOS -->
  24. <link rel="apple-touch-startup-image" href="/img/android-chrome-512x512.png" />
  25. <script type="module" crossorigin src="/assets/index-CPJxhO0I.js"></script>
  26. <link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-aKtaBQYM.js">
  27. <link rel="modulepreload" crossorigin href="/assets/client-Bw3urp1w.js">
  28. <link rel="modulepreload" crossorigin href="/assets/react-dom-Bihwyis7.js">
  29. <link rel="modulepreload" crossorigin href="/assets/preload-helper-Czpn1I53.js">
  30. <link rel="modulepreload" crossorigin href="/assets/QueryClientProvider-C3eWKLmF.js">
  31. <link rel="modulepreload" crossorigin href="/assets/useQuery-BTfjV-1Z.js">
  32. <link rel="modulepreload" crossorigin href="/assets/info-U9JJZHLV.js">
  33. <link rel="modulepreload" crossorigin href="/assets/AuthContext-DQrtirY_.js">
  34. <link rel="modulepreload" crossorigin href="/assets/camera-MsEzBYBi.js">
  35. <link rel="modulepreload" crossorigin href="/assets/plateCheck-2zZZ2y0o.js">
  36. <link rel="modulepreload" crossorigin href="/assets/chunk-62JRHF6Z-BW23DMlx.js">
  37. <link rel="modulepreload" crossorigin href="/assets/useMutation-CGk77Rd2.js">
  38. <link rel="modulepreload" crossorigin href="/assets/useQueries-Xuq6LLzc.js">
  39. <link rel="modulepreload" crossorigin href="/assets/archive-BcjXl6s7.js">
  40. <link rel="modulepreload" crossorigin href="/assets/bell-B6lSlval.js">
  41. <link rel="modulepreload" crossorigin href="/assets/camera-D0x-bNlw.js">
  42. <link rel="modulepreload" crossorigin href="/assets/cloud-BkDW9zmN.js">
  43. <link rel="modulepreload" crossorigin href="/assets/code-CQvidG-b.js">
  44. <link rel="modulepreload" crossorigin href="/assets/server-CkmZ8gnP.js">
  45. <link rel="modulepreload" crossorigin href="/assets/external-link-DWED1Z2k.js">
  46. <link rel="modulepreload" crossorigin href="/assets/file-text-keFnqy49.js">
  47. <link rel="modulepreload" crossorigin href="/assets/terminal-sXQKR5TN.js">
  48. <link rel="modulepreload" crossorigin href="/assets/globe-clWifCS1.js">
  49. <link rel="modulepreload" crossorigin href="/assets/image-CqaODAxR.js">
  50. <link rel="modulepreload" crossorigin href="/assets/link-BSb7FCsP.js">
  51. <link rel="modulepreload" crossorigin href="/assets/mail-BuWXBanU.js">
  52. <link rel="modulepreload" crossorigin href="/assets/music-Bi5Vxo1d.js">
  53. <link rel="modulepreload" crossorigin href="/assets/shopping-cart-D62Vi_tV.js">
  54. <link rel="modulepreload" crossorigin href="/assets/star-DJ-wgc6P.js">
  55. <link rel="modulepreload" crossorigin href="/assets/user-1Hen42sb.js">
  56. <link rel="modulepreload" crossorigin href="/assets/users-BSKn3x8p.js">
  57. <link rel="modulepreload" crossorigin href="/assets/video-BUSZfm3T.js">
  58. <link rel="modulepreload" crossorigin href="/assets/wrench-DgUCx-V3.js">
  59. <link rel="modulepreload" crossorigin href="/assets/zap-DTKTes2g.js">
  60. <link rel="modulepreload" crossorigin href="/assets/IconPicker-gCJJi2Ou.js">
  61. <link rel="modulepreload" crossorigin href="/assets/circle-check-BWkaDckV.js">
  62. <link rel="modulepreload" crossorigin href="/assets/triangle-alert-DxTC_wVZ.js">
  63. <link rel="modulepreload" crossorigin href="/assets/SystemHealthPanel-OtLjjgeW.js">
  64. <link rel="modulepreload" crossorigin href="/assets/chart-column-CLqrWbK2.js">
  65. <link rel="modulepreload" crossorigin href="/assets/check-Pg_IdFns.js">
  66. <link rel="modulepreload" crossorigin href="/assets/chevron-right-CvxYuARt.js">
  67. <link rel="modulepreload" crossorigin href="/assets/chevron-left-BP2Jil2b.js">
  68. <link rel="modulepreload" crossorigin href="/assets/loader-circle-C0WA8zwT.js">
  69. <link rel="modulepreload" crossorigin href="/assets/x-D4CM9tS6.js">
  70. <link rel="modulepreload" crossorigin href="/assets/file-DDkFXH-b.js">
  71. <link rel="modulepreload" crossorigin href="/assets/ToastContext-lCIPyrWa.js">
  72. <link rel="modulepreload" crossorigin href="/assets/arrow-down-67fbN1_t.js">
  73. <link rel="modulepreload" crossorigin href="/assets/arrow-up-D0z7JHHC.js">
  74. <link rel="modulepreload" crossorigin href="/assets/calendar-C0xH6mF2.js">
  75. <link rel="modulepreload" crossorigin href="/assets/clock-DL5tMOID.js">
  76. <link rel="modulepreload" crossorigin href="/assets/flame-Bn6z3t9W.js">
  77. <link rel="modulepreload" crossorigin href="/assets/layers-ejmYoqVs.js">
  78. <link rel="modulepreload" crossorigin href="/assets/palette-D-fZVuRx.js">
  79. <link rel="modulepreload" crossorigin href="/assets/pencil-1QfU1Xrb.js">
  80. <link rel="modulepreload" crossorigin href="/assets/printer-BZJt3GTl.js">
  81. <link rel="modulepreload" crossorigin href="/assets/refresh-cw-LKkW6pKU.js">
  82. <link rel="modulepreload" crossorigin href="/assets/rotate-ccw-Becty-o7.js">
  83. <link rel="modulepreload" crossorigin href="/assets/settings-Dl7Ijxhq.js">
  84. <link rel="modulepreload" crossorigin href="/assets/square-check-big-C78V48Oa.js">
  85. <link rel="modulepreload" crossorigin href="/assets/square-BTOA7FGQ.js">
  86. <link rel="modulepreload" crossorigin href="/assets/wand-sparkles-CxykYUpQ.js">
  87. <link rel="modulepreload" crossorigin href="/assets/Card-CjvOwXIN.js">
  88. <link rel="modulepreload" crossorigin href="/assets/Button-B9_qjR81.js">
  89. <link rel="modulepreload" crossorigin href="/assets/ConfirmModal-fFY-Pxek.js">
  90. <link rel="modulepreload" crossorigin href="/assets/date-G9KUauqz.js">
  91. <link rel="modulepreload" crossorigin href="/assets/amsHelpers-DDsrDUnz.js">
  92. <link rel="modulepreload" crossorigin href="/assets/colors-BBBvvSKR.js">
  93. <link rel="modulepreload" crossorigin href="/assets/currency-LmqFrzn3.js">
  94. <link rel="modulepreload" crossorigin href="/assets/useUiSettings-UBmC8PK8.js">
  95. <link rel="modulepreload" crossorigin href="/assets/NumberInput-CuACXpY4.js">
  96. <link rel="modulepreload" crossorigin href="/assets/printer-DfB6SVGc.js">
  97. <link rel="modulepreload" crossorigin href="/assets/filamentSwatchHelpers-C3r5m07g.js">
  98. <link rel="modulepreload" crossorigin href="/assets/FilamentSwatch-DU9bOgNP.js">
  99. <link rel="modulepreload" crossorigin href="/assets/PrintModal-BObYTfX7.js">
  100. <link rel="modulepreload" crossorigin href="/assets/download-C4eI6RUv.js">
  101. <link rel="modulepreload" crossorigin href="/assets/eye-D4VISQ6y.js">
  102. <link rel="modulepreload" crossorigin href="/assets/folder-kanban-IvtAtCDm.js">
  103. <link rel="modulepreload" crossorigin href="/assets/folder-open-BIWMa1PM.js">
  104. <link rel="modulepreload" crossorigin href="/assets/plus-B9X37Egn.js">
  105. <link rel="modulepreload" crossorigin href="/assets/save-DqcH7pRs.js">
  106. <link rel="modulepreload" crossorigin href="/assets/tag-Bt_Ha__h.js">
  107. <link rel="modulepreload" crossorigin href="/assets/trash-2-ByYJ3UBe.js">
  108. <link rel="modulepreload" crossorigin href="/assets/weight-DwMrbjzt.js">
  109. <link rel="modulepreload" crossorigin href="/assets/projectTree-C5LrJHZP.js">
  110. <link rel="modulepreload" crossorigin href="/assets/ConfirmOutcomeDialog-DJy_CUup.js">
  111. <link rel="modulepreload" crossorigin href="/assets/key-rSBYd3vk.js">
  112. <link rel="modulepreload" crossorigin href="/assets/log-out-C3Qcl_xR.js">
  113. <link rel="modulepreload" crossorigin href="/assets/shield-alert-xZ9SnL5Y.js">
  114. <link rel="modulepreload" crossorigin href="/assets/stethoscope-BztTEC99.js">
  115. <link rel="modulepreload" crossorigin href="/assets/upload-BJIt5Xy_.js">
  116. <link rel="modulepreload" crossorigin href="/assets/wifi-off-D6dF-fHp.js">
  117. <link rel="modulepreload" crossorigin href="/assets/ThemeContext-zyZk83TU.js">
  118. <link rel="modulepreload" crossorigin href="/assets/useIsSidebarCompact-IHCLqMmt.js">
  119. <link rel="modulepreload" crossorigin href="/assets/useColorCatalogVersion-D6uXNSEZ.js">
  120. <link rel="modulepreload" crossorigin href="/assets/circle-minus-C2rRKF7J.js">
  121. <link rel="modulepreload" crossorigin href="/assets/ConnectionDiagnostic-BaFc8Rjv.js">
  122. <link rel="modulepreload" crossorigin href="/assets/Layout-KcUdYMIG.js">
  123. <link rel="stylesheet" crossorigin href="/assets/index-N-j54BEl.css">
  124. </head>
  125. <body>
  126. <div id="root"></div>
  127. <!-- Service Worker Registration (skip on SpoolBuddy kiosk).
  128. Kept as an external file so the CSP `script-src 'self'` covers it
  129. without needing 'unsafe-inline' or per-build hashes. -->
  130. <script src="/sw-register.js"></script>
  131. </body>
  132. </html>