unspaghettit 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/client/_app/immutable/assets/0.DSctqr5I.css +1 -0
- package/build/client/_app/immutable/assets/0.DSctqr5I.css.br +0 -0
- package/build/client/_app/immutable/assets/0.DSctqr5I.css.gz +0 -0
- package/build/client/_app/immutable/assets/BehaviorGraph.Bk0xQRZk.css +1 -0
- package/build/client/_app/immutable/assets/BehaviorGraph.Bk0xQRZk.css.br +0 -0
- package/build/client/_app/immutable/assets/BehaviorGraph.Bk0xQRZk.css.gz +0 -0
- package/build/client/_app/immutable/chunks/9nXQ5qrY2.js +1 -0
- package/build/client/_app/immutable/chunks/9nXQ5qrY2.js.br +0 -0
- package/build/client/_app/immutable/chunks/9nXQ5qrY2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B439_FLv.js +1 -0
- package/build/client/_app/immutable/chunks/B439_FLv.js.br +0 -0
- package/build/client/_app/immutable/chunks/B439_FLv.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BCEY79Dw.js +1 -0
- package/build/client/_app/immutable/chunks/BCEY79Dw.js.br +2 -0
- package/build/client/_app/immutable/chunks/BCEY79Dw.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{DBJWcC6Y.js → BYIrIC5L.js} +1 -1
- package/build/client/_app/immutable/chunks/BYIrIC5L.js.br +0 -0
- package/build/client/_app/immutable/chunks/BYIrIC5L.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B_9TWPrx2.js +1 -0
- package/build/client/_app/immutable/chunks/B_9TWPrx2.js.br +0 -0
- package/build/client/_app/immutable/chunks/B_9TWPrx2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BvOhVtZg.js +1 -0
- package/build/client/_app/immutable/chunks/BvOhVtZg.js.br +1 -0
- package/build/client/_app/immutable/chunks/BvOhVtZg.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CY3em1ma2.js +1 -0
- package/build/client/_app/immutable/chunks/CY3em1ma2.js.br +0 -0
- package/build/client/_app/immutable/chunks/CY3em1ma2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CgdRZPgI.js +1 -0
- package/build/client/_app/immutable/chunks/CgdRZPgI.js.br +0 -0
- package/build/client/_app/immutable/chunks/CgdRZPgI.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D5speDV82.js +908 -0
- package/build/client/_app/immutable/chunks/D5speDV82.js.br +0 -0
- package/build/client/_app/immutable/chunks/D5speDV82.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DkxwAIfJ2.js +1 -0
- package/build/client/_app/immutable/chunks/DkxwAIfJ2.js.br +0 -0
- package/build/client/_app/immutable/chunks/DkxwAIfJ2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{DatGSObE.js → OJscNS3T.js} +1 -1
- package/build/client/_app/immutable/chunks/OJscNS3T.js.br +0 -0
- package/build/client/_app/immutable/chunks/OJscNS3T.js.gz +0 -0
- package/build/client/_app/immutable/chunks/U9p9CtKG2.js +2 -0
- package/build/client/_app/immutable/chunks/U9p9CtKG2.js.br +0 -0
- package/build/client/_app/immutable/chunks/U9p9CtKG2.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.Cd4S3giu.js +2 -0
- package/build/client/_app/immutable/entry/app.Cd4S3giu.js.br +0 -0
- package/build/client/_app/immutable/entry/app.Cd4S3giu.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.C3xXQVkq.js +1 -0
- package/build/client/_app/immutable/entry/start.C3xXQVkq.js.br +0 -0
- package/build/client/_app/immutable/entry/start.C3xXQVkq.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.dIOlQ-0y.js +4 -0
- package/build/client/_app/immutable/nodes/0.dIOlQ-0y.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.dIOlQ-0y.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{1.KYdA6ppX.js → 1.Dyte3Ggf.js} +1 -1
- package/build/client/_app/immutable/nodes/1.Dyte3Ggf.js.br +2 -0
- package/build/client/_app/immutable/nodes/1.Dyte3Ggf.js.gz +0 -0
- package/build/client/_app/immutable/nodes/10.ivxAosDg.js +2 -0
- package/build/client/_app/immutable/nodes/10.ivxAosDg.js.br +0 -0
- package/build/client/_app/immutable/nodes/10.ivxAosDg.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{9.CMW6a2Lg.js → 11.wvMfJKC2.js} +1 -1
- package/build/client/_app/immutable/nodes/11.wvMfJKC2.js.br +0 -0
- package/build/client/_app/immutable/nodes/11.wvMfJKC2.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{2.DBz20KgG.js → 2.CmPPom9Z.js} +1 -1
- package/build/client/_app/immutable/nodes/2.CmPPom9Z.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.CmPPom9Z.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.D-iCGCEx.js +1 -0
- package/build/client/_app/immutable/nodes/3.D-iCGCEx.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.D-iCGCEx.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{4.BvMzqBJj.js → 4.DbfAvO8Z.js} +1 -1
- package/build/client/_app/immutable/nodes/4.DbfAvO8Z.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.DbfAvO8Z.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.CC5Q7lVw.js +42 -0
- package/build/client/_app/immutable/nodes/5.CC5Q7lVw.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.CC5Q7lVw.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.CHIjlzpO.js +1 -0
- package/build/client/_app/immutable/nodes/6.CHIjlzpO.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.CHIjlzpO.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{6.BOHISqs-.js → 7.Ejs18ZUc.js} +1 -1
- package/build/client/_app/immutable/nodes/7.Ejs18ZUc.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.Ejs18ZUc.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{7.CemgNJfw.js → 8.B-HweAc8.js} +1 -1
- package/build/client/_app/immutable/nodes/8.B-HweAc8.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.B-HweAc8.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.CKPeM6tx.js +5 -0
- package/build/client/_app/immutable/nodes/9.CKPeM6tx.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.CKPeM6tx.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/client/lyriks_logo.svg +148 -0
- package/build/client/lyriks_logo.svg.br +0 -0
- package/build/client/lyriks_logo.svg.gz +0 -0
- package/build/server/chunks/{0-C_o0oz-N.js → 0-Co8kcANG.js} +4 -4
- package/build/server/chunks/{0-C_o0oz-N.js.map → 0-Co8kcANG.js.map} +1 -1
- package/build/server/chunks/1-BSUItTig.js +9 -0
- package/build/server/chunks/{1-DPpKAKXV.js.map → 1-BSUItTig.js.map} +1 -1
- package/build/server/chunks/10-BygvxrZp.js +9 -0
- package/build/server/chunks/10-BygvxrZp.js.map +1 -0
- package/build/server/chunks/11-DRx0tRx2.js +9 -0
- package/build/server/chunks/11-DRx0tRx2.js.map +1 -0
- package/build/server/chunks/{2-AlfFqtL1.js → 2-BQT3m1vc.js} +3 -3
- package/build/server/chunks/{2-AlfFqtL1.js.map → 2-BQT3m1vc.js.map} +1 -1
- package/build/server/chunks/{3-vbjUt_51.js → 3-DPZ9BquJ.js} +3 -3
- package/build/server/chunks/{3-vbjUt_51.js.map → 3-DPZ9BquJ.js.map} +1 -1
- package/build/server/chunks/{4-BNow4x6D.js → 4-DHo47YX6.js} +3 -3
- package/build/server/chunks/{4-BNow4x6D.js.map → 4-DHo47YX6.js.map} +1 -1
- package/build/server/chunks/5-Cp9evBAG.js +9 -0
- package/build/server/chunks/5-Cp9evBAG.js.map +1 -0
- package/build/server/chunks/6-DiBq3bOV.js +9 -0
- package/build/server/chunks/6-DiBq3bOV.js.map +1 -0
- package/build/server/chunks/{6-QQ7r8Rd5.js → 7-C4hmS0dG.js} +3 -3
- package/build/server/chunks/{6-QQ7r8Rd5.js.map → 7-C4hmS0dG.js.map} +1 -1
- package/build/server/chunks/{7-CbPLGaIG.js → 8-CFFuDzBC.js} +4 -4
- package/build/server/chunks/{7-CbPLGaIG.js.map → 8-CFFuDzBC.js.map} +1 -1
- package/build/server/chunks/9-nhhKZJrs.js +9 -0
- package/build/server/chunks/9-nhhKZJrs.js.map +1 -0
- package/build/server/chunks/BehaviorGraph-m5kYj5HH.js +757 -0
- package/build/server/chunks/BehaviorGraph-m5kYj5HH.js.map +1 -0
- package/build/server/chunks/{FeatureCard-BQOY6gJQ.js → FeatureCard-CfbXNYe8.js} +2 -2
- package/build/server/chunks/{FeatureCard-BQOY6gJQ.js.map → FeatureCard-CfbXNYe8.js.map} +1 -1
- package/build/server/chunks/{ProgressBar-CfhccQ83.js → ProgressBar-DDoQJ_C9.js} +2 -2
- package/build/server/chunks/ProgressBar-DDoQJ_C9.js.map +1 -0
- package/build/server/chunks/{ProjectsIndex-CoDrvRya.js → ProjectsIndex-DUVJ3hyL.js} +2 -2
- package/build/server/chunks/{ProjectsIndex-CoDrvRya.js.map → ProjectsIndex-DUVJ3hyL.js.map} +1 -1
- package/build/server/chunks/TransitionCatalog-B8zHs-2E.js +271 -0
- package/build/server/chunks/TransitionCatalog-B8zHs-2E.js.map +1 -0
- package/build/server/chunks/{_layout.svelte-BREws55o.js → _layout.svelte-CLTmk0xU.js} +66 -15
- package/build/server/chunks/_layout.svelte-CLTmk0xU.js.map +1 -0
- package/build/server/chunks/{_page.svelte-De508ek8.js → _page.svelte-B1nG3PKn.js} +4 -4
- package/build/server/chunks/{_page.svelte-De508ek8.js.map → _page.svelte-B1nG3PKn.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-Zf9H4KOP.js → _page.svelte-BW_nbAAH.js} +11 -315
- package/build/server/chunks/_page.svelte-BW_nbAAH.js.map +1 -0
- package/build/server/chunks/{_page.svelte-BqSC-1vK.js → _page.svelte-Caq7J0jU.js} +91 -47
- package/build/server/chunks/_page.svelte-Caq7J0jU.js.map +1 -0
- package/build/server/chunks/{_page.svelte-B7hT3P8E.js → _page.svelte-Cham-dsM.js} +4 -4
- package/build/server/chunks/{_page.svelte-B7hT3P8E.js.map → _page.svelte-Cham-dsM.js.map} +1 -1
- package/build/server/chunks/_page.svelte-Dhwjwph_.js +41 -0
- package/build/server/chunks/_page.svelte-Dhwjwph_.js.map +1 -0
- package/build/server/chunks/{_page.svelte-BKKCa9H5.js → _page.svelte-DlFVT40-.js} +3 -3
- package/build/server/chunks/{_page.svelte-BKKCa9H5.js.map → _page.svelte-DlFVT40-.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-BtI2zZ_Z.js → _page.svelte-NVT2dzpG.js} +176 -327
- package/build/server/chunks/_page.svelte-NVT2dzpG.js.map +1 -0
- package/build/server/chunks/{_page.svelte-BKTveFAj.js → _page.svelte-Oj-W7G5s.js} +5 -5
- package/build/server/chunks/{_page.svelte-BKTveFAj.js.map → _page.svelte-Oj-W7G5s.js.map} +1 -1
- package/build/server/chunks/_page.svelte-Z_kK2lHY.js +68 -0
- package/build/server/chunks/_page.svelte-Z_kK2lHY.js.map +1 -0
- package/build/server/chunks/{builderModeStore.svelte-ihupr-3p.js → builderModeStore.svelte-BpRIU_zP.js} +217 -6
- package/build/server/chunks/builderModeStore.svelte-BpRIU_zP.js.map +1 -0
- package/build/server/chunks/client-DeX3TC3s.js +51 -0
- package/build/server/chunks/{client-DfpLcAZ9.js.map → client-DeX3TC3s.js.map} +1 -1
- package/build/server/chunks/{error.svelte-C35KOpru.js → error.svelte-Cdjeq3L2.js} +4 -4
- package/build/server/chunks/{error.svelte-C35KOpru.js.map → error.svelte-Cdjeq3L2.js.map} +1 -1
- package/build/server/chunks/featureStore.svelte-DIYgPBVm.js +161 -0
- package/build/server/chunks/featureStore.svelte-DIYgPBVm.js.map +1 -0
- package/build/server/chunks/{hooks.server-Rv301GTB.js → hooks.server-y3jdg_sB.js} +6 -2
- package/build/server/chunks/hooks.server-y3jdg_sB.js.map +1 -0
- package/build/server/chunks/{internal-BPKrFkK1.js → internal-KYK0WpL7.js} +4 -4
- package/build/server/chunks/{internal-BPKrFkK1.js.map → internal-KYK0WpL7.js.map} +1 -1
- package/build/server/chunks/projectFeaturesStore.svelte-2o-72_vr.js +313 -0
- package/build/server/chunks/projectFeaturesStore.svelte-2o-72_vr.js.map +1 -0
- package/build/server/chunks/{reconcile-Dv7jS3C8.js → reconcile-B5xqb6-s.js} +3 -272
- package/build/server/chunks/reconcile-B5xqb6-s.js.map +1 -0
- package/build/server/chunks/registry-DqAn_hVE.js +21 -0
- package/build/server/chunks/registry-DqAn_hVE.js.map +1 -0
- package/build/server/chunks/{state-CpLVNZq7.js → state-DBjl9lhV.js} +2 -2
- package/build/server/chunks/{state-CpLVNZq7.js.map → state-DBjl9lhV.js.map} +1 -1
- package/build/server/index.js +1 -1
- package/build/server/index.js.map +1 -1
- package/build/server/manifest.js +33 -17
- package/build/server/manifest.js.map +1 -1
- package/cli/commands/dashboard.ts +14 -0
- package/cli/commands/init.ts +26 -0
- package/cli/commands/theme.ts +62 -0
- package/cli/unspa.ts +38 -2
- package/cli/util/context-files.ts +5 -0
- package/cli/util/theme.ts +34 -0
- package/mcp-server/sync-notifier.ts +88 -35
- package/package.json +2 -1
- package/src/app.css +187 -0
- package/src/app.html +15 -1
- package/src/features/behavior-model/domain/services/BehaviorGraphModel.ts +531 -0
- package/src/features/behavior-model/presentation/adapters/VisBehaviorGraphRenderer.ts +492 -0
- package/src/features/behavior-model/presentation/components/BehaviorGraph.svelte +370 -0
- package/src/features/behavior-model/presentation/components/FeatureHeader.svelte +13 -5
- package/src/features/behavior-model/presentation/view-models/BehaviorGraphTheme.ts +43 -0
- package/src/features/builder-mode/domain/BuilderModeDashboard.ts +7 -1
- package/src/features/builder-mode/presentation/components/BuilderModeDashboard.svelte +78 -16
- package/src/features/builder-mode/presentation/components/BuilderTagChips.svelte +25 -0
- package/src/features/builder-mode/presentation/stores/builderModeStore.svelte.ts +247 -3
- package/src/features/projects/presentation/components/ProjectEditor.svelte +7 -0
- package/src/features/simulator/application/use-cases/RunScenarios.ts +15 -1
- package/src/hooks.server.ts +11 -1
- package/src/lib/theme/registry.ts +77 -0
- package/src/lib/theme/themeStore.svelte.ts +64 -0
- package/src/routes/+layout.svelte +184 -30
- package/src/routes/features/[id]/graph/+page.svelte +34 -0
- package/src/routes/projects/[id]/graph/+page.svelte +79 -0
- package/src/shared/presentation/components/ProgressBar.svelte +1 -1
- package/src/shared/presentation/toast/SyncToast.svelte +14 -3
- package/src/shared/presentation/toast/viewLinkResolver.ts +32 -0
- package/static/lyriks_logo.svg +148 -0
- package/build/client/_app/immutable/assets/0.DFMDYAU9.css +0 -1
- package/build/client/_app/immutable/assets/0.DFMDYAU9.css.br +0 -0
- package/build/client/_app/immutable/assets/0.DFMDYAU9.css.gz +0 -0
- package/build/client/_app/immutable/chunks/BO66rBOa2.js +0 -1
- package/build/client/_app/immutable/chunks/BO66rBOa2.js.br +0 -0
- package/build/client/_app/immutable/chunks/BO66rBOa2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DBJWcC6Y.js.br +0 -0
- package/build/client/_app/immutable/chunks/DBJWcC6Y.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DHoA038D.js +0 -1
- package/build/client/_app/immutable/chunks/DHoA038D.js.br +0 -2
- package/build/client/_app/immutable/chunks/DHoA038D.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DatGSObE.js.br +0 -0
- package/build/client/_app/immutable/chunks/DatGSObE.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DjWKKtqp.js +0 -1
- package/build/client/_app/immutable/chunks/DjWKKtqp.js.br +0 -1
- package/build/client/_app/immutable/chunks/DjWKKtqp.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dq0DUAz1.js +0 -1
- package/build/client/_app/immutable/chunks/Dq0DUAz1.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dq0DUAz1.js.gz +0 -0
- package/build/client/_app/immutable/chunks/iQu0D9Ux.js +0 -1
- package/build/client/_app/immutable/chunks/iQu0D9Ux.js.br +0 -0
- package/build/client/_app/immutable/chunks/iQu0D9Ux.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.CLgh6Mx_.js +0 -2
- package/build/client/_app/immutable/entry/app.CLgh6Mx_.js.br +0 -0
- package/build/client/_app/immutable/entry/app.CLgh6Mx_.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.D5GPCQZD.js +0 -1
- package/build/client/_app/immutable/entry/start.D5GPCQZD.js.br +0 -0
- package/build/client/_app/immutable/entry/start.D5GPCQZD.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.BOoI-hsu.js +0 -4
- package/build/client/_app/immutable/nodes/0.BOoI-hsu.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.BOoI-hsu.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.KYdA6ppX.js.br +0 -2
- package/build/client/_app/immutable/nodes/1.KYdA6ppX.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.DBz20KgG.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.DBz20KgG.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.19DIoFtw.js +0 -1
- package/build/client/_app/immutable/nodes/3.19DIoFtw.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.19DIoFtw.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.BvMzqBJj.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.BvMzqBJj.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.Dq6obSGG.js +0 -42
- package/build/client/_app/immutable/nodes/5.Dq6obSGG.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.Dq6obSGG.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.BOHISqs-.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.BOHISqs-.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.CemgNJfw.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.CemgNJfw.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.DejSfIYh.js +0 -5
- package/build/client/_app/immutable/nodes/8.DejSfIYh.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.DejSfIYh.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.CMW6a2Lg.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.CMW6a2Lg.js.gz +0 -0
- package/build/server/chunks/1-DPpKAKXV.js +0 -9
- package/build/server/chunks/5-D7OCJpxD.js +0 -9
- package/build/server/chunks/5-D7OCJpxD.js.map +0 -1
- package/build/server/chunks/8-CVO-E-sf.js +0 -9
- package/build/server/chunks/8-CVO-E-sf.js.map +0 -1
- package/build/server/chunks/9-DxT1baO5.js +0 -9
- package/build/server/chunks/9-DxT1baO5.js.map +0 -1
- package/build/server/chunks/ProgressBar-CfhccQ83.js.map +0 -1
- package/build/server/chunks/_layout.svelte-BREws55o.js.map +0 -1
- package/build/server/chunks/_page.svelte-BqSC-1vK.js.map +0 -1
- package/build/server/chunks/_page.svelte-BtI2zZ_Z.js.map +0 -1
- package/build/server/chunks/_page.svelte-Zf9H4KOP.js.map +0 -1
- package/build/server/chunks/builderModeStore.svelte-ihupr-3p.js.map +0 -1
- package/build/server/chunks/client-DfpLcAZ9.js +0 -24
- package/build/server/chunks/hooks.server-Rv301GTB.js.map +0 -1
- package/build/server/chunks/reconcile-Dv7jS3C8.js.map +0 -1
- /package/build/client/_app/immutable/assets/{9.nv0I59TU.css → 11.nv0I59TU.css} +0 -0
- /package/build/client/_app/immutable/assets/{9.nv0I59TU.css.br → 11.nv0I59TU.css.br} +0 -0
- /package/build/client/_app/immutable/assets/{9.nv0I59TU.css.gz → 11.nv0I59TU.css.gz} +0 -0
package/src/app.css
CHANGED
|
@@ -39,6 +39,193 @@ body {
|
|
|
39
39
|
color: #0f172a;
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
+
/*
|
|
43
|
+
* ============================================================================
|
|
44
|
+
* Lyriks theme — opt-in cosmetic skin (gated by data-theme="lyriks" on <html>)
|
|
45
|
+
* ============================================================================
|
|
46
|
+
*
|
|
47
|
+
* Purely a re-colour of the design system: it overrides the `@theme` token
|
|
48
|
+
* *values* (the brand ramp + canvas/hairline), so every token-driven utility
|
|
49
|
+
* (bg-brand-*, text-brand-*, ring-brand-*, the avatar gradient, progress bars,
|
|
50
|
+
* focus rings, chips, ...) adopts the Lyriks violet identity without touching a
|
|
51
|
+
* single component. The header/shell *chrome* (the signature gradient bar) is
|
|
52
|
+
* applied in +layout.svelte via the same theme flag. Inert unless the attribute
|
|
53
|
+
* is present, so the default install is unaffected.
|
|
54
|
+
*
|
|
55
|
+
* `:root[data-theme='lyriks']` (specificity 0,2,0) wins over Tailwind's
|
|
56
|
+
* `@theme`-emitted `:root` (0,1,0), and custom properties inherit, so the
|
|
57
|
+
* overridden values cascade to every element.
|
|
58
|
+
*
|
|
59
|
+
* Tailwind v4 exposes the WHOLE default palette as CSS vars too (every utility
|
|
60
|
+
* compiles to `var(--color-<family>-<shade>)`). So re-skinning the families the
|
|
61
|
+
* app is built on — the neutral ramps (slate + neutral) and the cool accents it
|
|
62
|
+
* uses as the default teal/cyan brand (cyan/sky/teal) — restyles every surface,
|
|
63
|
+
* border, input, chip, table, and accent across the whole dashboard from this
|
|
64
|
+
* one block, with no component edits. The semantic status colours (amber,
|
|
65
|
+
* emerald, rose, red) are deliberately left alone so warnings/success/danger
|
|
66
|
+
* keep their meaning — matching the reference's amber/teal status rings.
|
|
67
|
+
*/
|
|
68
|
+
:root[data-theme='lyriks'] {
|
|
69
|
+
/* Brand ramp → violet. */
|
|
70
|
+
--color-brand-50: #f5f3ff;
|
|
71
|
+
--color-brand-100: #ede9fe;
|
|
72
|
+
--color-brand-200: #ddd6fe;
|
|
73
|
+
--color-brand-300: #c4b5fd;
|
|
74
|
+
--color-brand-400: #a78bfa;
|
|
75
|
+
--color-brand-500: #8b5cf6;
|
|
76
|
+
--color-brand-600: #7c3aed;
|
|
77
|
+
--color-brand-700: #6d28d9;
|
|
78
|
+
--color-brand-800: #5b21b6;
|
|
79
|
+
--color-brand-900: #4c1d95;
|
|
80
|
+
|
|
81
|
+
/* Brand wordmark switches to Space Grotesk (the reference's clean grotesk)
|
|
82
|
+
* instead of the default Dancing Script. `font-brand` resolves through this
|
|
83
|
+
* token, so the header wordmark restyles with no markup change. */
|
|
84
|
+
--font-brand: 'Space Grotesk', ui-sans-serif, system-ui, sans-serif;
|
|
85
|
+
|
|
86
|
+
/* App semantic surfaces. A clearly lavender canvas so the body — not just the
|
|
87
|
+
* header — reads as themed; white cards float on top of it. */
|
|
88
|
+
--color-canvas: #eeeafb;
|
|
89
|
+
--color-surface-soft: #e6dff7;
|
|
90
|
+
--color-surface-strong: #ddd4f1;
|
|
91
|
+
--color-hairline: #e0d8f1;
|
|
92
|
+
|
|
93
|
+
/* Neutral ramps (slate + neutral) → a cool lavender-tinted gray. The light
|
|
94
|
+
* end is pushed visibly violet so panels/rows/borders read as Lyriks; the
|
|
95
|
+
* mid tones keep enough darkness for text contrast; the dark shades become a
|
|
96
|
+
* deep violet-navy (matches the reference's chrome). Lightness tracks the
|
|
97
|
+
* originals so contrast holds. */
|
|
98
|
+
--color-slate-50: #f2eefc;
|
|
99
|
+
--color-slate-100: #e9e3f7;
|
|
100
|
+
--color-slate-200: #ddd4ee;
|
|
101
|
+
--color-slate-300: #c7bce0;
|
|
102
|
+
--color-slate-400: #948ab0;
|
|
103
|
+
--color-slate-500: #645c7e;
|
|
104
|
+
--color-slate-600: #4d4669;
|
|
105
|
+
--color-slate-700: #393353;
|
|
106
|
+
--color-slate-800: #261e3b;
|
|
107
|
+
--color-slate-900: #18122f;
|
|
108
|
+
--color-slate-950: #0d0822;
|
|
109
|
+
--color-neutral-50: #f2eefc;
|
|
110
|
+
--color-neutral-100: #e9e3f7;
|
|
111
|
+
--color-neutral-200: #ddd4ee;
|
|
112
|
+
--color-neutral-300: #c7bce0;
|
|
113
|
+
--color-neutral-400: #948ab0;
|
|
114
|
+
--color-neutral-500: #645c7e;
|
|
115
|
+
--color-neutral-600: #4d4669;
|
|
116
|
+
--color-neutral-700: #393353;
|
|
117
|
+
--color-neutral-800: #261e3b;
|
|
118
|
+
--color-neutral-900: #18122f;
|
|
119
|
+
--color-neutral-950: #0d0822;
|
|
120
|
+
|
|
121
|
+
/* Cool accents the app uses as its default brand (cyan/sky/teal) → violet,
|
|
122
|
+
* so no teal/blue pockets survive next to the new violet primary. */
|
|
123
|
+
--color-cyan-50: #f5f3ff;
|
|
124
|
+
--color-cyan-100: #ede9fe;
|
|
125
|
+
--color-cyan-200: #ddd6fe;
|
|
126
|
+
--color-cyan-300: #c4b5fd;
|
|
127
|
+
--color-cyan-400: #a78bfa;
|
|
128
|
+
--color-cyan-500: #8b5cf6;
|
|
129
|
+
--color-cyan-600: #7c3aed;
|
|
130
|
+
--color-cyan-700: #6d28d9;
|
|
131
|
+
--color-cyan-800: #5b21b6;
|
|
132
|
+
--color-cyan-900: #4c1d95;
|
|
133
|
+
--color-cyan-950: #2e1065;
|
|
134
|
+
--color-sky-50: #f5f3ff;
|
|
135
|
+
--color-sky-100: #ede9fe;
|
|
136
|
+
--color-sky-200: #ddd6fe;
|
|
137
|
+
--color-sky-300: #c4b5fd;
|
|
138
|
+
--color-sky-400: #a78bfa;
|
|
139
|
+
--color-sky-500: #8b5cf6;
|
|
140
|
+
--color-sky-600: #7c3aed;
|
|
141
|
+
--color-sky-700: #6d28d9;
|
|
142
|
+
--color-sky-800: #5b21b6;
|
|
143
|
+
--color-sky-900: #4c1d95;
|
|
144
|
+
--color-sky-950: #2e1065;
|
|
145
|
+
--color-teal-50: #f5f3ff;
|
|
146
|
+
--color-teal-100: #ede9fe;
|
|
147
|
+
--color-teal-200: #ddd6fe;
|
|
148
|
+
--color-teal-300: #c4b5fd;
|
|
149
|
+
--color-teal-400: #a78bfa;
|
|
150
|
+
--color-teal-500: #8b5cf6;
|
|
151
|
+
--color-teal-600: #7c3aed;
|
|
152
|
+
--color-teal-700: #6d28d9;
|
|
153
|
+
--color-teal-800: #5b21b6;
|
|
154
|
+
--color-teal-900: #4c1d95;
|
|
155
|
+
--color-teal-950: #2e1065;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
/* Cover the bare <html>/<body> backdrop (set outside the theme system above
|
|
159
|
+
* and via the body's `bg-neutral-50` utility) so edges match the cool canvas. */
|
|
160
|
+
:root[data-theme='lyriks'],
|
|
161
|
+
:root[data-theme='lyriks'] body {
|
|
162
|
+
background: var(--color-canvas);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
/* Re-tint the navigateTo focus pulse to the violet brand so it matches. */
|
|
166
|
+
@keyframes focus-flash-lyriks {
|
|
167
|
+
0% {
|
|
168
|
+
box-shadow: 0 0 0 0 rgba(124, 58, 237, 0.5);
|
|
169
|
+
background-color: rgba(237, 233, 254, 0.6);
|
|
170
|
+
}
|
|
171
|
+
60% {
|
|
172
|
+
box-shadow: 0 0 0 8px rgba(124, 58, 237, 0);
|
|
173
|
+
background-color: rgba(237, 233, 254, 0.25);
|
|
174
|
+
}
|
|
175
|
+
100% {
|
|
176
|
+
box-shadow: 0 0 0 0 rgba(124, 58, 237, 0);
|
|
177
|
+
background-color: transparent;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
:root[data-theme='lyriks'] .focus-flash {
|
|
181
|
+
animation-name: focus-flash-lyriks;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
/*
|
|
185
|
+
* Emphasis colour. Primary buttons and active toggles across the app use a
|
|
186
|
+
* near-black `slate-900` surface (with a `slate-800` hover) as the "emphasis"
|
|
187
|
+
* colour — separate from the brand. Under Lyriks the brand IS the emphasis
|
|
188
|
+
* colour, so remap the SOLID dark button/active/border surfaces (and their
|
|
189
|
+
* hovers) to violet; otherwise primary CTAs read as leftover black buttons.
|
|
190
|
+
*
|
|
191
|
+
* We target the utility CLASSES, not the `--color-slate-*` variables, on
|
|
192
|
+
* purpose: the same slate-900 token is the body-text colour (`text-slate-900`),
|
|
193
|
+
* which must stay dark. Translucent scrims (`bg-slate-900/40`, …) and the
|
|
194
|
+
* builder's dark canvas gradients keep their own class names and are
|
|
195
|
+
* intentionally left as deep violet-navy.
|
|
196
|
+
*/
|
|
197
|
+
:root[data-theme='lyriks'] .bg-slate-900,
|
|
198
|
+
:root[data-theme='lyriks'] .bg-slate-950,
|
|
199
|
+
:root[data-theme='lyriks'] .bg-neutral-900,
|
|
200
|
+
:root[data-theme='lyriks'] .bg-neutral-950 {
|
|
201
|
+
background-color: var(--color-brand-600);
|
|
202
|
+
}
|
|
203
|
+
:root[data-theme='lyriks'] .bg-slate-800 {
|
|
204
|
+
background-color: var(--color-brand-700);
|
|
205
|
+
}
|
|
206
|
+
:root[data-theme='lyriks'] .border-slate-900 {
|
|
207
|
+
border-color: var(--color-brand-600);
|
|
208
|
+
}
|
|
209
|
+
:root[data-theme='lyriks'] .hover\:bg-slate-900:hover,
|
|
210
|
+
:root[data-theme='lyriks'] .hover\:bg-slate-800:hover {
|
|
211
|
+
background-color: var(--color-brand-700);
|
|
212
|
+
}
|
|
213
|
+
:root[data-theme='lyriks'] .hover\:bg-slate-700:hover {
|
|
214
|
+
background-color: var(--color-brand-600);
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
/*
|
|
218
|
+
* Card top-accent flourish. Project + feature cards paint a thin
|
|
219
|
+
* `from-brand-500 via-brand-mint to-violet-400` bar across the top; the mint
|
|
220
|
+
* (teal) middle stop is a fixed accent token we leave alone elsewhere (tags use
|
|
221
|
+
* that palette), so it survives the remap and clashes with Lyriks. Re-skin just
|
|
222
|
+
* this flourish to echo the header's violet→fuchsia→pink sweep. `.via-brand-mint`
|
|
223
|
+
* is unique to these accent bars, so the override is precise.
|
|
224
|
+
*/
|
|
225
|
+
:root[data-theme='lyriks'] .via-brand-mint {
|
|
226
|
+
background-image: linear-gradient(to right, #6d28d9, #a21caf, #db2777);
|
|
227
|
+
}
|
|
228
|
+
|
|
42
229
|
/*
|
|
43
230
|
* Restore `cursor: pointer` on interactive elements.
|
|
44
231
|
*
|
package/src/app.html
CHANGED
|
@@ -1,8 +1,22 @@
|
|
|
1
1
|
<!doctype html>
|
|
2
|
-
<html lang="en" class="h-full">
|
|
2
|
+
<html lang="en" class="h-full" data-theme="%unspa.theme%">
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="utf-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
|
+
<!--
|
|
7
|
+
Theme bootstrap. The server fills the data-theme placeholder above from
|
|
8
|
+
PUBLIC_UNSPA_THEME (the CLI default) in hooks.server.ts. This runs before
|
|
9
|
+
first paint and lets a saved in-app switcher choice (localStorage) win
|
|
10
|
+
over that default, so the page never flashes the wrong colour skin. Kept
|
|
11
|
+
tiny + guarded so a blocked storage API (private browsing) just leaves
|
|
12
|
+
the server default.
|
|
13
|
+
-->
|
|
14
|
+
<script>
|
|
15
|
+
try {
|
|
16
|
+
var t = localStorage.getItem('unspa.theme');
|
|
17
|
+
if (t) document.documentElement.dataset.theme = t;
|
|
18
|
+
} catch (e) {}
|
|
19
|
+
</script>
|
|
6
20
|
<link rel="icon" href="%sveltekit.assets%/unspaghettit_logo.png" type="image/png" />
|
|
7
21
|
<meta name="description" content="Executable specifications for AI-assisted software development. Local-first and MCP-native by Lyriks.io." />
|
|
8
22
|
<meta property="og:title" content="Unspaghettit" />
|