@selvajs/selva 4.2.0 → 4.3.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 (543) hide show
  1. package/build/client/_app/immutable/assets/0.-MS0dTYb.css +1 -0
  2. package/build/client/_app/immutable/assets/0.-MS0dTYb.css.br +0 -0
  3. package/build/client/_app/immutable/assets/0.-MS0dTYb.css.gz +0 -0
  4. package/build/client/_app/immutable/assets/20.Bne67Vgr.css +1 -0
  5. package/build/client/_app/immutable/assets/20.Bne67Vgr.css.br +0 -0
  6. package/build/client/_app/immutable/assets/20.Bne67Vgr.css.gz +0 -0
  7. package/build/client/_app/immutable/assets/index.CV-KWLNP.css.gz +0 -0
  8. package/build/client/_app/immutable/chunks/0owY5F6O.js +2 -0
  9. package/build/client/_app/immutable/chunks/0owY5F6O.js.br +0 -0
  10. package/build/client/_app/immutable/chunks/0owY5F6O.js.gz +0 -0
  11. package/build/client/_app/immutable/chunks/{C98bdhQ5.js → 1O7Vyn3x.js} +1 -1
  12. package/build/client/_app/immutable/chunks/1O7Vyn3x.js.br +0 -0
  13. package/build/client/_app/immutable/chunks/1O7Vyn3x.js.gz +0 -0
  14. package/build/client/_app/immutable/chunks/{-UMoMsui.js → 3Ah3Y6N9.js} +1 -1
  15. package/build/client/_app/immutable/chunks/3Ah3Y6N9.js.br +0 -0
  16. package/build/client/_app/immutable/chunks/3Ah3Y6N9.js.gz +0 -0
  17. package/build/client/_app/immutable/chunks/6CzuHfQM.js.gz +0 -0
  18. package/build/client/_app/immutable/chunks/9DES--UJ.js.gz +0 -0
  19. package/build/client/_app/immutable/chunks/B-Kuf-9K.js.gz +0 -0
  20. package/build/client/_app/immutable/chunks/B1z9if9B.js.gz +0 -0
  21. package/build/client/_app/immutable/chunks/B21bldal.js.gz +0 -0
  22. package/build/client/_app/immutable/chunks/B6_AR4oL.js.gz +0 -0
  23. package/build/client/_app/immutable/chunks/BEFa4rcT.js.gz +0 -0
  24. package/build/client/_app/immutable/chunks/BGIAOk5X.js.gz +0 -0
  25. package/build/client/_app/immutable/chunks/BHhjUaik.js.gz +0 -0
  26. package/build/client/_app/immutable/chunks/BIIXkPqf.js.gz +0 -0
  27. package/build/client/_app/immutable/chunks/BJTJCSLB.js.gz +0 -0
  28. package/build/client/_app/immutable/chunks/BLZ195WY.js.gz +0 -0
  29. package/build/client/_app/immutable/chunks/BM8Ok6pJ.js.gz +0 -0
  30. package/build/client/_app/immutable/chunks/BOsr6E_d.js.gz +0 -0
  31. package/build/client/_app/immutable/chunks/BTm-dDt9.js.gz +0 -0
  32. package/build/client/_app/immutable/chunks/BX0gN9mF.js.gz +0 -0
  33. package/build/client/_app/immutable/chunks/BaMCSMGs.js.gz +0 -0
  34. package/build/client/_app/immutable/chunks/BfHBnYuG.js.gz +0 -0
  35. package/build/client/_app/immutable/chunks/BiG82jCv.js.gz +0 -0
  36. package/build/client/_app/immutable/chunks/BihI7LuH.js.gz +0 -0
  37. package/build/client/_app/immutable/chunks/{DNu_no60.js → BjlANOwQ.js} +1 -1
  38. package/build/client/_app/immutable/chunks/BjlANOwQ.js.br +0 -0
  39. package/build/client/_app/immutable/chunks/BjlANOwQ.js.gz +0 -0
  40. package/build/client/_app/immutable/chunks/Bma65zV8.js.gz +0 -0
  41. package/build/client/_app/immutable/chunks/BnIDUuJL.js.gz +0 -0
  42. package/build/client/_app/immutable/chunks/BnZOgasr.js.gz +0 -0
  43. package/build/client/_app/immutable/chunks/BnzoF81W.js.gz +0 -0
  44. package/build/client/_app/immutable/chunks/BpQqe39G.js.gz +0 -0
  45. package/build/client/_app/immutable/chunks/BsKtJj5h.js.gz +0 -0
  46. package/build/client/_app/immutable/chunks/BtugGMaj.js.gz +0 -0
  47. package/build/client/_app/immutable/chunks/{B6yEy6Wb.js → Buy2icyP.js} +1 -1
  48. package/build/client/_app/immutable/chunks/Buy2icyP.js.br +0 -0
  49. package/build/client/_app/immutable/chunks/Buy2icyP.js.gz +0 -0
  50. package/build/client/_app/immutable/chunks/Bwn5lHBl.js.gz +0 -0
  51. package/build/client/_app/immutable/chunks/BzBbrBKd.js.gz +0 -0
  52. package/build/client/_app/immutable/chunks/C33A5aSj.js.gz +0 -0
  53. package/build/client/_app/immutable/chunks/C3WxOOC9.js.gz +0 -0
  54. package/build/client/_app/immutable/chunks/C46MGZre.js.gz +0 -0
  55. package/build/client/_app/immutable/chunks/CDmA5ezP.js.gz +0 -0
  56. package/build/client/_app/immutable/chunks/CE_gxD9G.js.gz +0 -0
  57. package/build/client/_app/immutable/chunks/CGKZc1Kf.js.gz +0 -0
  58. package/build/client/_app/immutable/chunks/CIHhLSqA.js.gz +0 -0
  59. package/build/client/_app/immutable/chunks/CNC_mCsM.js.gz +0 -0
  60. package/build/client/_app/immutable/chunks/CYyqq9B1.js.gz +0 -0
  61. package/build/client/_app/immutable/chunks/Cbu9Tg11.js.gz +0 -0
  62. package/build/client/_app/immutable/chunks/CeS0GhtF.js.gz +0 -0
  63. package/build/client/_app/immutable/chunks/CnXIg_dO.js.gz +0 -0
  64. package/build/client/_app/immutable/chunks/{2n-qzJg2.js → CpzrN_ad.js} +1 -1
  65. package/build/client/_app/immutable/chunks/CpzrN_ad.js.br +0 -0
  66. package/build/client/_app/immutable/chunks/CpzrN_ad.js.gz +0 -0
  67. package/build/client/_app/immutable/chunks/Cqb2-zYs.js +1 -0
  68. package/build/client/_app/immutable/chunks/Cqb2-zYs.js.br +0 -0
  69. package/build/client/_app/immutable/chunks/Cqb2-zYs.js.gz +0 -0
  70. package/build/client/_app/immutable/chunks/CsdWDH4Y.js.gz +0 -0
  71. package/build/client/_app/immutable/chunks/CumXBEVX.js.gz +0 -0
  72. package/build/client/_app/immutable/chunks/CvUP44VI.js.gz +0 -0
  73. package/build/client/_app/immutable/chunks/CzCTTv8Q.js +1 -0
  74. package/build/client/_app/immutable/chunks/CzCTTv8Q.js.br +0 -0
  75. package/build/client/_app/immutable/chunks/CzCTTv8Q.js.gz +0 -0
  76. package/build/client/_app/immutable/chunks/D-3pI9hp.js.gz +0 -0
  77. package/build/client/_app/immutable/chunks/D-Fls4-N.js.gz +0 -0
  78. package/build/client/_app/immutable/chunks/{D37hHIb0.js → D0jw87aj.js} +1 -1
  79. package/build/client/_app/immutable/chunks/D0jw87aj.js.br +0 -0
  80. package/build/client/_app/immutable/chunks/D0jw87aj.js.gz +0 -0
  81. package/build/client/_app/immutable/chunks/{BQ0arxbK.js → D1FLuKx5.js} +1 -1
  82. package/build/client/_app/immutable/chunks/D1FLuKx5.js.br +0 -0
  83. package/build/client/_app/immutable/chunks/D1FLuKx5.js.gz +0 -0
  84. package/build/client/_app/immutable/chunks/D1xkoVpc.js.gz +0 -0
  85. package/build/client/_app/immutable/chunks/DCBLBrrW.js.gz +0 -0
  86. package/build/client/_app/immutable/chunks/DEk358l3.js.gz +0 -0
  87. package/build/client/_app/immutable/chunks/DRNG0pfi.js.gz +0 -0
  88. package/build/client/_app/immutable/chunks/DRpLcVdK.js.gz +0 -0
  89. package/build/client/_app/immutable/chunks/DS1KfRtl.js.gz +0 -0
  90. package/build/client/_app/immutable/chunks/DYfK6Plb.js.gz +0 -0
  91. package/build/client/_app/immutable/chunks/DZM0bVcB.js.gz +0 -0
  92. package/build/client/_app/immutable/chunks/D_gPt7DB.js.gz +0 -0
  93. package/build/client/_app/immutable/chunks/DdEmEaOR.js.gz +0 -0
  94. package/build/client/_app/immutable/chunks/De-Sjn1V.js.gz +0 -0
  95. package/build/client/_app/immutable/chunks/DeMiewtM.js.gz +0 -0
  96. package/build/client/_app/immutable/chunks/DfVTcmam.js.gz +0 -0
  97. package/build/client/_app/immutable/chunks/DfbumCTS.js.gz +0 -0
  98. package/build/client/_app/immutable/chunks/Diyh8RG-.js.gz +0 -0
  99. package/build/client/_app/immutable/chunks/DkVLFJC2.js.gz +0 -0
  100. package/build/client/_app/immutable/chunks/DkpwXYYZ.js.gz +0 -0
  101. package/build/client/_app/immutable/chunks/Dl_x4ktn.js +1 -0
  102. package/build/client/_app/immutable/chunks/Dl_x4ktn.js.br +0 -0
  103. package/build/client/_app/immutable/chunks/Dl_x4ktn.js.gz +0 -0
  104. package/build/client/_app/immutable/chunks/Dn_lJm0y.js.gz +0 -0
  105. package/build/client/_app/immutable/chunks/DqK2lhM-.js.gz +0 -0
  106. package/build/client/_app/immutable/chunks/Dr-qnmvi.js.gz +0 -0
  107. package/build/client/_app/immutable/chunks/DsnmJJEf.js.gz +0 -0
  108. package/build/client/_app/immutable/chunks/DtFVCiwY.js.gz +0 -0
  109. package/build/client/_app/immutable/chunks/KIV0kKdR.js.gz +0 -0
  110. package/build/client/_app/immutable/chunks/Q9Y439fs.js.gz +0 -0
  111. package/build/client/_app/immutable/chunks/T-Nslbso.js.gz +0 -0
  112. package/build/client/_app/immutable/chunks/Uv0-HWHq.js.gz +0 -0
  113. package/build/client/_app/immutable/chunks/XwEuxkth.js +4108 -0
  114. package/build/client/_app/immutable/chunks/XwEuxkth.js.br +0 -0
  115. package/build/client/_app/immutable/chunks/XwEuxkth.js.gz +0 -0
  116. package/build/client/_app/immutable/chunks/jO1WSR3P.js.gz +0 -0
  117. package/build/client/_app/immutable/chunks/snZK0J5H.js.gz +0 -0
  118. package/build/client/_app/immutable/chunks/vyYztzrZ.js.gz +0 -0
  119. package/build/client/_app/immutable/chunks/xQ1SsCxk.js.gz +0 -0
  120. package/build/client/_app/immutable/entry/app.BU1ZTica.js +2 -0
  121. package/build/client/_app/immutable/entry/app.BU1ZTica.js.br +0 -0
  122. package/build/client/_app/immutable/entry/app.BU1ZTica.js.gz +0 -0
  123. package/build/client/_app/immutable/entry/start.C_5mwPOZ.js +1 -0
  124. package/build/client/_app/immutable/entry/start.C_5mwPOZ.js.br +2 -0
  125. package/build/client/_app/immutable/entry/start.C_5mwPOZ.js.gz +0 -0
  126. package/build/client/_app/immutable/nodes/0.Dr3zOYh5.js +9 -0
  127. package/build/client/_app/immutable/nodes/0.Dr3zOYh5.js.br +0 -0
  128. package/build/client/_app/immutable/nodes/0.Dr3zOYh5.js.gz +0 -0
  129. package/build/client/_app/immutable/nodes/{1.5JE3G8iG.js → 1.BGw1TtE-.js} +1 -1
  130. package/build/client/_app/immutable/nodes/1.BGw1TtE-.js.br +0 -0
  131. package/build/client/_app/immutable/nodes/1.BGw1TtE-.js.gz +0 -0
  132. package/build/client/_app/immutable/nodes/{10.DpfN1qrg.js → 10.lZeHcKpq.js} +1 -1
  133. package/build/client/_app/immutable/nodes/10.lZeHcKpq.js.br +0 -0
  134. package/build/client/_app/immutable/nodes/10.lZeHcKpq.js.gz +0 -0
  135. package/build/client/_app/immutable/nodes/11.DUHLFhc8.js +2 -0
  136. package/build/client/_app/immutable/nodes/11.DUHLFhc8.js.br +0 -0
  137. package/build/client/_app/immutable/nodes/11.DUHLFhc8.js.gz +0 -0
  138. package/build/client/_app/immutable/nodes/12.C3AQ8jKc.js.gz +0 -0
  139. package/build/client/_app/immutable/nodes/{13.D5OdE_HH.js → 13.DUetX8JN.js} +1 -1
  140. package/build/client/_app/immutable/nodes/13.DUetX8JN.js.br +0 -0
  141. package/build/client/_app/immutable/nodes/13.DUetX8JN.js.gz +0 -0
  142. package/build/client/_app/immutable/nodes/{14.UGx5pLUS.js → 14.BMNgebxg.js} +1 -1
  143. package/build/client/_app/immutable/nodes/14.BMNgebxg.js.br +0 -0
  144. package/build/client/_app/immutable/nodes/14.BMNgebxg.js.gz +0 -0
  145. package/build/client/_app/immutable/nodes/15.czhLtsoD.js.gz +0 -0
  146. package/build/client/_app/immutable/nodes/{16.CqZNgdz-.js → 16.BK5X4N0B.js} +1 -1
  147. package/build/client/_app/immutable/nodes/16.BK5X4N0B.js.br +0 -0
  148. package/build/client/_app/immutable/nodes/16.BK5X4N0B.js.gz +0 -0
  149. package/build/client/_app/immutable/nodes/{17.B1PHOW1Y.js → 17.DESUDRJ7.js} +1 -1
  150. package/build/client/_app/immutable/nodes/17.DESUDRJ7.js.br +0 -0
  151. package/build/client/_app/immutable/nodes/17.DESUDRJ7.js.gz +0 -0
  152. package/build/client/_app/immutable/nodes/18.Cl9SXwAF.js.gz +0 -0
  153. package/build/client/_app/immutable/nodes/{19.ClB_k0uw.js → 19.BGOmShx1.js} +1 -1
  154. package/build/client/_app/immutable/nodes/19.BGOmShx1.js.br +0 -0
  155. package/build/client/_app/immutable/nodes/19.BGOmShx1.js.gz +0 -0
  156. package/build/client/_app/immutable/nodes/{2.uPLLf3gR.js → 2.Bil4apV-.js} +1 -1
  157. package/build/client/_app/immutable/nodes/2.Bil4apV-.js.br +0 -0
  158. package/build/client/_app/immutable/nodes/2.Bil4apV-.js.gz +0 -0
  159. package/build/client/_app/immutable/nodes/20.BN9CyZsk.js +11 -0
  160. package/build/client/_app/immutable/nodes/20.BN9CyZsk.js.br +0 -0
  161. package/build/client/_app/immutable/nodes/20.BN9CyZsk.js.gz +0 -0
  162. package/build/client/_app/immutable/nodes/{21.B1xX86Nz.js → 21.DLY2CWfL.js} +1 -1
  163. package/build/client/_app/immutable/nodes/21.DLY2CWfL.js.br +0 -0
  164. package/build/client/_app/immutable/nodes/21.DLY2CWfL.js.gz +0 -0
  165. package/build/client/_app/immutable/nodes/{23.BWuAu45o.js → 23.DwnJEjle.js} +1 -1
  166. package/build/client/_app/immutable/nodes/23.DwnJEjle.js.br +0 -0
  167. package/build/client/_app/immutable/nodes/23.DwnJEjle.js.gz +0 -0
  168. package/build/client/_app/immutable/nodes/{24.DSWGE_q2.js → 24.C9nhiSAI.js} +1 -1
  169. package/build/client/_app/immutable/nodes/24.C9nhiSAI.js.br +0 -0
  170. package/build/client/_app/immutable/nodes/24.C9nhiSAI.js.gz +0 -0
  171. package/build/client/_app/immutable/nodes/25.Boy7QQiW.js.gz +0 -0
  172. package/build/client/_app/immutable/nodes/26.JTwwV2O8.js.gz +0 -0
  173. package/build/client/_app/immutable/nodes/{27.CjlEhW_1.js → 27.DDMHOK1v.js} +1 -1
  174. package/build/client/_app/immutable/nodes/27.DDMHOK1v.js.br +0 -0
  175. package/build/client/_app/immutable/nodes/27.DDMHOK1v.js.gz +0 -0
  176. package/build/client/_app/immutable/nodes/{28.U-BnDxlP.js → 28.BKxO5tXo.js} +1 -1
  177. package/build/client/_app/immutable/nodes/28.BKxO5tXo.js.br +0 -0
  178. package/build/client/_app/immutable/nodes/28.BKxO5tXo.js.gz +0 -0
  179. package/build/client/_app/immutable/nodes/{29.cl9udKxV.js → 29.BE9agX-A.js} +1 -1
  180. package/build/client/_app/immutable/nodes/29.BE9agX-A.js.br +0 -0
  181. package/build/client/_app/immutable/nodes/29.BE9agX-A.js.gz +0 -0
  182. package/build/client/_app/immutable/nodes/{3.UKn7Q9OQ.js → 3.Cr_OcaHZ.js} +1 -1
  183. package/build/client/_app/immutable/nodes/3.Cr_OcaHZ.js.br +0 -0
  184. package/build/client/_app/immutable/nodes/3.Cr_OcaHZ.js.gz +0 -0
  185. package/build/client/_app/immutable/nodes/{30.DPqPYAg4.js → 30.1oMiKsa_.js} +1 -1
  186. package/build/client/_app/immutable/nodes/30.1oMiKsa_.js.br +0 -0
  187. package/build/client/_app/immutable/nodes/30.1oMiKsa_.js.gz +0 -0
  188. package/build/client/_app/immutable/nodes/31.SiZTd523.js.gz +0 -0
  189. package/build/client/_app/immutable/nodes/32.9Ta_FSIA.js.gz +0 -0
  190. package/build/client/_app/immutable/nodes/4.CieI7_Lb.js.gz +0 -0
  191. package/build/client/_app/immutable/nodes/{5.CbYguvwB.js → 5.R3EURuYN.js} +1 -1
  192. package/build/client/_app/immutable/nodes/5.R3EURuYN.js.br +1 -0
  193. package/build/client/_app/immutable/nodes/5.R3EURuYN.js.gz +0 -0
  194. package/build/client/_app/immutable/nodes/{6.DZgUvAex.js → 6.XEBvU5zF.js} +1 -1
  195. package/build/client/_app/immutable/nodes/6.XEBvU5zF.js.br +0 -0
  196. package/build/client/_app/immutable/nodes/6.XEBvU5zF.js.gz +0 -0
  197. package/build/client/_app/immutable/nodes/{7.Cv7r8DBm.js → 7.aBxKpwwY.js} +1 -1
  198. package/build/client/_app/immutable/nodes/7.aBxKpwwY.js.br +0 -0
  199. package/build/client/_app/immutable/nodes/7.aBxKpwwY.js.gz +0 -0
  200. package/build/client/_app/immutable/nodes/{8.zr3bqaC_.js → 8.CEAXwPtw.js} +1 -1
  201. package/build/client/_app/immutable/nodes/8.CEAXwPtw.js.br +0 -0
  202. package/build/client/_app/immutable/nodes/8.CEAXwPtw.js.gz +0 -0
  203. package/build/client/_app/immutable/nodes/9.DNoTcl-q.js +1 -0
  204. package/build/client/_app/immutable/nodes/9.DNoTcl-q.js.br +0 -0
  205. package/build/client/_app/immutable/nodes/9.DNoTcl-q.js.gz +0 -0
  206. package/build/client/_app/version.json +1 -1
  207. package/build/client/_app/version.json.br +0 -0
  208. package/build/client/_app/version.json.gz +0 -0
  209. package/build/client/favicon/favicon.svg.gz +0 -0
  210. package/build/client/robots.txt.gz +0 -0
  211. package/build/server/chunks/{0-v49L2HZX.js → 0-BGZb7GUr.js} +6 -6
  212. package/build/server/chunks/0-BGZb7GUr.js.map +1 -0
  213. package/build/server/chunks/{1-B8xC9fBg.js → 1-CTiyXq5H.js} +2 -2
  214. package/build/server/chunks/{1-B8xC9fBg.js.map → 1-CTiyXq5H.js.map} +1 -1
  215. package/build/server/chunks/{10-BowWygfm.js → 10-CoNR8vNf.js} +7 -7
  216. package/build/server/chunks/{10-BowWygfm.js.map → 10-CoNR8vNf.js.map} +1 -1
  217. package/build/server/chunks/{11-BLjiJpX4.js → 11-BvWfYPvY.js} +8 -7
  218. package/build/server/chunks/11-BvWfYPvY.js.map +1 -0
  219. package/build/server/chunks/{12-Dk9nDvlV.js → 12-DVPsHnBz.js} +3 -3
  220. package/build/server/chunks/12-DVPsHnBz.js.map +1 -0
  221. package/build/server/chunks/{13-CZeQX-Gk.js → 13-UcumwEMR.js} +3 -3
  222. package/build/server/chunks/{13-CZeQX-Gk.js.map → 13-UcumwEMR.js.map} +1 -1
  223. package/build/server/chunks/{14-VgzSpObZ.js → 14-DDGpNRmy.js} +3 -3
  224. package/build/server/chunks/{14-VgzSpObZ.js.map → 14-DDGpNRmy.js.map} +1 -1
  225. package/build/server/chunks/{15-CKqEgZmF.js → 15-CRsKpL17.js} +4 -4
  226. package/build/server/chunks/{15-CKqEgZmF.js.map → 15-CRsKpL17.js.map} +1 -1
  227. package/build/server/chunks/{16-9hO-6bzO.js → 16-Brrnhdb0.js} +6 -6
  228. package/build/server/chunks/{16-9hO-6bzO.js.map → 16-Brrnhdb0.js.map} +1 -1
  229. package/build/server/chunks/{17-B9Aw6HdC.js → 17-nTtqXZFS.js} +2 -2
  230. package/build/server/chunks/{17-B9Aw6HdC.js.map → 17-nTtqXZFS.js.map} +1 -1
  231. package/build/server/chunks/{18-BTSLWMQT.js → 18-CM6a70dY.js} +2 -2
  232. package/build/server/chunks/{18-BTSLWMQT.js.map → 18-CM6a70dY.js.map} +1 -1
  233. package/build/server/chunks/{19-C9FaW__N.js → 19-C6JT4QWN.js} +4 -4
  234. package/build/server/chunks/19-C6JT4QWN.js.map +1 -0
  235. package/build/server/chunks/{2-CwQhh3Hg.js → 2-Bzu1IIyQ.js} +8 -8
  236. package/build/server/chunks/2-Bzu1IIyQ.js.map +1 -0
  237. package/build/server/chunks/{20-52YCUMK3.js → 20-BuEknXxb.js} +11 -11
  238. package/build/server/chunks/{20-52YCUMK3.js.map → 20-BuEknXxb.js.map} +1 -1
  239. package/build/server/chunks/{21-Dcz_2iKy.js → 21-C8VCOVHZ.js} +3 -3
  240. package/build/server/chunks/{21-Dcz_2iKy.js.map → 21-C8VCOVHZ.js.map} +1 -1
  241. package/build/server/chunks/{23-C-gTGofY.js → 23-B2o_ghvU.js} +7 -7
  242. package/build/server/chunks/{23-C-gTGofY.js.map → 23-B2o_ghvU.js.map} +1 -1
  243. package/build/server/chunks/{24-ukwP0nYw.js → 24-Q1fbSR2o.js} +5 -4
  244. package/build/server/chunks/24-Q1fbSR2o.js.map +1 -0
  245. package/build/server/chunks/{25-Oe01GQUn.js → 25-BzYQ8Zk-.js} +2 -2
  246. package/build/server/chunks/{25-Oe01GQUn.js.map → 25-BzYQ8Zk-.js.map} +1 -1
  247. package/build/server/chunks/{27-C9kRY1qj.js → 27-5VeF0OHT.js} +4 -4
  248. package/build/server/chunks/{27-C9kRY1qj.js.map → 27-5VeF0OHT.js.map} +1 -1
  249. package/build/server/chunks/{28-X583jLPJ.js → 28-GJ_nbLXN.js} +3 -3
  250. package/build/server/chunks/{28-X583jLPJ.js.map → 28-GJ_nbLXN.js.map} +1 -1
  251. package/build/server/chunks/{29-PJhSN-Wu.js → 29-lZH9mmI0.js} +4 -4
  252. package/build/server/chunks/{29-PJhSN-Wu.js.map → 29-lZH9mmI0.js.map} +1 -1
  253. package/build/server/chunks/{3-DZiroZZA.js → 3-BlqLiQTJ.js} +2 -2
  254. package/build/server/chunks/{3-DZiroZZA.js.map → 3-BlqLiQTJ.js.map} +1 -1
  255. package/build/server/chunks/{30-DvqVphAd.js → 30-CA_ezUGl.js} +4 -4
  256. package/build/server/chunks/{30-DvqVphAd.js.map → 30-CA_ezUGl.js.map} +1 -1
  257. package/build/server/chunks/{31-BefyQf51.js → 31-CQ-8s0Lw.js} +2 -2
  258. package/build/server/chunks/{31-BefyQf51.js.map → 31-CQ-8s0Lw.js.map} +1 -1
  259. package/build/server/chunks/{32-DIdNQgym.js → 32-BmsICS9-.js} +2 -2
  260. package/build/server/chunks/{32-DIdNQgym.js.map → 32-BmsICS9-.js.map} +1 -1
  261. package/build/server/chunks/{5-QlPeCe4d.js → 5-0tLn4w9t.js} +3 -3
  262. package/build/server/chunks/5-0tLn4w9t.js.map +1 -0
  263. package/build/server/chunks/{6-3t8NszBJ.js → 6-Dk8-CNQc.js} +4 -4
  264. package/build/server/chunks/6-Dk8-CNQc.js.map +1 -0
  265. package/build/server/chunks/{7-DgFxSLWj.js → 7-g1mcBFfT.js} +3 -3
  266. package/build/server/chunks/7-g1mcBFfT.js.map +1 -0
  267. package/build/server/chunks/{8-BKivPkMd.js → 8-BXyJwXPH.js} +3 -3
  268. package/build/server/chunks/{8-BKivPkMd.js.map → 8-BXyJwXPH.js.map} +1 -1
  269. package/build/server/chunks/{9-COv3kpjW.js → 9-B3S-g_A8.js} +4 -4
  270. package/build/server/chunks/{9-COv3kpjW.js.map → 9-B3S-g_A8.js.map} +1 -1
  271. package/build/server/chunks/{AppHeader-DBNR_OCa.js → AppHeader-6ioAYhJf.js} +2 -2
  272. package/build/server/chunks/{AppHeader-DBNR_OCa.js.map → AppHeader-6ioAYhJf.js.map} +1 -1
  273. package/build/server/chunks/{DefinitionCard-BeONTmrJ.js → DefinitionCard-O1k8h5Pi.js} +2 -2
  274. package/build/server/chunks/{DefinitionCard-BeONTmrJ.js.map → DefinitionCard-O1k8h5Pi.js.map} +1 -1
  275. package/build/server/chunks/{UserChip-CCZ9yMM3.js → UserChip-fy4ucYa9.js} +461 -369
  276. package/build/server/chunks/UserChip-fy4ucYa9.js.map +1 -0
  277. package/build/server/chunks/{_layout.svelte-Cjs-r7Xa.js → _layout.svelte-BNCiY_LE.js} +9 -7
  278. package/build/server/chunks/{_layout.svelte-Cjs-r7Xa.js.map → _layout.svelte-BNCiY_LE.js.map} +1 -1
  279. package/build/server/chunks/{_layout.svelte-CgAG7l2U.js → _layout.svelte-BR1971uC.js} +9 -7
  280. package/build/server/chunks/{_layout.svelte-CgAG7l2U.js.map → _layout.svelte-BR1971uC.js.map} +1 -1
  281. package/build/server/chunks/{_layout.svelte-VEFMEljC.js → _layout.svelte-CHTfYN7Z.js} +9 -7
  282. package/build/server/chunks/{_layout.svelte-VEFMEljC.js.map → _layout.svelte-CHTfYN7Z.js.map} +1 -1
  283. package/build/server/chunks/{_layout.svelte-DU36kuy0.js → _layout.svelte-DtDfOje_.js} +5 -5
  284. package/build/server/chunks/_layout.svelte-DtDfOje_.js.map +1 -0
  285. package/build/server/chunks/{_page.svelte-DJnICJdZ.js → _page.svelte-6m8-zq9_.js} +887 -786
  286. package/build/server/chunks/_page.svelte-6m8-zq9_.js.map +1 -0
  287. package/build/server/chunks/{_page.svelte-Mwitq0vD.js → _page.svelte-B-BjG1Bg.js} +10 -8
  288. package/build/server/chunks/{_page.svelte-Mwitq0vD.js.map → _page.svelte-B-BjG1Bg.js.map} +1 -1
  289. package/build/server/chunks/{_page.svelte-1sc1cfuW.js → _page.svelte-B2tNMNfb.js} +4 -3
  290. package/build/server/chunks/{_page.svelte-1sc1cfuW.js.map → _page.svelte-B2tNMNfb.js.map} +1 -1
  291. package/build/server/chunks/{_page.svelte-CSZEgmHp.js → _page.svelte-BMk_ClLw.js} +5 -5
  292. package/build/server/chunks/_page.svelte-BMk_ClLw.js.map +1 -0
  293. package/build/server/chunks/{_page.svelte-CeKqqMje.js → _page.svelte-BX7fFjm7.js} +5 -4
  294. package/build/server/chunks/{_page.svelte-CeKqqMje.js.map → _page.svelte-BX7fFjm7.js.map} +1 -1
  295. package/build/server/chunks/{_page.svelte-DlnKE8Z9.js → _page.svelte-CR79Ws-C.js} +5 -4
  296. package/build/server/chunks/{_page.svelte-DlnKE8Z9.js.map → _page.svelte-CR79Ws-C.js.map} +1 -1
  297. package/build/server/chunks/{_page.svelte-DIeTvNzN.js → _page.svelte-HTC9yaHJ.js} +9 -7
  298. package/build/server/chunks/{_page.svelte-DIeTvNzN.js.map → _page.svelte-HTC9yaHJ.js.map} +1 -1
  299. package/build/server/chunks/{_page.svelte-DSPm244d.js → _page.svelte-W41FvlvN.js} +5 -1
  300. package/build/server/chunks/_page.svelte-W41FvlvN.js.map +1 -0
  301. package/build/server/chunks/{_page.svelte-DSYaUquf.js → _page.svelte-YVHQEj69.js} +8 -7
  302. package/build/server/chunks/_page.svelte-YVHQEj69.js.map +1 -0
  303. package/build/server/chunks/{_page.svelte-BQZ-qC72.js → _page.svelte-tQDqmoYu.js} +5 -4
  304. package/build/server/chunks/{_page.svelte-BQZ-qC72.js.map → _page.svelte-tQDqmoYu.js.map} +1 -1
  305. package/build/server/chunks/{_server.ts-t9_veBtJ.js → _server.ts-A3y5hBxw.js} +4 -4
  306. package/build/server/chunks/{_server.ts-t9_veBtJ.js.map → _server.ts-A3y5hBxw.js.map} +1 -1
  307. package/build/server/chunks/{_server.ts-C3sOwl5l.js → _server.ts-B5jlr2iF.js} +5 -5
  308. package/build/server/chunks/{_server.ts-C3sOwl5l.js.map → _server.ts-B5jlr2iF.js.map} +1 -1
  309. package/build/server/chunks/{_server.ts-DK7t4rlY.js → _server.ts-BON6qGm5.js} +5 -5
  310. package/build/server/chunks/{_server.ts-DK7t4rlY.js.map → _server.ts-BON6qGm5.js.map} +1 -1
  311. package/build/server/chunks/{_server.ts-CW_1VZGk.js → _server.ts-BO_GwwIE.js} +5 -5
  312. package/build/server/chunks/{_server.ts-CW_1VZGk.js.map → _server.ts-BO_GwwIE.js.map} +1 -1
  313. package/build/server/chunks/{_server.ts-DgTNMZbG.js → _server.ts-BUw5lGMN.js} +5 -5
  314. package/build/server/chunks/{_server.ts-DgTNMZbG.js.map → _server.ts-BUw5lGMN.js.map} +1 -1
  315. package/build/server/chunks/{_server.ts-CKvfxWeo.js → _server.ts-Bhj8Vx5l.js} +6 -6
  316. package/build/server/chunks/{_server.ts-CKvfxWeo.js.map → _server.ts-Bhj8Vx5l.js.map} +1 -1
  317. package/build/server/chunks/{_server.ts-CMKxt34Z.js → _server.ts-BqlGKKaE.js} +5 -5
  318. package/build/server/chunks/{_server.ts-CMKxt34Z.js.map → _server.ts-BqlGKKaE.js.map} +1 -1
  319. package/build/server/chunks/{_server.ts-ODEutN30.js → _server.ts-BvMDaAZY.js} +5 -5
  320. package/build/server/chunks/{_server.ts-ODEutN30.js.map → _server.ts-BvMDaAZY.js.map} +1 -1
  321. package/build/server/chunks/{_server.ts-C1wqbTiL.js → _server.ts-C-MiDKCm.js} +3 -3
  322. package/build/server/chunks/{_server.ts-C1wqbTiL.js.map → _server.ts-C-MiDKCm.js.map} +1 -1
  323. package/build/server/chunks/{_server.ts-B7X5-4kS.js → _server.ts-C05I9RVA.js} +5 -5
  324. package/build/server/chunks/{_server.ts-B7X5-4kS.js.map → _server.ts-C05I9RVA.js.map} +1 -1
  325. package/build/server/chunks/{_server.ts-DsFj_8lL.js → _server.ts-C4BZG5kA.js} +6 -6
  326. package/build/server/chunks/_server.ts-C4BZG5kA.js.map +1 -0
  327. package/build/server/chunks/{_server.ts-Du-NpBy4.js → _server.ts-CBAiDOcP.js} +5 -5
  328. package/build/server/chunks/{_server.ts-Du-NpBy4.js.map → _server.ts-CBAiDOcP.js.map} +1 -1
  329. package/build/server/chunks/{_server.ts-17aVSHOa.js → _server.ts-CEE9G3nv.js} +5 -5
  330. package/build/server/chunks/{_server.ts-17aVSHOa.js.map → _server.ts-CEE9G3nv.js.map} +1 -1
  331. package/build/server/chunks/{_server.ts-CXYPZtry.js → _server.ts-CJ37R1sx.js} +10 -6
  332. package/build/server/chunks/_server.ts-CJ37R1sx.js.map +1 -0
  333. package/build/server/chunks/{_server.ts-8ahOmk_6.js → _server.ts-CJ5P0_cD.js} +5 -5
  334. package/build/server/chunks/{_server.ts-8ahOmk_6.js.map → _server.ts-CJ5P0_cD.js.map} +1 -1
  335. package/build/server/chunks/{_server.ts-vURDyV-V.js → _server.ts-Ca-ZnaSe.js} +5 -5
  336. package/build/server/chunks/{_server.ts-vURDyV-V.js.map → _server.ts-Ca-ZnaSe.js.map} +1 -1
  337. package/build/server/chunks/{_server.ts-C-8S5O0H.js → _server.ts-CewoOx5S.js} +5 -5
  338. package/build/server/chunks/{_server.ts-C-8S5O0H.js.map → _server.ts-CewoOx5S.js.map} +1 -1
  339. package/build/server/chunks/{_server.ts-B0qq-nxh.js → _server.ts-ChhV0tlQ.js} +5 -5
  340. package/build/server/chunks/{_server.ts-B0qq-nxh.js.map → _server.ts-ChhV0tlQ.js.map} +1 -1
  341. package/build/server/chunks/{_server.ts-hg9WxMNg.js → _server.ts-Ck5KHS5f.js} +2 -2
  342. package/build/server/chunks/{_server.ts-hg9WxMNg.js.map → _server.ts-Ck5KHS5f.js.map} +1 -1
  343. package/build/server/chunks/{_server.ts-BRjl7H1o.js → _server.ts-ClymRXMH.js} +5 -5
  344. package/build/server/chunks/{_server.ts-BRjl7H1o.js.map → _server.ts-ClymRXMH.js.map} +1 -1
  345. package/build/server/chunks/{_server.ts-BL7-YPnc.js → _server.ts-CsWWoLDJ.js} +7 -7
  346. package/build/server/chunks/_server.ts-CsWWoLDJ.js.map +1 -0
  347. package/build/server/chunks/{_server.ts-DMnMoi_a.js → _server.ts-CtJaazcE.js} +5 -5
  348. package/build/server/chunks/{_server.ts-DMnMoi_a.js.map → _server.ts-CtJaazcE.js.map} +1 -1
  349. package/build/server/chunks/{_server.ts-Bq2BT6_L.js → _server.ts-CyjVVRiT.js} +9 -9
  350. package/build/server/chunks/_server.ts-CyjVVRiT.js.map +1 -0
  351. package/build/server/chunks/{_server.ts-Cbe4naEr.js → _server.ts-D0PjwFdv.js} +5 -5
  352. package/build/server/chunks/{_server.ts-Cbe4naEr.js.map → _server.ts-D0PjwFdv.js.map} +1 -1
  353. package/build/server/chunks/{_server.ts-Dukt2veu.js → _server.ts-D7tgGcoB.js} +3 -3
  354. package/build/server/chunks/{_server.ts-Dukt2veu.js.map → _server.ts-D7tgGcoB.js.map} +1 -1
  355. package/build/server/chunks/{_server.ts-bONEWPMV.js → _server.ts-DBV9dA6A.js} +5 -5
  356. package/build/server/chunks/{_server.ts-bONEWPMV.js.map → _server.ts-DBV9dA6A.js.map} +1 -1
  357. package/build/server/chunks/{_server.ts-EnuOtr_j.js → _server.ts-DLUA6_Lf.js} +29 -9
  358. package/build/server/chunks/_server.ts-DLUA6_Lf.js.map +1 -0
  359. package/build/server/chunks/{_server.ts-BqsgEogJ.js → _server.ts-DM01ishT.js} +5 -5
  360. package/build/server/chunks/{_server.ts-BqsgEogJ.js.map → _server.ts-DM01ishT.js.map} +1 -1
  361. package/build/server/chunks/{_server.ts-4eVxyBg6.js → _server.ts-DNeVKrs8.js} +6 -6
  362. package/build/server/chunks/{_server.ts-4eVxyBg6.js.map → _server.ts-DNeVKrs8.js.map} +1 -1
  363. package/build/server/chunks/{_server.ts-B_KQteIy.js → _server.ts-DlDf2qpE.js} +6 -6
  364. package/build/server/chunks/{_server.ts-B_KQteIy.js.map → _server.ts-DlDf2qpE.js.map} +1 -1
  365. package/build/server/chunks/{_server.ts-Dsoq_gsI.js → _server.ts-DmqbBNeI.js} +5 -5
  366. package/build/server/chunks/{_server.ts-Dsoq_gsI.js.map → _server.ts-DmqbBNeI.js.map} +1 -1
  367. package/build/server/chunks/{_server.ts-B7Z1RMy4.js → _server.ts-DwqLpa_k.js} +5 -5
  368. package/build/server/chunks/{_server.ts-B7Z1RMy4.js.map → _server.ts-DwqLpa_k.js.map} +1 -1
  369. package/build/server/chunks/{_server.ts-DpkIJe-d.js → _server.ts-IVIAzAUs.js} +5 -5
  370. package/build/server/chunks/{_server.ts-DpkIJe-d.js.map → _server.ts-IVIAzAUs.js.map} +1 -1
  371. package/build/server/chunks/{_server.ts-CUcFObAP.js → _server.ts-KdED3s6W.js} +5 -5
  372. package/build/server/chunks/{_server.ts-CUcFObAP.js.map → _server.ts-KdED3s6W.js.map} +1 -1
  373. package/build/server/chunks/{_server.ts-ByqZZZxB.js → _server.ts-Xl5CYncx.js} +3 -3
  374. package/build/server/chunks/{_server.ts-ByqZZZxB.js.map → _server.ts-Xl5CYncx.js.map} +1 -1
  375. package/build/server/chunks/{_server.ts-BiJbME_l.js → _server.ts-Xpgu2-ka.js} +8 -8
  376. package/build/server/chunks/_server.ts-Xpgu2-ka.js.map +1 -0
  377. package/build/server/chunks/{_server.ts-D4mOhrFH.js → _server.ts-eVLE380Q.js} +5 -5
  378. package/build/server/chunks/{_server.ts-D4mOhrFH.js.map → _server.ts-eVLE380Q.js.map} +1 -1
  379. package/build/server/chunks/{_server.ts-COWH7HN8.js → _server.ts-kighVn_d.js} +5 -5
  380. package/build/server/chunks/{_server.ts-COWH7HN8.js.map → _server.ts-kighVn_d.js.map} +1 -1
  381. package/build/server/chunks/{_server.ts-BtXdHfbr.js → _server.ts-r2RVYvYA.js} +5 -5
  382. package/build/server/chunks/{_server.ts-BtXdHfbr.js.map → _server.ts-r2RVYvYA.js.map} +1 -1
  383. package/build/server/chunks/{access.server-BBglojso.js → access.server-ByXvmWyF.js} +4 -4
  384. package/build/server/chunks/{access.server-BBglojso.js.map → access.server-ByXvmWyF.js.map} +1 -1
  385. package/build/server/chunks/{api-errors-agQVBoep.js → api-errors-C0SWfJj5.js} +3 -3
  386. package/build/server/chunks/{api-errors-agQVBoep.js.map → api-errors-C0SWfJj5.js.map} +1 -1
  387. package/build/server/chunks/{auth-bootstrap.server-CdwMOcYI.js → auth-bootstrap.server-zvPqZ6kt.js} +5 -4
  388. package/build/server/chunks/auth-bootstrap.server-zvPqZ6kt.js.map +1 -0
  389. package/build/server/chunks/{bootHealth.server-Ca8zFRpM.js → bootHealth.server-CLLVkbZZ.js} +2 -2
  390. package/build/server/chunks/{bootHealth.server-Ca8zFRpM.js.map → bootHealth.server-CLLVkbZZ.js.map} +1 -1
  391. package/build/server/chunks/{computeLimits-CKK96OOR.js → computeLimits-5PaWFMYq.js} +4 -3
  392. package/build/server/chunks/computeLimits-5PaWFMYq.js.map +1 -0
  393. package/build/server/chunks/{dialog-description-C-wNjCmv.js → dialog-description-8UnYiAMX.js} +2 -2
  394. package/build/server/chunks/{dialog-description-C-wNjCmv.js.map → dialog-description-8UnYiAMX.js.map} +1 -1
  395. package/build/server/chunks/{upload-BY_p_jpL.js → dialog-footer-CqbKEEQ-.js} +11 -11
  396. package/build/server/chunks/dialog-footer-CqbKEEQ-.js.map +1 -0
  397. package/build/server/chunks/{footerContext.svelte-BZEf7gVw.js → footerContext.svelte-oP__zW9C.js} +10 -2
  398. package/build/server/chunks/footerContext.svelte-oP__zW9C.js.map +1 -0
  399. package/build/server/chunks/{hooks.server-D6EnLMoG.js → hooks.server-CwDixHQc.js} +4 -4
  400. package/build/server/chunks/{hooks.server-D6EnLMoG.js.map → hooks.server-CwDixHQc.js.map} +1 -1
  401. package/build/server/chunks/index-server2-BiZ3ccb0.js +18 -0
  402. package/build/server/chunks/index-server2-BiZ3ccb0.js.map +1 -0
  403. package/build/server/chunks/{index2-B9qXYHIn.js → index2-D4a590Kd.js} +11 -11
  404. package/build/server/chunks/index2-D4a590Kd.js.map +1 -0
  405. package/build/server/chunks/{index3-AGemCGcn.js → index3-0Z1R1__W.js} +12 -12
  406. package/build/server/chunks/index3-0Z1R1__W.js.map +1 -0
  407. package/build/server/chunks/{index4-DSWKKOFB.js → index4-DWNr0jIL.js} +3 -3
  408. package/build/server/chunks/{index4-DSWKKOFB.js.map → index4-DWNr0jIL.js.map} +1 -1
  409. package/build/server/chunks/{permissions.server-cNGc9ris.js → permissions.server-7AwAAkY9.js} +2 -2
  410. package/build/server/chunks/{permissions.server-cNGc9ris.js.map → permissions.server-7AwAAkY9.js.map} +1 -1
  411. package/build/server/chunks/{providers.server-MD7TK-zQ.js → providers.server-wGknM6CR.js} +52 -29
  412. package/build/server/chunks/providers.server-wGknM6CR.js.map +1 -0
  413. package/build/server/chunks/{resolve.server-BXKCfGfg.js → resolve.server-CvfANFCn.js} +2 -2
  414. package/build/server/chunks/{resolve.server-BXKCfGfg.js.map → resolve.server-CvfANFCn.js.map} +1 -1
  415. package/build/server/chunks/{scroll-lock-BVxv0Dsn.js → scroll-lock-BIz_BXmd.js} +4 -15
  416. package/build/server/chunks/scroll-lock-BIz_BXmd.js.map +1 -0
  417. package/build/server/chunks/{utils2-D38XWwRv.js → utils2-BsnrDRob.js} +2 -2
  418. package/build/server/chunks/{utils2-D38XWwRv.js.map → utils2-BsnrDRob.js.map} +1 -1
  419. package/build/server/index.js +2 -2
  420. package/build/server/index.js.map +1 -1
  421. package/build/server/manifest.js +70 -70
  422. package/build/server/manifest.js.map +1 -1
  423. package/package.json +12 -9
  424. package/templates/.env.example +6 -4
  425. package/build/client/_app/immutable/assets/0.vgCL98o5.css +0 -1
  426. package/build/client/_app/immutable/assets/0.vgCL98o5.css.br +0 -0
  427. package/build/client/_app/immutable/assets/0.vgCL98o5.css.gz +0 -0
  428. package/build/client/_app/immutable/assets/20.DvtWUFNX.css +0 -1
  429. package/build/client/_app/immutable/assets/20.DvtWUFNX.css.br +0 -0
  430. package/build/client/_app/immutable/assets/20.DvtWUFNX.css.gz +0 -0
  431. package/build/client/_app/immutable/chunks/-UMoMsui.js.br +0 -0
  432. package/build/client/_app/immutable/chunks/-UMoMsui.js.gz +0 -0
  433. package/build/client/_app/immutable/chunks/2n-qzJg2.js.br +0 -0
  434. package/build/client/_app/immutable/chunks/2n-qzJg2.js.gz +0 -0
  435. package/build/client/_app/immutable/chunks/B6yEy6Wb.js.br +0 -0
  436. package/build/client/_app/immutable/chunks/B6yEy6Wb.js.gz +0 -0
  437. package/build/client/_app/immutable/chunks/BQ0arxbK.js.br +0 -0
  438. package/build/client/_app/immutable/chunks/BQ0arxbK.js.gz +0 -0
  439. package/build/client/_app/immutable/chunks/BeM-GIFh.js +0 -1
  440. package/build/client/_app/immutable/chunks/BeM-GIFh.js.br +0 -0
  441. package/build/client/_app/immutable/chunks/BeM-GIFh.js.gz +0 -0
  442. package/build/client/_app/immutable/chunks/C1kpvSgW.js +0 -2
  443. package/build/client/_app/immutable/chunks/C1kpvSgW.js.br +0 -0
  444. package/build/client/_app/immutable/chunks/C1kpvSgW.js.gz +0 -0
  445. package/build/client/_app/immutable/chunks/C98bdhQ5.js.br +0 -0
  446. package/build/client/_app/immutable/chunks/C98bdhQ5.js.gz +0 -0
  447. package/build/client/_app/immutable/chunks/Cal8_SqL.js +0 -1
  448. package/build/client/_app/immutable/chunks/Cal8_SqL.js.br +0 -0
  449. package/build/client/_app/immutable/chunks/Cal8_SqL.js.gz +0 -0
  450. package/build/client/_app/immutable/chunks/CynIvqMH.js +0 -1
  451. package/build/client/_app/immutable/chunks/CynIvqMH.js.br +0 -0
  452. package/build/client/_app/immutable/chunks/CynIvqMH.js.gz +0 -0
  453. package/build/client/_app/immutable/chunks/D37hHIb0.js.br +0 -0
  454. package/build/client/_app/immutable/chunks/D37hHIb0.js.gz +0 -0
  455. package/build/client/_app/immutable/chunks/DNu_no60.js.br +0 -0
  456. package/build/client/_app/immutable/chunks/DNu_no60.js.gz +0 -0
  457. package/build/client/_app/immutable/entry/app.1YljYqLj.js +0 -2
  458. package/build/client/_app/immutable/entry/app.1YljYqLj.js.br +0 -0
  459. package/build/client/_app/immutable/entry/app.1YljYqLj.js.gz +0 -0
  460. package/build/client/_app/immutable/entry/start.C41rnrMx.js +0 -1
  461. package/build/client/_app/immutable/entry/start.C41rnrMx.js.br +0 -0
  462. package/build/client/_app/immutable/entry/start.C41rnrMx.js.gz +0 -0
  463. package/build/client/_app/immutable/nodes/0.Y-xP5pet.js +0 -9
  464. package/build/client/_app/immutable/nodes/0.Y-xP5pet.js.br +0 -0
  465. package/build/client/_app/immutable/nodes/0.Y-xP5pet.js.gz +0 -0
  466. package/build/client/_app/immutable/nodes/1.5JE3G8iG.js.br +0 -0
  467. package/build/client/_app/immutable/nodes/1.5JE3G8iG.js.gz +0 -0
  468. package/build/client/_app/immutable/nodes/10.DpfN1qrg.js.br +0 -0
  469. package/build/client/_app/immutable/nodes/10.DpfN1qrg.js.gz +0 -0
  470. package/build/client/_app/immutable/nodes/11.Co2EmpEg.js +0 -2
  471. package/build/client/_app/immutable/nodes/11.Co2EmpEg.js.br +0 -0
  472. package/build/client/_app/immutable/nodes/11.Co2EmpEg.js.gz +0 -0
  473. package/build/client/_app/immutable/nodes/13.D5OdE_HH.js.br +0 -0
  474. package/build/client/_app/immutable/nodes/13.D5OdE_HH.js.gz +0 -0
  475. package/build/client/_app/immutable/nodes/14.UGx5pLUS.js.br +0 -0
  476. package/build/client/_app/immutable/nodes/14.UGx5pLUS.js.gz +0 -0
  477. package/build/client/_app/immutable/nodes/16.CqZNgdz-.js.br +0 -0
  478. package/build/client/_app/immutable/nodes/16.CqZNgdz-.js.gz +0 -0
  479. package/build/client/_app/immutable/nodes/17.B1PHOW1Y.js.br +0 -0
  480. package/build/client/_app/immutable/nodes/17.B1PHOW1Y.js.gz +0 -0
  481. package/build/client/_app/immutable/nodes/19.ClB_k0uw.js.br +0 -0
  482. package/build/client/_app/immutable/nodes/19.ClB_k0uw.js.gz +0 -0
  483. package/build/client/_app/immutable/nodes/2.uPLLf3gR.js.br +0 -0
  484. package/build/client/_app/immutable/nodes/2.uPLLf3gR.js.gz +0 -0
  485. package/build/client/_app/immutable/nodes/20.C5BF7igP.js +0 -4118
  486. package/build/client/_app/immutable/nodes/20.C5BF7igP.js.br +0 -0
  487. package/build/client/_app/immutable/nodes/20.C5BF7igP.js.gz +0 -0
  488. package/build/client/_app/immutable/nodes/21.B1xX86Nz.js.br +0 -0
  489. package/build/client/_app/immutable/nodes/21.B1xX86Nz.js.gz +0 -0
  490. package/build/client/_app/immutable/nodes/23.BWuAu45o.js.br +0 -0
  491. package/build/client/_app/immutable/nodes/23.BWuAu45o.js.gz +0 -0
  492. package/build/client/_app/immutable/nodes/24.DSWGE_q2.js.br +0 -0
  493. package/build/client/_app/immutable/nodes/24.DSWGE_q2.js.gz +0 -0
  494. package/build/client/_app/immutable/nodes/27.CjlEhW_1.js.br +0 -0
  495. package/build/client/_app/immutable/nodes/27.CjlEhW_1.js.gz +0 -0
  496. package/build/client/_app/immutable/nodes/28.U-BnDxlP.js.br +0 -0
  497. package/build/client/_app/immutable/nodes/28.U-BnDxlP.js.gz +0 -0
  498. package/build/client/_app/immutable/nodes/29.cl9udKxV.js.br +0 -0
  499. package/build/client/_app/immutable/nodes/29.cl9udKxV.js.gz +0 -0
  500. package/build/client/_app/immutable/nodes/3.UKn7Q9OQ.js.br +0 -0
  501. package/build/client/_app/immutable/nodes/3.UKn7Q9OQ.js.gz +0 -0
  502. package/build/client/_app/immutable/nodes/30.DPqPYAg4.js.br +0 -0
  503. package/build/client/_app/immutable/nodes/30.DPqPYAg4.js.gz +0 -0
  504. package/build/client/_app/immutable/nodes/5.CbYguvwB.js.br +0 -2
  505. package/build/client/_app/immutable/nodes/5.CbYguvwB.js.gz +0 -0
  506. package/build/client/_app/immutable/nodes/6.DZgUvAex.js.br +0 -0
  507. package/build/client/_app/immutable/nodes/6.DZgUvAex.js.gz +0 -0
  508. package/build/client/_app/immutable/nodes/7.Cv7r8DBm.js.br +0 -0
  509. package/build/client/_app/immutable/nodes/7.Cv7r8DBm.js.gz +0 -0
  510. package/build/client/_app/immutable/nodes/8.zr3bqaC_.js.br +0 -0
  511. package/build/client/_app/immutable/nodes/8.zr3bqaC_.js.gz +0 -0
  512. package/build/client/_app/immutable/nodes/9.B2PU0xej.js +0 -1
  513. package/build/client/_app/immutable/nodes/9.B2PU0xej.js.br +0 -0
  514. package/build/client/_app/immutable/nodes/9.B2PU0xej.js.gz +0 -0
  515. package/build/server/chunks/0-v49L2HZX.js.map +0 -1
  516. package/build/server/chunks/11-BLjiJpX4.js.map +0 -1
  517. package/build/server/chunks/12-Dk9nDvlV.js.map +0 -1
  518. package/build/server/chunks/19-C9FaW__N.js.map +0 -1
  519. package/build/server/chunks/2-CwQhh3Hg.js.map +0 -1
  520. package/build/server/chunks/24-ukwP0nYw.js.map +0 -1
  521. package/build/server/chunks/5-QlPeCe4d.js.map +0 -1
  522. package/build/server/chunks/6-3t8NszBJ.js.map +0 -1
  523. package/build/server/chunks/7-DgFxSLWj.js.map +0 -1
  524. package/build/server/chunks/UserChip-CCZ9yMM3.js.map +0 -1
  525. package/build/server/chunks/_layout.svelte-DU36kuy0.js.map +0 -1
  526. package/build/server/chunks/_page.svelte-CSZEgmHp.js.map +0 -1
  527. package/build/server/chunks/_page.svelte-DJnICJdZ.js.map +0 -1
  528. package/build/server/chunks/_page.svelte-DSPm244d.js.map +0 -1
  529. package/build/server/chunks/_page.svelte-DSYaUquf.js.map +0 -1
  530. package/build/server/chunks/_server.ts-BL7-YPnc.js.map +0 -1
  531. package/build/server/chunks/_server.ts-BiJbME_l.js.map +0 -1
  532. package/build/server/chunks/_server.ts-Bq2BT6_L.js.map +0 -1
  533. package/build/server/chunks/_server.ts-CXYPZtry.js.map +0 -1
  534. package/build/server/chunks/_server.ts-DsFj_8lL.js.map +0 -1
  535. package/build/server/chunks/_server.ts-EnuOtr_j.js.map +0 -1
  536. package/build/server/chunks/auth-bootstrap.server-CdwMOcYI.js.map +0 -1
  537. package/build/server/chunks/computeLimits-CKK96OOR.js.map +0 -1
  538. package/build/server/chunks/footerContext.svelte-BZEf7gVw.js.map +0 -1
  539. package/build/server/chunks/index2-B9qXYHIn.js.map +0 -1
  540. package/build/server/chunks/index3-AGemCGcn.js.map +0 -1
  541. package/build/server/chunks/providers.server-MD7TK-zQ.js.map +0 -1
  542. package/build/server/chunks/scroll-lock-BVxv0Dsn.js.map +0 -1
  543. package/build/server/chunks/upload-BY_p_jpL.js.map +0 -1
@@ -1,19 +1,20 @@
1
1
  import { clsx } from 'clsx';
2
- import { GrasshopperResponseProcessor, downloadFileData } from '@selvajs/compute';
3
- import { as as run, o as attr_style, I as derived, Y as getContext, n as attr_class, aD as stringify, T as escape_html, q as bind_props, aA as spread_props, Q as ensure_array_like, an as props_id, p as attributes, a2 as hasContext, av as setContext, v as clsx$1, aa as is_array, $ as get_prototype_of, ak as object_prototype, m as attr } from './renderer-x4cX3Aau.js';
2
+ import { GrasshopperResponseProcessor } from '@selvajs/compute';
3
+ import { as as run, av as setContext, Y as getContext, o as attr_style, I as derived, aa as is_array, $ as get_prototype_of, ak as object_prototype, n as attr_class, aD as stringify, T as escape_html, q as bind_props, aA as spread_props, Q as ensure_array_like, an as props_id, p as attributes, a2 as hasContext, v as clsx$1, m as attr } from './renderer-x4cX3Aau.js';
4
4
  import { S as Server } from './server-C3-deqCy.js';
5
- import { A as AppShell, U as UserChip, T as Triangle_alert, D as Dialog_trigger, C as Chevron_right } from './UserChip-CCZ9yMM3.js';
5
+ import { a as AppShell, T as Triangle_alert, U as UserChip, D as Dialog_trigger, f as formatFileSize, g as getBase64FileSize, i as isFileData, M as MIME_BY_EXT, C as Chevron_right, d as downloadFiles, A as APP_DEFAULTS } from './UserChip-fy4ucYa9.js';
6
6
  import { p as page } from './index-CtiRmlms.js';
7
- import { o as onDestroy, D as DOMContext$1, u as useId, A as AnimationsComplete, t as tick } from './scroll-lock-BVxv0Dsn.js';
8
- import { F as FOOTER_CONTEXT_KEY, w as watch } from './footerContext.svelte-BZEf7gVw.js';
9
- import { R as Root, D as Dialog_content, b as Dialog_header, c as Dialog_title, a as Dialog_description } from './index2-B9qXYHIn.js';
7
+ import { o as onDestroy, t as tick } from './index-server2-BiZ3ccb0.js';
8
+ import { F as FOOTER_CONTEXT_KEY, w as watch } from './footerContext.svelte-oP__zW9C.js';
9
+ import { R as Root, D as Dialog_content, b as Dialog_header, c as Dialog_title, a as Dialog_description } from './index2-D4a590Kd.js';
10
10
  import { k as createBitsAttrs, j as createAttachmentKey, l as createId, h as boxWith$1, S as StyleToObject, a as attachRef$1, v as mergeProps$1, w as simpleBox, b as boolToEmptyStrOrUndef, c as boolToStr, o as getAriaChecked } from './create-id-B-AKukLt.js';
11
11
  import { c as createSubscriber, a as SvelteSet, S as SvelteMap } from './index-server-DMc-UvjC.js';
12
12
  import { c as cn } from './utils3-B05Dmz_H.js';
13
13
  import { I as Icon$1 } from './Icon-DbkwAOkZ.js';
14
14
  import { B as Button } from './button-1GF48U_O.js';
15
- import { C as Check, i as isFunction$1, R as Root$1, b as Select_trigger, S as Select_content, a as Select_item, H as Hidden_input, c as isValidIndex } from './index3-AGemCGcn.js';
15
+ import { C as Check, i as isFunction$1, R as Root$1, b as Select_trigger, S as Select_content, a as Select_item, H as Hidden_input, c as isValidIndex } from './index3-0Z1R1__W.js';
16
16
  import { C as Context$1, w as watch$1, n as noop$1, d as ENTER, S as SPACE, h as isElementOrSVGElement, a as ARROW_LEFT, b as ARROW_RIGHT, c as ARROW_UP, A as ARROW_DOWN, H as HOME, E as END, j as isHTMLElement$1 } from './noop-iPXixleG.js';
17
+ import { D as DOMContext$1, u as useId, A as AnimationsComplete } from './scroll-lock-BIz_BXmd.js';
17
18
  import { h as html } from './html-FW6Ia4bL.js';
18
19
  import { T as Tabs, a as Tabs_content, d as Textarea, b as Tabs_list, c as Tabs_trigger } from './textarea-A5IYPwqe.js';
19
20
  import { C as Card, a as Card_content } from './card-content-CLRedGcu.js';
@@ -25,9 +26,9 @@ import { tv } from 'tailwind-variants';
25
26
  import { L as Label } from './label-Df1UqzdF.js';
26
27
  import { I as Input } from './input-DGJ03-ia.js';
27
28
  import { r as randomId } from './randomId-8gj3Lbuq.js';
28
- import { U as Upload, D as Dialog_footer } from './upload-BY_p_jpL.js';
29
+ import { U as Upload, D as Dialog_footer } from './dialog-footer-CqbKEEQ-.js';
29
30
  import './Icon2-DbkwAOkZ.js';
30
- import './dialog-description-C-wNjCmv.js';
31
+ import './dialog-description-8UnYiAMX.js';
31
32
  import './events-qfxQNxtp.js';
32
33
  import '@sveltejs/kit/internal';
33
34
  import './root-CGeBSY2K.js';
@@ -188,6 +189,209 @@ class Context {
188
189
  return setContext(this.#key, context);
189
190
  }
190
191
  }
192
+ function Camera($$renderer, $$props) {
193
+ let { $$slots, $$events, ...props } = $$props;
194
+ const iconNode = [
195
+ [
196
+ "path",
197
+ {
198
+ "d": "M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z"
199
+ }
200
+ ],
201
+ ["circle", { "cx": "12", "cy": "13", "r": "3" }]
202
+ ];
203
+ Icon$1($$renderer, spread_props([{ name: "camera" }, props, { iconNode }]));
204
+ }
205
+ function Circle_check_big($$renderer, $$props) {
206
+ let { $$slots, $$events, ...props } = $$props;
207
+ const iconNode = [
208
+ ["path", { "d": "M21.801 10A10 10 0 1 1 17 3.335" }],
209
+ ["path", { "d": "m9 11 3 3L22 4" }]
210
+ ];
211
+ Icon$1($$renderer, spread_props([{ name: "circle-check-big" }, props, { iconNode }]));
212
+ }
213
+ function Circle_question_mark($$renderer, $$props) {
214
+ let { $$slots, $$events, ...props } = $$props;
215
+ const iconNode = [
216
+ ["circle", { "cx": "12", "cy": "12", "r": "10" }],
217
+ ["path", { "d": "M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3" }],
218
+ ["path", { "d": "M12 17h.01" }]
219
+ ];
220
+ Icon$1($$renderer, spread_props([{ name: "circle-question-mark" }, props, { iconNode }]));
221
+ }
222
+ function Download($$renderer, $$props) {
223
+ let { $$slots, $$events, ...props } = $$props;
224
+ const iconNode = [
225
+ ["path", { "d": "M12 15V3" }],
226
+ ["path", { "d": "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }],
227
+ ["path", { "d": "m7 10 5 5 5-5" }]
228
+ ];
229
+ Icon$1($$renderer, spread_props([{ name: "download" }, props, { iconNode }]));
230
+ }
231
+ function File_up($$renderer, $$props) {
232
+ let { $$slots, $$events, ...props } = $$props;
233
+ const iconNode = [
234
+ [
235
+ "path",
236
+ {
237
+ "d": "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z"
238
+ }
239
+ ],
240
+ ["path", { "d": "M14 2v5a1 1 0 0 0 1 1h5" }],
241
+ ["path", { "d": "M12 12v6" }],
242
+ ["path", { "d": "m15 15-3-3-3 3" }]
243
+ ];
244
+ Icon$1($$renderer, spread_props([{ name: "file-up" }, props, { iconNode }]));
245
+ }
246
+ function File($$renderer, $$props) {
247
+ let { $$slots, $$events, ...props } = $$props;
248
+ const iconNode = [
249
+ [
250
+ "path",
251
+ {
252
+ "d": "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z"
253
+ }
254
+ ],
255
+ ["path", { "d": "M14 2v5a1 1 0 0 0 1 1h5" }]
256
+ ];
257
+ Icon$1($$renderer, spread_props([{ name: "file" }, props, { iconNode }]));
258
+ }
259
+ function Folder_open($$renderer, $$props) {
260
+ let { $$slots, $$events, ...props } = $$props;
261
+ const iconNode = [
262
+ [
263
+ "path",
264
+ {
265
+ "d": "m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2"
266
+ }
267
+ ]
268
+ ];
269
+ Icon$1($$renderer, spread_props([{ name: "folder-open" }, props, { iconNode }]));
270
+ }
271
+ function Folder($$renderer, $$props) {
272
+ let { $$slots, $$events, ...props } = $$props;
273
+ const iconNode = [
274
+ [
275
+ "path",
276
+ {
277
+ "d": "M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z"
278
+ }
279
+ ]
280
+ ];
281
+ Icon$1($$renderer, spread_props([{ name: "folder" }, props, { iconNode }]));
282
+ }
283
+ function Inbox($$renderer, $$props) {
284
+ let { $$slots, $$events, ...props } = $$props;
285
+ const iconNode = [
286
+ [
287
+ "polyline",
288
+ { "points": "22 12 16 12 14 15 10 15 8 12 2 12" }
289
+ ],
290
+ [
291
+ "path",
292
+ {
293
+ "d": "M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z"
294
+ }
295
+ ]
296
+ ];
297
+ Icon$1($$renderer, spread_props([{ name: "inbox" }, props, { iconNode }]));
298
+ }
299
+ function Info($$renderer, $$props) {
300
+ let { $$slots, $$events, ...props } = $$props;
301
+ const iconNode = [
302
+ ["circle", { "cx": "12", "cy": "12", "r": "10" }],
303
+ ["path", { "d": "M12 16v-4" }],
304
+ ["path", { "d": "M12 8h.01" }]
305
+ ];
306
+ Icon$1($$renderer, spread_props([{ name: "info" }, props, { iconNode }]));
307
+ }
308
+ function Layers($$renderer, $$props) {
309
+ let { $$slots, $$events, ...props } = $$props;
310
+ const iconNode = [
311
+ [
312
+ "path",
313
+ {
314
+ "d": "M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z"
315
+ }
316
+ ],
317
+ [
318
+ "path",
319
+ {
320
+ "d": "M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12"
321
+ }
322
+ ],
323
+ [
324
+ "path",
325
+ {
326
+ "d": "M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17"
327
+ }
328
+ ]
329
+ ];
330
+ Icon$1($$renderer, spread_props([{ name: "layers" }, props, { iconNode }]));
331
+ }
332
+ function Loader($$renderer, $$props) {
333
+ let { $$slots, $$events, ...props } = $$props;
334
+ const iconNode = [
335
+ ["path", { "d": "M12 2v4" }],
336
+ ["path", { "d": "m16.2 7.8 2.9-2.9" }],
337
+ ["path", { "d": "M18 12h4" }],
338
+ ["path", { "d": "m16.2 16.2 2.9 2.9" }],
339
+ ["path", { "d": "M12 18v4" }],
340
+ ["path", { "d": "m4.9 19.1 2.9-2.9" }],
341
+ ["path", { "d": "M2 12h4" }],
342
+ ["path", { "d": "m4.9 4.9 2.9 2.9" }]
343
+ ];
344
+ Icon$1($$renderer, spread_props([{ name: "loader" }, props, { iconNode }]));
345
+ }
346
+ function Maximize($$renderer, $$props) {
347
+ let { $$slots, $$events, ...props } = $$props;
348
+ const iconNode = [
349
+ ["path", { "d": "M8 3H5a2 2 0 0 0-2 2v3" }],
350
+ ["path", { "d": "M21 8V5a2 2 0 0 0-2-2h-3" }],
351
+ ["path", { "d": "M3 16v3a2 2 0 0 0 2 2h3" }],
352
+ ["path", { "d": "M16 21h3a2 2 0 0 0 2-2v-3" }]
353
+ ];
354
+ Icon$1($$renderer, spread_props([{ name: "maximize" }, props, { iconNode }]));
355
+ }
356
+ function Minimize($$renderer, $$props) {
357
+ let { $$slots, $$events, ...props } = $$props;
358
+ const iconNode = [
359
+ ["path", { "d": "M8 3v3a2 2 0 0 1-2 2H3" }],
360
+ ["path", { "d": "M21 8h-3a2 2 0 0 1-2-2V3" }],
361
+ ["path", { "d": "M3 16h3a2 2 0 0 1 2 2v3" }],
362
+ ["path", { "d": "M16 21v-3a2 2 0 0 1 2-2h3" }]
363
+ ];
364
+ Icon$1($$renderer, spread_props([{ name: "minimize" }, props, { iconNode }]));
365
+ }
366
+ function Minus($$renderer, $$props) {
367
+ let { $$slots, $$events, ...props } = $$props;
368
+ const iconNode = [["path", { "d": "M5 12h14" }]];
369
+ Icon$1($$renderer, spread_props([{ name: "minus" }, props, { iconNode }]));
370
+ }
371
+ function Play($$renderer, $$props) {
372
+ let { $$slots, $$events, ...props } = $$props;
373
+ const iconNode = [
374
+ [
375
+ "path",
376
+ {
377
+ "d": "M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z"
378
+ }
379
+ ]
380
+ ];
381
+ Icon$1($$renderer, spread_props([{ name: "play" }, props, { iconNode }]));
382
+ }
383
+ function Zap($$renderer, $$props) {
384
+ let { $$slots, $$events, ...props } = $$props;
385
+ const iconNode = [
386
+ [
387
+ "path",
388
+ {
389
+ "d": "M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z"
390
+ }
391
+ ]
392
+ ];
393
+ Icon$1($$renderer, spread_props([{ name: "zap" }, props, { iconNode }]));
394
+ }
191
395
  function extract(value, defaultValue) {
192
396
  if (isFunction$1(value)) {
193
397
  const getter = value;
@@ -2765,241 +2969,26 @@ function Slider_thumb($$renderer, $$props) {
2765
2969
  bind_props($$props, { ref });
2766
2970
  });
2767
2971
  }
2768
- function Camera($$renderer, $$props) {
2769
- let { $$slots, $$events, ...props } = $$props;
2770
- const iconNode = [
2771
- [
2772
- "path",
2773
- {
2774
- "d": "M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z"
2775
- }
2776
- ],
2777
- ["circle", { "cx": "12", "cy": "13", "r": "3" }]
2778
- ];
2779
- Icon$1($$renderer, spread_props([{ name: "camera" }, props, { iconNode }]));
2780
- }
2781
- function Circle_check_big($$renderer, $$props) {
2782
- let { $$slots, $$events, ...props } = $$props;
2783
- const iconNode = [
2784
- ["path", { "d": "M21.801 10A10 10 0 1 1 17 3.335" }],
2785
- ["path", { "d": "m9 11 3 3L22 4" }]
2786
- ];
2787
- Icon$1($$renderer, spread_props([{ name: "circle-check-big" }, props, { iconNode }]));
2788
- }
2789
- function Circle_question_mark($$renderer, $$props) {
2790
- let { $$slots, $$events, ...props } = $$props;
2791
- const iconNode = [
2792
- ["circle", { "cx": "12", "cy": "12", "r": "10" }],
2793
- ["path", { "d": "M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3" }],
2794
- ["path", { "d": "M12 17h.01" }]
2795
- ];
2796
- Icon$1($$renderer, spread_props([{ name: "circle-question-mark" }, props, { iconNode }]));
2797
- }
2798
- function Download($$renderer, $$props) {
2799
- let { $$slots, $$events, ...props } = $$props;
2800
- const iconNode = [
2801
- ["path", { "d": "M12 15V3" }],
2802
- ["path", { "d": "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }],
2803
- ["path", { "d": "m7 10 5 5 5-5" }]
2804
- ];
2805
- Icon$1($$renderer, spread_props([{ name: "download" }, props, { iconNode }]));
2806
- }
2807
- function File_up($$renderer, $$props) {
2808
- let { $$slots, $$events, ...props } = $$props;
2809
- const iconNode = [
2810
- [
2811
- "path",
2812
- {
2813
- "d": "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z"
2814
- }
2815
- ],
2816
- ["path", { "d": "M14 2v5a1 1 0 0 0 1 1h5" }],
2817
- ["path", { "d": "M12 12v6" }],
2818
- ["path", { "d": "m15 15-3-3-3 3" }]
2819
- ];
2820
- Icon$1($$renderer, spread_props([{ name: "file-up" }, props, { iconNode }]));
2821
- }
2822
- function File($$renderer, $$props) {
2823
- let { $$slots, $$events, ...props } = $$props;
2824
- const iconNode = [
2825
- [
2826
- "path",
2827
- {
2828
- "d": "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z"
2829
- }
2830
- ],
2831
- ["path", { "d": "M14 2v5a1 1 0 0 0 1 1h5" }]
2832
- ];
2833
- Icon$1($$renderer, spread_props([{ name: "file" }, props, { iconNode }]));
2834
- }
2835
- function Folder_open($$renderer, $$props) {
2836
- let { $$slots, $$events, ...props } = $$props;
2837
- const iconNode = [
2838
- [
2839
- "path",
2840
- {
2841
- "d": "m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2"
2842
- }
2843
- ]
2844
- ];
2845
- Icon$1($$renderer, spread_props([{ name: "folder-open" }, props, { iconNode }]));
2846
- }
2847
- function Folder($$renderer, $$props) {
2848
- let { $$slots, $$events, ...props } = $$props;
2849
- const iconNode = [
2850
- [
2851
- "path",
2852
- {
2853
- "d": "M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z"
2854
- }
2855
- ]
2856
- ];
2857
- Icon$1($$renderer, spread_props([{ name: "folder" }, props, { iconNode }]));
2858
- }
2859
- function Inbox($$renderer, $$props) {
2860
- let { $$slots, $$events, ...props } = $$props;
2861
- const iconNode = [
2862
- [
2863
- "polyline",
2864
- { "points": "22 12 16 12 14 15 10 15 8 12 2 12" }
2865
- ],
2866
- [
2867
- "path",
2868
- {
2869
- "d": "M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z"
2870
- }
2871
- ]
2872
- ];
2873
- Icon$1($$renderer, spread_props([{ name: "inbox" }, props, { iconNode }]));
2874
- }
2875
- function Info($$renderer, $$props) {
2876
- let { $$slots, $$events, ...props } = $$props;
2877
- const iconNode = [
2878
- ["circle", { "cx": "12", "cy": "12", "r": "10" }],
2879
- ["path", { "d": "M12 16v-4" }],
2880
- ["path", { "d": "M12 8h.01" }]
2881
- ];
2882
- Icon$1($$renderer, spread_props([{ name: "info" }, props, { iconNode }]));
2883
- }
2884
- function Layers($$renderer, $$props) {
2885
- let { $$slots, $$events, ...props } = $$props;
2886
- const iconNode = [
2887
- [
2888
- "path",
2889
- {
2890
- "d": "M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z"
2891
- }
2892
- ],
2893
- [
2894
- "path",
2895
- {
2896
- "d": "M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12"
2897
- }
2898
- ],
2899
- [
2900
- "path",
2901
- {
2902
- "d": "M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17"
2903
- }
2904
- ]
2905
- ];
2906
- Icon$1($$renderer, spread_props([{ name: "layers" }, props, { iconNode }]));
2907
- }
2908
- function Loader($$renderer, $$props) {
2909
- let { $$slots, $$events, ...props } = $$props;
2910
- const iconNode = [
2911
- ["path", { "d": "M12 2v4" }],
2912
- ["path", { "d": "m16.2 7.8 2.9-2.9" }],
2913
- ["path", { "d": "M18 12h4" }],
2914
- ["path", { "d": "m16.2 16.2 2.9 2.9" }],
2915
- ["path", { "d": "M12 18v4" }],
2916
- ["path", { "d": "m4.9 19.1 2.9-2.9" }],
2917
- ["path", { "d": "M2 12h4" }],
2918
- ["path", { "d": "m4.9 4.9 2.9 2.9" }]
2919
- ];
2920
- Icon$1($$renderer, spread_props([{ name: "loader" }, props, { iconNode }]));
2921
- }
2922
- function Maximize($$renderer, $$props) {
2923
- let { $$slots, $$events, ...props } = $$props;
2924
- const iconNode = [
2925
- ["path", { "d": "M8 3H5a2 2 0 0 0-2 2v3" }],
2926
- ["path", { "d": "M21 8V5a2 2 0 0 0-2-2h-3" }],
2927
- ["path", { "d": "M3 16v3a2 2 0 0 0 2 2h3" }],
2928
- ["path", { "d": "M16 21h3a2 2 0 0 0 2-2v-3" }]
2929
- ];
2930
- Icon$1($$renderer, spread_props([{ name: "maximize" }, props, { iconNode }]));
2931
- }
2932
- function Minimize($$renderer, $$props) {
2933
- let { $$slots, $$events, ...props } = $$props;
2934
- const iconNode = [
2935
- ["path", { "d": "M8 3v3a2 2 0 0 1-2 2H3" }],
2936
- ["path", { "d": "M21 8h-3a2 2 0 0 1-2-2V3" }],
2937
- ["path", { "d": "M3 16h3a2 2 0 0 1 2 2v3" }],
2938
- ["path", { "d": "M16 21v-3a2 2 0 0 1 2-2h3" }]
2939
- ];
2940
- Icon$1($$renderer, spread_props([{ name: "minimize" }, props, { iconNode }]));
2941
- }
2942
- function Minus($$renderer, $$props) {
2943
- let { $$slots, $$events, ...props } = $$props;
2944
- const iconNode = [["path", { "d": "M5 12h14" }]];
2945
- Icon$1($$renderer, spread_props([{ name: "minus" }, props, { iconNode }]));
2946
- }
2947
- function Play($$renderer, $$props) {
2948
- let { $$slots, $$events, ...props } = $$props;
2949
- const iconNode = [
2950
- [
2951
- "path",
2952
- {
2953
- "d": "M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z"
2954
- }
2955
- ]
2956
- ];
2957
- Icon$1($$renderer, spread_props([{ name: "play" }, props, { iconNode }]));
2958
- }
2959
- function Zap($$renderer, $$props) {
2960
- let { $$slots, $$events, ...props } = $$props;
2961
- const iconNode = [
2962
- [
2963
- "path",
2964
- {
2965
- "d": "M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z"
2966
- }
2967
- ]
2968
- ];
2969
- Icon$1($$renderer, spread_props([{ name: "zap" }, props, { iconNode }]));
2970
- }
2971
- const APP_DEFAULTS = {
2972
- // Timing & performance thresholds
2973
- TIMEOUTS: {
2974
- /** Parameter export callback delay (ms) */
2975
- PARAM_EXPORT_DELAY: 100
2976
- },
2977
- // File size formatting
2978
- FILE_SIZE: {
2979
- /** Bytes per kilobyte */
2980
- BYTES_PER_KB: 1024
2981
- }
2982
- };
2983
- function MeshMetadataDialog($$renderer, $$props) {
2984
- $$renderer.component(($$renderer2) => {
2985
- const EXCLUDED_KEYS = /* @__PURE__ */ new Set(["name", "layer", "originalIndex", "sourceComponentId"]);
2986
- let {
2987
- open = void 0,
2988
- metadata,
2989
- meshName,
2990
- onOpenChange,
2991
- isFullscreen = false
2992
- } = $$props;
2993
- const getFilteredMetadata = () => {
2994
- if (!metadata) return {};
2995
- const entries = Object.entries(metadata).filter(([key]) => !EXCLUDED_KEYS.has(key));
2996
- const result = {};
2997
- for (const [key, value] of entries) {
2998
- if (key === "metadata" && typeof value === "object" && value !== null && !Array.isArray(value)) {
2999
- Object.assign(result, value);
3000
- } else {
3001
- result[key] = value;
3002
- }
2972
+ function MeshMetadataDialog($$renderer, $$props) {
2973
+ $$renderer.component(($$renderer2) => {
2974
+ const EXCLUDED_KEYS = /* @__PURE__ */ new Set(["name", "layer", "originalIndex", "sourceComponentId"]);
2975
+ let {
2976
+ open = void 0,
2977
+ metadata,
2978
+ meshName,
2979
+ onOpenChange,
2980
+ isFullscreen = false
2981
+ } = $$props;
2982
+ const getFilteredMetadata = () => {
2983
+ if (!metadata) return {};
2984
+ const entries = Object.entries(metadata).filter(([key]) => !EXCLUDED_KEYS.has(key));
2985
+ const result = {};
2986
+ for (const [key, value] of entries) {
2987
+ if (key === "metadata" && typeof value === "object" && value !== null && !Array.isArray(value)) {
2988
+ Object.assign(result, value);
2989
+ } else {
2990
+ result[key] = value;
2991
+ }
3003
2992
  }
3004
2993
  return result;
3005
2994
  };
@@ -5177,7 +5166,7 @@ function Viewer($$renderer, $$props) {
5177
5166
  let selectedMeshName = null;
5178
5167
  $$renderer2.push(`<div${attr_class(
5179
5168
  `min-h-64 sm:min-h-96 lg:min-h-125 relative h-full flex-1 border ${stringify(isFullscreen ? "fullscreen-viewer" : "overflow-hidden rounded-[0.625rem]")}`,
5180
- "svelte-qgylmx"
5169
+ "svelte-13y0czs"
5181
5170
  )}>`);
5182
5171
  if (Resizable_pane_group) {
5183
5172
  $$renderer2.push("<!--[-->");
@@ -5191,7 +5180,7 @@ function Viewer($$renderer, $$props) {
5191
5180
  defaultSize: 100,
5192
5181
  minSize: 40,
5193
5182
  children: ($$renderer4) => {
5194
- $$renderer4.push(`<div class="relative h-full w-full" style="touch-action: none;"><canvas class="block h-full w-full"></canvas> <div${attr_class(`inset-0 blur-overlay absolute z-20 ${stringify(isBlurred ? "blur-overlay-active" : "blur-overlay-inactive")}`, "svelte-qgylmx")}></div> `);
5183
+ $$renderer4.push(`<div class="relative h-full w-full" style="touch-action: none;"><canvas class="block h-full w-full"></canvas> <div${attr_class(`inset-0 blur-overlay absolute z-20 ${stringify(isBlurred ? "blur-overlay-active" : "blur-overlay-inactive")}`, "svelte-13y0czs")}></div> `);
5195
5184
  if (isSolving) {
5196
5185
  $$renderer4.push("<!--[0-->");
5197
5186
  $$renderer4.push(`<div class="inset-0 absolute z-10 animate-[selva-viewer-fade-in_0.2s_ease-out] backdrop-blur-[2px] transition-all duration-300"></div>`);
@@ -5331,7 +5320,7 @@ function SolvingIndicator($$renderer, $$props) {
5331
5320
  let { show } = $$props;
5332
5321
  if (show) {
5333
5322
  $$renderer.push("<!--[0-->");
5334
- $$renderer.push(`<div class="bottom-6 left-6 gap-3 px-5 py-3 shadow-xl fixed z-50 flex animate-[selva-slideInLeft_0.2s_ease-out] items-center rounded-lg border border-primary/20 bg-primary text-primary-foreground svelte-16o83r0"><div class="h-5 w-5 relative flex shrink-0 items-center justify-center svelte-16o83r0"><div class="animate-ping absolute h-full w-full rounded-full bg-primary-foreground opacity-30 svelte-16o83r0"></div> <div class="h-3 w-3 animate-spin rounded-full border-2 border-primary-foreground border-t-transparent svelte-16o83r0"></div></div> <div class="leading-tight flex flex-col svelte-16o83r0"><span class="text-sm font-semibold svelte-16o83r0">Solving</span> <span class="text-xs opacity-70 svelte-16o83r0">Grasshopper is calculating...</span></div></div>`);
5323
+ $$renderer.push(`<div class="bottom-6 left-6 gap-3 px-5 py-3 shadow-xl fixed z-50 flex animate-[selva-slideInLeft_0.2s_ease-out] items-center rounded-lg border border-primary/20 bg-primary text-primary-foreground svelte-g866ul"><div class="h-5 w-5 relative flex shrink-0 items-center justify-center svelte-g866ul"><div class="animate-ping absolute h-full w-full rounded-full bg-primary-foreground opacity-30 svelte-g866ul"></div> <div class="h-3 w-3 animate-spin rounded-full border-2 border-primary-foreground border-t-transparent svelte-g866ul"></div></div> <div class="leading-tight flex flex-col svelte-g866ul"><span class="text-sm font-semibold svelte-g866ul">Solving</span> <span class="text-xs opacity-70 svelte-g866ul">Grasshopper is calculating...</span></div></div>`);
5335
5324
  } else {
5336
5325
  $$renderer.push("<!--[-1-->");
5337
5326
  }
@@ -7143,6 +7132,16 @@ function evaluateVisibility(item, values) {
7143
7132
  const actionFn = ACTIONS[action] ?? ACTIONS.show;
7144
7133
  return actionFn(met, defaultValue);
7145
7134
  }
7135
+ function itemKey(item) {
7136
+ return item.type === "linebreak" ? item.id : item.paramId;
7137
+ }
7138
+ function buildVisibilityMap(items, values) {
7139
+ const map = {};
7140
+ for (const item of items) {
7141
+ map[itemKey(item)] = evaluateVisibility(item, values);
7142
+ }
7143
+ return map;
7144
+ }
7146
7145
  function evaluateGroupVisibility(group, values) {
7147
7146
  if (!group.visibilityCondition?.rules)
7148
7147
  return true;
@@ -7170,6 +7169,7 @@ function Group($$renderer, $$props) {
7170
7169
  onToggle();
7171
7170
  }
7172
7171
  }
7172
+ const visibilityMap = derived(() => buildVisibilityMap(items, values));
7173
7173
  const columnStarts = derived(() => {
7174
7174
  const positions = [];
7175
7175
  let col = 0;
@@ -7179,7 +7179,7 @@ function Group($$renderer, $$props) {
7179
7179
  col = 0;
7180
7180
  continue;
7181
7181
  }
7182
- const visibility = evaluateVisibility(item, values);
7182
+ const visibility = visibilityMap()[itemKey(item)];
7183
7183
  if (!visibility.visible) {
7184
7184
  positions.push(0);
7185
7185
  continue;
@@ -7197,13 +7197,13 @@ function Group($$renderer, $$props) {
7197
7197
  $$renderer3.push(`<div style="grid-column: 1 / -1" class="h-px bg-border" aria-hidden="true"></div>`);
7198
7198
  } else {
7199
7199
  $$renderer3.push("<!--[-1-->");
7200
- const visibility = evaluateVisibility(layoutItem, values);
7200
+ const visibility = visibilityMap()[itemKey(layoutItem)];
7201
7201
  const span = Math.min(Math.max(1, layoutItem.span ?? 1), cols);
7202
7202
  if (visibility.visible) {
7203
7203
  $$renderer3.push("<!--[0-->");
7204
7204
  if (layoutItem.type === "input") {
7205
7205
  $$renderer3.push("<!--[0-->");
7206
- $$renderer3.push(`<div${attr_class("grid-cell min-w-0 flex items-center svelte-rxs5ka", void 0, {
7206
+ $$renderer3.push(`<div${attr_class("grid-cell min-w-0 flex items-center svelte-1mpk06z", void 0, {
7207
7207
  "opacity-50": visibility.disabled,
7208
7208
  "col-divider": !isFirstInRow && cols > 1
7209
7209
  })}${attr_style(`grid-column: span ${stringify(span)} / span ${stringify(span)}`)}>`);
@@ -7211,7 +7211,7 @@ function Group($$renderer, $$props) {
7211
7211
  $$renderer3.push(`<!----></div>`);
7212
7212
  } else if (layoutItem.type === "output") {
7213
7213
  $$renderer3.push("<!--[1-->");
7214
- $$renderer3.push(`<div${attr_class("grid-cell svelte-rxs5ka", void 0, { "col-divider": !isFirstInRow && cols > 1 })}${attr_style(`grid-column: span ${stringify(span)} / span ${stringify(span)}`)}>`);
7214
+ $$renderer3.push(`<div${attr_class("grid-cell svelte-1mpk06z", void 0, { "col-divider": !isFirstInRow && cols > 1 })}${attr_style(`grid-column: span ${stringify(span)} / span ${stringify(span)}`)}>`);
7215
7215
  outputSnippet($$renderer3, layoutItem);
7216
7216
  $$renderer3.push(`<!----></div>`);
7217
7217
  } else {
@@ -7227,7 +7227,7 @@ function Group($$renderer, $$props) {
7227
7227
  }
7228
7228
  if (flat) {
7229
7229
  $$renderer2.push("<!--[0-->");
7230
- $$renderer2.push(`<div class="p-6"><div class="schema-grid gap-6 grid svelte-rxs5ka"${attr_style(`--schema-cols: ${stringify(columns)};`)}><!--[-->`);
7230
+ $$renderer2.push(`<div class="p-6"><div class="schema-grid gap-6 grid svelte-1mpk06z"${attr_style(`--schema-cols: ${stringify(columns)};`)}><!--[-->`);
7231
7231
  const each_array = ensure_array_like(items);
7232
7232
  for (let i = 0, $$length = each_array.length; i < $$length; i++) {
7233
7233
  let layoutItem = each_array[i];
@@ -7307,13 +7307,13 @@ function Group($$renderer, $$props) {
7307
7307
  $$renderer3.push("<!--[!-->");
7308
7308
  $$renderer3.push("<!--]-->");
7309
7309
  }
7310
- $$renderer3.push(` <div${attr_class("content-wrapper svelte-rxs5ka", void 0, { "collapsed": collapsed })}><div class="content-inner svelte-rxs5ka">`);
7310
+ $$renderer3.push(` <div${attr_class("content-wrapper svelte-1mpk06z", void 0, { "collapsed": collapsed })}><div class="content-inner svelte-1mpk06z">`);
7311
7311
  if (Card_content) {
7312
7312
  $$renderer3.push("<!--[-->");
7313
7313
  Card_content($$renderer3, {
7314
7314
  class: "p-6",
7315
7315
  children: ($$renderer4) => {
7316
- $$renderer4.push(`<div class="schema-grid gap-6 grid svelte-rxs5ka"${attr_style(`--schema-cols: ${stringify(columns)};`)}><!--[-->`);
7316
+ $$renderer4.push(`<div class="schema-grid gap-6 grid svelte-1mpk06z"${attr_style(`--schema-cols: ${stringify(columns)};`)}><!--[-->`);
7317
7317
  const each_array_1 = ensure_array_like(items);
7318
7318
  for (let i = 0, $$length = each_array_1.length; i < $$length; i++) {
7319
7319
  let layoutItem = each_array_1[i];
@@ -7350,6 +7350,9 @@ function isTextWidget(item) {
7350
7350
  function isDropdownWidget(item) {
7351
7351
  return item.type === "input" && item.widgetType === "dropdown";
7352
7352
  }
7353
+ function isDynamicValueListWidget(item) {
7354
+ return item.type === "input" && item.widgetType === "dynamicValueList";
7355
+ }
7353
7356
  function isCheckboxWidget(item) {
7354
7357
  return item.type === "input" && item.widgetType === "checkbox";
7355
7358
  }
@@ -7359,6 +7362,23 @@ function isFileWidget(item) {
7359
7362
  function isColorWidget(item) {
7360
7363
  return item.type === "input" && item.widgetType === "color";
7361
7364
  }
7365
+ function getGroups(schema) {
7366
+ if (!schema?.layout)
7367
+ return [];
7368
+ if (schema.layout.type === "tabbed") {
7369
+ return schema.layout.tabs?.flatMap((t) => t.groups ?? []) ?? [];
7370
+ }
7371
+ if (schema.layout.type === "flat") {
7372
+ return schema.layout.groups ?? [];
7373
+ }
7374
+ return [];
7375
+ }
7376
+ function getLayoutItems(schema) {
7377
+ return getGroups(schema).flatMap((g) => g.items ?? []);
7378
+ }
7379
+ function getInputItems(schema) {
7380
+ return getLayoutItems(schema).filter((i) => i.type === "input");
7381
+ }
7362
7382
  const fieldVariants = tv({
7363
7383
  base: "group/field data-[invalid=true]:text-destructive flex w-full gap-3",
7364
7384
  variants: {
@@ -7771,6 +7791,10 @@ function FileInput($$renderer, $$props) {
7771
7791
  alert(`File format not accepted: ${fileEnding}`);
7772
7792
  return;
7773
7793
  }
7794
+ if (file.size > APP_DEFAULTS.FILE_UPLOAD.MAX_SIZE_BYTES) {
7795
+ alert(`File too large: ${(file.size / 1024 / 1024).toFixed(2)}MB (max ${APP_DEFAULTS.FILE_UPLOAD.MAX_SIZE_MB}MB).`);
7796
+ return;
7797
+ }
7774
7798
  uploadedFileName = file.name;
7775
7799
  const reader = new FileReader();
7776
7800
  reader.onload = (e) => {
@@ -8171,6 +8195,13 @@ function TextInput($$renderer, $$props) {
8171
8195
  bind_props($$props, { value });
8172
8196
  });
8173
8197
  }
8198
+ const CLIENT_SLOT_CONTEXT_KEY = /* @__PURE__ */ Symbol("client-slot-context");
8199
+ function setClientSlot(slot) {
8200
+ setContext(CLIENT_SLOT_CONTEXT_KEY, slot);
8201
+ }
8202
+ function getClientSlot() {
8203
+ return getContext(CLIENT_SLOT_CONTEXT_KEY);
8204
+ }
8174
8205
  function InputControl($$renderer, $$props) {
8175
8206
  $$renderer.component(($$renderer2) => {
8176
8207
  let {
@@ -8178,10 +8209,17 @@ function InputControl($$renderer, $$props) {
8178
8209
  value = void 0,
8179
8210
  displayName,
8180
8211
  onChange,
8181
- disabled = false
8212
+ disabled = false,
8213
+ dynamicOptions
8182
8214
  } = $$props;
8183
8215
  const inputId = derived(() => `input-${item.paramId}`);
8184
8216
  const label = derived(() => displayName || item.displayName || item.paramId);
8217
+ const clientSlotConfig = derived(() => {
8218
+ const source = item.source;
8219
+ if (source?.kind !== "client" || source.client?.presentation !== "slot") return null;
8220
+ return { slotLabel: source.client.slotLabel };
8221
+ });
8222
+ const clientSlot = getClientSlot();
8185
8223
  const numberRangeHint = derived(() => {
8186
8224
  if (!isNumberWidget(item)) return null;
8187
8225
  const cfg = item.config;
@@ -8194,199 +8232,255 @@ function InputControl($$renderer, $$props) {
8194
8232
  return `≤ ${cfg.maximum}`;
8195
8233
  });
8196
8234
  const showRangeInLabel = derived(() => isNumberWidget(item) && numberRangeHint() !== null);
8235
+ const dynamicListConfig = derived(() => isDynamicValueListWidget(item) ? item.config : void 0);
8236
+ const dynamicListOptions = derived(() => dynamicOptions && Object.keys(dynamicOptions).length > 0 ? dynamicOptions : Object.fromEntries(Object.entries(dynamicListConfig()?.defaultOptions ?? {}).filter((entry) => entry[1] !== void 0)));
8237
+ const dynamicListHasOptions = derived(() => Object.keys(dynamicListOptions()).length > 0);
8238
+ const dynamicListAsDropdownConfig = derived(() => ({
8239
+ options: dynamicListOptions(),
8240
+ displayAs: dynamicListConfig()?.displayAs ?? "dropdown"
8241
+ }));
8242
+ const hideDynamicListWhenEmpty = derived(() => isDynamicValueListWidget(item) && !dynamicListHasOptions() && (dynamicListConfig()?.emptyBehavior ?? "hide") === "hide");
8197
8243
  function commit(newValue) {
8198
8244
  value = newValue;
8199
8245
  onChange(item.paramId, newValue);
8200
8246
  }
8201
- if (Field) {
8202
- $$renderer2.push("<!--[-->");
8203
- Field($$renderer2, {
8204
- children: ($$renderer3) => {
8205
- if (Field_label) {
8206
- $$renderer3.push("<!--[-->");
8207
- Field_label($$renderer3, {
8208
- for: inputId(),
8209
- class: "gap-2 flex items-center",
8210
- children: ($$renderer4) => {
8211
- $$renderer4.push(`<!---->${escape_html(label())} `);
8212
- if (item.description) {
8213
- $$renderer4.push("<!--[0-->");
8214
- if (Root) {
8215
- $$renderer4.push("<!--[-->");
8216
- Root($$renderer4, {
8217
- children: ($$renderer5) => {
8218
- if (Dialog_trigger) {
8219
- $$renderer5.push("<!--[-->");
8220
- Dialog_trigger($$renderer5, {
8221
- class: "p-1 cursor-help opacity-60 transition-opacity hover:opacity-100",
8222
- children: ($$renderer6) => {
8223
- Circle_question_mark($$renderer6, { size: 16 });
8224
- },
8225
- $$slots: { default: true }
8226
- });
8227
- $$renderer5.push("<!--]-->");
8228
- } else {
8229
- $$renderer5.push("<!--[!-->");
8230
- $$renderer5.push("<!--]-->");
8231
- }
8232
- $$renderer5.push(` `);
8233
- if (Dialog_content) {
8234
- $$renderer5.push("<!--[-->");
8235
- Dialog_content($$renderer5, {
8236
- class: "sm:max-w-md",
8237
- children: ($$renderer6) => {
8238
- if (Dialog_header) {
8239
- $$renderer6.push("<!--[-->");
8240
- Dialog_header($$renderer6, {
8241
- children: ($$renderer7) => {
8242
- if (Dialog_title) {
8243
- $$renderer7.push("<!--[-->");
8244
- Dialog_title($$renderer7, {
8245
- children: ($$renderer8) => {
8246
- $$renderer8.push(`<!---->${escape_html(label())}`);
8247
- },
8248
- $$slots: { default: true }
8249
- });
8250
- $$renderer7.push("<!--]-->");
8251
- } else {
8252
- $$renderer7.push("<!--[!-->");
8253
- $$renderer7.push("<!--]-->");
8254
- }
8255
- $$renderer7.push(` `);
8256
- if (Dialog_description) {
8257
- $$renderer7.push("<!--[-->");
8258
- Dialog_description($$renderer7, {
8259
- children: ($$renderer8) => {
8260
- $$renderer8.push(`<!---->${escape_html(item.description)}`);
8261
- },
8262
- $$slots: { default: true }
8263
- });
8264
- $$renderer7.push("<!--]-->");
8265
- } else {
8266
- $$renderer7.push("<!--[!-->");
8267
- $$renderer7.push("<!--]-->");
8268
- }
8269
- },
8270
- $$slots: { default: true }
8271
- });
8272
- $$renderer6.push("<!--]-->");
8273
- } else {
8274
- $$renderer6.push("<!--[!-->");
8275
- $$renderer6.push("<!--]-->");
8276
- }
8277
- },
8278
- $$slots: { default: true }
8279
- });
8280
- $$renderer5.push("<!--]-->");
8281
- } else {
8282
- $$renderer5.push("<!--[!-->");
8283
- $$renderer5.push("<!--]-->");
8284
- }
8285
- },
8286
- $$slots: { default: true }
8287
- });
8288
- $$renderer4.push("<!--]-->");
8289
- } else {
8290
- $$renderer4.push("<!--[!-->");
8291
- $$renderer4.push("<!--]-->");
8292
- }
8293
- } else {
8294
- $$renderer4.push("<!--[-1-->");
8295
- }
8296
- $$renderer4.push(`<!--]--> `);
8297
- if (showRangeInLabel()) {
8298
- $$renderer4.push("<!--[0-->");
8299
- $$renderer4.push(`<span class="text-xs font-normal text-muted-foreground">${escape_html(numberRangeHint())}</span>`);
8300
- } else {
8301
- $$renderer4.push("<!--[-1-->");
8302
- }
8303
- $$renderer4.push(`<!--]-->`);
8304
- },
8305
- $$slots: { default: true }
8306
- });
8307
- $$renderer3.push("<!--]-->");
8308
- } else {
8309
- $$renderer3.push("<!--[!-->");
8310
- $$renderer3.push("<!--]-->");
8311
- }
8312
- $$renderer3.push(` `);
8313
- if (isNumberWidget(item)) {
8314
- $$renderer3.push("<!--[0-->");
8315
- const config = item.config;
8316
- NumberInput($$renderer3, {
8317
- inputId: inputId(),
8318
- value: typeof value === "number" ? value : void 0,
8319
- config,
8320
- onChange: commit,
8321
- disabled
8322
- });
8323
- } else if (isCheckboxWidget(item)) {
8324
- $$renderer3.push("<!--[1-->");
8325
- CheckboxInput($$renderer3, {
8326
- inputId: inputId(),
8327
- value: typeof value === "boolean" ? value : void 0,
8328
- onChange: commit,
8329
- disabled
8330
- });
8331
- } else if (isTextWidget(item)) {
8332
- $$renderer3.push("<!--[2-->");
8333
- const config = item.config;
8334
- TextInput($$renderer3, {
8335
- inputId: inputId(),
8336
- value: typeof value === "string" ? value : "",
8337
- config,
8338
- onChange: commit,
8339
- disabled
8340
- });
8341
- } else if (isDropdownWidget(item)) {
8342
- $$renderer3.push("<!--[3-->");
8343
- const config = item.config;
8344
- if (config.displayAs === "checklist") {
8247
+ if (clientSlotConfig()) {
8248
+ $$renderer2.push("<!--[0-->");
8249
+ if (clientSlot) {
8250
+ $$renderer2.push("<!--[0-->");
8251
+ clientSlot($$renderer2, {
8252
+ inputId: item.paramId,
8253
+ displayName: label(),
8254
+ slotLabel: clientSlotConfig().slotLabel,
8255
+ value
8256
+ });
8257
+ } else {
8258
+ $$renderer2.push("<!--[-1-->");
8259
+ }
8260
+ $$renderer2.push(`<!--]-->`);
8261
+ } else if (!hideDynamicListWhenEmpty()) {
8262
+ $$renderer2.push("<!--[1-->");
8263
+ if (Field) {
8264
+ $$renderer2.push("<!--[-->");
8265
+ Field($$renderer2, {
8266
+ children: ($$renderer3) => {
8267
+ if (Field_label) {
8268
+ $$renderer3.push("<!--[-->");
8269
+ Field_label($$renderer3, {
8270
+ for: inputId(),
8271
+ class: "gap-2 flex items-center",
8272
+ children: ($$renderer4) => {
8273
+ $$renderer4.push(`<!---->${escape_html(label())} `);
8274
+ if (item.description) {
8275
+ $$renderer4.push("<!--[0-->");
8276
+ if (Root) {
8277
+ $$renderer4.push("<!--[-->");
8278
+ Root($$renderer4, {
8279
+ children: ($$renderer5) => {
8280
+ if (Dialog_trigger) {
8281
+ $$renderer5.push("<!--[-->");
8282
+ Dialog_trigger($$renderer5, {
8283
+ class: "p-1 cursor-help opacity-60 transition-opacity hover:opacity-100",
8284
+ children: ($$renderer6) => {
8285
+ Circle_question_mark($$renderer6, { size: 16 });
8286
+ },
8287
+ $$slots: { default: true }
8288
+ });
8289
+ $$renderer5.push("<!--]-->");
8290
+ } else {
8291
+ $$renderer5.push("<!--[!-->");
8292
+ $$renderer5.push("<!--]-->");
8293
+ }
8294
+ $$renderer5.push(` `);
8295
+ if (Dialog_content) {
8296
+ $$renderer5.push("<!--[-->");
8297
+ Dialog_content($$renderer5, {
8298
+ class: "sm:max-w-md",
8299
+ children: ($$renderer6) => {
8300
+ if (Dialog_header) {
8301
+ $$renderer6.push("<!--[-->");
8302
+ Dialog_header($$renderer6, {
8303
+ children: ($$renderer7) => {
8304
+ if (Dialog_title) {
8305
+ $$renderer7.push("<!--[-->");
8306
+ Dialog_title($$renderer7, {
8307
+ children: ($$renderer8) => {
8308
+ $$renderer8.push(`<!---->${escape_html(label())}`);
8309
+ },
8310
+ $$slots: { default: true }
8311
+ });
8312
+ $$renderer7.push("<!--]-->");
8313
+ } else {
8314
+ $$renderer7.push("<!--[!-->");
8315
+ $$renderer7.push("<!--]-->");
8316
+ }
8317
+ $$renderer7.push(` `);
8318
+ if (Dialog_description) {
8319
+ $$renderer7.push("<!--[-->");
8320
+ Dialog_description($$renderer7, {
8321
+ children: ($$renderer8) => {
8322
+ $$renderer8.push(`<!---->${escape_html(item.description)}`);
8323
+ },
8324
+ $$slots: { default: true }
8325
+ });
8326
+ $$renderer7.push("<!--]-->");
8327
+ } else {
8328
+ $$renderer7.push("<!--[!-->");
8329
+ $$renderer7.push("<!--]-->");
8330
+ }
8331
+ },
8332
+ $$slots: { default: true }
8333
+ });
8334
+ $$renderer6.push("<!--]-->");
8335
+ } else {
8336
+ $$renderer6.push("<!--[!-->");
8337
+ $$renderer6.push("<!--]-->");
8338
+ }
8339
+ },
8340
+ $$slots: { default: true }
8341
+ });
8342
+ $$renderer5.push("<!--]-->");
8343
+ } else {
8344
+ $$renderer5.push("<!--[!-->");
8345
+ $$renderer5.push("<!--]-->");
8346
+ }
8347
+ },
8348
+ $$slots: { default: true }
8349
+ });
8350
+ $$renderer4.push("<!--]-->");
8351
+ } else {
8352
+ $$renderer4.push("<!--[!-->");
8353
+ $$renderer4.push("<!--]-->");
8354
+ }
8355
+ } else {
8356
+ $$renderer4.push("<!--[-1-->");
8357
+ }
8358
+ $$renderer4.push(`<!--]--> `);
8359
+ if (showRangeInLabel()) {
8360
+ $$renderer4.push("<!--[0-->");
8361
+ $$renderer4.push(`<span class="text-xs font-normal text-muted-foreground">${escape_html(numberRangeHint())}</span>`);
8362
+ } else {
8363
+ $$renderer4.push("<!--[-1-->");
8364
+ }
8365
+ $$renderer4.push(`<!--]-->`);
8366
+ },
8367
+ $$slots: { default: true }
8368
+ });
8369
+ $$renderer3.push("<!--]-->");
8370
+ } else {
8371
+ $$renderer3.push("<!--[!-->");
8372
+ $$renderer3.push("<!--]-->");
8373
+ }
8374
+ $$renderer3.push(` `);
8375
+ if (isNumberWidget(item)) {
8345
8376
  $$renderer3.push("<!--[0-->");
8346
- ChecklistInput($$renderer3, {
8377
+ const config = item.config;
8378
+ NumberInput($$renderer3, {
8347
8379
  inputId: inputId(),
8348
- value: Array.isArray(value) ? value : typeof value === "string" && value ? [value] : [],
8380
+ value: typeof value === "number" ? value : void 0,
8349
8381
  config,
8350
8382
  onChange: commit,
8351
8383
  disabled
8352
8384
  });
8353
- } else {
8354
- $$renderer3.push("<!--[-1-->");
8355
- DropdownInput($$renderer3, {
8385
+ } else if (isCheckboxWidget(item)) {
8386
+ $$renderer3.push("<!--[1-->");
8387
+ CheckboxInput($$renderer3, {
8388
+ inputId: inputId(),
8389
+ value: typeof value === "boolean" ? value : void 0,
8390
+ onChange: commit,
8391
+ disabled
8392
+ });
8393
+ } else if (isTextWidget(item)) {
8394
+ $$renderer3.push("<!--[2-->");
8395
+ const config = item.config;
8396
+ TextInput($$renderer3, {
8397
+ inputId: inputId(),
8356
8398
  value: typeof value === "string" ? value : "",
8357
8399
  config,
8358
8400
  onChange: commit,
8359
8401
  disabled
8360
8402
  });
8403
+ } else if (isDropdownWidget(item)) {
8404
+ $$renderer3.push("<!--[3-->");
8405
+ const config = item.config;
8406
+ if (config.displayAs === "checklist") {
8407
+ $$renderer3.push("<!--[0-->");
8408
+ ChecklistInput($$renderer3, {
8409
+ inputId: inputId(),
8410
+ value: Array.isArray(value) ? value : typeof value === "string" && value ? [value] : [],
8411
+ config,
8412
+ onChange: commit,
8413
+ disabled
8414
+ });
8415
+ } else {
8416
+ $$renderer3.push("<!--[-1-->");
8417
+ DropdownInput($$renderer3, {
8418
+ value: typeof value === "string" ? value : "",
8419
+ config,
8420
+ onChange: commit,
8421
+ disabled
8422
+ });
8423
+ }
8424
+ $$renderer3.push(`<!--]-->`);
8425
+ } else if (isDynamicValueListWidget(item)) {
8426
+ $$renderer3.push("<!--[4-->");
8427
+ if (dynamicListHasOptions()) {
8428
+ $$renderer3.push("<!--[0-->");
8429
+ if (dynamicListAsDropdownConfig().displayAs === "checklist") {
8430
+ $$renderer3.push("<!--[0-->");
8431
+ ChecklistInput($$renderer3, {
8432
+ inputId: inputId(),
8433
+ value: Array.isArray(value) ? value : typeof value === "string" && value ? [value] : [],
8434
+ config: dynamicListAsDropdownConfig(),
8435
+ onChange: commit,
8436
+ disabled
8437
+ });
8438
+ } else {
8439
+ $$renderer3.push("<!--[-1-->");
8440
+ DropdownInput($$renderer3, {
8441
+ value: typeof value === "string" ? value : "",
8442
+ config: dynamicListAsDropdownConfig(),
8443
+ onChange: commit,
8444
+ disabled
8445
+ });
8446
+ }
8447
+ $$renderer3.push(`<!--]-->`);
8448
+ } else {
8449
+ $$renderer3.push("<!--[-1-->");
8450
+ $$renderer3.push(`<p class="text-sm text-muted-foreground">No options available yet.</p>`);
8451
+ }
8452
+ $$renderer3.push(`<!--]-->`);
8453
+ } else if (isFileWidget(item)) {
8454
+ $$renderer3.push("<!--[5-->");
8455
+ const config = item.config;
8456
+ FileInput($$renderer3, {
8457
+ value: typeof value === "string" ? value : "",
8458
+ acceptedFormats: config?.acceptedFormats ?? [],
8459
+ onChange: (newValue) => commit(newValue),
8460
+ defaultInputMode: config?.defaultInputMode,
8461
+ allowedInputModes: config?.allowedInputModes
8462
+ });
8463
+ } else if (isColorWidget(item)) {
8464
+ $$renderer3.push("<!--[6-->");
8465
+ ColorInput($$renderer3, {
8466
+ value: typeof value === "string" ? value : "#000000"
8467
+ });
8468
+ } else {
8469
+ $$renderer3.push("<!--[-1-->");
8361
8470
  }
8362
8471
  $$renderer3.push(`<!--]-->`);
8363
- } else if (isFileWidget(item)) {
8364
- $$renderer3.push("<!--[4-->");
8365
- const config = item.config;
8366
- FileInput($$renderer3, {
8367
- value: typeof value === "string" ? value : "",
8368
- acceptedFormats: config?.acceptedFormats ?? [],
8369
- onChange: (newValue) => commit(newValue),
8370
- defaultInputMode: config?.defaultInputMode,
8371
- allowedInputModes: config?.allowedInputModes
8372
- });
8373
- } else if (isColorWidget(item)) {
8374
- $$renderer3.push("<!--[5-->");
8375
- ColorInput($$renderer3, {
8376
- value: typeof value === "string" ? value : "#000000"
8377
- });
8378
- } else {
8379
- $$renderer3.push("<!--[-1-->");
8380
- }
8381
- $$renderer3.push(`<!--]-->`);
8382
- },
8383
- $$slots: { default: true }
8384
- });
8385
- $$renderer2.push("<!--]-->");
8472
+ },
8473
+ $$slots: { default: true }
8474
+ });
8475
+ $$renderer2.push("<!--]-->");
8476
+ } else {
8477
+ $$renderer2.push("<!--[!-->");
8478
+ $$renderer2.push("<!--]-->");
8479
+ }
8386
8480
  } else {
8387
- $$renderer2.push("<!--[!-->");
8388
- $$renderer2.push("<!--]-->");
8481
+ $$renderer2.push("<!--[-1-->");
8389
8482
  }
8483
+ $$renderer2.push(`<!--]-->`);
8390
8484
  bind_props($$props, { value });
8391
8485
  });
8392
8486
  }
@@ -8425,85 +8519,10 @@ function ChartOutput($$renderer, $$props) {
8425
8519
  $$renderer2.push(`<!--]--></div>`);
8426
8520
  });
8427
8521
  }
8428
- const MIME_BY_EXT = {
8429
- ".png": "image/png",
8430
- ".jpg": "image/jpeg",
8431
- ".jpeg": "image/jpeg",
8432
- ".webp": "image/webp",
8433
- ".gif": "image/gif",
8434
- ".svg": "image/svg+xml",
8435
- ".json": "application/json",
8436
- ".txt": "text/plain",
8437
- ".csv": "text/csv",
8438
- ".xml": "application/xml",
8439
- ".pdf": "application/pdf",
8440
- ".3dm": "model/vnd.3dm",
8441
- ".obj": "model/obj",
8442
- ".stl": "model/stl"
8443
- };
8444
- function saveSingleFile(file) {
8445
- const ext = (file.fileType ?? "").toLowerCase();
8446
- const mime = MIME_BY_EXT[ext] ?? "application/octet-stream";
8447
- let blob;
8448
- if (file.isBase64Encoded) {
8449
- const binary = atob(file.data);
8450
- const bytes = new Uint8Array(binary.length);
8451
- for (let i = 0; i < binary.length; i++)
8452
- bytes[i] = binary.charCodeAt(i);
8453
- blob = new Blob([bytes], { type: mime });
8454
- } else {
8455
- blob = new Blob([file.data], { type: mime });
8456
- }
8457
- const fullName = `${file.fileName}${file.fileType ?? ""}`;
8458
- const a = document.createElement("a");
8459
- a.href = URL.createObjectURL(blob);
8460
- a.download = fullName;
8461
- a.click();
8462
- URL.revokeObjectURL(a.href);
8463
- }
8464
- async function downloadFiles(fileData, fileName = "grasshopper-output") {
8465
- try {
8466
- const filesArray = Array.isArray(fileData) ? fileData : [fileData];
8467
- if (filesArray.length === 0) {
8468
- console.warn("[FileDownload] No files to download");
8469
- return;
8470
- }
8471
- if (filesArray.length === 1) {
8472
- saveSingleFile(filesArray[0]);
8473
- return;
8474
- }
8475
- await downloadFileData(filesArray, fileName);
8476
- } catch (error) {
8477
- console.error("[FileDownload] Error downloading files:", error);
8478
- throw error;
8479
- }
8480
- }
8481
- function formatFileSize(bytes) {
8482
- if (bytes === 0)
8483
- return "0 Bytes";
8484
- const k = APP_DEFAULTS.FILE_SIZE.BYTES_PER_KB;
8485
- const sizes = ["Bytes", "KB", "MB", "GB"];
8486
- const i = Math.floor(Math.log(bytes) / Math.log(k));
8487
- return Math.round(bytes / Math.pow(k, i) * 100) / 100 + " " + sizes[i];
8488
- }
8489
- function getBase64FileSize(base64) {
8490
- return Math.ceil(base64.length * 3 / 4);
8491
- }
8492
8522
  function ImageOutput($$renderer, $$props) {
8493
8523
  $$renderer.component(($$renderer2) => {
8494
8524
  let { item, value } = $$props;
8495
8525
  const SUPPORTED_EXTS = /* @__PURE__ */ new Set([".png", ".jpg", ".jpeg", ".webp", ".gif", ".svg"]);
8496
- const MIME_BY_EXT2 = {
8497
- ".png": "image/png",
8498
- ".jpg": "image/jpeg",
8499
- ".jpeg": "image/jpeg",
8500
- ".webp": "image/webp",
8501
- ".gif": "image/gif",
8502
- ".svg": "image/svg+xml"
8503
- };
8504
- function isFileData(x) {
8505
- return !!x && typeof x === "object" && "fileName" in x && "data" in x && "fileType" in x;
8506
- }
8507
8526
  const file = derived(() => {
8508
8527
  if (Array.isArray(value)) return value.find(isFileData) ?? null;
8509
8528
  return isFileData(value) ? value : null;
@@ -8512,7 +8531,7 @@ function ImageOutput($$renderer, $$props) {
8512
8531
  const isSupported = derived(() => SUPPORTED_EXTS.has(ext()));
8513
8532
  const dataUrl = derived(() => {
8514
8533
  if (!file() || !isSupported()) return null;
8515
- const mime = MIME_BY_EXT2[ext()] ?? "application/octet-stream";
8534
+ const mime = MIME_BY_EXT[ext()] ?? "application/octet-stream";
8516
8535
  if (file().isBase64Encoded) {
8517
8536
  return `data:${mime};base64,${file().data}`;
8518
8537
  }
@@ -8591,9 +8610,6 @@ function OutputDisplay($$renderer, $$props) {
8591
8610
  }
8592
8611
  let downloading = false;
8593
8612
  let downloadError = null;
8594
- function isFileData(data) {
8595
- return data && typeof data === "object" && "fileName" in data && "data" in data;
8596
- }
8597
8613
  const filesArray = derived(() => !value ? [] : Array.isArray(value) ? value.filter(isFileData) : isFileData(value) ? [value] : []);
8598
8614
  const fileCount = derived(() => filesArray().length);
8599
8615
  const totalSize = derived(() => filesArray().reduce((sum, f) => sum + getBase64FileSize(f.data), 0));
@@ -8849,61 +8865,67 @@ function OutputDisplay($$renderer, $$props) {
8849
8865
  }
8850
8866
  $$renderer3.push(`<!--]-->`);
8851
8867
  }
8852
- $$renderer2.push(`<div class="gap-2 flex flex-col">`);
8853
- fieldHeader($$renderer2);
8854
- $$renderer2.push(`<!----> `);
8855
- if (item.widgetType === "chart") {
8868
+ if (item.widgetType !== "dynamicValueList") {
8856
8869
  $$renderer2.push("<!--[0-->");
8857
- ChartOutput($$renderer2, {
8858
- value: typeof value === "string" ? value : value != null ? JSON.stringify(value) : ""
8859
- });
8860
- } else if (item.widgetType === "image") {
8861
- $$renderer2.push("<!--[1-->");
8862
- ImageOutput($$renderer2, { item, value });
8863
- } else if (item.widgetType === "file") {
8864
- $$renderer2.push("<!--[2-->");
8865
- fileDisplay($$renderer2);
8866
- } else if (item.widgetType === "number") {
8867
- $$renderer2.push("<!--[3-->");
8868
- $$renderer2.push(`<div${attr_class(`${stringify(boxClass)} flex items-center bg-muted/50 wrap-break-word`)}>`);
8869
- if (hasValue()) {
8870
- $$renderer2.push("<!--[0-->");
8871
- $$renderer2.push(`<span class="font-bold text-primary">${escape_html(formattedValue())}</span>`);
8872
- } else {
8873
- $$renderer2.push("<!--[-1-->");
8874
- placeholder($$renderer2);
8875
- }
8876
- $$renderer2.push(`<!--]--></div>`);
8877
- } else if (item.widgetType === "text") {
8878
- $$renderer2.push("<!--[4-->");
8879
- $$renderer2.push(`<div class="group relative">`);
8880
- if (isObjectValue()) {
8870
+ $$renderer2.push(`<div class="gap-2 flex flex-col">`);
8871
+ fieldHeader($$renderer2);
8872
+ $$renderer2.push(`<!----> `);
8873
+ if (item.widgetType === "chart") {
8881
8874
  $$renderer2.push("<!--[0-->");
8882
- $$renderer2.push(`<pre${attr_class(`${stringify(boxClass)} overflow-wrap-anywhere max-h-96 overflow-auto bg-muted/10 text-foreground`)}>${escape_html(formattedValue())}</pre>`);
8883
- } else {
8884
- $$renderer2.push("<!--[-1-->");
8885
- $$renderer2.push(`<div${attr_class(`${stringify(boxClass)} overflow-wrap-anywhere bg-muted/10 wrap-break-word whitespace-pre-wrap text-foreground`)}>`);
8875
+ ChartOutput($$renderer2, {
8876
+ value: typeof value === "string" ? value : value != null ? JSON.stringify(value) : ""
8877
+ });
8878
+ } else if (item.widgetType === "image") {
8879
+ $$renderer2.push("<!--[1-->");
8880
+ ImageOutput($$renderer2, { item, value });
8881
+ } else if (item.widgetType === "file") {
8882
+ $$renderer2.push("<!--[2-->");
8883
+ fileDisplay($$renderer2);
8884
+ } else if (item.widgetType === "number") {
8885
+ $$renderer2.push("<!--[3-->");
8886
+ $$renderer2.push(`<div${attr_class(`${stringify(boxClass)} flex items-center bg-muted/50 wrap-break-word`)}>`);
8886
8887
  if (hasValue()) {
8887
8888
  $$renderer2.push("<!--[0-->");
8888
- $$renderer2.push(`${escape_html(value)}`);
8889
+ $$renderer2.push(`<span class="font-bold text-primary">${escape_html(formattedValue())}</span>`);
8889
8890
  } else {
8890
8891
  $$renderer2.push("<!--[-1-->");
8891
8892
  placeholder($$renderer2);
8892
8893
  }
8893
8894
  $$renderer2.push(`<!--]--></div>`);
8894
- }
8895
- $$renderer2.push(`<!--]--> `);
8896
- if (hasValue()) {
8897
- $$renderer2.push("<!--[0-->");
8898
- Button($$renderer2, {
8899
- onclick: copyToClipboard,
8900
- class: `right-2 top-2 absolute transition-opacity ${stringify(copied ? "opacity-100" : "opacity-0 group-hover:opacity-100")}`,
8901
- size: "sm",
8902
- children: ($$renderer3) => {
8903
- $$renderer3.push(`<!---->${escape_html(copied ? "Copied!" : "Copy")}`);
8904
- },
8905
- $$slots: { default: true }
8906
- });
8895
+ } else if (item.widgetType === "text") {
8896
+ $$renderer2.push("<!--[4-->");
8897
+ $$renderer2.push(`<div class="group relative">`);
8898
+ if (isObjectValue()) {
8899
+ $$renderer2.push("<!--[0-->");
8900
+ $$renderer2.push(`<pre${attr_class(`${stringify(boxClass)} overflow-wrap-anywhere max-h-96 overflow-auto bg-muted/10 text-foreground`)}>${escape_html(formattedValue())}</pre>`);
8901
+ } else {
8902
+ $$renderer2.push("<!--[-1-->");
8903
+ $$renderer2.push(`<div${attr_class(`${stringify(boxClass)} overflow-wrap-anywhere bg-muted/10 wrap-break-word whitespace-pre-wrap text-foreground`)}>`);
8904
+ if (hasValue()) {
8905
+ $$renderer2.push("<!--[0-->");
8906
+ $$renderer2.push(`${escape_html(value)}`);
8907
+ } else {
8908
+ $$renderer2.push("<!--[-1-->");
8909
+ placeholder($$renderer2);
8910
+ }
8911
+ $$renderer2.push(`<!--]--></div>`);
8912
+ }
8913
+ $$renderer2.push(`<!--]--> `);
8914
+ if (hasValue()) {
8915
+ $$renderer2.push("<!--[0-->");
8916
+ Button($$renderer2, {
8917
+ onclick: copyToClipboard,
8918
+ class: `right-2 top-2 absolute transition-opacity ${stringify(copied ? "opacity-100" : "opacity-0 group-hover:opacity-100")}`,
8919
+ size: "sm",
8920
+ children: ($$renderer3) => {
8921
+ $$renderer3.push(`<!---->${escape_html(copied ? "Copied!" : "Copy")}`);
8922
+ },
8923
+ $$slots: { default: true }
8924
+ });
8925
+ } else {
8926
+ $$renderer2.push("<!--[-1-->");
8927
+ }
8928
+ $$renderer2.push(`<!--]--></div>`);
8907
8929
  } else {
8908
8930
  $$renderer2.push("<!--[-1-->");
8909
8931
  }
@@ -8911,7 +8933,7 @@ function OutputDisplay($$renderer, $$props) {
8911
8933
  } else {
8912
8934
  $$renderer2.push("<!--[-1-->");
8913
8935
  }
8914
- $$renderer2.push(`<!--]--></div>`);
8936
+ $$renderer2.push(`<!--]-->`);
8915
8937
  });
8916
8938
  }
8917
8939
  function TabContent($$renderer, $$props) {
@@ -8923,7 +8945,8 @@ function TabContent($$renderer, $$props) {
8923
8945
  onToggleGroup,
8924
8946
  onValueChange,
8925
8947
  inputs,
8926
- outputs
8948
+ outputs,
8949
+ dynamicOptions = {}
8927
8950
  } = $$props;
8928
8951
  function getInputById(paramId) {
8929
8952
  return inputs.find((i) => i.id === paramId);
@@ -8940,7 +8963,8 @@ function TabContent($$renderer, $$props) {
8940
8963
  value: values[input.id],
8941
8964
  displayName: layoutItem.displayName,
8942
8965
  onChange: onValueChange,
8943
- disabled: visibility.disabled
8966
+ disabled: visibility.disabled,
8967
+ dynamicOptions: dynamicOptions[input.id]
8944
8968
  });
8945
8969
  } else {
8946
8970
  $$renderer3.push("<!--[-1-->");
@@ -8971,7 +8995,7 @@ function TabContent($$renderer, $$props) {
8971
8995
  class: "h-full",
8972
8996
  orientation: "vertical",
8973
8997
  children: ($$renderer4) => {
8974
- $$renderer4.push(`<div class="p-4 tab-content-container svelte-m8oqhb">`);
8998
+ $$renderer4.push(`<div class="p-4 tab-content-container svelte-jdukda">`);
8975
8999
  if (tab.groups.length === 0) {
8976
9000
  $$renderer4.push("<!--[0-->");
8977
9001
  StateDisplay($$renderer4, {
@@ -9020,14 +9044,63 @@ function TabContent($$renderer, $$props) {
9020
9044
  }
9021
9045
  });
9022
9046
  }
9047
+ function isDynamicValueListPayload(value) {
9048
+ return typeof value === "object" && value !== null && ("targetInputId" in value || "options" in value);
9049
+ }
9050
+ function coercePayload(value) {
9051
+ if (isDynamicValueListPayload(value))
9052
+ return value;
9053
+ let candidate = value;
9054
+ for (let i = 0; i < 2 && typeof candidate === "string"; i++) {
9055
+ try {
9056
+ candidate = JSON.parse(candidate);
9057
+ } catch {
9058
+ return null;
9059
+ }
9060
+ if (isDynamicValueListPayload(candidate))
9061
+ return candidate;
9062
+ }
9063
+ return null;
9064
+ }
9065
+ function collectDynamicValueListSources(schema) {
9066
+ const byId = /* @__PURE__ */ new Map();
9067
+ for (const item of getLayoutItems(schema)) {
9068
+ if (item.type !== "output" || item.widgetType !== "dynamicValueList")
9069
+ continue;
9070
+ const dvl = item;
9071
+ if (typeof dvl.paramId !== "string")
9072
+ continue;
9073
+ byId.set(dvl.paramId, { id: dvl.paramId, targetInputId: dvl.config?.targetInputId });
9074
+ }
9075
+ for (const output of schema.outputs ?? []) {
9076
+ if (output.type !== "dynamicValueList")
9077
+ continue;
9078
+ byId.set(output.id, { id: output.id, targetInputId: output.targetInputId });
9079
+ }
9080
+ return [...byId.values()];
9081
+ }
9082
+ function buildDynamicValueListOptions(schema, values) {
9083
+ const result = {};
9084
+ for (const source of collectDynamicValueListSources(schema)) {
9085
+ const payload = coercePayload(values[source.id]);
9086
+ if (!payload)
9087
+ continue;
9088
+ const targetInputId = payload.targetInputId ?? source.targetInputId;
9089
+ if (!targetInputId)
9090
+ continue;
9091
+ if (payload.options && typeof payload.options === "object") {
9092
+ result[targetInputId] = payload.options;
9093
+ }
9094
+ }
9095
+ return result;
9096
+ }
9023
9097
  function TabLayout($$renderer, $$props) {
9024
9098
  $$renderer.component(($$renderer2) => {
9025
9099
  let {
9026
9100
  schema,
9027
- values = void 0,
9101
+ values,
9028
9102
  onValueChange,
9029
- panelFilter,
9030
- requestedTabId = null
9103
+ panelFilter
9031
9104
  } = $$props;
9032
9105
  let activeTabId = "";
9033
9106
  let collapsedGroups = {};
@@ -9036,6 +9109,7 @@ function TabLayout($$renderer, $$props) {
9036
9109
  return panelFilter === "right" ? tab.position === "right" : tab.position !== "right";
9037
9110
  }) : []);
9038
9111
  const showTabBar = derived(() => visibleTabs().length > 1);
9112
+ const dynamicOptions = derived(() => buildDynamicValueListOptions(schema, values));
9039
9113
  function toggleGroup(groupId) {
9040
9114
  collapsedGroups[groupId] = !collapsedGroups[groupId];
9041
9115
  }
@@ -9070,7 +9144,8 @@ function TabLayout($$renderer, $$props) {
9070
9144
  onToggleGroup: toggleGroup,
9071
9145
  onValueChange,
9072
9146
  inputs: schema.inputs,
9073
- outputs: schema.outputs
9147
+ outputs: schema.outputs,
9148
+ dynamicOptions: dynamicOptions()
9074
9149
  });
9075
9150
  }
9076
9151
  $$renderer4.push(`<!--]-->`);
@@ -9090,7 +9165,6 @@ function TabLayout($$renderer, $$props) {
9090
9165
  $$renderer2.push("<!--[!-->");
9091
9166
  $$renderer2.push("<!--]-->");
9092
9167
  }
9093
- bind_props($$props, { values });
9094
9168
  });
9095
9169
  }
9096
9170
  function CollapsedPanelStrip($$renderer, $$props) {
@@ -9102,7 +9176,7 @@ function CollapsedPanelStrip($$renderer, $$props) {
9102
9176
  "backdrop-blur-sm bg-background/90 cursor-pointer"
9103
9177
  ].join(" "));
9104
9178
  const tabButtonClass = "w-8 h-8 rounded cursor-pointer flex shrink-0 items-center justify-center text-muted-foreground transition-colors hover:bg-accent hover:text-foreground";
9105
- $$renderer2.push(`<div${attr_class(clsx$1(railClass()), "svelte-lgldvj")}${attr_style(`--collapsed-w: ${stringify(collapsedWidth)}px;`)} role="button" tabindex="0"${attr("aria-label", `Expand ${stringify(side)} panel`)}><!--[-->`);
9179
+ $$renderer2.push(`<div${attr_class(clsx$1(railClass()), "svelte-17r9ylq")}${attr_style(`--collapsed-w: ${stringify(collapsedWidth)}px;`)} role="button" tabindex="0"${attr("aria-label", `Expand ${stringify(side)} panel`)}><!--[-->`);
9106
9180
  const each_array = ensure_array_like(tabs);
9107
9181
  for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
9108
9182
  let tab = each_array[$$index];
@@ -9126,15 +9200,6 @@ function CollapsedPanelStrip($$renderer, $$props) {
9126
9200
  $$renderer2.push(`<!--]--></div>`);
9127
9201
  });
9128
9202
  }
9129
- function getGroups(schema) {
9130
- if (!schema.layout)
9131
- return [];
9132
- if (schema.layout.type === "tabbed")
9133
- return schema.layout.tabs.flatMap((t) => t.groups ?? []);
9134
- if (schema.layout.type === "flat")
9135
- return schema.layout.groups ?? [];
9136
- return [];
9137
- }
9138
9203
  function createSavedState(schema, currentValues, metadata) {
9139
9204
  const parameters = [];
9140
9205
  for (const group of getGroups(schema)) {
@@ -9169,32 +9234,15 @@ function createSavedState(schema, currentValues, metadata) {
9169
9234
  parameters
9170
9235
  };
9171
9236
  }
9172
- function extractLoadableValues(savedState, currentSchema, validation) {
9173
- const errorParamIds = new Set(validation.issues.filter((i) => i.severity === "error" && !i.paramId.startsWith("__")).map((i) => i.paramId));
9174
- const values = {};
9175
- for (const paramState of savedState.parameters) {
9176
- const exists = currentSchema.inputs.some((i) => i.id === paramState.paramId);
9177
- if (!errorParamIds.has(paramState.paramId) && exists) {
9178
- values[paramState.paramId] = paramState.value;
9179
- }
9180
- }
9181
- return values;
9182
- }
9183
9237
  function exportStateAsJson(savedState) {
9184
9238
  const blob = new Blob([JSON.stringify(savedState, null, 2)], { type: "application/json" });
9185
- const url = URL.createObjectURL(blob);
9239
+ const safeName = savedState.name.replace(/[^a-z0-9]/gi, "_");
9240
+ const date = savedState.timestamp.split("T")[0].replace(/-/g, "_");
9186
9241
  const link = document.createElement("a");
9187
- link.href = url;
9188
- link.download = `${savedState.name.replace(/[^a-z0-9]/gi, "_")}_${savedState.timestamp.split("T")[0].replace(/-/g, "_")}.sps`;
9189
- link.style.display = "none";
9190
- document.body.appendChild(link);
9191
- setTimeout(() => {
9192
- link.click();
9193
- setTimeout(() => {
9194
- document.body.removeChild(link);
9195
- URL.revokeObjectURL(url);
9196
- }, APP_DEFAULTS.TIMEOUTS.PARAM_EXPORT_DELAY);
9197
- }, 0);
9242
+ link.href = URL.createObjectURL(blob);
9243
+ link.download = `${safeName}_${date}.sps`;
9244
+ link.click();
9245
+ URL.revokeObjectURL(link.href);
9198
9246
  }
9199
9247
  const DEFAULT_PRESET_LABELS = {
9200
9248
  saveButton: "Save State",
@@ -9250,8 +9298,7 @@ function ParameterPresetManager($$renderer, $$props) {
9250
9298
  let exportTags = "";
9251
9299
  let showValidationDialog = false;
9252
9300
  let showLoadDialog = false;
9253
- let importedState = null;
9254
- let validationResult = null;
9301
+ let loadResult = null;
9255
9302
  let listedStates = [];
9256
9303
  let isLoadingList = false;
9257
9304
  let listError = "";
@@ -9278,19 +9325,14 @@ function ParameterPresetManager($$renderer, $$props) {
9278
9325
  showExportDialog = false;
9279
9326
  }
9280
9327
  function confirmLoad() {
9281
- if (!importedState || !validationResult) return;
9282
- if (validationResult.canLoad) {
9283
- const values = extractLoadableValues(importedState, schema, validationResult);
9284
- onLoadValues(values);
9285
- showValidationDialog = false;
9286
- importedState = null;
9287
- validationResult = null;
9288
- }
9328
+ if (!loadResult || !loadResult.canLoad) return;
9329
+ onLoadValues(loadResult.values);
9330
+ showValidationDialog = false;
9331
+ loadResult = null;
9289
9332
  }
9290
9333
  function cancelImport() {
9291
9334
  showValidationDialog = false;
9292
- importedState = null;
9293
- validationResult = null;
9335
+ loadResult = null;
9294
9336
  }
9295
9337
  async function openLoadDialog() {
9296
9338
  showLoadDialog = true;
@@ -9730,10 +9772,7 @@ function ParameterPresetManager($$renderer, $$props) {
9730
9772
  $$renderer6.push("<!--[-->");
9731
9773
  Dialog_description($$renderer6, {
9732
9774
  children: ($$renderer7) => {
9733
- if (importedState) {
9734
- $$renderer7.push("<!--[0-->");
9735
- $$renderer7.push(`${escape_html(t().validationValidatingPrefix)}${escape_html(importedState.name)}`);
9736
- } else {
9775
+ {
9737
9776
  $$renderer7.push("<!--[-1-->");
9738
9777
  }
9739
9778
  $$renderer7.push(`<!--]-->`);
@@ -9754,10 +9793,10 @@ function ParameterPresetManager($$renderer, $$props) {
9754
9793
  $$renderer5.push("<!--]-->");
9755
9794
  }
9756
9795
  $$renderer5.push(` `);
9757
- if (validationResult) {
9796
+ if (loadResult) {
9758
9797
  $$renderer5.push("<!--[0-->");
9759
9798
  $$renderer5.push(`<div class="gap-4 py-4 grid">`);
9760
- if (validationResult.isValid) {
9799
+ if (loadResult.isValid) {
9761
9800
  $$renderer5.push("<!--[0-->");
9762
9801
  if (Card) {
9763
9802
  $$renderer5.push("<!--[-->");
@@ -9775,7 +9814,7 @@ function ParameterPresetManager($$renderer, $$props) {
9775
9814
  $$renderer5.push("<!--[!-->");
9776
9815
  $$renderer5.push("<!--]-->");
9777
9816
  }
9778
- } else if (validationResult.canLoad) {
9817
+ } else if (loadResult.canLoad) {
9779
9818
  $$renderer5.push("<!--[1-->");
9780
9819
  if (Card) {
9781
9820
  $$renderer5.push("<!--[-->");
@@ -9784,7 +9823,7 @@ function ParameterPresetManager($$renderer, $$props) {
9784
9823
  children: ($$renderer6) => {
9785
9824
  $$renderer6.push(`<div class="gap-3 flex items-start">`);
9786
9825
  Triangle_alert($$renderer6, { class: "h-5 w-5 text-warning" });
9787
- $$renderer6.push(`<!----> <div><h4 class="text-sm font-semibold text-warning-foreground">${escape_html(t().validationWarningsTitle)}</h4> <p class="text-sm mt-1 text-warning-foreground/80">${escape_html(t().validationWarningsBody.replace("{count}", String(validationResult.issues.length)))}</p></div></div>`);
9826
+ $$renderer6.push(`<!----> <div><h4 class="text-sm font-semibold text-warning-foreground">${escape_html(t().validationWarningsTitle)}</h4> <p class="text-sm mt-1 text-warning-foreground/80">${escape_html(t().validationWarningsBody.replace("{count}", String(loadResult.issues.length)))}</p></div></div>`);
9788
9827
  },
9789
9828
  $$slots: { default: true }
9790
9829
  });
@@ -9813,10 +9852,10 @@ function ParameterPresetManager($$renderer, $$props) {
9813
9852
  }
9814
9853
  }
9815
9854
  $$renderer5.push(`<!--]--> `);
9816
- if (!validationResult.isValid) {
9855
+ if (!loadResult.isValid) {
9817
9856
  $$renderer5.push("<!--[0-->");
9818
9857
  $$renderer5.push(`<div class="space-y-2"><h4 class="text-sm font-medium">${escape_html(t().validationIssuesHeading)}</h4> <!--[-->`);
9819
- const each_array_2 = ensure_array_like(validationResult.issues);
9858
+ const each_array_2 = ensure_array_like(loadResult.issues);
9820
9859
  for (let $$index_2 = 0, $$length = each_array_2.length; $$index_2 < $$length; $$index_2++) {
9821
9860
  let issue = each_array_2[$$index_2];
9822
9861
  $$renderer5.push(`<div${attr_class(`p-3 rounded-lg border ${stringify(issue.severity === "error" ? "border-destructive/30 bg-destructive/5" : "border-warning/30 bg-warning/5")}`)}><div class="gap-2 flex items-start">`);
@@ -9856,7 +9895,7 @@ function ParameterPresetManager($$renderer, $$props) {
9856
9895
  $$slots: { default: true }
9857
9896
  });
9858
9897
  $$renderer6.push(`<!----> `);
9859
- if (validationResult?.canLoad) {
9898
+ if (loadResult?.canLoad) {
9860
9899
  $$renderer6.push("<!--[0-->");
9861
9900
  Button($$renderer6, {
9862
9901
  onclick: confirmLoad,
@@ -9915,7 +9954,7 @@ function AppLayout($$renderer, $$props) {
9915
9954
  isViewerFullscreen = false,
9916
9955
  oncalculate = () => {
9917
9956
  },
9918
- values = {},
9957
+ values,
9919
9958
  onValueChange,
9920
9959
  onLoadValues,
9921
9960
  panelActions = [],
@@ -9943,32 +9982,20 @@ function AppLayout($$renderer, $$props) {
9943
9982
  const layoutKey = derived(() => `${hasLeftPanel() ? "L" : ""}${hasViewer() ? "V" : ""}${hasRightPanel() ? "R" : ""}`);
9944
9983
  async function handleLoadValues(loadedValues) {
9945
9984
  Object.assign(values, loadedValues);
9946
- await onLoadValues?.();
9985
+ await onLoadValues?.(loadedValues);
9947
9986
  }
9948
9987
  function panelContent($$renderer3, panelFilter, requestedTabId, showParameterStateManager = true, showCalculateButton = true) {
9949
- $$renderer3.push(`<div class="panel-content-wrapper svelte-1x5dn9j">`);
9988
+ $$renderer3.push(`<div class="panel-content-wrapper svelte-1txzu1i">`);
9950
9989
  if (schema.layout.type === "tabbed") {
9951
9990
  $$renderer3.push("<!--[0-->");
9952
- TabLayout($$renderer3, {
9953
- schema,
9954
- onValueChange,
9955
- panelFilter,
9956
- requestedTabId,
9957
- get values() {
9958
- return values;
9959
- },
9960
- set values($$value) {
9961
- values = $$value;
9962
- $$settled = false;
9963
- }
9964
- });
9991
+ TabLayout($$renderer3, { schema, values, onValueChange, panelFilter });
9965
9992
  } else {
9966
9993
  $$renderer3.push("<!--[-1-->");
9967
9994
  }
9968
9995
  $$renderer3.push(`<!--]--> `);
9969
9996
  if (showParameterStateManager || showCalculateButton && schema.instanceSolve === false) {
9970
9997
  $$renderer3.push("<!--[0-->");
9971
- $$renderer3.push(`<div class="panel-footer px-3 svelte-1x5dn9j"><div class="gap-2 flex flex-wrap items-center justify-center">`);
9998
+ $$renderer3.push(`<div class="panel-footer px-3 svelte-1txzu1i"><div class="gap-2 flex flex-wrap items-center justify-center">`);
9972
9999
  if (showParameterStateManager) {
9973
10000
  $$renderer3.push("<!--[0-->");
9974
10001
  ParameterPresetManager($$renderer3, {
@@ -10028,7 +10055,7 @@ function AppLayout($$renderer, $$props) {
10028
10055
  let $$settled = true;
10029
10056
  let $$inner_renderer;
10030
10057
  function $$render_inner($$renderer3) {
10031
- $$renderer3.push(`<div data-layout-root=""${attr_class(`min-h-0 sm:flex-row sm:py-(--page-py) flex flex-1 flex-col overflow-hidden ${stringify(leftCollapsed ? "sm:pl-0" : "sm:pl-(--page-px)")} ${stringify(rightCollapsed ? "sm:pr-0" : "sm:pr-(--page-px)")}`, "svelte-1x5dn9j", {
10058
+ $$renderer3.push(`<div data-layout-root=""${attr_class(`min-h-0 sm:flex-row sm:py-(--page-py) flex flex-1 flex-col overflow-hidden ${stringify(leftCollapsed ? "sm:pl-0" : "sm:pl-(--page-px)")} ${stringify(rightCollapsed ? "sm:pr-0" : "sm:pr-(--page-px)")}`, "svelte-1txzu1i", {
10032
10059
  "fullscreen-layout": isViewerFullscreen,
10033
10060
  "relative": isMobile
10034
10061
  })}>`);
@@ -10078,7 +10105,7 @@ function AppLayout($$renderer, $$props) {
10078
10105
  class: "ml-1",
10079
10106
  children: ($$renderer5) => {
10080
10107
  $$renderer5.push(`<div${attr_class(`min-h-0 flex h-full flex-col ${stringify(isViewerFullscreen || leftCollapsed ? "hidden" : "")}`)}>`);
10081
- panelContent($$renderer5, hasRightPanel() ? "left" : void 0, requestedLeftTabId);
10108
+ panelContent($$renderer5, hasRightPanel() ? "left" : void 0);
10082
10109
  $$renderer5.push(`<!----></div>`);
10083
10110
  },
10084
10111
  $$slots: { default: true }
@@ -10220,22 +10247,42 @@ function AppLayout($$renderer, $$props) {
10220
10247
  $$render_inner($$inner_renderer);
10221
10248
  } while (!$$settled);
10222
10249
  $$renderer2.subsume($$inner_renderer);
10223
- bind_props($$props, { isViewerFullscreen, values });
10250
+ bind_props($$props, { isViewerFullscreen });
10224
10251
  });
10225
10252
  }
10226
- function getDefaultValue(paramType) {
10227
- switch (paramType) {
10228
- case "number":
10229
- case "integer":
10230
- return 0;
10231
- case "boolean":
10232
- return false;
10233
- case "text":
10234
- return "";
10235
- default:
10236
- return null;
10253
+ function createSolvingIndicator(isSolving) {
10254
+ let show = false;
10255
+ return {
10256
+ get show() {
10257
+ return show;
10258
+ }
10259
+ };
10260
+ }
10261
+ const STORAGE_PREFIX = "external";
10262
+ function makeKey(scopeKey, inputId) {
10263
+ return `${STORAGE_PREFIX}:${scopeKey}:${inputId}`;
10264
+ }
10265
+ function readExternalValue(ref) {
10266
+ const { scopeKey, inputId } = ref;
10267
+ if (!scopeKey || !inputId)
10268
+ return void 0;
10269
+ if (typeof sessionStorage === "undefined")
10270
+ return void 0;
10271
+ const raw = sessionStorage.getItem(makeKey(scopeKey, inputId));
10272
+ if (raw === null)
10273
+ return void 0;
10274
+ try {
10275
+ return JSON.parse(raw);
10276
+ } catch {
10277
+ return void 0;
10237
10278
  }
10238
10279
  }
10280
+ function getExternalInputs(schema) {
10281
+ return getInputItems(schema).filter((item) => item.source?.kind === "client").map((item) => ({
10282
+ paramId: item.paramId,
10283
+ displayName: item.displayName ?? item.paramId
10284
+ }));
10285
+ }
10239
10286
  const DEFAULT_TIMEOUT_MS = 6e4;
10240
10287
  function createComputeThrottle(computeFn, options = {}) {
10241
10288
  const { timeout = DEFAULT_TIMEOUT_MS } = options;
@@ -10255,8 +10302,8 @@ function createComputeThrottle(computeFn, options = {}) {
10255
10302
  try {
10256
10303
  await computeFn(values, signal);
10257
10304
  } catch (err) {
10258
- if (!(err instanceof Error && err.name === "AbortError")) {
10259
- throw err;
10305
+ if (!(err instanceof Error) || err.name !== "AbortError" && err.name !== "TimeoutError") {
10306
+ console.error("[computeThrottle] unhandled error in computeFn:", err);
10260
10307
  }
10261
10308
  } finally {
10262
10309
  clearTimeout(timeoutId);
@@ -10291,19 +10338,170 @@ function createComputeThrottle(computeFn, options = {}) {
10291
10338
  cancel
10292
10339
  };
10293
10340
  }
10294
- function createSolvingIndicator(isSolving) {
10295
- let show = false;
10341
+ function getDefaultValue(paramType) {
10342
+ switch (paramType) {
10343
+ case "number":
10344
+ case "integer":
10345
+ return 0;
10346
+ case "boolean":
10347
+ return false;
10348
+ case "text":
10349
+ return "";
10350
+ default:
10351
+ return null;
10352
+ }
10353
+ }
10354
+ function buildInitialValues(schema, scopeKey, read) {
10355
+ const clientSet = new Set(getExternalInputs(schema).map((e) => e.paramId));
10356
+ const values = {};
10357
+ for (const input of schema.inputs) {
10358
+ if (clientSet.has(input.id)) {
10359
+ const stored = read({ scopeKey, inputId: input.id });
10360
+ if (stored !== void 0)
10361
+ values[input.id] = stored;
10362
+ continue;
10363
+ }
10364
+ values[input.id] = input.default ?? getDefaultValue(input.paramType);
10365
+ }
10366
+ for (const output of schema.outputs) {
10367
+ values[output.id] = null;
10368
+ }
10369
+ return values;
10370
+ }
10371
+ function makeInitialFlags(instanceSolve) {
10372
+ const manual = instanceSolve === false;
10373
+ return { hasPendingChanges: manual, hasNeverSolved: manual };
10374
+ }
10375
+ function applyValueChange(state, id, value, instanceSolve) {
10376
+ state.values[id] = value;
10377
+ if (instanceSolve === false) {
10378
+ state.pendingValues[id] = value;
10379
+ state.hasPendingChanges = true;
10380
+ return { state, shouldSolve: false };
10381
+ }
10382
+ return { state, shouldSolve: true };
10383
+ }
10384
+ function applySolveResult(state, result) {
10385
+ state.error = "";
10386
+ state.computeErrors = result.errors ?? [];
10387
+ state.computeWarnings = result.warnings ?? [];
10388
+ state.meshes = result.meshes ?? [];
10389
+ Object.assign(state.values, result.outputs);
10390
+ state.pendingValues = {};
10391
+ state.hasPendingChanges = false;
10392
+ state.hasNeverSolved = false;
10393
+ return state;
10394
+ }
10395
+ function createSolveSession(args) {
10396
+ let currentSchema = args.schema;
10397
+ const flags = makeInitialFlags(currentSchema?.instanceSolve);
10398
+ const state = {
10399
+ values: buildInitialValues(currentSchema, args.scopeKey, readExternalValue),
10400
+ error: "",
10401
+ computeErrors: [],
10402
+ computeWarnings: [],
10403
+ meshes: [],
10404
+ pendingValues: {},
10405
+ hasPendingChanges: flags.hasPendingChanges,
10406
+ hasNeverSolved: flags.hasNeverSolved
10407
+ };
10408
+ function dispatch() {
10409
+ args.driver.solve(snapshot(state.values));
10410
+ }
10296
10411
  return {
10297
- get show() {
10298
- return show;
10412
+ get values() {
10413
+ return state.values;
10414
+ },
10415
+ get error() {
10416
+ return state.error;
10417
+ },
10418
+ get computeErrors() {
10419
+ return state.computeErrors;
10420
+ },
10421
+ get computeWarnings() {
10422
+ return state.computeWarnings;
10423
+ },
10424
+ get meshes() {
10425
+ return state.meshes;
10426
+ },
10427
+ get hasPendingChanges() {
10428
+ return state.hasPendingChanges;
10429
+ },
10430
+ get hasNeverSolved() {
10431
+ return state.hasNeverSolved;
10432
+ },
10433
+ get isSolving() {
10434
+ return args.driver.isSolving;
10435
+ },
10436
+ setValue(id, value) {
10437
+ const { shouldSolve } = applyValueChange(state, id, value, currentSchema?.instanceSolve);
10438
+ if (shouldSolve) dispatch();
10439
+ },
10440
+ solve() {
10441
+ dispatch();
10442
+ },
10443
+ loadValues(incoming) {
10444
+ Object.assign(state.values, incoming);
10445
+ if (currentSchema?.instanceSolve !== false) {
10446
+ dispatch();
10447
+ } else {
10448
+ state.hasPendingChanges = true;
10449
+ }
10450
+ },
10451
+ rebuild(schema, scopeKey) {
10452
+ currentSchema = schema;
10453
+ state.meshes = [];
10454
+ state.error = "";
10455
+ state.computeErrors = [];
10456
+ state.computeWarnings = [];
10457
+ state.pendingValues = {};
10458
+ state.values = buildInitialValues(schema, scopeKey, readExternalValue);
10459
+ const f = makeInitialFlags(schema?.instanceSolve);
10460
+ state.hasPendingChanges = f.hasPendingChanges;
10461
+ state.hasNeverSolved = f.hasNeverSolved;
10462
+ if (schema && Object.keys(state.values).length > 0 && schema.instanceSolve !== false) {
10463
+ dispatch();
10464
+ }
10465
+ },
10466
+ report(result) {
10467
+ applySolveResult(state, result);
10468
+ },
10469
+ reportError(message) {
10470
+ state.error = message;
10471
+ }
10472
+ };
10473
+ }
10474
+ function createRequestResponseDriver(onSolve, getReporter, options = {}) {
10475
+ const throttle = createComputeThrottle(
10476
+ async (values, signal) => {
10477
+ try {
10478
+ const result = await onSolve(values, signal);
10479
+ if (signal.aborted) return;
10480
+ getReporter().report(result);
10481
+ } catch (err) {
10482
+ if (signal.aborted) return;
10483
+ getReporter().reportError(err instanceof Error ? err.message : String(err));
10484
+ }
10485
+ },
10486
+ options
10487
+ );
10488
+ return {
10489
+ solve(values) {
10490
+ throttle.trigger(values);
10491
+ },
10492
+ cancel() {
10493
+ throttle.cancel();
10494
+ },
10495
+ get isSolving() {
10496
+ return throttle.isComputing;
10299
10497
  }
10300
10498
  };
10301
10499
  }
10302
- function useFooterItem(id, component, getProps, position = "left", priority = 0, onClick) {
10500
+ function useFooterItem(config) {
10303
10501
  onDestroy(() => {
10304
10502
  try {
10305
10503
  const store = getContext(FOOTER_CONTEXT_KEY);
10306
- store?.unregister(id);
10504
+ store?.unregister(config.id);
10307
10505
  } catch {
10308
10506
  }
10309
10507
  });
@@ -10337,48 +10535,6 @@ const hexToOklch = (hex) => {
10337
10535
  H += 360;
10338
10536
  return `oklch(${L.toFixed(3)} ${C.toFixed(3)} ${H.toFixed(1)})`;
10339
10537
  };
10340
- const STORAGE_PREFIX = "external";
10341
- function makeKey(scopeKey, inputId) {
10342
- return `${STORAGE_PREFIX}:${scopeKey}:${inputId}`;
10343
- }
10344
- function readExternalValue(ref) {
10345
- const { scopeKey, inputId } = ref;
10346
- if (!scopeKey || !inputId)
10347
- return void 0;
10348
- if (typeof sessionStorage === "undefined")
10349
- return void 0;
10350
- const raw = sessionStorage.getItem(makeKey(scopeKey, inputId));
10351
- if (raw === null)
10352
- return void 0;
10353
- try {
10354
- return JSON.parse(raw);
10355
- } catch {
10356
- return void 0;
10357
- }
10358
- }
10359
- function* walkLayoutItems(schema) {
10360
- const groups = schema.layout.type === "tabbed" ? schema.layout.tabs.flatMap((t) => t.groups) : schema.layout.groups;
10361
- for (const group of groups) {
10362
- for (const item of group.items) {
10363
- yield item;
10364
- }
10365
- }
10366
- }
10367
- function getExternalInputs(schema) {
10368
- const result = [];
10369
- for (const item of walkLayoutItems(schema)) {
10370
- if (item.type !== "input")
10371
- continue;
10372
- const source = item.source;
10373
- if (source?.kind !== "client")
10374
- continue;
10375
- result.push({
10376
- paramId: item.paramId,
10377
- displayName: item.displayName ?? item.paramId
10378
- });
10379
- }
10380
- return result;
10381
- }
10382
10538
  function ComputeApp($$renderer, $$props) {
10383
10539
  $$renderer.component(($$renderer2) => {
10384
10540
  let {
@@ -10405,74 +10561,31 @@ function ComputeApp($$renderer, $$props) {
10405
10561
  headerRight,
10406
10562
  header,
10407
10563
  onReady,
10408
- externalScopeKey
10564
+ externalScopeKey,
10565
+ clientSlot
10409
10566
  } = $$props;
10410
- function createInitialValues(s, scopeKey) {
10411
- const externalSet = new Set(getExternalInputs(s).map((e) => e.paramId));
10412
- const v = {};
10413
- for (const input of s.inputs) {
10414
- if (externalSet.has(input.id)) {
10415
- const stored = readExternalValue({ scopeKey, inputId: input.id });
10416
- if (stored !== void 0) v[input.id] = stored;
10417
- continue;
10418
- }
10419
- v[input.id] = input.default ?? getDefaultValue(input.paramType);
10420
- }
10421
- for (const output of s.outputs) {
10422
- v[output.id] = null;
10423
- }
10424
- return v;
10425
- }
10426
- let values = createInitialValues(schema, externalScopeKey || definitionKey || schema?.id || "");
10427
- let error = "";
10428
- let computeErrors = [];
10429
- let computeWarnings = [];
10430
- let meshes = [];
10431
- let pendingValues = {};
10432
- let hasPendingChanges = schema?.instanceSolve === false;
10433
- let hasNeverSolved = schema?.instanceSolve === false;
10567
+ setClientSlot(clientSlot);
10568
+ const driver = createRequestResponseDriver(onSolve, () => session, { timeout: solveTimeoutMs });
10569
+ const session = createSolveSession({
10570
+ schema,
10571
+ scopeKey: externalScopeKey || definitionKey || schema?.id || "",
10572
+ driver
10573
+ });
10434
10574
  let isViewerFullscreen = false;
10435
- async function performSolveInternal(solveValues, signal) {
10436
- try {
10437
- error = "";
10438
- computeErrors = [];
10439
- computeWarnings = [];
10440
- const result = await onSolve(solveValues, signal);
10441
- if (signal.aborted) return;
10442
- computeErrors = result.errors ?? [];
10443
- computeWarnings = result.warnings ?? [];
10444
- meshes = result.meshes ?? [];
10445
- Object.assign(values, result.outputs);
10446
- pendingValues = {};
10447
- hasPendingChanges = false;
10448
- hasNeverSolved = false;
10449
- } catch (err) {
10450
- if (err instanceof Error && err.name === "AbortError") return;
10451
- error = err instanceof Error ? err.message : String(err);
10452
- }
10453
- }
10454
- const computeThrottle = createComputeThrottle(performSolveInternal, { timeout: solveTimeoutMs });
10455
- let solving = derived(() => computeThrottle.isComputing);
10456
10575
  const solvingIndicator = createSolvingIndicator();
10457
- function performSolve() {
10458
- computeThrottle.trigger(snapshot(values));
10459
- }
10460
- async function handleValueChange(id, val) {
10461
- values[id] = val;
10462
- if (schema?.instanceSolve === false) {
10463
- pendingValues[id] = val;
10464
- hasPendingChanges = true;
10465
- return;
10466
- }
10467
- performSolve();
10576
+ function handleValueChange(id, val) {
10577
+ session.setValue(id, val);
10468
10578
  }
10469
10579
  function handleCalculate() {
10470
- performSolve();
10471
- }
10472
- const _footerItemId = run(() => footerItemId);
10473
- const _footerComponent = run(() => footerComponent);
10474
- const _footerItemPriority = run(() => footerItemPriority);
10475
- useFooterItem(_footerItemId, _footerComponent, () => _footerComponent ? footerComponentProps?.() ?? {} : {}, "left", _footerItemPriority);
10580
+ session.solve();
10581
+ }
10582
+ useFooterItem({
10583
+ id: run(() => footerItemId),
10584
+ component: run(() => footerComponent),
10585
+ getProps: () => footerComponentProps?.() ?? {},
10586
+ position: "left",
10587
+ priority: run(() => footerItemPriority)
10588
+ });
10476
10589
  let resolvedIsEmbedded = derived(() => isEmbedded ?? page.url.searchParams.get("embed") === "true");
10477
10590
  let resolvedPrimaryColor = derived(() => primaryColor ?? page.url.searchParams.get("primary"));
10478
10591
  let customStyle = derived(() => resolvedPrimaryColor() ? `--primary: ${hexToOklch(resolvedPrimaryColor())}` : "");
@@ -10491,13 +10604,13 @@ function ComputeApp($$renderer, $$props) {
10491
10604
  footerText,
10492
10605
  header,
10493
10606
  rightContent: headerRight,
10494
- errors: computeErrors,
10495
- warnings: computeWarnings,
10607
+ errors: session.computeErrors,
10608
+ warnings: session.computeWarnings,
10496
10609
  children: ($$renderer4) => {
10497
- if (error) {
10610
+ if (session.error) {
10498
10611
  $$renderer4.push("<!--[0-->");
10499
10612
  $$renderer4.push(`<div class="min-h-100 p-8 flex items-center justify-center">`);
10500
- StateDisplay($$renderer4, { type: "error", size: "medium", message: error });
10613
+ StateDisplay($$renderer4, { type: "error", size: "medium", message: session.error });
10501
10614
  $$renderer4.push(`<!----></div>`);
10502
10615
  } else if (!schema) {
10503
10616
  $$renderer4.push("<!--[1-->");
@@ -10510,11 +10623,12 @@ function ComputeApp($$renderer, $$props) {
10510
10623
  {
10511
10624
  AppLayout($$renderer4, {
10512
10625
  schema,
10513
- meshes,
10514
- isSolving: solving(),
10626
+ meshes: session.meshes,
10627
+ isSolving: session.isSolving,
10515
10628
  showSolvingIndicator: schema.instanceSolve !== false && solvingIndicator.show,
10516
- hasPendingChanges,
10517
- hasNeverSolved,
10629
+ hasPendingChanges: session.hasPendingChanges,
10630
+ hasNeverSolved: session.hasNeverSolved,
10631
+ values: session.values,
10518
10632
  panelActions,
10519
10633
  showSaveButton,
10520
10634
  showLoadButton,
@@ -10523,26 +10637,13 @@ function ComputeApp($$renderer, $$props) {
10523
10637
  presetLabels,
10524
10638
  onValueChange: handleValueChange,
10525
10639
  oncalculate: handleCalculate,
10526
- onLoadValues: () => {
10527
- if (schema?.instanceSolve !== false) {
10528
- performSolve();
10529
- } else {
10530
- hasPendingChanges = true;
10531
- }
10532
- },
10640
+ onLoadValues: () => session.loadValues({}),
10533
10641
  get isViewerFullscreen() {
10534
10642
  return isViewerFullscreen;
10535
10643
  },
10536
10644
  set isViewerFullscreen($$value) {
10537
10645
  isViewerFullscreen = $$value;
10538
10646
  $$settled = false;
10539
- },
10540
- get values() {
10541
- return values;
10542
- },
10543
- set values($$value) {
10544
- values = $$value;
10545
- $$settled = false;
10546
10647
  }
10547
10648
  });
10548
10649
  }
@@ -10651,4 +10752,4 @@ function _page($$renderer, $$props) {
10651
10752
  }
10652
10753
 
10653
10754
  export { _page as default };
10654
- //# sourceMappingURL=_page.svelte-DJnICJdZ.js.map
10755
+ //# sourceMappingURL=_page.svelte-6m8-zq9_.js.map