@ifc-lite/viewer 1.28.0 → 1.29.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 (509) hide show
  1. package/.turbo/turbo-build.log +38 -45
  2. package/CHANGELOG.md +66 -0
  3. package/dist/assets/{arrow-CXWhTnNT.js → arrow-fie-E7fe.js} +1 -1
  4. package/dist/assets/{basketViewActivator-BNRDNuUJ.js → basketViewActivator-BSRgF1Hw.js} +10 -10
  5. package/dist/assets/{bcf-DCwCuP7n.js → bcf-3uE1MvcT.js} +2 -2
  6. package/dist/assets/{cesium-CzZn5yVA.js → cesium-DezSO2mp.js} +658 -597
  7. package/dist/assets/{deflate-DNGgs8Ur.js → deflate-BLlUfw9-.js} +1 -1
  8. package/dist/assets/drawing-2d-CLn7Mtj8.js +257 -0
  9. package/dist/assets/{exporters-B9v81gi9.js → exporters-BL6UmxRa.js} +1724 -1533
  10. package/dist/assets/geometry.worker-DVwFYHTq.js +1 -0
  11. package/dist/assets/{geotiff-D-YCLS4g.js → geotiff-BydcIud8.js} +12 -12
  12. package/dist/assets/{ids-CCpq-5d3.js → ids-DFl74rTt.js} +6 -6
  13. package/dist/assets/{ifc-lite_bg-DbgS5EUA.wasm → ifc-lite_bg-FPffpFK_.wasm} +0 -0
  14. package/dist/assets/{index-Bgb3_Pu_.js → index-BNTlm2lP.js} +36770 -38098
  15. package/dist/assets/index-DpoJvkdg.css +1 -0
  16. package/dist/assets/{index.es-CWfqZyyr.js → index.es-Bk4nLsyS.js} +11 -11
  17. package/dist/assets/{jpeg-DGOAeUqU.js → jpeg-BvMO8-Tc.js} +1 -1
  18. package/dist/assets/{jspdf.es.min-XPLU2Wkq.js → jspdf.es.min-BZ_ed66E.js} +5 -5
  19. package/dist/assets/{lens-C4p1kQ0p.js → lens-DMnqMXpz.js} +1 -1
  20. package/dist/assets/{lerc-1PMSCHwX.js → lerc-CNnDpLpV.js} +1 -1
  21. package/dist/assets/{lzw-C65U9lNM.js → lzw-DBaPrGGZ.js} +1 -1
  22. package/dist/assets/{native-bridge-XxXos6yI.js → native-bridge-DFOoBvTg.js} +6 -3
  23. package/dist/assets/{packbits-BdMWXC3m.js → packbits-C7uyD2Bi.js} +1 -1
  24. package/dist/assets/{parser.worker-Ddwo3_06.js → parser.worker-U_PVhLNi.js} +3 -3
  25. package/dist/assets/{pdf-CRwaZf3s.js → pdf-DlqdjX9e.js} +12 -12
  26. package/dist/assets/raw-p_2cfl6T.js +1 -0
  27. package/dist/assets/{sandbox-0sDo3g3m.js → sandbox-0Z2NzeOJ.js} +3446 -2881
  28. package/dist/assets/{server-client-cTCJ-853.js → server-client-DUMy2mXg.js} +4 -4
  29. package/dist/assets/{three-CQBzFWY2.js → three-SQm7uqwa.js} +1 -1
  30. package/dist/assets/{webimage-BtakWX7W.js → webimage-zN-oCabb.js} +1 -1
  31. package/dist/assets/{xlsx-B1YOg2QB.js → xlsx-N2LbIR1G.js} +10 -10
  32. package/dist/assets/{zstd-CmwsbxmM.js → zstd-Jk3QKIeb.js} +1 -1
  33. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-Z2M4BF4E.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-35LM35A5.js} +2 -2
  34. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-I5NKQIWE.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-3R3BCVRR.js} +2 -2
  35. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-VCOHJNKB.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-44VKZ44M.js} +2 -2
  36. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-J6BM74AD.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-4LOVZYQ2.js} +2 -2
  37. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-LYLRYC4L.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-55KTRCCC.js} +2 -2
  38. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-Z4ERBZFB.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-5AJUPXGZ.js} +2 -2
  39. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-LBZ34MHQ.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-5EEMCPIO.js} +2 -2
  40. package/dist/cesium/node_modules/.pnpm/cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-5HZ2G332.js +26 -0
  41. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-5XHUDY37.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-6K4BWAPV.js} +1 -1
  42. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-FC6IYMYF.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-6LZUEMFX.js} +1 -1
  43. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-LOQDTQMX.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-6NPJZ3PS.js} +2 -2
  44. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-6WMLAJJP.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-A3K5FM7E.js} +2 -2
  45. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-FB7UV5BI.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-AP7AMWJA.js} +2 -2
  46. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-U3YGOX3C.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-AZCCS55A.js} +2 -2
  47. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-PPFUDJN4.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-BXPFAIYZ.js} +2 -2
  48. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-VXCJOT4W.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-C4NHPSO2.js} +2 -2
  49. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-DRBPXGI7.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-CJGWLCOV.js} +2 -2
  50. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-TSGIJVWH.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-E4MSZ45D.js} +2 -2
  51. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-XR7MN4PJ.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-FCRW2AGG.js} +2 -2
  52. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-2ZYB3DYT.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-FMWRN5G2.js} +2 -2
  53. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-5BC2Q3QW.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-FXWI4VL7.js} +2 -2
  54. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-XU6O4MRS.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-FYQCPFNB.js} +2 -2
  55. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-L7UE5MMF.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-G46AR6KP.js} +2 -2
  56. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-AXNBHUAG.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-GS4ZGDWD.js} +2 -2
  57. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-VXAZXMUX.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-GZABERXA.js} +2 -2
  58. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-EZSKHVA2.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-H6AHPUMX.js} +2 -2
  59. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-72KUXMWU.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-IPQQ2USK.js} +2 -2
  60. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-T3ZGSZKA.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-ITSDUOWL.js} +1 -1
  61. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-KG2GJUJT.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-J6WO2HA5.js} +1 -1
  62. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-IYRGNBSH.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-K3YIAZU7.js} +2 -2
  63. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-7NQYTTAU.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-K72DPWBT.js} +2 -2
  64. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-DC3K7YTH.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-LKQXJXNV.js} +1 -1
  65. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-MGPRMLLW.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-LTHJTGXC.js} +2 -2
  66. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-4M56RRIL.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-LUECBOIT.js} +2 -2
  67. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-236YIEYT.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-MUI5QV7K.js} +2 -2
  68. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-XEC656IT.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-OS2CBN2U.js} +2 -2
  69. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-IH7GXIUB.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-R5DFAOJG.js} +2 -2
  70. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-X4D5KUN5.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-R7QNYLFY.js} +2 -2
  71. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-WPD3MB6X.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-RH3WVPDR.js} +2 -2
  72. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-EYZUSGKM.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-RI3TXBVT.js} +2 -2
  73. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-ZY2KCIWI.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-RU2T2U4O.js} +2 -2
  74. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-XR53QRQS.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-SSYRCXAV.js} +2 -2
  75. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-TM6SYYHO.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-U4VWQPTS.js} +2 -2
  76. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-GXEQRH2R.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-UHTXIDKA.js} +2 -2
  77. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-XZBHEBLF.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-V74K6IQF.js} +2 -2
  78. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-OMUAZ3NM.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-VELRZYUL.js} +2 -2
  79. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-PQ3V63XF.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-VXS2FTO4.js} +2 -2
  80. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-PWBQN4GK.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-VZ4ER5HI.js} +2 -2
  81. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-EARRZPMO.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-WC7WZIXH.js} +2 -2
  82. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-GF67PEXE.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-WM6AKY6B.js} +2 -2
  83. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-VBYOXOSM.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-WTIPXHS3.js} +2 -2
  84. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-IPP3UFGH.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-WZYIA4NB.js} +2 -2
  85. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-A35GG5WJ.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-XEBZTQHW.js} +2 -2
  86. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-QOTMLO2T.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-XFWEZBPW.js} +2 -2
  87. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-NP26LKQA.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-YLWWFMFQ.js} +2 -2
  88. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-F3WJIFOO.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-YNBY2HFD.js} +1 -1
  89. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-EHC3BDVP.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-ZQTDDQLY.js} +2 -2
  90. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/combineGeometry.js +2 -2
  91. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createBoxGeometry.js +2 -2
  92. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createBoxOutlineGeometry.js +2 -2
  93. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createCircleGeometry.js +2 -2
  94. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createCircleOutlineGeometry.js +2 -2
  95. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createCoplanarPolygonGeometry.js +2 -2
  96. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createCoplanarPolygonOutlineGeometry.js +2 -2
  97. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createCorridorGeometry.js +2 -2
  98. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createCorridorOutlineGeometry.js +2 -2
  99. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createCylinderGeometry.js +2 -2
  100. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createCylinderOutlineGeometry.js +2 -2
  101. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createEllipseGeometry.js +2 -2
  102. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createEllipseOutlineGeometry.js +2 -2
  103. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createEllipsoidGeometry.js +2 -2
  104. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createEllipsoidOutlineGeometry.js +2 -2
  105. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createFrustumGeometry.js +2 -2
  106. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createFrustumOutlineGeometry.js +2 -2
  107. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createGeometry.js +2 -2
  108. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createGroundPolylineGeometry.js +2 -2
  109. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createPlaneGeometry.js +2 -2
  110. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createPlaneOutlineGeometry.js +2 -2
  111. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createPolygonGeometry.js +2 -2
  112. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createPolygonOutlineGeometry.js +2 -2
  113. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createPolylineGeometry.js +2 -2
  114. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createPolylineVolumeGeometry.js +2 -2
  115. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createPolylineVolumeOutlineGeometry.js +2 -2
  116. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createRectangleGeometry.js +2 -2
  117. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createRectangleOutlineGeometry.js +2 -2
  118. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createSimplePolylineGeometry.js +2 -2
  119. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createSphereGeometry.js +2 -2
  120. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createSphereOutlineGeometry.js +2 -2
  121. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createTaskProcessorWorker.js +2 -2
  122. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createVectorTileClampedPolylines.js +2 -2
  123. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createVectorTileGeometries.js +2 -2
  124. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createVectorTilePoints.js +2 -2
  125. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createVectorTilePolygons.js +2 -2
  126. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createVectorTilePolylines.js +2 -2
  127. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createVerticesFromCesium3DTilesTerrain.js +2 -2
  128. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +2 -2
  129. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createVerticesFromHeightmap.js +2 -2
  130. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createVerticesFromQuantizedTerrainMesh.js +2 -2
  131. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createWallGeometry.js +2 -2
  132. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createWallOutlineGeometry.js +2 -2
  133. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/decodeDraco.js +2 -2
  134. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/decodeGoogleEarthEnterprisePacket.js +2 -2
  135. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/decodeI3S.js +2 -2
  136. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/gaussianSplatSorter.js +2 -2
  137. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/gaussianSplatTextureGenerator.js +2 -2
  138. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/incrementallyBuildTerrainPicker.js +2 -2
  139. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/transcodeKTX2.js +2 -2
  140. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/transferTypedArrayTest.js +1 -1
  141. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/upsampleQuantizedTerrainMesh.js +2 -2
  142. package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/upsampleVerticesFromCesium3DTilesTerrain.js +2 -2
  143. package/dist/index.html +11 -11
  144. package/package.json +35 -35
  145. package/src/App.tsx +1 -3
  146. package/src/components/viewer/BCFPanel.tsx +1 -16
  147. package/src/components/viewer/ChatPanel.tsx +11 -46
  148. package/src/components/viewer/HierarchyPanel.tsx +2 -176
  149. package/src/components/viewer/IDSPanel.tsx +1 -26
  150. package/src/components/viewer/MainToolbar.tsx +104 -187
  151. package/src/components/viewer/MobileToolbar.tsx +1 -9
  152. package/src/components/viewer/PropertiesPanel.tsx +28 -126
  153. package/src/components/viewer/ScriptPanel.tsx +8 -34
  154. package/src/components/viewer/Section2DPanel.tsx +32 -1
  155. package/src/components/viewer/ToolOverlays.tsx +5 -0
  156. package/src/components/viewer/ViewerLayout.tsx +0 -2
  157. package/src/components/viewer/ViewportContainer.tsx +71 -42
  158. package/src/components/viewer/ViewportOverlays.tsx +1 -4
  159. package/src/components/viewer/tools/SpaceSketchOverlay.tsx +872 -0
  160. package/src/components/viewer/useGeometryStreaming.ts +0 -2
  161. package/src/hooks/ingest/federationAlign.ts +7 -0
  162. package/src/hooks/useConstructionUnderlay.ts +94 -0
  163. package/src/hooks/useDrawingGeneration.ts +307 -14
  164. package/src/hooks/useIfcCache.ts +94 -41
  165. package/src/hooks/useIfcFederation.ts +2 -3
  166. package/src/hooks/useIfcLoader.ts +10 -1051
  167. package/src/services/cacheService.ts +9 -25
  168. package/src/services/desktop-export.ts +2 -59
  169. package/src/services/file-dialog.ts +8 -142
  170. package/src/store/constants.ts +23 -0
  171. package/src/store/index.ts +3 -5
  172. package/src/store/slices/drawing2DSlice.ts +8 -0
  173. package/src/store/slices/mutationSlice.ts +21 -0
  174. package/src/store/slices/uiSlice.ts +1 -0
  175. package/src/store/slices/visibilitySlice.ts +42 -1
  176. package/src/store/types.ts +1 -71
  177. package/src/utils/ifcConfig.ts +0 -12
  178. package/vite.config.ts +6 -3
  179. package/DESKTOP_CONTRACT_VERSION +0 -1
  180. package/dist/assets/drawing-2d-D0dDf6Lh.js +0 -257
  181. package/dist/assets/event-B0kAzHa-.js +0 -1
  182. package/dist/assets/geometry.worker-Bpa3115V.js +0 -1
  183. package/dist/assets/index-BtbXFKsX.css +0 -1
  184. package/dist/assets/raw-CJgQdyuZ.js +0 -1
  185. package/dist/assets/tauri-core-stub-D8Fa-u43.js +0 -1
  186. package/dist/assets/tauri-dialog-stub-r7Wksg7o.js +0 -1
  187. package/dist/assets/tauri-fs-stub-BdeRC7aK.js +0 -1
  188. package/dist/cesium/node_modules/.pnpm/cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-SP35IT73.js +0 -26
  189. package/src/components/viewer/DesktopEntitlementBanner.tsx +0 -74
  190. package/src/components/viewer/SettingsPage.tsx +0 -581
  191. package/src/lib/desktop/desktopEntitlementEvents.ts +0 -39
  192. package/src/lib/desktop-entitlement.ts +0 -43
  193. package/src/lib/desktop-product.ts +0 -130
  194. package/src/lib/platform.ts +0 -23
  195. package/src/services/desktop-cache.ts +0 -186
  196. package/src/services/desktop-harness.ts +0 -196
  197. package/src/services/desktop-logger.ts +0 -20
  198. package/src/services/desktop-native-metadata.ts +0 -230
  199. package/src/services/desktop-panel-actions.ts +0 -43
  200. package/src/services/desktop-preferences.ts +0 -44
  201. package/src/services/fs-cache.ts +0 -212
  202. package/src/services/tauri-core-stub.ts +0 -7
  203. package/src/services/tauri-dialog-stub.ts +0 -7
  204. package/src/services/tauri-fs-stub.ts +0 -7
  205. package/src/services/tauri-modules.d.ts +0 -50
  206. package/src/store/slices/desktopEntitlementSlice.ts +0 -86
  207. package/src/utils/desktopModelSnapshot.ts +0 -359
  208. package/src/utils/nativeSpatialDataStore.ts +0 -277
  209. package/src-tauri/Cargo.toml +0 -29
  210. package/src-tauri/build.rs +0 -7
  211. package/src-tauri/capabilities/default.json +0 -18
  212. package/src-tauri/icons/128x128.png +0 -0
  213. package/src-tauri/icons/128x128@2x.png +0 -0
  214. package/src-tauri/icons/32x32.png +0 -0
  215. package/src-tauri/icons/Square107x107Logo.png +0 -0
  216. package/src-tauri/icons/Square142x142Logo.png +0 -0
  217. package/src-tauri/icons/Square150x150Logo.png +0 -0
  218. package/src-tauri/icons/Square284x284Logo.png +0 -0
  219. package/src-tauri/icons/Square30x30Logo.png +0 -0
  220. package/src-tauri/icons/Square310x310Logo.png +0 -0
  221. package/src-tauri/icons/Square44x44Logo.png +0 -0
  222. package/src-tauri/icons/Square71x71Logo.png +0 -0
  223. package/src-tauri/icons/Square89x89Logo.png +0 -0
  224. package/src-tauri/icons/StoreLogo.png +0 -0
  225. package/src-tauri/icons/icon.icns +0 -0
  226. package/src-tauri/icons/icon.ico +0 -0
  227. package/src-tauri/icons/icon.png +0 -0
  228. package/src-tauri/src/lib.rs +0 -21
  229. package/src-tauri/src/main.rs +0 -10
  230. package/src-tauri/tauri.conf.json +0 -39
  231. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_0.json +0 -0
  232. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_1.json +0 -0
  233. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_10.json +0 -0
  234. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_11.json +0 -0
  235. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_12.json +0 -0
  236. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_13.json +0 -0
  237. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_14.json +0 -0
  238. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_15.json +0 -0
  239. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_16.json +0 -0
  240. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_17.json +0 -0
  241. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_18.json +0 -0
  242. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_19.json +0 -0
  243. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_2.json +0 -0
  244. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_20.json +0 -0
  245. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_21.json +0 -0
  246. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_22.json +0 -0
  247. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_23.json +0 -0
  248. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_24.json +0 -0
  249. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_25.json +0 -0
  250. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_26.json +0 -0
  251. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_27.json +0 -0
  252. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_3.json +0 -0
  253. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_4.json +0 -0
  254. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_5.json +0 -0
  255. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_6.json +0 -0
  256. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_7.json +0 -0
  257. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_8.json +0 -0
  258. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_9.json +0 -0
  259. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Images/bing_maps_credit.png +0 -0
  260. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Images/cesium_credit.png +0 -0
  261. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Images/google_earth_credit.png +0 -0
  262. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Images/ion-credit.png +0 -0
  263. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/LensFlare/DirtMask.jpg +0 -0
  264. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/LensFlare/StarBurst.jpg +0 -0
  265. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/0/0/0.jpg +0 -0
  266. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/0/1/0.jpg +0 -0
  267. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/1/0/0.jpg +0 -0
  268. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/1/0/1.jpg +0 -0
  269. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/1/1/0.jpg +0 -0
  270. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/1/1/1.jpg +0 -0
  271. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/1/2/0.jpg +0 -0
  272. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/1/2/1.jpg +0 -0
  273. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/1/3/0.jpg +0 -0
  274. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/1/3/1.jpg +0 -0
  275. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/0/0.jpg +0 -0
  276. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/0/1.jpg +0 -0
  277. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/0/2.jpg +0 -0
  278. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/0/3.jpg +0 -0
  279. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/1/0.jpg +0 -0
  280. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/1/1.jpg +0 -0
  281. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/1/2.jpg +0 -0
  282. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/1/3.jpg +0 -0
  283. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/2/0.jpg +0 -0
  284. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/2/1.jpg +0 -0
  285. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/2/2.jpg +0 -0
  286. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/2/3.jpg +0 -0
  287. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/3/0.jpg +0 -0
  288. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/3/1.jpg +0 -0
  289. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/3/2.jpg +0 -0
  290. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/3/3.jpg +0 -0
  291. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/4/0.jpg +0 -0
  292. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/4/1.jpg +0 -0
  293. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/4/2.jpg +0 -0
  294. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/4/3.jpg +0 -0
  295. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/5/0.jpg +0 -0
  296. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/5/1.jpg +0 -0
  297. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/5/2.jpg +0 -0
  298. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/5/3.jpg +0 -0
  299. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/6/0.jpg +0 -0
  300. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/6/1.jpg +0 -0
  301. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/6/2.jpg +0 -0
  302. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/6/3.jpg +0 -0
  303. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/7/0.jpg +0 -0
  304. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/7/1.jpg +0 -0
  305. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/7/2.jpg +0 -0
  306. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/7/3.jpg +0 -0
  307. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/tilemapresource.xml +0 -0
  308. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/SkyBox/tycho2t3_80_mx.jpg +0 -0
  309. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/SkyBox/tycho2t3_80_my.jpg +0 -0
  310. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/SkyBox/tycho2t3_80_mz.jpg +0 -0
  311. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/SkyBox/tycho2t3_80_px.jpg +0 -0
  312. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/SkyBox/tycho2t3_80_py.jpg +0 -0
  313. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/SkyBox/tycho2t3_80_pz.jpg +0 -0
  314. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/airfield.png +0 -0
  315. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/airport.png +0 -0
  316. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/alcohol-shop.png +0 -0
  317. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/america-football.png +0 -0
  318. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/art-gallery.png +0 -0
  319. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/bakery.png +0 -0
  320. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/bank.png +0 -0
  321. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/bar.png +0 -0
  322. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/baseball.png +0 -0
  323. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/basketball.png +0 -0
  324. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/beer.png +0 -0
  325. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/bicycle.png +0 -0
  326. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/building.png +0 -0
  327. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/bus.png +0 -0
  328. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/cafe.png +0 -0
  329. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/camera.png +0 -0
  330. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/campsite.png +0 -0
  331. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/car.png +0 -0
  332. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/cemetery.png +0 -0
  333. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/cesium.png +0 -0
  334. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/chemist.png +0 -0
  335. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/cinema.png +0 -0
  336. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/circle-stroked.png +0 -0
  337. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/circle.png +0 -0
  338. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/city.png +0 -0
  339. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/clothing-store.png +0 -0
  340. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/college.png +0 -0
  341. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/commercial.png +0 -0
  342. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/cricket.png +0 -0
  343. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/cross.png +0 -0
  344. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/dam.png +0 -0
  345. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/danger.png +0 -0
  346. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/disability.png +0 -0
  347. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/dog-park.png +0 -0
  348. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/embassy.png +0 -0
  349. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/emergency-telephone.png +0 -0
  350. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/entrance.png +0 -0
  351. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/farm.png +0 -0
  352. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/fast-food.png +0 -0
  353. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/ferry.png +0 -0
  354. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/fire-station.png +0 -0
  355. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/fuel.png +0 -0
  356. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/garden.png +0 -0
  357. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/gift.png +0 -0
  358. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/golf.png +0 -0
  359. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/grocery.png +0 -0
  360. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/hairdresser.png +0 -0
  361. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/harbor.png +0 -0
  362. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/heart.png +0 -0
  363. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/heliport.png +0 -0
  364. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/hospital.png +0 -0
  365. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/ice-cream.png +0 -0
  366. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/industrial.png +0 -0
  367. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/land-use.png +0 -0
  368. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/laundry.png +0 -0
  369. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/library.png +0 -0
  370. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/lighthouse.png +0 -0
  371. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/lodging.png +0 -0
  372. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/logging.png +0 -0
  373. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/london-underground.png +0 -0
  374. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/marker-stroked.png +0 -0
  375. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/marker.png +0 -0
  376. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/minefield.png +0 -0
  377. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/mobilephone.png +0 -0
  378. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/monument.png +0 -0
  379. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/museum.png +0 -0
  380. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/music.png +0 -0
  381. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/oil-well.png +0 -0
  382. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/park.png +0 -0
  383. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/park2.png +0 -0
  384. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/parking-garage.png +0 -0
  385. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/parking.png +0 -0
  386. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/pharmacy.png +0 -0
  387. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/pitch.png +0 -0
  388. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/place-of-worship.png +0 -0
  389. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/playground.png +0 -0
  390. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/police.png +0 -0
  391. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/polling-place.png +0 -0
  392. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/post.png +0 -0
  393. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/prison.png +0 -0
  394. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/rail-above.png +0 -0
  395. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/rail-light.png +0 -0
  396. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/rail-metro.png +0 -0
  397. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/rail-underground.png +0 -0
  398. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/rail.png +0 -0
  399. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/religious-christian.png +0 -0
  400. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/religious-jewish.png +0 -0
  401. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/religious-muslim.png +0 -0
  402. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/restaurant.png +0 -0
  403. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/roadblock.png +0 -0
  404. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/rocket.png +0 -0
  405. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/school.png +0 -0
  406. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/scooter.png +0 -0
  407. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/shop.png +0 -0
  408. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/skiing.png +0 -0
  409. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/slaughterhouse.png +0 -0
  410. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/soccer.png +0 -0
  411. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/square-stroked.png +0 -0
  412. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/square.png +0 -0
  413. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/star-stroked.png +0 -0
  414. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/star.png +0 -0
  415. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/suitcase.png +0 -0
  416. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/swimming.png +0 -0
  417. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/telephone.png +0 -0
  418. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/tennis.png +0 -0
  419. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/theatre.png +0 -0
  420. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/toilets.png +0 -0
  421. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/town-hall.png +0 -0
  422. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/town.png +0 -0
  423. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/triangle-stroked.png +0 -0
  424. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/triangle.png +0 -0
  425. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/village.png +0 -0
  426. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/warehouse.png +0 -0
  427. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/waste-basket.png +0 -0
  428. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/water.png +0 -0
  429. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/wetland.png +0 -0
  430. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/zoo.png +0 -0
  431. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/moonSmall.jpg +0 -0
  432. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/pin.svg +0 -0
  433. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/waterNormals.jpg +0 -0
  434. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/waterNormalsSmall.jpg +0 -0
  435. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/approximateTerrainHeights.json +0 -0
  436. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/ThirdParty/Workers/package.json +0 -0
  437. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/ThirdParty/Workers/zip-web-worker.js +0 -0
  438. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/ThirdParty/basis_transcoder.wasm +0 -0
  439. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/ThirdParty/draco_decoder.wasm +0 -0
  440. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/ThirdParty/google-earth-dbroot-parser.js +0 -0
  441. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/ThirdParty/wasm_splats_bg.wasm +0 -0
  442. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/ThirdParty/zip-module.wasm +0 -0
  443. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Animation/Animation.css +0 -0
  444. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Animation/lighter.css +0 -0
  445. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/BaseLayerPicker/BaseLayerPicker.css +0 -0
  446. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/BaseLayerPicker/lighter.css +0 -0
  447. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Cesium3DTilesInspector/Cesium3DTilesInspector.css +0 -0
  448. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/CesiumInspector/CesiumInspector.css +0 -0
  449. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/CesiumWidget/CesiumWidget.css +0 -0
  450. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/CesiumWidget/lighter.css +0 -0
  451. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/FullscreenButton/FullscreenButton.css +0 -0
  452. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Geocoder/Geocoder.css +0 -0
  453. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Geocoder/lighter.css +0 -0
  454. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/I3SBuildingSceneLayerExplorer/I3SBuildingSceneLayerExplorer.css +0 -0
  455. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldHillshade.png +0 -0
  456. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldImagery.png +0 -0
  457. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldOcean.png +0 -0
  458. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/ImageryProviders/azureAerial.png +0 -0
  459. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/ImageryProviders/azureRoads.png +0 -0
  460. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/ImageryProviders/bingAerial.png +0 -0
  461. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/ImageryProviders/bingAerialLabels.png +0 -0
  462. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/ImageryProviders/bingRoads.png +0 -0
  463. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/ImageryProviders/blueMarble.png +0 -0
  464. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/ImageryProviders/earthAtNight.png +0 -0
  465. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/ImageryProviders/googleContour.png +0 -0
  466. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/ImageryProviders/googleRoadmap.png +0 -0
  467. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/ImageryProviders/googleSatellite.png +0 -0
  468. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/ImageryProviders/googleSatelliteLabels.png +0 -0
  469. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/ImageryProviders/mapQuestOpenStreetMap.png +0 -0
  470. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/ImageryProviders/mapboxSatellite.png +0 -0
  471. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/ImageryProviders/mapboxStreets.png +0 -0
  472. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/ImageryProviders/mapboxTerrain.png +0 -0
  473. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/ImageryProviders/naturalEarthII.png +0 -0
  474. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/ImageryProviders/openStreetMap.png +0 -0
  475. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/ImageryProviders/sentinel-2.png +0 -0
  476. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/ImageryProviders/stadiaAlidadeSmooth.png +0 -0
  477. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/ImageryProviders/stadiaAlidadeSmoothDark.png +0 -0
  478. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/ImageryProviders/stamenToner.png +0 -0
  479. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/ImageryProviders/stamenWatercolor.png +0 -0
  480. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/NavigationHelp/Mouse.svg +0 -0
  481. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/NavigationHelp/MouseLeft.svg +0 -0
  482. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/NavigationHelp/MouseMiddle.svg +0 -0
  483. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/NavigationHelp/MouseRight.svg +0 -0
  484. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/NavigationHelp/Touch.svg +0 -0
  485. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/NavigationHelp/TouchDrag.svg +0 -0
  486. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/NavigationHelp/TouchRotate.svg +0 -0
  487. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/NavigationHelp/TouchTilt.svg +0 -0
  488. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/NavigationHelp/TouchZoom.svg +0 -0
  489. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/TerrainProviders/CesiumWorldTerrain.png +0 -0
  490. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/TerrainProviders/Ellipsoid.png +0 -0
  491. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/TimelineIcons.png +0 -0
  492. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/info-loading.gif +0 -0
  493. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/InfoBox/InfoBox.css +0 -0
  494. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/InfoBox/InfoBoxDescription.css +0 -0
  495. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/NavigationHelpButton/NavigationHelpButton.css +0 -0
  496. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/NavigationHelpButton/lighter.css +0 -0
  497. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/PerformanceWatchdog/PerformanceWatchdog.css +0 -0
  498. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/ProjectionPicker/ProjectionPicker.css +0 -0
  499. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/SceneModePicker/SceneModePicker.css +0 -0
  500. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/SelectionIndicator/SelectionIndicator.css +0 -0
  501. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Timeline/Timeline.css +0 -0
  502. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Timeline/lighter.css +0 -0
  503. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/VRButton/VRButton.css +0 -0
  504. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Viewer/Viewer.css +0 -0
  505. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/VoxelInspector/VoxelInspector.css +0 -0
  506. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/lighter.css +0 -0
  507. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/lighterShared.css +0 -0
  508. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/shared.css +0 -0
  509. /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/widgets.css +0 -0
@@ -32,7 +32,6 @@ import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip
32
32
  import { useViewerStore } from '@/store';
33
33
  import { toGlobalIdFromModels } from '@/store/globalId';
34
34
  import { useIfc } from '@/hooks/useIfc';
35
- import { getNativeEntityDetails } from '@/services/desktop-native-metadata';
36
35
  import { configureMutationView } from '@/utils/configureMutationView';
37
36
  import { IfcQuery } from '@ifc-lite/query';
38
37
  import { MutablePropertyView } from '@ifc-lite/mutations';
@@ -162,7 +161,7 @@ export function PropertiesPanel() {
162
161
  const m = models.get(selectedEntity.modelId);
163
162
  if (m) {
164
163
  return {
165
- modelQuery: m.nativeMetadata ? null : (m.ifcDataStore ? new IfcQuery(m.ifcDataStore) : null),
164
+ modelQuery: m.ifcDataStore ? new IfcQuery(m.ifcDataStore) : null,
166
165
  model: m,
167
166
  };
168
167
  }
@@ -201,8 +200,6 @@ export function PropertiesPanel() {
201
200
  const [copied, setCopied] = useState(false);
202
201
  const [coordCopied, setCoordCopied] = useState<string | null>(null);
203
202
  const [coordOpen, setCoordOpen] = useState(false);
204
- const [nativeDetails, setNativeDetails] = useState<import('@/store/types').NativeMetadataEntityDetails | null>(null);
205
- const [nativeDetailsState, setNativeDetailsState] = useState<'idle' | 'loading' | 'error'>('idle');
206
203
 
207
204
  // Inline property editing is gated by the global edit-mode pill in
208
205
  // the main toolbar (see `uiSlice.editEnabled`). Reading it from the
@@ -211,32 +208,6 @@ export function PropertiesPanel() {
211
208
  // tools — behind a single switch.
212
209
  const editMode = useViewerStore((s) => s.editEnabled);
213
210
 
214
- useEffect(() => {
215
- if (!selectedEntity || !model?.nativeMetadata) {
216
- setNativeDetails(null);
217
- setNativeDetailsState('idle');
218
- return;
219
- }
220
- let cancelled = false;
221
- setNativeDetailsState('loading');
222
- void getNativeEntityDetails(model.nativeMetadata.cacheKey, selectedEntity.expressId)
223
- .then((details) => {
224
- if (!cancelled) {
225
- setNativeDetails(details);
226
- setNativeDetailsState('idle');
227
- }
228
- })
229
- .catch(() => {
230
- if (!cancelled) {
231
- setNativeDetails(null);
232
- setNativeDetailsState('error');
233
- }
234
- });
235
- return () => {
236
- cancelled = true;
237
- };
238
- }, [selectedEntity, model?.nativeMetadata]);
239
-
240
211
  const copyToClipboard = useCallback((text: string) => {
241
212
  navigator.clipboard.writeText(text);
242
213
  setCopied(true);
@@ -958,51 +929,6 @@ export function PropertiesPanel() {
958
929
  return names;
959
930
  }, [attributes]);
960
931
 
961
- const isNativeLazySelection = Boolean(selectedEntity && model?.nativeMetadata);
962
-
963
- // Native-lazy entities (server-streamed without full STEP data) can
964
- // never be edited; the per-row editors below self-guard via
965
- // `enableEditing={editMode && !isNativeLazySelection}`. The old
966
- // panel-local `editMode` would flip itself off when a native-lazy
967
- // entity was selected; now that the flag is global it stays on, and
968
- // the field-level guards do the work.
969
-
970
- const nativeSpatialInfo = useMemo(() => {
971
- if (!nativeDetails?.spatial?.storeyName) return null;
972
- return {
973
- storeyId: nativeDetails.spatial.storeyId ?? undefined,
974
- storeyName: nativeDetails.spatial.storeyName,
975
- elevation: nativeDetails.spatial.elevation ?? undefined,
976
- height: nativeDetails.spatial.height ?? undefined,
977
- };
978
- }, [nativeDetails]);
979
-
980
- const nativeOccurrenceProperties = useMemo<PropertySet[]>(() => {
981
- if (!nativeDetails) return [];
982
- return nativeDetails.properties.map((pset) => ({
983
- name: pset.name,
984
- properties: pset.properties.map((property) => ({
985
- name: property.name,
986
- value: property.value,
987
- isMutated: false,
988
- })),
989
- isNewPset: false,
990
- source: 'instance' as const,
991
- }));
992
- }, [nativeDetails]);
993
-
994
- const nativeQuantities = useMemo<QuantitySet[]>(() => {
995
- if (!nativeDetails) return [];
996
- return nativeDetails.quantities.map((qset) => ({
997
- name: qset.name,
998
- quantities: qset.quantities.map((quantity) => ({
999
- name: quantity.name,
1000
- value: quantity.value,
1001
- type: quantity.type ?? 0,
1002
- })),
1003
- }));
1004
- }, [nativeDetails]);
1005
-
1006
932
  // Overlay (authored) entities — split halves, duplicates, scripted
1007
933
  // adds — live only in the StoreEditor overlay, NOT the parsed store.
1008
934
  // `modelQuery.entity()` always returns a node, and its getters fall
@@ -1010,49 +936,27 @@ export function PropertiesPanel() {
1010
936
  // table (entity-table.ts#getTypeName). Those non-null sentinels would
1011
937
  // shadow the overlay record in an `entityNode ?? overlay` chain, so
1012
938
  // when an overlay record exists it MUST take precedence.
1013
- const renderedEntityType = isNativeLazySelection
1014
- ? (nativeDetails?.summary.type ?? 'Loading...')
1015
- : (overlayEntity?.type ?? entityNode?.type ?? 'Unknown');
1016
- const renderedEntityName = isNativeLazySelection
1017
- ? (nativeDetails?.summary.name ?? `#${selectedEntity?.expressId ?? ''}`)
1018
- : (overlayAttr(2) ?? entityNode?.name ?? undefined);
1019
- const renderedEntityGlobalId = isNativeLazySelection
1020
- ? (nativeDetails?.summary.globalId ?? null)
1021
- : (overlayAttr(0) ?? entityNode?.globalId);
1022
- const renderedEntityDescription = isNativeLazySelection
1023
- ? undefined
1024
- : (overlayAttr(3) ?? entityNode?.description ?? undefined);
1025
- const renderedEntityObjectType = isNativeLazySelection
1026
- ? undefined
1027
- : (overlayAttr(4) ?? entityNode?.objectType ?? undefined);
1028
- const renderedSpatialInfo = isNativeLazySelection ? nativeSpatialInfo : spatialInfo;
1029
- const renderedOccurrenceProperties = isNativeLazySelection ? nativeOccurrenceProperties : occurrenceProperties;
1030
- const renderedInheritedTypeProperties = isNativeLazySelection ? [] : inheritedTypeProperties;
1031
- const renderedMergedProperties = isNativeLazySelection
1032
- ? nativeOccurrenceProperties
1033
- : mergedProperties;
1034
- const renderedQuantities = isNativeLazySelection ? nativeQuantities : quantities;
1035
- const renderedAttributes = isNativeLazySelection ? [] : attributes;
1036
- const renderedClassifications = isNativeLazySelection ? [] : classifications;
1037
- const renderedMaterialInfo = isNativeLazySelection ? null : materialInfo;
1038
- const renderedMaterialProperties = isNativeLazySelection ? [] : materialProperties;
1039
- const renderedDocuments = isNativeLazySelection ? [] : documents;
1040
- const renderedEntityRelationships = isNativeLazySelection ? null : entityRelationships;
1041
- const renderedGeoref = isNativeLazySelection ? null : georef;
1042
- const renderedSpatialContainment = isNativeLazySelection ? null : spatialContainment;
1043
- const renderedTypeProperties = isNativeLazySelection
1044
- ? (nativeDetails?.typeSummary
1045
- ? {
1046
- typeName: nativeDetails.typeSummary.name,
1047
- typeId: nativeDetails.typeSummary.expressId,
1048
- psets: [] as PropertySet[],
1049
- }
1050
- : null)
1051
- : typeProperties;
1052
- const renderedTypeEditImpact = isNativeLazySelection ? null : typeEditImpact;
1053
- const renderedIsTypeEntity = isNativeLazySelection
1054
- ? ((nativeDetails?.summary.type ?? '').endsWith('Type'))
1055
- : isTypeEntity;
939
+ const renderedEntityType = overlayEntity?.type ?? entityNode?.type ?? 'Unknown';
940
+ const renderedEntityName = overlayAttr(2) ?? entityNode?.name ?? undefined;
941
+ const renderedEntityGlobalId = overlayAttr(0) ?? entityNode?.globalId;
942
+ const renderedEntityDescription = overlayAttr(3) ?? entityNode?.description ?? undefined;
943
+ const renderedEntityObjectType = overlayAttr(4) ?? entityNode?.objectType ?? undefined;
944
+ const renderedSpatialInfo = spatialInfo;
945
+ const renderedOccurrenceProperties = occurrenceProperties;
946
+ const renderedInheritedTypeProperties = inheritedTypeProperties;
947
+ const renderedMergedProperties = mergedProperties;
948
+ const renderedQuantities = quantities;
949
+ const renderedAttributes = attributes;
950
+ const renderedClassifications = classifications;
951
+ const renderedMaterialInfo = materialInfo;
952
+ const renderedMaterialProperties = materialProperties;
953
+ const renderedDocuments = documents;
954
+ const renderedEntityRelationships = entityRelationships;
955
+ const renderedGeoref = georef;
956
+ const renderedSpatialContainment = spatialContainment;
957
+ const renderedTypeProperties = typeProperties;
958
+ const renderedTypeEditImpact = typeEditImpact;
959
+ const renderedIsTypeEntity = isTypeEntity;
1056
960
  const renderedExistingProps = useMemo(() => {
1057
961
  const keys = new Set<string>();
1058
962
  for (const pset of renderedMergedProperties) {
@@ -1109,7 +1013,7 @@ export function PropertiesPanel() {
1109
1013
  // `overlayEntity` when `entityNode` is empty. Without including
1110
1014
  // `overlayEntity` here the panel collapses to the model-metadata
1111
1015
  // view the moment a fresh add lands.
1112
- if (!selectedEntityId || (!isNativeLazySelection && (!modelQuery || (!entityNode && !overlayEntity)))) {
1016
+ if (!selectedEntityId || !modelQuery || (!entityNode && !overlayEntity)) {
1113
1017
  // Show model metadata when a single model is loaded and nothing selected.
1114
1018
  // Handles both federated models (models.size >= 1) and legacy single-model path (models.size === 0).
1115
1019
  if (models.size === 1) {
@@ -1501,7 +1405,7 @@ export function PropertiesPanel() {
1501
1405
  </div>
1502
1406
  )}
1503
1407
  {/* Edit toolbar - only shown when edit mode is active */}
1504
- {editMode && selectedEntity && !isNativeLazySelection && (
1408
+ {editMode && selectedEntity && (
1505
1409
  <>
1506
1410
  <GeometryEditCard
1507
1411
  modelId={selectedEntity.modelId}
@@ -1547,7 +1451,7 @@ export function PropertiesPanel() {
1547
1451
  pset={pset}
1548
1452
  modelId={selectedEntity?.modelId}
1549
1453
  entityId={selectedEntity?.expressId}
1550
- enableEditing={editMode && !isNativeLazySelection}
1454
+ enableEditing={editMode}
1551
1455
  isTypeProperty={renderedIsTypeEntity}
1552
1456
  typeEditScope={renderedIsTypeEntity ? renderedTypeEditImpact ?? undefined : undefined}
1553
1457
  />
@@ -1571,7 +1475,7 @@ export function PropertiesPanel() {
1571
1475
  pset={pset}
1572
1476
  modelId={selectedEntity?.modelId}
1573
1477
  entityId={renderedTypeProperties.typeId}
1574
- enableEditing={editMode && !isNativeLazySelection}
1478
+ enableEditing={editMode}
1575
1479
  isTypeProperty
1576
1480
  typeEditScope={renderedTypeEditImpact?.mode === 'inherited' ? renderedTypeEditImpact : undefined}
1577
1481
  />
@@ -1695,7 +1599,7 @@ export function PropertiesPanel() {
1695
1599
  </TabsContent>
1696
1600
 
1697
1601
  <TabsContent value="raw-step" className="m-0 p-3 overflow-hidden">
1698
- {selectedEntity && !isNativeLazySelection ? (
1602
+ {selectedEntity ? (
1699
1603
  <RawStepCard
1700
1604
  modelId={selectedEntity.modelId === 'legacy' ? '__legacy__' : selectedEntity.modelId}
1701
1605
  entityId={selectedEntity.expressId}
@@ -1705,9 +1609,7 @@ export function PropertiesPanel() {
1705
1609
  />
1706
1610
  ) : (
1707
1611
  <p className="text-sm text-zinc-500 dark:text-zinc-500 text-center py-8 font-mono">
1708
- {isNativeLazySelection
1709
- ? 'Raw STEP is not available for native-metadata selections'
1710
- : 'Select an entity to inspect raw STEP arguments'}
1612
+ Select an entity to inspect raw STEP arguments
1711
1613
  </p>
1712
1614
  )}
1713
1615
  </TabsContent>
@@ -49,13 +49,10 @@ import {
49
49
  DialogDescription,
50
50
  } from '@/components/ui/dialog';
51
51
  import { ScrollArea } from '@/components/ui/scroll-area';
52
- import { toast } from '@/components/ui/toast';
53
- import { buildDesktopUpgradeUrl, hasDesktopFeatureAccess } from '@/lib/desktop-product';
54
52
  import { cn, formatDuration } from '@/lib/utils';
55
53
  import { useViewerStore } from '@/store';
56
54
  import { useSandbox } from '@/hooks/useSandbox';
57
55
  import { SCRIPT_TEMPLATES } from '@/lib/scripts/templates';
58
- import { navigateToPath } from '@/services/app-navigation';
59
56
  import { CodeEditor } from './CodeEditor';
60
57
  import { ChatPanel } from './ChatPanel';
61
58
  import { PromoteToolDialog } from '@/components/extensions/PromoteToolDialog';
@@ -154,8 +151,6 @@ export function ScriptPanel({ onClose }: ScriptPanelProps) {
154
151
  const [outputCollapsed, setOutputCollapsed] = useState(false);
155
152
  const chatPanelVisible = useViewerStore((s) => s.chatPanelVisible);
156
153
  const setChatPanelVisible = useViewerStore((s) => s.setChatPanelVisible);
157
- const desktopEntitlement = useViewerStore((s) => s.desktopEntitlement);
158
- const canUseAiAssistant = hasDesktopFeatureAccess(desktopEntitlement, 'ai_assistant');
159
154
 
160
155
  // Chat panel width (px) — resizable via drag handle
161
156
  const [chatWidth, setChatWidth] = useState(380);
@@ -165,27 +160,14 @@ export function ScriptPanel({ onClose }: ScriptPanelProps) {
165
160
  // Open chat by default when script panel mounts
166
161
  useEffect(() => {
167
162
  try {
168
- if (canUseAiAssistant && localStorage.getItem('ifc-lite-chat-panel-visible') === null) {
163
+ if (localStorage.getItem('ifc-lite-chat-panel-visible') === null) {
169
164
  setChatPanelVisible(true);
170
165
  }
171
166
  } catch {
172
- if (canUseAiAssistant) {
173
- setChatPanelVisible(true);
174
- }
167
+ setChatPanelVisible(true);
175
168
  }
176
169
  return () => { cleanupChatDragRef.current?.(); };
177
- }, [canUseAiAssistant, setChatPanelVisible]);
178
-
179
- useEffect(() => {
180
- if (!canUseAiAssistant && chatPanelVisible) {
181
- setChatPanelVisible(false);
182
- }
183
- }, [canUseAiAssistant, chatPanelVisible, setChatPanelVisible]);
184
-
185
- const promptAiUpgrade = useCallback(() => {
186
- toast.info('AI assistant is available with Desktop Pro');
187
- navigateToPath(buildDesktopUpgradeUrl());
188
- }, []);
170
+ }, [setChatPanelVisible]);
189
171
 
190
172
  const handleChatResizeStart = useCallback((e: React.MouseEvent) => {
191
173
  e.preventDefault();
@@ -259,10 +241,6 @@ export function ScriptPanel({ onClose }: ScriptPanelProps) {
259
241
 
260
242
  const handleFixWithLlm = useCallback(() => {
261
243
  if (!lastError) return;
262
- if (!canUseAiAssistant) {
263
- promptAiUpgrade();
264
- return;
265
- }
266
244
  setChatPanelVisible(true);
267
245
  const state = useViewerStore.getState();
268
246
  queueChatRepairRequest({
@@ -270,15 +248,11 @@ export function ScriptPanel({ onClose }: ScriptPanelProps) {
270
248
  diagnostics: state.scriptLastDiagnostics,
271
249
  reason: lastError.startsWith('Preflight validation failed:') ? 'preflight' : 'runtime',
272
250
  });
273
- }, [canUseAiAssistant, lastError, promptAiUpgrade, queueChatRepairRequest, setChatPanelVisible]);
251
+ }, [lastError, queueChatRepairRequest, setChatPanelVisible]);
274
252
 
275
253
  const toggleChat = useCallback(() => {
276
- if (!canUseAiAssistant) {
277
- promptAiUpgrade();
278
- return;
279
- }
280
254
  setChatPanelVisible(!chatPanelVisible);
281
- }, [canUseAiAssistant, chatPanelVisible, promptAiUpgrade, setChatPanelVisible]);
255
+ }, [chatPanelVisible, setChatPanelVisible]);
282
256
 
283
257
  return (
284
258
  <div className="h-full flex bg-background">
@@ -333,12 +307,12 @@ export function ScriptPanel({ onClose }: ScriptPanelProps) {
333
307
  variant={chatPanelVisible ? 'default' : 'ghost'}
334
308
  size="icon-xs"
335
309
  onClick={toggleChat}
336
- className={cn(canUseAiAssistant && chatPanelVisible && 'bg-blue-500 hover:bg-blue-600 text-white')}
310
+ className={cn(chatPanelVisible && 'bg-blue-500 hover:bg-blue-600 text-white')}
337
311
  >
338
312
  <Bot className="h-3.5 w-3.5" />
339
313
  </Button>
340
314
  </TooltipTrigger>
341
- <TooltipContent>{canUseAiAssistant ? (chatPanelVisible ? 'Hide AI Chat' : 'Show AI Chat') : 'Desktop Pro required for AI Chat'}</TooltipContent>
315
+ <TooltipContent>{chatPanelVisible ? 'Hide AI Chat' : 'Show AI Chat'}</TooltipContent>
342
316
  </Tooltip>
343
317
 
344
318
  {onClose && (
@@ -578,7 +552,7 @@ export function ScriptPanel({ onClose }: ScriptPanelProps) {
578
552
  className="h-6 px-2 text-xs border-destructive/40 text-destructive bg-transparent hover:bg-destructive/10"
579
553
  onClick={handleFixWithLlm}
580
554
  >
581
- {canUseAiAssistant ? 'Fix with LLM' : 'Upgrade for AI Fix'}
555
+ Fix with LLM
582
556
  </Button>
583
557
  </div>
584
558
  </div>
@@ -12,7 +12,7 @@
12
12
  */
13
13
 
14
14
  import React, { useCallback, useRef, useState, useEffect, useMemo } from 'react';
15
- import { X, Download, Eye, EyeOff, Maximize2, ZoomIn, ZoomOut, Loader2, Printer, GripVertical, MoreHorizontal, RefreshCw, Pin, PinOff, Palette, Ruler, Trash2, FileText, Shapes, Box, PenTool, Hexagon, Type, Cloud, MousePointer2, Tag } from 'lucide-react';
15
+ import { X, Download, Eye, EyeOff, Maximize2, ZoomIn, ZoomOut, Loader2, Printer, GripVertical, MoreHorizontal, RefreshCw, Pin, PinOff, Palette, Ruler, Trash2, FileText, Shapes, Box, BoxSelect, PenTool, Hexagon, Type, Cloud, MousePointer2, Tag } from 'lucide-react';
16
16
  import { Button } from '@/components/ui/button';
17
17
  import {
18
18
  DropdownMenu,
@@ -321,6 +321,15 @@ export function Section2DPanel({
321
321
  updateDisplayOptions({ showIfcAnnotations: !displayOptions.showIfcAnnotations });
322
322
  }, [displayOptions.showIfcAnnotations, updateDisplayOptions]);
323
323
 
324
+ // Construction projection (issue #979): toggling changes which geometry the
325
+ // generator emits, so clear the current drawing to force a regenerate —
326
+ // same pattern as the symbolic/section-cut toggle.
327
+ const toggleConstructionProjection = useCallback(() => {
328
+ updateDisplayOptions({ showConstructionProjection: !displayOptions.showConstructionProjection });
329
+ setDrawing(null);
330
+ setDrawingStatus('idle');
331
+ }, [displayOptions.showConstructionProjection, updateDisplayOptions, setDrawing, setDrawingStatus]);
332
+
324
333
  const annotationHandlers = useAnnotation2D({
325
334
  drawing, viewTransform, sectionAxis: sectionPlane.axis, containerRef,
326
335
  activeTool: annotation2DActiveTool, setActiveTool: setAnnotation2DActiveTool,
@@ -589,6 +598,21 @@ export function Section2DPanel({
589
598
  <Tag className="h-4 w-4" />
590
599
  </Button>
591
600
 
601
+ {/* Construction projection toggle (issue #979) — cardinal cuts only */}
602
+ <Button
603
+ variant={displayOptions.showConstructionProjection ? 'default' : 'ghost'}
604
+ size="icon-sm"
605
+ onClick={toggleConstructionProjection}
606
+ title={
607
+ displayOptions.showConstructionProjection
608
+ ? 'Hide construction projection (overhead & visible reference lines)'
609
+ : 'Show construction projection (overhead & visible reference lines)'
610
+ }
611
+ disabled={sectionPlane.custom !== undefined}
612
+ >
613
+ <BoxSelect className="h-4 w-4" />
614
+ </Button>
615
+
592
616
  {/* Annotation Tools Dropdown */}
593
617
  <DropdownMenu>
594
618
  <DropdownMenuTrigger asChild>
@@ -760,6 +784,13 @@ export function Section2DPanel({
760
784
  <Tag className="h-4 w-4 mr-2" />
761
785
  IFC Annotations {displayOptions.showIfcAnnotations ? 'On' : 'Off'}
762
786
  </DropdownMenuItem>
787
+ <DropdownMenuItem
788
+ onClick={toggleConstructionProjection}
789
+ disabled={sectionPlane.custom !== undefined}
790
+ >
791
+ <BoxSelect className="h-4 w-4 mr-2" />
792
+ Construction Projection {displayOptions.showConstructionProjection ? 'On' : 'Off'}
793
+ </DropdownMenuItem>
763
794
  <DropdownMenuItem onClick={() => setAnnotation2DActiveTool('none')}>
764
795
  <MousePointer2 className="h-4 w-4 mr-2" />
765
796
  Select / Pan {annotation2DActiveTool === 'none' ? '(On)' : ''}
@@ -14,10 +14,15 @@ import { GizmoOverlay } from './tools/GizmoOverlay';
14
14
  import { WallEndpointOverlay } from './tools/WallEndpointOverlay';
15
15
  import { SplitOverlay } from './tools/SplitOverlay';
16
16
  import { SplitNumericInput } from './tools/SplitNumericInput';
17
+ import { SpaceSketchOverlay } from './tools/SpaceSketchOverlay';
17
18
 
18
19
  export function ToolOverlays() {
19
20
  const activeTool = useViewerStore((s) => s.activeTool);
20
21
 
22
+ if (activeTool === 'spaceSketch') {
23
+ return <SpaceSketchOverlay />;
24
+ }
25
+
21
26
  if (activeTool === 'measure') {
22
27
  return <MeasureOverlay />;
23
28
  }
@@ -36,7 +36,6 @@ import { GanttPanel } from './schedule/GanttPanel';
36
36
  import { ExtensionsPanel } from '@/components/extensions/ExtensionsPanel';
37
37
  import { CommandPalette } from './CommandPalette';
38
38
  import { SearchModal } from './SearchModal';
39
- import { DesktopEntitlementBanner } from './DesktopEntitlementBanner';
40
39
  import {
41
40
  closeActiveAnalysisExtension,
42
41
  getAnalysisExtensionById,
@@ -286,7 +285,6 @@ export function ViewerLayout() {
286
285
 
287
286
  {/* Main Toolbar — use compact MobileToolbar on mobile */}
288
287
  {isMobile ? <MobileToolbar /> : <MainToolbar onShowShortcuts={shortcutsDialog.toggle} />}
289
- {!isMobile && <DesktopEntitlementBanner />}
290
288
 
291
289
  {/* Main Content Area - Desktop Layout */}
292
290
  {!isMobile && (
@@ -19,10 +19,7 @@ import { toGlobalIdFromModels } from '@/store/globalId';
19
19
  import { collectIfcBuildingStoreyElementsWithIfcSpace } from '@/store/basketVisibleSet';
20
20
  import { useIfc } from '@/hooks/useIfc';
21
21
  import { useWebGPU } from '@/hooks/useWebGPU';
22
- import { openIfcFileDialog } from '@/services/file-dialog';
23
- import { logToDesktopTerminal } from '@/services/desktop-logger';
24
22
  import { cacheFileBlobs, formatFileSize, getCachedFile, getRecentFiles, recordRecentFiles, type RecentFileEntry } from '@/lib/recent-files';
25
- import { isTauri } from '@/lib/platform';
26
23
  import { toast } from '@/components/ui/toast';
27
24
  import { describeUnsupportedFormat } from '@/hooks/ingest/pointCloudIngest';
28
25
  import { Upload, MousePointer, Layers, Info, Command, AlertTriangle, ChevronDown, ExternalLink, Plus, Clock3, Sparkles, ArrowUpRight, PackagePlus } from 'lucide-react';
@@ -69,6 +66,8 @@ export function ViewportContainer() {
69
66
  const releaseGeometryMemory = useViewerStore((s) => s.releaseGeometryMemory);
70
67
  const selectedStoreys = useViewerStore((s) => s.selectedStoreys);
71
68
  const typeVisibility = useViewerStore((s) => s.typeVisibility);
69
+ const typeViewMode = useViewerStore((s) => s.typeViewMode);
70
+ const setHasTypeGeometry = useViewerStore((s) => s.setHasTypeGeometry);
72
71
  const isolatedEntities = useViewerStore((s) => s.isolatedEntities);
73
72
  const classFilter = useViewerStore((s) => s.classFilter);
74
73
  const resetViewerState = useViewerStore((s) => s.resetViewerState);
@@ -392,20 +391,6 @@ export function ViewportContainer() {
392
391
  setCesiumSourceModelId(georef?.sourceModelId ?? null);
393
392
  }, [georef?.sourceModelId, setCesiumSourceModelId]);
394
393
 
395
- useEffect(() => {
396
- // Recent files are a desktop-only feature — the web viewer should not
397
- // show previously opened files in the landing page empty state.
398
- if (!isTauri()) return;
399
-
400
- const refreshRecentFiles = () => {
401
- setRecentFiles(getRecentFiles().slice(0, 3));
402
- };
403
-
404
- refreshRecentFiles();
405
- window.addEventListener('focus', refreshRecentFiles);
406
- return () => window.removeEventListener('focus', refreshRecentFiles);
407
- }, []);
408
-
409
394
  const handleDragOver = useCallback((e: React.DragEvent) => {
410
395
  e.preventDefault();
411
396
  e.stopPropagation();
@@ -504,7 +489,6 @@ export function ViewportContainer() {
504
489
 
505
490
  const handleStartBlank = useCallback(async () => {
506
491
  if (!webgpu.supported) return;
507
- void logToDesktopTerminal('info', '[ViewportContainer] Start blank IFC clicked');
508
492
  const file = createBlankIfcFile();
509
493
  // Must await: loadFile() calls resetViewerState() internally which
510
494
  // resets activeTool back to 'select'. Setting addElement before that
@@ -518,6 +502,52 @@ export function ViewportContainer() {
518
502
  // Check if any models are loaded (even if hidden) - used to show empty 3D vs starting UI
519
503
  const hasLoadedModels = storeModels.size > 0 || (geometryResult?.meshes && geometryResult.meshes.length > 0);
520
504
 
505
+ // Does the rendered geometry carry any type-library geometry? geometryClass
506
+ // 1 = orphan type, 2 = instanced type; class 0 = placed occurrence. The
507
+ // Model/Types switch is only meaningful — and "Types" only renders anything —
508
+ // when class 1/2 meshes exist, so we surface this to gate the toolbar control
509
+ // (#957 follow-up). Scanned incrementally (O(batch)) and short-circuited once
510
+ // any type mesh is seen, so the common occurrence-only model costs at most a
511
+ // single linear pass that stops early.
512
+ const typeGeoSourceRef = useRef<MeshData[] | null>(null);
513
+ const typeGeoScanLenRef = useRef(0);
514
+ const sawTypeGeometryRef = useRef(false);
515
+ const hasTypeGeometry = useMemo(() => {
516
+ const meshes = mergedGeometryResult?.meshes;
517
+ if (!meshes || meshes.length === 0) {
518
+ typeGeoSourceRef.current = meshes ?? null;
519
+ typeGeoScanLenRef.current = meshes?.length ?? 0;
520
+ sawTypeGeometryRef.current = false;
521
+ return false;
522
+ }
523
+ // New source array, or it shrank (new file / replace) → rescan from scratch.
524
+ if (typeGeoSourceRef.current !== meshes || meshes.length < typeGeoScanLenRef.current) {
525
+ typeGeoSourceRef.current = meshes;
526
+ typeGeoScanLenRef.current = 0;
527
+ sawTypeGeometryRef.current = false;
528
+ }
529
+ if (!sawTypeGeometryRef.current) {
530
+ for (let i = typeGeoScanLenRef.current; i < meshes.length; i++) {
531
+ if ((meshes[i].geometryClass ?? 0) !== 0) { sawTypeGeometryRef.current = true; break; }
532
+ }
533
+ }
534
+ typeGeoScanLenRef.current = meshes.length;
535
+ return sawTypeGeometryRef.current;
536
+ // geometryContentVersion bumps per streaming batch — picks up type geometry
537
+ // that arrives in a later batch even when the meshes array is mutated in place.
538
+ }, [mergedGeometryResult, geometryContentVersion]);
539
+
540
+ // Persisted view mode may be 'types' from a prior model; fall back to 'model'
541
+ // when the current geometry has no type library so "Types" never renders an
542
+ // empty scene (and the now-hidden switch can't be used to recover).
543
+ const effectiveViewMode = hasTypeGeometry ? typeViewMode : 'model';
544
+
545
+ // Publish to the store so the toolbar can hide the Model/Types switch when
546
+ // there is no type geometry to reveal.
547
+ useEffect(() => {
548
+ setHasTypeGeometry(hasTypeGeometry);
549
+ }, [hasTypeGeometry, setHasTypeGeometry]);
550
+
521
551
  // PERF: Incremental geometry filtering using refs.
522
552
  // Instead of creating a new 200K+ element array every batch (~200ms),
523
553
  // we push ONLY new meshes into a cached array — O(batch_size) not O(total).
@@ -526,6 +556,7 @@ export function ViewportContainer() {
526
556
  const filteredSourceLenRef = useRef(0);
527
557
  const filteredSourceRef = useRef<MeshData[] | null>(null);
528
558
  const filteredTypeVisRef = useRef(typeVisibility);
559
+ const filteredTypeModeRef = useRef(effectiveViewMode);
529
560
  const filteredVersionRef = useRef(0);
530
561
 
531
562
  const filteredGeometry = useMemo(() => {
@@ -540,18 +571,21 @@ export function ViewportContainer() {
540
571
  const allMeshes = mergedGeometryResult.meshes;
541
572
  const cache = filteredCacheRef.current;
542
573
 
543
- // Full rebuild if: type visibility changed, source shrunk (new file), or empty cache
574
+ // Full rebuild if: type visibility changed, view mode changed, source shrunk
575
+ // (new file), or empty cache
544
576
  const prevVis = filteredTypeVisRef.current;
545
577
  const typeVisChanged =
546
578
  prevVis.spaces !== typeVisibility.spaces ||
547
579
  prevVis.openings !== typeVisibility.openings ||
548
- prevVis.site !== typeVisibility.site;
580
+ prevVis.site !== typeVisibility.site ||
581
+ filteredTypeModeRef.current !== effectiveViewMode;
549
582
  const sourceChanged = filteredSourceRef.current !== allMeshes;
550
583
  if (typeVisChanged || sourceChanged || allMeshes.length < filteredSourceLenRef.current) {
551
584
  cache.length = 0;
552
585
  filteredSourceLenRef.current = 0;
553
586
  filteredSourceRef.current = allMeshes;
554
587
  filteredTypeVisRef.current = typeVisibility;
588
+ filteredTypeModeRef.current = effectiveViewMode;
555
589
  }
556
590
 
557
591
  const needsFilter = !typeVisibility.spaces || !typeVisibility.openings || !typeVisibility.site;
@@ -562,6 +596,18 @@ export function ViewportContainer() {
562
596
  const mesh = allMeshes[i];
563
597
  const ifcType = mesh.ifcType;
564
598
 
599
+ // Model/Types view switch (#957 follow-up). geometryClass: 0 = occurrence,
600
+ // 1 = orphan type (no occurrence — shown in BOTH modes since it's the only
601
+ // geometry), 2 = instanced type-library shape. In 'model' mode hide class 2
602
+ // (else the AC20 duplicate boxes at the MappingOrigin reappear); in 'types'
603
+ // mode hide occurrences (class 0) so only the type library shows.
604
+ const geometryClass = mesh.geometryClass ?? 0;
605
+ if (effectiveViewMode === 'types') {
606
+ if (geometryClass === 0) continue;
607
+ } else if (geometryClass === 2) {
608
+ continue;
609
+ }
610
+
565
611
  if (needsFilter) {
566
612
  if (ifcType === 'IfcSpace' && !typeVisibility.spaces) continue;
567
613
  if (ifcType === 'IfcOpeningElement' && !typeVisibility.openings) continue;
@@ -588,7 +634,7 @@ export function ViewportContainer() {
588
634
  // Return the same array reference — downstream change detection uses
589
635
  // geometryVersion (which increments each batch) instead of array identity.
590
636
  return cache;
591
- }, [mergedGeometryResult, typeVisibility]);
637
+ }, [mergedGeometryResult, typeVisibility, effectiveViewMode]);
592
638
 
593
639
  // Version counter that changes every batch — triggers useGeometryStreaming
594
640
  // without requiring a new geometry array reference.
@@ -882,27 +928,10 @@ export function ViewportContainer() {
882
928
  */}
883
929
  {/* Track 1 — open / drag */}
884
930
  <button
885
- onClick={async () => {
931
+ onClick={() => {
886
932
  if (!webgpu.supported) {
887
933
  return;
888
934
  }
889
-
890
- void logToDesktopTerminal('info', '[ViewportContainer] Empty-state open button clicked');
891
- const file = await openIfcFileDialog();
892
- if (file) {
893
- void logToDesktopTerminal('info', `[ViewportContainer] Native dialog selected ${file.path}`);
894
- recordRecentFiles([{
895
- name: file.name,
896
- size: file.size,
897
- path: file.path,
898
- modifiedMs: file.modifiedMs ?? null,
899
- }]);
900
- setRecentFiles(getRecentFiles().slice(0, 3));
901
- loadFile(file);
902
- return;
903
- }
904
-
905
- void logToDesktopTerminal('info', '[ViewportContainer] Falling back to browser file input');
906
935
  fileInputRef.current?.click();
907
936
  }}
908
937
  disabled={!webgpu.supported || webgpu.checking}
@@ -1064,7 +1093,7 @@ export function ViewportContainer() {
1064
1093
  )}
1065
1094
 
1066
1095
  {/* Cesium 3D world context overlay — rendered behind the WebGPU canvas (web only) */}
1067
- {cesiumEnabled && georef && !isTauri() && (
1096
+ {cesiumEnabled && georef && (
1068
1097
  <CesiumOverlay
1069
1098
  mapConversion={georef.mapConversion}
1070
1099
  cameraMapConversion={georef.baseMapConversion}
@@ -1075,7 +1104,7 @@ export function ViewportContainer() {
1075
1104
  storeyElevations={georef.storeyElevations}
1076
1105
  />
1077
1106
  )}
1078
- {cesiumEnabled && georef?.mapConversion && !isTauri() && georef.baseMapConversion && (
1107
+ {cesiumEnabled && georef?.mapConversion && georef.baseMapConversion && (
1079
1108
  <CesiumPlacementEditor
1080
1109
  modelId={georef.sourceModelId}
1081
1110
  mapConversion={georef.mapConversion}
@@ -1094,7 +1123,7 @@ export function ViewportContainer() {
1094
1123
  coordinateInfo={mergedGeometryResult?.coordinateInfo}
1095
1124
  computedIsolatedIds={computedIsolatedIds}
1096
1125
  modelIdToIndex={modelIdToIndex}
1097
- cesiumActive={cesiumEnabled && georef !== null && !isTauri()}
1126
+ cesiumActive={cesiumEnabled && georef !== null}
1098
1127
  releaseGeometryAfterStream={false}
1099
1128
  onGeometryReleased={releaseGeometryMemory}
1100
1129
  />