fundus 0.6.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -1
- package/build/client/_app/immutable/assets/0.CHekvMpo.css +1 -0
- package/build/client/_app/immutable/assets/0.CHekvMpo.css.br +0 -0
- package/build/client/_app/immutable/assets/0.CHekvMpo.css.gz +0 -0
- package/build/client/_app/immutable/assets/2.Bf0JkVBM.css +1 -0
- package/build/client/_app/immutable/assets/2.Bf0JkVBM.css.br +0 -0
- package/build/client/_app/immutable/assets/2.Bf0JkVBM.css.gz +0 -0
- package/build/client/_app/immutable/assets/FileChangeBadge.C6wwUZJS.css +1 -0
- package/build/client/_app/immutable/assets/FileChangeBadge.C6wwUZJS.css.br +0 -0
- package/build/client/_app/immutable/assets/FileChangeBadge.C6wwUZJS.css.gz +0 -0
- package/build/client/_app/immutable/assets/LibraryContextMenu.BSnKt_Is.css +1 -0
- package/build/client/_app/immutable/assets/LibraryContextMenu.BSnKt_Is.css.br +0 -0
- package/build/client/_app/immutable/assets/LibraryContextMenu.BSnKt_Is.css.gz +0 -0
- package/build/client/_app/immutable/assets/ManifestSelector.Cue3sCA1.css +1 -0
- package/build/client/_app/immutable/assets/ManifestSelector.Cue3sCA1.css.br +0 -0
- package/build/client/_app/immutable/assets/ManifestSelector.Cue3sCA1.css.gz +0 -0
- package/build/client/_app/immutable/chunks/{D24lHNM9.js → B9iWbZmZ.js} +1 -1
- package/build/client/_app/immutable/chunks/B9iWbZmZ.js.br +0 -0
- package/build/client/_app/immutable/chunks/B9iWbZmZ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BD3hQKzV.js +1 -0
- package/build/client/_app/immutable/chunks/BD3hQKzV.js.br +0 -0
- package/build/client/_app/immutable/chunks/BD3hQKzV.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Blpvahbd.js +108 -0
- package/build/client/_app/immutable/chunks/Blpvahbd.js.br +0 -0
- package/build/client/_app/immutable/chunks/Blpvahbd.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C7Cs5PXV.js +1 -0
- package/build/client/_app/immutable/chunks/C7Cs5PXV.js.br +0 -0
- package/build/client/_app/immutable/chunks/C7Cs5PXV.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DPZDGjcn.js +1 -0
- package/build/client/_app/immutable/chunks/DPZDGjcn.js.br +0 -0
- package/build/client/_app/immutable/chunks/DPZDGjcn.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{BT3jFrxa.js → DrsNq6gf.js} +1 -1
- package/build/client/_app/immutable/chunks/DrsNq6gf.js.br +0 -0
- package/build/client/_app/immutable/chunks/DrsNq6gf.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{D0BLX4Qd.js → DylBiD8l.js} +1 -1
- package/build/client/_app/immutable/chunks/DylBiD8l.js.br +0 -0
- package/build/client/_app/immutable/chunks/DylBiD8l.js.gz +0 -0
- package/build/client/_app/immutable/chunks/NblqapDQ.js +3 -0
- package/build/client/_app/immutable/chunks/NblqapDQ.js.br +0 -0
- package/build/client/_app/immutable/chunks/NblqapDQ.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.CFPPKVrc.js +2 -0
- package/build/client/_app/immutable/entry/app.CFPPKVrc.js.br +0 -0
- package/build/client/_app/immutable/entry/app.CFPPKVrc.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.tn-ZAKbY.js +1 -0
- package/build/client/_app/immutable/entry/start.tn-ZAKbY.js.br +0 -0
- package/build/client/_app/immutable/entry/start.tn-ZAKbY.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.BS8VwNas.js +2 -0
- package/build/client/_app/immutable/nodes/0.BS8VwNas.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.BS8VwNas.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.Dpaug5O_.js +1 -0
- package/build/client/_app/immutable/nodes/1.Dpaug5O_.js.br +2 -0
- package/build/client/_app/immutable/nodes/1.Dpaug5O_.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.KyqEUB3M.js +3 -0
- package/build/client/_app/immutable/nodes/2.KyqEUB3M.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.KyqEUB3M.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.j8JVBjzd.js +1 -0
- package/build/client/_app/immutable/nodes/3.j8JVBjzd.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.j8JVBjzd.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.CiYE8hwS.js +2 -0
- package/build/client/_app/immutable/nodes/4.CiYE8hwS.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.CiYE8hwS.js.gz +0 -0
- package/build/client/_app/version.json +1 -1
- package/build/client/_app/version.json.br +0 -0
- package/build/client/_app/version.json.gz +0 -0
- package/build/handler.js +7 -7
- package/build/index.js +7 -7
- package/build/server/chunks/chunks/{context.js-FvYkJDOy.js → context.js-CLnT3cF3.js} +110 -1
- package/build/server/chunks/chunks/context.js-CLnT3cF3.js.map +1 -0
- package/build/server/chunks/chunks/{exports.js-Bepiq5XZ.js → exports.js-CAJ9ZQQx.js} +2 -2
- package/build/server/chunks/chunks/{exports.js-Bepiq5XZ.js.map → exports.js-CAJ9ZQQx.js.map} +1 -1
- package/build/server/chunks/chunks/{internal.js-Cy01GWTk.js → internal.js-CdY4S4Uy.js} +3 -3
- package/build/server/chunks/chunks/{internal.js-Cy01GWTk.js.map → internal.js-CdY4S4Uy.js.map} +1 -1
- package/build/server/chunks/chunks/internal2.js-BlXt2rfE.js.map +1 -1
- package/build/server/chunks/chunks/{shared.js-b0LBJ1Hx.js → shared.js-C34rGnTQ.js} +2 -2
- package/build/server/chunks/chunks/{shared.js-b0LBJ1Hx.js.map → shared.js-C34rGnTQ.js.map} +1 -1
- package/build/server/chunks/chunks/{utils.js-CecFjHB0.js → utils.js-BMCQVogA.js} +3 -3
- package/build/server/chunks/chunks/{utils.js-CecFjHB0.js.map → utils.js-BMCQVogA.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/assets/_id_/{_server.ts.js-hoRG5JRv.js → _server.ts.js-IMleqOQb.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/assets/_id_/{_server.ts.js-hoRG5JRv.js.map → _server.ts.js-IMleqOQb.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/assets/_id_/raw/{_server.ts.js-BdO9kwrn.js → _server.ts.js-DzFoWnCN.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/assets/_id_/raw/{_server.ts.js-BdO9kwrn.js.map → _server.ts.js-DzFoWnCN.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/assets/_id_/reimport/{_server.ts.js-BojOH5gj.js → _server.ts.js-0LjvQ5dF.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/assets/_id_/reimport/{_server.ts.js-BojOH5gj.js.map → _server.ts.js-0LjvQ5dF.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/assets/{_server.ts.js-DWIptU3K.js → _server.ts.js-BUbO2k7N.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/assets/{_server.ts.js-DWIptU3K.js.map → _server.ts.js-BUbO2k7N.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/assets/delete/{_server.ts.js-CaiOgcPc.js → _server.ts.js-CwFLvCzR.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/assets/delete/{_server.ts.js-CaiOgcPc.js.map → _server.ts.js-CwFLvCzR.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/assets/move/{_server.ts.js-Bug1Y1W9.js → _server.ts.js-BA6bgOR_.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/assets/move/{_server.ts.js-Bug1Y1W9.js.map → _server.ts.js-BA6bgOR_.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/folders/_path_/{_server.ts.js-B9N7cPff.js → _server.ts.js-CzzmQqXq.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/folders/_path_/{_server.ts.js-B9N7cPff.js.map → _server.ts.js-CzzmQqXq.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/folders/{_server.ts.js-CiWdcZEv.js → _server.ts.js-aqJkae-h.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/folders/{_server.ts.js-CiWdcZEv.js.map → _server.ts.js-aqJkae-h.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/imports/{_server.ts.js-CNqGzdRB.js → _server.ts.js-CGsIZ1tO.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/imports/{_server.ts.js-CNqGzdRB.js.map → _server.ts.js-CGsIZ1tO.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/manifests/_name_/{_server.ts.js-BHwcGKE_.js → _server.ts.js-DbaeknBw.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/manifests/_name_/{_server.ts.js-BHwcGKE_.js.map → _server.ts.js-DbaeknBw.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/manifests/{_server.ts.js-CPoTCXQk.js → _server.ts.js-BhY5m7VP.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/manifests/{_server.ts.js-CPoTCXQk.js.map → _server.ts.js-BhY5m7VP.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/raw/adopt/{_server.ts.js-iDOU2RdK.js → _server.ts.js-PT92H6EE.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/raw/adopt/{_server.ts.js-iDOU2RdK.js.map → _server.ts.js-PT92H6EE.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/raw/edited/accept/{_server.ts.js-DikbQm3f.js → _server.ts.js-DtiUkpdM.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/raw/edited/accept/{_server.ts.js-DikbQm3f.js.map → _server.ts.js-DtiUkpdM.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/raw/edited/dismiss/{_server.ts.js-DTdHkWuR.js → _server.ts.js-tVkpwUwF.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/raw/edited/dismiss/{_server.ts.js-DTdHkWuR.js.map → _server.ts.js-tVkpwUwF.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/reconcile/{_server.ts.js-Cn8hwP5P.js → _server.ts.js-Cq85RWhU.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/reconcile/{_server.ts.js-Cn8hwP5P.js.map → _server.ts.js-Cq85RWhU.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/reveal/{_server.ts.js-BdUCIBJ_.js → _server.ts.js-DDdYWvN4.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/reveal/{_server.ts.js-BdUCIBJ_.js.map → _server.ts.js-DDdYWvN4.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/state/{_server.ts.js-CBLdZJZB.js → _server.ts.js-DxSPXWoT.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/state/{_server.ts.js-CBLdZJZB.js.map → _server.ts.js-DxSPXWoT.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/files/proxy/_...path_/{_server.ts.js-CY_gjOPq.js → _server.ts.js-DuStxYsU.js} +2 -2
- package/build/server/chunks/entries/endpoints/files/proxy/_...path_/{_server.ts.js-CY_gjOPq.js.map → _server.ts.js-DuStxYsU.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/files/raw/_...path_/{_server.ts.js-BOfjGM87.js → _server.ts.js-CxoKyl-h.js} +2 -2
- package/build/server/chunks/entries/endpoints/files/raw/_...path_/{_server.ts.js-BOfjGM87.js.map → _server.ts.js-CxoKyl-h.js.map} +1 -1
- package/build/server/chunks/entries/{hooks.server.js-BH0-wX67.js → hooks.server.js-DLJAlp7i.js} +2 -2
- package/build/server/chunks/entries/{hooks.server.js-BH0-wX67.js.map → hooks.server.js-DLJAlp7i.js.map} +1 -1
- package/build/server/chunks/{handler-DMnHzDi5.js → handler-Bn4TsL93.js} +5 -5
- package/build/server/chunks/{handler-DMnHzDi5.js.map → handler-Bn4TsL93.js.map} +1 -1
- package/build/server/chunks/{index.js-BbOitM8j.js → index.js-DzYQtf0T.js} +5 -5
- package/build/server/chunks/{index.js-BbOitM8j.js.map → index.js-DzYQtf0T.js.map} +1 -1
- package/build/server/chunks/{manifest.js-EeQkh4Qe.js → manifest.js-DewM2Q1D.js} +26 -26
- package/build/server/chunks/{manifest.js-EeQkh4Qe.js.map → manifest.js-DewM2Q1D.js.map} +1 -1
- package/build/server/chunks/nodes/0.js-CZe1W9_P.js +11 -0
- package/build/server/chunks/nodes/0.js-CZe1W9_P.js.map +1 -0
- package/build/server/chunks/nodes/1.js-DKVH5bGU.js +7 -0
- package/build/server/chunks/nodes/{1.js-GmjtwLZL.js.map → 1.js-DKVH5bGU.js.map} +1 -1
- package/build/server/chunks/nodes/2.js-BpN0Hxjo.js +7 -0
- package/build/server/chunks/nodes/2.js-BpN0Hxjo.js.map +1 -0
- package/build/server/chunks/nodes/3.js-D3kgOm0S.js +7 -0
- package/build/server/chunks/nodes/3.js-D3kgOm0S.js.map +1 -0
- package/build/server/chunks/nodes/4.js-CZwje1Lo.js +7 -0
- package/build/server/chunks/nodes/{4.js-CtmXxVg2.js.map → 4.js-CZwje1Lo.js.map} +1 -1
- package/dist/core/api-types.d.ts +4 -0
- package/dist/server/cli-commands.d.ts +1 -1
- package/dist/server/cli-commands.js +125 -11
- package/dist/server/config-loader.d.ts +2 -0
- package/dist/server/config-loader.js +1 -0
- package/dist/server/git.d.ts +9 -0
- package/dist/server/git.js +121 -0
- package/dist/server/operations.js +8 -1
- package/package.json +1 -1
- package/build/client/_app/immutable/assets/0.inkPq3ni.css +0 -1
- package/build/client/_app/immutable/assets/0.inkPq3ni.css.br +0 -0
- package/build/client/_app/immutable/assets/0.inkPq3ni.css.gz +0 -0
- package/build/client/_app/immutable/assets/2.CtqoikFs.css +0 -1
- package/build/client/_app/immutable/assets/2.CtqoikFs.css.br +0 -0
- package/build/client/_app/immutable/assets/2.CtqoikFs.css.gz +0 -0
- package/build/client/_app/immutable/assets/LibraryContextMenu.CVIa_uFP.css +0 -1
- package/build/client/_app/immutable/assets/LibraryContextMenu.CVIa_uFP.css.br +0 -0
- package/build/client/_app/immutable/assets/LibraryContextMenu.CVIa_uFP.css.gz +0 -0
- package/build/client/_app/immutable/assets/ManifestSelector.Il8p28r8.css +0 -1
- package/build/client/_app/immutable/assets/ManifestSelector.Il8p28r8.css.br +0 -0
- package/build/client/_app/immutable/assets/ManifestSelector.Il8p28r8.css.gz +0 -0
- package/build/client/_app/immutable/chunks/BT3jFrxa.js.br +0 -1
- package/build/client/_app/immutable/chunks/BT3jFrxa.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CPFeEkfP.js +0 -108
- package/build/client/_app/immutable/chunks/CPFeEkfP.js.br +0 -0
- package/build/client/_app/immutable/chunks/CPFeEkfP.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CQrHfI-c.js +0 -1
- package/build/client/_app/immutable/chunks/CQrHfI-c.js.br +0 -0
- package/build/client/_app/immutable/chunks/CQrHfI-c.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D0BLX4Qd.js.br +0 -0
- package/build/client/_app/immutable/chunks/D0BLX4Qd.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D24lHNM9.js.br +0 -0
- package/build/client/_app/immutable/chunks/D24lHNM9.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D65cSBhe.js +0 -3
- package/build/client/_app/immutable/chunks/D65cSBhe.js.br +0 -0
- package/build/client/_app/immutable/chunks/D65cSBhe.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D6VoU_x4.js +0 -1
- package/build/client/_app/immutable/chunks/D6VoU_x4.js.br +0 -0
- package/build/client/_app/immutable/chunks/D6VoU_x4.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.DmVWkUml.js +0 -2
- package/build/client/_app/immutable/entry/app.DmVWkUml.js.br +0 -0
- package/build/client/_app/immutable/entry/app.DmVWkUml.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.Dsf5wSaR.js +0 -1
- package/build/client/_app/immutable/entry/start.Dsf5wSaR.js.br +0 -0
- package/build/client/_app/immutable/entry/start.Dsf5wSaR.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.l-jE2v4o.js +0 -2
- package/build/client/_app/immutable/nodes/0.l-jE2v4o.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.l-jE2v4o.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.CRPVOtEh.js +0 -1
- package/build/client/_app/immutable/nodes/1.CRPVOtEh.js.br +0 -3
- package/build/client/_app/immutable/nodes/1.CRPVOtEh.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.8Si6qHSH.js +0 -3
- package/build/client/_app/immutable/nodes/2.8Si6qHSH.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.8Si6qHSH.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.CdI42Umt.js +0 -1
- package/build/client/_app/immutable/nodes/3.CdI42Umt.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.CdI42Umt.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.mMkL80q1.js +0 -2
- package/build/client/_app/immutable/nodes/4.mMkL80q1.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.mMkL80q1.js.gz +0 -0
- package/build/server/chunks/chunks/context.js-FvYkJDOy.js.map +0 -1
- package/build/server/chunks/nodes/0.js-CS9Xzs-1.js +0 -11
- package/build/server/chunks/nodes/0.js-CS9Xzs-1.js.map +0 -1
- package/build/server/chunks/nodes/1.js-GmjtwLZL.js +0 -7
- package/build/server/chunks/nodes/2.js-Pip0Abb-.js +0 -7
- package/build/server/chunks/nodes/2.js-Pip0Abb-.js.map +0 -1
- package/build/server/chunks/nodes/3.js-CJKDeQST.js +0 -7
- package/build/server/chunks/nodes/3.js-CJKDeQST.js.map +0 -1
- package/build/server/chunks/nodes/4.js-CtmXxVg2.js +0 -7
|
@@ -14,6 +14,8 @@ export interface ResolvedAudioPluginConfig {
|
|
|
14
14
|
presets: Record<string, AudioPreset>;
|
|
15
15
|
}
|
|
16
16
|
export interface ResolvedFundusConfig {
|
|
17
|
+
/** Absolute host project directory containing fundus.config.ts. */
|
|
18
|
+
projectRoot: string;
|
|
17
19
|
/** All paths absolute. */
|
|
18
20
|
rawDir: string;
|
|
19
21
|
proxyDir: string;
|
|
@@ -71,6 +71,7 @@ export function resolveConfig(projectRoot, value, registry = serverPluginsByType
|
|
|
71
71
|
throw new Error('fundus.config: "import.figma.defaults.scale" must be 1, 2, 3, or 4.');
|
|
72
72
|
}
|
|
73
73
|
return {
|
|
74
|
+
projectRoot: resolve(projectRoot),
|
|
74
75
|
rawDir: resolvePath(projectRoot, requiredString(value, 'rawDir')),
|
|
75
76
|
proxyDir: resolvePath(projectRoot, requiredString(value, 'proxyDir')),
|
|
76
77
|
library: resolvePath(projectRoot, requiredString(value, 'library')),
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export type GitFileChange = 'new' | 'edited';
|
|
2
|
+
/** Current branch of the repository containing projectRoot; null outside Git or when detached. */
|
|
3
|
+
export declare function currentGitBranch(projectRoot: string): Promise<string | null>;
|
|
4
|
+
/**
|
|
5
|
+
* Raw Git file changes made since this branch diverged from the repository's
|
|
6
|
+
* default branch. Staged, unstaged, and untracked files are included so the
|
|
7
|
+
* editor updates immediately after an asset mutation, before the next commit.
|
|
8
|
+
*/
|
|
9
|
+
export declare function gitFileChanges(projectRoot: string): Promise<Map<string, GitFileChange>>;
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { execFile } from 'node:child_process';
|
|
2
|
+
import { resolve } from 'node:path';
|
|
3
|
+
import { promisify } from 'node:util';
|
|
4
|
+
const execFileAsync = promisify(execFile);
|
|
5
|
+
async function git(projectRoot, args) {
|
|
6
|
+
const { stdout } = await execFileAsync('git', ['-C', projectRoot, ...args], {
|
|
7
|
+
encoding: 'utf8'
|
|
8
|
+
});
|
|
9
|
+
return stdout;
|
|
10
|
+
}
|
|
11
|
+
/** Current branch of the repository containing projectRoot; null outside Git or when detached. */
|
|
12
|
+
export async function currentGitBranch(projectRoot) {
|
|
13
|
+
try {
|
|
14
|
+
return (await git(projectRoot, ['branch', '--show-current'])).trim() || null;
|
|
15
|
+
}
|
|
16
|
+
catch {
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
async function firstExistingRef(projectRoot, refs) {
|
|
21
|
+
for (const ref of refs) {
|
|
22
|
+
try {
|
|
23
|
+
await git(projectRoot, ['rev-parse', '--verify', '--quiet', ref]);
|
|
24
|
+
return ref;
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
// Try the next conventional default-branch ref.
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
async function defaultBranchRef(projectRoot) {
|
|
33
|
+
try {
|
|
34
|
+
const remoteHead = (await git(projectRoot, ['symbolic-ref', '--quiet', '--short', 'refs/remotes/origin/HEAD'])).trim();
|
|
35
|
+
if (remoteHead)
|
|
36
|
+
return remoteHead;
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
// Repositories without an origin/HEAD fall back to conventional branch names.
|
|
40
|
+
}
|
|
41
|
+
return firstExistingRef(projectRoot, [
|
|
42
|
+
'refs/remotes/origin/main',
|
|
43
|
+
'refs/remotes/origin/master',
|
|
44
|
+
'refs/heads/main',
|
|
45
|
+
'refs/heads/master'
|
|
46
|
+
]);
|
|
47
|
+
}
|
|
48
|
+
function parseDiffNames(output, root) {
|
|
49
|
+
const changes = new Map();
|
|
50
|
+
const fields = output.split('\0');
|
|
51
|
+
for (let index = 0; index < fields.length;) {
|
|
52
|
+
const status = fields[index++];
|
|
53
|
+
if (!status)
|
|
54
|
+
continue;
|
|
55
|
+
const sourcePath = fields[index++];
|
|
56
|
+
if (!sourcePath)
|
|
57
|
+
continue;
|
|
58
|
+
if (status.startsWith('R') || status.startsWith('C')) {
|
|
59
|
+
const destinationPath = fields[index++];
|
|
60
|
+
if (!destinationPath)
|
|
61
|
+
continue;
|
|
62
|
+
changes.set(resolve(root, destinationPath), status.startsWith('C') ? 'new' : 'edited');
|
|
63
|
+
}
|
|
64
|
+
else if (status === 'A') {
|
|
65
|
+
changes.set(resolve(root, sourcePath), 'new');
|
|
66
|
+
}
|
|
67
|
+
else if (status !== 'D') {
|
|
68
|
+
changes.set(resolve(root, sourcePath), 'edited');
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return changes;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Raw Git file changes made since this branch diverged from the repository's
|
|
75
|
+
* default branch. Staged, unstaged, and untracked files are included so the
|
|
76
|
+
* editor updates immediately after an asset mutation, before the next commit.
|
|
77
|
+
*/
|
|
78
|
+
export async function gitFileChanges(projectRoot) {
|
|
79
|
+
try {
|
|
80
|
+
const prefixParts = (await git(projectRoot, ['rev-parse', '--show-prefix']))
|
|
81
|
+
.trim()
|
|
82
|
+
.split('/')
|
|
83
|
+
.filter(Boolean);
|
|
84
|
+
const root = resolve(projectRoot, ...prefixParts.map(() => '..'));
|
|
85
|
+
const defaultRef = await defaultBranchRef(projectRoot);
|
|
86
|
+
let changes = new Map();
|
|
87
|
+
if (defaultRef) {
|
|
88
|
+
try {
|
|
89
|
+
const mergeBase = (await git(projectRoot, ['merge-base', 'HEAD', defaultRef])).trim();
|
|
90
|
+
if (mergeBase) {
|
|
91
|
+
changes = parseDiffNames(await git(projectRoot, [
|
|
92
|
+
'diff',
|
|
93
|
+
'--name-status',
|
|
94
|
+
'-z',
|
|
95
|
+
'--find-renames',
|
|
96
|
+
mergeBase,
|
|
97
|
+
'--'
|
|
98
|
+
]), root);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
catch {
|
|
102
|
+
// An unborn or unrelated branch still has useful untracked-file state.
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
const untracked = await git(projectRoot, [
|
|
106
|
+
'ls-files',
|
|
107
|
+
'--others',
|
|
108
|
+
'--exclude-standard',
|
|
109
|
+
'--full-name',
|
|
110
|
+
'-z'
|
|
111
|
+
]);
|
|
112
|
+
for (const path of untracked.split('\0')) {
|
|
113
|
+
if (path)
|
|
114
|
+
changes.set(resolve(root, path), 'new');
|
|
115
|
+
}
|
|
116
|
+
return changes;
|
|
117
|
+
}
|
|
118
|
+
catch {
|
|
119
|
+
return new Map();
|
|
120
|
+
}
|
|
121
|
+
}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* and the CLI consume this class, so every
|
|
6
6
|
* operation has exactly one implementation and there is no other save path.
|
|
7
7
|
*/
|
|
8
|
-
import { join } from 'node:path';
|
|
8
|
+
import { join, resolve } from 'node:path';
|
|
9
9
|
import { assetIdError, allDeliveredAssetIds, canonicalizeParameters, collectAllReferences, compareCodeUnits, computeLibraryMembership, folderOfRawPath, normalizeFolderPath, parentFolderPath, portableFolderPathKey, proposeAssetId, rawFileNameOfPath, typesForFileName } from '../core/index.js';
|
|
10
10
|
import { LibraryStore } from './library-store.js';
|
|
11
11
|
import { generateManifestModules } from './codegen.js';
|
|
@@ -17,6 +17,7 @@ import { rawSafetyIssues } from './raw-safety.js';
|
|
|
17
17
|
import { serverImporters } from './importers.js';
|
|
18
18
|
import { SourceImportError } from './importers/contract.js';
|
|
19
19
|
import { validateFigmaSourceParameters } from './importers/figma.js';
|
|
20
|
+
import { currentGitBranch, gitFileChanges } from './git.js';
|
|
20
21
|
/**
|
|
21
22
|
* The CLI's `--parameters` merge semantics (M7): a SHALLOW merge at the top
|
|
22
23
|
* level onto the current parameters — a nested object value replaces the whole
|
|
@@ -661,6 +662,10 @@ export class FundusOperations {
|
|
|
661
662
|
};
|
|
662
663
|
}
|
|
663
664
|
async #buildState(library, issues, classification) {
|
|
665
|
+
const [gitBranch, changedGitFiles] = await Promise.all([
|
|
666
|
+
currentGitBranch(this.#config.projectRoot),
|
|
667
|
+
gitFileChanges(this.#config.projectRoot)
|
|
668
|
+
]);
|
|
664
669
|
const referencesByAsset = collectAllReferences(library, descriptorsByType(this.#registry));
|
|
665
670
|
const membershipByManifest = computeLibraryMembership(library, referencesByAsset);
|
|
666
671
|
const delivered = allDeliveredAssetIds(membershipByManifest);
|
|
@@ -725,6 +730,7 @@ export class FundusOperations {
|
|
|
725
730
|
folder: folderOfRawPath(record.raw),
|
|
726
731
|
rawUrl: `/files/raw/${encodeRelativePathForUrl(record.raw)}?v=${record.rawHash.slice(0, 12)}`,
|
|
727
732
|
rawHash: record.rawHash,
|
|
733
|
+
gitStatus: changedGitFiles.get(resolve(this.#config.rawDir, record.raw)) ?? null,
|
|
728
734
|
importSource: record.importSource,
|
|
729
735
|
parameters: record.parameters,
|
|
730
736
|
manifests: record.manifests,
|
|
@@ -766,6 +772,7 @@ export class FundusOperations {
|
|
|
766
772
|
}
|
|
767
773
|
const rawIngestionQueue = this.#buildRawIngestionQueue(library, classification);
|
|
768
774
|
return {
|
|
775
|
+
gitBranch,
|
|
769
776
|
library,
|
|
770
777
|
assets,
|
|
771
778
|
importDefaults: { figma: { scale: this.#config.import.figma.defaults.scale } },
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
:root{--panel:#2c2c2c;--panel-raised:#383838;--canvas:#1e1e1e;--border:#444;--border-soft:#383838;--text:#fff;--text-dim:#a0a0a0;--text-faint:#7a7a7a;--accent:#0d99ff;--accent-soft:#0d99ff29;--warning:#ffcd29;--warning-soft:#ffcd2924;--danger:#f24822;--ok:#14ae5c;--radius:6px;--radius-small:4px;--radius-large:8px;--font-ui:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{height:100%;margin:0;padding:0}body{background:var(--canvas);color:var(--text);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;font-size:12px;line-height:1.45}a{color:inherit;text-decoration:none}button,input,select{font:inherit;color:inherit}button{cursor:pointer}.control{background:var(--panel-raised);border-radius:var(--radius);border:1px solid #0000;height:28px;padding:4px 8px}.control:hover{border-color:var(--border)}.control:focus,.control:focus-visible{border-color:var(--accent);outline:none}.control.primary{background:var(--accent);color:var(--text)}.control.primary:disabled{opacity:.4;cursor:not-allowed}.control.danger{color:var(--danger)}.control.danger:hover{border-color:var(--danger)}.checkerboard{background-color:var(--canvas);background-image:linear-gradient(45deg, var(--panel) 25%, transparent 25%), linear-gradient(-45deg, var(--panel) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, var(--panel) 75%), linear-gradient(-45deg, transparent 75%, var(--panel) 75%);background-position:0 0,0 8px,8px -8px,-8px 0;background-size:16px 16px}.queue.svelte-1rcmmyd{background:color-mix(in srgb, var(--accent) 8%, var(--panel));border-bottom:1px solid var(--border);flex:none;padding:10px 16px}.heading.svelte-1rcmmyd,.identity.svelte-1rcmmyd{align-items:center;gap:10px;display:flex}.heading.svelte-1rcmmyd{justify-content:space-between;margin-bottom:8px}.heading.svelte-1rcmmyd span:where(.svelte-1rcmmyd),p.svelte-1rcmmyd{color:var(--text-dim);font-size:11px}.items.svelte-1rcmmyd{gap:6px;display:grid}.item.svelte-1rcmmyd{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px}.identity.svelte-1rcmmyd>span:where(.svelte-1rcmmyd){background:var(--accent-soft);color:var(--accent);text-transform:uppercase;border-radius:999px;padding:2px 6px;font-size:10px}.identity.svelte-1rcmmyd>span.edited:where(.svelte-1rcmmyd){background:var(--warning-soft);color:var(--warning)}.identity.svelte-1rcmmyd>span.unsupported:where(.svelte-1rcmmyd){background:color-mix(in srgb, var(--danger) 14%, transparent);color:var(--danger)}.identity.svelte-1rcmmyd h2:where(.svelte-1rcmmyd){word-break:break-all;margin:0;font-size:13px}.raw.svelte-1rcmmyd{color:var(--text-dim);word-break:break-all;margin:8px 0 0;font-size:12px}.form-controls.svelte-1rcmmyd{gap:8px;width:min(100%,326px);display:grid}.new-form.svelte-1rcmmyd{margin-top:10px}.edited-form.svelte-1rcmmyd{margin-top:6px}.form-controls.svelte-1rcmmyd label:where(.svelte-1rcmmyd),.manifest-row.svelte-1rcmmyd{grid-template-columns:69px minmax(0,1fr);gap:10px;width:100%;display:grid}.form-controls.svelte-1rcmmyd label:where(.svelte-1rcmmyd){align-items:center}.manifest-row.svelte-1rcmmyd>span:where(.svelte-1rcmmyd){color:var(--text-dim);font-size:11px;line-height:28px}.manifest-row.svelte-1rcmmyd p:where(.svelte-1rcmmyd){color:var(--text-faint);margin:0;line-height:28px}.manifest-list.svelte-1rcmmyd{max-height:96px;overflow-y:auto}.form-controls.svelte-1rcmmyd input:where(.svelte-1rcmmyd),.form-controls.svelte-1rcmmyd select:where(.svelte-1rcmmyd){box-sizing:border-box;width:100%;min-width:0}.actions.svelte-1rcmmyd{align-items:center;gap:10px;display:flex}label.svelte-1rcmmyd{color:var(--text-dim);align-items:center;gap:6px;font-size:11px;display:inline-flex}input.svelte-1rcmmyd,select.svelte-1rcmmyd{min-width:150px;color:var(--text);background:var(--panel-raised);border:1px solid var(--border);border-radius:4px;padding:4px 6px}button.svelte-1rcmmyd{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:4px;padding:5px 10px}button.secondary.svelte-1rcmmyd{background:var(--panel-raised);color:var(--text);border:1px solid var(--border)}button.svelte-1rcmmyd:disabled{opacity:.45;cursor:default}p.error.svelte-1rcmmyd{color:var(--danger);margin:6px 0 0}.shell.svelte-12qhfyh{flex-direction:column;height:100vh;display:flex}.topbar.svelte-12qhfyh{background:var(--panel);border-bottom:1px solid var(--border);flex:none;align-items:center;gap:24px;height:40px;padding:0 16px;display:flex}.brand.svelte-12qhfyh{align-items:center;gap:8px;font-size:12px;font-weight:600;display:inline-flex}.logo.svelte-12qhfyh{color:var(--accent)}nav.svelte-12qhfyh{gap:4px;display:flex}nav.svelte-12qhfyh a:where(.svelte-12qhfyh){border-radius:var(--radius);color:var(--text-dim);padding:4px 10px}nav.svelte-12qhfyh a:where(.svelte-12qhfyh):hover{color:var(--text)}nav.svelte-12qhfyh a.active:where(.svelte-12qhfyh){background:var(--accent-soft);color:var(--accent)}.status.svelte-12qhfyh{color:var(--text-dim);align-items:center;gap:6px;margin-left:auto;display:inline-flex}.status-text.error.svelte-12qhfyh{color:var(--danger)}.dot.svelte-12qhfyh{background:var(--text-faint);border-radius:50%;width:7px;height:7px}.dot.ok.svelte-12qhfyh{background:var(--ok)}.dot.bad.svelte-12qhfyh{background:var(--danger)}.dot.saving.svelte-12qhfyh{background:var(--accent);animation:.8s ease-in-out infinite svelte-12qhfyh-pulse}@keyframes svelte-12qhfyh-pulse{0%,to{opacity:.35}50%{opacity:1}}.notice.svelte-12qhfyh{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-dim);margin:24px;padding:12px 16px}.issue-banner.svelte-12qhfyh{background:color-mix(in srgb, var(--danger) 14%, var(--panel));border-bottom:1px solid var(--danger);color:var(--text);flex-direction:column;gap:4px;padding:8px 16px;display:flex}code.svelte-12qhfyh{background:var(--panel-raised);border-radius:4px;padding:1px 5px}
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
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}.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}.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}.selection-bar.svelte-1uha8ag,.filter-bar.svelte-1uha8ag{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.selection-bar.svelte-1uha8ag{margin-bottom:8px}.filter-bar.svelte-1uha8ag{margin-bottom:16px}.selection-summary.svelte-1uha8ag{color:var(--accent);white-space:nowrap;font-weight:600}.toggle.svelte-1uha8ag{color:var(--text-dim);align-items:center;gap:6px;display:inline-flex}.search.svelte-1uha8ag{align-items:center;gap:5px;width:220px;padding:0 6px;display:flex}.search.svelte-1uha8ag:focus-within{border-color:var(--accent)}.search-icon.svelte-1uha8ag{fill:none;width:14px;height:14px;stroke:var(--text-faint);stroke-width:1.5px;stroke-linecap:round;flex:none}.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.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}.import.svelte-1uha8ag{background:var(--accent);color:var(--text);margin-left:auto}.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{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px;display:grid}.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:8px;padding:8px;display:flex;position:relative}.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:12px;left:12px}.card.svelte-1uha8ag:hover{border-color:var(--accent)}.thumbnail.svelte-1uha8ag{border-radius:var(--radius);justify-content:center;align-items:center;height:96px;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)}.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}
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
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)}.icon.svelte-jamecx{display:block}.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__cell.svelte-1820t2z{position:absolute;overflow:hidden}.fundus-slice__cell.svelte-1820t2z img:where(.svelte-1820t2z){pointer-events:none;-webkit-user-select:none;user-select:none;max-width:none;max-height:none;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}
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.manifest-selector.svelte-151zph4{flex-direction:column;gap:4px;width:100%;display:flex}.manifest-option.svelte-151zph4{border-color:var(--border-soft);width:100%;height:28px;color:var(--text-dim);cursor:pointer;border-radius:4px;align-items:center;gap:7px;padding:2px 7px;display:flex}.manifest-option.svelte-151zph4:hover{border-color:var(--manifest-color);background:color-mix(in srgb, var(--manifest-color) 10%, var(--panel-raised));color:var(--text)}.manifest-option.svelte-151zph4:focus-within{border-color:var(--manifest-color)}.manifest-option.selected.svelte-151zph4{border-color:var(--manifest-color);background:color-mix(in srgb, var(--manifest-color) 20%, var(--panel-raised));color:var(--text)}.manifest-option.passive.svelte-151zph4{border-color:var(--manifest-color);border-style:dashed}.manifest-option.disabled.svelte-151zph4{cursor:default;opacity:.6}.manifest-option.disabled.svelte-151zph4:hover{border-color:var(--border-soft);background:var(--panel-raised);color:var(--text-dim)}input.svelte-151zph4{width:14px;height:14px;accent-color:var(--manifest-color);flex:none;margin:0}.marker.svelte-151zph4{border:1px solid color-mix(in srgb, var(--manifest-color) 70%, var(--border));background:color-mix(in srgb, var(--manifest-color) 24%, var(--panel));border-radius:3px;flex:none;justify-content:center;align-items:center;width:18px;height:18px;font-size:12px;display:inline-flex}.color-dot.svelte-151zph4{background:var(--manifest-color);border-radius:50%;width:8px;height:8px}.name.svelte-151zph4,.via.svelte-151zph4{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.name.svelte-151zph4{font-size:11px;font-weight:500}.via.svelte-151zph4{color:var(--text-faint);margin-left:auto;font-size:9px}
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
I@d�Z��Kf��Jb��.��ʬmT����I�
|
|
Binary file
|