@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,134 @@
1
+ import * as z from "zod"
2
+ import { PluginApiReturn } from "../../types"
3
+
4
+ /**
5
+ * Presentation slideshow — run the Present-mode slideshow programmatically.
6
+ *
7
+ * The scriptable counterpart of the Present toolbar's slideshow: the
8
+ * slideshow plays **all** layout sheets in sheet order (hidden sheets are
9
+ * excluded) — `start` options only pick the slide it opens on. Slide
10
+ * navigation stays with the user (arrow keys / on-screen controls); there is
11
+ * intentionally no `next`/`prev`/`goTo`.
12
+ *
13
+ * **Fullscreen caveat:** browsers only grant fullscreen on a user gesture. A
14
+ * plugin-triggered `start` usually fails that check, in which case the
15
+ * slideshow catches the rejection and runs non-fullscreen (same slides, same
16
+ * controls, windowed).
17
+ *
18
+ * `start`/`stop` are write-gated; `getState` is a never-throw read. Requires
19
+ * Present mode to be open (except `getState`, which reports not-running).
20
+ *
21
+ * Accessed via `snaptrude.presentation.slideshow`.
22
+ */
23
+ export abstract class PluginPresentationSlideshowApi {
24
+ constructor() {}
25
+
26
+ /**
27
+ * Start the slideshow.
28
+ *
29
+ * Launches the Present-mode slideshow over all layout sheets in sheet
30
+ * order. `options.startIndex` opens on that slide (clamped into range);
31
+ * otherwise `options.sheetIds` naming exactly one sheet opens on that
32
+ * sheet; otherwise it opens on the first slide. May run non-fullscreen —
33
+ * see the fullscreen caveat on
34
+ * {@linkcode PluginPresentationSlideshowApi}. Requires Present mode to be
35
+ * open with at least one sheet.
36
+ *
37
+ * @param options - Optional `sheetIds` (open on this sheet when exactly one
38
+ * id is given) and `startIndex` (0-based slide to open on; wins over
39
+ * `sheetIds`; clamped into range).
40
+ * @returns The {@linkcode PluginPresentationSlideshowState} after the
41
+ * launch (`running: true` and the opening `index`).
42
+ * @throws If Present mode is not open or there are no sheets to present.
43
+ *
44
+ * @examplePrompt Start the slideshow
45
+ * @examplePrompt Present the sheets from the beginning
46
+ * @examplePrompt Start the slideshow on sheet 3
47
+ * @examplePrompt Play the presentation starting at the cover sheet
48
+ *
49
+ * # Example
50
+ * ```ts
51
+ * const state = await snaptrude.presentation.slideshow.start({ startIndex: 2 })
52
+ * console.log(state.running, state.index) // true, 2
53
+ * ```
54
+ */
55
+ public abstract start(options?: {
56
+ sheetIds?: string[]
57
+ startIndex?: number
58
+ }): PluginApiReturn<PluginPresentationSlideshowState>
59
+
60
+ /**
61
+ * Stop the slideshow.
62
+ *
63
+ * Closes the running slideshow (exiting fullscreen if it entered it) and
64
+ * returns to the Present canvas. A no-op when no slideshow is running.
65
+ *
66
+ * @returns The {@linkcode PluginPresentationSlideshowState} after the stop
67
+ * (`running: false`).
68
+ * @throws If Present mode is not open.
69
+ *
70
+ * @examplePrompt Stop the slideshow
71
+ * @examplePrompt Exit the presentation
72
+ * @examplePrompt Close the slideshow and go back to the sheets
73
+ *
74
+ * # Example
75
+ * ```ts
76
+ * await snaptrude.presentation.slideshow.stop()
77
+ * ```
78
+ */
79
+ public abstract stop(): PluginApiReturn<PluginPresentationSlideshowState>
80
+
81
+ /**
82
+ * Read the slideshow state.
83
+ *
84
+ * A never-throw read: reports whether a slideshow is running and, when it
85
+ * is, the current 0-based slide index (`index` is `null` when not
86
+ * running — including when Present mode is closed).
87
+ *
88
+ * @returns The current {@linkcode PluginPresentationSlideshowState}.
89
+ *
90
+ * @examplePrompt Is the slideshow running?
91
+ * @examplePrompt Which slide is the presentation on?
92
+ * @examplePrompt Check the slideshow state
93
+ *
94
+ * # Example
95
+ * ```ts
96
+ * const { running, index } = await snaptrude.presentation.slideshow.getState()
97
+ * ```
98
+ */
99
+ public abstract getState(): PluginApiReturn<PluginPresentationSlideshowState>
100
+ }
101
+
102
+ /**
103
+ * Arguments for {@linkcode PluginPresentationSlideshowApi.start}.
104
+ *
105
+ * | Property | Type | Description |
106
+ * |---|---|---|
107
+ * | `sheetIds` | `string[] \| undefined` | Open on this sheet when exactly one id is given |
108
+ * | `startIndex` | `number \| undefined` | 0-based slide to open on (wins over `sheetIds`; clamped) |
109
+ */
110
+ export const PluginPresentationSlideshowStartArgs = z.object({
111
+ sheetIds: z.array(z.string().min(1)).optional(),
112
+ startIndex: z.number().int().min(0).optional(),
113
+ })
114
+ export type PluginPresentationSlideshowStartArgs = z.infer<
115
+ typeof PluginPresentationSlideshowStartArgs
116
+ >
117
+
118
+ /**
119
+ * The slideshow state — result of {@linkcode PluginPresentationSlideshowApi.start},
120
+ * {@linkcode PluginPresentationSlideshowApi.stop}, and
121
+ * {@linkcode PluginPresentationSlideshowApi.getState}.
122
+ *
123
+ * | Property | Type | Description |
124
+ * |---|---|---|
125
+ * | `running` | `boolean` | Whether a slideshow is currently running |
126
+ * | `index` | `number \| null` | Current 0-based slide index (`null` when not running) |
127
+ */
128
+ export const PluginPresentationSlideshowState = z.object({
129
+ running: z.boolean(),
130
+ index: z.number().int().nullable(),
131
+ })
132
+ export type PluginPresentationSlideshowState = z.infer<
133
+ typeof PluginPresentationSlideshowState
134
+ >
@@ -0,0 +1,84 @@
1
+ import * as z from "zod"
2
+ import { PluginApiReturn } from "../../types"
3
+ import type { PluginCanvasShape } from "./placedViews"
4
+
5
+ /**
6
+ * Presentation tables — place data tables on Present-mode sheets.
7
+ *
8
+ * The scriptable counterpart of the Present canvas's table paste (the flow
9
+ * that turns a Program-mode / Google Sheets / Excel paste into a table
10
+ * shape): {@linkcode PluginPresentationTablesApi.place} takes plain string
11
+ * rows and creates one table shape on a sheet. Requires Present mode to be
12
+ * open.
13
+ *
14
+ * Accessed via `snaptrude.presentation.tables`.
15
+ */
16
+ export abstract class PluginPresentationTablesApi {
17
+ constructor() {}
18
+
19
+ /**
20
+ * Place a table on a sheet.
21
+ *
22
+ * Creates one table shape from `table.rows` — the same shape the Present
23
+ * canvas creates when a spreadsheet table is pasted — and returns the
24
+ * created shape as a canvas-shape record. Cells are plain strings; rows may
25
+ * be ragged (each row needs at least one cell), capped at 10000 cells
26
+ * total. `options.position` is sheet-local (relative to the sheet's
27
+ * top-left, in canvas units — the same convention as `annotate.*`); when
28
+ * omitted the table lands where the paste flow would auto-place it (the
29
+ * center of the current viewport). One undo step. Requires Present mode to
30
+ * be open.
31
+ *
32
+ * @param sheetId - The sheet to place the table on.
33
+ * @param table - The table content: `rows`, an array of string-cell rows.
34
+ * @param options - Optional `position` (`{ x, y }`, relative to the sheet's
35
+ * top-left — defaults to the paste flow's auto-placement).
36
+ * @returns The created table shape as a {@linkcode PluginCanvasShape}.
37
+ * @throws If Present mode is not open, the sheet id is invalid, or the
38
+ * table is empty / exceeds the 10000-cell cap.
39
+ *
40
+ * @examplePrompt Put the area schedule as a table on Sheet 1
41
+ * @examplePrompt Add a table of the room programs to the cover sheet
42
+ * @examplePrompt Paste this data as a table on the sheet
43
+ * @examplePrompt Place a two-column table of space names and areas
44
+ *
45
+ * # Example
46
+ * ```ts
47
+ * const shape = await snaptrude.presentation.tables.place("sheet_1", {
48
+ * rows: [
49
+ * ["Room", "Area"],
50
+ * ["Kitchen", "12.4 m²"],
51
+ * ["Living", "28.0 m²"],
52
+ * ],
53
+ * }, { position: { x: 40, y: 40 } })
54
+ * ```
55
+ */
56
+ public abstract place(
57
+ sheetId: string,
58
+ table: { rows: string[][] },
59
+ options?: { position?: { x: number; y: number } },
60
+ ): PluginApiReturn<PluginCanvasShape>
61
+ }
62
+
63
+ /**
64
+ * Arguments for {@linkcode PluginPresentationTablesApi.place}.
65
+ *
66
+ * | Property | Type | Description |
67
+ * |---|---|---|
68
+ * | `sheetId` | `string` | The sheet to place the table on |
69
+ * | `rows` | `string[][]` | Table cells as string rows (non-empty; ≤ 10000 cells total) |
70
+ * | `position` | `{ x: number; y: number } \| undefined` | Sheet-local position (default: paste auto-placement) |
71
+ */
72
+ export const PluginPresentationTablesPlaceArgs = z.object({
73
+ sheetId: z.string().min(1),
74
+ rows: z
75
+ .array(z.array(z.string()).min(1))
76
+ .min(1)
77
+ .refine((rows) => rows.reduce((n, r) => n + r.length, 0) <= 10000, {
78
+ message: "table exceeds the 10000-cell cap",
79
+ }),
80
+ position: z.object({ x: z.number(), y: z.number() }).optional(),
81
+ })
82
+ export type PluginPresentationTablesPlaceArgs = z.infer<
83
+ typeof PluginPresentationTablesPlaceArgs
84
+ >
@@ -0,0 +1,83 @@
1
+ import * as z from "zod"
2
+ import type { PluginApiReturn } from "../../types"
3
+
4
+ /** Presets are document-local. Their ids are stable across reload; built-ins are immutable. */
5
+ export const PluginViewPreset = z.object({
6
+ id: z.string(),
7
+ name: z.string(),
8
+ builtIn: z.boolean(),
9
+ revision: z.number().int().nonnegative(),
10
+ })
11
+ export type PluginViewPreset = z.infer<typeof PluginViewPreset>
12
+ export const PluginViewPresetIdArgs = z
13
+ .object({ presetId: z.string().min(1) })
14
+ .strict()
15
+ export type PluginViewPresetIdArgs = z.infer<typeof PluginViewPresetIdArgs>
16
+ export const PluginViewPresetCreateArgs = z
17
+ .object({ name: z.string().trim().min(1), fromDrawingId: z.string().min(1) })
18
+ .strict()
19
+ export type PluginViewPresetCreateArgs = z.infer<
20
+ typeof PluginViewPresetCreateArgs
21
+ >
22
+ export const PluginViewPresetRenameArgs = PluginViewPresetIdArgs.extend({
23
+ name: z.string().trim().min(1),
24
+ })
25
+ export type PluginViewPresetRenameArgs = z.infer<
26
+ typeof PluginViewPresetRenameArgs
27
+ >
28
+ export const PluginViewPresetUpdateArgs = PluginViewPresetIdArgs.extend({
29
+ fromDrawingId: z.string().min(1),
30
+ })
31
+ export type PluginViewPresetUpdateArgs = z.infer<
32
+ typeof PluginViewPresetUpdateArgs
33
+ >
34
+ export const PluginViewPresetDeleteArgs = PluginViewPresetIdArgs.extend({
35
+ replacementId: z.string().min(1),
36
+ })
37
+ export type PluginViewPresetDeleteArgs = z.infer<
38
+ typeof PluginViewPresetDeleteArgs
39
+ >
40
+
41
+ /**
42
+ * Reusable kernel-plan styles. Requires Present open. Catalog writes are native non-undoable
43
+ * document metadata; binding/override writes use Present history. Local title text is excluded.
44
+ */
45
+ export abstract class PluginPresentationViewPresetsApi {
46
+ /**
47
+ * List built-ins first, then custom presets by name.
48
+ * @examplePrompt List the available drawing style presets
49
+ */
50
+ public abstract list(): PluginApiReturn<PluginViewPreset[]>
51
+ /** Read a preset, or null when missing. */
52
+ public abstract get(
53
+ presetId: string,
54
+ ): PluginApiReturn<PluginViewPreset | null>
55
+ /**
56
+ * Capture a drawing's effective styles and bind it to the new preset. Names must be unique.
57
+ * @examplePrompt Save this drawing's styles as a new preset
58
+ */
59
+ public abstract create(
60
+ name: string,
61
+ options: { fromDrawingId: string },
62
+ ): PluginApiReturn<PluginViewPreset>
63
+ /** Copy a preset with a native unique name, without changing drawing bindings. */
64
+ public abstract copy(presetId: string): PluginApiReturn<PluginViewPreset>
65
+ /** Rename a custom preset. Built-ins reject this operation. */
66
+ public abstract rename(
67
+ presetId: string,
68
+ name: string,
69
+ ): PluginApiReturn<PluginViewPreset>
70
+ /**
71
+ * Update a custom preset from a drawing bound to it; refresh all bound drawings.
72
+ * @examplePrompt Update this preset from the current drawing styles
73
+ */
74
+ public abstract update(
75
+ presetId: string,
76
+ options: { fromDrawingId: string },
77
+ ): PluginApiReturn<PluginViewPreset>
78
+ /** Delete a custom preset, rebinding its drawings to a different existing replacement. */
79
+ public abstract delete(
80
+ presetId: string,
81
+ options: { replacementId: string },
82
+ ): PluginApiReturn<void>
83
+ }