@snaptrude/plugin-core 0.0.0-bimsvg-20260928124803

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 (383) hide show
  1. package/AGENTS.md +231 -0
  2. package/CHANGELOG.md +341 -0
  3. package/CLAUDE.md +11 -0
  4. package/api-manifest.json +9120 -0
  5. package/dist/api/analysis/daylight.d.ts +603 -0
  6. package/dist/api/analysis/daylight.d.ts.map +1 -0
  7. package/dist/api/analysis/heatmaps.d.ts +658 -0
  8. package/dist/api/analysis/heatmaps.d.ts.map +1 -0
  9. package/dist/api/analysis/illuminance.d.ts +145 -0
  10. package/dist/api/analysis/illuminance.d.ts.map +1 -0
  11. package/dist/api/analysis/index.d.ts +59 -0
  12. package/dist/api/analysis/index.d.ts.map +1 -0
  13. package/dist/api/analysis/shadows.d.ts +165 -0
  14. package/dist/api/analysis/shadows.d.ts.map +1 -0
  15. package/dist/api/analysis/solar.d.ts +249 -0
  16. package/dist/api/analysis/solar.d.ts.map +1 -0
  17. package/dist/api/analysis/sunlightHours.d.ts +208 -0
  18. package/dist/api/analysis/sunlightHours.d.ts.map +1 -0
  19. package/dist/api/analysis/sunpath.d.ts +80 -0
  20. package/dist/api/analysis/sunpath.d.ts.map +1 -0
  21. package/dist/api/analysis/weather.d.ts +193 -0
  22. package/dist/api/analysis/weather.d.ts.map +1 -0
  23. package/dist/api/core/buildings.d.ts +427 -0
  24. package/dist/api/core/buildings.d.ts.map +1 -0
  25. package/dist/api/core/camera/index.d.ts +261 -0
  26. package/dist/api/core/camera/index.d.ts.map +1 -0
  27. package/dist/api/core/comment/index.d.ts +333 -0
  28. package/dist/api/core/comment/index.d.ts.map +1 -0
  29. package/dist/api/core/geom/create/index.d.ts +1073 -0
  30. package/dist/api/core/geom/create/index.d.ts.map +1 -0
  31. package/dist/api/core/geom/delete/index.d.ts +78 -0
  32. package/dist/api/core/geom/delete/index.d.ts.map +1 -0
  33. package/dist/api/core/geom/index.d.ts +33 -0
  34. package/dist/api/core/geom/index.d.ts.map +1 -0
  35. package/dist/api/core/geom/query/arc.d.ts +169 -0
  36. package/dist/api/core/geom/query/arc.d.ts.map +1 -0
  37. package/dist/api/core/geom/query/brep.d.ts +514 -0
  38. package/dist/api/core/geom/query/brep.d.ts.map +1 -0
  39. package/dist/api/core/geom/query/circle.d.ts +378 -0
  40. package/dist/api/core/geom/query/circle.d.ts.map +1 -0
  41. package/dist/api/core/geom/query/contour.d.ts +450 -0
  42. package/dist/api/core/geom/query/contour.d.ts.map +1 -0
  43. package/dist/api/core/geom/query/curve.d.ts +918 -0
  44. package/dist/api/core/geom/query/curve.d.ts.map +1 -0
  45. package/dist/api/core/geom/query/edge.d.ts +128 -0
  46. package/dist/api/core/geom/query/edge.d.ts.map +1 -0
  47. package/dist/api/core/geom/query/face.d.ts +363 -0
  48. package/dist/api/core/geom/query/face.d.ts.map +1 -0
  49. package/dist/api/core/geom/query/halfedge.d.ts +206 -0
  50. package/dist/api/core/geom/query/halfedge.d.ts.map +1 -0
  51. package/dist/api/core/geom/query/index.d.ts +61 -0
  52. package/dist/api/core/geom/query/index.d.ts.map +1 -0
  53. package/dist/api/core/geom/query/profile.d.ts +410 -0
  54. package/dist/api/core/geom/query/profile.d.ts.map +1 -0
  55. package/dist/api/core/geom/query/vertex.d.ts +187 -0
  56. package/dist/api/core/geom/query/vertex.d.ts.map +1 -0
  57. package/dist/api/core/geom/update/contour.d.ts +272 -0
  58. package/dist/api/core/geom/update/contour.d.ts.map +1 -0
  59. package/dist/api/core/geom/update/curve.d.ts +180 -0
  60. package/dist/api/core/geom/update/curve.d.ts.map +1 -0
  61. package/dist/api/core/geom/update/index.d.ts +27 -0
  62. package/dist/api/core/geom/update/index.d.ts.map +1 -0
  63. package/dist/api/core/geom/update/profile.d.ts +329 -0
  64. package/dist/api/core/geom/update/profile.d.ts.map +1 -0
  65. package/dist/api/core/groups.d.ts +485 -0
  66. package/dist/api/core/groups.d.ts.map +1 -0
  67. package/dist/api/core/handles/index.d.ts +210 -0
  68. package/dist/api/core/handles/index.d.ts.map +1 -0
  69. package/dist/api/core/history/index.d.ts +78 -0
  70. package/dist/api/core/history/index.d.ts.map +1 -0
  71. package/dist/api/core/index.d.ts +97 -0
  72. package/dist/api/core/index.d.ts.map +1 -0
  73. package/dist/api/core/io/export/index.d.ts +134 -0
  74. package/dist/api/core/io/export/index.d.ts.map +1 -0
  75. package/dist/api/core/io/import/index.d.ts +455 -0
  76. package/dist/api/core/io/import/index.d.ts.map +1 -0
  77. package/dist/api/core/io/index.d.ts +40 -0
  78. package/dist/api/core/io/index.d.ts.map +1 -0
  79. package/dist/api/core/io/job/index.d.ts +139 -0
  80. package/dist/api/core/io/job/index.d.ts.map +1 -0
  81. package/dist/api/core/io/query/index.d.ts +74 -0
  82. package/dist/api/core/io/query/index.d.ts.map +1 -0
  83. package/dist/api/core/io/terrain/index.d.ts +341 -0
  84. package/dist/api/core/io/terrain/index.d.ts.map +1 -0
  85. package/dist/api/core/io/underlay/index.d.ts +805 -0
  86. package/dist/api/core/io/underlay/index.d.ts.map +1 -0
  87. package/dist/api/core/layers.d.ts +402 -0
  88. package/dist/api/core/layers.d.ts.map +1 -0
  89. package/dist/api/core/math/index.d.ts +18 -0
  90. package/dist/api/core/math/index.d.ts.map +1 -0
  91. package/dist/api/core/math/quat.d.ts +170 -0
  92. package/dist/api/core/math/quat.d.ts.map +1 -0
  93. package/dist/api/core/math/vec3.d.ts +174 -0
  94. package/dist/api/core/math/vec3.d.ts.map +1 -0
  95. package/dist/api/core/mode/index.d.ts +111 -0
  96. package/dist/api/core/mode/index.d.ts.map +1 -0
  97. package/dist/api/core/project/index.d.ts +466 -0
  98. package/dist/api/core/project/index.d.ts.map +1 -0
  99. package/dist/api/core/proposals/index.d.ts +531 -0
  100. package/dist/api/core/proposals/index.d.ts.map +1 -0
  101. package/dist/api/core/storeys/index.d.ts +265 -0
  102. package/dist/api/core/storeys/index.d.ts.map +1 -0
  103. package/dist/api/core/tags.d.ts +860 -0
  104. package/dist/api/core/tags.d.ts.map +1 -0
  105. package/dist/api/core/units/index.d.ts +175 -0
  106. package/dist/api/core/units/index.d.ts.map +1 -0
  107. package/dist/api/core/user.d.ts +44 -0
  108. package/dist/api/core/user.d.ts.map +1 -0
  109. package/dist/api/core/zoom/index.d.ts +49 -0
  110. package/dist/api/core/zoom/index.d.ts.map +1 -0
  111. package/dist/api/design/boolean/index.d.ts +168 -0
  112. package/dist/api/design/boolean/index.d.ts.map +1 -0
  113. package/dist/api/design/create/bulk-items.d.ts +185 -0
  114. package/dist/api/design/create/bulk-items.d.ts.map +1 -0
  115. package/dist/api/design/create/grids.d.ts +132 -0
  116. package/dist/api/design/create/grids.d.ts.map +1 -0
  117. package/dist/api/design/create/index.d.ts +1747 -0
  118. package/dist/api/design/create/index.d.ts.map +1 -0
  119. package/dist/api/design/create/opening-fields.d.ts +37 -0
  120. package/dist/api/design/create/opening-fields.d.ts.map +1 -0
  121. package/dist/api/design/delete/index.d.ts +70 -0
  122. package/dist/api/design/delete/index.d.ts.map +1 -0
  123. package/dist/api/design/dimensions.d.ts +427 -0
  124. package/dist/api/design/dimensions.d.ts.map +1 -0
  125. package/dist/api/design/doors/index.d.ts +470 -0
  126. package/dist/api/design/doors/index.d.ts.map +1 -0
  127. package/dist/api/design/edit/index.d.ts +49 -0
  128. package/dist/api/design/edit/index.d.ts.map +1 -0
  129. package/dist/api/design/erase/index.d.ts +160 -0
  130. package/dist/api/design/erase/index.d.ts.map +1 -0
  131. package/dist/api/design/family.d.ts +611 -0
  132. package/dist/api/design/family.d.ts.map +1 -0
  133. package/dist/api/design/furniture/index.d.ts +296 -0
  134. package/dist/api/design/furniture/index.d.ts.map +1 -0
  135. package/dist/api/design/grids.d.ts +237 -0
  136. package/dist/api/design/grids.d.ts.map +1 -0
  137. package/dist/api/design/index.d.ts +260 -0
  138. package/dist/api/design/index.d.ts.map +1 -0
  139. package/dist/api/design/lock.d.ts +67 -0
  140. package/dist/api/design/lock.d.ts.map +1 -0
  141. package/dist/api/design/materials/index.d.ts +551 -0
  142. package/dist/api/design/materials/index.d.ts.map +1 -0
  143. package/dist/api/design/query/geometry/index.d.ts +252 -0
  144. package/dist/api/design/query/geometry/index.d.ts.map +1 -0
  145. package/dist/api/design/query/grids.d.ts +287 -0
  146. package/dist/api/design/query/grids.d.ts.map +1 -0
  147. package/dist/api/design/query/index.d.ts +1318 -0
  148. package/dist/api/design/query/index.d.ts.map +1 -0
  149. package/dist/api/design/query/referenceLines.d.ts +45 -0
  150. package/dist/api/design/query/referenceLines.d.ts.map +1 -0
  151. package/dist/api/design/query/spaces.d.ts +394 -0
  152. package/dist/api/design/query/spaces.d.ts.map +1 -0
  153. package/dist/api/design/selection/index.d.ts +282 -0
  154. package/dist/api/design/selection/index.d.ts.map +1 -0
  155. package/dist/api/design/shared.d.ts +38 -0
  156. package/dist/api/design/shared.d.ts.map +1 -0
  157. package/dist/api/design/transform/index.d.ts +249 -0
  158. package/dist/api/design/transform/index.d.ts.map +1 -0
  159. package/dist/api/design/types/index.d.ts +181 -0
  160. package/dist/api/design/types/index.d.ts.map +1 -0
  161. package/dist/api/design/update/index.d.ts +803 -0
  162. package/dist/api/design/update/index.d.ts.map +1 -0
  163. package/dist/api/design/visibility.d.ts +126 -0
  164. package/dist/api/design/visibility.d.ts.map +1 -0
  165. package/dist/api/design/windows/index.d.ts +300 -0
  166. package/dist/api/design/windows/index.d.ts.map +1 -0
  167. package/dist/api/entity/buildableEnvelope.d.ts +265 -0
  168. package/dist/api/entity/buildableEnvelope.d.ts.map +1 -0
  169. package/dist/api/entity/department.d.ts +1 -0
  170. package/dist/api/entity/department.d.ts.map +1 -0
  171. package/dist/api/entity/index.d.ts +28 -0
  172. package/dist/api/entity/index.d.ts.map +1 -0
  173. package/dist/api/entity/referenceLine.d.ts +210 -0
  174. package/dist/api/entity/referenceLine.d.ts.map +1 -0
  175. package/dist/api/entity/space.d.ts +846 -0
  176. package/dist/api/entity/space.d.ts.map +1 -0
  177. package/dist/api/entity/story.d.ts +476 -0
  178. package/dist/api/entity/story.d.ts.map +1 -0
  179. package/dist/api/index.d.ts +45 -0
  180. package/dist/api/index.d.ts.map +1 -0
  181. package/dist/api/presentation/aiInspiration.d.ts +2400 -0
  182. package/dist/api/presentation/aiInspiration.d.ts.map +1 -0
  183. package/dist/api/presentation/annotate.d.ts +483 -0
  184. package/dist/api/presentation/annotate.d.ts.map +1 -0
  185. package/dist/api/presentation/diagrams.d.ts +184 -0
  186. package/dist/api/presentation/diagrams.d.ts.map +1 -0
  187. package/dist/api/presentation/drawings.d.ts +2900 -0
  188. package/dist/api/presentation/drawings.d.ts.map +1 -0
  189. package/dist/api/presentation/export.d.ts +126 -0
  190. package/dist/api/presentation/export.d.ts.map +1 -0
  191. package/dist/api/presentation/import.d.ts +164 -0
  192. package/dist/api/presentation/import.d.ts.map +1 -0
  193. package/dist/api/presentation/index.d.ts +114 -0
  194. package/dist/api/presentation/index.d.ts.map +1 -0
  195. package/dist/api/presentation/placedViews.d.ts +1232 -0
  196. package/dist/api/presentation/placedViews.d.ts.map +1 -0
  197. package/dist/api/presentation/shapes.d.ts +481 -0
  198. package/dist/api/presentation/shapes.d.ts.map +1 -0
  199. package/dist/api/presentation/sheets.d.ts +643 -0
  200. package/dist/api/presentation/sheets.d.ts.map +1 -0
  201. package/dist/api/presentation/slideshow.d.ts +125 -0
  202. package/dist/api/presentation/slideshow.d.ts.map +1 -0
  203. package/dist/api/presentation/tables.d.ts +81 -0
  204. package/dist/api/presentation/tables.d.ts.map +1 -0
  205. package/dist/api/presentation/viewPresets.d.ts +70 -0
  206. package/dist/api/presentation/viewPresets.d.ts.map +1 -0
  207. package/dist/api/presentation/views.d.ts +741 -0
  208. package/dist/api/presentation/views.d.ts.map +1 -0
  209. package/dist/api/program/adjacency.d.ts +155 -0
  210. package/dist/api/program/adjacency.d.ts.map +1 -0
  211. package/dist/api/program/areas.d.ts +450 -0
  212. package/dist/api/program/areas.d.ts.map +1 -0
  213. package/dist/api/program/classification.d.ts +135 -0
  214. package/dist/api/program/classification.d.ts.map +1 -0
  215. package/dist/api/program/cores.d.ts +78 -0
  216. package/dist/api/program/cores.d.ts.map +1 -0
  217. package/dist/api/program/departments.d.ts +487 -0
  218. package/dist/api/program/departments.d.ts.map +1 -0
  219. package/dist/api/program/index.d.ts +71 -0
  220. package/dist/api/program/index.d.ts.map +1 -0
  221. package/dist/api/program/labels.d.ts +355 -0
  222. package/dist/api/program/labels.d.ts.map +1 -0
  223. package/dist/api/program/layout.d.ts +398 -0
  224. package/dist/api/program/layout.d.ts.map +1 -0
  225. package/dist/api/program/metadata.d.ts +328 -0
  226. package/dist/api/program/metadata.d.ts.map +1 -0
  227. package/dist/api/program/metrics.d.ts +108 -0
  228. package/dist/api/program/metrics.d.ts.map +1 -0
  229. package/dist/api/program/site.d.ts +823 -0
  230. package/dist/api/program/site.d.ts.map +1 -0
  231. package/dist/api/program/spreadsheet.d.ts +2628 -0
  232. package/dist/api/program/spreadsheet.d.ts.map +1 -0
  233. package/dist/api/workspace/index.d.ts +552 -0
  234. package/dist/api/workspace/index.d.ts.map +1 -0
  235. package/dist/errors/codes.d.ts +34 -0
  236. package/dist/errors/codes.d.ts.map +1 -0
  237. package/dist/errors/envelope.d.ts +56 -0
  238. package/dist/errors/envelope.d.ts.map +1 -0
  239. package/dist/errors/index.d.ts +6 -0
  240. package/dist/errors/index.d.ts.map +1 -0
  241. package/dist/errors/plugin-error.d.ts +69 -0
  242. package/dist/errors/plugin-error.d.ts.map +1 -0
  243. package/dist/handles.d.ts +229 -0
  244. package/dist/handles.d.ts.map +1 -0
  245. package/dist/host-utils.d.ts +47 -0
  246. package/dist/host-utils.d.ts.map +1 -0
  247. package/dist/index.cjs +8836 -0
  248. package/dist/index.cjs.map +1 -0
  249. package/dist/index.d.ts +6 -0
  250. package/dist/index.d.ts.map +1 -0
  251. package/dist/index.js +7568 -0
  252. package/dist/index.js.map +1 -0
  253. package/dist/types.d.ts +16 -0
  254. package/dist/types.d.ts.map +1 -0
  255. package/package.json +41 -0
  256. package/scripts/generate-manifest.mjs +238 -0
  257. package/scripts/generate-manifest.test.mjs +292 -0
  258. package/src/api/analysis/daylight.ts +470 -0
  259. package/src/api/analysis/heatmaps.ts +683 -0
  260. package/src/api/analysis/illuminance.ts +155 -0
  261. package/src/api/analysis/index.ts +61 -0
  262. package/src/api/analysis/shadows.ts +183 -0
  263. package/src/api/analysis/solar.ts +237 -0
  264. package/src/api/analysis/sunlightHours.ts +211 -0
  265. package/src/api/analysis/sunpath.ts +83 -0
  266. package/src/api/analysis/weather.ts +179 -0
  267. package/src/api/core/buildings.ts +485 -0
  268. package/src/api/core/camera/index.ts +268 -0
  269. package/src/api/core/comment/index.ts +376 -0
  270. package/src/api/core/geom/create/index.ts +1204 -0
  271. package/src/api/core/geom/delete/index.ts +84 -0
  272. package/src/api/core/geom/index.ts +35 -0
  273. package/src/api/core/geom/query/arc.ts +169 -0
  274. package/src/api/core/geom/query/brep.ts +563 -0
  275. package/src/api/core/geom/query/circle.ts +404 -0
  276. package/src/api/core/geom/query/contour.ts +540 -0
  277. package/src/api/core/geom/query/curve.ts +1078 -0
  278. package/src/api/core/geom/query/edge.ts +130 -0
  279. package/src/api/core/geom/query/face.ts +403 -0
  280. package/src/api/core/geom/query/halfedge.ts +210 -0
  281. package/src/api/core/geom/query/index.ts +63 -0
  282. package/src/api/core/geom/query/profile.ts +473 -0
  283. package/src/api/core/geom/query/vertex.ts +205 -0
  284. package/src/api/core/geom/update/contour.ts +315 -0
  285. package/src/api/core/geom/update/curve.ts +209 -0
  286. package/src/api/core/geom/update/index.ts +29 -0
  287. package/src/api/core/geom/update/profile.ts +377 -0
  288. package/src/api/core/groups.ts +521 -0
  289. package/src/api/core/handles/index.ts +233 -0
  290. package/src/api/core/history/index.ts +84 -0
  291. package/src/api/core/index.ts +99 -0
  292. package/src/api/core/io/export/index.ts +126 -0
  293. package/src/api/core/io/import/index.ts +504 -0
  294. package/src/api/core/io/index.ts +42 -0
  295. package/src/api/core/io/job/index.ts +140 -0
  296. package/src/api/core/io/query/index.ts +71 -0
  297. package/src/api/core/io/terrain/index.ts +360 -0
  298. package/src/api/core/io/underlay/index.ts +705 -0
  299. package/src/api/core/layers.ts +333 -0
  300. package/src/api/core/math/index.ts +20 -0
  301. package/src/api/core/math/quat.ts +172 -0
  302. package/src/api/core/math/vec3.ts +179 -0
  303. package/src/api/core/mode/index.ts +108 -0
  304. package/src/api/core/project/index.ts +479 -0
  305. package/src/api/core/proposals/index.ts +569 -0
  306. package/src/api/core/storeys/index.ts +294 -0
  307. package/src/api/core/tags.ts +911 -0
  308. package/src/api/core/units/index.ts +164 -0
  309. package/src/api/core/user.ts +46 -0
  310. package/src/api/core/zoom/index.ts +51 -0
  311. package/src/api/design/boolean/index.ts +179 -0
  312. package/src/api/design/create/bulk-items.ts +186 -0
  313. package/src/api/design/create/grids.ts +137 -0
  314. package/src/api/design/create/index.ts +1954 -0
  315. package/src/api/design/create/opening-fields.ts +37 -0
  316. package/src/api/design/delete/index.ts +74 -0
  317. package/src/api/design/dimensions.ts +453 -0
  318. package/src/api/design/doors/index.ts +500 -0
  319. package/src/api/design/edit/index.ts +54 -0
  320. package/src/api/design/erase/index.ts +151 -0
  321. package/src/api/design/family.ts +646 -0
  322. package/src/api/design/furniture/index.ts +319 -0
  323. package/src/api/design/grids.ts +237 -0
  324. package/src/api/design/index.ts +274 -0
  325. package/src/api/design/lock.ts +69 -0
  326. package/src/api/design/materials/index.ts +608 -0
  327. package/src/api/design/query/geometry/index.ts +288 -0
  328. package/src/api/design/query/grids.ts +197 -0
  329. package/src/api/design/query/index.ts +1176 -0
  330. package/src/api/design/query/referenceLines.ts +52 -0
  331. package/src/api/design/query/spaces.ts +275 -0
  332. package/src/api/design/selection/index.ts +273 -0
  333. package/src/api/design/shared.ts +40 -0
  334. package/src/api/design/transform/index.ts +254 -0
  335. package/src/api/design/types/index.ts +156 -0
  336. package/src/api/design/update/index.ts +798 -0
  337. package/src/api/design/visibility.ts +143 -0
  338. package/src/api/design/windows/index.ts +333 -0
  339. package/src/api/entity/buildableEnvelope.ts +322 -0
  340. package/src/api/entity/department.ts +0 -0
  341. package/src/api/entity/index.ts +30 -0
  342. package/src/api/entity/referenceLine.ts +235 -0
  343. package/src/api/entity/space.ts +612 -0
  344. package/src/api/entity/story.ts +517 -0
  345. package/src/api/index.ts +47 -0
  346. package/src/api/presentation/aiInspiration.ts +1116 -0
  347. package/src/api/presentation/annotate.ts +417 -0
  348. package/src/api/presentation/diagrams.ts +194 -0
  349. package/src/api/presentation/drawings.ts +529 -0
  350. package/src/api/presentation/export.ts +133 -0
  351. package/src/api/presentation/import.ts +159 -0
  352. package/src/api/presentation/index.ts +129 -0
  353. package/src/api/presentation/placedViews.ts +1203 -0
  354. package/src/api/presentation/shapes.ts +274 -0
  355. package/src/api/presentation/sheets.ts +616 -0
  356. package/src/api/presentation/slideshow.ts +134 -0
  357. package/src/api/presentation/tables.ts +84 -0
  358. package/src/api/presentation/viewPresets.ts +83 -0
  359. package/src/api/presentation/views.ts +698 -0
  360. package/src/api/program/adjacency.ts +164 -0
  361. package/src/api/program/areas.ts +408 -0
  362. package/src/api/program/classification.ts +138 -0
  363. package/src/api/program/cores.ts +83 -0
  364. package/src/api/program/departments.ts +517 -0
  365. package/src/api/program/index.ts +73 -0
  366. package/src/api/program/labels.ts +332 -0
  367. package/src/api/program/layout.ts +422 -0
  368. package/src/api/program/metadata.ts +364 -0
  369. package/src/api/program/metrics.ts +120 -0
  370. package/src/api/program/site.ts +748 -0
  371. package/src/api/program/spreadsheet.ts +2698 -0
  372. package/src/api/workspace/index.ts +612 -0
  373. package/src/errors/codes.ts +136 -0
  374. package/src/errors/envelope.ts +75 -0
  375. package/src/errors/index.ts +21 -0
  376. package/src/errors/plugin-error.ts +134 -0
  377. package/src/handles.ts +282 -0
  378. package/src/host-utils.ts +68 -0
  379. package/src/index.ts +5 -0
  380. package/src/types.ts +16 -0
  381. package/test/errors.test.mjs +184 -0
  382. package/tsconfig.json +22 -0
  383. package/tsup.config.ts +12 -0
@@ -0,0 +1,159 @@
1
+ import * as z from "zod"
2
+ import { PluginApiReturn } from "../../types"
3
+
4
+ /**
5
+ * Presentation import — bring external reference assets onto the Present canvas.
6
+ *
7
+ * `import.image` places a reference image, `import.pdf` places a PDF (each
8
+ * page vectorized to SVG), and `import.svg` places a validated SVG onto
9
+ * the current Present sheet, returning the created canvas shape ids. Requires
10
+ * Present mode to be open.
11
+ *
12
+ * The host engine takes a browser `File`, which a plugin worker cannot supply,
13
+ * so these accept a `url`/`dataUrl` that the host adapts into a `File`.
14
+ *
15
+ * Accessed via `snaptrude.presentation.import`.
16
+ */
17
+ export abstract class PluginPresentationImportApi {
18
+ constructor() {}
19
+
20
+ /**
21
+ * Import a reference image onto the current Present sheet.
22
+ *
23
+ * To place the image as a **scene** underlay to trace over — on a storey,
24
+ * not the Present canvas — use `core.io.import.image` instead.
25
+ *
26
+ * @param source - The asset to import: exactly one of `url` or `dataUrl`.
27
+ * @param options - Optional `position` — where to place the image on the
28
+ * sheet.
29
+ * @returns A {@linkcode PluginPresentationImportResult} with the created
30
+ * `shapeIds`.
31
+ * @throws If Present mode is not open or the source cannot be loaded.
32
+ *
33
+ * @examplePrompt Import this reference image onto the present canvas
34
+ * @examplePrompt Add a JPG to my presentation board
35
+ * @examplePrompt Drop this site photo onto the current sheet
36
+ * @examplePrompt Bring an inspiration image into Present mode
37
+ *
38
+ * # Example
39
+ * ```ts
40
+ * const { shapeIds } = await snaptrude.presentation.import.image(
41
+ * { url: "https://example.com/ref.png" },
42
+ * { position: { x: 200, y: 150 } },
43
+ * )
44
+ * ```
45
+ */
46
+ public abstract image(
47
+ source: { url?: string; dataUrl?: string },
48
+ options?: { position?: { x: number; y: number } },
49
+ ): PluginApiReturn<PluginPresentationImportResult>
50
+
51
+ /**
52
+ * Import a PDF onto the current Present sheet (one shape per page).
53
+ *
54
+ * Each page is converted to vector SVG and placed as a canvas shape.
55
+ *
56
+ * To bring the PDF into the **scene** as a traceable underlay — on a storey,
57
+ * not the Present canvas — use `core.io.import.pdf` instead.
58
+ *
59
+ * @param source - The asset to import: exactly one of `url` or `dataUrl`.
60
+ * @param options - Optional `position` — where to place the pages on the
61
+ * sheet.
62
+ * @returns A {@linkcode PluginPresentationImportResult} with one `shapeId` per
63
+ * page.
64
+ * @throws If Present mode is not open or the source cannot be loaded.
65
+ *
66
+ * @examplePrompt Import this PDF onto the present canvas
67
+ * @examplePrompt Add a multi-page PDF reference to my board
68
+ * @examplePrompt Bring a PDF floor plan into Present mode as vectors
69
+ * @examplePrompt Place each page of this PDF on the sheet
70
+ *
71
+ * # Example
72
+ * ```ts
73
+ * const { shapeIds } = await snaptrude.presentation.import.pdf({
74
+ * url: "https://example.com/plans.pdf",
75
+ * })
76
+ * ```
77
+ */
78
+ public abstract pdf(
79
+ source: { url?: string; dataUrl?: string },
80
+ options?: { position?: { x: number; y: number } },
81
+ ): PluginApiReturn<PluginPresentationImportResult>
82
+
83
+ /**
84
+ * Import an SVG onto the current Present sheet as a vector asset.
85
+ *
86
+ * An SVG-validating variant of {@linkcode PluginPresentationImportApi.image}:
87
+ * `import.image` already passes SVG sources through, but this method first
88
+ * validates that the source really is an SVG and forces the vector mime
89
+ * type. Throws if the source is not an SVG.
90
+ *
91
+ * **Rendering is vector up to a complexity cap.** Simple SVGs (up to ~1500
92
+ * SVG element nodes and ~2 MB) render true-vector and stay crisp at every
93
+ * zoom. Beyond that cap the shared canvas renderer **intentionally falls
94
+ * back to a 1920px raster** to protect canvas performance, so very complex
95
+ * SVGs can look rasterized when zoomed in. The stored asset is the original
96
+ * SVG either way; only the on-canvas rendering falls back.
97
+ *
98
+ * @param source - The SVG to import: exactly one of `url` or `dataUrl`.
99
+ * @param options - Optional `position` — where to place the SVG on the sheet.
100
+ * @returns A {@linkcode PluginPresentationImportResult} with the created
101
+ * `shapeIds`.
102
+ * @throws If Present mode is not open, the source is not an SVG, or it cannot
103
+ * be loaded.
104
+ *
105
+ * @examplePrompt Import this SVG diagram onto the present canvas
106
+ * @examplePrompt Add a vector logo to my presentation board
107
+ * @examplePrompt Place this SVG floor plan on the current sheet as vectors
108
+ * @examplePrompt Bring a crisp vector graphic into Present mode
109
+ *
110
+ * # Example
111
+ * ```ts
112
+ * const { shapeIds } = await snaptrude.presentation.import.svg({
113
+ * url: "https://example.com/diagram.svg",
114
+ * })
115
+ * ```
116
+ */
117
+ public abstract svg(
118
+ source: { url?: string; dataUrl?: string },
119
+ options?: { position?: { x: number; y: number } },
120
+ ): PluginApiReturn<PluginPresentationImportResult>
121
+ }
122
+
123
+ /**
124
+ * Arguments for {@linkcode PluginPresentationImportApi.image} /
125
+ * {@linkcode PluginPresentationImportApi.pdf} /
126
+ * {@linkcode PluginPresentationImportApi.svg}. Provide exactly one source.
127
+ *
128
+ * | Property | Type | Description |
129
+ * |---|---|---|
130
+ * | `url` | `string \| undefined` | URL of the asset to import |
131
+ * | `dataUrl` | `string \| undefined` | Base64 data URL of the asset |
132
+ * | `position` | `{ x: number; y: number } \| undefined` | Where to place it on the sheet |
133
+ */
134
+ export const PluginPresentationImportArgs = z
135
+ .object({
136
+ url: z.string().optional(),
137
+ dataUrl: z.string().optional(),
138
+ position: z.object({ x: z.number(), y: z.number() }).optional(),
139
+ })
140
+ .refine((a) => Boolean(a.url) || Boolean(a.dataUrl), {
141
+ message: "Provide a url or a dataUrl",
142
+ })
143
+ export type PluginPresentationImportArgs = z.infer<
144
+ typeof PluginPresentationImportArgs
145
+ >
146
+
147
+ /**
148
+ * Result of an import.
149
+ *
150
+ * | Property | Type | Description |
151
+ * |---|---|---|
152
+ * | `shapeIds` | `string[]` | Ids of the created canvas shapes (one per page for PDFs) |
153
+ */
154
+ export const PluginPresentationImportResult = z.object({
155
+ shapeIds: z.array(z.string()),
156
+ })
157
+ export type PluginPresentationImportResult = z.infer<
158
+ typeof PluginPresentationImportResult
159
+ >
@@ -0,0 +1,129 @@
1
+ import { PluginApiReturn } from "../../types"
2
+ import { PluginPresentationViewsApi } from "./views"
3
+ import { PluginPresentationAIInspirationApi } from "./aiInspiration"
4
+ import { PluginPresentationSheetsApi } from "./sheets"
5
+ import { PluginPresentationPlacedViewsApi } from "./placedViews"
6
+ import { PluginPresentationDiagramsApi } from "./diagrams"
7
+ import { PluginPresentationDrawingsApi } from "./drawings"
8
+ import { PluginPresentationViewPresetsApi } from "./viewPresets"
9
+ import { PluginPresentationAnnotateApi } from "./annotate"
10
+ import { PluginPresentationShapesApi } from "./shapes"
11
+ import { PluginPresentationTablesApi } from "./tables"
12
+ import { PluginPresentationSlideshowApi } from "./slideshow"
13
+ import { PluginPresentationImportApi } from "./import"
14
+ import {
15
+ type PluginPresentationExportResult,
16
+ type PluginPresentationExportDownloadResult,
17
+ type PluginPresentationExportFormat,
18
+ type PluginPresentationExportOptions,
19
+ } from "./export"
20
+
21
+ /**
22
+ * Presentation APIs — prepare and assemble presentations.
23
+ *
24
+ * Reads describe the artifacts a presentation is built from (saved views, layout
25
+ * sheets); writes assemble them (place views/diagrams on sheets, import
26
+ * references, capture/save views). Present-mode AI Inspiration also lives here.
27
+ *
28
+ * Several members require **Present mode to be open** (the documentation editor):
29
+ * sheets, diagram placement, and import.
30
+ *
31
+ * - {@linkcode PluginPresentationApi.views} — Saved 2D/3D views (list, get, capture, activate, create)
32
+ * - {@linkcode PluginPresentationApi.sheets} — Layout sheets (list, get, create, place views)
33
+ * - {@linkcode PluginPresentationApi.placedViews} — Views already placed on the canvas (move, scale, crop)
34
+ * - {@linkcode PluginPresentationApi.diagrams} — Generate program/site diagram sheets, place diagram images
35
+ * - {@linkcode PluginPresentationApi.tables} — Place data tables on sheets
36
+ * - {@linkcode PluginPresentationApi.slideshow} — Run the Present-mode slideshow
37
+ * - {@linkcode PluginPresentationApi.import} — Import reference images/PDFs onto the canvas
38
+ * - {@linkcode PluginPresentationApi.aiInspiration} — Present-mode AI image/video generation
39
+ *
40
+ * Accessed via `snaptrude.presentation`.
41
+ */
42
+ export abstract class PluginPresentationApi {
43
+ /** Saved 2D/3D views. See {@linkcode PluginPresentationViewsApi}. */
44
+ public abstract views: PluginPresentationViewsApi
45
+ /** Drawing deliverables independent of sheet composition; Present must be open. */
46
+ public abstract drawings: PluginPresentationDrawingsApi
47
+ /** Reusable kernel-plan styles stored in the Present document. */
48
+ public abstract viewPresets: PluginPresentationViewPresetsApi
49
+ /** Layout sheets — list/get/create and place views (Present mode). See {@linkcode PluginPresentationSheetsApi}. */
50
+ public abstract sheets: PluginPresentationSheetsApi
51
+ /** Placed views — layout of the view shapes on the canvas: move/scale/setScale/setCrop (Present mode). See {@linkcode PluginPresentationPlacedViewsApi}. */
52
+ public abstract placedViews: PluginPresentationPlacedViewsApi
53
+ /** Program/adjacency/site diagrams — place images on sheets. See {@linkcode PluginPresentationDiagramsApi}. */
54
+ public abstract diagrams: PluginPresentationDiagramsApi
55
+ /** Annotations on Present-mode sheets — text/arrows/notes/geo shapes. See {@linkcode PluginPresentationAnnotateApi}. */
56
+ public abstract annotate: PluginPresentationAnnotateApi
57
+ /** Plugin-owned keyed shapes — upsert/remove/list so reruns update instead of duplicating. See {@linkcode PluginPresentationShapesApi}. */
58
+ public abstract shapes: PluginPresentationShapesApi
59
+ /** Data tables on Present sheets — place string rows as a table shape. See {@linkcode PluginPresentationTablesApi}. */
60
+ public abstract tables: PluginPresentationTablesApi
61
+ /** The Present-mode slideshow — start/stop/getState. See {@linkcode PluginPresentationSlideshowApi}. */
62
+ public abstract slideshow: PluginPresentationSlideshowApi
63
+ /** Import reference images/PDFs onto the Present canvas. See {@linkcode PluginPresentationImportApi}. */
64
+ public abstract import: PluginPresentationImportApi
65
+ /**
66
+ * Present-mode AI Inspiration image/video generation. See
67
+ * {@linkcode PluginPresentationAIInspirationApi}.
68
+ */
69
+ public abstract aiInspiration: PluginPresentationAIInspirationApi
70
+
71
+ /**
72
+ * Export the presentation's layout sheets to a downloadable file (PDF / PNG /
73
+ * JPG). Return base64 by default; `download: true` initiates browser downloads
74
+ * and returns metadata without base64. Requires Present mode to be open.
75
+ *
76
+ * @param format - Output format: `"pdf"`, `"png"`, or `"jpg"`.
77
+ * @param options - Optional `sheetIds` (all sheets when omitted), `combine`
78
+ * (PDF only — one multi-page file vs one per sheet, default `true`),
79
+ * `resolution` (raster target size for `png`/`jpg`), `fileName`, and `download`.
80
+ * @returns A `files` array (one entry for a combined PDF, one per sheet otherwise).
81
+ * Downloads return {@linkcode PluginPresentationExportDownloadResult}; otherwise
82
+ * {@linkcode PluginPresentationExportResult}. Download initiation does not prove
83
+ * the browser saved the file; multiple downloads may require user permission.
84
+ * @throws If Present mode is not open, a `sheetId` is unknown, or a sheet
85
+ * fails to serialize/encode.
86
+ *
87
+ * @examplePrompt Export the presentation as a PDF
88
+ * @examplePrompt Download all sheets as a single PDF
89
+ * @examplePrompt Export sheet 1 as a PNG
90
+ * @examplePrompt Save the presentation sheets as JPG images
91
+ * @examplePrompt Export these sheets to PDF at high resolution
92
+ *
93
+ * # Example
94
+ * ```ts
95
+ * const { files } = await snaptrude.presentation.export("pdf")
96
+ * const download = await snaptrude.presentation.export("pdf", { download: true })
97
+ * ```
98
+ */
99
+ public abstract export(
100
+ format: PluginPresentationExportFormat,
101
+ options?: PluginPresentationExportOptions & { download?: false },
102
+ ): PluginApiReturn<PluginPresentationExportResult>
103
+ public abstract export(
104
+ format: PluginPresentationExportFormat,
105
+ options: PluginPresentationExportOptions & { download: true },
106
+ ): PluginApiReturn<PluginPresentationExportDownloadResult>
107
+ public abstract export(
108
+ format: PluginPresentationExportFormat,
109
+ options?: PluginPresentationExportOptions,
110
+ ): PluginApiReturn<
111
+ PluginPresentationExportResult | PluginPresentationExportDownloadResult
112
+ >
113
+
114
+ constructor() {}
115
+ }
116
+
117
+ export * from "./views"
118
+ export * from "./sheets"
119
+ export * from "./placedViews"
120
+ export * from "./diagrams"
121
+ export * from "./annotate"
122
+ export * from "./shapes"
123
+ export * from "./tables"
124
+ export * from "./slideshow"
125
+ export * from "./import"
126
+ export * from "./aiInspiration"
127
+ export * from "./export"
128
+ export * from "./drawings"
129
+ export * from "./viewPresets"