brep-io-kernel 1.0.95 → 1.0.97

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 (366) hide show
  1. package/dist-kernel/brep-io-kernel.css +1 -1
  2. package/dist-kernel/brep-kernel.js +66834 -73930
  3. package/package.json +1 -1
  4. package/src/UI/cad/CadEmbed.js +2 -2
  5. package/src/UI/viewer.js +10 -6
  6. package/src/assets/brand/brep-home-banner.svg +116 -0
  7. package/src/assets/fonts/google-ofl/catalog.js +0 -67
  8. package/src/features/textToFace/TextToFaceFeature.js +18 -73
  9. package/src/features/textToFace/fontUrlLoaders.kernel.js +8 -1
  10. package/src/features/textToFace/fontUrlLoaders.vite.js +5 -1
  11. package/src/generated/licenseBundle.js +1 -1
  12. package/src/main.js +2 -1
  13. package/src/styles/cad.css +7 -2
  14. package/src/styles/landing.css +7 -1
  15. package/src/tools/fontAuditPage.js +354 -0
  16. package/src/assets/fonts/braille-hc/BrailleLatinHC-Regular.otf +0 -0
  17. package/src/assets/fonts/braille-hc/BraillePinboardHC-Regular.otf +0 -0
  18. package/src/assets/fonts/dejavu/DejaVuSans-Bold.ttf +0 -0
  19. package/src/assets/fonts/dejavu/DejaVuSans.ttf +0 -0
  20. package/src/assets/fonts/dejavu/DejaVuSansMono-Bold.ttf +0 -0
  21. package/src/assets/fonts/dejavu/DejaVuSansMono-BoldOblique.ttf +0 -0
  22. package/src/assets/fonts/dejavu/DejaVuSansMono-Oblique.ttf +0 -0
  23. package/src/assets/fonts/dejavu/DejaVuSansMono.ttf +0 -0
  24. package/src/assets/fonts/dejavu/DejaVuSerif-Bold.ttf +0 -0
  25. package/src/assets/fonts/dejavu/DejaVuSerif.ttf +0 -0
  26. package/src/assets/fonts/google-ofl/anektelugu/AnekTelugu[wdth,wght].ttf +0 -0
  27. package/src/assets/fonts/google-ofl/anektelugu/DESCRIPTION.en_us.html +0 -23
  28. package/src/assets/fonts/google-ofl/anektelugu/METADATA.pb +0 -47
  29. package/src/assets/fonts/google-ofl/anektelugu/OFL.txt +0 -93
  30. package/src/assets/fonts/google-ofl/anton/Anton-Regular.ttf +0 -0
  31. package/src/assets/fonts/google-ofl/anton/DESCRIPTION.en_us.html +0 -12
  32. package/src/assets/fonts/google-ofl/anton/METADATA.pb +0 -38
  33. package/src/assets/fonts/google-ofl/anton/OFL.txt +0 -93
  34. package/src/assets/fonts/google-ofl/archivo/Archivo[wdth,wght].ttf +0 -0
  35. package/src/assets/fonts/google-ofl/archivo/DESCRIPTION.en_us.html +0 -5
  36. package/src/assets/fonts/google-ofl/archivo/METADATA.pb +0 -55
  37. package/src/assets/fonts/google-ofl/archivo/OFL.txt +0 -93
  38. package/src/assets/fonts/google-ofl/bitter/Bitter[wght].ttf +0 -0
  39. package/src/assets/fonts/google-ofl/bitter/DESCRIPTION.en_us.html +0 -26
  40. package/src/assets/fonts/google-ofl/bitter/METADATA.pb +0 -52
  41. package/src/assets/fonts/google-ofl/bitter/OFL.txt +0 -94
  42. package/src/assets/fonts/google-ofl/bricolagegrotesque/BricolageGrotesque[opsz,wdth,wght].ttf +0 -0
  43. package/src/assets/fonts/google-ofl/bricolagegrotesque/DESCRIPTION.en_us.html +0 -5
  44. package/src/assets/fonts/google-ofl/bricolagegrotesque/METADATA.pb +0 -50
  45. package/src/assets/fonts/google-ofl/bricolagegrotesque/OFL.txt +0 -93
  46. package/src/assets/fonts/google-ofl/cabin/Cabin[wdth,wght].ttf +0 -0
  47. package/src/assets/fonts/google-ofl/cabin/DESCRIPTION.en_us.html +0 -16
  48. package/src/assets/fonts/google-ofl/cabin/METADATA.pb +0 -40
  49. package/src/assets/fonts/google-ofl/cabin/OFL.txt +0 -93
  50. package/src/assets/fonts/google-ofl/cairo/Cairo[slnt,wght].ttf +0 -0
  51. package/src/assets/fonts/google-ofl/cairo/DESCRIPTION.en_us.html +0 -13
  52. package/src/assets/fonts/google-ofl/cairo/METADATA.pb +0 -44
  53. package/src/assets/fonts/google-ofl/cairo/OFL.txt +0 -93
  54. package/src/assets/fonts/google-ofl/caveat/Caveat[wght].ttf +0 -0
  55. package/src/assets/fonts/google-ofl/caveat/DESCRIPTION.en_us.html +0 -15
  56. package/src/assets/fonts/google-ofl/caveat/METADATA.pb +0 -44
  57. package/src/assets/fonts/google-ofl/caveat/OFL.txt +0 -93
  58. package/src/assets/fonts/google-ofl/comfortaa/Comfortaa[wght].ttf +0 -0
  59. package/src/assets/fonts/google-ofl/comfortaa/DESCRIPTION.en_us.html +0 -1
  60. package/src/assets/fonts/google-ofl/comfortaa/METADATA.pb +0 -31
  61. package/src/assets/fonts/google-ofl/comfortaa/OFL.txt +0 -93
  62. package/src/assets/fonts/google-ofl/cormorantgaramond/CormorantGaramond[wght].ttf +0 -0
  63. package/src/assets/fonts/google-ofl/cormorantgaramond/DESCRIPTION.en_us.html +0 -4
  64. package/src/assets/fonts/google-ofl/cormorantgaramond/METADATA.pb +0 -52
  65. package/src/assets/fonts/google-ofl/cormorantgaramond/OFL.txt +0 -93
  66. package/src/assets/fonts/google-ofl/dmsans/DESCRIPTION.en_us.html +0 -13
  67. package/src/assets/fonts/google-ofl/dmsans/DMSans[opsz,wght].ttf +0 -0
  68. package/src/assets/fonts/google-ofl/dmsans/METADATA.pb +0 -54
  69. package/src/assets/fonts/google-ofl/dmsans/OFL.txt +0 -93
  70. package/src/assets/fonts/google-ofl/dosis/DESCRIPTION.en_us.html +0 -3
  71. package/src/assets/fonts/google-ofl/dosis/Dosis[wght].ttf +0 -0
  72. package/src/assets/fonts/google-ofl/dosis/METADATA.pb +0 -39
  73. package/src/assets/fonts/google-ofl/dosis/OFL.txt +0 -93
  74. package/src/assets/fonts/google-ofl/ebgaramond/DESCRIPTION.en_us.html +0 -20
  75. package/src/assets/fonts/google-ofl/ebgaramond/EBGaramond[wght].ttf +0 -0
  76. package/src/assets/fonts/google-ofl/ebgaramond/METADATA.pb +0 -42
  77. package/src/assets/fonts/google-ofl/ebgaramond/OFL.txt +0 -93
  78. package/src/assets/fonts/google-ofl/exo2/DESCRIPTION.en_us.html +0 -5
  79. package/src/assets/fonts/google-ofl/exo2/Exo2[wght].ttf +0 -0
  80. package/src/assets/fonts/google-ofl/exo2/METADATA.pb +0 -52
  81. package/src/assets/fonts/google-ofl/exo2/OFL.txt +0 -93
  82. package/src/assets/fonts/google-ofl/firasans/DESCRIPTION.en_us.html +0 -11
  83. package/src/assets/fonts/google-ofl/firasans/FiraSans-Regular.ttf +0 -0
  84. package/src/assets/fonts/google-ofl/firasans/METADATA.pb +0 -178
  85. package/src/assets/fonts/google-ofl/firasans/OFL.txt +0 -93
  86. package/src/assets/fonts/google-ofl/fjallaone/DESCRIPTION.en_us.html +0 -8
  87. package/src/assets/fonts/google-ofl/fjallaone/FjallaOne-Regular.ttf +0 -0
  88. package/src/assets/fonts/google-ofl/fjallaone/METADATA.pb +0 -32
  89. package/src/assets/fonts/google-ofl/fjallaone/OFL.txt +0 -93
  90. package/src/assets/fonts/google-ofl/heebo/DESCRIPTION.en_us.html +0 -9
  91. package/src/assets/fonts/google-ofl/heebo/Heebo[wght].ttf +0 -0
  92. package/src/assets/fonts/google-ofl/heebo/METADATA.pb +0 -41
  93. package/src/assets/fonts/google-ofl/heebo/OFL.txt +0 -93
  94. package/src/assets/fonts/google-ofl/hind/DESCRIPTION.en_us.html +0 -28
  95. package/src/assets/fonts/google-ofl/hind/Hind-Regular.ttf +0 -0
  96. package/src/assets/fonts/google-ofl/hind/METADATA.pb +0 -58
  97. package/src/assets/fonts/google-ofl/hind/OFL.txt +0 -93
  98. package/src/assets/fonts/google-ofl/hindsiliguri/DESCRIPTION.en_us.html +0 -27
  99. package/src/assets/fonts/google-ofl/hindsiliguri/HindSiliguri-Regular.ttf +0 -0
  100. package/src/assets/fonts/google-ofl/hindsiliguri/METADATA.pb +0 -58
  101. package/src/assets/fonts/google-ofl/hindsiliguri/OFL.txt +0 -93
  102. package/src/assets/fonts/google-ofl/ibmplexsans/DESCRIPTION.en_us.html +0 -15
  103. package/src/assets/fonts/google-ofl/ibmplexsans/IBMPlexSans[wdth,wght].ttf +0 -0
  104. package/src/assets/fonts/google-ofl/ibmplexsans/METADATA.pb +0 -61
  105. package/src/assets/fonts/google-ofl/ibmplexsans/OFL.txt +0 -93
  106. package/src/assets/fonts/google-ofl/inconsolata/DESCRIPTION.en_us.html +0 -21
  107. package/src/assets/fonts/google-ofl/inconsolata/Inconsolata[wdth,wght].ttf +0 -0
  108. package/src/assets/fonts/google-ofl/inconsolata/METADATA.pb +0 -34
  109. package/src/assets/fonts/google-ofl/inconsolata/OFL.txt +0 -93
  110. package/src/assets/fonts/google-ofl/inter/DESCRIPTION.en_us.html +0 -14
  111. package/src/assets/fonts/google-ofl/inter/Inter[opsz,wght].ttf +0 -0
  112. package/src/assets/fonts/google-ofl/inter/METADATA.pb +0 -56
  113. package/src/assets/fonts/google-ofl/inter/OFL.txt +0 -93
  114. package/src/assets/fonts/google-ofl/intertight/DESCRIPTION.en_us.html +0 -4
  115. package/src/assets/fonts/google-ofl/intertight/InterTight[wght].ttf +0 -0
  116. package/src/assets/fonts/google-ofl/intertight/METADATA.pb +0 -56
  117. package/src/assets/fonts/google-ofl/intertight/OFL.txt +0 -93
  118. package/src/assets/fonts/google-ofl/jost/DESCRIPTION.en_us.html +0 -8
  119. package/src/assets/fonts/google-ofl/jost/Jost[wght].ttf +0 -0
  120. package/src/assets/fonts/google-ofl/jost/METADATA.pb +0 -46
  121. package/src/assets/fonts/google-ofl/jost/OFL.txt +0 -93
  122. package/src/assets/fonts/google-ofl/kanit/DESCRIPTION.en_us.html +0 -17
  123. package/src/assets/fonts/google-ofl/kanit/Kanit-Regular.ttf +0 -0
  124. package/src/assets/fonts/google-ofl/kanit/METADATA.pb +0 -177
  125. package/src/assets/fonts/google-ofl/kanit/OFL.txt +0 -93
  126. package/src/assets/fonts/google-ofl/lato/DESCRIPTION.en_us.html +0 -14
  127. package/src/assets/fonts/google-ofl/lato/Lato-Regular.ttf +0 -0
  128. package/src/assets/fonts/google-ofl/lato/METADATA.pb +0 -358
  129. package/src/assets/fonts/google-ofl/lato/OFL.txt +0 -93
  130. package/src/assets/fonts/google-ofl/lexend/DESCRIPTION.en_us.html +0 -27
  131. package/src/assets/fonts/google-ofl/lexend/Lexend[wght].ttf +0 -0
  132. package/src/assets/fonts/google-ofl/lexend/METADATA.pb +0 -38
  133. package/src/assets/fonts/google-ofl/lexend/OFL.txt +0 -93
  134. package/src/assets/fonts/google-ofl/librebaskerville/DESCRIPTION.en_us.html +0 -9
  135. package/src/assets/fonts/google-ofl/librebaskerville/LibreBaskerville[wght].ttf +0 -0
  136. package/src/assets/fonts/google-ofl/librebaskerville/METADATA.pb +0 -53
  137. package/src/assets/fonts/google-ofl/librebaskerville/OFL.txt +0 -93
  138. package/src/assets/fonts/google-ofl/librefranklin/DESCRIPTION.en_us.html +0 -7
  139. package/src/assets/fonts/google-ofl/librefranklin/LibreFranklin[wght].ttf +0 -0
  140. package/src/assets/fonts/google-ofl/librefranklin/METADATA.pb +0 -124
  141. package/src/assets/fonts/google-ofl/librefranklin/OFL.txt +0 -93
  142. package/src/assets/fonts/google-ofl/lobster/DESCRIPTION.en_us.html +0 -6
  143. package/src/assets/fonts/google-ofl/lobster/Lobster-Regular.ttf +0 -0
  144. package/src/assets/fonts/google-ofl/lobster/METADATA.pb +0 -25
  145. package/src/assets/fonts/google-ofl/lobster/OFL.txt +0 -93
  146. package/src/assets/fonts/google-ofl/lobstertwo/DESCRIPTION.en_us.html +0 -1
  147. package/src/assets/fonts/google-ofl/lobstertwo/LobsterTwo-Regular.ttf +0 -0
  148. package/src/assets/fonts/google-ofl/lobstertwo/METADATA.pb +0 -45
  149. package/src/assets/fonts/google-ofl/lobstertwo/OFL.txt +0 -95
  150. package/src/assets/fonts/google-ofl/lora/DESCRIPTION.en_us.html +0 -5
  151. package/src/assets/fonts/google-ofl/lora/Lora[wght].ttf +0 -0
  152. package/src/assets/fonts/google-ofl/lora/METADATA.pb +0 -55
  153. package/src/assets/fonts/google-ofl/lora/OFL.txt +0 -93
  154. package/src/assets/fonts/google-ofl/manrope/DESCRIPTION.en_us.html +0 -3
  155. package/src/assets/fonts/google-ofl/manrope/METADATA.pb +0 -29
  156. package/src/assets/fonts/google-ofl/manrope/Manrope[wght].ttf +0 -0
  157. package/src/assets/fonts/google-ofl/manrope/OFL.txt +0 -93
  158. package/src/assets/fonts/google-ofl/merriweather/DESCRIPTION.en_us.html +0 -11
  159. package/src/assets/fonts/google-ofl/merriweather/METADATA.pb +0 -291
  160. package/src/assets/fonts/google-ofl/merriweather/Merriweather[opsz,wdth,wght].ttf +0 -0
  161. package/src/assets/fonts/google-ofl/merriweather/OFL.txt +0 -93
  162. package/src/assets/fonts/google-ofl/montserrat/DESCRIPTION.en_us.html +0 -19
  163. package/src/assets/fonts/google-ofl/montserrat/METADATA.pb +0 -376
  164. package/src/assets/fonts/google-ofl/montserrat/Montserrat[wght].ttf +0 -0
  165. package/src/assets/fonts/google-ofl/montserrat/OFL.txt +0 -93
  166. package/src/assets/fonts/google-ofl/mplusrounded1c/METADATA.pb +0 -78
  167. package/src/assets/fonts/google-ofl/mplusrounded1c/MPLUSRounded1c-Regular.ttf +0 -0
  168. package/src/assets/fonts/google-ofl/mukta/DESCRIPTION.en_us.html +0 -20
  169. package/src/assets/fonts/google-ofl/mukta/METADATA.pb +0 -73
  170. package/src/assets/fonts/google-ofl/mukta/Mukta-Regular.ttf +0 -0
  171. package/src/assets/fonts/google-ofl/mukta/OFL.txt +0 -93
  172. package/src/assets/fonts/google-ofl/mulish/DESCRIPTION.en_us.html +0 -11
  173. package/src/assets/fonts/google-ofl/mulish/METADATA.pb +0 -56
  174. package/src/assets/fonts/google-ofl/mulish/Mulish[wght].ttf +0 -0
  175. package/src/assets/fonts/google-ofl/mulish/OFL.txt +0 -93
  176. package/src/assets/fonts/google-ofl/nanumgothic/DESCRIPTION.en_us.html +0 -5
  177. package/src/assets/fonts/google-ofl/nanumgothic/METADATA.pb +0 -36
  178. package/src/assets/fonts/google-ofl/nanumgothic/NanumGothic-Regular.ttf +0 -0
  179. package/src/assets/fonts/google-ofl/nanumgothic/OFL.txt +0 -96
  180. package/src/assets/fonts/google-ofl/notocoloremoji/DESCRIPTION.en_us.html +0 -10
  181. package/src/assets/fonts/google-ofl/notocoloremoji/METADATA.pb +0 -71
  182. package/src/assets/fonts/google-ofl/notocoloremoji/OFL.txt +0 -87
  183. package/src/assets/fonts/google-ofl/notosans/DESCRIPTION.en_us.html +0 -13
  184. package/src/assets/fonts/google-ofl/notosans/METADATA.pb +0 -924
  185. package/src/assets/fonts/google-ofl/notosans/NotoSans[wdth,wght].ttf +0 -0
  186. package/src/assets/fonts/google-ofl/notosans/OFL.txt +0 -93
  187. package/src/assets/fonts/google-ofl/notosansjp/DESCRIPTION.en_us.html +0 -7
  188. package/src/assets/fonts/google-ofl/notosansjp/METADATA.pb +0 -34
  189. package/src/assets/fonts/google-ofl/notosansjp/OFL.txt +0 -93
  190. package/src/assets/fonts/google-ofl/notosanskr/DESCRIPTION.en_us.html +0 -6
  191. package/src/assets/fonts/google-ofl/notosanskr/METADATA.pb +0 -29
  192. package/src/assets/fonts/google-ofl/notosanskr/OFL.txt +0 -93
  193. package/src/assets/fonts/google-ofl/notosanssc/DESCRIPTION.en_us.html +0 -8
  194. package/src/assets/fonts/google-ofl/notosanssc/METADATA.pb +0 -39
  195. package/src/assets/fonts/google-ofl/notosanssc/OFL.txt +0 -93
  196. package/src/assets/fonts/google-ofl/notosanstc/DESCRIPTION.en_us.html +0 -8
  197. package/src/assets/fonts/google-ofl/notosanstc/METADATA.pb +0 -39
  198. package/src/assets/fonts/google-ofl/notosanstc/OFL.txt +0 -93
  199. package/src/assets/fonts/google-ofl/notosanstelugu/DESCRIPTION.en_us.html +0 -6
  200. package/src/assets/fonts/google-ofl/notosanstelugu/METADATA.pb +0 -57
  201. package/src/assets/fonts/google-ofl/notosanstelugu/NotoSansTelugu[wdth,wght].ttf +0 -0
  202. package/src/assets/fonts/google-ofl/notosanstelugu/OFL.txt +0 -93
  203. package/src/assets/fonts/google-ofl/notoserif/DESCRIPTION.en_us.html +0 -7
  204. package/src/assets/fonts/google-ofl/notoserif/METADATA.pb +0 -845
  205. package/src/assets/fonts/google-ofl/notoserif/NotoSerif[wdth,wght].ttf +0 -0
  206. package/src/assets/fonts/google-ofl/notoserif/OFL.txt +0 -93
  207. package/src/assets/fonts/google-ofl/notoserifjp/DESCRIPTION.en_us.html +0 -7
  208. package/src/assets/fonts/google-ofl/notoserifjp/METADATA.pb +0 -43
  209. package/src/assets/fonts/google-ofl/notoserifjp/OFL.txt +0 -94
  210. package/src/assets/fonts/google-ofl/nunito/DESCRIPTION.en_us.html +0 -9
  211. package/src/assets/fonts/google-ofl/nunito/METADATA.pb +0 -52
  212. package/src/assets/fonts/google-ofl/nunito/Nunito[wght].ttf +0 -0
  213. package/src/assets/fonts/google-ofl/nunito/OFL.txt +0 -93
  214. package/src/assets/fonts/google-ofl/nunitosans/DESCRIPTION.en_us.html +0 -9
  215. package/src/assets/fonts/google-ofl/nunitosans/METADATA.pb +0 -71
  216. package/src/assets/fonts/google-ofl/nunitosans/NunitoSans[YTLC,opsz,wdth,wght].ttf +0 -0
  217. package/src/assets/fonts/google-ofl/nunitosans/OFL.txt +0 -93
  218. package/src/assets/fonts/google-ofl/opensans/DESCRIPTION.en_us.html +0 -12
  219. package/src/assets/fonts/google-ofl/opensans/METADATA.pb +0 -291
  220. package/src/assets/fonts/google-ofl/opensans/OFL.txt +0 -92
  221. package/src/assets/fonts/google-ofl/opensans/OpenSans[wdth,wght].ttf +0 -0
  222. package/src/assets/fonts/google-ofl/oswald/DESCRIPTION.en_us.html +0 -15
  223. package/src/assets/fonts/google-ofl/oswald/METADATA.pb +0 -255
  224. package/src/assets/fonts/google-ofl/oswald/OFL.txt +0 -93
  225. package/src/assets/fonts/google-ofl/oswald/Oswald[wght].ttf +0 -0
  226. package/src/assets/fonts/google-ofl/playfairdisplay/DESCRIPTION.en_us.html +0 -19
  227. package/src/assets/fonts/google-ofl/playfairdisplay/METADATA.pb +0 -40
  228. package/src/assets/fonts/google-ofl/playfairdisplay/OFL.txt +0 -93
  229. package/src/assets/fonts/google-ofl/playfairdisplay/PlayfairDisplay[wght].ttf +0 -0
  230. package/src/assets/fonts/google-ofl/plusjakartasans/DESCRIPTION.en_us.html +0 -30
  231. package/src/assets/fonts/google-ofl/plusjakartasans/METADATA.pb +0 -51
  232. package/src/assets/fonts/google-ofl/plusjakartasans/OFL.txt +0 -93
  233. package/src/assets/fonts/google-ofl/plusjakartasans/PlusJakartaSans[wght].ttf +0 -0
  234. package/src/assets/fonts/google-ofl/poppins/DESCRIPTION.en_us.html +0 -21
  235. package/src/assets/fonts/google-ofl/poppins/METADATA.pb +0 -176
  236. package/src/assets/fonts/google-ofl/poppins/OFL.txt +0 -93
  237. package/src/assets/fonts/google-ofl/poppins/Poppins-Regular.ttf +0 -0
  238. package/src/assets/fonts/google-ofl/prompt/DESCRIPTION.en_us.html +0 -15
  239. package/src/assets/fonts/google-ofl/prompt/METADATA.pb +0 -173
  240. package/src/assets/fonts/google-ofl/prompt/OFL.txt +0 -93
  241. package/src/assets/fonts/google-ofl/prompt/Prompt-Regular.ttf +0 -0
  242. package/src/assets/fonts/google-ofl/ptsans/DESCRIPTION.en_us.html +0 -1
  243. package/src/assets/fonts/google-ofl/ptsans/METADATA.pb +0 -46
  244. package/src/assets/fonts/google-ofl/ptsans/OFL.txt +0 -93
  245. package/src/assets/fonts/google-ofl/ptsans/PT_Sans-Web-Regular.ttf +0 -0
  246. package/src/assets/fonts/google-ofl/ptsansnarrow/DESCRIPTION.en_us.html +0 -1
  247. package/src/assets/fonts/google-ofl/ptsansnarrow/METADATA.pb +0 -28
  248. package/src/assets/fonts/google-ofl/ptsansnarrow/OFL.txt +0 -93
  249. package/src/assets/fonts/google-ofl/ptsansnarrow/PT_Sans-Narrow-Web-Regular.ttf +0 -0
  250. package/src/assets/fonts/google-ofl/ptserif/DESCRIPTION.en_us.html +0 -1
  251. package/src/assets/fonts/google-ofl/ptserif/METADATA.pb +0 -46
  252. package/src/assets/fonts/google-ofl/ptserif/OFL.txt +0 -93
  253. package/src/assets/fonts/google-ofl/ptserif/PT_Serif-Web-Regular.ttf +0 -0
  254. package/src/assets/fonts/google-ofl/quicksand/DESCRIPTION.en_us.html +0 -8
  255. package/src/assets/fonts/google-ofl/quicksand/METADATA.pb +0 -31
  256. package/src/assets/fonts/google-ofl/quicksand/OFL.txt +0 -93
  257. package/src/assets/fonts/google-ofl/quicksand/Quicksand[wght].ttf +0 -0
  258. package/src/assets/fonts/google-ofl/raleway/DESCRIPTION.en_us.html +0 -17
  259. package/src/assets/fonts/google-ofl/raleway/METADATA.pb +0 -38
  260. package/src/assets/fonts/google-ofl/raleway/OFL.txt +0 -93
  261. package/src/assets/fonts/google-ofl/raleway/Raleway[wght].ttf +0 -0
  262. package/src/assets/fonts/google-ofl/ramabhadra/DESCRIPTION.en_us.html +0 -12
  263. package/src/assets/fonts/google-ofl/ramabhadra/METADATA.pb +0 -18
  264. package/src/assets/fonts/google-ofl/ramabhadra/OFL.txt +0 -93
  265. package/src/assets/fonts/google-ofl/ramabhadra/Ramabhadra-Regular.ttf +0 -0
  266. package/src/assets/fonts/google-ofl/roboto/DESCRIPTION.en_us.html +0 -16
  267. package/src/assets/fonts/google-ofl/roboto/METADATA.pb +0 -57
  268. package/src/assets/fonts/google-ofl/roboto/OFL.txt +0 -93
  269. package/src/assets/fonts/google-ofl/roboto/Roboto[wdth,wght].ttf +0 -0
  270. package/src/assets/fonts/google-ofl/robotocondensed/DESCRIPTION.en_us.html +0 -7
  271. package/src/assets/fonts/google-ofl/robotocondensed/METADATA.pb +0 -49
  272. package/src/assets/fonts/google-ofl/robotocondensed/OFL.txt +0 -93
  273. package/src/assets/fonts/google-ofl/robotocondensed/RobotoCondensed[wght].ttf +0 -0
  274. package/src/assets/fonts/google-ofl/robotoflex/DESCRIPTION.en_us.html +0 -29
  275. package/src/assets/fonts/google-ofl/robotoflex/METADATA.pb +0 -125
  276. package/src/assets/fonts/google-ofl/robotoflex/OFL.txt +0 -93
  277. package/src/assets/fonts/google-ofl/robotoflex/RobotoFlex[GRAD,XOPQ,XTRA,YOPQ,YTAS,YTDE,YTFI,YTLC,YTUC,opsz,slnt,wdth,wght].ttf +0 -0
  278. package/src/assets/fonts/google-ofl/robotomono/DESCRIPTION.en_us.html +0 -17
  279. package/src/assets/fonts/google-ofl/robotomono/METADATA.pb +0 -53
  280. package/src/assets/fonts/google-ofl/robotomono/OFL.txt +0 -93
  281. package/src/assets/fonts/google-ofl/robotomono/RobotoMono[wght].ttf +0 -0
  282. package/src/assets/fonts/google-ofl/rubik/DESCRIPTION.en_us.html +0 -14
  283. package/src/assets/fonts/google-ofl/rubik/METADATA.pb +0 -53
  284. package/src/assets/fonts/google-ofl/rubik/OFL.txt +0 -93
  285. package/src/assets/fonts/google-ofl/rubik/Rubik[wght].ttf +0 -0
  286. package/src/assets/fonts/google-ofl/saira/DESCRIPTION.en_us.html +0 -18
  287. package/src/assets/fonts/google-ofl/saira/METADATA.pb +0 -57
  288. package/src/assets/fonts/google-ofl/saira/OFL.txt +0 -94
  289. package/src/assets/fonts/google-ofl/saira/Saira[wdth,wght].ttf +0 -0
  290. package/src/assets/fonts/google-ofl/schibstedgrotesk/DESCRIPTION.en_us.html +0 -5
  291. package/src/assets/fonts/google-ofl/schibstedgrotesk/METADATA.pb +0 -49
  292. package/src/assets/fonts/google-ofl/schibstedgrotesk/OFL.txt +0 -93
  293. package/src/assets/fonts/google-ofl/schibstedgrotesk/SchibstedGrotesk[wght].ttf +0 -0
  294. package/src/assets/fonts/google-ofl/sourcecodepro/DESCRIPTION.en_us.html +0 -8
  295. package/src/assets/fonts/google-ofl/sourcecodepro/METADATA.pb +0 -40
  296. package/src/assets/fonts/google-ofl/sourcecodepro/OFL.txt +0 -93
  297. package/src/assets/fonts/google-ofl/sourcecodepro/SourceCodePro[wght].ttf +0 -0
  298. package/src/assets/fonts/google-ofl/sourcesans3/DESCRIPTION.en_us.html +0 -3
  299. package/src/assets/fonts/google-ofl/sourcesans3/METADATA.pb +0 -36
  300. package/src/assets/fonts/google-ofl/sourcesans3/OFL.txt +0 -93
  301. package/src/assets/fonts/google-ofl/sourcesans3/SourceSans3[wght].ttf +0 -0
  302. package/src/assets/fonts/google-ofl/spacegrotesk/DESCRIPTION.en_us.html +0 -12
  303. package/src/assets/fonts/google-ofl/spacegrotesk/METADATA.pb +0 -56
  304. package/src/assets/fonts/google-ofl/spacegrotesk/OFL.txt +0 -93
  305. package/src/assets/fonts/google-ofl/spacegrotesk/SpaceGrotesk[wght].ttf +0 -0
  306. package/src/assets/fonts/google-ofl/worksans/DESCRIPTION.en_us.html +0 -22
  307. package/src/assets/fonts/google-ofl/worksans/METADATA.pb +0 -50
  308. package/src/assets/fonts/google-ofl/worksans/OFL.txt +0 -93
  309. package/src/assets/fonts/google-ofl/worksans/WorkSans[wght].ttf +0 -0
  310. package/src/assets/fonts/hack/Hack-Bold.ttf +0 -0
  311. package/src/assets/fonts/hack/Hack-BoldItalic.ttf +0 -0
  312. package/src/assets/fonts/hack/Hack-Italic.ttf +0 -0
  313. package/src/assets/fonts/hack/Hack-Regular.ttf +0 -0
  314. package/src/assets/fonts/ibm-plex/IBMPlexMono-Bold.ttf +0 -0
  315. package/src/assets/fonts/ibm-plex/IBMPlexMono-BoldItalic.ttf +0 -0
  316. package/src/assets/fonts/ibm-plex/IBMPlexMono-Italic.ttf +0 -0
  317. package/src/assets/fonts/ibm-plex/IBMPlexMono-Regular.ttf +0 -0
  318. package/src/assets/fonts/ibm-plex/IBMPlexSans-Bold.ttf +0 -0
  319. package/src/assets/fonts/ibm-plex/IBMPlexSans-BoldItalic.ttf +0 -0
  320. package/src/assets/fonts/ibm-plex/IBMPlexSans-Italic.ttf +0 -0
  321. package/src/assets/fonts/ibm-plex/IBMPlexSans-Regular.ttf +0 -0
  322. package/src/assets/fonts/ibm-plex/IBMPlexSansCondensed-Bold.ttf +0 -0
  323. package/src/assets/fonts/ibm-plex/IBMPlexSansCondensed-Regular.ttf +0 -0
  324. package/src/assets/fonts/ibm-plex/IBMPlexSerif-Bold.ttf +0 -0
  325. package/src/assets/fonts/ibm-plex/IBMPlexSerif-BoldItalic.ttf +0 -0
  326. package/src/assets/fonts/ibm-plex/IBMPlexSerif-Italic.ttf +0 -0
  327. package/src/assets/fonts/ibm-plex/IBMPlexSerif-Regular.ttf +0 -0
  328. package/src/assets/fonts/liberation/LiberationMono-Bold.ttf +0 -0
  329. package/src/assets/fonts/liberation/LiberationMono-BoldItalic.ttf +0 -0
  330. package/src/assets/fonts/liberation/LiberationMono-Italic.ttf +0 -0
  331. package/src/assets/fonts/liberation/LiberationMono-Regular.ttf +0 -0
  332. package/src/assets/fonts/liberation/LiberationSans-Bold.ttf +0 -0
  333. package/src/assets/fonts/liberation/LiberationSans-BoldItalic.ttf +0 -0
  334. package/src/assets/fonts/liberation/LiberationSans-Italic.ttf +0 -0
  335. package/src/assets/fonts/liberation/LiberationSans-Regular.ttf +0 -0
  336. package/src/assets/fonts/liberation/LiberationSerif-Bold.ttf +0 -0
  337. package/src/assets/fonts/liberation/LiberationSerif-BoldItalic.ttf +0 -0
  338. package/src/assets/fonts/liberation/LiberationSerif-Italic.ttf +0 -0
  339. package/src/assets/fonts/liberation/LiberationSerif-Regular.ttf +0 -0
  340. package/src/assets/fonts/libre-barcode/LibreBarcodeEAN13Text-Regular.ttf +0 -0
  341. package/src/assets/fonts/noto/NotoSans-Bold.ttf +0 -0
  342. package/src/assets/fonts/noto/NotoSans-BoldItalic.ttf +0 -0
  343. package/src/assets/fonts/noto/NotoSans-Italic.ttf +0 -0
  344. package/src/assets/fonts/noto/NotoSans-Regular.ttf +0 -0
  345. package/src/assets/fonts/noto/NotoSansDisplay-Regular.ttf +0 -0
  346. package/src/assets/fonts/noto/NotoSansMono-Bold.ttf +0 -0
  347. package/src/assets/fonts/noto/NotoSansMono-Regular.ttf +0 -0
  348. package/src/assets/fonts/noto/NotoSerif-Bold.ttf +0 -0
  349. package/src/assets/fonts/noto/NotoSerif-BoldItalic.ttf +0 -0
  350. package/src/assets/fonts/noto/NotoSerif-Italic.ttf +0 -0
  351. package/src/assets/fonts/noto/NotoSerif-Regular.ttf +0 -0
  352. package/src/assets/fonts/noto/NotoSerifDisplay-Regular.ttf +0 -0
  353. package/src/assets/fonts/ubuntu/Ubuntu-B.ttf +0 -0
  354. package/src/assets/fonts/ubuntu/Ubuntu-BI.ttf +0 -0
  355. package/src/assets/fonts/ubuntu/Ubuntu-C.ttf +0 -0
  356. package/src/assets/fonts/ubuntu/Ubuntu-L.ttf +0 -0
  357. package/src/assets/fonts/ubuntu/Ubuntu-LI.ttf +0 -0
  358. package/src/assets/fonts/ubuntu/Ubuntu-M.ttf +0 -0
  359. package/src/assets/fonts/ubuntu/Ubuntu-MI.ttf +0 -0
  360. package/src/assets/fonts/ubuntu/Ubuntu-R.ttf +0 -0
  361. package/src/assets/fonts/ubuntu/Ubuntu-RI.ttf +0 -0
  362. package/src/assets/fonts/ubuntu/Ubuntu-Th.ttf +0 -0
  363. package/src/assets/fonts/ubuntu/UbuntuMono-B.ttf +0 -0
  364. package/src/assets/fonts/ubuntu/UbuntuMono-BI.ttf +0 -0
  365. package/src/assets/fonts/ubuntu/UbuntuMono-R.ttf +0 -0
  366. package/src/assets/fonts/ubuntu/UbuntuMono-RI.ttf +0 -0
@@ -1 +1 @@
1
- .pmi-label-root{position:absolute;inset:0;pointer-events:none;z-index:5;overflow:hidden;contain:layout paint size;max-width:100%;max-height:100%}.pmi-label{position:absolute;transform:translate(-50%,-50%);background:#111827eb;color:#fff;border:1px solid #111827;border-radius:6px;padding:2px 8px;font-size:14px;font-weight:700;pointer-events:auto;cursor:grab;user-select:none;line-height:1.2;box-shadow:0 2px 6px #00000059;white-space:pre-wrap;word-break:break-word;text-align:left;width:max-content}.pmi-label[data-anchor-position="Left Top"]{transform:translate(-100%);text-align:right}.pmi-label[data-anchor-position="Left Middle"]{transform:translate(-100%,-50%);text-align:right}.pmi-label[data-anchor-position="Left Bottom"]{transform:translate(-100%,-100%);text-align:right}.pmi-label[data-anchor-position="Right Top"]{transform:translate(0);text-align:left}.pmi-label[data-anchor-position="Right Middle"]{transform:translateY(-50%);text-align:left}.pmi-label[data-anchor-position="Right Bottom"]{transform:translateY(-100%);text-align:left}.pmi-label:active{cursor:grabbing}.pmi-label-edit{font-size:14px;font-weight:700;text-align:left;outline:2px solid #3b82f6;background:#111827f2;color:#fff;border:1px solid #374151;border-radius:6px;padding:2px 8px;box-shadow:0 2px 8px #00000080}.pmi-label.constraint-label{background:#0f1117eb;border:1px solid rgba(110,168,254,.45);border-radius:8px;padding:4px 8px;color:#e6f1ff;font-size:12px;font-weight:600;letter-spacing:.02em;pointer-events:auto;cursor:pointer;box-shadow:0 6px 14px #00000059;white-space:nowrap;user-select:none}.pmi-label.constraint-label:hover{background:#11141bf5;border-color:#6ea8fecc}.constraints-history{--bg: #0f1117;--bg-elev: #12141b;--border: #262b36;--text: #e6e6e6;--muted: #9aa4b2;--accent: #6ea8fe;--focus: #3b82f6;--danger: #ef4444;--input-bg: #0b0e14;color-scheme:dark;color:var(--text);background:var(--bg-elev);border:1px solid var(--border);border-radius:12px;padding:3px;box-shadow:0 6px 24px #00000059;max-width:100%;display:flex;flex-direction:column;gap:4px}.constraints-history .accordion{display:flex;flex-direction:column;gap:4px}.constraints-history .constraints-control-panel{display:flex;flex-direction:column;gap:8px;padding:8px 8px 0}.constraints-history .control-panel-section{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:linear-gradient(180deg,#ffffff08,#ffffff04)}.constraints-history .solver-controls{flex-direction:column;align-items:stretch;gap:10px}.constraints-history .solver-row{display:flex;align-items:center;gap:10px;width:100%}.constraints-history .solver-row-main{justify-content:space-between;gap:16px}.constraints-history .solver-button-group{display:inline-flex;gap:8px;flex-shrink:0}.constraints-history .solver-row-status{justify-content:space-between;flex-wrap:wrap;font-size:12px;color:var(--muted);gap:12px}.constraints-history .solver-row-animate{justify-content:space-between;flex-wrap:wrap;gap:12px}.constraints-history .solver-status-label{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:var(--text)}.constraints-history .solver-status-label:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--muted);box-shadow:0 0 6px #0006}.constraints-history .solver-status-label[data-state=running]:before{background:#22c55e}.constraints-history .solver-status-label[data-state=paused]:before{background:#facc15}.constraints-history .solver-status-label[data-state=stopping]:before{background:#f97316}.constraints-history .solver-status-label[data-state=stopped]:before{background:var(--danger)}.constraints-history .solver-status-label[data-state=completed]:before{background:var(--accent)}.constraints-history .solver-loop-label,.constraints-history .solver-constraint-label{color:var(--muted);font-weight:500}.constraints-history .solver-animate-delay{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);flex-wrap:wrap}.constraints-history .solver-animate-delay input{appearance:none;border:1px solid var(--border);border-radius:8px;padding:4px 8px;background:var(--input-bg);color:var(--text);width:5em;font-size:13px}.constraints-history .solver-animate-delay input:focus{outline:none;border-color:var(--focus);box-shadow:0 0 0 3px #3b82f626}.constraints-history .solver-row-pause{justify-content:space-between}.constraints-history .solver-start-btn,.constraints-history .solver-stop-btn,.constraints-history .solver-continue-btn{appearance:none;border:1px solid var(--border);background:#ffffff0a;color:var(--text);border-radius:8px;padding:8px 14px;font-weight:600;cursor:pointer;transition:border-color .15s ease,background-color .15s ease,transform .05s ease}.constraints-history .solver-start-btn:hover,.constraints-history .solver-continue-btn:hover{border-color:var(--focus);background:#3b82f626}.constraints-history .solver-stop-btn{border-color:#ef444499;background:#ef444413}.constraints-history .solver-stop-btn:hover{border-color:var(--danger);background:#ef44442e}.constraints-history .solver-start-btn:active,.constraints-history .solver-stop-btn:active,.constraints-history .solver-continue-btn:active{transform:translateY(1px)}.constraints-history .solver-start-btn:disabled,.constraints-history .solver-stop-btn:disabled,.constraints-history .solver-continue-btn:disabled{opacity:.6;cursor:default;transform:none}.constraints-history .solver-continue-btn{margin-left:auto}.constraints-history .delay-controls{justify-content:space-between}.constraints-history .solver-iterations{display:flex;flex-direction:column;gap:4px;flex:1;font-size:12px;color:var(--muted)}.constraints-history .solver-iterations-label{text-transform:uppercase;letter-spacing:.04em}.constraints-history .solver-iterations input{appearance:none;border:1px solid var(--border);border-radius:8px;padding:6px 10px;background:var(--input-bg);color:var(--text);font-size:14px}.constraints-history .solver-iterations input:focus{outline:none;border-color:var(--focus);box-shadow:0 0 0 3px #3b82f626}.constraints-history .toggle-control{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:13px;color:var(--text);user-select:none}.constraints-history .toggle-control input{width:16px;height:16px;cursor:pointer;accent-color:var(--accent)}.constraints-history .toggle-control span{color:var(--muted)}.constraints-history .update-components-btn{appearance:none;border:1px solid var(--border);background:linear-gradient(180deg,#ffffff08,#ffffff05);color:var(--text);border-radius:8px;padding:8px 16px;font-size:13px;font-weight:600;width:100%;text-align:center;align-self:stretch;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .05s ease}.constraints-history .update-components-btn:hover{border-color:var(--focus);box-shadow:0 0 0 3px #3b82f61f}.constraints-history .update-components-btn:active{transform:translateY(1px)}.constraints-history .update-components-btn:disabled{opacity:.6;cursor:default;box-shadow:none}.constraints-history .update-components-btn.needs-update{background:linear-gradient(180deg,#6ea8fe40,#3b82f633);border-color:#6ea8feb3;color:#0b1220;box-shadow:0 0 12px #3b82f673}.constraints-history .update-components-btn.needs-update:hover{border-color:#3b82f6f2;box-shadow:0 0 16px #3b82f699;transform:none}.constraints-history .add-menu{position:absolute;bottom:48px;width:100%;background:var(--bg);border:1px solid var(--border);border-radius:10px;box-shadow:0 10px 30px #00000073;padding:6px;z-index:6}.constraints-history .menu-item{appearance:none;width:100%;text-align:left;background:transparent;color:var(--text);border:0;border-radius:8px;padding:8px 10px;cursor:pointer;transition:background-color .12s ease,color .12s ease}.constraints-history .menu-item:hover{background:#6ea8fe1f;color:#fff}.constraints-history .menu-empty{padding:10px;color:var(--muted)}:root{color-scheme:dark}html,body{margin:0;height:100%;background:#0b0f16;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:10px;overflow:hidden}*{box-sizing:border-box;padding:0;margin:0}#viewport{display:block;width:100%;height:100%;overflow:hidden}.app-sidebar{width:300px;max-height:100%;overflow-y:auto;position:absolute;top:0;left:0;padding:5px;z-index:6}.cad-sidebar-home-banner{width:100%;min-height:41px;height:41px;max-height:41px;margin:0 0 6px;padding:0 8px;display:flex;align-items:center;justify-content:flex-start;border:1px solid #262b36;border-radius:8px;background:#14181eeb;cursor:pointer;overflow:hidden;transition:border-color .12s ease,filter .12s ease,transform .08s ease}.cad-sidebar-home-banner:hover{border-color:#6ea8fe;filter:brightness(1.03)}.cad-sidebar-home-banner:active{transform:translateY(1px)}.cad-sidebar-home-banner:focus-visible{outline:2px solid rgba(110,168,254,.72);outline-offset:1px}.cad-sidebar-home-banner-img{display:block;width:100%;height:100%;max-width:100%;object-fit:contain;object-position:left center;pointer-events:none;user-select:none}
1
+ .pmi-label-root{position:absolute;inset:0;pointer-events:none;z-index:5;overflow:hidden;contain:layout paint size;max-width:100%;max-height:100%}.pmi-label{position:absolute;transform:translate(-50%,-50%);background:#111827eb;color:#fff;border:1px solid #111827;border-radius:6px;padding:2px 8px;font-size:14px;font-weight:700;pointer-events:auto;cursor:grab;user-select:none;line-height:1.2;box-shadow:0 2px 6px #00000059;white-space:pre-wrap;word-break:break-word;text-align:left;width:max-content}.pmi-label[data-anchor-position="Left Top"]{transform:translate(-100%);text-align:right}.pmi-label[data-anchor-position="Left Middle"]{transform:translate(-100%,-50%);text-align:right}.pmi-label[data-anchor-position="Left Bottom"]{transform:translate(-100%,-100%);text-align:right}.pmi-label[data-anchor-position="Right Top"]{transform:translate(0);text-align:left}.pmi-label[data-anchor-position="Right Middle"]{transform:translateY(-50%);text-align:left}.pmi-label[data-anchor-position="Right Bottom"]{transform:translateY(-100%);text-align:left}.pmi-label:active{cursor:grabbing}.pmi-label-edit{font-size:14px;font-weight:700;text-align:left;outline:2px solid #3b82f6;background:#111827f2;color:#fff;border:1px solid #374151;border-radius:6px;padding:2px 8px;box-shadow:0 2px 8px #00000080}.pmi-label.constraint-label{background:#0f1117eb;border:1px solid rgba(110,168,254,.45);border-radius:8px;padding:4px 8px;color:#e6f1ff;font-size:12px;font-weight:600;letter-spacing:.02em;pointer-events:auto;cursor:pointer;box-shadow:0 6px 14px #00000059;white-space:nowrap;user-select:none}.pmi-label.constraint-label:hover{background:#11141bf5;border-color:#6ea8fecc}.constraints-history{--bg: #0f1117;--bg-elev: #12141b;--border: #262b36;--text: #e6e6e6;--muted: #9aa4b2;--accent: #6ea8fe;--focus: #3b82f6;--danger: #ef4444;--input-bg: #0b0e14;color-scheme:dark;color:var(--text);background:var(--bg-elev);border:1px solid var(--border);border-radius:12px;padding:3px;box-shadow:0 6px 24px #00000059;max-width:100%;display:flex;flex-direction:column;gap:4px}.constraints-history .accordion{display:flex;flex-direction:column;gap:4px}.constraints-history .constraints-control-panel{display:flex;flex-direction:column;gap:8px;padding:8px 8px 0}.constraints-history .control-panel-section{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:linear-gradient(180deg,#ffffff08,#ffffff04)}.constraints-history .solver-controls{flex-direction:column;align-items:stretch;gap:10px}.constraints-history .solver-row{display:flex;align-items:center;gap:10px;width:100%}.constraints-history .solver-row-main{justify-content:space-between;gap:16px}.constraints-history .solver-button-group{display:inline-flex;gap:8px;flex-shrink:0}.constraints-history .solver-row-status{justify-content:space-between;flex-wrap:wrap;font-size:12px;color:var(--muted);gap:12px}.constraints-history .solver-row-animate{justify-content:space-between;flex-wrap:wrap;gap:12px}.constraints-history .solver-status-label{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:var(--text)}.constraints-history .solver-status-label:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--muted);box-shadow:0 0 6px #0006}.constraints-history .solver-status-label[data-state=running]:before{background:#22c55e}.constraints-history .solver-status-label[data-state=paused]:before{background:#facc15}.constraints-history .solver-status-label[data-state=stopping]:before{background:#f97316}.constraints-history .solver-status-label[data-state=stopped]:before{background:var(--danger)}.constraints-history .solver-status-label[data-state=completed]:before{background:var(--accent)}.constraints-history .solver-loop-label,.constraints-history .solver-constraint-label{color:var(--muted);font-weight:500}.constraints-history .solver-animate-delay{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);flex-wrap:wrap}.constraints-history .solver-animate-delay input{appearance:none;border:1px solid var(--border);border-radius:8px;padding:4px 8px;background:var(--input-bg);color:var(--text);width:5em;font-size:13px}.constraints-history .solver-animate-delay input:focus{outline:none;border-color:var(--focus);box-shadow:0 0 0 3px #3b82f626}.constraints-history .solver-row-pause{justify-content:space-between}.constraints-history .solver-start-btn,.constraints-history .solver-stop-btn,.constraints-history .solver-continue-btn{appearance:none;border:1px solid var(--border);background:#ffffff0a;color:var(--text);border-radius:8px;padding:8px 14px;font-weight:600;cursor:pointer;transition:border-color .15s ease,background-color .15s ease,transform .05s ease}.constraints-history .solver-start-btn:hover,.constraints-history .solver-continue-btn:hover{border-color:var(--focus);background:#3b82f626}.constraints-history .solver-stop-btn{border-color:#ef444499;background:#ef444413}.constraints-history .solver-stop-btn:hover{border-color:var(--danger);background:#ef44442e}.constraints-history .solver-start-btn:active,.constraints-history .solver-stop-btn:active,.constraints-history .solver-continue-btn:active{transform:translateY(1px)}.constraints-history .solver-start-btn:disabled,.constraints-history .solver-stop-btn:disabled,.constraints-history .solver-continue-btn:disabled{opacity:.6;cursor:default;transform:none}.constraints-history .solver-continue-btn{margin-left:auto}.constraints-history .delay-controls{justify-content:space-between}.constraints-history .solver-iterations{display:flex;flex-direction:column;gap:4px;flex:1;font-size:12px;color:var(--muted)}.constraints-history .solver-iterations-label{text-transform:uppercase;letter-spacing:.04em}.constraints-history .solver-iterations input{appearance:none;border:1px solid var(--border);border-radius:8px;padding:6px 10px;background:var(--input-bg);color:var(--text);font-size:14px}.constraints-history .solver-iterations input:focus{outline:none;border-color:var(--focus);box-shadow:0 0 0 3px #3b82f626}.constraints-history .toggle-control{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:13px;color:var(--text);user-select:none}.constraints-history .toggle-control input{width:16px;height:16px;cursor:pointer;accent-color:var(--accent)}.constraints-history .toggle-control span{color:var(--muted)}.constraints-history .update-components-btn{appearance:none;border:1px solid var(--border);background:linear-gradient(180deg,#ffffff08,#ffffff05);color:var(--text);border-radius:8px;padding:8px 16px;font-size:13px;font-weight:600;width:100%;text-align:center;align-self:stretch;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .05s ease}.constraints-history .update-components-btn:hover{border-color:var(--focus);box-shadow:0 0 0 3px #3b82f61f}.constraints-history .update-components-btn:active{transform:translateY(1px)}.constraints-history .update-components-btn:disabled{opacity:.6;cursor:default;box-shadow:none}.constraints-history .update-components-btn.needs-update{background:linear-gradient(180deg,#6ea8fe40,#3b82f633);border-color:#6ea8feb3;color:#0b1220;box-shadow:0 0 12px #3b82f673}.constraints-history .update-components-btn.needs-update:hover{border-color:#3b82f6f2;box-shadow:0 0 16px #3b82f699;transform:none}.constraints-history .add-menu{position:absolute;bottom:48px;width:100%;background:var(--bg);border:1px solid var(--border);border-radius:10px;box-shadow:0 10px 30px #00000073;padding:6px;z-index:6}.constraints-history .menu-item{appearance:none;width:100%;text-align:left;background:transparent;color:var(--text);border:0;border-radius:8px;padding:8px 10px;cursor:pointer;transition:background-color .12s ease,color .12s ease}.constraints-history .menu-item:hover{background:#6ea8fe1f;color:#fff}.constraints-history .menu-empty{padding:10px;color:var(--muted)}:root{color-scheme:dark}html,body{margin:0;height:100%;background:#0b0f16;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:10px;overflow:hidden}*{box-sizing:border-box;padding:0;margin:0}#viewport{display:block;width:100%;height:100%;overflow:hidden}.app-sidebar{width:300px;max-height:100%;overflow-y:auto;position:absolute;top:0;left:0;padding:5px;z-index:6}.cad-sidebar-home-banner{width:100%;min-height:41px;height:41px;max-height:41px;margin:0 0 6px;padding:0 8px;display:flex;align-items:center;justify-content:flex-start;border:1px solid #262b36;border-radius:8px;background:#14181eeb;cursor:pointer;overflow:hidden;transition:border-color .12s ease,filter .12s ease,transform .08s ease}.cad-sidebar-home-banner:hover{border-color:#6ea8fe;filter:brightness(1.03)}.cad-sidebar-home-banner:active{transform:translateY(1px)}.cad-sidebar-home-banner:focus-visible{outline:2px solid rgba(110,168,254,.72);outline-offset:1px}.cad-sidebar-home-banner-img{display:block;width:100%;height:100%;max-width:100%;pointer-events:none;user-select:none}.cad-sidebar-home-banner-img>svg{display:block;width:100%;height:100%;max-width:100%}