fundus 0.11.1 → 0.12.1

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 (219) hide show
  1. package/README.md +5 -2
  2. package/build/client/_app/immutable/assets/2.Do83Bm42.css +1 -0
  3. package/build/client/_app/immutable/assets/2.Do83Bm42.css.br +0 -0
  4. package/build/client/_app/immutable/assets/2.Do83Bm42.css.gz +0 -0
  5. package/build/client/_app/immutable/assets/{3.BuCXJbRG.css → 3.C6xo25uI.css} +1 -1
  6. package/build/client/_app/immutable/assets/3.C6xo25uI.css.br +0 -0
  7. package/build/client/_app/immutable/assets/3.C6xo25uI.css.gz +0 -0
  8. package/build/client/_app/immutable/assets/{LibraryContextMenu.B6By2-yb.css → AssetSourceMenu.BmQJNvwU.css} +1 -1
  9. package/build/client/_app/immutable/assets/AssetSourceMenu.BmQJNvwU.css.br +0 -0
  10. package/build/client/_app/immutable/assets/AssetSourceMenu.BmQJNvwU.css.gz +0 -0
  11. package/build/client/_app/immutable/assets/Popover.CCTioPJZ.css +1 -0
  12. package/build/client/_app/immutable/assets/Popover.CCTioPJZ.css.br +0 -0
  13. package/build/client/_app/immutable/assets/Popover.CCTioPJZ.css.gz +0 -0
  14. package/build/client/_app/immutable/chunks/Br-_gll5.js +108 -0
  15. package/build/client/_app/immutable/chunks/Br-_gll5.js.br +0 -0
  16. package/build/client/_app/immutable/chunks/Br-_gll5.js.gz +0 -0
  17. package/build/client/_app/immutable/chunks/D1_lla-1.js +1 -0
  18. package/build/client/_app/immutable/chunks/D1_lla-1.js.br +0 -0
  19. package/build/client/_app/immutable/chunks/D1_lla-1.js.gz +0 -0
  20. package/build/client/_app/immutable/chunks/Q50krHyn.js +2 -0
  21. package/build/client/_app/immutable/chunks/Q50krHyn.js.br +0 -0
  22. package/build/client/_app/immutable/chunks/Q50krHyn.js.gz +0 -0
  23. package/build/client/_app/immutable/chunks/{jjXOSnwf.js → XXb1V1W4.js} +1 -1
  24. package/build/client/_app/immutable/chunks/XXb1V1W4.js.br +2 -0
  25. package/build/client/_app/immutable/chunks/XXb1V1W4.js.gz +0 -0
  26. package/build/client/_app/immutable/chunks/dNO-9VOT.js +1 -0
  27. package/build/client/_app/immutable/chunks/dNO-9VOT.js.br +0 -0
  28. package/build/client/_app/immutable/chunks/dNO-9VOT.js.gz +0 -0
  29. package/build/client/_app/immutable/chunks/hUfV2O0k.js +1 -0
  30. package/build/client/_app/immutable/chunks/hUfV2O0k.js.br +0 -0
  31. package/build/client/_app/immutable/chunks/hUfV2O0k.js.gz +0 -0
  32. package/build/client/_app/immutable/entry/{app.Rv8f5zSo.js → app.CCAhttSp.js} +2 -2
  33. package/build/client/_app/immutable/entry/app.CCAhttSp.js.br +0 -0
  34. package/build/client/_app/immutable/entry/app.CCAhttSp.js.gz +0 -0
  35. package/build/client/_app/immutable/entry/start.DJIzRm6t.js +1 -0
  36. package/build/client/_app/immutable/entry/start.DJIzRm6t.js.br +1 -0
  37. package/build/client/_app/immutable/entry/start.DJIzRm6t.js.gz +0 -0
  38. package/build/client/_app/immutable/nodes/{0.Gv5d6CcW.js → 0.DUlsG4Qh.js} +1 -1
  39. package/build/client/_app/immutable/nodes/0.DUlsG4Qh.js.br +0 -0
  40. package/build/client/_app/immutable/nodes/0.DUlsG4Qh.js.gz +0 -0
  41. package/build/client/_app/immutable/nodes/{1.8J9y5zyF.js → 1.CuulMHsk.js} +1 -1
  42. package/build/client/_app/immutable/nodes/1.CuulMHsk.js.br +3 -0
  43. package/build/client/_app/immutable/nodes/1.CuulMHsk.js.gz +0 -0
  44. package/build/client/_app/immutable/nodes/2.7TnKW5UR.js +3 -0
  45. package/build/client/_app/immutable/nodes/2.7TnKW5UR.js.br +0 -0
  46. package/build/client/_app/immutable/nodes/2.7TnKW5UR.js.gz +0 -0
  47. package/build/client/_app/immutable/nodes/3.Db6_fvQZ.js +1 -0
  48. package/build/client/_app/immutable/nodes/3.Db6_fvQZ.js.br +0 -0
  49. package/build/client/_app/immutable/nodes/3.Db6_fvQZ.js.gz +0 -0
  50. package/build/client/_app/immutable/nodes/4.bgUCYdNb.js +2 -0
  51. package/build/client/_app/immutable/nodes/4.bgUCYdNb.js.br +0 -0
  52. package/build/client/_app/immutable/nodes/4.bgUCYdNb.js.gz +0 -0
  53. package/build/client/_app/version.json +1 -1
  54. package/build/client/_app/version.json.br +0 -0
  55. package/build/client/_app/version.json.gz +0 -0
  56. package/build/handler.js +7 -7
  57. package/build/index.js +7 -7
  58. package/build/server/chunks/chunks/{context.js-BJfk3ZiR.js → context.js-6YdbScn_.js} +166 -5
  59. package/build/server/chunks/chunks/context.js-6YdbScn_.js.map +1 -0
  60. package/build/server/chunks/chunks/{contract.js-DRcxzb4o.js → contract.js-BHQbpsFk.js} +29 -6
  61. package/build/server/chunks/chunks/contract.js-BHQbpsFk.js.map +1 -0
  62. package/build/server/chunks/chunks/{core.js-Cj7hjmtV.js → core.js-CABVXpby.js} +2 -2
  63. package/build/server/chunks/chunks/{core.js-Cj7hjmtV.js.map → core.js-CABVXpby.js.map} +1 -1
  64. package/build/server/chunks/chunks/{exports.js-BcB5q0h5.js → exports.js-BTuzD8-J.js} +2 -2
  65. package/build/server/chunks/chunks/{exports.js-BcB5q0h5.js.map → exports.js-BTuzD8-J.js.map} +1 -1
  66. package/build/server/chunks/chunks/{http.js-DMkgmpI5.js → http.js-dbT0ifQ9.js} +2 -2
  67. package/build/server/chunks/chunks/{http.js-DMkgmpI5.js.map → http.js-dbT0ifQ9.js.map} +1 -1
  68. package/build/server/chunks/chunks/{internal.js-B6eePlP4.js → internal.js-xEkkCIRs.js} +3 -3
  69. package/build/server/chunks/chunks/{internal.js-B6eePlP4.js.map → internal.js-xEkkCIRs.js.map} +1 -1
  70. package/build/server/chunks/chunks/internal2.js-BlXt2rfE.js.map +1 -1
  71. package/build/server/chunks/chunks/{manifest-membership.js-vIb-KkQi.js → manifest-membership.js-BnSECWpJ.js} +2 -2
  72. package/build/server/chunks/chunks/{manifest-membership.js-vIb-KkQi.js.map → manifest-membership.js-BnSECWpJ.js.map} +1 -1
  73. package/build/server/chunks/chunks/{raw-reconciliation.js-CeIOAYCA.js → raw-reconciliation.js-ZEOCk_jA.js} +3 -3
  74. package/build/server/chunks/chunks/raw-reconciliation.js-ZEOCk_jA.js.map +1 -0
  75. package/build/server/chunks/chunks/{raw-reconciliation2.js-5mUCDiJk.js → raw-reconciliation2.js-CscuoBC2.js} +2 -2
  76. package/build/server/chunks/chunks/{raw-reconciliation2.js-5mUCDiJk.js.map → raw-reconciliation2.js-CscuoBC2.js.map} +1 -1
  77. package/build/server/chunks/chunks/{shared.js-BO7vJlPc.js → shared.js-ClQ0W6xa.js} +2 -2
  78. package/build/server/chunks/chunks/{shared.js-BO7vJlPc.js.map → shared.js-ClQ0W6xa.js.map} +1 -1
  79. package/build/server/chunks/chunks/{utils.js-BTV5xnNv.js → utils.js-_DPNtm3G.js} +3 -3
  80. package/build/server/chunks/chunks/{utils.js-BTV5xnNv.js.map → utils.js-_DPNtm3G.js.map} +1 -1
  81. package/build/server/chunks/entries/endpoints/api/_...path_/{_server.ts.js-m2QGyBiV.js → _server.ts.js-BaMGnbi8.js} +6 -6
  82. package/build/server/chunks/entries/endpoints/api/_...path_/{_server.ts.js-m2QGyBiV.js.map → _server.ts.js-BaMGnbi8.js.map} +1 -1
  83. package/build/server/chunks/entries/endpoints/api/assets/_id_/{_server.ts.js-eMNgdaf4.js → _server.ts.js-B6YhmqYd.js} +7 -7
  84. package/build/server/chunks/entries/endpoints/api/assets/_id_/{_server.ts.js-eMNgdaf4.js.map → _server.ts.js-B6YhmqYd.js.map} +1 -1
  85. package/build/server/chunks/entries/endpoints/api/assets/_id_/raw/{_server.ts.js-CEQd4Wxn.js → _server.ts.js-qtGGwjZ4.js} +14 -7
  86. package/build/server/chunks/entries/endpoints/api/assets/_id_/raw/_server.ts.js-qtGGwjZ4.js.map +1 -0
  87. package/build/server/chunks/entries/endpoints/api/assets/_id_/reimport/{_server.ts.js-B2JoGCzy.js → _server.ts.js-98vjovDS.js} +7 -7
  88. package/build/server/chunks/entries/endpoints/api/assets/_id_/reimport/{_server.ts.js-B2JoGCzy.js.map → _server.ts.js-98vjovDS.js.map} +1 -1
  89. package/build/server/chunks/entries/endpoints/api/assets/{_server.ts.js-DTpkVywC.js → _server.ts.js-CCzQEr--.js} +7 -7
  90. package/build/server/chunks/entries/endpoints/api/assets/{_server.ts.js-DTpkVywC.js.map → _server.ts.js-CCzQEr--.js.map} +1 -1
  91. package/build/server/chunks/entries/endpoints/api/assets/delete/{_server.ts.js-D6Z_pGEZ.js → _server.ts.js-Ca7G_5IJ.js} +7 -7
  92. package/build/server/chunks/entries/endpoints/api/assets/delete/{_server.ts.js-D6Z_pGEZ.js.map → _server.ts.js-Ca7G_5IJ.js.map} +1 -1
  93. package/build/server/chunks/entries/endpoints/api/assets/move/{_server.ts.js-CnDi9p0a.js → _server.ts.js-DRw4ICSn.js} +7 -7
  94. package/build/server/chunks/entries/endpoints/api/assets/move/{_server.ts.js-CnDi9p0a.js.map → _server.ts.js-DRw4ICSn.js.map} +1 -1
  95. package/build/server/chunks/entries/endpoints/api/folders/_path_/{_server.ts.js-BCzuPX5Z.js → _server.ts.js-Ai46jTgw.js} +7 -7
  96. package/build/server/chunks/entries/endpoints/api/folders/_path_/{_server.ts.js-BCzuPX5Z.js.map → _server.ts.js-Ai46jTgw.js.map} +1 -1
  97. package/build/server/chunks/entries/endpoints/api/folders/{_server.ts.js-CGbYyJ6S.js → _server.ts.js-NQKYbtiU.js} +7 -7
  98. package/build/server/chunks/entries/endpoints/api/folders/{_server.ts.js-CGbYyJ6S.js.map → _server.ts.js-NQKYbtiU.js.map} +1 -1
  99. package/build/server/chunks/entries/endpoints/api/imports/{_server.ts.js-CL_89klb.js → _server.ts.js-_vJ2Npqd.js} +7 -7
  100. package/build/server/chunks/entries/endpoints/api/imports/{_server.ts.js-CL_89klb.js.map → _server.ts.js-_vJ2Npqd.js.map} +1 -1
  101. package/build/server/chunks/entries/endpoints/api/manifests/_name_/{_server.ts.js-DZUKtjz9.js → _server.ts.js-DIn5srjK.js} +7 -7
  102. package/build/server/chunks/entries/endpoints/api/manifests/_name_/{_server.ts.js-DZUKtjz9.js.map → _server.ts.js-DIn5srjK.js.map} +1 -1
  103. package/build/server/chunks/entries/endpoints/api/manifests/{_server.ts.js-Dz25LG_P.js → _server.ts.js-CqFLRTP-.js} +7 -7
  104. package/build/server/chunks/entries/endpoints/api/manifests/{_server.ts.js-Dz25LG_P.js.map → _server.ts.js-CqFLRTP-.js.map} +1 -1
  105. package/build/server/chunks/entries/endpoints/api/raw/adopt/{_server.ts.js-C-NuN3JJ.js → _server.ts.js-BYn_v3VS.js} +7 -7
  106. package/build/server/chunks/entries/endpoints/api/raw/adopt/{_server.ts.js-C-NuN3JJ.js.map → _server.ts.js-BYn_v3VS.js.map} +1 -1
  107. package/build/server/chunks/entries/endpoints/api/raw/edited/accept/{_server.ts.js-CwL9UPh3.js → _server.ts.js-sxVzkX1S.js} +7 -7
  108. package/build/server/chunks/entries/endpoints/api/raw/edited/accept/{_server.ts.js-CwL9UPh3.js.map → _server.ts.js-sxVzkX1S.js.map} +1 -1
  109. package/build/server/chunks/entries/endpoints/api/raw/edited/dismiss/{_server.ts.js-DanXYrj1.js → _server.ts.js-E3B6VyAs.js} +7 -7
  110. package/build/server/chunks/entries/endpoints/api/raw/edited/dismiss/{_server.ts.js-DanXYrj1.js.map → _server.ts.js-E3B6VyAs.js.map} +1 -1
  111. package/build/server/chunks/entries/endpoints/api/reconcile/{_server.ts.js-BZrun0up.js → _server.ts.js-ClgS9ghS.js} +7 -7
  112. package/build/server/chunks/entries/endpoints/api/reconcile/{_server.ts.js-BZrun0up.js.map → _server.ts.js-ClgS9ghS.js.map} +1 -1
  113. package/build/server/chunks/entries/endpoints/api/reveal/{_server.ts.js-DQOabHbS.js → _server.ts.js-BPUzWMNL.js} +7 -7
  114. package/build/server/chunks/entries/endpoints/api/reveal/{_server.ts.js-DQOabHbS.js.map → _server.ts.js-BPUzWMNL.js.map} +1 -1
  115. package/build/server/chunks/entries/endpoints/api/state/{_server.ts.js-k8Ueydx1.js → _server.ts.js-_G6pURnx.js} +7 -7
  116. package/build/server/chunks/entries/endpoints/api/state/{_server.ts.js-k8Ueydx1.js.map → _server.ts.js-_G6pURnx.js.map} +1 -1
  117. package/build/server/chunks/entries/endpoints/api/usage/{_server.ts.js-DmMmiFiu.js → _server.ts.js-as3GcjaI.js} +7 -7
  118. package/build/server/chunks/entries/endpoints/api/usage/{_server.ts.js-DmMmiFiu.js.map → _server.ts.js-as3GcjaI.js.map} +1 -1
  119. package/build/server/chunks/entries/endpoints/files/_...path_/{_server.ts.js-CT7yOdDS.js → _server.ts.js-CR58wymO.js} +6 -6
  120. package/build/server/chunks/entries/endpoints/files/_...path_/{_server.ts.js-CT7yOdDS.js.map → _server.ts.js-CR58wymO.js.map} +1 -1
  121. package/build/server/chunks/entries/endpoints/files/proxy/_...path_/{_server.ts.js-BQTC0OSC.js → _server.ts.js-Do2LOf04.js} +7 -7
  122. package/build/server/chunks/entries/endpoints/files/proxy/_...path_/{_server.ts.js-BQTC0OSC.js.map → _server.ts.js-Do2LOf04.js.map} +1 -1
  123. package/build/server/chunks/entries/endpoints/files/raw/_...path_/{_server.ts.js-mv9cqSuS.js → _server.ts.js-Ckp6_SaE.js} +7 -7
  124. package/build/server/chunks/entries/endpoints/files/raw/_...path_/{_server.ts.js-mv9cqSuS.js.map → _server.ts.js-Ckp6_SaE.js.map} +1 -1
  125. package/build/server/chunks/entries/{hooks.server.js-BNQO3cZr.js → hooks.server.js-CL1tg0CT.js} +6 -6
  126. package/build/server/chunks/entries/{hooks.server.js-BNQO3cZr.js.map → hooks.server.js-CL1tg0CT.js.map} +1 -1
  127. package/build/server/chunks/{handler-DQdjBhko.js → handler-6UmsR4HY.js} +5 -5
  128. package/build/server/chunks/{handler-DQdjBhko.js.map → handler-6UmsR4HY.js.map} +1 -1
  129. package/build/server/chunks/{index.js-DtKY5QD2.js → index.js-CjHZ4kgG.js} +5 -5
  130. package/build/server/chunks/{index.js-DtKY5QD2.js.map → index.js-CjHZ4kgG.js.map} +1 -1
  131. package/build/server/chunks/{manifest.js-CJMiboeI.js → manifest.js-DFh4gv8f.js} +29 -29
  132. package/build/server/chunks/{manifest.js-CJMiboeI.js.map → manifest.js-DFh4gv8f.js.map} +1 -1
  133. package/build/server/chunks/nodes/{0.js-Ce__dNtc.js → 0.js-B_HfQzlA.js} +2 -2
  134. package/build/server/chunks/nodes/{0.js-Ce__dNtc.js.map → 0.js-B_HfQzlA.js.map} +1 -1
  135. package/build/server/chunks/nodes/1.js-S48YmPof.js +7 -0
  136. package/build/server/chunks/nodes/{1.js-BIwe5V8L.js.map → 1.js-S48YmPof.js.map} +1 -1
  137. package/build/server/chunks/nodes/2.js-NPMtObSV.js +7 -0
  138. package/build/server/chunks/nodes/2.js-NPMtObSV.js.map +1 -0
  139. package/build/server/chunks/nodes/3.js-p75We_hZ.js +7 -0
  140. package/build/server/chunks/nodes/3.js-p75We_hZ.js.map +1 -0
  141. package/build/server/chunks/nodes/4.js-C8FMkoda.js +7 -0
  142. package/build/server/chunks/nodes/4.js-C8FMkoda.js.map +1 -0
  143. package/dist/cli.js +2 -1
  144. package/dist/core/api-types.d.ts +2 -0
  145. package/dist/runtime/chroma-key-video-lifecycle.js +1 -2
  146. package/dist/server/check.d.ts +1 -1
  147. package/dist/server/check.js +16 -2
  148. package/dist/server/cli-commands.d.ts +2 -2
  149. package/dist/server/cli-commands.js +47 -11
  150. package/dist/server/image-duplicates.d.ts +18 -0
  151. package/dist/server/image-duplicates.js +140 -0
  152. package/dist/server/index.d.ts +1 -1
  153. package/dist/server/library-store.d.ts +7 -1
  154. package/dist/server/library-store.js +38 -1
  155. package/dist/server/operations.d.ts +6 -0
  156. package/dist/server/operations.js +66 -0
  157. package/package.json +1 -1
  158. package/build/client/_app/immutable/assets/2.6TBn1n3x.css +0 -1
  159. package/build/client/_app/immutable/assets/2.6TBn1n3x.css.br +0 -0
  160. package/build/client/_app/immutable/assets/2.6TBn1n3x.css.gz +0 -0
  161. package/build/client/_app/immutable/assets/3.BuCXJbRG.css.br +0 -0
  162. package/build/client/_app/immutable/assets/3.BuCXJbRG.css.gz +0 -0
  163. package/build/client/_app/immutable/assets/ConfirmDialog.BdKlitwi.css +0 -1
  164. package/build/client/_app/immutable/assets/ConfirmDialog.BdKlitwi.css.br +0 -0
  165. package/build/client/_app/immutable/assets/ConfirmDialog.BdKlitwi.css.gz +0 -0
  166. package/build/client/_app/immutable/assets/LibraryContextMenu.B6By2-yb.css.br +0 -0
  167. package/build/client/_app/immutable/assets/LibraryContextMenu.B6By2-yb.css.gz +0 -0
  168. package/build/client/_app/immutable/assets/Popover.Et4sBRbI.css +0 -1
  169. package/build/client/_app/immutable/assets/Popover.Et4sBRbI.css.br +0 -0
  170. package/build/client/_app/immutable/assets/Popover.Et4sBRbI.css.gz +0 -0
  171. package/build/client/_app/immutable/chunks/CAQ5okPf.js +0 -2
  172. package/build/client/_app/immutable/chunks/CAQ5okPf.js.br +0 -0
  173. package/build/client/_app/immutable/chunks/CAQ5okPf.js.gz +0 -0
  174. package/build/client/_app/immutable/chunks/Ccz62-Hi.js +0 -1
  175. package/build/client/_app/immutable/chunks/Ccz62-Hi.js.br +0 -0
  176. package/build/client/_app/immutable/chunks/Ccz62-Hi.js.gz +0 -0
  177. package/build/client/_app/immutable/chunks/ChVOZl2x.js +0 -1
  178. package/build/client/_app/immutable/chunks/ChVOZl2x.js.br +0 -0
  179. package/build/client/_app/immutable/chunks/ChVOZl2x.js.gz +0 -0
  180. package/build/client/_app/immutable/chunks/CiBv7EZv.js +0 -108
  181. package/build/client/_app/immutable/chunks/CiBv7EZv.js.br +0 -0
  182. package/build/client/_app/immutable/chunks/CiBv7EZv.js.gz +0 -0
  183. package/build/client/_app/immutable/chunks/UFAWUL-4.js +0 -1
  184. package/build/client/_app/immutable/chunks/UFAWUL-4.js.br +0 -0
  185. package/build/client/_app/immutable/chunks/UFAWUL-4.js.gz +0 -0
  186. package/build/client/_app/immutable/chunks/YWIvyYJl.js +0 -1
  187. package/build/client/_app/immutable/chunks/YWIvyYJl.js.br +0 -0
  188. package/build/client/_app/immutable/chunks/YWIvyYJl.js.gz +0 -0
  189. package/build/client/_app/immutable/chunks/jjXOSnwf.js.br +0 -0
  190. package/build/client/_app/immutable/chunks/jjXOSnwf.js.gz +0 -0
  191. package/build/client/_app/immutable/entry/app.Rv8f5zSo.js.br +0 -0
  192. package/build/client/_app/immutable/entry/app.Rv8f5zSo.js.gz +0 -0
  193. package/build/client/_app/immutable/entry/start.C5jRg_CF.js +0 -1
  194. package/build/client/_app/immutable/entry/start.C5jRg_CF.js.br +0 -1
  195. package/build/client/_app/immutable/entry/start.C5jRg_CF.js.gz +0 -0
  196. package/build/client/_app/immutable/nodes/0.Gv5d6CcW.js.br +0 -0
  197. package/build/client/_app/immutable/nodes/0.Gv5d6CcW.js.gz +0 -0
  198. package/build/client/_app/immutable/nodes/1.8J9y5zyF.js.br +0 -0
  199. package/build/client/_app/immutable/nodes/1.8J9y5zyF.js.gz +0 -0
  200. package/build/client/_app/immutable/nodes/2.BNvTqsKZ.js +0 -3
  201. package/build/client/_app/immutable/nodes/2.BNvTqsKZ.js.br +0 -0
  202. package/build/client/_app/immutable/nodes/2.BNvTqsKZ.js.gz +0 -0
  203. package/build/client/_app/immutable/nodes/3.CmlRI2XA.js +0 -1
  204. package/build/client/_app/immutable/nodes/3.CmlRI2XA.js.br +0 -0
  205. package/build/client/_app/immutable/nodes/3.CmlRI2XA.js.gz +0 -0
  206. package/build/client/_app/immutable/nodes/4.CHTKk5QR.js +0 -2
  207. package/build/client/_app/immutable/nodes/4.CHTKk5QR.js.br +0 -0
  208. package/build/client/_app/immutable/nodes/4.CHTKk5QR.js.gz +0 -0
  209. package/build/server/chunks/chunks/context.js-BJfk3ZiR.js.map +0 -1
  210. package/build/server/chunks/chunks/contract.js-DRcxzb4o.js.map +0 -1
  211. package/build/server/chunks/chunks/raw-reconciliation.js-CeIOAYCA.js.map +0 -1
  212. package/build/server/chunks/entries/endpoints/api/assets/_id_/raw/_server.ts.js-CEQd4Wxn.js.map +0 -1
  213. package/build/server/chunks/nodes/1.js-BIwe5V8L.js +0 -7
  214. package/build/server/chunks/nodes/2.js-Bj7c0eH1.js +0 -7
  215. package/build/server/chunks/nodes/2.js-Bj7c0eH1.js.map +0 -1
  216. package/build/server/chunks/nodes/3.js-BMOf9FTK.js +0 -7
  217. package/build/server/chunks/nodes/3.js-BMOf9FTK.js.map +0 -1
  218. package/build/server/chunks/nodes/4.js-CNLb7Xc5.js +0 -7
  219. package/build/server/chunks/nodes/4.js-CNLb7Xc5.js.map +0 -1
package/README.md CHANGED
@@ -46,7 +46,7 @@ file or Figma node
46
46
  modules as one operation.
47
47
  4. Import the generated manifest in Svelte and render the typed entry.
48
48
  5. Run `fundus check` in CI to catch stale proxies, invalid references,
49
- out-of-sync modules, and unresolved raw-file drift.
49
+ out-of-sync modules, unresolved raw-file drift, and potential duplicate images.
50
50
 
51
51
  Only manifest members and the assets they reference are processed and shipped.
52
52
  Manifests also preload and release their complete delivery set.
@@ -144,7 +144,8 @@ hides `Max width` for these presets.
144
144
  ## Editor and CLI
145
145
 
146
146
  Use the editor for visual work: organize assets, author slices and chroma keys,
147
- tune processing, manage manifests, and inspect delivered bytes.
147
+ tune processing, manage manifests, inspect delivered bytes, and review potential
148
+ image duplicates from the Duplicates view or an asset's detail panel.
148
149
 
149
150
  Use the CLI for scripts, CI, and coding agents:
150
151
 
@@ -153,6 +154,8 @@ npx fundus state --json
153
154
  npx fundus asset ingest ./exports/panel.png --type slice --manifests main \
154
155
  --compression-x 75 --compression-y 25
155
156
  npx fundus asset replace panel ./exports/panel-v2.png
157
+ npx fundus asset replace panel \
158
+ 'https://www.figma.com/design/abc/UI?node-id=12-34' --from figma --scale 3
156
159
  npx fundus check
157
160
  ```
158
161
 
@@ -0,0 +1 @@
1
+ .submenu-anchor.svelte-13hq4tl{position:relative}button.svelte-13hq4tl{width:100%;color:var(--text);font:inherit;text-align:left;white-space:nowrap;background:0 0;border:0;border-radius:4px;padding:6px 8px}button.svelte-13hq4tl:hover,button.svelte-13hq4tl:focus-visible{background:var(--accent-soft);outline:none}.submenu-anchor.svelte-13hq4tl:has(.submenu:where(.svelte-13hq4tl))>.submenu-trigger:where(.svelte-13hq4tl){background:var(--accent-soft);outline:none}button.svelte-13hq4tl:disabled{color:var(--text-faint);background:0 0}.submenu-trigger.svelte-13hq4tl{justify-content:space-between;align-items:center;gap:12px;display:flex}.arrow.svelte-13hq4tl{color:var(--text-faint);font-size:16px;line-height:12px}.submenu.svelte-13hq4tl{z-index:1;background:var(--panel-raised);border:1px solid var(--border);border-radius:6px;min-width:168px;max-width:320px;padding:4px;position:absolute;top:-5px;left:calc(100% - 4px);overflow-y:auto;box-shadow:0 8px 24px #00000073}.submenu.opens-left.svelte-13hq4tl{left:auto;right:calc(100% - 4px)}.submenu.svelte-13hq4tl button:where(.svelte-13hq4tl){text-overflow:ellipsis;overflow:hidden}hr.svelte-13hq4tl{background:var(--border);border:0;height:1px;margin:4px 8px}.context-menu.svelte-109nkvw{z-index:200;background:var(--panel-raised);border:1px solid var(--border);border-radius:6px;width:168px;padding:4px;position:fixed;box-shadow:0 8px 24px #00000073}button.svelte-109nkvw{width:100%;color:var(--text);font:inherit;text-align:left;background:0 0;border:0;border-radius:4px;padding:6px 8px}button.svelte-109nkvw:hover,button.svelte-109nkvw:focus-visible{background:var(--accent-soft);outline:none}button.danger.svelte-109nkvw{color:var(--danger)}hr.svelte-109nkvw{background:var(--border);border:0;height:1px;margin:4px 8px}.manifest-label.svelte-1b4m5oj{align-items:center;gap:4px;min-width:0;display:inline-flex}.emoji.svelte-1b4m5oj{flex:none;line-height:1}.name.svelte-1b4m5oj{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chip.svelte-1b4m5oj{background:color-mix(in srgb, var(--manifest-color) 20%, transparent);color:var(--manifest-color);border-radius:4px;padding:0 5px;font-size:10px}.chip.passive.svelte-1b4m5oj{border:1px dashed var(--manifest-color);background:0 0}.browse-select.svelte-dr99ka{border-radius:4px;align-items:center;min-width:0;height:24px;padding:0 6px 0 0;display:inline-flex}.browse-select.svelte-dr99ka:focus-within{border-color:var(--accent)}.browse-select.filter-active.svelte-dr99ka{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.browse-select.filter-active.svelte-dr99ka .icon-slot:where(.svelte-dr99ka){color:var(--accent)}.icon-slot.svelte-dr99ka{width:24px;height:24px;color:var(--text-dim);-webkit-user-select:none;user-select:none;flex:none;justify-content:center;align-items:center;display:flex}select.svelte-dr99ka{background:0 0;border:0;outline:none;min-width:0;height:100%;margin:0;padding:0 6px 0 0}.filter-field .popover-anchor{width:100%}.multi-select-trigger.svelte-1yxb8yh{text-align:left;border-radius:4px;align-items:center;gap:5px;width:100%;min-width:0;height:24px;padding:0 6px 0 0;display:flex}.multi-select-trigger.filter-active.svelte-1yxb8yh{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.icon-slot.svelte-1yxb8yh{width:24px;height:24px;color:var(--text-dim);flex:none;place-items:center;display:grid}.filter-active.svelte-1yxb8yh .icon-slot:where(.svelte-1yxb8yh){color:var(--accent)}.summary.svelte-1yxb8yh{min-width:0;color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.filter-active.svelte-1yxb8yh .summary:where(.svelte-1yxb8yh){color:var(--accent)}.selected-count.svelte-1yxb8yh{background:var(--accent);min-width:15px;height:15px;color:var(--text);border-radius:999px;flex:none;place-items:center;padding:0 4px;font-size:9px;font-weight:700;display:grid}.multi-select-menu.svelte-1yxb8yh{width:max(160px, var(--multi-select-width,100%));min-width:160px}.menu-header.svelte-1yxb8yh{border-bottom:1px solid var(--border-soft);color:var(--text-dim);justify-content:space-between;align-items:center;gap:12px;padding:1px 4px 6px;font-size:10px;display:flex}.menu-header.svelte-1yxb8yh button:where(.svelte-1yxb8yh){color:var(--accent);font:inherit;background:0 0;border:0;padding:1px 2px}.menu-header.svelte-1yxb8yh button:where(.svelte-1yxb8yh):disabled{opacity:.4;cursor:default}.options.svelte-1yxb8yh{max-height:224px;padding-top:4px;overflow-y:auto}.options.svelte-1yxb8yh label:where(.svelte-1yxb8yh){border-radius:var(--radius-small);min-width:0;height:26px;color:var(--text);cursor:pointer;align-items:center;gap:7px;padding:0 5px;display:flex}.options.svelte-1yxb8yh label:where(.svelte-1yxb8yh):hover,.options.svelte-1yxb8yh label:where(.svelte-1yxb8yh):focus-within{background:var(--accent-soft)}.options.svelte-1yxb8yh label.selected:where(.svelte-1yxb8yh){color:var(--accent)}.options.svelte-1yxb8yh input:where(.svelte-1yxb8yh){width:12px;height:12px;accent-color:var(--accent);flex:none;margin:0}.options.svelte-1yxb8yh span:where(.svelte-1yxb8yh){text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.browse-checkbox.svelte-sa6meb{cursor:pointer;align-items:center;min-width:0;height:24px;display:inline-flex}.browse-checkbox.svelte-sa6meb:focus-within .value:where(.svelte-sa6meb){color:var(--accent)}.icon-slot.svelte-sa6meb{-webkit-user-select:none;user-select:none;flex:none;justify-content:center;align-items:center;width:24px;height:24px;display:flex}.value.svelte-sa6meb{min-width:0;color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:11px;line-height:14px;overflow:hidden}input.svelte-sa6meb{width:12px;height:12px;accent-color:var(--accent);margin:0}.library-view.svelte-1uha8ag{flex:1;min-height:0;display:flex}.page.svelte-1uha8ag{flex:1;min-height:0;padding:16px;position:relative;overflow-y:auto}.library-toolbar.svelte-1uha8ag{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;display:flex}.library-toolbar.svelte-1uha8ag .control{height:24px}.selection-controls.svelte-1uha8ag{align-items:center;gap:8px;display:inline-flex}.selection-action.svelte-1uha8ag:disabled{opacity:.45;cursor:default}.selection-action.svelte-1uha8ag{justify-content:center;align-items:center;display:inline-flex}.selection-summary.svelte-1uha8ag{color:var(--accent);white-space:nowrap;font-weight:600}.preview-size-control.svelte-1uha8ag{height:24px;color:var(--text-dim);cursor:default;border-radius:4px;align-items:center;gap:6px;margin-left:auto;padding:0 7px;display:inline-flex}.preview-size-icon.svelte-1uha8ag{fill:currentColor;flex:none;width:14px;height:14px}.preview-size-icon.dense.svelte-1uha8ag{color:var(--text-faint)}.preview-size-icon.dense.svelte-1uha8ag rect:where(.svelte-1uha8ag){rx:.75px;width:3px;height:3px}.preview-size-icon.roomy.svelte-1uha8ag rect:where(.svelte-1uha8ag){rx:1.25px}.preview-size-range.svelte-1uha8ag{appearance:none;cursor:pointer;background:0 0;flex:none;width:104px;height:14px;margin:0;padding:0}.preview-size-range.svelte-1uha8ag::-webkit-slider-runnable-track{background:linear-gradient(to right, var(--accent) 0 var(--preview-size-progress), var(--border) var(--preview-size-progress) 100%);border-radius:999px;height:3px}.preview-size-range.svelte-1uha8ag::-moz-range-track{background:var(--border);border-radius:999px;height:3px}.preview-size-range.svelte-1uha8ag::-moz-range-progress{background:var(--accent);border-radius:999px;height:3px}.preview-size-range.svelte-1uha8ag::-webkit-slider-thumb{border:2px solid var(--panel-raised);appearance:none;background:var(--accent);width:12px;height:12px;box-shadow:0 0 0 1px var(--accent);border-radius:50%;margin-top:-4.5px}.preview-size-range.svelte-1uha8ag::-moz-range-thumb{border:2px solid var(--panel-raised);background:var(--accent);width:8px;height:8px;box-shadow:0 0 0 1px var(--accent);border-radius:50%}.preview-size-range.svelte-1uha8ag:focus-visible{outline:none}.preview-size-range.svelte-1uha8ag:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 1px var(--accent), 0 0 0 4px var(--accent-soft)}.preview-size-range.svelte-1uha8ag:focus-visible::-moz-range-thumb{box-shadow:0 0 0 1px var(--accent), 0 0 0 4px var(--accent-soft)}.search.svelte-1uha8ag{border-radius:4px;flex:0 0 240px;align-items:center;gap:4px;width:240px;min-width:200px;height:24px;padding:0 6px 0 0;display:flex}.search.svelte-1uha8ag:focus-within{border-color:var(--accent)}.search.filter-active.svelte-1uha8ag{border-color:var(--accent);background:var(--accent-soft)}.search.filter-active.svelte-1uha8ag .search-icon-slot:where(.svelte-1uha8ag),.search.filter-active.svelte-1uha8ag kbd:where(.svelte-1uha8ag){color:var(--accent)}.search.filter-active.svelte-1uha8ag kbd:where(.svelte-1uha8ag){border-color:var(--accent)}.search-icon-slot.svelte-1uha8ag{width:24px;height:24px;color:var(--text-dim);flex:none;justify-content:center;align-items:center;display:flex}.search-icon.svelte-1uha8ag{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;flex:none;width:14px;height:14px}.search-input.svelte-1uha8ag{min-width:0;height:100%;color:var(--text);font:inherit;background:0 0;border:0;outline:none;flex:1;padding:0}.search-input.svelte-1uha8ag::-webkit-search-cancel-button{appearance:none;background:var(--text-dim);cursor:pointer;width:12px;height:12px;margin:0;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='m3 3 8 8m0-8-8 8' fill='none' stroke='black' stroke-linecap='round' stroke-width='2.25'/%3E%3C/svg%3E") 50%/12px 12px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='m3 3 8 8m0-8-8 8' fill='none' stroke='black' stroke-linecap='round' stroke-width='2.25'/%3E%3C/svg%3E") 50%/12px 12px no-repeat}.search.filter-active.svelte-1uha8ag .search-input:where(.svelte-1uha8ag)::-webkit-search-cancel-button{background:var(--accent)}.search.svelte-1uha8ag kbd:where(.svelte-1uha8ag){border:1px solid var(--border);color:var(--text-faint);border-radius:3px;flex:none;padding:1px 4px;font:9px/14px system-ui,sans-serif}.toolbar-button.svelte-1uha8ag,.import-trigger.svelte-1uha8ag{white-space:nowrap;justify-content:center;align-items:center;gap:6px;display:inline-flex}.toolbar-button.active.svelte-1uha8ag{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.filter-count.svelte-1uha8ag{background:var(--accent);min-width:16px;height:16px;color:var(--text);border-radius:999px;place-items:center;padding:0 4px;font-size:10px;font-weight:700;display:inline-grid}.filters-popover.svelte-1uha8ag{width:min(480px,100vw - 24px)}.popover-header.svelte-1uha8ag{border-bottom:1px solid var(--border-soft);justify-content:space-between;align-items:center;gap:16px;padding:2px 2px 10px;display:flex}.popover-header.svelte-1uha8ag strong:where(.svelte-1uha8ag){color:var(--text);font-size:11px;font-weight:400}.clear-filters.svelte-1uha8ag{color:var(--accent);font:inherit;background:0 0;border:0;padding:2px 4px;font-size:11px}.clear-filters.svelte-1uha8ag:disabled{opacity:.4;cursor:default}.filter-grid.svelte-1uha8ag{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:10px 2px;display:grid}.filter-field.svelte-1uha8ag{flex-direction:column;gap:4px;min-width:0;display:flex}.filter-field.svelte-1uha8ag>span:where(.svelte-1uha8ag){color:#ffffffb2;letter-spacing:.27px;-webkit-user-select:none;user-select:none;font-size:9px;font-weight:500;line-height:14px}.filter-field.svelte-1uha8ag .browse-select,.filter-field.svelte-1uha8ag .browse-checkbox{width:100%}.filter-field.svelte-1uha8ag .browse-select select{flex:1;width:100%}.filter-options-grid.svelte-1uha8ag{padding-top:0;padding-bottom:2px}.filter-options-grid.svelte-1uha8ag .browse-checkbox,.filter-options-grid.svelte-1uha8ag .browse-checkbox .icon-slot{height:14px}.filter-options-grid.svelte-1uha8ag .browse-checkbox .icon-slot{justify-content:flex-start;align-items:flex-start;width:18px}@media (width<=560px){.filter-grid.svelte-1uha8ag{grid-template-columns:1fr}}@media (width<=1056px){.search.svelte-1uha8ag{flex-basis:100%;order:10;width:100%}}.section.svelte-1uha8ag{margin-bottom:24px}.section.svelte-1uha8ag:last-child{margin-bottom:0}.section-emoji.svelte-1uha8ag{margin-right:6px}.grid.svelte-1uha8ag,.folder-grid.svelte-1uha8ag{gap:8px;display:grid}.grid.svelte-1uha8ag{grid-template-columns:repeat(auto-fill, minmax(min(100%, var(--preview-card-width)), 1fr))}.folder-grid.svelte-1uha8ag{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.folder-card.svelte-1uha8ag{background:var(--panel);border:1px solid var(--border-soft);min-width:0;height:60px;color:var(--text);text-align:left;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;display:flex}.folder-card.svelte-1uha8ag:hover,.folder-card.svelte-1uha8ag:focus-visible{border-color:var(--accent);outline:none}.folder-card.drop-target.svelte-1uha8ag{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent)}.folder-card.dragging-folder.svelte-1uha8ag{opacity:.55}.folder-card-icon.svelte-1uha8ag{color:var(--text-dim);flex:none;align-items:center;display:flex}.folder-card-details.svelte-1uha8ag{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.folder-card-details.svelte-1uha8ag strong:where(.svelte-1uha8ag){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.folder-card-details.svelte-1uha8ag span:where(.svelte-1uha8ag),.folder-card-arrow.svelte-1uha8ag{color:var(--text-faint)}.folder-card-arrow.svelte-1uha8ag{flex:none;font-size:18px}.card.svelte-1uha8ag{background:var(--panel);border:1px solid var(--border-soft);border-radius:8px;flex-direction:column;gap:clamp(4px,5cqi,8px);padding:clamp(4px,5cqi,8px);display:flex;position:relative;container-type:inline-size}.card.selected.svelte-1uha8ag{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.asset-select.svelte-1uha8ag{z-index:1;width:16px;height:16px;accent-color:var(--accent);position:absolute;top:clamp(6px,8cqi,12px);left:clamp(6px,8cqi,12px)}.card.svelte-1uha8ag:hover{border-color:var(--accent)}.thumbnail.svelte-1uha8ag{width:100%;height:min(var(--preview-card-height), 66.667cqi);border-radius:var(--radius);justify-content:center;align-items:center;display:flex;overflow:hidden}.meta.svelte-1uha8ag{align-items:center;gap:6px;min-width:0;display:flex}.id.svelte-1uha8ag{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.type-badge.svelte-1uha8ag{color:var(--text-dim);border:1px solid var(--border);border-radius:4px;flex:none;margin-left:auto;padding:0 5px;font-size:10px}.badges.svelte-1uha8ag{flex-wrap:wrap;gap:4px;min-height:16px;display:flex}.badge.svelte-1uha8ag{border-radius:4px;padding:0 5px;font-size:10px}.badge.warning.svelte-1uha8ag{background:var(--warning-soft);color:var(--warning)}@container (width<=109px){.type-badge.svelte-1uha8ag{display:none}.badges.svelte-1uha8ag{flex-wrap:nowrap;overflow:hidden}}@container (width<=79px){.card.svelte-1uha8ag>.overlay{background:var(--accent);border:0;width:6px;height:6px;padding:0;font-size:0;top:5px;left:auto;right:5px;transform:none}.card.svelte-1uha8ag>.overlay.edited{background:var(--warning)}.asset-select.svelte-1uha8ag{width:8px;height:8px;top:0;left:0;transform:translate(-8%,8%)}.meta.svelte-1uha8ag,.badges.svelte-1uha8ag{display:none}}.empty.svelte-1uha8ag{color:var(--text-dim);text-align:center;padding:48px}.dialog-row.svelte-1uha8ag{align-items:center;gap:8px;display:flex}.dialog-row.svelte-1uha8ag span:where(.svelte-1uha8ag){width:44px;color:var(--text-dim)}.dialog-row.svelte-1uha8ag input:where(.svelte-1uha8ag){flex:1}.dialog-text.svelte-1uha8ag,.dialog-warning.svelte-1uha8ag{margin:8px 0 0}.dialog-warning.svelte-1uha8ag{color:var(--warning)}.drop-hint.svelte-1uha8ag{border:2px dashed var(--accent);color:var(--accent);pointer-events:none;background:#0d99ff14;border-radius:12px;justify-content:center;align-items:center;font-size:14px;display:flex;position:fixed;inset:48px 8px 8px}
@@ -1 +1 @@
1
- .usage-header.svelte-13vzy7a{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;font-size:11px;font-weight:400;display:flex}.usage-status.svelte-13vzy7a,.usage-actions.svelte-13vzy7a{align-items:center;gap:6px;display:flex}.usage-actions.svelte-13vzy7a .control:where(.svelte-13vzy7a){height:24px;padding-block:2px}.usage-actions.svelte-13vzy7a .control:where(.svelte-13vzy7a):disabled{cursor:not-allowed;opacity:.55}.status-dot.svelte-13vzy7a{background:var(--text-faint);border-radius:50%;flex:none;width:7px;height:7px}.status-dot.used.svelte-13vzy7a{background:var(--ok)}.status-dot.unknown.svelte-13vzy7a{background:var(--warning)}.usages-trigger.svelte-13vzy7a{white-space:nowrap;align-items:center;gap:5px;display:inline-flex}.chevron.svelte-13vzy7a{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px;transform-origin:50%;flex:none;width:12px;height:12px;display:block}.chevron.open.svelte-13vzy7a{transform:rotate(180deg)}.usage-popover.svelte-13vzy7a{width:min(360px,100vw - 40px);font-size:11px;font-weight:400}.popover-heading.svelte-13vzy7a,.reference-location.svelte-13vzy7a{justify-content:space-between;align-items:center;gap:12px;display:flex}.popover-heading.svelte-13vzy7a{color:var(--text-dim);padding:2px 4px 8px;font-size:11px}.popover-heading.svelte-13vzy7a>span:where(.svelte-13vzy7a){font-variant-numeric:tabular-nums;color:var(--text-faint)}.usage-list.svelte-13vzy7a{flex-direction:column;gap:2px;max-height:min(320px,55vh);display:flex;overflow-y:auto}.usage-reference.svelte-13vzy7a{border-radius:var(--radius);width:100%;color:var(--text);text-align:left;background:0 0;border:0;flex-direction:column;align-items:flex-start;padding:7px 8px;font-size:11px;display:flex}.usage-reference.svelte-13vzy7a:hover:not(:disabled),.usage-reference.svelte-13vzy7a:focus-visible{background:var(--accent-soft);outline:none}.usage-reference.svelte-13vzy7a:disabled{opacity:.55;cursor:not-allowed}.reference-location.svelte-13vzy7a{width:100%}.reference-file.svelte-13vzy7a{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.reference-position.svelte-13vzy7a{color:var(--accent);font-variant-numeric:tabular-nums;flex:none}.reference-paths.svelte-13vzy7a,.usage-reference.svelte-13vzy7a small:where(.svelte-13vzy7a){max-width:100%;color:var(--text-faint);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:9px;overflow:hidden}.hint.svelte-13vzy7a{color:var(--text-faint);margin:0;font-size:11px}.error.svelte-13vzy7a{color:var(--danger)}.usage-section.svelte-1xvalv3{border-bottom:1px solid var(--border-soft);padding:12px}.hint.svelte-1xvalv3{color:var(--text-faint);margin:0;font-size:11px}.error.svelte-1xvalv3{color:var(--danger)}.refresh-error.svelte-1xvalv3{margin-top:8px}.detail.svelte-xy8zsr{flex:1;grid-template-columns:224px 1fr 280px;min-height:0;display:grid}.center.svelte-xy8zsr{flex-direction:column;min-width:0;min-height:0;padding:12px 16px;display:flex}.center.empty.svelte-xy8zsr,.empty.svelte-xy8zsr{color:var(--text-dim);flex:1;justify-content:center;align-items:center;display:flex}.inspector.svelte-xy8zsr{background:var(--panel);border-left:1px solid var(--border);overflow-y:auto}.inspector.svelte-xy8zsr section:where(.svelte-xy8zsr){border-bottom:1px solid var(--border-soft);padding:12px}.inspector.svelte-xy8zsr h2:where(.svelte-xy8zsr){word-break:break-all;margin:0;font-size:13px}.raw.svelte-xy8zsr{color:var(--text-dim);word-break:break-all;margin:4px 0 0}.warning.svelte-xy8zsr{color:var(--warning);margin:8px 0 0;font-size:11px}.hint.svelte-xy8zsr{color:var(--text-faint);margin:0;font-size:11px}.inspector.svelte-xy8zsr h4:where(.svelte-xy8zsr){text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);margin:8px 0 4px;font-size:10px}.reference-row.svelte-xy8zsr{border-radius:var(--radius);color:var(--text-dim);align-items:center;gap:6px;min-width:0;padding:3px 4px;display:flex}.reference-row.svelte-xy8zsr:hover{background:var(--panel-raised);color:var(--text)}.reference-field.svelte-xy8zsr{color:var(--text-faint);font-size:11px}.reference-arrow.svelte-xy8zsr{color:var(--text-faint);flex:none}.reference-asset.svelte-xy8zsr{color:var(--accent);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.rename.svelte-xy8zsr{gap:8px;margin-bottom:8px;display:flex}.replace-raw.svelte-xy8zsr{width:100%;margin-bottom:8px}.source-label.svelte-xy8zsr{margin-bottom:8px}.source-field.svelte-xy8zsr{color:var(--text-dim);flex-direction:column;gap:4px;margin-bottom:8px;font-size:11px;display:flex}.source-field.svelte-xy8zsr .control:where(.svelte-xy8zsr){width:100%}.source-actions.svelte-xy8zsr{flex-direction:column;gap:6px;display:flex}.source-actions.svelte-xy8zsr .control:where(.svelte-xy8zsr){text-align:center;width:100%}.rename.svelte-xy8zsr input:where(.svelte-xy8zsr){flex:1;min-width:0}.danger.svelte-xy8zsr{width:100%}
1
+ .usage-header.svelte-13vzy7a{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;font-size:11px;font-weight:400;display:flex}.usage-status.svelte-13vzy7a,.usage-actions.svelte-13vzy7a{align-items:center;gap:6px;display:flex}.usage-actions.svelte-13vzy7a .control:where(.svelte-13vzy7a){height:24px;padding-block:2px}.usage-actions.svelte-13vzy7a .control:where(.svelte-13vzy7a):disabled{cursor:not-allowed;opacity:.55}.status-dot.svelte-13vzy7a{background:var(--text-faint);border-radius:50%;flex:none;width:7px;height:7px}.status-dot.used.svelte-13vzy7a{background:var(--ok)}.status-dot.unknown.svelte-13vzy7a{background:var(--warning)}.usages-trigger.svelte-13vzy7a{white-space:nowrap;align-items:center;gap:5px;display:inline-flex}.chevron.svelte-13vzy7a{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px;transform-origin:50%;flex:none;width:12px;height:12px;display:block}.chevron.open.svelte-13vzy7a{transform:rotate(180deg)}.usage-popover.svelte-13vzy7a{width:min(360px,100vw - 40px);font-size:11px;font-weight:400}.popover-heading.svelte-13vzy7a,.reference-location.svelte-13vzy7a{justify-content:space-between;align-items:center;gap:12px;display:flex}.popover-heading.svelte-13vzy7a{color:var(--text-dim);padding:2px 4px 8px;font-size:11px}.popover-heading.svelte-13vzy7a>span:where(.svelte-13vzy7a){font-variant-numeric:tabular-nums;color:var(--text-faint)}.usage-list.svelte-13vzy7a{flex-direction:column;gap:2px;max-height:min(320px,55vh);display:flex;overflow-y:auto}.usage-reference.svelte-13vzy7a{border-radius:var(--radius);width:100%;color:var(--text);text-align:left;background:0 0;border:0;flex-direction:column;align-items:flex-start;padding:7px 8px;font-size:11px;display:flex}.usage-reference.svelte-13vzy7a:hover:not(:disabled),.usage-reference.svelte-13vzy7a:focus-visible{background:var(--accent-soft);outline:none}.usage-reference.svelte-13vzy7a:disabled{opacity:.55;cursor:not-allowed}.reference-location.svelte-13vzy7a{width:100%}.reference-file.svelte-13vzy7a{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.reference-position.svelte-13vzy7a{color:var(--accent);font-variant-numeric:tabular-nums;flex:none}.reference-paths.svelte-13vzy7a,.usage-reference.svelte-13vzy7a small:where(.svelte-13vzy7a){max-width:100%;color:var(--text-faint);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:9px;overflow:hidden}.hint.svelte-13vzy7a{color:var(--text-faint);margin:0;font-size:11px}.error.svelte-13vzy7a{color:var(--danger)}.usage-section.svelte-1xvalv3{border-bottom:1px solid var(--border-soft);padding:12px}.hint.svelte-1xvalv3{color:var(--text-faint);margin:0;font-size:11px}.error.svelte-1xvalv3{color:var(--danger)}.refresh-error.svelte-1xvalv3{margin-top:8px}.detail.svelte-xy8zsr{flex:1;grid-template-columns:224px 1fr 280px;min-height:0;display:grid}.center.svelte-xy8zsr{flex-direction:column;min-width:0;min-height:0;padding:12px 16px;display:flex}.center.empty.svelte-xy8zsr,.empty.svelte-xy8zsr{color:var(--text-dim);flex:1;justify-content:center;align-items:center;display:flex}.inspector.svelte-xy8zsr{background:var(--panel);border-left:1px solid var(--border);overflow-y:auto}.inspector.svelte-xy8zsr section:where(.svelte-xy8zsr){border-bottom:1px solid var(--border-soft);padding:12px}.inspector.svelte-xy8zsr h2:where(.svelte-xy8zsr){word-break:break-all;margin:0;font-size:13px}.raw.svelte-xy8zsr{color:var(--text-dim);word-break:break-all;margin:4px 0 0}.warning.svelte-xy8zsr{color:var(--warning);margin:8px 0 0;font-size:11px}.duplicate-warning.svelte-xy8zsr{border:1px solid color-mix(in srgb, var(--warning) 45%, transparent);border-radius:var(--radius);background:var(--warning-soft);color:var(--warning);margin-top:10px;padding:8px;font-size:11px}.duplicate-warning.svelte-xy8zsr>strong:where(.svelte-xy8zsr){margin-bottom:6px;display:block}.duplicate-row.svelte-xy8zsr{border-radius:var(--radius);min-width:0;color:var(--text);align-items:center;gap:8px;padding:4px;display:flex}.duplicate-row.svelte-xy8zsr:hover{background:color-mix(in srgb, var(--warning) 12%, transparent)}.duplicate-row.svelte-xy8zsr img:where(.svelte-xy8zsr){border:1px solid var(--border);border-radius:var(--radius);background:var(--canvas);object-fit:contain;flex:none;width:36px;height:36px}.duplicate-row.svelte-xy8zsr span:where(.svelte-xy8zsr){text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.hint.svelte-xy8zsr{color:var(--text-faint);margin:0;font-size:11px}.inspector.svelte-xy8zsr h4:where(.svelte-xy8zsr){text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);margin:8px 0 4px;font-size:10px}.reference-row.svelte-xy8zsr{border-radius:var(--radius);color:var(--text-dim);align-items:center;gap:6px;min-width:0;padding:3px 4px;display:flex}.reference-row.svelte-xy8zsr:hover{background:var(--panel-raised);color:var(--text)}.reference-field.svelte-xy8zsr{color:var(--text-faint);font-size:11px}.reference-arrow.svelte-xy8zsr{color:var(--text-faint);flex:none}.reference-asset.svelte-xy8zsr{color:var(--accent);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.rename.svelte-xy8zsr{gap:8px;margin-bottom:8px;display:flex}.replace-raw.svelte-xy8zsr{width:100%;margin-bottom:8px}.replace-picker.svelte-xy8zsr{margin-bottom:8px}.replace-picker.svelte-xy8zsr .popover-anchor,.replace-picker.svelte-xy8zsr .replace-raw:where(.svelte-xy8zsr){width:100%}.replace-picker.svelte-xy8zsr .replace-raw:where(.svelte-xy8zsr){justify-content:center;align-items:center;gap:6px;margin-bottom:0;display:flex}.source-label.svelte-xy8zsr{margin-bottom:8px}.source-field.svelte-xy8zsr{color:var(--text-dim);flex-direction:column;gap:4px;margin-bottom:8px;font-size:11px;display:flex}.source-field.svelte-xy8zsr .control:where(.svelte-xy8zsr){width:100%}.source-actions.svelte-xy8zsr{flex-direction:column;gap:6px;display:flex}.source-actions.svelte-xy8zsr .control:where(.svelte-xy8zsr){text-align:center;width:100%}.rename.svelte-xy8zsr input:where(.svelte-xy8zsr){flex:1;min-width:0}.danger.svelte-xy8zsr{width:100%}
@@ -1 +1 @@
1
- .playback.svelte-nchstv{align-items:center;gap:6px;width:100%;display:flex}.btn.svelte-nchstv{background:var(--panel-raised);border-radius:var(--radius);width:28px;height:28px;color:var(--text);border:1px solid #0000;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.btn.svelte-nchstv:hover:not(:disabled){border-color:var(--border)}.btn.svelte-nchstv:focus-visible{border-color:var(--accent);outline:none}.btn.svelte-nchstv:disabled{opacity:.4;cursor:not-allowed}.btn.active.svelte-nchstv{background:var(--accent-soft);color:var(--accent)}.btn.svelte-nchstv svg:where(.svelte-nchstv){width:16px;height:16px;display:block}.time.svelte-nchstv{color:var(--text-dim);font-variant-numeric:tabular-nums;flex:none;font-size:11px}.volume-group.svelte-nchstv{align-items:center;gap:6px;margin-left:auto;display:inline-flex}.range.svelte-nchstv{appearance:none;background:var(--panel-raised);cursor:pointer;border-radius:999px;height:4px}.range.scrub.svelte-nchstv{flex:1;min-width:0;margin:0 2px}.range.volume.svelte-nchstv{flex:none;width:72px}.range.svelte-nchstv:disabled{opacity:.4;cursor:not-allowed}.range.svelte-nchstv::-webkit-slider-thumb{appearance:none;background:var(--accent);border:none;border-radius:50%;width:12px;height:12px}.range.svelte-nchstv::-moz-range-thumb{background:var(--accent);border:none;border-radius:50%;width:12px;height:12px}.range.svelte-nchstv:focus-visible{outline:none}.range.svelte-nchstv:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 3px var(--accent-soft)}.range.svelte-nchstv:focus-visible::-moz-range-thumb{box-shadow:0 0 0 3px var(--accent-soft)}.audio-waveform.svelte-1liihyn{flex-direction:column;gap:8px;width:100%;height:100%;min-height:0;display:flex}.wave.svelte-1liihyn{cursor:pointer;touch-action:none;flex:1;width:100%;min-height:0;display:block}.footer.svelte-1liihyn{flex:none;align-items:center;display:flex}.stage.svelte-1ww4cvx{border:1px solid var(--border);border-radius:8px;flex:1;justify-content:center;align-items:center;min-height:0;display:flex;overflow:auto}.audio-frame.svelte-1ww4cvx{width:min(90%,480px);height:128px}p.svelte-1ww4cvx{color:var(--text-dim)}.scrub-number.svelte-nhap92{flex:1;min-width:0;display:flex;position:relative}.input.svelte-nhap92{width:100%;min-width:0;color:var(--text);font-variant-numeric:tabular-nums;appearance:textfield;background:0 0;border:none;outline:none;flex:1;margin:0;padding:0;font-size:11px}.scrub-number.with-suffix.svelte-nhap92 .input:where(.svelte-nhap92){flex:none}.suffix.svelte-nhap92{color:var(--text-dim);font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none;flex:none;margin-left:2px;font-size:11px}.scrub-number.right.svelte-nhap92 .input:where(.svelte-nhap92){text-align:right}.input.svelte-nhap92::-webkit-outer-spin-button{appearance:none;margin:0}.input.svelte-nhap92::-webkit-inner-spin-button{appearance:none;margin:0}.scrub-surface.svelte-nhap92{cursor:ew-resize;touch-action:none;position:absolute;inset:0}.number-field.svelte-368zap{flex-direction:column;gap:4px;min-width:0;display:flex}.caption.svelte-368zap{letter-spacing:.27px;color:#ffffffb2;-webkit-user-select:none;user-select:none;font-size:9px;font-weight:500;line-height:14px}.number-input.svelte-368zap{border-radius:4px;align-items:center;gap:4px;min-width:0;height:24px;padding:0 6px 0 0;display:flex;position:relative;overflow:hidden}.number-input.svelte-368zap:focus-within{border-color:var(--accent)}.fill.svelte-368zap{pointer-events:none;z-index:0;background:#4a4a4a;height:100%;position:absolute;top:0;left:0}.icon-slot.svelte-368zap{z-index:1;width:24px;height:24px;color:var(--text-dim);-webkit-user-select:none;user-select:none;flex:none;justify-content:center;align-items:center;font-size:11px;font-weight:500;display:flex;position:relative}.number-input.svelte-368zap .scrub-number{z-index:1}h3.svelte-1ol624f{letter-spacing:0;text-transform:none;color:#fff;margin:0 0 10px;font-size:11px;font-weight:400}.select-field.svelte-bczi6w{flex-direction:column;gap:4px;min-width:0;display:flex}.caption.svelte-bczi6w{letter-spacing:.27px;color:#ffffffb2;-webkit-user-select:none;user-select:none;font-size:9px;font-weight:500;line-height:14px}.select-input.svelte-bczi6w{border-radius:4px;align-items:center;gap:4px;min-width:0;height:24px;padding:0 6px 0 0;display:flex}.select-input.svelte-bczi6w:focus-within{border-color:var(--accent)}.icon-slot.svelte-bczi6w{width:24px;height:24px;color:var(--text-dim);-webkit-user-select:none;user-select:none;flex:none;justify-content:center;align-items:center;font-size:11px;font-weight:500;display:flex}select.svelte-bczi6w{width:100%;min-width:0;height:100%;color:var(--text);background:0 0;border:none;outline:none;flex:1;margin:0;padding:0;font-size:11px}section.svelte-m9vwwu{border-bottom:1px solid var(--border-soft);padding:12px}.hint.svelte-m9vwwu{color:var(--text-faint);margin:4px 0 0;font-size:11px}.info.svelte-m9vwwu{font-variant-numeric:tabular-nums;margin:0}.file.svelte-m9vwwu{color:var(--text-dim);word-break:break-all}section.svelte-1by8n8t{border-bottom:1px solid var(--border-soft);padding:12px}.field.svelte-1by8n8t{margin-bottom:8px}.fundus-slice.svelte-1820t2z{width:100%;height:100%;position:relative;overflow:hidden}.fundus-slice--overdraw.svelte-1820t2z{overflow:visible}.fundus-slice__paint.svelte-1820t2z{box-sizing:border-box;border-style:solid;border-width:0;pointer-events:none;border-image-repeat:stretch;position:absolute}.fundus-slice-canvas.svelte-xdsbrz{width:100%;height:100%;position:relative}canvas.svelte-xdsbrz{pointer-events:none;display:block;position:absolute}.fundus-chroma-key-video.svelte-r30mxh{width:100%;height:100%;position:relative}canvas.svelte-r30mxh,img.svelte-r30mxh{width:100%;height:100%;display:block}video.svelte-r30mxh{visibility:hidden;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.stage.svelte-10eps7e{border:1px solid var(--border);border-radius:8px;flex:1;justify-content:center;align-items:center;min-height:0;display:flex;overflow:auto}.stage.svelte-10eps7e img{object-fit:contain;max-width:90%;max-height:90%}img.svelte-gdduef{object-fit:contain;max-width:100%;max-height:100%}section.svelte-1yd7n22{border-bottom:1px solid var(--border-soft);padding:12px}.modes.svelte-1yd7n22{flex-direction:column;gap:4px;display:flex}.modes.svelte-1yd7n22 button:where(.svelte-1yd7n22){text-align:left;background:var(--panel-raised);color:var(--text);border-radius:var(--radius);border:1px solid #0000;padding:6px 10px}.modes.svelte-1yd7n22 button:where(.svelte-1yd7n22):hover{border-color:var(--border)}.modes.svelte-1yd7n22 button.on:where(.svelte-1yd7n22){background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}.insets.svelte-1yd7n22{grid-template-columns:1fr 1fr;gap:8px;min-width:0;display:grid}.insets.single.svelte-1yd7n22{grid-template-columns:1fr}.preview-panel.svelte-1mjaycs{flex-direction:column;height:100%;min-height:0;display:flex}.bar.svelte-1mjaycs{flex:none;align-items:center;gap:10px;padding:8px 0;display:flex}.size.svelte-1mjaycs{color:var(--text-dim);font-variant-numeric:tabular-nums}.backends.svelte-1mjaycs{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);gap:2px;margin-left:auto;padding:2px;display:inline-flex}.backends.svelte-1mjaycs button:where(.svelte-1mjaycs){color:var(--text-dim);background:0 0;border:none;border-radius:4px;padding:2px 8px}.backends.svelte-1mjaycs button.on:where(.svelte-1mjaycs){background:var(--accent-soft);color:var(--accent);font-weight:600}.reset.svelte-1mjaycs{background:var(--panel-raised);border:1px solid var(--border);color:var(--text);border-radius:var(--radius);padding:4px 10px}.reset.svelte-1mjaycs:hover{border-color:var(--accent)}.stage.svelte-1mjaycs{border:1px solid var(--border);border-radius:var(--radius-large);flex:1;min-height:0;padding:24px;overflow:auto}.box.svelte-1mjaycs{position:relative;box-shadow:0 0 0 1px #ffffff1f}.box.svelte-1mjaycs .fill{position:absolute;inset:0}.handle.svelte-1mjaycs{touch-action:none;background:0 0;position:absolute}.handle.edge-right.svelte-1mjaycs{cursor:ew-resize;width:10px;height:100%;top:0;right:-4px}.handle.edge-bottom.svelte-1mjaycs{cursor:ns-resize;width:100%;height:10px;bottom:-4px;left:0}.handle.corner.svelte-1mjaycs{cursor:nwse-resize;background:var(--accent);width:16px;height:16px;box-shadow:0 0 0 2px var(--canvas);border-radius:3px;bottom:-6px;right:-6px}.canvas.svelte-1jfrg6d{flex-direction:column;height:100%;min-height:0;display:flex}.toolbar.svelte-1jfrg6d{flex:none;align-items:center;gap:8px;padding:8px 0;display:flex}.toolbar.svelte-1jfrg6d button:where(.svelte-1jfrg6d){background:var(--panel-raised);border:1px solid var(--border);color:var(--text);border-radius:var(--radius);padding:4px 10px}.toolbar.svelte-1jfrg6d button:where(.svelte-1jfrg6d):hover{border-color:var(--accent)}.toolbar.svelte-1jfrg6d button.active:where(.svelte-1jfrg6d){background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.zoom.svelte-1jfrg6d{text-align:center;min-width:44px;color:var(--text-dim);font-variant-numeric:tabular-nums}.dims.svelte-1jfrg6d{color:var(--text-dim);font-variant-numeric:tabular-nums;margin-left:auto}.viewport.svelte-1jfrg6d{touch-action:none;cursor:grab;border:1px solid var(--border);border-radius:var(--radius-large);flex:1;min-height:0;position:relative;overflow:hidden}.viewport.panning.svelte-1jfrg6d{cursor:grabbing}.image-wrap.svelte-1jfrg6d{transform-origin:0 0;position:absolute;top:0;left:0;box-shadow:0 0 0 1px #ffffff14}.image-wrap.svelte-1jfrg6d img:where(.svelte-1jfrg6d){width:100%;height:100%;image-rendering:pixelated;pointer-events:none;-webkit-user-select:none;user-select:none;display:block}.center-rect.svelte-1jfrg6d{pointer-events:none;position:absolute}.center-rect.side-edges.svelte-1jfrg6d{border-left:1px dashed #0d99ff99;border-right:1px dashed #0d99ff99}.center-rect.cap-edges.svelte-1jfrg6d{border-top:1px dashed #0d99ff99;border-bottom:1px dashed #0d99ff99}.overdraw-band.svelte-1jfrg6d{pointer-events:none;background:#38bdf829;position:absolute}.line.svelte-1jfrg6d{background:var(--accent);touch-action:none;position:absolute}.line.overdraw-line.svelte-1jfrg6d{background:#38bdf8 padding-box content-box}.line.overdraw-line.svelte-1jfrg6d .tag:where(.svelte-1jfrg6d){background:#38bdf8}.line.v.svelte-1jfrg6d{cursor:ew-resize;box-sizing:content-box;background-clip:content-box;width:1px;height:100%;margin-left:-.5px;padding:0 7px;top:0;transform:translate(-7px)}.line.h.svelte-1jfrg6d{cursor:ns-resize;box-sizing:content-box;background-clip:content-box;width:100%;height:1px;margin-top:-.5px;padding:7px 0;left:0;transform:translateY(-7px)}.line.active.svelte-1jfrg6d{background-color:var(--text);background-clip:content-box}.tag.svelte-1jfrg6d{background:var(--accent);color:var(--text);font-variant-numeric:tabular-nums;pointer-events:none;border-radius:4px;padding:1px 5px;font-size:11px;font-weight:600;position:absolute}.line.v.svelte-1jfrg6d .tag:where(.svelte-1jfrg6d){top:4px;left:50%;transform:translate(-50%)}.line.h.svelte-1jfrg6d .tag:where(.svelte-1jfrg6d){top:50%;left:4px;transform:translateY(-50%)}.line.v.overdraw-line.svelte-1jfrg6d .tag:where(.svelte-1jfrg6d){top:auto;bottom:4px}.line.h.overdraw-line.svelte-1jfrg6d .tag:where(.svelte-1jfrg6d){left:auto;right:4px}.editor.svelte-1ea2lvt{flex-direction:column;flex:1;min-height:0;display:flex}.tabs.svelte-1ea2lvt{flex:none;gap:4px;margin-bottom:4px;display:inline-flex}.tabs.svelte-1ea2lvt button:where(.svelte-1ea2lvt){border-radius:var(--radius);color:var(--text-dim);background:0 0;border:none;padding:4px 10px}.tabs.svelte-1ea2lvt button.on:where(.svelte-1ea2lvt){background:var(--accent-soft);color:var(--accent)}.pane.svelte-1ea2lvt{flex:1;min-height:0}.empty.svelte-1ea2lvt{color:var(--text-dim);flex:1;justify-content:center;align-items:center;display:flex}section.svelte-ij1927{border-bottom:1px solid var(--border-soft);padding:12px}.field.svelte-ij1927{margin-bottom:8px}.stage.svelte-qls820{border:1px solid var(--border);border-radius:8px;flex:1;justify-content:center;align-items:center;min-height:0;display:flex;overflow:auto}.preview-column.svelte-qls820{flex-direction:column;align-items:center;gap:8px;display:flex}.video-frame.svelte-qls820{width:min(90%,480px)}.video-frame.svelte-qls820 video{width:100%;height:100%}p.svelte-qls820{color:var(--text-dim)}video.svelte-ejgo9x{object-fit:contain;max-width:100%;max-height:100%}.picker.svelte-56kutb{flex-direction:column;gap:4px;min-width:0;margin-bottom:8px;display:flex}.caption.svelte-56kutb{letter-spacing:.27px;color:#ffffffb2;-webkit-user-select:none;user-select:none;font-size:9px;font-weight:500;line-height:14px}.reference-input.svelte-56kutb{border-radius:4px;align-items:center;min-width:0;height:24px;padding:0;display:flex;position:relative}.reference-input.svelte-56kutb:focus-within{border-color:var(--accent)}.current.svelte-56kutb{min-width:0;height:100%;color:var(--text);text-align:left;background:0 0;border:none;outline:none;flex:1;align-items:center;gap:4px;padding:0 6px 0 0;display:flex}.current.empty.svelte-56kutb{color:var(--text-faint)}.preview-slot.svelte-56kutb{box-sizing:border-box;background:#4a4a4a;border-radius:3px 0 0 3px;flex:none;justify-content:center;align-items:center;width:24px;height:24px;margin-left:-1px;padding:2px;display:flex;overflow:hidden}.preview.svelte-56kutb{object-fit:contain;width:100%;height:100%}.missing-preview.svelte-56kutb{color:var(--warning);font-weight:700}.clear.svelte-56kutb{border:none;border-left:1px solid var(--border-soft);width:24px;height:24px;color:var(--text-dim);background:0 0;border-radius:0 3px 3px 0;outline:none;flex:none;padding:0}.clear.svelte-56kutb:hover{color:var(--danger)}.id.svelte-56kutb,.placeholder.svelte-56kutb{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dangling.svelte-56kutb{color:var(--warning)}.dropdown.svelte-56kutb{z-index:10;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);max-height:240px;padding:4px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #00000080}.option.svelte-56kutb{border-radius:var(--radius);width:100%;color:var(--text);text-align:left;background:0 0;border:none;align-items:center;gap:6px;padding:4px 6px;display:flex}.option.svelte-56kutb .thumbnail:where(.svelte-56kutb){object-fit:contain;background:var(--canvas);border-radius:3px;flex:none;width:24px;height:24px}.option.svelte-56kutb:hover{background:var(--panel-raised)}.option.selected.svelte-56kutb{background:var(--accent-soft);color:var(--accent)}.hint.svelte-56kutb{color:var(--text-faint);margin:4px;font-size:11px}.color-field.svelte-gjs979{flex-direction:column;gap:4px;min-width:0;display:flex}.caption.svelte-gjs979{letter-spacing:.27px;color:#ffffffb2;-webkit-user-select:none;user-select:none;font-size:9px;font-weight:500;line-height:14px}.color-input.svelte-gjs979{border-radius:4px;align-items:center;gap:4px;min-width:0;height:24px;padding:0 6px 0 0;display:flex}.color-input.svelte-gjs979:focus-within{border-color:var(--accent)}.swatch-slot.svelte-gjs979{flex:none;justify-content:center;align-items:center;width:24px;height:24px;display:flex}.swatch.svelte-gjs979{cursor:pointer;background:0 0;border:1px solid #ffffff3d;border-radius:3px;width:16px;height:16px;margin:0;padding:0;overflow:hidden}.swatch.svelte-gjs979::-webkit-color-swatch-wrapper{padding:0}.swatch.svelte-gjs979::-webkit-color-swatch{border:none}.hex-input.svelte-gjs979{width:100%;min-width:0;color:var(--text);font-variant-numeric:tabular-nums;text-transform:uppercase;background:0 0;border:none;outline:none;flex:1;margin:0;padding:0;font-size:11px}section.svelte-rsjkek{border-bottom:1px solid var(--border-soft);padding:12px}.field.svelte-rsjkek{margin-bottom:8px}.stage.svelte-1y3xro5{border:1px solid var(--border);border-radius:8px;flex:1;justify-content:center;align-items:center;min-height:0;display:flex;overflow:auto}.preview-column.svelte-1y3xro5{flex-direction:column;align-items:center;gap:8px;display:flex}.compare-row.svelte-1y3xro5{justify-content:center;align-items:flex-start;gap:16px;width:100%;max-width:760px;display:flex}figure.svelte-1y3xro5{flex-direction:column;flex:1 1 0;align-items:center;gap:6px;min-width:0;margin:0;display:flex}figcaption.svelte-1y3xro5{text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);font-size:10px}.video-frame.svelte-1y3xro5{width:100%}.video-frame.svelte-1y3xro5 video{width:100%;height:100%}p.svelte-1y3xro5{color:var(--text-dim)}section.svelte-3jblpy{border-bottom:1px solid var(--border-soft);padding:12px}.field.svelte-3jblpy{margin-bottom:8px}.backdrop.svelte-1f5yh58{z-index:100;background:#0000008c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog.svelte-1f5yh58{background:var(--panel);border:1px solid var(--border);border-radius:8px;width:360px;padding:16px;box-shadow:0 12px 32px #00000080}h2.svelte-1f5yh58{margin:0 0 4px;font-size:12px}.file-name.svelte-1f5yh58{color:var(--text-dim);font-variant-numeric:tabular-nums;margin:0}.destination.svelte-1f5yh58{color:var(--text-faint);margin:2px 0 16px}.row.svelte-1f5yh58{align-items:center;gap:8px;margin-bottom:8px;display:flex}.label.svelte-1f5yh58{width:64px;color:var(--text-dim);flex:none}.row.svelte-1f5yh58 input:where(.svelte-1f5yh58){flex:1}.row.manifests.svelte-1f5yh58{align-items:flex-start}.row.manifests.svelte-1f5yh58>.label:where(.svelte-1f5yh58){line-height:28px}.manifest-list.svelte-1f5yh58{flex:1;max-height:132px;overflow-y:auto}.empty-manifests.svelte-1f5yh58{color:var(--text-faint);margin:0;font-size:11px}.segmented.svelte-1f5yh58{border:1px solid var(--border);border-radius:var(--radius);display:inline-flex;overflow:hidden}.segmented.svelte-1f5yh58 button:where(.svelte-1f5yh58){background:var(--panel-raised);color:var(--text-dim);border:none;padding:4px 12px}.segmented.svelte-1f5yh58 button.on:where(.svelte-1f5yh58){background:var(--accent);color:var(--text)}.hint.svelte-1f5yh58{color:var(--text-dim);margin:4px 0 0;font-size:11px}.hint.warn.svelte-1f5yh58,.error.svelte-1f5yh58{color:var(--warning)}.actions.svelte-1f5yh58{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.backdrop.svelte-n5o24b{z-index:100;background:#0000008c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog.svelte-n5o24b{border:1px solid var(--border);background:var(--panel);border-radius:8px;width:420px;padding:16px;box-shadow:0 12px 32px #00000080}h2.svelte-n5o24b{margin:0 0 4px;font-size:12px}.destination.svelte-n5o24b{color:var(--text-faint);margin:0 0 16px}.row.svelte-n5o24b{gap:12px;display:flex}.field.svelte-n5o24b{color:var(--text-dim);flex-direction:column;flex:1;gap:4px;margin-bottom:10px;display:flex}.field.wide.svelte-n5o24b{width:100%}.warning.svelte-n5o24b{color:var(--warning);margin:6px 0 0;font-size:11px}.actions.svelte-n5o24b{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.directory.svelte-ftwms1{background:var(--panel);border-right:1px solid var(--border);flex-direction:column;width:220px;min-width:180px;max-width:320px;min-height:0;display:flex}header.svelte-ftwms1{border-bottom:1px solid var(--border-soft);align-items:center;height:40px;padding:0 8px 0 12px;display:flex}header.svelte-ftwms1 strong:where(.svelte-ftwms1){font-size:11px}.actions.svelte-ftwms1{margin-left:auto;display:flex}.icon-button.svelte-ftwms1{width:24px;height:24px;color:var(--text-dim);border-radius:var(--radius-small);background:0 0;border:0}.icon-button.svelte-ftwms1:hover:not(:disabled){background:var(--panel-raised);color:var(--text)}.icon-button.danger.svelte-ftwms1:hover:not(:disabled){color:var(--danger)}.icon-button.svelte-ftwms1:disabled{opacity:.3;cursor:default}.tree.svelte-ftwms1{padding:6px 4px;overflow:auto}.folder-row.svelte-ftwms1,.asset-row.svelte-ftwms1{padding-left:calc((var(--depth) + 2) * 14px);display:flex}.row.svelte-ftwms1{color:var(--text-dim);border-radius:var(--radius-small);text-align:left;background:0 0;border:0;align-items:center;gap:6px;min-width:0;height:28px;display:flex}.row.special.svelte-ftwms1{width:100%;padding:0 8px}.row.folder.svelte-ftwms1{flex:1;padding:0 8px 0 2px}.row.asset.svelte-ftwms1{cursor:grab;flex:1;padding:0 8px 0 2px}.row.asset.svelte-ftwms1:active{cursor:grabbing}.row.svelte-ftwms1:hover,.row.selected.svelte-ftwms1{background:var(--panel-raised);color:var(--text)}.row.asset.current.svelte-ftwms1,.row.selected.svelte-ftwms1{background:var(--accent-soft);color:var(--accent)}.row.drop-target.svelte-ftwms1{outline:1px solid var(--accent);background:var(--accent-soft)}.glyph.svelte-ftwms1{width:14px;color:var(--text-faint);flex:none;justify-content:center;align-items:center;display:flex}.asset-glyph.svelte-ftwms1{font-size:7px}.asset-warning.svelte-ftwms1{color:var(--warning);flex:none;margin-left:auto}.label.svelte-ftwms1{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.count.svelte-ftwms1{color:var(--text-faint);margin-left:auto;font-size:10px}.dialog-row.svelte-ftwms1{align-items:center;gap:8px;display:flex}.dialog-row.svelte-ftwms1 span:where(.svelte-ftwms1){width:44px;color:var(--text-dim)}.dialog-row.svelte-ftwms1 input:where(.svelte-ftwms1){flex:1}.dialog-path.svelte-ftwms1,.dialog-text.svelte-ftwms1,.dialog-warning.svelte-ftwms1{margin:8px 0 0}.dialog-path.svelte-ftwms1{color:var(--text-faint)}.dialog-warning.svelte-ftwms1{color:var(--warning)}.context-menu.svelte-10jgqdh{z-index:200;background:var(--panel-raised);border:1px solid var(--border);border-radius:6px;width:168px;padding:4px;position:fixed;box-shadow:0 8px 24px #00000073}button.svelte-10jgqdh{width:100%;color:var(--text);font:inherit;text-align:left;background:0 0;border:0;border-radius:4px;padding:6px 8px}button.svelte-10jgqdh:hover,button.svelte-10jgqdh:focus-visible{background:var(--accent-soft);outline:none}button.danger.svelte-10jgqdh{color:var(--danger)}hr.svelte-10jgqdh{background:var(--border);border:0;height:1px;margin:4px 8px}
1
+ .playback.svelte-nchstv{align-items:center;gap:6px;width:100%;display:flex}.btn.svelte-nchstv{background:var(--panel-raised);border-radius:var(--radius);width:28px;height:28px;color:var(--text);border:1px solid #0000;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.btn.svelte-nchstv:hover:not(:disabled){border-color:var(--border)}.btn.svelte-nchstv:focus-visible{border-color:var(--accent);outline:none}.btn.svelte-nchstv:disabled{opacity:.4;cursor:not-allowed}.btn.active.svelte-nchstv{background:var(--accent-soft);color:var(--accent)}.btn.svelte-nchstv svg:where(.svelte-nchstv){width:16px;height:16px;display:block}.time.svelte-nchstv{color:var(--text-dim);font-variant-numeric:tabular-nums;flex:none;font-size:11px}.volume-group.svelte-nchstv{align-items:center;gap:6px;margin-left:auto;display:inline-flex}.range.svelte-nchstv{appearance:none;background:var(--panel-raised);cursor:pointer;border-radius:999px;height:4px}.range.scrub.svelte-nchstv{flex:1;min-width:0;margin:0 2px}.range.volume.svelte-nchstv{flex:none;width:72px}.range.svelte-nchstv:disabled{opacity:.4;cursor:not-allowed}.range.svelte-nchstv::-webkit-slider-thumb{appearance:none;background:var(--accent);border:none;border-radius:50%;width:12px;height:12px}.range.svelte-nchstv::-moz-range-thumb{background:var(--accent);border:none;border-radius:50%;width:12px;height:12px}.range.svelte-nchstv:focus-visible{outline:none}.range.svelte-nchstv:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 3px var(--accent-soft)}.range.svelte-nchstv:focus-visible::-moz-range-thumb{box-shadow:0 0 0 3px var(--accent-soft)}.audio-waveform.svelte-1liihyn{flex-direction:column;gap:8px;width:100%;height:100%;min-height:0;display:flex}.wave.svelte-1liihyn{cursor:pointer;touch-action:none;flex:1;width:100%;min-height:0;display:block}.footer.svelte-1liihyn{flex:none;align-items:center;display:flex}.stage.svelte-1ww4cvx{border:1px solid var(--border);border-radius:8px;flex:1;justify-content:center;align-items:center;min-height:0;display:flex;overflow:auto}.audio-frame.svelte-1ww4cvx{width:min(90%,480px);height:128px}p.svelte-1ww4cvx{color:var(--text-dim)}.scrub-number.svelte-nhap92{flex:1;min-width:0;display:flex;position:relative}.input.svelte-nhap92{width:100%;min-width:0;color:var(--text);font-variant-numeric:tabular-nums;appearance:textfield;background:0 0;border:none;outline:none;flex:1;margin:0;padding:0;font-size:11px}.scrub-number.with-suffix.svelte-nhap92 .input:where(.svelte-nhap92){flex:none}.suffix.svelte-nhap92{color:var(--text-dim);font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none;flex:none;margin-left:2px;font-size:11px}.scrub-number.right.svelte-nhap92 .input:where(.svelte-nhap92){text-align:right}.input.svelte-nhap92::-webkit-outer-spin-button{appearance:none;margin:0}.input.svelte-nhap92::-webkit-inner-spin-button{appearance:none;margin:0}.scrub-surface.svelte-nhap92{cursor:ew-resize;touch-action:none;position:absolute;inset:0}.number-field.svelte-368zap{flex-direction:column;gap:4px;min-width:0;display:flex}.caption.svelte-368zap{letter-spacing:.27px;color:#ffffffb2;-webkit-user-select:none;user-select:none;font-size:9px;font-weight:500;line-height:14px}.number-input.svelte-368zap{border-radius:4px;align-items:center;gap:4px;min-width:0;height:24px;padding:0 6px 0 0;display:flex;position:relative;overflow:hidden}.number-input.svelte-368zap:focus-within{border-color:var(--accent)}.fill.svelte-368zap{pointer-events:none;z-index:0;background:#4a4a4a;height:100%;position:absolute;top:0;left:0}.icon-slot.svelte-368zap{z-index:1;width:24px;height:24px;color:var(--text-dim);-webkit-user-select:none;user-select:none;flex:none;justify-content:center;align-items:center;font-size:11px;font-weight:500;display:flex;position:relative}.number-input.svelte-368zap .scrub-number{z-index:1}h3.svelte-1ol624f{letter-spacing:0;text-transform:none;color:#fff;margin:0 0 10px;font-size:11px;font-weight:400}.select-field.svelte-bczi6w{flex-direction:column;gap:4px;min-width:0;display:flex}.caption.svelte-bczi6w{letter-spacing:.27px;color:#ffffffb2;-webkit-user-select:none;user-select:none;font-size:9px;font-weight:500;line-height:14px}.select-input.svelte-bczi6w{border-radius:4px;align-items:center;gap:4px;min-width:0;height:24px;padding:0 6px 0 0;display:flex}.select-input.svelte-bczi6w:focus-within{border-color:var(--accent)}.icon-slot.svelte-bczi6w{width:24px;height:24px;color:var(--text-dim);-webkit-user-select:none;user-select:none;flex:none;justify-content:center;align-items:center;font-size:11px;font-weight:500;display:flex}select.svelte-bczi6w{width:100%;min-width:0;height:100%;color:var(--text);background:0 0;border:none;outline:none;flex:1;margin:0;padding:0;font-size:11px}section.svelte-m9vwwu{border-bottom:1px solid var(--border-soft);padding:12px}.hint.svelte-m9vwwu{color:var(--text-faint);margin:4px 0 0;font-size:11px}.info.svelte-m9vwwu{font-variant-numeric:tabular-nums;margin:0}.file.svelte-m9vwwu{color:var(--text-dim);word-break:break-all}section.svelte-1by8n8t{border-bottom:1px solid var(--border-soft);padding:12px}.field.svelte-1by8n8t{margin-bottom:8px}.fundus-slice.svelte-1820t2z{width:100%;height:100%;position:relative;overflow:hidden}.fundus-slice--overdraw.svelte-1820t2z{overflow:visible}.fundus-slice__paint.svelte-1820t2z{box-sizing:border-box;border-style:solid;border-width:0;pointer-events:none;border-image-repeat:stretch;position:absolute}.fundus-slice-canvas.svelte-xdsbrz{width:100%;height:100%;position:relative}canvas.svelte-xdsbrz{pointer-events:none;display:block;position:absolute}.fundus-chroma-key-video.svelte-r30mxh{width:100%;height:100%;position:relative}canvas.svelte-r30mxh,img.svelte-r30mxh{width:100%;height:100%;display:block}video.svelte-r30mxh{visibility:hidden;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.stage.svelte-10eps7e{border:1px solid var(--border);border-radius:8px;flex:1;justify-content:center;align-items:center;min-height:0;display:flex;overflow:auto}.stage.svelte-10eps7e img{object-fit:contain;max-width:90%;max-height:90%}img.svelte-gdduef{object-fit:contain;max-width:100%;max-height:100%}section.svelte-1yd7n22{border-bottom:1px solid var(--border-soft);padding:12px}.modes.svelte-1yd7n22{flex-direction:column;gap:4px;display:flex}.modes.svelte-1yd7n22 button:where(.svelte-1yd7n22){text-align:left;background:var(--panel-raised);color:var(--text);border-radius:var(--radius);border:1px solid #0000;padding:6px 10px}.modes.svelte-1yd7n22 button:where(.svelte-1yd7n22):hover{border-color:var(--border)}.modes.svelte-1yd7n22 button.on:where(.svelte-1yd7n22){background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}.insets.svelte-1yd7n22{grid-template-columns:1fr 1fr;gap:8px;min-width:0;display:grid}.insets.single.svelte-1yd7n22{grid-template-columns:1fr}.preview-panel.svelte-1mjaycs{flex-direction:column;height:100%;min-height:0;display:flex}.bar.svelte-1mjaycs{flex:none;align-items:center;gap:10px;padding:8px 0;display:flex}.size.svelte-1mjaycs{color:var(--text-dim);font-variant-numeric:tabular-nums}.backends.svelte-1mjaycs{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);gap:2px;margin-left:auto;padding:2px;display:inline-flex}.backends.svelte-1mjaycs button:where(.svelte-1mjaycs){color:var(--text-dim);background:0 0;border:none;border-radius:4px;padding:2px 8px}.backends.svelte-1mjaycs button.on:where(.svelte-1mjaycs){background:var(--accent-soft);color:var(--accent);font-weight:600}.reset.svelte-1mjaycs{background:var(--panel-raised);border:1px solid var(--border);color:var(--text);border-radius:var(--radius);padding:4px 10px}.reset.svelte-1mjaycs:hover{border-color:var(--accent)}.stage.svelte-1mjaycs{border:1px solid var(--border);border-radius:var(--radius-large);flex:1;min-height:0;padding:24px;overflow:auto}.box.svelte-1mjaycs{position:relative;box-shadow:0 0 0 1px #ffffff1f}.box.svelte-1mjaycs .fill{position:absolute;inset:0}.handle.svelte-1mjaycs{touch-action:none;background:0 0;position:absolute}.handle.edge-right.svelte-1mjaycs{cursor:ew-resize;width:10px;height:100%;top:0;right:-4px}.handle.edge-bottom.svelte-1mjaycs{cursor:ns-resize;width:100%;height:10px;bottom:-4px;left:0}.handle.corner.svelte-1mjaycs{cursor:nwse-resize;background:var(--accent);width:16px;height:16px;box-shadow:0 0 0 2px var(--canvas);border-radius:3px;bottom:-6px;right:-6px}.canvas.svelte-1jfrg6d{flex-direction:column;height:100%;min-height:0;display:flex}.toolbar.svelte-1jfrg6d{flex:none;align-items:center;gap:8px;padding:8px 0;display:flex}.toolbar.svelte-1jfrg6d button:where(.svelte-1jfrg6d){background:var(--panel-raised);border:1px solid var(--border);color:var(--text);border-radius:var(--radius);padding:4px 10px}.toolbar.svelte-1jfrg6d button:where(.svelte-1jfrg6d):hover{border-color:var(--accent)}.toolbar.svelte-1jfrg6d button.active:where(.svelte-1jfrg6d){background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.zoom.svelte-1jfrg6d{text-align:center;min-width:44px;color:var(--text-dim);font-variant-numeric:tabular-nums}.dims.svelte-1jfrg6d{color:var(--text-dim);font-variant-numeric:tabular-nums;margin-left:auto}.viewport.svelte-1jfrg6d{touch-action:none;cursor:grab;border:1px solid var(--border);border-radius:var(--radius-large);flex:1;min-height:0;position:relative;overflow:hidden}.viewport.panning.svelte-1jfrg6d{cursor:grabbing}.image-wrap.svelte-1jfrg6d{transform-origin:0 0;position:absolute;top:0;left:0;box-shadow:0 0 0 1px #ffffff14}.image-wrap.svelte-1jfrg6d img:where(.svelte-1jfrg6d){width:100%;height:100%;image-rendering:pixelated;pointer-events:none;-webkit-user-select:none;user-select:none;display:block}.center-rect.svelte-1jfrg6d{pointer-events:none;position:absolute}.center-rect.side-edges.svelte-1jfrg6d{border-left:1px dashed #0d99ff99;border-right:1px dashed #0d99ff99}.center-rect.cap-edges.svelte-1jfrg6d{border-top:1px dashed #0d99ff99;border-bottom:1px dashed #0d99ff99}.overdraw-band.svelte-1jfrg6d{pointer-events:none;background:#38bdf829;position:absolute}.line.svelte-1jfrg6d{background:var(--accent);touch-action:none;position:absolute}.line.overdraw-line.svelte-1jfrg6d{background:#38bdf8 padding-box content-box}.line.overdraw-line.svelte-1jfrg6d .tag:where(.svelte-1jfrg6d){background:#38bdf8}.line.v.svelte-1jfrg6d{cursor:ew-resize;box-sizing:content-box;background-clip:content-box;width:1px;height:100%;margin-left:-.5px;padding:0 7px;top:0;transform:translate(-7px)}.line.h.svelte-1jfrg6d{cursor:ns-resize;box-sizing:content-box;background-clip:content-box;width:100%;height:1px;margin-top:-.5px;padding:7px 0;left:0;transform:translateY(-7px)}.line.active.svelte-1jfrg6d{background-color:var(--text);background-clip:content-box}.tag.svelte-1jfrg6d{background:var(--accent);color:var(--text);font-variant-numeric:tabular-nums;pointer-events:none;border-radius:4px;padding:1px 5px;font-size:11px;font-weight:600;position:absolute}.line.v.svelte-1jfrg6d .tag:where(.svelte-1jfrg6d){top:4px;left:50%;transform:translate(-50%)}.line.h.svelte-1jfrg6d .tag:where(.svelte-1jfrg6d){top:50%;left:4px;transform:translateY(-50%)}.line.v.overdraw-line.svelte-1jfrg6d .tag:where(.svelte-1jfrg6d){top:auto;bottom:4px}.line.h.overdraw-line.svelte-1jfrg6d .tag:where(.svelte-1jfrg6d){left:auto;right:4px}.editor.svelte-1ea2lvt{flex-direction:column;flex:1;min-height:0;display:flex}.tabs.svelte-1ea2lvt{flex:none;gap:4px;margin-bottom:4px;display:inline-flex}.tabs.svelte-1ea2lvt button:where(.svelte-1ea2lvt){border-radius:var(--radius);color:var(--text-dim);background:0 0;border:none;padding:4px 10px}.tabs.svelte-1ea2lvt button.on:where(.svelte-1ea2lvt){background:var(--accent-soft);color:var(--accent)}.pane.svelte-1ea2lvt{flex:1;min-height:0}.empty.svelte-1ea2lvt{color:var(--text-dim);flex:1;justify-content:center;align-items:center;display:flex}section.svelte-ij1927{border-bottom:1px solid var(--border-soft);padding:12px}.field.svelte-ij1927{margin-bottom:8px}.stage.svelte-qls820{border:1px solid var(--border);border-radius:8px;flex:1;justify-content:center;align-items:center;min-height:0;display:flex;overflow:auto}.preview-column.svelte-qls820{flex-direction:column;align-items:center;gap:8px;display:flex}.video-frame.svelte-qls820{width:min(90%,480px)}.video-frame.svelte-qls820 video{width:100%;height:100%}p.svelte-qls820{color:var(--text-dim)}video.svelte-ejgo9x{object-fit:contain;max-width:100%;max-height:100%}.picker.svelte-56kutb{flex-direction:column;gap:4px;min-width:0;margin-bottom:8px;display:flex}.caption.svelte-56kutb{letter-spacing:.27px;color:#ffffffb2;-webkit-user-select:none;user-select:none;font-size:9px;font-weight:500;line-height:14px}.reference-input.svelte-56kutb{border-radius:4px;align-items:center;min-width:0;height:24px;padding:0;display:flex;position:relative}.reference-input.svelte-56kutb:focus-within{border-color:var(--accent)}.current.svelte-56kutb{min-width:0;height:100%;color:var(--text);text-align:left;background:0 0;border:none;outline:none;flex:1;align-items:center;gap:4px;padding:0 6px 0 0;display:flex}.current.empty.svelte-56kutb{color:var(--text-faint)}.preview-slot.svelte-56kutb{box-sizing:border-box;background:#4a4a4a;border-radius:3px 0 0 3px;flex:none;justify-content:center;align-items:center;width:24px;height:24px;margin-left:-1px;padding:2px;display:flex;overflow:hidden}.preview.svelte-56kutb{object-fit:contain;width:100%;height:100%}.missing-preview.svelte-56kutb{color:var(--warning);font-weight:700}.clear.svelte-56kutb{border:none;border-left:1px solid var(--border-soft);width:24px;height:24px;color:var(--text-dim);background:0 0;border-radius:0 3px 3px 0;outline:none;flex:none;padding:0}.clear.svelte-56kutb:hover{color:var(--danger)}.id.svelte-56kutb,.placeholder.svelte-56kutb{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dangling.svelte-56kutb{color:var(--warning)}.dropdown.svelte-56kutb{z-index:10;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);max-height:240px;padding:4px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #00000080}.option.svelte-56kutb{border-radius:var(--radius);width:100%;color:var(--text);text-align:left;background:0 0;border:none;align-items:center;gap:6px;padding:4px 6px;display:flex}.option.svelte-56kutb .thumbnail:where(.svelte-56kutb){object-fit:contain;background:var(--canvas);border-radius:3px;flex:none;width:24px;height:24px}.option.svelte-56kutb:hover{background:var(--panel-raised)}.option.selected.svelte-56kutb{background:var(--accent-soft);color:var(--accent)}.hint.svelte-56kutb{color:var(--text-faint);margin:4px;font-size:11px}.color-field.svelte-gjs979{flex-direction:column;gap:4px;min-width:0;display:flex}.caption.svelte-gjs979{letter-spacing:.27px;color:#ffffffb2;-webkit-user-select:none;user-select:none;font-size:9px;font-weight:500;line-height:14px}.color-input.svelte-gjs979{border-radius:4px;align-items:center;gap:4px;min-width:0;height:24px;padding:0 6px 0 0;display:flex}.color-input.svelte-gjs979:focus-within{border-color:var(--accent)}.swatch-slot.svelte-gjs979{flex:none;justify-content:center;align-items:center;width:24px;height:24px;display:flex}.swatch.svelte-gjs979{cursor:pointer;background:0 0;border:1px solid #ffffff3d;border-radius:3px;width:16px;height:16px;margin:0;padding:0;overflow:hidden}.swatch.svelte-gjs979::-webkit-color-swatch-wrapper{padding:0}.swatch.svelte-gjs979::-webkit-color-swatch{border:none}.hex-input.svelte-gjs979{width:100%;min-width:0;color:var(--text);font-variant-numeric:tabular-nums;text-transform:uppercase;background:0 0;border:none;outline:none;flex:1;margin:0;padding:0;font-size:11px}section.svelte-rsjkek{border-bottom:1px solid var(--border-soft);padding:12px}.field.svelte-rsjkek{margin-bottom:8px}.stage.svelte-1y3xro5{border:1px solid var(--border);border-radius:8px;flex:1;justify-content:center;align-items:center;min-height:0;display:flex;overflow:auto}.preview-column.svelte-1y3xro5{flex-direction:column;align-items:center;gap:8px;display:flex}.compare-row.svelte-1y3xro5{justify-content:center;align-items:flex-start;gap:16px;width:100%;max-width:760px;display:flex}figure.svelte-1y3xro5{flex-direction:column;flex:1 1 0;align-items:center;gap:6px;min-width:0;margin:0;display:flex}figcaption.svelte-1y3xro5{text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);font-size:10px}.video-frame.svelte-1y3xro5{width:100%}.video-frame.svelte-1y3xro5 video{width:100%;height:100%}p.svelte-1y3xro5{color:var(--text-dim)}section.svelte-3jblpy{border-bottom:1px solid var(--border-soft);padding:12px}.field.svelte-3jblpy{margin-bottom:8px}.backdrop.svelte-1f5yh58{z-index:100;background:#0000008c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog.svelte-1f5yh58{background:var(--panel);border:1px solid var(--border);border-radius:8px;width:360px;padding:16px;box-shadow:0 12px 32px #00000080}h2.svelte-1f5yh58{margin:0 0 4px;font-size:12px}.file-name.svelte-1f5yh58{color:var(--text-dim);font-variant-numeric:tabular-nums;margin:0}.destination.svelte-1f5yh58{color:var(--text-faint);margin:2px 0 16px}.row.svelte-1f5yh58{align-items:center;gap:8px;margin-bottom:8px;display:flex}.label.svelte-1f5yh58{width:64px;color:var(--text-dim);flex:none}.row.svelte-1f5yh58 input:where(.svelte-1f5yh58){flex:1}.row.manifests.svelte-1f5yh58{align-items:flex-start}.row.manifests.svelte-1f5yh58>.label:where(.svelte-1f5yh58){line-height:28px}.manifest-list.svelte-1f5yh58{flex:1;max-height:132px;overflow-y:auto}.empty-manifests.svelte-1f5yh58{color:var(--text-faint);margin:0;font-size:11px}.segmented.svelte-1f5yh58{border:1px solid var(--border);border-radius:var(--radius);display:inline-flex;overflow:hidden}.segmented.svelte-1f5yh58 button:where(.svelte-1f5yh58){background:var(--panel-raised);color:var(--text-dim);border:none;padding:4px 12px}.segmented.svelte-1f5yh58 button.on:where(.svelte-1f5yh58){background:var(--accent);color:var(--text)}.hint.svelte-1f5yh58{color:var(--text-dim);margin:4px 0 0;font-size:11px}.hint.warn.svelte-1f5yh58,.error.svelte-1f5yh58{color:var(--warning)}.actions.svelte-1f5yh58{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.backdrop.svelte-n5o24b{z-index:100;background:#0000008c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog.svelte-n5o24b{border:1px solid var(--border);background:var(--panel);border-radius:8px;width:420px;padding:16px;box-shadow:0 12px 32px #00000080}h2.svelte-n5o24b{margin:0 0 4px;font-size:12px}.destination.svelte-n5o24b{color:var(--text-faint);margin:0 0 16px}.row.svelte-n5o24b{gap:12px;display:flex}.field.svelte-n5o24b{color:var(--text-dim);flex-direction:column;flex:1;gap:4px;margin-bottom:10px;display:flex}.field.wide.svelte-n5o24b{width:100%}.warning.svelte-n5o24b{color:var(--warning);margin:6px 0 0;font-size:11px}.actions.svelte-n5o24b{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.directory.svelte-ftwms1{background:var(--panel);border-right:1px solid var(--border);flex-direction:column;width:220px;min-width:180px;max-width:320px;min-height:0;display:flex}header.svelte-ftwms1{border-bottom:1px solid var(--border-soft);align-items:center;height:40px;padding:0 8px 0 12px;display:flex}header.svelte-ftwms1 strong:where(.svelte-ftwms1){font-size:11px}.actions.svelte-ftwms1{margin-left:auto;display:flex}.icon-button.svelte-ftwms1{width:24px;height:24px;color:var(--text-dim);border-radius:var(--radius-small);background:0 0;border:0}.icon-button.svelte-ftwms1:hover:not(:disabled){background:var(--panel-raised);color:var(--text)}.icon-button.danger.svelte-ftwms1:hover:not(:disabled){color:var(--danger)}.icon-button.svelte-ftwms1:disabled{opacity:.3;cursor:default}.tree.svelte-ftwms1{padding:6px 4px;overflow:auto}.folder-row.svelte-ftwms1,.asset-row.svelte-ftwms1{padding-left:calc((var(--depth) + 2) * 14px);display:flex}.row.svelte-ftwms1{color:var(--text-dim);border-radius:var(--radius-small);text-align:left;background:0 0;border:0;align-items:center;gap:6px;min-width:0;height:28px;display:flex}.row.special.svelte-ftwms1{width:100%;padding:0 8px}.row.folder.svelte-ftwms1{flex:1;padding:0 8px 0 2px}.row.asset.svelte-ftwms1{cursor:grab;flex:1;padding:0 8px 0 2px}.row.asset.svelte-ftwms1:active{cursor:grabbing}.row.svelte-ftwms1:hover,.row.selected.svelte-ftwms1{background:var(--panel-raised);color:var(--text)}.row.asset.current.svelte-ftwms1,.row.selected.svelte-ftwms1{background:var(--accent-soft);color:var(--accent)}.row.drop-target.svelte-ftwms1{outline:1px solid var(--accent);background:var(--accent-soft)}.glyph.svelte-ftwms1{width:14px;color:var(--text-faint);flex:none;justify-content:center;align-items:center;display:flex}.asset-glyph.svelte-ftwms1{font-size:7px}.asset-warning.svelte-ftwms1{color:var(--warning);flex:none;margin-left:auto}.label.svelte-ftwms1{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.count.svelte-ftwms1{color:var(--text-faint);margin-left:auto;font-size:10px}.dialog-row.svelte-ftwms1{align-items:center;gap:8px;display:flex}.dialog-row.svelte-ftwms1 span:where(.svelte-ftwms1){width:44px;color:var(--text-dim)}.dialog-row.svelte-ftwms1 input:where(.svelte-ftwms1){flex:1}.dialog-path.svelte-ftwms1,.dialog-text.svelte-ftwms1,.dialog-warning.svelte-ftwms1{margin:8px 0 0}.dialog-path.svelte-ftwms1{color:var(--text-faint)}.dialog-warning.svelte-ftwms1{color:var(--warning)}.context-menu.svelte-10jgqdh{z-index:200;background:var(--panel-raised);border:1px solid var(--border);border-radius:6px;width:168px;padding:4px;position:fixed;box-shadow:0 8px 24px #00000073}button.svelte-10jgqdh{width:100%;color:var(--text);font:inherit;text-align:left;background:0 0;border:0;border-radius:4px;padding:6px 8px}button.svelte-10jgqdh:hover,button.svelte-10jgqdh:focus-visible{background:var(--accent-soft);outline:none}button.danger.svelte-10jgqdh{color:var(--danger)}hr.svelte-10jgqdh{background:var(--border);border:0;height:1px;margin:4px 8px}.source-menu.svelte-1c64lfa{gap:2px;width:240px;max-width:100%;display:grid}button.svelte-1c64lfa{border-radius:var(--radius-small);width:100%;color:var(--text);text-align:left;background:0 0;border:0;flex-direction:column;gap:1px;padding:8px;display:flex}button.svelte-1c64lfa:hover,button.svelte-1c64lfa:focus-visible{background:var(--accent-soft);outline:none}span.svelte-1c64lfa{color:var(--text-dim);font-size:11px;font-weight:400}
@@ -0,0 +1 @@
1
+ .backdrop.svelte-oozc38{z-index:100;background:#0000008c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog.svelte-oozc38{background:var(--panel);border:1px solid var(--border);border-radius:8px;width:360px;padding:16px;box-shadow:0 12px 32px #00000080}h2.svelte-oozc38{margin:0 0 12px;font-size:12px}.actions.svelte-oozc38{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.popover-anchor.svelte-1rznwff{display:inline-flex;position:relative}.popover.svelte-1rznwff{z-index:10;background:var(--panel-raised);border:1px solid var(--border);border-radius:var(--radius);padding:4px;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 8px 24px #0006}.popover.right.svelte-1rznwff:not(.floating){left:auto;right:0}.popover.panel-surface.svelte-1rznwff{background:var(--panel)}.popover.compact-padding.svelte-1rznwff{padding:4px}.popover.match-trigger-width.svelte-1rznwff:not(.floating){width:100%}.popover.floating.svelte-1rznwff{z-index:1000;position:fixed;top:0;left:0;right:auto}
@@ -0,0 +1,108 @@
1
+ import{$ as e,A as t,B as n,C as r,D as i,F as a,I as o,J as s,L as c,M as l,N as u,O as d,P as f,Q as p,R as m,T as h,U as g,V as _,W as v,X as y,Y as b,Z as x,_ as S,a as C,c as w,ct as T,d as E,et as D,g as O,h as k,it as A,j,k as M,m as N,n as P,o as F,p as I,q as L,r as R,rt as z,st as B,u as ee,v as V,y as H}from"./YpiA5Xry.js";import"./D1_lla-1.js";import"./xihTtKlq.js";import{C as U,D as W,E as G,F as K,G as q,I as te,L as ne,M as re,O as J,P as Y,R as X,S as ie,T as Z,V as ae,Y as Q,Z as oe,_ as se,b as ce,g as le,i as ue,it as de,j as fe,k as pe,nt as me,p as he,s as ge,st as _e,t as $,u as ve,v as ye,w as be,x as xe,y as Se}from"./Q50krHyn.js";import{a as Ce,n as we,t as Te}from"./dNO-9VOT.js";import{a as Ee,i as De,n as Oe,o as ke,r as Ae}from"./hUfV2O0k.js";var je=class{#e=0;#t=!1;#n;#r;constructor(e){this.#r=e}async run(e,t={}){let n=++this.#e,r=t.retainResult&&this.#t?this.#n:void 0;this.#r(t.retainResult&&this.#t?{status:`refreshing`,value:this.#n}:{status:`loading`});try{let t=await e();n===this.#e&&(this.#t=!0,this.#n=t,this.#r({status:`resolved`,value:t}))}catch(e){n===this.#e&&this.#r({status:`failed`,error:e instanceof Error?e.message:String(e),...t.retainResult&&this.#t?{value:r}:{}})}}cancel(){this.#e++,this.#t=!1,this.#r({status:`idle`})}},Me={folder:null,sort:`alphabetical`,type:[],manifest:[],changes:[],usage:`all`,query:``,warningsOnly:!1,view:`all`},Ne=[`folder`,`sort`,`type`,`manifest`,`changes`,`usage`,`q`,`warnings`,`view`],Pe=new Set([`alphabetical`,`type`,`manifest`]),Fe=new Set([`changed`,`new`]),Ie=new Set([`all`,`unused`]),Le=new Set([`all`,`duplicates`]);function Re(e){let t=e.searchParams.get(`sort`),n=e.searchParams.get(`usage`);return{folder:e.searchParams.has(`folder`)?e.searchParams.get(`folder`)??``:null,sort:Pe.has(t)?t:`alphabetical`,type:ze(e,`type`),manifest:ze(e,`manifest`),changes:Be(e),usage:Ie.has(n)?n:`all`,query:e.searchParams.get(`q`)??``,warningsOnly:e.searchParams.get(`warnings`)===`1`,view:Le.has(e.searchParams.get(`view`))?e.searchParams.get(`view`):`all`}}function ze(e,t){return[...new Set(e.searchParams.getAll(t).filter(e=>e!==``&&e!==`all`))]}function Be(e){let t=e.searchParams.getAll(`changes`),n=new Set;for(let e of t)e===`changed-and-new`?(n.add(`changed`),n.add(`new`)):Fe.has(e)&&n.add(e);return[`changed`,`new`].filter(e=>n.has(e))}function Ve(e,t){let n=new URL(e);for(let e of Ne)n.searchParams.delete(e);t.folder!==null&&n.searchParams.set(`folder`,t.folder),t.sort!==`alphabetical`&&n.searchParams.set(`sort`,t.sort);for(let e of t.type)n.searchParams.append(`type`,e);for(let e of t.manifest)n.searchParams.append(`manifest`,e);for(let e of t.changes)n.searchParams.append(`changes`,e);return t.usage!==`all`&&n.searchParams.set(`usage`,t.usage),t.query.trim()!==``&&n.searchParams.set(`q`,t.query),t.warningsOnly&&n.searchParams.set(`warnings`,`1`),t.view!==`all`&&n.searchParams.set(`view`,t.view),n}function He(e,t,n){return e===t?n:{selectedAssetIds:[],lastSelectedAssetId:null}}var Ue=new class{#e=0;begin(){return++this.#e}isCurrent(e){return e===this.#e}};function We(e){let t=Number.isFinite(e)&&e>0?Math.floor(e):0;return`${Math.floor(t/60)}:${(t%60).toString().padStart(2,`0`)}`}var Ge=u(`<svg viewBox="0 0 16 16" aria-hidden="true" class="svelte-nchstv"><rect x="4.5" y="3.5" width="2.5" height="9" fill="currentColor"></rect><rect x="9" y="3.5" width="2.5" height="9" fill="currentColor"></rect></svg>`),Ke=u(`<svg viewBox="0 0 16 16" aria-hidden="true" class="svelte-nchstv"><path d="M5 3.3v9.4l7-4.7z" fill="currentColor"></path></svg>`),qe=l(`<span class="time svelte-nchstv"> </span> <input class="range scrub svelte-nchstv" type="range" min="0" step="0.01" aria-label="Seek"/> <span class="time svelte-nchstv"> </span>`,1),Je=l(`<span class="time svelte-nchstv"> </span>`),Ye=u(`<svg viewBox="0 0 16 16" aria-hidden="true" class="svelte-nchstv"><path d="M2.5 6h2l3-2.5v9l-3-2.5h-2z" fill="currentColor"></path><path d="M10 6l3.5 4M13.5 6 10 10" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"></path></svg>`),Xe=u(`<svg viewBox="0 0 16 16" aria-hidden="true" class="svelte-nchstv"><path d="M2.5 6h2l3-2.5v9l-3-2.5h-2z" fill="currentColor"></path><path d="M10 5.6a3.4 3.4 0 0 1 0 4.8" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"></path><path d="M11.8 3.9a6 6 0 0 1 0 8.2" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"></path></svg>`),Ze=l(`<div class="volume-group svelte-nchstv"><button class="btn svelte-nchstv" type="button"><!></button> <input class="range volume svelte-nchstv" type="range" min="0" max="1" step="0.01" aria-label="Volume"/></div>`),Qe=l(`<div><button class="btn svelte-nchstv" type="button"><!></button> <button class="btn svelte-nchstv" type="button" aria-label="Stop"><svg viewBox="0 0 16 16" aria-hidden="true" class="svelte-nchstv"><rect x="4" y="4" width="8" height="8" rx="1" fill="currentColor"></rect></svg></button> <button type="button" aria-label="Loop"><svg viewBox="0 0 16 16" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" class="svelte-nchstv"><path d="M4.4 4.5H9A3.5 3.5 0 0 1 12.5 8"></path><path d="M2.4 6.4 4.3 4.4 6.3 6.1"></path><path d="M11.6 11.5H7A3.5 3.5 0 0 1 3.5 8"></path><path d="M13.6 9.6 11.7 11.6 9.7 9.9"></path></svg></button> <!> <!></div>`);function $e(n,r){A(r,!0);let i=C(r,`media`,7),a=C(r,`showScrub`,3,!1),c=C(r,`showVolume`,3,!0),l=e(!1),u=e(0),f=e(0),h=e(!1),_=e(1),x=e(!1),S=e(!1),w=!1,O=null,k=D(()=>We(m(u))),j=D(()=>We(m(f))),N=D(()=>m(f)>0),P=D(()=>m(x)?0:m(_));v(()=>{if(!i()){p(l,!1);return}let e=i();p(l,!e.paused),p(u,e.currentTime,!0),p(f,Number.isFinite(e.duration)?e.duration:0,!0),p(h,e.loop,!0),p(_,e.volume,!0),p(x,e.muted,!0);function t(){p(l,!0)}function n(){p(l,!1)}function r(){m(S)||p(u,e.currentTime,!0)}function a(){p(f,Number.isFinite(e.duration)?e.duration:0,!0)}function o(){p(_,e.volume,!0),p(x,e.muted,!0)}return e.addEventListener(`play`,t),e.addEventListener(`playing`,t),e.addEventListener(`pause`,n),e.addEventListener(`ended`,n),e.addEventListener(`timeupdate`,r),e.addEventListener(`seeked`,r),e.addEventListener(`loadedmetadata`,a),e.addEventListener(`durationchange`,a),e.addEventListener(`volumechange`,o),()=>{O===e&&(p(S,!1),w=!1,O=null),e.removeEventListener(`play`,t),e.removeEventListener(`playing`,t),e.removeEventListener(`pause`,n),e.removeEventListener(`ended`,n),e.removeEventListener(`timeupdate`,r),e.removeEventListener(`seeked`,r),e.removeEventListener(`loadedmetadata`,a),e.removeEventListener(`durationchange`,a),e.removeEventListener(`volumechange`,o)}});function F(){i()&&(i().paused?i().play():i().pause())}function L(){i()&&(i().pause(),i().currentTime=0)}function R(){i()&&(i().loop=!i().loop,p(h,i().loop,!0))}function B(){i()&&(i().muted=!i().muted)}function H(e){if(!i())return;let t=e.currentTarget.valueAsNumber;i().volume=t,i().muted=t===0}function U(){!i()||m(S)||(p(S,!0),w=!i().paused,O=i(),i().pause())}function W(e){let t=O??i();if(!t)return;let n=e.currentTarget.valueAsNumber;Number.isFinite(t.duration)&&(t.currentTime=n),p(u,n,!0)}function G(){if(!m(S))return;let e=O;p(S,!1),w&&e&&i()===e&&e.play(),w=!1,O=null}v(()=>{if(m(S))return window.addEventListener(`pointerup`,G),window.addEventListener(`pointercancel`,G),()=>{window.removeEventListener(`pointerup`,G),window.removeEventListener(`pointercancel`,G)}});var K=Qe(),q=s(K),te=s(q),ne=e=>{t(e,Ge())},re=e=>{t(e,Ke())};d(te,e=>{m(l)?e(ne):e(re,-1)}),T(q);var J=y(q,2),Y=y(J,2);let X;var ie=y(Y,2),Z=e=>{var n=qe(),r=b(n),a=s(r,!0);T(r);var c=y(r,2);ee(c);var l=y(c,2),d=s(l,!0);T(l),g(()=>{M(a,m(k)),E(c,`max`,m(N)?m(f):0),I(c,m(u)),c.disabled=!i()||!m(N),M(d,m(j))}),o(`pointerdown`,c,U),o(`input`,c,W),t(e,n)},ae=e=>{var n=Je(),r=s(n);T(n),g(()=>M(r,`${m(k)??``} / ${m(j)??``}`)),t(e,n)};d(ie,e=>{a()?e(Z):m(N)&&e(ae,1)});var Q=y(ie,2),oe=e=>{var n=Ze(),r=s(n),a=s(r),c=e=>{t(e,Ye())},l=e=>{t(e,Xe())};d(a,e=>{m(x)||m(_)===0?e(c):e(l,-1)}),T(r);var u=y(r,2);ee(u),T(n),g(()=>{r.disabled=!i(),E(r,`aria-label`,m(x)?`Unmute`:`Mute`),I(u,m(P)),u.disabled=!i()}),o(`click`,r,B),o(`input`,u,H),t(e,n)};d(Q,e=>{c()&&e(oe)}),T(K),g(()=>{V(K,1,`playback ${r.class??``??``}`,`svelte-nchstv`),q.disabled=!i(),E(q,`aria-label`,m(l)?`Pause`:`Play`),J.disabled=!i(),X=V(Y,1,`btn svelte-nchstv`,null,X,{active:m(h)}),Y.disabled=!i(),E(Y,`aria-pressed`,m(h))}),o(`click`,q,F),o(`click`,J,L),o(`click`,Y,R),t(n,K),z()}a([`click`,`pointerdown`,`input`]);var et=null;function tt(){return et||=new AudioContext,et}var nt=null;function rt(e){let t=e.numberOfChannels;if(t===1)return e.getChannelData(0);let n=e.length,r=new Float32Array(n);for(let i=0;i<t;i++){let t=e.getChannelData(i);for(let e=0;e<n;e++)r[e]+=t[e]}for(let e=0;e<n;e++)r[e]/=t;return r}function it(e,t){let n=new Float32Array(t),r=new Float32Array(t),i=e.length/t;for(let a=0;a<t;a++){let t=Math.floor(a*i),o=Math.min(e.length,Math.floor((a+1)*i)),s=0,c=0;for(let n=t;n<o;n++){let t=e[n];t<s&&(s=t),t>c&&(c=t)}n[a]=s,r[a]=c}return{min:n,max:r}}function at(e,t,n){return Math.min(n,Math.max(t,e))}var ot=l(`<div class="footer svelte-1liihyn"><!></div>`),st=l(`<div><canvas class="wave svelte-1liihyn" role="button" tabindex="0" aria-label="Audio waveform — click or press Enter to play; arrow keys scrub"></canvas> <!></div>`);function ct(n,r){A(r,!0);let i=C(r,`loop`,3,!1),a=C(r,`showControls`,3,!1),c=e(void 0),l=e(null),u=e(!1),f=e(0),h=e(0),b=`idle`,x=null,S=null,w=0,E=1,D=`#0d99ff`,O=`#7a7a7a`,k=`#f24822`,j=0;function M(){if(!m(c))return;let e=getComputedStyle(m(c));D=e.getPropertyValue(`--accent`).trim()||D,O=e.getPropertyValue(`--text-faint`).trim()||O,k=e.getPropertyValue(`--danger`).trim()||k}function N(){if(!m(c))return;let e=m(c).getBoundingClientRect();E=window.devicePixelRatio||1;let t=Math.max(1,Math.round(e.width*E)),n=Math.max(1,Math.round(e.height*E));(m(c).width!==t||m(c).height!==n)&&(m(c).width=t,m(c).height=n,S=null),M()}function P(){if(!m(c))return;let e=m(c).getContext(`2d`);if(!e)return;let t=m(c).width,n=m(c).height,r=n/2;if(e.clearRect(0,0,t,n),b!==`ready`||!x){e.strokeStyle=b===`error`?k:O,e.lineWidth=Math.max(1,E),e.beginPath(),e.moveTo(0,r),e.lineTo(t,r),e.stroke();return}let i=Math.max(1,Math.floor(t));(!S||w!==i)&&(S=it(x,i),w=i);let a=m(h)>0?at(m(f)/m(h),0,1):0,o=a*t,s=r*.9,l=t/i;e.lineWidth=1;for(let t=0;t<i;t++){let n=t*l,i=r-S.max[t]*s,a=r-S.min[t]*s;e.strokeStyle=n<=o?D:O,e.beginPath(),e.moveTo(n+.5,Math.min(i,r-.5)),e.lineTo(n+.5,Math.max(a,r+.5)),e.stroke()}a>0&&(e.strokeStyle=D,e.lineWidth=Math.max(1,E),e.beginPath(),e.moveTo(o,0),e.lineTo(o,n),e.stroke())}function I(){j&&=(cancelAnimationFrame(j),0)}function L(){m(l)&&p(f,m(l).currentTime,!0),P(),m(u)&&(j=requestAnimationFrame(L))}async function R(e){b=`loading`,P();try{let t=await(await fetch(e)).arrayBuffer(),n=await tt().decodeAudioData(t);if(e!==r.src)return;x=rt(n),m(h)||p(h,n.duration,!0),b=`ready`,S=null,P()}catch{if(e!==r.src)return;b=`error`,P()}}function B(e){if(e.preventDefault(),e.stopPropagation(),!m(c)||!m(l))return;let t=m(c).getBoundingClientRect(),n=at((e.clientX-t.left)/t.width,0,1),r=m(l).duration;Number.isFinite(r)&&r>0&&(m(l).currentTime=n*r),m(l).play()}function ee(){m(l)&&(m(l).paused?m(l).play():m(l).pause())}function H(e){if(m(l)){if(e.key===`Enter`||e.key===` `){e.preventDefault(),ee();return}if(e.key===`ArrowRight`||e.key===`ArrowLeft`){let t=m(l).duration;if(!Number.isFinite(t)||t<=0)return;e.preventDefault();let n=e.key===`ArrowRight`?5:-5;m(l).currentTime=at(m(l).currentTime+n,0,t)}}}v(()=>{let e=m(l);e&&(e.loop=i())}),v(()=>{let e=r.src,t=m(c);if(!t)return;b=`idle`,x=null,S=null,w=0,p(f,0),p(h,0),p(u,!1);let n=new Audio(e);n.preload=`metadata`,n.loop=_(()=>i());function a(){nt&&nt!==n&&nt.pause(),nt=n,p(u,!0),I(),j=requestAnimationFrame(L)}function o(){nt===n&&(nt=null),p(u,!1),I(),P()}function s(){nt===n&&(nt=null),p(u,!1),I(),P()}function d(){p(f,n.currentTime,!0),m(u)||P()}function g(){Number.isFinite(n.duration)&&p(h,n.duration,!0),P()}n.addEventListener(`play`,a),n.addEventListener(`pause`,o),n.addEventListener(`ended`,s),n.addEventListener(`timeupdate`,d),n.addEventListener(`loadedmetadata`,g),n.addEventListener(`durationchange`,g),n.addEventListener(`seeked`,d),p(l,n,!0);let v=new ResizeObserver(()=>{N(),P()});v.observe(t);let y=new IntersectionObserver(t=>{t.some(e=>e.isIntersecting)&&(y.disconnect(),R(e))});return y.observe(t),N(),P(),()=>{I(),v.disconnect(),y.disconnect(),n.removeEventListener(`play`,a),n.removeEventListener(`pause`,o),n.removeEventListener(`ended`,s),n.removeEventListener(`timeupdate`,d),n.removeEventListener(`loadedmetadata`,g),n.removeEventListener(`durationchange`,g),n.removeEventListener(`seeked`,d),n.pause(),nt===n&&(nt=null),n.removeAttribute(`src`),n.load(),p(l,null)}});var U=st(),W=s(U);F(W,e=>p(c,e),()=>m(c));var G=y(W,2),K=e=>{var n=ot();$e(s(n),{get media(){return m(l)}}),T(n),t(e,n)};d(G,e=>{a()&&e(K)}),T(U),g(()=>V(U,1,`audio-waveform ${r.class??``??``}`,`svelte-1liihyn`)),o(`click`,W,B),o(`keydown`,W,H),t(n,U),z()}a([`click`,`keydown`]);var lt=l(`<div class="audio-frame svelte-1ww4cvx"><!></div>`),ut=l(`<p class="svelte-1ww4cvx">No proxy yet — add the asset to a manifest to process it.</p>`),dt=l(`<div class="stage checkerboard svelte-1ww4cvx"><!></div>`);function ft(e,n){A(n,!0);var r=dt(),a=s(r),o=e=>{var r=lt();i(s(r),()=>n.asset.proxy.url,e=>{ct(e,{get src(){return n.asset.proxy.url},showControls:!0})}),T(r),t(e,r)},c=e=>{t(e,ut())};d(a,e=>{n.asset.proxy?e(o):e(c,-1)}),T(r),t(e,r),z()}function pt(e){if(e.scrubbedValue===null)return{};let t=e.startValue??e.min??0;return e.scrubbedValue===t?{rollbackTo:e.startValue}:{commit:e.scrubbedValue}}function mt(e,t){return t.coarse?e*10:t.fine?e*.1:e}function ht(e){if(!Number.isFinite(e))return 0;let t=0,n=Math.abs(e);for(;t<10&&Math.abs(Math.round(n)-n)>1e-9;)n*=10,t+=1;return t}function gt(e,t){let n=10**t;return Math.round(e*n)/n}function _t(e){let t=mt(e.step,e.modifiers),n=gt(e.startValue+e.deltaX*t,ht(t));return e.min!==void 0&&(n=Math.max(e.min,n)),e.max!==void 0&&(n=Math.min(e.max,n)),n}function vt(e,t){t.buttons!==0&&!e.hasPointerCapture(t.pointerId)&&e.setPointerCapture(t.pointerId)}function yt(e,t){e.hasPointerCapture(t)&&e.releasePointerCapture(t)}var bt=l(`<span class="suffix svelte-nhap92" aria-hidden="true"> </span>`),xt=l(`<span class="scrub-surface svelte-nhap92" title="Drag to change — Shift: ×10, Alt: ×0.1" role="presentation" aria-hidden="true"></span>`),St=l(`<span><input class="input svelte-nhap92" type="number"/> <!> <!></span>`);function Ct(n,r){A(r,!0);let i=C(r,`step`,3,1),a=C(r,`placeholder`,3,``),l=C(r,`allowNull`,3,!1),u=C(r,`align`,3,`left`),f=e(null),h=e(!1),_=e(null),b=e(null),x=D(()=>m(f)?.activated?m(f).currentValue:r.value),w=D(()=>Math.max(1,m(b)??String(m(x)??a()).length));function O(e){return{coarse:e.shiftKey,fine:e.altKey}}function k(e){e.preventDefault(),vt(e.currentTarget,e),p(f,{pointerId:e.pointerId,startX:e.clientX,startValue:r.value,currentValue:null,activated:!1},!0)}function j(e){if(!m(f)||e.pointerId!==m(f).pointerId)return;let t=e.clientX-m(f).startX;if(!m(f).activated){if(Math.abs(t)<3)return;m(f).activated=!0,document.body.style.cursor=`ew-resize`}let n=_t({startValue:m(f).startValue??r.min??0,deltaX:t,step:i(),modifiers:O(e),min:r.min,max:r.max});n!==m(f).currentValue&&(m(f).currentValue=n,r.onChange?.(n))}function N(e){if(!m(f)||e.pointerId!==m(f).pointerId)return;yt(e.currentTarget,e.pointerId);let t=m(f).activated,n=m(f).startValue,i=m(f).currentValue;if(p(f,null),document.body.style.cursor=``,!t){B();return}let a=pt({startValue:n,scrubbedValue:i,min:r.min});a.commit===void 0?`rollbackTo`in a&&r.onChange?.(a.rollbackTo??null):r.onCommit(a.commit)}function P(){if(!m(f))return;let e=m(f).startValue,t=m(f).activated;p(f,null),document.body.style.cursor=``,t&&r.onChange?.(e)}function R(e){m(f)&&e.key===`Escape`&&(e.preventDefault(),P())}v(()=>()=>{m(f)&&(document.body.style.cursor=``)});function B(){p(h,!0),queueMicrotask(()=>{m(_)?.focus(),m(_)?.select()})}function H(e){let t=e.currentTarget.valueAsNumber;Number.isFinite(t)?r.onCommit(t):r.onCommit(l()?null:r.min??0)}function U(e){p(b,e.currentTarget.value.length,!0)}function W(e){e.key===`Enter`?e.currentTarget.blur():e.key===`Escape`&&(e.currentTarget.value=m(x)===null?``:String(m(x)),e.currentTarget.blur())}var G=St();c(`keydown`,L,R);let K;var q=s(G);ee(q);let te;F(q,e=>p(_,e),()=>m(_));var ne=y(q,2),re=e=>{var n=bt(),i=s(n,!0);T(n),g(()=>M(i,r.suffix)),t(e,n)};d(ne,e=>{r.suffix!==void 0&&e(re)});var J=y(ne,2),Y=e=>{var n=xt();o(`pointerdown`,n,k),o(`pointermove`,n,j),o(`pointerup`,n,N),c(`pointercancel`,n,P),t(e,n)};d(J,e=>{m(h)||e(Y)}),T(G),g(()=>{K=V(G,1,`scrub-number svelte-nhap92`,null,K,{right:u()===`right`,"with-suffix":r.suffix!==void 0}),E(q,`aria-label`,r.ariaLabel),E(q,`min`,r.min),E(q,`max`,r.max),E(q,`step`,i()),E(q,`placeholder`,a()),I(q,m(x)??``),te=S(q,``,te,{width:r.suffix===void 0?void 0:`${m(w)}ch`})}),c(`focus`,q,e=>{p(h,!0),p(b,e.currentTarget.value.length,!0)}),c(`blur`,q,()=>{p(h,!1),p(b,null)}),o(`input`,q,U),o(`change`,q,H),o(`keydown`,q,W),t(n,G),z()}a([`input`,`change`,`keydown`,`pointerdown`,`pointermove`,`pointerup`]);var wt=l(`<span class="caption svelte-368zap"> </span>`),Tt=l(`<span class="fill svelte-368zap"></span>`),Et=l(`<div class="number-field svelte-368zap"><!> <div class="number-input control svelte-368zap"><!> <span class="icon-slot svelte-368zap"><!></span> <!></div></div>`);function Dt(e,n){let i=C(n,`step`,3,1),a=C(n,`placeholder`,3,``),o=C(n,`rangeFill`,3,!0),c=D(()=>!o()||n.min===void 0||n.max===void 0||n.value===null||n.max<=n.min?null:Math.max(0,Math.min(100,(n.value-n.min)/(n.max-n.min)*100)));var l=Et(),u=s(l),p=e=>{var r=wt(),i=s(r,!0);T(r),g(()=>M(i,n.caption)),t(e,r)};d(u,e=>{n.caption&&e(p)});var h=y(u,2),_=s(h),v=e=>{var n=Tt();g(()=>S(n,`width: ${m(c)??``}%`)),t(e,n)};d(_,e=>{m(c)!==null&&e(v)});var x=y(_,2),w=s(x),O=e=>{var i=j();r(b(i),()=>n.icon),t(e,i)},k=e=>{var r=f();g(()=>M(r,n.label)),t(e,r)};d(w,e=>{n.icon?e(O):e(k,-1)}),T(x),Ct(y(x,2),{get value(){return n.value},get min(){return n.min},get max(){return n.max},get step(){return i()},get placeholder(){return a()},get suffix(){return n.suffix},allowNull:!0,get ariaLabel(){return n.label},get onChange(){return n.onChange},get onCommit(){return n.onCommit}}),T(h),T(l),g(()=>E(x,`title`,n.label)),t(e,l)}var Ot=l(`<h3 class="svelte-1ol624f"><!></h3>`);function kt(e,n){var i=Ot();r(s(i),()=>n.children),T(i),t(e,i)}var At=l(`<span class="caption svelte-bczi6w"> </span>`),jt=l(`<option> </option>`),Mt=l(`<div class="select-field svelte-bczi6w"><!> <div class="select-input control svelte-bczi6w"><span class="icon-slot svelte-bczi6w"><!></span> <select class="svelte-bczi6w"></select></div></div>`);function Nt(e,n){A(n,!0);var i=Mt(),a=s(i),c=e=>{var r=At(),i=s(r,!0);T(r),g(()=>M(i,n.caption)),t(e,r)};d(a,e=>{n.caption&&e(c)});var l=y(a,2),u=s(l),p=s(u),m=e=>{var i=j();r(b(i),()=>n.icon),t(e,i)},_=e=>{var r=f();g(e=>M(r,e),[()=>n.label.slice(0,1)]),t(e,r)};d(p,e=>{n.icon?e(m):e(_,-1)}),T(u);var v=y(u,2);h(v,20,()=>n.options,e=>e,(e,n)=>{var r=jt(),i=s(r,!0);T(r);var a={};g(()=>{M(i,n),a!==(a=n)&&(r.value=(r.__value=n)??``)}),t(e,r)}),T(v);var x;k(v),T(l),T(i),g(()=>{E(u,`title`,n.label),E(v,`aria-label`,n.label),x!==(x=n.value)&&(v.value=(v.__value=n.value)??``,O(v,n.value))}),o(`change`,v,e=>n.onChange(e.currentTarget.value)),t(e,i),z()}a([`change`]);var Pt=l(`<p class="info svelte-m9vwwu"><!> <!> <br/> <span class="file svelte-m9vwwu"> </span></p>`),Ft=l(`<p class="hint svelte-m9vwwu">No proxy yet — add the asset to a manifest to process it.</p>`),It=l(`<section class="svelte-m9vwwu"><!> <!></section>`);function Lt(e,n){A(n,!0);let r=C(n,`showDimensions`,3,!1),i=C(n,`showDuration`,3,!1);var a=It(),o=s(a);kt(o,{children:(e,n)=>{B(),t(e,f(`Output`))},$$slots:{default:!0}});var c=y(o,2),l=e=>{var a=Pt(),o=s(a),c=e=>{var r=f();g(()=>M(r,`${n.proxy.width??``} × ${n.proxy.height??``} px ·`)),t(e,r)};d(o,e=>{r()&&n.proxy.width!==void 0&&n.proxy.height!==void 0&&e(c)});var l=y(o,2),u=e=>{var r=f();g(e=>M(r,`${e??``} ·`),[()=>Ee(n.proxy.durationMs)]),t(e,r)};d(l,e=>{i()&&n.proxy.durationMs!==void 0&&e(u)});var p=y(l),m=y(p,3),h=s(m,!0);T(m),T(a),g(e=>{M(p,` ${e??``} `),M(h,n.proxy.fileName)},[()=>De(n.proxy.fileSize)]),t(e,a)},u=e=>{t(e,Ft())};d(c,e=>{n.proxy?e(l):e(u,-1)}),T(a),t(e,a),z()}var Rt=l(`<section class="svelte-1by8n8t"><!> <div class="field svelte-1by8n8t"><!></div> <div class="field svelte-1by8n8t"><!></div></section> <!>`,1);function zt(e,n){A(n,!0);let r=D(()=>Z.validateParameters(n.parameters));function i(e){n.onParametersCommit(e)}function a(e){i({...m(r),preset:e})}function o(e){let{targetWidth:t,...n}=m(r);return e===null||!Number.isFinite(e)||e<=0?n:{...n,targetWidth:Math.round(e)}}function c(e,t){let r=o(e);t?i(r):n.onParametersChange(r)}var l=Rt(),u=b(l),d=s(u);kt(d,{children:(e,n)=>{B(),t(e,f(`Image`))},$$slots:{default:!0}});var p=y(d,2);Nt(s(p),{label:`Preset`,caption:`Preset`,get value(){return m(r).preset},get options(){return n.presetNames},onChange:a,icon:e=>{Ce(e,{name:`preset`})},$$slots:{icon:!0}}),T(p);var h=y(p,2),g=s(h);{let e=e=>{Ce(e,{name:`width`})},t=D(()=>m(r).targetWidth??null);Dt(g,{label:`Target width`,caption:`Target width`,min:1,placeholder:`source`,get value(){return m(t)},onChange:e=>c(e,!1),onCommit:e=>c(e,!0),icon:e,$$slots:{icon:!0}})}T(h),T(u),Lt(y(u,2),{get proxy(){return n.asset.proxy},showDimensions:!0}),t(e,l),z()}var Bt=new Set([`image`,`slice`]);new Set([...new Set([`video`,`chroma-key-video`,`audio`])].filter(e=>ye.has(e)));function Vt(e,t){return Bt.has(e)?t[e]?.decode??!0:!1}function Ht(e){if(e.ok)return!0;if(e.status!==0||e.type!==`basic`)return!1;try{let t=new URL(e.url).protocol;return t!==`http:`&&t!==`https:`}catch{return!1}}async function Ut(e){let t=await fetch(e);if(!Ht(t))throw Error(`Preloading "${e}" failed: ${t.status} ${t.statusText}.`);return t}function Wt(e,t,n){if(n!==t)throw Error(`Preloading "${e}" failed: expected ${t} bytes, received ${n}.`)}function Gt(e){return{async preload(t,n,r){if(Wt(t,n,(await(await Ut(t)).arrayBuffer()).byteLength),Vt(e,r)&&typeof globalThis.Image==`function`){let e=new globalThis.Image;e.src=t,await e.decode()}return{}}}}var Kt={async preload(e,t){let n=await(await Ut(e)).blob();return Wt(e,t,n.size),typeof URL.createObjectURL==`function`?{objectUrl:URL.createObjectURL(n)}:{}},release(e){e.objectUrl!==void 0&&typeof URL.revokeObjectURL==`function`&&URL.revokeObjectURL(e.objectUrl)}},qt={image:Gt(`image`),slice:Gt(`slice`),video:Kt,"chroma-key-video":Kt,audio:Kt};new Map(Object.entries(ye.project(qt,`runtime handler`)));var Jt=new Map;function Yt(e){return Jt.get(e)?.resources?.objectUrl??e}var Xt=l(`<img/>`);function Zt(e,n){A(n,!0);let r=C(n,`alt`,3,``),i=C(n,`class`,3,``);var a=Xt();g(()=>{E(a,`src`,n.src.src),E(a,`width`,n.src.width),E(a,`height`,n.src.height),E(a,`alt`,r()),V(a,1,H(i()))}),t(e,a),z()}function Qt(e){let t=new Image;return t.decoding=`async`,t.src=e,t.decode().then(()=>t)}var $t=class{#e;#t;#n=null;#r=null;#i=new Map;#a=!1;constructor(e,t=Qt){this.#t=e,this.#e=t}request(e){if(this.#a)return;this.#n=e;let t=this.#r;if(t?.entry.src===e.src){this.#c({entry:e,image:t.image});return}if(this.#i.has(e.src))return;let n;try{n=Promise.resolve(this.#e(e.src))}catch(e){n=Promise.reject(e)}let r={promise:n};this.#i.set(e.src,r),n.then(t=>this.#o(e.src,r,t),()=>this.#s(e.src,r))}dispose(){this.#a||(this.#a=!0,this.#n=null,this.#r=null,this.#i.clear())}#o(e,t,n){if(this.#i.get(e)!==t||(this.#i.delete(e),this.#a))return;let r=this.#n;!r||r.src!==e||this.#c({entry:r,image:n})}#s(e,t){this.#i.get(e)===t&&this.#i.delete(e)}#c(e){this.#a||(this.#r=e,this.#t(e))}};function en(e,t,n){return Math.max(t,Math.min(n,e))}function tn(e){let{mode:t,insets:n}=e.slicing,r=be(t);return{top:r.vertical?n.top:0,bottom:r.vertical?n.bottom:0,left:r.horizontal?n.left:0,right:r.horizontal?n.right:0}}function nn(e){let t=e.slicing.overdraw;if(!t)return xe();let n=e.sourceWidth,r=e.sourceHeight,i=en(t.left,0,Math.max(0,n-1)),a=en(t.right,0,Math.max(0,n-i-1)),o=en(t.top,0,Math.max(0,r-1));return{top:o,right:a,bottom:en(t.bottom,0,Math.max(0,r-o-1)),left:i}}function rn(e){let t=nn(e);return{width:Math.max(1,e.sourceWidth-t.left-t.right),height:Math.max(1,e.sourceHeight-t.top-t.bottom)}}function an(e,t,n){let r=nn(e);if(r.top===0&&r.right===0&&r.bottom===0&&r.left===0)return r;let i=e.slicing.pixelRatio>0?e.slicing.pixelRatio:1,a=rn(e),o,s;return e.slicing.mode===`three-horizontal`?o=s=n/a.height:e.slicing.mode===`three-vertical`?o=s=t/a.width:e.slicing.mode===`one`?(o=t/a.width,s=n/a.height):o=s=1/i,{top:Math.round(r.top*s),right:Math.round(r.right*o),bottom:Math.round(r.bottom*s),left:Math.round(r.left*o)}}function on(e,t,n,r){let i=an(e,t,n),a=t+i.left+i.right,o=n+i.top+i.bottom;return{cssLeft:-i.left+0,cssTop:-i.top+0,cssWidth:a,cssHeight:o,backingWidth:Math.round(a*r),backingHeight:Math.round(o*r),originX:i.left*r,originY:i.top*r}}function sn(e){let t=0,n=[0];for(let r of e)t+=r,n.push(Math.round(t));return n}function cn(e,t,n){if(t<=0||n<=0)return[];let r=an(e,t,n),i=t+r.left+r.right,a=n+r.top+r.bottom,o=e.sourceWidth,s=e.sourceHeight,c=e.slicing.pixelRatio>0?e.slicing.pixelRatio:1,l=e.slicing.mode,u=tn(e),d=en(u.left,0,o),f=en(u.right,0,Math.max(0,o-d)),p=en(u.top,0,s),m=en(u.bottom,0,Math.max(0,s-p)),h=Math.max(0,o-d-f),g=Math.max(0,s-p-m),_,v;if(l===`three-horizontal`){let e=a/s;_=d*e,v=f*e}else _=d/c,v=f/c;let y=Math.max(0,i-_-v),b,x;if(l===`three-vertical`){let e=i/o;b=p*e,x=m*e}else b=p/c,x=m/c;let S=Math.max(0,a-b-x),C=[d,h,f],w=[p,g,m],T=[0,d,d+h],E=[0,p,p+g],D=sn([_,y,v]),O=sn([b,S,x]),k=[];for(let e=0;e<3;e++)for(let t=0;t<3;t++){let n=C[t],i=w[e];if(n<=0||i<=0)continue;let a=D[t],o=D[t+1]-a,s=O[e],c=O[e+1]-s;o<=0||c<=0||k.push({key:`${e}-${t}`,sx:T[t],sy:E[e],sw:n,sh:i,dx:a-r.left,dy:s-r.top,dw:o,dh:c})}return k}function ln(e,t){let n=new ResizeObserver(n=>{let r=n[0]?.borderBoxSize?.[0];t(Math.round(r?.inlineSize??e.offsetWidth),Math.round(r?.blockSize??e.offsetHeight))});return n.observe(e),()=>n.disconnect()}var un=l(`<div class="fundus-slice__paint svelte-1820t2z"></div>`),dn=l(`<div><!></div>`);function fn(n,r){A(r,!0);let i=C(r,`alt`,3,``),a=C(r,`class`,3,``),o=e(void 0),c=e(0),l=e(0);function u(e,t,n){return Math.max(t,Math.min(n,e))}function f(e,t,n){let r=cn(e,t,n);if(r.length===0)return null;let i=tn(e),a=u(i.left,0,e.sourceWidth),o=u(i.right,0,e.sourceWidth-a),s=u(i.top,0,e.sourceHeight),c=u(i.bottom,0,e.sourceHeight-s),l={top:s,right:o,bottom:c,left:a},d=Math.min(...r.map(e=>e.dx)),f=Math.min(...r.map(e=>e.dy)),p=Math.max(...r.map(e=>e.dx+e.dw)),m=Math.max(...r.map(e=>e.dy+e.dh));return{left:d,top:f,width:p-d,height:m-f,slices:l,widths:{top:r.find(e=>s>0&&e.sy===0&&e.sh===s)?.dh??0,right:r.find(t=>o>0&&t.sx===e.sourceWidth-o&&t.sw===o)?.dw??0,bottom:r.find(t=>c>0&&t.sy===e.sourceHeight-c&&t.sh===c)?.dh??0,left:r.find(e=>a>0&&e.sx===0&&e.sw===a)?.dw??0}}}v(()=>{let e=m(o);if(e)return ln(e,(e,t)=>{p(c,e,!0),p(l,t,!0)})});let h=D(()=>r.snapshot?.entry??null),_=D(()=>m(h)?f(m(h),m(c),m(l)):null),y=D(()=>{if(!m(h))return!1;let e=nn(m(h));return e.top>0||e.right>0||e.bottom>0||e.left>0});var b=dn();let x;var w=s(b),O=e=>{var n=un();let r;g(e=>r=S(n,``,r,e),[()=>({left:`${m(_).left??``}px`,top:`${m(_).top??``}px`,width:`${m(_).width??``}px`,height:`${m(_).height??``}px`,"border-image-source":`url(${JSON.stringify(m(h).src)})`,"border-image-slice":`${m(_).slices.top} ${m(_).slices.right} ${m(_).slices.bottom} ${m(_).slices.left} fill`,"border-image-width":`${m(_).widths.top}px ${m(_).widths.right}px ${m(_).widths.bottom}px ${m(_).widths.left}px`})]),t(e,n)};d(w,e=>{m(h)&&m(_)&&e(O)}),T(b),F(b,e=>p(o,e),()=>m(o)),g(()=>{x=V(b,1,`fundus-slice ${a()??``}`,`svelte-1820t2z`,x,{"fundus-slice--overdraw":m(y)}),E(b,`role`,i()?`img`:void 0),E(b,`aria-label`,i()||void 0)}),t(n,b),z()}var pn=l(`<div><canvas class="svelte-xdsbrz"></canvas></div>`);function mn(n,r){A(r,!0);let i=C(r,`alt`,3,``),a=C(r,`class`,3,``),o=e(void 0),l=e(void 0),u=e(0),d=e(0),f=e(1),h=e(0);v(()=>{let e=m(f),t=window.matchMedia(`(resolution: ${e}dppx)`),n=()=>{p(f,window.devicePixelRatio||1,!0)};return n(),t.addEventListener(`change`,n),()=>t.removeEventListener(`change`,n)}),v(()=>{let e=m(o);if(e)return ln(e,(e,t)=>{p(u,e,!0),p(d,t,!0)})});let _={cssLeft:0,cssTop:0,cssWidth:0,cssHeight:0,backingWidth:0,backingHeight:0,originX:0,originY:0},y=D(()=>{let e=r.snapshot;return e?on(e.entry,m(u),m(d),m(f)):_});v(()=>{let e=r.snapshot,t=m(y);m(h),b(e,t)});function b(e,t){let n=m(l);if(!n)return;if(!e||m(u)===0||m(d)===0){n.width=0,n.height=0;return}n.width=t.backingWidth,n.height=t.backingHeight;let r=n.getContext(`2d`);if(r){r.setTransform(m(f),0,0,m(f),t.originX,t.originY),r.clearRect(t.cssLeft,t.cssTop,t.cssWidth,t.cssHeight);for(let t of cn(e.entry,m(u),m(d)))r.drawImage(e.image,t.sx,t.sy,t.sw,t.sh,t.dx,t.dy,t.dw,t.dh)}}var x=pn();c(`resize`,L,()=>p(h,m(h)+1));var w=s(x);let O;F(w,e=>p(l,e),()=>m(l)),T(x),F(x,e=>p(o,e),()=>m(o)),g(()=>{V(x,1,`fundus-slice-canvas ${a()??``}`,`svelte-xdsbrz`),E(x,`role`,i()?`img`:void 0),E(x,`aria-label`,i()||void 0),O=S(w,``,O,{left:`${m(y).cssLeft??``}px`,top:`${m(y).cssTop??``}px`,width:`${m(y).cssWidth??``}px`,height:`${m(y).cssHeight??``}px`})}),t(n,x),z()}function hn(n,r){A(r,!0);let i=C(r,`backend`,3,`dom`),a=C(r,`alt`,3,``),o=C(r,`class`,3,``),s=e(null),c=new $t(e=>{p(s,e)});v(()=>{c.request(r.src)}),P(()=>c.dispose());var l=j(),u=b(l),f=e=>{mn(e,{get snapshot(){return m(s)},get alt(){return a()},get class(){return o()}})},h=e=>{fn(e,{get snapshot(){return m(s)},get alt(){return a()},get class(){return o()}})};d(u,e=>{i()===`canvas`?e(f):e(h,-1)}),t(n,l),z()}var gn=l(`<video playsinline="" preload="auto"></video>`,2);function _n(e,n){A(n,!0);let r=C(n,`loop`,3,!1),i=C(n,`playing`,3,!0),a=C(n,`muted`,3,!0),o=C(n,`controls`,3,!1),s=C(n,`videoElement`,15),c=C(n,`class`,3,``),l=D(()=>Yt(n.src.src));v(()=>{let e=s();e&&(i()?e.play().catch(()=>{}):e.pause())});var u=gn();F(u,e=>s(e),()=>s()),g(()=>{E(u,`src`,m(l)),E(u,`width`,n.src.width),E(u,`height`,n.src.height),u.loop=r(),u.muted=a(),u.controls=o(),V(u,1,H(c()))}),t(e,u),z()}var vn=`#version 300 es
2
+ in vec2 a_pos;
3
+ out vec2 v_uv;
4
+ void main() {
5
+ // Fullscreen clip-space triangle pair; v flipped so the video isn't mirrored on Y
6
+ // (GL texture rows are bottom-up, and flipping here beats a per-frame UNPACK flip).
7
+ v_uv = vec2(a_pos.x * 0.5 + 0.5, 0.5 - a_pos.y * 0.5);
8
+ gl_Position = vec4(a_pos, 0.0, 1.0);
9
+ }`,yn=`#version 300 es
10
+ precision highp float;
11
+
12
+ in vec2 v_uv;
13
+ out vec4 fragColor;
14
+
15
+ uniform sampler2D u_texture;
16
+ uniform sampler2D u_mask;
17
+ uniform vec2 u_texelSize;
18
+ uniform vec3 u_keyColor;
19
+ uniform vec4 u_tintColor;
20
+ uniform float u_colorCutoff;
21
+ uniform float u_colorFeathering;
22
+ uniform float u_maskFeathering;
23
+ uniform float u_sharpening;
24
+ uniform float u_despill;
25
+ uniform float u_despillLuminanceAdd;
26
+
27
+ float rgb2y(vec3 c) {
28
+ return 0.299 * c.r + 0.587 * c.g + 0.114 * c.b;
29
+ }
30
+
31
+ float rgb2cb(vec3 c) {
32
+ return 0.5 - 0.168736 * c.r - 0.331264 * c.g + 0.5 * c.b;
33
+ }
34
+
35
+ float rgb2cr(vec3 c) {
36
+ return 0.5 + 0.5 * c.r - 0.418688 * c.g - 0.081312 * c.b;
37
+ }
38
+
39
+ float colorclose(float Cb_p, float Cr_p, float Cb_key, float Cr_key, float tola, float tolb) {
40
+ float temp = (Cb_key - Cb_p) * (Cb_key - Cb_p) + (Cr_key - Cr_p) * (Cr_key - Cr_p);
41
+ float tola2 = tola * tola;
42
+ float tolb2 = tolb * tolb;
43
+ if (temp < tola2) return 0.0;
44
+ if (temp < tolb2) return (temp - tola2) / (tolb2 - tola2);
45
+ return 1.0;
46
+ }
47
+
48
+ float maskedTex2D(sampler2D tex, vec2 uv) {
49
+ vec4 color = texture(tex, uv);
50
+
51
+ float key_cb = rgb2cb(u_keyColor);
52
+ float key_cr = rgb2cr(u_keyColor);
53
+ float pix_cb = rgb2cb(color.rgb);
54
+ float pix_cr = rgb2cr(color.rgb);
55
+
56
+ return colorclose(pix_cb, pix_cr, key_cb, key_cr, u_colorCutoff, u_colorFeathering);
57
+ }
58
+
59
+ void main() {
60
+ vec2 pixelWidth = vec2(u_texelSize.x, 0.0);
61
+ vec2 pixelHeight = vec2(0.0, u_texelSize.y);
62
+
63
+ // Unmodified MainTex
64
+ vec4 color = texture(u_texture, v_uv);
65
+
66
+ // Unfeathered mask
67
+ float mask = maskedTex2D(u_texture, v_uv);
68
+
69
+ // Feathering & smoothing
70
+ float c = mask;
71
+ float r = maskedTex2D(u_texture, v_uv + pixelWidth);
72
+ float l = maskedTex2D(u_texture, v_uv - pixelWidth);
73
+ float d = maskedTex2D(u_texture, v_uv + pixelHeight);
74
+ float u = maskedTex2D(u_texture, v_uv - pixelHeight);
75
+ float rd = maskedTex2D(u_texture, v_uv + pixelWidth + pixelHeight) * 0.707;
76
+ float dl = maskedTex2D(u_texture, v_uv - pixelWidth + pixelHeight) * 0.707;
77
+ float lu = maskedTex2D(u_texture, v_uv - pixelHeight - pixelWidth) * 0.707;
78
+ float ur = maskedTex2D(u_texture, v_uv + pixelWidth - pixelHeight) * 0.707;
79
+ float blurContribution = (r + l + d + u + rd + dl + lu + ur + c) * 0.12774655;
80
+ float smoothedMask = smoothstep(u_sharpening, 1.0, mix(c, blurContribution, u_maskFeathering));
81
+ vec4 result = color * smoothedMask;
82
+
83
+ // Despill
84
+ float v = (2.0 * result.b + result.r) / 4.0;
85
+ if (result.g > v) result.g = mix(result.g, v, u_despill);
86
+ vec4 dif = color - result;
87
+ float desaturatedDif = rgb2y(dif.xyz);
88
+ result += mix(0.0, desaturatedDif, u_despillLuminanceAdd);
89
+
90
+ // Fundus mask pass: a grayscale shape mask multiplies
91
+ // the keyed alpha.
92
+ float shapeMask = texture(u_mask, v_uv).r;
93
+ vec4 keyed = vec4(result.xyz, smoothedMask * shapeMask) * u_tintColor;
94
+
95
+ // Premultiplied output: keyed matches the upstream SrcAlpha/OneMinusSrcAlpha
96
+ // blending; multiplying rgb by alpha is that blend's exact premultiplied
97
+ // equivalent. Straight-alpha output (premultipliedAlpha: false) is NOT an option:
98
+ // iOS WKWebView composites the WebGL canvas as premultiplied regardless of the
99
+ // flag, and the despill luminance-add above leaves fully-transparent background
100
+ // pixels with nonzero rgb (the upstream blend ignores rgb
101
+ // at alpha 0) which then composite additively — a visible bright veil over the
102
+ // whole canvas rect on iOS.
103
+ fragColor = vec4(keyed.rgb * keyed.a, keyed.a);
104
+ }`;function bn(e){let t=(t,n)=>{let r=e.createShader(t);if(e.shaderSource(r,n),e.compileShader(r),!e.getShaderParameter(r,e.COMPILE_STATUS)){let t=e.getShaderInfoLog(r);throw e.deleteShader(r),Error(`Chroma-key shader compilation failed: ${t}.`)}return r},n=e.createProgram();if(e.attachShader(n,t(e.VERTEX_SHADER,vn)),e.attachShader(n,t(e.FRAGMENT_SHADER,yn)),e.linkProgram(n),!e.getProgramParameter(n,e.LINK_STATUS)){let t=e.getProgramInfoLog(n);throw e.deleteProgram(n),Error(`Chroma-key program linking failed: ${t}.`)}return n}var xn=class e{#e;#t;#n;#r;#i;#a;#o;#s=null;#c=!1;static create(t){let n=t.getContext(`webgl2`,{premultipliedAlpha:!0,alpha:!0,depth:!1,stencil:!1,antialias:!1});if(!n)return null;try{return new e(n,t)}catch{return null}}constructor(e,t){this.#e=e,this.#t=t,t.addEventListener(`webglcontextlost`,this.#l),t.addEventListener(`webglcontextrestored`,this.#u),this.#d()}#l=e=>{e.preventDefault(),this.#c=!0};#u=()=>{try{this.#d(),this.#c=!1}catch{this.#c=!0}};#d(){let e=this.#e;this.#n=bn(e),e.useProgram(this.#n);let t=t=>e.getUniformLocation(this.#n,t);this.#a={texelSize:t(`u_texelSize`),keyColor:t(`u_keyColor`),tintColor:t(`u_tintColor`),colorCutoff:t(`u_colorCutoff`),colorFeathering:t(`u_colorFeathering`),maskFeathering:t(`u_maskFeathering`),sharpening:t(`u_sharpening`),despill:t(`u_despill`),despillLuminanceAdd:t(`u_despillLuminanceAdd`)},e.uniform1i(e.getUniformLocation(this.#n,`u_texture`),0),e.uniform1i(e.getUniformLocation(this.#n,`u_mask`),1),e.uniform4f(this.#a.tintColor,1,1,1,1),this.#r=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,this.#r),e.bufferData(e.ARRAY_BUFFER,new Float32Array([-1,-1,1,-1,-1,1,1,1]),e.STATIC_DRAW);let n=e.getAttribLocation(this.#n,`a_pos`);e.enableVertexAttribArray(n),e.vertexAttribPointer(n,2,e.FLOAT,!1,0,0),this.#i=e.createTexture(),e.bindTexture(e.TEXTURE_2D,this.#i),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),this.#o=e.createTexture(),e.bindTexture(e.TEXTURE_2D,this.#o),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),this.#f(),e.disable(e.DEPTH_TEST),e.disable(e.BLEND),e.clearColor(0,0,0,0)}setMask(e){this.#s=e,this.#c||this.#f()}#f(){let e=this.#e;e.bindTexture(e.TEXTURE_2D,this.#o),this.#s?e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,this.#s):e.texImage2D(e.TEXTURE_2D,0,e.RGBA,1,1,0,e.RGBA,e.UNSIGNED_BYTE,new Uint8Array([255,255,255,255]))}draw(e,t){if(this.#c||e.videoWidth===0)return;let n=this.#e;(this.#t.width!==e.videoWidth||this.#t.height!==e.videoHeight)&&(this.#t.width=e.videoWidth,this.#t.height=e.videoHeight,n.viewport(0,0,e.videoWidth,e.videoHeight)),n.activeTexture(n.TEXTURE1),n.bindTexture(n.TEXTURE_2D,this.#o),n.activeTexture(n.TEXTURE0),n.bindTexture(n.TEXTURE_2D,this.#i),n.texImage2D(n.TEXTURE_2D,0,n.RGBA,n.RGBA,n.UNSIGNED_BYTE,e),n.useProgram(this.#n),n.uniform2f(this.#a.texelSize,1/e.videoWidth,1/e.videoHeight),n.uniform3fv(this.#a.keyColor,t.keyColor),n.uniform1f(this.#a.colorCutoff,t.colorCutoff),n.uniform1f(this.#a.colorFeathering,t.colorFeathering),n.uniform1f(this.#a.maskFeathering,t.maskFeathering),n.uniform1f(this.#a.sharpening,t.sharpening),n.uniform1f(this.#a.despill,t.despill),n.uniform1f(this.#a.despillLuminanceAdd,t.despillLuminanceAdd),n.clear(n.COLOR_BUFFER_BIT),n.drawArrays(n.TRIANGLE_STRIP,0,4)}clear(){this.#c||this.#e.clear(this.#e.COLOR_BUFFER_BIT)}dispose(){this.#t.removeEventListener(`webglcontextlost`,this.#l),this.#t.removeEventListener(`webglcontextrestored`,this.#u);let e=this.#e;e.deleteBuffer(this.#r),e.deleteTexture(this.#i),e.deleteTexture(this.#o),e.deleteProgram(this.#n),e.getExtension(`WEBGL_lose_context`)?.loseContext()}},Sn=2;function Cn(e){return{...e,keyColor:[...e.keyColor]}}function wn(e,t){t.loop=e.loop,t.playbackRate=e.playbackRate}var Tn=class{#e;#t;#n;#r=null;#i=null;#a=0;#o=!1;#s=!1;#c=!1;#l=0;#u=!1;#d=null;constructor(e,t,n=e,r){this.#e=[e,n],this.#t=t,this.#n=r;for(let e of new Set(this.#e))this.#f(e)}switchSource(e){if(this.#s)return;let t=this.#i;if(t&&this.#m(t,e)&&t.status===`loading`)return;let n=this.#r;if(n&&this.#m(n,e)&&n.status===`settled`){this.#g(),n.chromaKey=Cn(e.chromaKey);return}this.#g();let r=this.#h(n),i=n?this.#o&&(n.video.ended||!n.video.paused||n.playRequestPending):this.#o;n&&r===n.video&&(this.#j(n),this.#P(),n.status=`disposed`,this.#r=null,n.video.pause());let a={generation:++this.#a,status:`loading`,video:r,rawVideoUrl:e.rawVideoUrl,normalizedVideoUrl:e.resolvedVideoUrl,maskUrl:e.maskUrl,maskImage:null,chromaKey:Cn(e.chromaKey),mediaSettled:!1,maskSettled:!e.maskUrl,playAfterHandoff:i,playRequestToken:0,playRequestPending:!1,playRejectedForCurrentIntent:!1};this.#i=a,this.#c||this.#t.setMask(null),r.pause(),r.src=e.resolvedVideoUrl,a.normalizedVideoUrl=r.src,r.load(),this.#v(a),e.maskUrl&&this.#_(a,e.maskUrl)}setPlaying(e){if(this.#s)return;let t=this.#o!==e;this.#o=e;let n=this.#r,r=this.#i;if(r?.status===`loading`&&(r.playAfterHandoff=e),!e){this.#j(n),this.#P(),n?.video.pause();return}t&&n&&(n.playRejectedForCurrentIntent=!1),n&&(n.playAfterHandoff=!0,this.#k(n))}setChromaKey(e){if(this.#s)return;let t=this.#i??this.#r;!t||t.status===`failed`||t.status===`disposed`||(t.chromaKey=Cn(e),t===this.#r&&t.status===`settled`&&t.video.paused&&this.#D(t)&&this.#T(t))}dispose(){if(!this.#s){this.#s=!0,this.#a++,this.#j(this.#r),this.#j(this.#i),this.#P(),this.#r&&(this.#r.status=`disposed`),this.#i&&(this.#i.status=`disposed`),this.#r=null,this.#i=null;for(let e of new Set(this.#e))this.#p(e),e.pause()}}#f(e){e.addEventListener(`play`,this.#x),e.addEventListener(`pause`,this.#S),e.addEventListener(`ended`,this.#S),e.addEventListener(`seeked`,this.#C),e.addEventListener(`loadeddata`,this.#y),e.addEventListener(`error`,this.#b)}#p(e){e.removeEventListener(`play`,this.#x),e.removeEventListener(`pause`,this.#S),e.removeEventListener(`ended`,this.#S),e.removeEventListener(`seeked`,this.#C),e.removeEventListener(`loadeddata`,this.#y),e.removeEventListener(`error`,this.#b)}#m(e,t){return e.rawVideoUrl===t.rawVideoUrl&&e.maskUrl===t.maskUrl}#h(e){return e&&this.#e[0]===e.video?this.#e[1]:this.#e[0]}#g(){let e=this.#i;e&&(this.#j(e),e.status=`disposed`,e.video.pause(),this.#i=null)}#_(e,t){let n=new Image;n.src=t,n.decode().then(()=>{this.#O(e)&&(e.maskImage=n,e.maskSettled=!0,this.#w(e))}).catch(()=>{this.#O(e)&&(console.warn(`Failed to load chroma-key mask "${t}".`),e.maskSettled=!0,this.#w(e))})}#v(e){let t;try{t=e.video.play()}catch{return}Promise.resolve(t).catch(()=>{})}#y=e=>{let t=this.#i;!t||t.video!==e.currentTarget||!this.#O(t)||this.#D(t)&&(t.mediaSettled=!0,t.video.pause(),this.#w(t))};#b=e=>{let t=e.currentTarget,n=this.#i;if(n?.video===t&&n.status===`loading`){n.status=`failed`,this.#j(n),n.video.pause(),!this.#r&&!this.#c&&this.#E();return}let r=this.#r;!r||r.video!==t||r.status!==`settled`||(r.status=`failed`,this.#j(r),this.#P(),r.video.pause(),this.#i||this.#E())};#x=e=>{let t=e.currentTarget;if(this.#i?.video===t)return;let n=this.#r;if(!n||n.video!==t||n.status!==`settled`){t&&`pause`in t&&t.pause();return}n.playRejectedForCurrentIntent=!1,n.playAfterHandoff=!0,this.#i?.status===`loading`&&(this.#i.playAfterHandoff=!0),n.video.paused||this.#M(n)};#S=e=>{let t=this.#r;!t||t.video!==e.currentTarget||t.status!==`settled`||(this.#j(t),this.#P(),this.#T(t),t.playAfterHandoff=!1,this.#i?.status===`loading`&&(this.#i.playAfterHandoff=!1))};#C=e=>{let t=this.#r;!t||t.video!==e.currentTarget||t.status!==`settled`||!t.video.paused||this.#T(t)};#w(e){if(!this.#O(e)||!e.mediaSettled||!e.maskSettled||!this.#D(e))return;let t=this.#r;this.#P(),this.#j(t),t&&t.video!==e.video&&wn(t.video,e.video),e.video.pause(),e.status=`settled`,this.#i=null,this.#r=e,this.#t.setMask(e.maskImage),this.#T(e),this.#n?.(e.video),t&&t!==e&&(t.status=`disposed`,t.video.pause()),this.#o&&e.playAfterHandoff&&this.#k(e)}#T(e){this.#s||this.#r!==e||e.status!==`settled`||!this.#D(e)||(this.#t.draw(e.video,e.chromaKey),this.#c=!0)}#E(){this.#t.clear(),this.#c=!1}#D(e){return e.video.readyState>=Sn&&e.video.currentSrc===e.normalizedVideoUrl}#O(e){return!this.#s&&this.#i===e&&e.status===`loading`&&e.generation===this.#a}#k(e){if(this.#s||this.#r!==e||e.status!==`settled`||!this.#o||!e.playAfterHandoff||!e.video.paused||e.playRequestPending||e.playRejectedForCurrentIntent)return;let t=++e.playRequestToken;e.playRequestPending=!0;let n;try{n=e.video.play()}catch{this.#A(e,t,!1);return}Promise.resolve(n).then(()=>this.#A(e,t,!0),()=>this.#A(e,t,!1))}#A(e,t,n){this.#s||this.#r!==e||e.playRequestToken!==t||(e.playRequestPending=!1,e.playRejectedForCurrentIntent=!n)}#j(e){e&&(e.playRequestToken++,e.playRequestPending=!1)}#M(e){this.#u||this.#s||this.#r!==e||e.status!==`settled`||e.video.paused||(this.#u=!0,this.#l++,this.#N(e,this.#l))}#N(e,t){let n=e.generation,r=e.video,i=0,a=()=>{let a=this.#d;!a||a.generation!==t||a.handle!==i||this.#l!==t||!this.#u||this.#r!==e||e.generation!==n||e.status!==`settled`||r.paused||(this.#d=null,this.#T(e),this.#u&&this.#l===t&&this.#r===e&&!r.paused&&this.#N(e,t))};r.requestVideoFrameCallback?(i=r.requestVideoFrameCallback(a),this.#d={generation:t,kind:`rvfc`,handle:i,video:r}):(i=requestAnimationFrame(a),this.#d={generation:t,kind:`raf`,handle:i,video:r})}#P(){this.#l++,this.#u=!1;let e=this.#d;this.#d=null,e&&(e.kind===`rvfc`?e.video.cancelVideoFrameCallback?.(e.handle):cancelAnimationFrame(e.handle))}},En=l(`<img alt="" class="svelte-r30mxh"/>`),Dn=l(`<canvas class="svelte-r30mxh"></canvas> <video playsinline="" preload="auto" class="svelte-r30mxh"></video> <video playsinline="" preload="auto" class="svelte-r30mxh"></video>`,3),On=l(`<div><!></div>`);function kn(n,i){A(i,!0);let a=C(i,`loop`,3,!0),o=C(i,`playing`,3,!0),c=C(i,`videoElement`,15),l=C(i,`class`,3,``),u=e(void 0),f=e(void 0),h=e(void 0),x=e(!1),S=null,w=e(null);function D(e){return{...e,keyColor:[...e.keyColor]}}R(()=>{if(S=xn.create(m(u)),!S){p(x,!0);return}let e=S;c(m(f));let t=new Tn(m(f),e,m(h),e=>{c(e)});return p(w,t),()=>{t.dispose(),m(w)===t&&p(w,null),e.dispose(),S===e&&(S=null)}}),v(()=>{let e=m(w),t=i.src,n=t.src,r=t.mask?.src;e&&e.switchSource({rawVideoUrl:n,resolvedVideoUrl:Yt(n),maskUrl:r,chromaKey:_(()=>D(t.chromaKey))})}),v(()=>{m(w)?.setPlaying(o())}),v(()=>{let e=i.src.chromaKey,t={keyColor:[e.keyColor[0],e.keyColor[1],e.keyColor[2]],colorCutoff:e.colorCutoff,colorFeathering:e.colorFeathering,maskFeathering:e.maskFeathering,sharpening:e.sharpening,despill:e.despill,despillLuminanceAdd:e.despillLuminanceAdd};m(w)?.setChromaKey(t)});var O=On(),k=s(O),M=e=>{var n=j(),a=b(n),o=e=>{var n=j();r(b(n),()=>i.fallback),t(e,n)},s=e=>{var n=En();g(()=>E(n,`src`,i.src.fallback.src)),t(e,n)};d(a,e=>{i.fallback?e(o):i.src.fallback&&e(s,1)}),t(e,n)},N=e=>{var n=Dn(),r=b(n);F(r,e=>p(u,e),()=>m(u));var i=y(r,2);i.muted=!0,F(i,e=>p(f,e),()=>m(f));var o=y(i,2);o.muted=!0,F(o,e=>p(h,e),()=>m(h)),g(()=>{i.loop=a(),o.loop=a()}),t(e,n)};d(k,e=>{m(x)?e(M):e(N,-1)}),T(O),g(()=>V(O,1,`fundus-chroma-key-video ${l()??``}`,`svelte-r30mxh`)),t(n,O),z()}var An=l(`<img/>`),jn=l(`<div class="stage checkerboard svelte-10eps7e"><!></div>`);function Mn(e,n){A(n,!0);let r=D(()=>!n.asset.proxy||n.asset.proxy.width===void 0||n.asset.proxy.height===void 0?null:{kind:`image`,src:n.asset.proxy.url,byteSize:n.asset.proxy.fileSize,width:n.asset.proxy.width,height:n.asset.proxy.height});var i=jn(),a=s(i),o=e=>{Zt(e,{get src(){return m(r)},get alt(){return n.asset.id}})},c=e=>{var r=An();g(()=>{E(r,`src`,n.asset.rawUrl),E(r,`alt`,n.asset.id)}),t(e,r)};d(a,e=>{m(r)?e(o):e(c,-1)}),T(i),t(e,i),z()}var Nn=l(`<img loading="lazy" class="svelte-gdduef"/>`);function Pn(e,n){A(n,!0);var r=Nn();g(()=>{E(r,`src`,n.asset.proxy?.url??n.asset.rawUrl),E(r,`alt`,n.asset.id)}),t(e,r),z()}var Fn=new Map;function In(e,t=()=>new window.Image){let n=Fn.get(e);if(n)return n;let r=new Promise((n,r)=>{let i=t();i.onload=()=>n({width:i.naturalWidth,height:i.naturalHeight}),i.onerror=()=>r(Error(`Could not load image dimensions.`)),i.src=e});return Fn.set(e,r),r.catch(()=>{Fn.get(e)===r&&Fn.delete(e)}),r}var Ln=l(`<button> </button>`),Rn=l(`<section class="svelte-1yd7n22"><!> <div class="insets svelte-1yd7n22"></div></section>`),zn=l(`<section class="svelte-1yd7n22"><!> <div><!> <!></div></section>`),Bn=l(`<section class="svelte-1yd7n22"><!> <!></section>`),Vn=l(`<section class="svelte-1yd7n22"><!> <div class="modes svelte-1yd7n22"></div></section> <!> <!> <section class="svelte-1yd7n22"><!> <div class="insets svelte-1yd7n22"></div></section> <!> <section class="svelte-1yd7n22"><!> <div class="field"><!></div></section> <!>`,1);function Hn(n,r){A(r,!0);let i=D(()=>ce.validateParameters(r.parameters)),a=D(()=>m(i).overdraw??xe()),c=D(()=>m(i).compression??{x:0,y:0}),l=e(null),u=null;v(()=>{let e=r.asset.rawUrl;u!==e&&(u=e,p(l,null));let t=!1;return In(e).then(n=>{!t&&u===e&&p(l,n,!0)},()=>{}),()=>{t=!0}});let _=[{value:`nine`,label:`9-slice`},{value:`three-horizontal`,label:`3-slice horizontal`},{value:`three-vertical`,label:`3-slice vertical`},{value:`one`,label:`No slicing`}],x=[{key:`top`,label:`Top`,icon:`arrow-up`,axis:`y`},{key:`right`,label:`Right`,icon:`arrow-right`,axis:`x`},{key:`bottom`,label:`Bottom`,icon:`arrow-down`,axis:`y`},{key:`left`,label:`Left`,icon:`arrow-left`,axis:`x`}];function S(e,t){let n=be(t);return e===`x`?n.horizontal:n.vertical}let C=D(()=>m(l)?.width??2**53-1),w=D(()=>m(l)?.height??2**53-1);function E(e){r.onParametersCommit(e)}function O(e){E({...m(i),mode:e})}function k(e){return ie(m(i).insets,e,m(C),m(w))}function N(e,t,n){let a=Math.max(0,Math.min(k(e),Math.round(t??0))),o={...m(i),insets:{...m(i).insets,[e]:a}};n?E(o):r.onParametersChange(o)}function P(e){return U(m(a),e,m(C),m(w))}function F(e,t,n){let o=Math.max(0,Math.min(P(e),Math.round(t??0))),s={...m(i),overdraw:{...m(a),[e]:o}};n?E(s):r.onParametersChange(s)}function I(e,t,n){let a=Math.max(0,Math.min(100,Math.round(t??0))),o={...m(c),[e]:a},{compression:s,...l}=m(i),u=o.x===0&&o.y===0?l:{...l,compression:o};n?E(u):r.onParametersChange(u)}function L(e,t){let n={...m(i),pixelRatio:Math.max(1,Math.round(e??1))};t?E(n):r.onParametersChange(n)}function R(e){E({...m(i),preset:e})}var ee=Vn(),H=b(ee),W=s(H);kt(W,{children:(e,n)=>{B(),t(e,f(`Mode`))},$$slots:{default:!0}});var G=y(W,2);h(G,21,()=>_,e=>e.value,(e,n)=>{var r=Ln();let a;var c=s(r,!0);T(r),g(()=>{a=V(r,1,`svelte-1yd7n22`,null,a,{on:m(i).mode===m(n).value}),M(c,m(n).label)}),o(`click`,r,()=>O(m(n).value)),t(e,r)}),T(G),T(H);var K=y(H,2),q=e=>{var n=Rn(),r=s(n);kt(r,{children:(e,n)=>{B(),t(e,f(`Insets (px)`))},$$slots:{default:!0}});var a=y(r,2);h(a,21,()=>x,e=>e.key,(e,n)=>{var r=j(),a=b(r),o=e=>{{let t=e=>{Ce(e,{get name(){return m(n).icon}})},r=D(()=>k(m(n).key));Dt(e,{get label(){return m(n).label},min:0,get max(){return m(r)},rangeFill:!1,get value(){return m(i).insets[m(n).key]},onChange:e=>N(m(n).key,e,!1),onCommit:e=>N(m(n).key,e,!0),icon:t,$$slots:{icon:!0}})}},s=D(()=>S(m(n).axis,m(i).mode));d(a,e=>{m(s)&&e(o)}),t(e,r)}),T(a),T(n),t(e,n)};d(K,e=>{m(i).mode!==`one`&&e(q)});var te=y(K,2),ne=e=>{var n=zn(),r=s(n);kt(r,{children:(e,n)=>{B(),t(e,f(`Stretch compression`))},$$slots:{default:!0}});var a=y(r,2);let o;var l=s(a),u=e=>{Dt(e,{label:`X`,min:0,max:100,suffix:`%`,get value(){return m(c).x},onChange:e=>I(`x`,e,!1),onCommit:e=>I(`x`,e,!0)})},p=D(()=>S(`x`,m(i).mode));d(l,e=>{m(p)&&e(u)});var h=y(l,2),_=e=>{Dt(e,{label:`Y`,min:0,max:100,suffix:`%`,get value(){return m(c).y},onChange:e=>I(`y`,e,!1),onCommit:e=>I(`y`,e,!0)})},v=D(()=>S(`y`,m(i).mode));d(h,e=>{m(v)&&e(_)}),T(a),T(n),g(()=>o=V(a,1,`insets svelte-1yd7n22`,null,o,{single:m(i).mode!==`nine`})),t(e,n)};d(te,e=>{m(i).mode!==`one`&&e(ne)});var re=y(te,2),J=s(re);kt(J,{children:(e,n)=>{B(),t(e,f(`Overdraw (px)`))},$$slots:{default:!0}});var Y=y(J,2);h(Y,21,()=>x,e=>e.key,(e,t)=>{{let n=e=>{Ce(e,{get name(){return m(t).icon}})},r=D(()=>P(m(t).key));Dt(e,{get label(){return m(t).label},min:0,get max(){return m(r)},rangeFill:!1,get value(){return m(a)[m(t).key]},onChange:e=>F(m(t).key,e,!1),onCommit:e=>F(m(t).key,e,!0),icon:n,$$slots:{icon:!0}})}}),T(Y),T(re);var X=y(re,2),Z=e=>{var n=Bn(),r=s(n);kt(r,{children:(e,n)=>{B(),t(e,f(`Pixel ratio`))},$$slots:{default:!0}}),Dt(y(r,2),{label:`Factor`,min:1,get value(){return m(i).pixelRatio},onChange:e=>L(e,!1),onCommit:e=>L(e,!0),icon:e=>{Ce(e,{name:`ratio`})},$$slots:{icon:!0}}),T(n),t(e,n)};d(X,e=>{m(i).mode===`nine`&&e(Z)});var ae=y(X,2),Q=s(ae);kt(Q,{children:(e,n)=>{B(),t(e,f(`Output`))},$$slots:{default:!0}});var oe=y(Q,2);Nt(s(oe),{label:`Preset`,caption:`Preset`,get value(){return m(i).preset},get options(){return r.presetNames},onChange:R,icon:e=>{Ce(e,{name:`preset`})},$$slots:{icon:!0}}),T(oe),T(ae),Lt(y(ae,2),{get proxy(){return r.asset.proxy},showDimensions:!0}),t(n,ee),z()}a([`click`]);var Un=e(`dom`),Wn=l(`<div class="preview-panel svelte-1mjaycs"><div class="bar svelte-1mjaycs"><span class="size svelte-1mjaycs"> </span> <div class="backends svelte-1mjaycs" role="group" aria-label="Rendering backend"><button>DOM</button> <button>Canvas</button></div> <button class="reset svelte-1mjaycs">Reset</button></div> <div class="stage checkerboard svelte-1mjaycs"><div class="box svelte-1mjaycs"><!> <div class="handle edge-right svelte-1mjaycs" role="separator" aria-label="Drag width" aria-orientation="vertical"></div> <div class="handle edge-bottom svelte-1mjaycs" role="separator" aria-label="Drag height" aria-orientation="horizontal"></div> <div class="handle corner svelte-1mjaycs" role="separator" aria-label="Drag size"></div></div></div></div>`);function Gn(n,r){A(r,!0);function i(){return Math.round(Math.min(360,Math.max(80,r.entry.sourceWidth*2)))}function a(){return Math.round(i()*r.entry.sourceHeight/Math.max(1,r.entry.sourceWidth))}let l=e(x(_(()=>i()))),u=e(x(_(()=>a()))),d=e(null),f={pointerX:0,pointerY:0,width:0,height:0};function h(e,t){t.preventDefault(),p(d,e,!0),f={pointerX:t.clientX,pointerY:t.clientY,width:m(l),height:m(u)},vt(t.currentTarget,t)}function v(e){m(d)&&(m(d)!==`y`&&p(l,Math.max(16,Math.round(f.width+(e.clientX-f.pointerX))),!0),m(d)!==`x`&&p(u,Math.max(16,Math.round(f.height+(e.clientY-f.pointerY))),!0))}function b(e){m(d)&&yt(e.currentTarget,e.pointerId),p(d,null)}function C(){p(l,i(),!0),p(u,a(),!0)}var w=Wn(),E=s(w),D=s(E),O=s(D);T(D);var k=y(D,2),j=s(k);let N;var P=y(j,2);let F;T(k);var I=y(k,2);T(E);var L=y(E,2),R=s(L);let B;var ee=s(R);hn(ee,{get src(){return r.entry},get backend(){return m(Un)},class:`fill`});var H=y(ee,2),U=y(H,2),W=y(U,2);T(R),T(L),T(w),g(()=>{M(O,`${m(l)??``} × ${m(u)??``} px`),N=V(j,1,`svelte-1mjaycs`,null,N,{on:m(Un)===`dom`}),F=V(P,1,`svelte-1mjaycs`,null,F,{on:m(Un)===`canvas`}),B=S(R,``,B,{width:`${m(l)??``}px`,height:`${m(u)??``}px`})}),o(`click`,j,()=>p(Un,`dom`)),o(`click`,P,()=>p(Un,`canvas`)),o(`click`,I,C),o(`pointerdown`,H,e=>h(`x`,e)),o(`pointermove`,H,v),o(`pointerup`,H,b),c(`pointercancel`,H,b),o(`pointerdown`,U,e=>h(`y`,e)),o(`pointermove`,U,v),o(`pointerup`,U,b),c(`pointercancel`,U,b),o(`pointerdown`,W,e=>h(`both`,e)),o(`pointermove`,W,v),o(`pointerup`,W,b),c(`pointercancel`,W,b),t(n,w),z()}a([`click`,`pointerdown`,`pointermove`,`pointerup`]);var Kn=l(`<div></div>`),qn=l(`<div class="overdraw-band svelte-1jfrg6d"></div>`),Jn=l(`<div role="slider" aria-label="Left slice line" tabindex="0"><span class="tag svelte-1jfrg6d"> </span></div> <div role="slider" aria-label="Right slice line" tabindex="0"><span class="tag svelte-1jfrg6d"> </span></div>`,1),Yn=l(`<div role="slider" aria-label="Top slice line" tabindex="0"><span class="tag svelte-1jfrg6d"> </span></div> <div role="slider" aria-label="Bottom slice line" tabindex="0"><span class="tag svelte-1jfrg6d"> </span></div>`,1),Xn=l(`<div class="canvas svelte-1jfrg6d"><div class="toolbar svelte-1jfrg6d"><button title="Zoom out" class="svelte-1jfrg6d">−</button> <span class="zoom svelte-1jfrg6d"> </span> <button title="Zoom in" class="svelte-1jfrg6d">+</button> <button title="100%">1:1</button> <button>Fit</button> <span class="dims svelte-1jfrg6d"> </span></div> <div role="application" aria-label="Slice canvas — drag to pan, pinch/⌘+scroll to zoom"><div class="image-wrap svelte-1jfrg6d"><img alt="" draggable="false" class="svelte-1jfrg6d"/> <!> <!> <!> <!> <!> <div role="slider" aria-label="Left overdraw line" tabindex="0"><span class="tag svelte-1jfrg6d"> </span></div> <div role="slider" aria-label="Right overdraw line" tabindex="0"><span class="tag svelte-1jfrg6d"> </span></div> <div role="slider" aria-label="Top overdraw line" tabindex="0"><span class="tag svelte-1jfrg6d"> </span></div> <div role="slider" aria-label="Bottom overdraw line" tabindex="0"><span class="tag svelte-1jfrg6d"> </span></div> <!> <!></div></div></div>`);function Zn(n,r){A(r,!0);let i=e(void 0),a=e(void 0),l=e(null),u=null,f=D(()=>be(r.mode)),h=D(()=>m(f).horizontal),_=D(()=>m(f).vertical);function x(e,t){return m(l)?.target===e&&m(l).side===t}let C=e(`fit`),w=e(1),O=e(0),k=e(0),j=e(0),N=e(0),P=e(!1),I=new Map,L=null;function R(e){return Math.max(.05,Math.min(8,e))}v(()=>{let e=m(i);if(!e)return;let t=new ResizeObserver(()=>{p(j,e.clientWidth,!0),p(N,e.clientHeight,!0)});return t.observe(e),()=>t.disconnect()}),v(()=>{if(m(C)===`free`||r.width===0||r.height===0||m(j)===0||m(N)===0)return;let e=R(Math.min((m(j)-32)/r.width,(m(N)-32)/r.height));B(m(C)===`one`?1:e)});function B(e){p(w,e,!0),p(O,(m(j)-r.width*e)/2),p(k,(m(N)-r.height*e)/2)}function ee(e,t){if(!m(i))return{x:e,y:t};let n=m(i).getBoundingClientRect();return{x:e-n.left-m(i).clientLeft,y:t-n.top-m(i).clientTop}}function H(e,t,n){let r=R(e);p(O,t-(t-m(O))*(r/m(w))),p(k,n-(n-m(k))*(r/m(w))),p(w,r,!0),p(C,`free`)}function W(e,t,n){return Math.max(t,Math.min(n,Math.round(e)))}function G(){p(C,`fit`)}function K(){p(C,`one`)}function q(e){H(m(w)*e,m(j)/2,m(N)/2)}function te(){let[e,t]=[...I.values()];return{distance:Math.hypot(e.x-t.x,e.y-t.y),midX:(e.x+t.x)/2,midY:(e.y+t.y)/2}}function ne(e){try{m(i)&&vt(m(i),e)}catch{}I.set(e.pointerId,{x:e.clientX,y:e.clientY}),I.size===2?L=te():I.size===1&&p(P,!0)}function re(e){let t=I.get(e.pointerId);if(t)if(I.set(e.pointerId,{x:e.clientX,y:e.clientY}),I.size>=2&&L){let e=te(),t=ee(L.midX,L.midY);H(m(w)*(e.distance/L.distance),t.x,t.y),p(O,m(O)+(e.midX-L.midX)),p(k,m(k)+(e.midY-L.midY)),L=e}else I.size===1&&(p(O,m(O)+(e.clientX-t.x)),p(k,m(k)+(e.clientY-t.y)),p(C,`free`))}function J(e){I.delete(e.pointerId),I.size<2&&(L=null),I.size===0&&p(P,!1)}function Y(e){if(e.preventDefault(),e.ctrlKey||e.metaKey){let t=ee(e.clientX,e.clientY);H(m(w)*Math.exp(-e.deltaY*.01),t.x,t.y)}else p(O,m(O)-e.deltaX),p(k,m(k)-e.deltaY),p(C,`free`)}function X(e,t,n){n.preventDefault(),n.stopPropagation(),p(l,{target:e,side:t},!0),u=null,vt(n.currentTarget,n)}function Z(e){if(!m(l)||!m(a))return;let t=m(a).getBoundingClientRect(),n=(e.clientX-t.left)/m(w),i=(e.clientY-t.top)/m(w),{target:o,side:s}=m(l),c={...o===`inset`?r.insets:r.overdraw};s===`left`?c.left=W(n,0,oe(o,`left`)):s===`right`?c.right=W(r.width-n,0,oe(o,`right`)):s===`top`?c.top=W(i,0,oe(o,`top`)):s===`bottom`&&(c.bottom=W(r.height-i,0,oe(o,`bottom`))),ae(o,c)}function ae(e,t){u={target:e,value:t},e===`inset`?r.onChange(t):r.onOverdrawChange(t)}function Q(e){let t=m(l)!==null;m(l)&&yt(e.currentTarget,e.pointerId),p(l,null),t&&u&&r.onCommit(u.target,u.value),u=null}function oe(e,t){let n=e===`inset`?r.insets:r.overdraw;return e===`inset`?ie(n,t,r.width,r.height):U(n,t,r.width,r.height)}function se(e,t,n){let i=e===`inset`?r.insets:r.overdraw,a={...i};a[t]=W(i[t]+n,0,oe(e,t)),a[t]!==i[t]&&(ae(e,a),r.onCommit(e,a),u=null)}function ce(e,t,n,r){let i=r.shiftKey?10:1,a=n===`x`?`ArrowRight`:`ArrowUp`,o=n===`x`?`ArrowLeft`:`ArrowDown`;if(r.key===a)se(e,t,i);else if(r.key===o)se(e,t,-i);else return;r.preventDefault()}var le=Xn(),ue=s(le),de=s(ue),fe=y(de,2),pe=s(fe);T(fe);var me=y(fe,2),he=y(me,2);let ge;var _e=y(he,2);let $;var ve=y(_e,2),ye=s(ve);T(ve),T(ue);var xe=y(ue,2);let Se;var Ce=s(xe);let we;var Te=s(Ce),Ee=y(Te,2),De=e=>{var n=Kn();let i,a;g(()=>{i=V(n,1,`center-rect svelte-1jfrg6d`,null,i,{"side-edges":!m(h),"cap-edges":!m(_)}),a=S(n,``,a,{left:`${(m(h)?r.insets.left:0)*m(w)}px`,top:`${(m(_)?r.insets.top:0)*m(w)}px`,right:`${(m(h)?r.insets.right:0)*m(w)}px`,bottom:`${(m(_)?r.insets.bottom:0)*m(w)}px`})}),t(e,n)};d(Ee,e=>{(m(h)||m(_))&&e(De)});var Oe=y(Ee,2),ke=e=>{var n=qn();let i;g(()=>i=S(n,``,i,{left:`0`,top:`0`,bottom:`0`,width:`${r.overdraw.left*m(w)}px`})),t(e,n)};d(Oe,e=>{r.overdraw.left>0&&e(ke)});var Ae=y(Oe,2),je=e=>{var n=qn();let i;g(()=>i=S(n,``,i,{right:`0`,top:`0`,bottom:`0`,width:`${r.overdraw.right*m(w)}px`})),t(e,n)};d(Ae,e=>{r.overdraw.right>0&&e(je)});var Me=y(Ae,2),Ne=e=>{var n=qn();let i;g(()=>i=S(n,``,i,{top:`0`,left:`${r.overdraw.left*m(w)}px`,right:`${r.overdraw.right*m(w)}px`,height:`${r.overdraw.top*m(w)}px`})),t(e,n)};d(Me,e=>{r.overdraw.top>0&&e(Ne)});var Pe=y(Me,2),Fe=e=>{var n=qn();let i;g(()=>i=S(n,``,i,{bottom:`0`,left:`${r.overdraw.left*m(w)}px`,right:`${r.overdraw.right*m(w)}px`,height:`${r.overdraw.bottom*m(w)}px`})),t(e,n)};d(Pe,e=>{r.overdraw.bottom>0&&e(Fe)});var Ie=y(Pe,2);let Le;E(Ie,`aria-valuemin`,0);let Re;var ze=s(Ie),Be=s(ze,!0);T(ze),T(Ie);var Ve=y(Ie,2);let He;E(Ve,`aria-valuemin`,0);let Ue;var We=s(Ve),Ge=s(We,!0);T(We),T(Ve);var Ke=y(Ve,2);let qe;E(Ke,`aria-valuemin`,0);let Je;var Ye=s(Ke),Xe=s(Ye,!0);T(Ye),T(Ke);var Ze=y(Ke,2);let Qe;E(Ze,`aria-valuemin`,0);let $e;var et=s(Ze),tt=s(et,!0);T(et),T(Ze);var nt=y(Ze,2),rt=e=>{var n=Jn(),i=b(n);let a;E(i,`aria-valuemin`,0);let l;var u=s(i),d=s(u,!0);T(u),T(i);var f=y(i,2);let p;E(f,`aria-valuemin`,0);let h;var _=s(f),v=s(_,!0);T(_),T(f),g((e,t,n,o)=>{a=V(i,1,`line v svelte-1jfrg6d`,null,a,e),E(i,`aria-valuenow`,r.insets.left),E(i,`aria-valuemax`,t),l=S(i,``,l,{left:`${r.insets.left*m(w)}px`}),M(d,r.insets.left),p=V(f,1,`line v svelte-1jfrg6d`,null,p,n),E(f,`aria-valuenow`,r.insets.right),E(f,`aria-valuemax`,o),h=S(f,``,h,{left:`${(r.width-r.insets.right)*m(w)}px`}),M(v,r.insets.right)},[()=>({active:x(`inset`,`left`)}),()=>oe(`inset`,`left`),()=>({active:x(`inset`,`right`)}),()=>oe(`inset`,`right`)]),o(`pointerdown`,i,e=>X(`inset`,`left`,e)),o(`pointermove`,i,Z),o(`pointerup`,i,Q),c(`pointercancel`,i,Q),o(`keydown`,i,e=>ce(`inset`,`left`,`x`,e)),o(`pointerdown`,f,e=>X(`inset`,`right`,e)),o(`pointermove`,f,Z),o(`pointerup`,f,Q),c(`pointercancel`,f,Q),o(`keydown`,f,e=>ce(`inset`,`right`,`x`,e)),t(e,n)};d(nt,e=>{m(h)&&e(rt)});var it=y(nt,2),at=e=>{var n=Yn(),i=b(n);let a;E(i,`aria-valuemin`,0);let l;var u=s(i),d=s(u,!0);T(u),T(i);var f=y(i,2);let p;E(f,`aria-valuemin`,0);let h;var _=s(f),v=s(_,!0);T(_),T(f),g((e,t,n,o)=>{a=V(i,1,`line h svelte-1jfrg6d`,null,a,e),E(i,`aria-valuenow`,r.insets.top),E(i,`aria-valuemax`,t),l=S(i,``,l,{top:`${r.insets.top*m(w)}px`}),M(d,r.insets.top),p=V(f,1,`line h svelte-1jfrg6d`,null,p,n),E(f,`aria-valuenow`,r.insets.bottom),E(f,`aria-valuemax`,o),h=S(f,``,h,{top:`${(r.height-r.insets.bottom)*m(w)}px`}),M(v,r.insets.bottom)},[()=>({active:x(`inset`,`top`)}),()=>oe(`inset`,`top`),()=>({active:x(`inset`,`bottom`)}),()=>oe(`inset`,`bottom`)]),o(`pointerdown`,i,e=>X(`inset`,`top`,e)),o(`pointermove`,i,Z),o(`pointerup`,i,Q),c(`pointercancel`,i,Q),o(`keydown`,i,e=>ce(`inset`,`top`,`y`,e)),o(`pointerdown`,f,e=>X(`inset`,`bottom`,e)),o(`pointermove`,f,Z),o(`pointerup`,f,Q),c(`pointercancel`,f,Q),o(`keydown`,f,e=>ce(`inset`,`bottom`,`y`,e)),t(e,n)};d(it,e=>{m(_)&&e(at)}),T(Ce),F(Ce,e=>p(a,e),()=>m(a)),T(xe),F(xe,e=>p(i,e),()=>m(i)),T(le),g((e,t,n,i,a,o,s,c,l)=>{M(pe,`${e??``}%`),ge=V(he,1,`svelte-1jfrg6d`,null,ge,{active:m(C)===`one`}),$=V(_e,1,`svelte-1jfrg6d`,null,$,{active:m(C)===`fit`}),M(ye,`${r.width??``} × ${r.height??``} px`),Se=V(xe,1,`viewport checkerboard svelte-1jfrg6d`,null,Se,{panning:m(P)}),we=S(Ce,``,we,{width:`${r.width*m(w)}px`,height:`${r.height*m(w)}px`,transform:`translate(${m(O)??``}px, ${m(k)??``}px)`}),E(Te,`src`,r.src),Le=V(Ie,1,`line v overdraw-line svelte-1jfrg6d`,null,Le,t),E(Ie,`aria-valuenow`,r.overdraw.left),E(Ie,`aria-valuemax`,n),Re=S(Ie,``,Re,{left:`${r.overdraw.left*m(w)}px`}),M(Be,r.overdraw.left),He=V(Ve,1,`line v overdraw-line svelte-1jfrg6d`,null,He,i),E(Ve,`aria-valuenow`,r.overdraw.right),E(Ve,`aria-valuemax`,a),Ue=S(Ve,``,Ue,{left:`${(r.width-r.overdraw.right)*m(w)}px`}),M(Ge,r.overdraw.right),qe=V(Ke,1,`line h overdraw-line svelte-1jfrg6d`,null,qe,o),E(Ke,`aria-valuenow`,r.overdraw.top),E(Ke,`aria-valuemax`,s),Je=S(Ke,``,Je,{top:`${r.overdraw.top*m(w)}px`}),M(Xe,r.overdraw.top),Qe=V(Ze,1,`line h overdraw-line svelte-1jfrg6d`,null,Qe,c),E(Ze,`aria-valuenow`,r.overdraw.bottom),E(Ze,`aria-valuemax`,l),$e=S(Ze,``,$e,{top:`${(r.height-r.overdraw.bottom)*m(w)}px`}),M(tt,r.overdraw.bottom)},[()=>Math.round(m(w)*100),()=>({active:x(`overdraw`,`left`)}),()=>oe(`overdraw`,`left`),()=>({active:x(`overdraw`,`right`)}),()=>oe(`overdraw`,`right`),()=>({active:x(`overdraw`,`top`)}),()=>oe(`overdraw`,`top`),()=>({active:x(`overdraw`,`bottom`)}),()=>oe(`overdraw`,`bottom`)]),o(`click`,de,()=>q(1/1.25)),o(`click`,me,()=>q(1.25)),o(`click`,he,K),o(`click`,_e,G),o(`pointerdown`,xe,ne),o(`pointermove`,xe,re),o(`pointerup`,xe,J),c(`pointercancel`,xe,J),c(`wheel`,xe,Y),o(`pointerdown`,Ie,e=>X(`overdraw`,`left`,e)),o(`pointermove`,Ie,Z),o(`pointerup`,Ie,Q),c(`pointercancel`,Ie,Q),o(`keydown`,Ie,e=>ce(`overdraw`,`left`,`x`,e)),o(`pointerdown`,Ve,e=>X(`overdraw`,`right`,e)),o(`pointermove`,Ve,Z),o(`pointerup`,Ve,Q),c(`pointercancel`,Ve,Q),o(`keydown`,Ve,e=>ce(`overdraw`,`right`,`x`,e)),o(`pointerdown`,Ke,e=>X(`overdraw`,`top`,e)),o(`pointermove`,Ke,Z),o(`pointerup`,Ke,Q),c(`pointercancel`,Ke,Q),o(`keydown`,Ke,e=>ce(`overdraw`,`top`,`y`,e)),o(`pointerdown`,Ze,e=>X(`overdraw`,`bottom`,e)),o(`pointermove`,Ze,Z),o(`pointerup`,Ze,Q),c(`pointercancel`,Ze,Q),o(`keydown`,Ze,e=>ce(`overdraw`,`bottom`,`y`,e)),t(n,le),z()}a([`click`,`pointerdown`,`pointermove`,`pointerup`,`keydown`]);var Qn=l(`<div class="empty error svelte-1ea2lvt"> </div>`),$n=l(`<div class="empty svelte-1ea2lvt">Loading image…</div>`),er=l(`<div class="pane svelte-1ea2lvt"><!></div>`),tr=l(`<div class="editor svelte-1ea2lvt"><div class="tabs svelte-1ea2lvt"><button>Slicing</button> <button>Preview</button></div> <!></div>`);function nr(n,r){A(r,!0);let a=e(`slicing`),c=e(null),l=e(null),u=null;v(()=>{let e=r.asset.rawUrl;u!==e&&(u=e,p(c,null),p(l,null));let t=!1;return In(e).then(n=>{!t&&u===e&&p(c,n,!0)},n=>{!t&&u===e&&p(l,n instanceof Error?n.message:String(n),!0)}),()=>{t=!0}});let f=D(()=>{try{return ce.validateParameters(r.parameters)}catch{return null}}),h=D(()=>{if(!m(f)||!m(c))return null;let e=r.asset.proxy?.width??m(c).width,t=r.asset.proxy?.height??m(c).height;return{kind:`slice`,src:r.asset.proxy?.url??r.asset.rawUrl,byteSize:r.asset.proxy?.fileSize??0,slicing:{mode:m(f).mode,insets:Se({...m(f),width:e,height:t}),pixelRatio:m(f).pixelRatio,...m(f).overdraw?{overdraw:m(f).overdraw}:{}},sourceWidth:e,sourceHeight:t}});var _=tr(),b=s(_),x=s(b);let S;var C=y(x,2);let w;T(b);var E=y(b,2),O=e=>{var n=Qn(),r=s(n,!0);T(n),g(()=>M(r,m(l))),t(e,n)},k=e=>{t(e,$n())},j=e=>{var n=er(),i=s(n);{let e=D(()=>m(f).overdraw??xe());Zn(i,{get src(){return r.asset.rawUrl},get width(){return m(c).width},get height(){return m(c).height},get mode(){return m(f).mode},get insets(){return m(f).insets},get overdraw(){return m(e)},onChange:e=>r.onParametersChange({...m(f),insets:e}),onOverdrawChange:e=>r.onParametersChange({...m(f),overdraw:e}),onCommit:(e,t)=>r.onParametersCommit(e===`inset`?{...m(f),insets:t}:{...m(f),overdraw:t})})}T(n),t(e,n)},N=e=>{var n=er();i(s(n),()=>r.asset.id,e=>{Gn(e,{get entry(){return m(h)}})}),T(n),t(e,n)};d(E,e=>{m(l)?e(O):!m(f)||!m(c)?e(k,1):m(a)===`slicing`?e(j,2):m(h)&&e(N,3)}),T(_),g(()=>{S=V(x,1,`svelte-1ea2lvt`,null,S,{on:m(a)===`slicing`}),w=V(C,1,`svelte-1ea2lvt`,null,w,{on:m(a)===`preview`})}),o(`click`,x,()=>p(a,`slicing`)),o(`click`,C,()=>p(a,`preview`)),t(n,_),z()}a([`click`]);var rr=l(`<div class="field svelte-ij1927"><!></div>`),ir=l(`<section class="svelte-ij1927"><!> <div class="field svelte-ij1927"><!></div> <!></section> <!>`,1);function ar(e,n){A(n,!0);let r=D(()=>W.validateParameters(n.parameters)),i=D(()=>n.presetCapabilities[m(r).preset]?.maxWidth!==!1);function a(e){n.onParametersCommit(e)}function o(e){if(n.presetCapabilities[e]?.maxWidth===!1){let{maxWidth:t,...n}=m(r);a({...n,preset:e});return}a({...m(r),preset:e})}function c(e,t){let i=ke(m(r),e);t?a(i):n.onParametersChange(i)}var l=ir(),u=b(l),p=s(u);kt(p,{children:(e,n)=>{B(),t(e,f(`Video`))},$$slots:{default:!0}});var h=y(p,2);Nt(s(h),{label:`Preset`,caption:`Preset`,get value(){return m(r).preset},get options(){return n.presetNames},onChange:o,icon:e=>{Ce(e,{name:`preset`})},$$slots:{icon:!0}}),T(h);var g=y(h,2),_=e=>{var n=rr(),i=s(n);{let e=e=>{Ce(e,{name:`width`})},t=D(()=>m(r).maxWidth??null);Dt(i,{label:`Max width`,caption:`Max width`,min:1,placeholder:`source`,get value(){return m(t)},onChange:e=>c(e,!1),onCommit:e=>c(e,!0),icon:e,$$slots:{icon:!0}})}T(n),t(e,n)};d(g,e=>{m(i)&&e(_)}),T(u),Lt(y(u,2),{get proxy(){return n.asset.proxy},showDimensions:!0,showDuration:!0}),t(e,l),z()}var or=l(`<div class="preview-column svelte-qls820"><div class="video-frame svelte-qls820"><!></div> <!></div>`),sr=l(`<p class="svelte-qls820">No proxy yet — add the asset to a manifest to process it.</p>`),cr=l(`<div class="stage checkerboard svelte-qls820"><!></div>`);function lr(n,r){A(r,!0);let a=e(void 0),o=D(()=>!r.asset.proxy||r.asset.proxy.width===void 0||r.asset.proxy.height===void 0||r.asset.proxy.durationMs===void 0?null:{kind:`video`,src:r.asset.proxy.url,byteSize:r.asset.proxy.fileSize,width:r.asset.proxy.width,height:r.asset.proxy.height,durationMs:r.asset.proxy.durationMs});var c=cr(),l=s(c),u=e=>{var n=or(),r=s(n);let c;i(s(r),()=>m(o).src,e=>{_n(e,{get src(){return m(o)},loop:!0,get videoElement(){return m(a)},set videoElement(e){p(a,e,!0)}})}),T(r),$e(y(r,2),{get media(){return m(a)},showScrub:!0,showVolume:!0}),T(n),g(()=>c=S(r,``,c,{"aspect-ratio":`${m(o).width??``} / ${m(o).height??``}`})),t(e,n)},f=e=>{t(e,sr())};d(l,e=>{m(o)?e(u):e(f,-1)}),T(c),t(n,c),z()}var ur=l(`<video playsinline="" preload="metadata" class="svelte-ejgo9x"></video>`,2);function dr(e,n){A(n,!0);function r(e){e.currentTime=0,e.play().catch(()=>{})}function i(e){e.pause(),e.currentTime=0}var a=ur();a.muted=!0,g(()=>E(a,`src`,n.asset.proxy?.url??n.asset.rawUrl)),c(`pointerenter`,a,e=>r(e.currentTarget)),c(`pointerleave`,a,e=>i(e.currentTarget)),t(e,a),z()}var fr=l(`<span class="caption svelte-56kutb"> </span>`),pr=l(`<img class="preview svelte-56kutb" alt=""/>`),mr=l(`<span class="missing-preview svelte-56kutb" title="References an unknown asset">!</span>`),hr=l(`<span class="id svelte-56kutb"> </span>`),gr=l(`<span class="id dangling svelte-56kutb" title="References an unknown asset"> </span>`),_r=l(`<span class="placeholder svelte-56kutb"> </span>`),vr=l(`<button class="clear svelte-56kutb">×</button>`),yr=l(`<p class="hint svelte-56kutb"> </p>`),br=l(`<button><img class="thumbnail svelte-56kutb" alt=""/> <span class="id svelte-56kutb"> </span></button>`),xr=l(`<div class="dropdown svelte-56kutb"><!></div>`),Sr=l(`<div class="picker svelte-56kutb"><!> <div class="reference-input control svelte-56kutb"><button><span class="preview-slot svelte-56kutb"><!></span> <!></button> <!> <!></div></div>`);function Cr(n,r){A(r,!0);let i=e(!1),a=D(()=>($.state?.assets??[]).filter(e=>r.expectedTypes.includes(e.type)&&e.id!==r.excludeAssetId)),c=D(()=>r.value?$.assetById(r.value.$asset):null);function l(e){p(i,!1),r.onChange({$asset:e})}function u(){p(i,!1),r.onChange(void 0)}var f=Sr(),_=s(f),v=e=>{var n=fr(),i=s(n,!0);T(n),g(()=>M(i,r.caption)),t(e,n)};d(_,e=>{r.caption&&e(v)});var x=y(_,2),S=s(x);let C;var w=s(S),O=s(w),k=e=>{var n=pr();g(()=>E(n,`src`,m(c).rawUrl)),t(e,n)},N=e=>{t(e,mr())};d(O,e=>{r.value&&m(c)?e(k):r.value&&e(N,1)}),T(w);var P=y(w,2),F=e=>{var n=j(),i=b(n),a=e=>{var n=hr(),r=s(n,!0);T(n),g(()=>M(r,m(c).id)),t(e,n)},o=e=>{var n=gr(),i=s(n,!0);T(n),g(()=>M(i,r.value.$asset)),t(e,n)};d(i,e=>{m(c)?e(a):e(o,-1)}),t(e,n)},I=e=>{var n=_r(),i=s(n);T(n),g(e=>M(i,`Select ${e??``}...`),[()=>r.expectedTypes.join(`/`)]),t(e,n)};d(P,e=>{r.value?e(F):e(I,-1)}),T(S);var L=y(S,2),R=e=>{var n=vr();g(()=>E(n,`title`,`Clear ${r.label??``}`)),o(`click`,n,u),t(e,n)};d(L,e=>{r.value&&e(R)});var B=y(L,2),ee=e=>{var n=xr(),i=s(n),c=e=>{var n=yr(),i=s(n);T(n),g(e=>M(i,`No ${e??``} assets in the library.`),[()=>r.expectedTypes.join(`/`)]),t(e,n)},u=e=>{var n=j();h(b(n),17,()=>m(a),e=>e.id,(e,n)=>{var i=br();let a;var c=s(i),u=y(c,2),d=s(u,!0);T(u),T(i),g(()=>{a=V(i,1,`option svelte-56kutb`,null,a,{selected:r.value?.$asset===m(n).id}),E(c,`src`,m(n).rawUrl),M(d,m(n).id)}),o(`click`,i,()=>l(m(n).id)),t(e,i)}),t(e,n)};d(i,e=>{m(a).length===0?e(c):e(u,-1)}),T(n),t(e,n)};d(B,e=>{m(i)&&e(ee)}),T(x),T(f),g(()=>{C=V(S,1,`current svelte-56kutb`,null,C,{empty:!r.value}),E(S,`title`,r.value?`Change ${r.label}`:`Select ${r.label}`)}),o(`click`,S,()=>p(i,!m(i))),t(n,f),z()}a([`click`]);var wr=l(`<span class="caption svelte-gjs979"> </span>`),Tr=l(`<div class="color-field svelte-gjs979"><!> <div class="color-input control svelte-gjs979"><span class="swatch-slot svelte-gjs979"><input class="swatch svelte-gjs979" type="color" title="Open color picker"/></span> <input class="hex-input svelte-gjs979" type="text" maxlength="7" spellcheck="false"/></div></div>`);function Er(n,r){A(r,!0);let i=e(null),a=/^#[0-9a-f]{6}$/i;function l(e){let t=e.startsWith(`#`)?e:`#${e}`;return a.test(t)?t.toUpperCase():null}function u(e){let t=e.currentTarget.value.toUpperCase();p(i,t,!0),r.onChange?.(t)}function f(e){let t=e.currentTarget.value.toUpperCase();p(i,t,!0),r.onCommit(t)}function h(e){p(i,e.currentTarget.value,!0);let t=l(m(i));t&&r.onChange?.(t)}function _(){let e=l(m(i)??r.value);e&&r.onCommit(e),p(i,null)}function v(e){e.key===`Enter`?e.currentTarget.blur():e.key===`Escape`&&(p(i,null),e.currentTarget.value=r.value,e.currentTarget.blur())}var b=Tr(),x=s(b),S=e=>{var n=wr(),i=s(n,!0);T(n),g(()=>M(i,r.caption)),t(e,n)};d(x,e=>{r.caption&&e(S)});var C=y(x,2),w=s(C),D=s(w);ee(D),T(w);var O=y(w,2);ee(O),T(C),T(b),g(()=>{I(D,r.value),E(D,`aria-label`,`${r.label} color picker`),I(O,m(i)??r.value),E(O,`aria-label`,`${r.label} hex value`)}),o(`input`,D,u),o(`change`,D,f),c(`focus`,O,()=>p(i,r.value,!0)),o(`input`,O,h),c(`blur`,O,_),o(`keydown`,O,v),t(n,b),z()}a([`input`,`change`,`keydown`]);var Dr=l(`<div class="field svelte-rsjkek"><!></div>`),Or=l(`<section class="svelte-rsjkek"><!> <div class="field svelte-rsjkek"><!></div> <!></section> <section class="svelte-rsjkek"><!> <div class="field svelte-rsjkek"><!></div> <!></section> <section class="svelte-rsjkek"><!> <!> <!></section> <!>`,1);function kr(e,n){A(n,!0);let r=D(()=>G.validateParameters(n.parameters)),i=D(()=>n.presetCapabilities[m(r).preset]?.maxWidth!==!1);function a(e){n.onParametersCommit(e)}function o(e){if(n.presetCapabilities[e]?.maxWidth===!1){let{maxWidth:t,...n}=m(r);a({...n,preset:e});return}a({...m(r),preset:e})}function c(e,t){let i=ke(m(r),e);t?a(i):n.onParametersChange(i)}function l(e){return{...m(r),chromaKey:e}}let u=[{key:`colorCutoff`,label:`Color cutoff`,icon:`cutoff`,min:0,max:.6,step:.005},{key:`colorFeathering`,label:`Color feathering`,icon:`color-feather`,min:0,max:.8,step:.005},{key:`maskFeathering`,label:`Mask feathering`,icon:`mask-feather`,min:0,max:1,step:.01},{key:`sharpening`,label:`Sharpening`,icon:`sharpen`,min:0,max:1,step:.01},{key:`despill`,label:`Despill`,icon:`despill`,min:0,max:1,step:.01},{key:`despillLuminanceAdd`,label:`Despill lum. add`,icon:`despill-lum`,min:0,max:1,step:.01}];function p(e,t,i){let o=l({...m(r).chromaKey,[e]:t});i?a(o):n.onParametersChange(o)}function g(e){return Math.round(Math.min(1,Math.max(0,e))*255).toString(16).padStart(2,`0`)}function _(e){return`#${g(e[0])}${g(e[1])}${g(e[2])}`}function v(e){let t=parseInt(e.slice(1),16);return[(t>>16&255)/255,(t>>8&255)/255,(t&255)/255]}function x(e,t){let i=l({...m(r).chromaKey,keyColor:v(e)});t?a(i):n.onParametersChange(i)}function S(e,t){let{[e]:n,...i}=m(r);a(t?{...i,[e]:t}:i)}var C=Or(),w=b(C),E=s(w);kt(E,{children:(e,n)=>{B(),t(e,f(`Video`))},$$slots:{default:!0}});var O=y(E,2);Nt(s(O),{label:`Preset`,caption:`Preset`,get value(){return m(r).preset},get options(){return n.presetNames},onChange:o,icon:e=>{Ce(e,{name:`preset`})},$$slots:{icon:!0}}),T(O);var k=y(O,2),j=e=>{var n=Dr(),i=s(n);{let e=e=>{Ce(e,{name:`width`})},t=D(()=>m(r).maxWidth??null);Dt(i,{label:`Max width`,caption:`Max width`,min:1,placeholder:`source`,get value(){return m(t)},onChange:e=>c(e,!1),onCommit:e=>c(e,!0),icon:e,$$slots:{icon:!0}})}T(n),t(e,n)};d(k,e=>{m(i)&&e(j)}),T(w);var M=y(w,2),N=s(M);kt(N,{children:(e,n)=>{B(),t(e,f(`Chroma key`))},$$slots:{default:!0}});var P=y(N,2),F=s(P);{let e=D(()=>_(m(r).chromaKey.keyColor));Er(F,{label:`Key color`,caption:`Key color`,get value(){return m(e)},onChange:e=>x(e,!1),onCommit:e=>x(e,!0)})}T(P),h(y(P,2),17,()=>u,e=>e.key,(e,n)=>{var i=Dr();Dt(s(i),{get label(){return m(n).label},get caption(){return m(n).label},get min(){return m(n).min},get max(){return m(n).max},get step(){return m(n).step},get value(){return m(r).chromaKey[m(n).key]},onChange:e=>p(m(n).key,e??m(n).min,!1),onCommit:e=>p(m(n).key,e??m(n).min,!0),icon:e=>{Ce(e,{get name(){return m(n).icon}})},$$slots:{icon:!0}}),T(i),t(e,i)}),T(M);var I=y(M,2),L=s(I);kt(L,{children:(e,n)=>{B(),t(e,f(`References`))},$$slots:{default:!0}});var R=y(L,2);Cr(R,{label:`Mask`,caption:`Mask`,get value(){return m(r).mask},expectedTypes:[`image`],get excludeAssetId(){return n.asset.id},onChange:e=>S(`mask`,e)}),Cr(y(R,2),{label:`Fallback`,caption:`Fallback`,get value(){return m(r).fallback},expectedTypes:[`image`],get excludeAssetId(){return n.asset.id},onChange:e=>S(`fallback`,e)}),T(I),Lt(y(I,2),{get proxy(){return n.asset.proxy},showDimensions:!0,showDuration:!0}),t(e,C),z()}var Ar=l(`<div class="preview-column svelte-1y3xro5"><div class="compare-row svelte-1y3xro5"><figure class="svelte-1y3xro5"><figcaption class="svelte-1y3xro5">Input</figcaption> <div class="video-frame svelte-1y3xro5"><!></div></figure> <figure class="svelte-1y3xro5"><figcaption class="svelte-1y3xro5">Keyed</figcaption> <div class="video-frame checkerboard svelte-1y3xro5"><!></div></figure></div> <!></div>`),jr=l(`<p class="svelte-1y3xro5">No proxy yet — add the asset to a manifest to process it.</p>`),Mr=l(`<div class="stage svelte-1y3xro5"><!></div>`);function Nr(n,r){A(r,!0);let a=e(void 0),o=e(void 0);function c(e){if(!e)return;let t=$.assetById(e);if(!(!t?.proxy||t.proxy.width===void 0||t.proxy.height===void 0))return{kind:`image`,src:t.proxy.url,byteSize:t.proxy.fileSize,width:t.proxy.width,height:t.proxy.height}}let l=D(()=>{if(!r.asset.proxy||r.asset.proxy.width===void 0||r.asset.proxy.height===void 0||r.asset.proxy.durationMs===void 0)return null;try{let e=G.validateParameters(r.parameters),t=c(e.mask?.$asset),n=c(e.fallback?.$asset);return{kind:`chroma-key-video`,src:r.asset.proxy.url,byteSize:r.asset.proxy.fileSize,width:r.asset.proxy.width,height:r.asset.proxy.height,durationMs:r.asset.proxy.durationMs,chromaKey:e.chromaKey,...t?{mask:t}:{},...n?{fallback:n}:{}}}catch{return null}}),u=D(()=>m(l)?{kind:`video`,src:m(l).src,byteSize:m(l).byteSize,width:m(l).width,height:m(l).height,durationMs:m(l).durationMs}:null);v(()=>{let e=m(a),t=m(o);if(!e||!t)return;function n(){Math.abs(t.currentTime-e.currentTime)>.25&&(t.currentTime=e.currentTime)}function r(){n(),t.play().catch(()=>{})}function i(){t.pause(),t.currentTime=e.currentTime}function s(){t.currentTime=e.currentTime}return e.addEventListener(`play`,r),e.addEventListener(`playing`,r),e.addEventListener(`pause`,i),e.addEventListener(`ended`,i),e.addEventListener(`seeked`,s),e.addEventListener(`timeupdate`,n),s(),e.paused||t.play().catch(()=>{}),()=>{e.removeEventListener(`play`,r),e.removeEventListener(`playing`,r),e.removeEventListener(`pause`,i),e.removeEventListener(`ended`,i),e.removeEventListener(`seeked`,s),e.removeEventListener(`timeupdate`,n)}});var f=Mr(),h=s(f),_=e=>{var n=Ar(),r=s(n),c=s(r),d=y(s(c),2);let f;i(s(d),()=>m(u).src,e=>{_n(e,{get src(){return m(u)},loop:!0,get videoElement(){return m(o)},set videoElement(e){p(o,e,!0)}})}),T(d),T(c);var h=y(c,2),_=y(s(h),2);let v;i(s(_),()=>`${m(l).src}|${m(l).mask?.src??``}`,e=>{kn(e,{get src(){return m(l)},get videoElement(){return m(a)},set videoElement(e){p(a,e,!0)}})}),T(_),T(h),T(r),$e(y(r,2),{get media(){return m(a)},showScrub:!0,showVolume:!1}),T(n),g(()=>{f=S(d,``,f,{"aspect-ratio":`${m(u).width??``} / ${m(u).height??``}`}),v=S(_,``,v,{"aspect-ratio":`${m(l).width??``} / ${m(l).height??``}`})}),t(e,n)},b=e=>{t(e,jr())};d(h,e=>{m(l)&&m(u)?e(_):e(b,-1)}),T(f),t(n,f),z()}var Pr=l(`<section class="svelte-3jblpy"><!> <div class="field svelte-3jblpy"><!></div></section> <!>`,1);function Fr(e,n){A(n,!0);let r=D(()=>J.validateParameters(n.parameters));function i(e){let t={...m(r),preset:e};n.onParametersCommit(t)}var a=Pr(),o=b(a),c=s(o);kt(c,{children:(e,n)=>{B(),t(e,f(`Audio`))},$$slots:{default:!0}});var l=y(c,2);Nt(s(l),{label:`Preset`,caption:`Preset`,get value(){return m(r).preset},get options(){return n.presetNames},onChange:i,icon:e=>{Ce(e,{name:`preset`})},$$slots:{icon:!0}}),T(l),T(o),Lt(y(o,2),{get proxy(){return n.asset.proxy},showDuration:!0}),t(e,a),z()}function Ir(e,t){A(t,!0);{let n=D(()=>t.asset.proxy?.url??t.asset.rawUrl);ct(e,{get src(){return m(n)}})}z()}var Lr={[Z.type]:{panel:zt,editor:Mn,thumbnail:Pn},[ce.type]:{panel:Hn,editor:nr,thumbnail:Pn},[W.type]:{panel:ar,editor:lr,thumbnail:dr},[G.type]:{panel:kr,editor:Nr,thumbnail:dr},[J.type]:{panel:Fr,editor:ft,thumbnail:Ir}},Rr=ye.project(Lr,`editor implementation`),zr=l(`<p class="error svelte-1f5yh58">This file type is not supported (raster images, video, or audio).</p>`),Br=l(`<button> </button>`),Vr=l(`<p class="empty-manifests svelte-1f5yh58">No manifests available — this asset will be unassigned.</p>`),Hr=l(`<div class="manifest-list svelte-1f5yh58"><!></div>`),Ur=l(`<p class="hint warn svelte-1f5yh58"> </p>`),Wr=l(`<p class="hint warn svelte-1f5yh58">An asset with this id already exists.</p>`),Gr=l(`<div class="row svelte-1f5yh58"><span class="label svelte-1f5yh58">Type</span> <div class="segmented svelte-1f5yh58"></div></div> <label class="row svelte-1f5yh58"><span class="label svelte-1f5yh58">Id</span> <input class="control svelte-1f5yh58" type="text" spellcheck="false"/></label> <div class="row manifests svelte-1f5yh58"><span class="label svelte-1f5yh58">Manifests</span> <!></div> <!> <!>`,1),Kr=l(`<div class="backdrop svelte-1f5yh58" role="presentation"><div class="dialog svelte-1f5yh58" role="dialog" aria-label="Import asset" tabindex="-1"><h2 class="svelte-1f5yh58">Import asset</h2> <p class="file-name svelte-1f5yh58"> </p> <p class="destination svelte-1f5yh58"> </p> <!> <div class="actions svelte-1f5yh58"><button class="control">Cancel</button> <button class="control primary"> </button></div></div></div>`);function qr(n,r){A(r,!0);let i=D(()=>se(r.file.name)),a=e(`image`),l=e(`asset`),u=e(x([])),f=e(!1),_=e(null),S=D(()=>$.manifestNames);v(()=>{p(a,se(r.file.name)[0]??`image`,!0),p(l,le(r.file.name),!0),p(u,m(S).length===0?[]:[m(S).includes(`main`)?`main`:m(S)[0]],!0)});let C=D(()=>$.state?.assets.some(e=>e.id===m(l))??!1),E=D(()=>pe(m(l))),O=D(()=>m(E)===null),k=D(()=>m(O)&&!m(C)&&m(i).length>0&&!m(f));function j(e){p(u,m(u).includes(e)?m(u).filter(t=>t!==e):[...m(u),e],!0)}async function N(){if(!m(k))return;let e=m(l),t=m(a),n=[...m(u)],i=r.file,o=r.folder;p(f,!0),p(_,null);try{await $.mutateFromServer(()=>_e(i,t,e,o,n),{dependencies:[`asset:${e}`,`folder:${o}`,...n.map(e=>`manifest:${e}`)]}),r.onDone(e)}catch(e){p(_,e instanceof Error?e.message:String(e),!0)}finally{p(f,!1)}}var P=Kr();c(`keydown`,L,e=>Ae(e,{busy:m(f),confirmDisabled:!m(k),onConfirm:()=>void N(),onCancel:r.onCancel}));var F=s(P),I=y(s(F),2),R=s(I,!0);T(I);var B=y(I,2),H=s(B);T(B);var U=y(B,2),W=e=>{t(e,zr())},G=e=>{var n=Gr(),r=b(n),c=y(s(r),2);h(c,20,()=>m(i),e=>e,(e,n)=>{var r=Br();let i;var c=s(r,!0);T(r),g(()=>{r.disabled=m(f),i=V(r,1,`svelte-1f5yh58`,null,i,{on:m(a)===n}),M(c,n)}),o(`click`,r,()=>p(a,n,!0)),t(e,r)}),T(c),T(r);var v=y(r,2),x=y(s(v),2);ee(x),T(v);var D=y(v,2),k=y(s(D),2),A=e=>{t(e,Vr())},N=e=>{var n=Hr();Te(s(n),{get manifests(){return m(S)},get selected(){return m(u)},passive:[],onToggle:j,get disabled(){return m(f)}}),T(n),t(e,n)};d(k,e=>{m(S).length===0?e(A):e(N,-1)}),T(D);var P=y(D,2),F=e=>{var n=Ur(),r=s(n,!0);T(n),g(()=>M(r,m(E))),t(e,n)},I=e=>{t(e,Wr())};d(P,e=>{m(O)?m(C)&&e(I,1):e(F)});var L=y(P,2),R=e=>{var n=Ur(),r=s(n,!0);T(n),g(()=>M(r,m(_))),t(e,n)};d(L,e=>{m(_)&&e(R)}),g(()=>x.disabled=m(f)),w(x,()=>m(l),e=>p(l,e)),t(e,n)};d(U,e=>{m(i).length===0?e(W):e(G,-1)});var K=y(U,2),q=s(K),te=y(q,2),ne=s(te,!0);T(te),T(K),T(F),T(P),g(()=>{M(R,r.file.name),M(H,`Destination: ${(r.folder||`Root`)??``}`),q.disabled=m(f),te.disabled=!m(k),M(ne,m(f)?`Importing…`:`Import`)}),o(`click`,P,e=>{e.target===e.currentTarget&&!m(f)&&r.onCancel()}),o(`click`,q,function(...e){r.onCancel?.apply(this,e)}),o(`click`,te,()=>void N()),t(n,P),z()}a([`click`]);var Jr=l(`<p class="destination svelte-n5o24b"> </p>`),Yr=l(`<label class="field svelte-n5o24b"><span>Type</span> <select class="control"><option>Image</option><option>Slice</option></select></label>`),Xr=l(`<div class="field wide svelte-n5o24b"><span>Manifests</span> <!></div>`),Zr=l(`<p class="warning svelte-n5o24b"> </p>`),Qr=l(`<p class="warning svelte-n5o24b">An asset with this ID already exists.</p>`),$r=l(`<label class="field wide svelte-n5o24b"><span>Asset ID</span> <input class="control" spellcheck="false"/></label> <!> <!> <!>`,1),ei=l(`<div class="backdrop svelte-n5o24b" role="presentation"><div class="dialog svelte-n5o24b" role="dialog" tabindex="-1"><h2 class="svelte-n5o24b"> </h2> <!> <label class="field wide svelte-n5o24b"><span>Selection link</span> <input class="control" type="url" placeholder="https://www.figma.com/design/…?node-id=…"/></label> <div class="row svelte-n5o24b"><!> <label class="field svelte-n5o24b"><span>Export scale</span> <select class="control"><option>1x</option><option>2x</option><option>3x</option><option>4x</option></select></label></div> <!> <!> <div class="actions svelte-n5o24b"><button class="control">Cancel</button> <button class="control primary"> </button></div></div></div>`);function ti(n,r){A(r,!0);let i=C(r,`folder`,3,``),a=e(``),l=e(x($.state?.importDefaults.figma.scale??2)),u=e(`image`),f=e(`asset`),h=e(x(we($.manifestNames))),_=e(!1),v=e(null),S=D(()=>$.manifestNames),O=D(()=>pe(m(f))),k=D(()=>$.state?.assets.some(e=>e.id===m(f))??!1),j=D(()=>m(a).trim().length>0&&(r.replacement!==void 0||m(O)===null&&!m(k))&&!m(_));function P(e){p(h,m(h).includes(e)?m(h).filter(t=>t!==e):[...m(h),e],!0)}async function F(){if(!m(j))return;let e=m(f),t=[...m(h)],n=m(a),o=m(l),s=m(u),c=i(),d=r.replacement;p(_,!0),p(v,null);try{d?(await $.mutateFromServer(()=>de(d.id,{url:n,scale:o}),{dependencies:[`asset:${d.id}`]}),r.onDone(d.id)):(await $.mutateFromServer(()=>Q({url:n,scale:o,type:s,id:e,folder:c,manifests:t}),{dependencies:[`asset:${e}`,`folder:${c}`,...t.map(e=>`manifest:${e}`)]}),r.onDone(e))}catch(e){p(v,e instanceof Error?e.message:String(e),!0)}finally{p(_,!1)}}var I=ei();c(`keydown`,L,e=>Ae(e,{busy:m(_),confirmDisabled:!m(j),onConfirm:()=>void F(),onCancel:r.onCancel}));var R=s(I),B=s(R),V=s(B,!0);T(B);var H=y(B,2),U=e=>{var n=Jr(),i=s(n);T(n),g(()=>M(i,`Asset: ${r.replacement.id??``}`)),t(e,n)},W=e=>{var n=Jr(),r=s(n);T(n),g(()=>M(r,`Destination: ${(i()||`Root`)??``}`)),t(e,n)};d(H,e=>{r.replacement?e(U):e(W,-1)});var G=y(H,2),K=y(s(G),2);ee(K),T(G);var q=y(G,2),te=s(q),ne=e=>{var n=Yr(),r=y(s(n),2),i=s(r);i.value=i.__value=`image`;var a=y(i);a.value=a.__value=`slice`,T(r),T(n),g(()=>r.disabled=m(_)),N(r,()=>m(u),e=>p(u,e)),t(e,n)};d(te,e=>{r.replacement||e(ne)});var re=y(te,2),J=y(s(re),2),Y=s(J);Y.value=Y.__value=1;var X=y(Y);X.value=X.__value=2;var ie=y(X);ie.value=ie.__value=3;var Z=y(ie);Z.value=Z.__value=4,T(J),T(re),T(q);var ae=y(q,2),oe=e=>{var n=$r(),r=b(n),i=y(s(r),2);ee(i),T(r);var a=y(r,2),o=e=>{var n=Xr();Te(y(s(n),2),{get manifests(){return m(S)},get selected(){return m(h)},passive:[],onToggle:P,get disabled(){return m(_)}}),T(n),t(e,n)};d(a,e=>{m(S).length>0&&e(o)});var c=y(a,2),l=e=>{var n=Zr(),r=s(n,!0);T(n),g(()=>M(r,m(O))),t(e,n)};d(c,e=>{m(O)&&e(l)});var u=y(c,2),v=e=>{t(e,Qr())};d(u,e=>{m(k)&&e(v)}),g(()=>i.disabled=m(_)),w(i,()=>m(f),e=>p(f,e)),t(e,n)};d(ae,e=>{r.replacement||e(oe)});var se=y(ae,2),ce=e=>{var n=Zr(),r=s(n,!0);T(n),g(()=>M(r,m(v))),t(e,n)};d(se,e=>{m(v)&&e(ce)});var le=y(se,2),ue=s(le),fe=y(ue,2),me=s(fe,!0);T(fe),T(le),T(R),T(I),g(()=>{E(R,`aria-label`,r.replacement?`Replace from Figma`:`Import from Figma`),M(V,r.replacement?`Replace from Figma`:`Import from Figma`),K.disabled=m(_),J.disabled=m(_),ue.disabled=m(_),fe.disabled=!m(j),M(me,m(_)?r.replacement?`Replacing…`:`Importing…`:r.replacement?`Replace`:`Import`)}),o(`click`,I,e=>{e.target===e.currentTarget&&!m(_)&&r.onCancel()}),w(K,()=>m(a),e=>p(a,e)),N(J,()=>m(l),e=>p(l,e)),o(`click`,ue,function(...e){r.onCancel?.apply(this,e)}),o(`click`,fe,()=>void F()),t(n,I),z()}a([`click`]);function ni(e,t,n=[]){let r=e!==t&&!Y(t,e)&&te(e)!==t;if(!r||n.length===0)return r;let i=K(t,re(e)),a=new Set(n.filter(t=>!Y(t,e)).map(ne));return n.filter(t=>Y(t,e)).every(t=>!a.has(ne(X(t,e,i))))}function ri(e,t,n,r=[]){return e&&t!==null&&ni(t,n,r)}var ii=u(`<svg viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><path d="M1.25 4.25A1.75 1.75 0 0 1 3 2.5h2.45c.55 0 1.06.26 1.39.7l.6.8H13a1.75 1.75 0 0 1 1.75 1.75v5.5A1.75 1.75 0 0 1 13 13H3a1.75 1.75 0 0 1-1.75-1.75v-7Z" fill="currentColor"></path><path d="M1.75 6h12.5" stroke="currentColor" stroke-opacity="0.35"></path></svg>`);function ai(e,n){let r=C(n,`size`,3,14);var i=ii();g(()=>{E(i,`width`,r()),E(i,`height`,r())}),t(e,i)}var oi=l(`<span class="asset-warning svelte-ftwms1">⚠</span>`),si=l(`<div class="asset-row svelte-ftwms1"><button class="row asset current svelte-ftwms1" draggable="true" aria-current="page"><span class="glyph asset-glyph svelte-ftwms1">◆</span> <span class="label svelte-ftwms1"> </span> <!></button></div>`),ci=l(`<div class="folder-row svelte-ftwms1"><button draggable="true"><span class="glyph svelte-ftwms1"><!></span><span class="label svelte-ftwms1"> </span><span class="count svelte-ftwms1"> </span></button></div> <!>`,1),li=l(`<p class="dialog-warning svelte-ftwms1"> </p>`),ui=l(`<p class="dialog-warning svelte-ftwms1">A sibling folder with this name already exists.</p>`),di=l(`<label class="dialog-row svelte-ftwms1"><span class="svelte-ftwms1">Name</span> <input class="control svelte-ftwms1" spellcheck="false"/></label> <p class="dialog-path svelte-ftwms1"> </p> <!> <!> <!>`,1),fi=l(`<p class="dialog-text svelte-ftwms1">Delete <strong> </strong> </p> <!> <!>`,1),pi=l(`<aside class="directory svelte-ftwms1" aria-label="Asset folders"><header class="svelte-ftwms1"><strong class="svelte-ftwms1">Folders</strong> <div class="actions svelte-ftwms1"><button class="icon-button svelte-ftwms1">+</button> <button class="icon-button svelte-ftwms1">✎</button> <button class="icon-button danger svelte-ftwms1">×</button></div></header> <div class="tree svelte-ftwms1"><button><span class="glyph svelte-ftwms1">▦</span><span class="label svelte-ftwms1">All Assets</span><span class="count svelte-ftwms1"> </span></button> <button><span class="glyph svelte-ftwms1">⌂</span><span class="label svelte-ftwms1">Root</span><span class="count svelte-ftwms1"> </span></button> <!> <!></div></aside> <!> <!>`,1);function mi(r,i){A(i,!0);let a=C(i,`activeAsset`,3,null),l=C(i,`sharedDraggedFolder`,3,null),u=e(null),f=e(null),_=D(()=>l()??m(f)),x=D(()=>$.state?.library.folders??[]),O=D(()=>$.state?.assets??[]),k=D(()=>[...m(x)].sort((e,t)=>e.localeCompare(t)));function j(e){return m(O).filter(t=>t.folder===e).length}function N(e,t){let n=e.dataTransfer?.types.includes(`application/x-fundus-assets`)??!1,r=ri(e.dataTransfer?.types.includes(`application/x-fundus-folder`)??!1,m(_),t,m(x));!n&&!r||(e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect=`move`),p(u,t,!0))}function P(e,t){e.preventDefault(),p(u,null);let n=e.dataTransfer?.getData(`application/x-fundus-assets`);if(n){try{let e=JSON.parse(n);Array.isArray(e)&&e.every(e=>typeof e==`string`)&&i.onMoveAssets(e,t)}catch{}return}let r=e.dataTransfer?.getData(`application/x-fundus-folder`)||m(_);r&&ni(r,t,m(x))&&L(r,t)}function I(e,t){a()||i.selectedFolder!==null&&Y(i.selectedFolder,e)&&i.onSelect(`${t}${i.selectedFolder.slice(e.length)}`,!0)}async function L(e,t){let n=K(t,re(e)),r=$.mutate(()=>oe(e,t),ve(e,t),{dependencies:[`folder:${e}`,`folder:${t}`,`folder:${n}`],invalidatesOnFailure:[`folder:${e}`,`folder:${n}`]});I(e,n);try{await r}catch{m(x).some(t=>Y(t,e))&&I(n,e)}finally{p(f,null),i.onFolderDragEnd?.()}}let R=e(null),B=e(``),H=e(null),U=e(null),W=e(``),G=e(void 0),J=e(!1),X=e(null),ie=0,Z=D(()=>i.selectedFolder!==null&&i.selectedFolder!==``?i.selectedFolder:null),Q=D(()=>m(W)===``?null:fe(m(W))),se=D(()=>K(m(R)===`rename`?te(m(H)??``):m(B),m(W).normalize(`NFC`))),ce=D(()=>m(W)!==``&&m(x).some(e=>e!==(m(R)===`rename`?m(H):null)&&ne(e)===ne(m(se)))),le=D(()=>m(W)!==``&&!m(Q)&&!m(ce)&&!m(J));function de(e=i.selectedFolder??``){ie+=1,p(B,e,!0),p(W,``),p(X,null),p(R,`create`),n().then(()=>m(G)?.focus())}let pe=0;v(()=>{i.createRequest!==null&&i.createRequest.id!==pe&&(pe=i.createRequest.id,de(i.createRequest.parent))});function _e(e,t,n=null){e.preventDefault(),e.stopPropagation(),i.onContextMenu(e.clientX,e.clientY,t,n)}function ye(e){e!==null&&(ie+=1,p(H,e,!0),p(W,re(e),!0),p(X,null),p(R,`rename`),n().then(()=>m(G)?.focus()))}let be=0;v(()=>{i.renameRequest!==null&&i.renameRequest.id!==be&&(be=i.renameRequest.id,ye(i.renameRequest.path))});function xe(e){e!==null&&(ie+=1,p(U,e,!0),p(X,null),p(R,`delete`))}let Se=0;v(()=>{i.deleteRequest!==null&&i.deleteRequest.id!==Se&&(Se=i.deleteRequest.id,xe(i.deleteRequest.path))});function Ce(){m(J)||(ie+=1,p(R,null),p(X,null))}async function we(){if(!m(le))return;let e=m(R),t=m(W),n=t.normalize(`NFC`),r=i.selectedFolder,o=null,s=null,c=null;p(J,!0),p(X,null);try{if(e===`create`){let e=m(se),t=$.mutate(()=>ae(e),ue(e),{dependencies:[`folder:${m(B)}`,`folder:${e}`],invalidatesOnFailure:[`folder:${e}`]});a()||i.onSelect(e,!0),o=()=>{!a()&&i.selectedFolder===e&&!m(x).includes(e)&&i.onSelect(r,!0)},s=()=>!m(x).includes(e),p(R,null),c=++ie,p(J,!1),await t}else if(e===`rename`&&m(H)!==null){let e=m(H),t=m(se),r=$.mutate(()=>me(e,n),he(e,n),{dependencies:[`folder:${e}`,`folder:${t}`],invalidatesOnFailure:[`folder:${e}`,`folder:${t}`]});I(e,t),o=()=>{m(x).some(t=>Y(t,e))&&I(t,e)},s=()=>m(x).some(t=>Y(t,e)),p(R,null),c=++ie,p(J,!1),await r}}catch(n){s?.()&&o?.(),c!==null&&ie===c&&s?.()&&(p(R,e,!0),p(W,t,!0),p(X,n instanceof Error?n.message:String(n),!0))}finally{p(J,!1)}}let Te=D(()=>m(U)===null?[]:m(x).filter(e=>Y(e,m(U)??``))),Ee=D(()=>m(U)===null?[]:m(O).filter(e=>Y(e.folder,m(U)??``))),De=D(()=>new Set(m(Ee).map(e=>e.id))),ke=D(()=>m(Ee).flatMap(e=>e.references.incoming.filter(e=>!m(De).has(e.assetId)).map(t=>`${t.assetId}.${t.field} → ${e.id}`)));async function Ae(){if(m(U)===null)return;let e=m(U),t=te(e),n=i.selectedFolder,r=a()!==null&&Y(a().folder,e),o=r?a()?.id:null;p(J,!0),p(X,null);let s=$.mutate(()=>q(e),ge(e),{dependencies:[`folder:${e}`],invalidatesOnFailure:[`folder:${e}`]});r?i.onActiveAssetDeleted?.(t):!a()&&i.selectedFolder!==null&&Y(i.selectedFolder,e)&&i.onSelect(t,!0),p(R,null);let c=++ie;p(J,!1);try{await s}catch(r){let a=m(x).some(t=>Y(t,e))||m(O).some(t=>Y(t.folder,e));a&&o?i.onActiveAssetDeleteFailed?.(o):a&&i.selectedFolder===t&&i.onSelect(n,!0),a&&ie===c&&(p(R,`delete`),p(U,e,!0),p(X,r instanceof Error?r.message:String(r),!0))}finally{p(J,!1)}}function je(e){a()&&(e.dataTransfer?.setData(`application/x-fundus-assets`,JSON.stringify([a().id])),e.dataTransfer&&(e.dataTransfer.effectAllowed=`move`))}var Me=pi(),Ne=b(Me),Pe=s(Ne),Fe=y(s(Pe),2),Ie=s(Fe),Le=y(Ie,2),Re=y(Le,2);T(Fe),T(Pe);var ze=y(Pe,2),Be=s(ze);let Ve;var He=y(s(Be),2),Ue=s(He,!0);T(He),T(Be);var We=y(Be,2);let Ge;var Ke=y(s(We),2),qe=s(Ke,!0);T(Ke),T(We);var Je=y(We,2),Ye=e=>{var n=si();S(n,``,{},{"--depth":0});var r=s(n),i=y(s(r),2),o=s(i,!0);T(i);var l=y(i,2),u=e=>{var n=oi();g(e=>E(n,`title`,e),[()=>a().warnings.join(`
105
+ `)]),t(e,n)};d(l,e=>{a().warnings.length>0&&e(u)}),T(r),T(n),g(()=>{E(r,`title`,a().id),M(o,a().id)}),c(`dragstart`,r,je),t(e,n)};d(Je,e=>{a()?.folder===``&&e(Ye)}),h(y(Je,2),16,()=>m(k),e=>e,(e,n)=>{let r=D(()=>n.split(`/`).length-1);var l=ci(),h=b(l);let _;var v=s(h);let x;var C=s(v);ai(s(C),{}),T(C);var w=y(C),O=s(w,!0);T(w);var k=y(w),A=s(k,!0);T(k),T(v),T(h);var F=y(h,2),I=e=>{var n=si();let i;var o=s(n),l=y(s(o),2),u=s(l,!0);T(l);var f=y(l,2),p=e=>{var n=oi();g(e=>E(n,`title`,e),[()=>a().warnings.join(`
106
+ `)]),t(e,n)};d(f,e=>{a().warnings.length>0&&e(p)}),T(o),T(n),g(()=>{i=S(n,``,i,{"--depth":m(r)+1}),E(o,`title`,a().id),M(u,a().id)}),c(`dragstart`,o,je),t(e,n)};d(F,e=>{a()?.folder===n&&e(I)}),g((e,t)=>{_=S(h,``,_,{"--depth":m(r)}),x=V(v,1,`row folder svelte-ftwms1`,null,x,{selected:!a()&&i.selectedFolder===n,"drop-target":m(u)===n}),E(w,`title`,n),M(O,e),M(A,t)},[()=>re(n),()=>j(n)]),o(`click`,v,()=>i.onSelect(n)),o(`contextmenu`,v,e=>_e(e,n,n)),c(`dragstart`,v,e=>{p(f,n,!0),i.onFolderDragStart?.(n),e.dataTransfer?.setData(`application/x-fundus-folder`,n),e.dataTransfer&&(e.dataTransfer.effectAllowed=`move`)}),c(`dragend`,v,()=>{p(f,null),i.onFolderDragEnd?.(),p(u,null)}),c(`dragover`,v,e=>N(e,n)),c(`dragleave`,v,()=>p(u,null)),c(`drop`,v,e=>P(e,n)),t(e,l)}),T(ze),T(Ne);var Xe=y(Ne,2),Ze=e=>{{let n=D(()=>m(R)===`create`?`Create folder`:`Rename folder`),r=D(()=>m(J)?`Saving…`:m(R)===`create`?`Create`:`Rename`),i=D(()=>!m(le));Oe(e,{get title(){return m(n)},get confirmLabel(){return m(r)},get confirmDisabled(){return m(i)},get busy(){return m(J)},onConfirm:()=>void we(),onCancel:Ce,children:(e,n)=>{var r=di(),i=b(r),a=y(s(i),2);ee(a),F(a,e=>p(G,e),()=>m(G)),T(i);var o=y(i,2),c=s(o,!0);T(o);var l=y(o,2),u=e=>{var n=li(),r=s(n,!0);T(n),g(()=>M(r,m(Q))),t(e,n)};d(l,e=>{m(Q)&&e(u)});var f=y(l,2),h=e=>{t(e,ui())};d(f,e=>{m(ce)&&e(h)});var _=y(f,2),v=e=>{var n=li(),r=s(n,!0);T(n),g(()=>M(r,m(X))),t(e,n)};d(_,e=>{m(X)&&e(v)}),g(()=>{a.disabled=m(J),M(c,m(se)||`Root`)}),w(a,()=>m(W),e=>p(W,e)),t(e,r)},$$slots:{default:!0}})}};d(Xe,e=>{(m(R)===`create`||m(R)===`rename`)&&e(Ze)});var Qe=y(Xe,2),$e=e=>{{let n=D(()=>m(J)?`Deleting…`:`Delete recursively`);Oe(e,{title:`Delete folder`,get confirmLabel(){return m(n)},danger:!0,get busy(){return m(J)},onConfirm:()=>void Ae(),onCancel:Ce,children:(e,n)=>{var r=fi(),i=b(r),a=y(s(i)),o=s(a,!0);T(a);var c=y(a);T(i);var l=y(i,2),u=e=>{var n=li(),r=s(n);T(n),g(e=>M(r,`This leaves ${m(ke).length??``} external reference(s) dangling:
107
+ ${e??``}`),[()=>m(ke).join(`, `)]),t(e,n)};d(l,e=>{m(ke).length>0&&e(u)});var f=y(l,2),p=e=>{var n=li(),r=s(n,!0);T(n),g(()=>M(r,m(X))),t(e,n)};d(f,e=>{m(X)&&e(p)}),g(()=>{M(o,m(U)),M(c,`, ${m(Te).length-1} descendant folder(s),
108
+ and ${m(Ee).length??``} asset(s)? Raw and proxy files are removed.`)}),t(e,r)},$$slots:{default:!0}})}};d(Qe,e=>{m(R)===`delete`&&m(U)!==null&&e($e)}),g(e=>{E(Ie,`title`,a()?`Create folder beside the current asset`:`Create child folder`),E(Le,`title`,a()?`Rename the current asset folder`:`Rename selected folder`),Le.disabled=m(Z)===null,E(Re,`title`,a()?`Delete the current asset folder`:`Delete selected folder`),Re.disabled=m(Z)===null,Ve=V(Be,1,`row special svelte-ftwms1`,null,Ve,{selected:!a()&&i.selectedFolder===null}),M(Ue,m(O).length),Ge=V(We,1,`row special svelte-ftwms1`,null,Ge,{selected:!a()&&i.selectedFolder===``,"drop-target":m(u)===``}),M(qe,e)},[()=>j(``)]),o(`contextmenu`,Ne,e=>_e(e,``)),o(`click`,Ie,()=>de()),o(`click`,Le,()=>ye(m(Z))),o(`click`,Re,()=>xe(m(Z))),o(`click`,Be,()=>i.onSelect(null)),o(`click`,We,()=>i.onSelect(``)),c(`dragover`,We,e=>N(e,``)),c(`dragleave`,We,()=>p(u,null)),c(`drop`,We,e=>P(e,``)),t(r,Me),z()}a([`contextmenu`,`click`]);var hi=l(`<button role="menuitem" class="svelte-10jgqdh">Rename</button>`),gi=l(`<button class="danger svelte-10jgqdh" role="menuitem">Delete</button>`),_i=l(`<hr class="svelte-10jgqdh"/>`),vi=l(`<div class="context-menu svelte-10jgqdh" role="menu" aria-label="Library actions" tabindex="-1"><!> <!> <!> <button role="menuitem" class="svelte-10jgqdh">New Directory</button> <button role="menuitem" class="svelte-10jgqdh">Import File</button> <button role="menuitem" class="svelte-10jgqdh">Import from Figma</button> <hr class="svelte-10jgqdh"/> <button role="menuitem" class="svelte-10jgqdh"> </button></div>`);function yi(e,n){A(n,!0);let r=D(()=>Math.max(8,Math.min(n.x,window.innerWidth-176))),i=D(()=>4+ +!!n.onRenameDirectory+ +!!n.onDeleteDirectory),a=D(()=>!!(n.onRenameDirectory||n.onDeleteDirectory)),l=D(()=>1+ +!!m(a)),u=D(()=>m(i)*32+m(l)*9+8),f=D(()=>Math.max(8,Math.min(n.y,window.innerHeight-m(u)))),p=/Mac|iPhone|iPad/.test(navigator.platform)?`Open in Finder`:/Win/.test(navigator.platform)?`Open in Explorer`:`Open in File Manager`;function h(e){e(),n.onClose()}var _=vi();c(`click`,L,function(...e){n.onClose?.apply(this,e)}),c(`blur`,L,function(...e){n.onClose?.apply(this,e)}),c(`keydown`,L,e=>e.key===`Escape`&&n.onClose()),c(`resize`,L,function(...e){n.onClose?.apply(this,e)}),c(`scroll`,L,function(...e){n.onClose?.apply(this,e)});let v;var b=s(_),x=e=>{var r=hi();o(`click`,r,()=>h(n.onRenameDirectory)),t(e,r)};d(b,e=>{n.onRenameDirectory&&e(x)});var C=y(b,2),w=e=>{var r=gi();o(`click`,r,()=>h(n.onDeleteDirectory)),t(e,r)};d(C,e=>{n.onDeleteDirectory&&e(w)});var E=y(C,2),O=e=>{t(e,_i())};d(E,e=>{m(a)&&e(O)});var k=y(E,2),j=y(k,2),N=y(j,2),P=y(N,4),F=s(P,!0);T(P),T(_),g(()=>{v=S(_,``,v,{left:`${m(r)}px`,top:`${m(f)}px`}),M(F,p)}),o(`contextmenu`,_,e=>e.preventDefault()),o(`click`,k,()=>h(n.onNewDirectory)),o(`click`,j,()=>h(n.onImportFile)),o(`click`,N,()=>h(n.onImportFigma)),o(`click`,P,()=>h(n.onReveal)),t(e,_),z()}a([`contextmenu`,`click`]);var bi=l(`<div class="source-menu svelte-1c64lfa"><button type="button" class="svelte-1c64lfa"><strong>File</strong> <span class="svelte-1c64lfa"> </span></button> <button type="button" class="svelte-1c64lfa"><strong>Figma</strong> <span class="svelte-1c64lfa"> </span></button></div>`);function xi(e,n){let r=C(n,`fileDescription`,3,`Choose an asset from your computer`),i=C(n,`figmaDescription`,3,`Import a frame or component by URL`);var a=bi(),c=s(a),l=y(s(c),2),u=s(l,!0);T(l),T(c);var d=y(c,2),f=y(s(d),2),p=s(f,!0);T(f),T(d),T(a),g(()=>{M(u,r()),M(p,i())}),o(`click`,c,function(...e){n.onFile?.apply(this,e)}),o(`click`,d,function(...e){n.onFigma?.apply(this,e)}),t(e,a)}a([`click`]);export{ri as a,qr as c,Ue as d,Me as f,je as g,Ve as h,ai as i,Rr as l,He as m,yi as n,ni as o,Re as p,mi as r,ti as s,xi as t,kt as u};