@geekity/cms 0.40.0 → 0.41.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/admin/pages/appearance/look.njk +135 -0
- package/admin/pages/dashboard/home.njk +9 -3
- package/admin/pages/documents/conflict.njk +35 -10
- package/admin/pages/documents/editor.njk +28 -0
- package/admin/pages/documents/list.njk +44 -1
- package/admin/pages/settings/general.njk +4 -0
- package/admin/pages/users/edit.njk +1 -1
- package/admin/src/admin.css +32 -0
- package/admin/static/admin.css +197 -3
- package/admin/static/dashboard.js +51 -23
- package/admin/static/editor.js +19 -19
- package/dist/admin/autosave-client.d.ts +85 -0
- package/dist/admin/autosave-client.d.ts.map +1 -0
- package/dist/admin/autosave-client.js +218 -0
- package/dist/admin/autosave-client.js.map +1 -0
- package/dist/admin/autosave.d.ts +11 -0
- package/dist/admin/autosave.d.ts.map +1 -0
- package/dist/admin/autosave.js +76 -0
- package/dist/admin/autosave.js.map +1 -0
- package/dist/admin/dashboard.d.ts +2 -2
- package/dist/admin/dashboard.d.ts.map +1 -1
- package/dist/admin/dashboard.js +23 -15
- package/dist/admin/dashboard.js.map +1 -1
- package/dist/admin/documents.d.ts.map +1 -1
- package/dist/admin/documents.js +205 -16
- package/dist/admin/documents.js.map +1 -1
- package/dist/admin/flash.d.ts +2 -0
- package/dist/admin/flash.d.ts.map +1 -1
- package/dist/admin/flash.js +12 -0
- package/dist/admin/flash.js.map +1 -1
- package/dist/admin/focus-mode.d.ts +39 -0
- package/dist/admin/focus-mode.d.ts.map +1 -0
- package/dist/admin/focus-mode.js +81 -0
- package/dist/admin/focus-mode.js.map +1 -0
- package/dist/admin/look.d.ts +12 -0
- package/dist/admin/look.d.ts.map +1 -0
- package/dist/admin/look.js +179 -0
- package/dist/admin/look.js.map +1 -0
- package/dist/admin/menu.d.ts.map +1 -1
- package/dist/admin/menu.js +5 -3
- package/dist/admin/menu.js.map +1 -1
- package/dist/admin/preview.d.ts.map +1 -1
- package/dist/admin/preview.js +1 -0
- package/dist/admin/preview.js.map +1 -1
- package/dist/admin/routes.d.ts.map +1 -1
- package/dist/admin/routes.js +6 -4
- package/dist/admin/routes.js.map +1 -1
- package/dist/admin/settings-fields.d.ts +1 -1
- package/dist/admin/settings-fields.d.ts.map +1 -1
- package/dist/admin/settings-fields.js +1 -0
- package/dist/admin/settings-fields.js.map +1 -1
- package/dist/admin/settings-general.d.ts.map +1 -1
- package/dist/admin/settings-general.js +1 -0
- package/dist/admin/settings-general.js.map +1 -1
- package/dist/admin/templates.d.ts +1 -0
- package/dist/admin/templates.d.ts.map +1 -1
- package/dist/admin/templates.js +1 -0
- package/dist/admin/templates.js.map +1 -1
- package/dist/admin/users.d.ts.map +1 -1
- package/dist/admin/users.js +2 -0
- package/dist/admin/users.js.map +1 -1
- package/dist/autosave/index.d.ts +5 -0
- package/dist/autosave/index.d.ts.map +1 -0
- package/dist/autosave/index.js +3 -0
- package/dist/autosave/index.js.map +1 -0
- package/dist/autosave/key.d.ts +13 -0
- package/dist/autosave/key.d.ts.map +1 -0
- package/dist/autosave/key.js +29 -0
- package/dist/autosave/key.js.map +1 -0
- package/dist/autosave/store.d.ts +23 -0
- package/dist/autosave/store.d.ts.map +1 -0
- package/dist/autosave/store.js +114 -0
- package/dist/autosave/store.js.map +1 -0
- package/dist/cli.js +1 -1
- package/dist/cli.js.map +1 -1
- package/dist/cms/app.d.ts.map +1 -1
- package/dist/cms/app.js +1 -0
- package/dist/cms/app.js.map +1 -1
- package/dist/cms/boot.d.ts.map +1 -1
- package/dist/cms/boot.js +2 -0
- package/dist/cms/boot.js.map +1 -1
- package/dist/cms/create.d.ts +6 -0
- package/dist/cms/create.d.ts.map +1 -1
- package/dist/cms/create.js +1 -0
- package/dist/cms/create.js.map +1 -1
- package/dist/cms/services.d.ts +2 -0
- package/dist/cms/services.d.ts.map +1 -1
- package/dist/cms/services.js +9 -0
- package/dist/cms/services.js.map +1 -1
- package/dist/content/post-type.d.ts +1 -0
- package/dist/content/post-type.d.ts.map +1 -1
- package/dist/content/post-type.js +1 -1
- package/dist/content/post-type.js.map +1 -1
- package/dist/content/write.d.ts +8 -0
- package/dist/content/write.d.ts.map +1 -1
- package/dist/content/write.js +1 -1
- package/dist/content/write.js.map +1 -1
- package/dist/files/data-files.d.ts +2 -0
- package/dist/files/data-files.d.ts.map +1 -1
- package/dist/files/data-files.js +12 -0
- package/dist/files/data-files.js.map +1 -1
- package/dist/fonts/css.d.ts +25 -0
- package/dist/fonts/css.d.ts.map +1 -0
- package/dist/fonts/css.js +88 -0
- package/dist/fonts/css.js.map +1 -0
- package/dist/fonts/family.d.ts +23 -0
- package/dist/fonts/family.d.ts.map +1 -0
- package/dist/fonts/family.js +41 -0
- package/dist/fonts/family.js.map +1 -0
- package/dist/fonts/index.d.ts +10 -0
- package/dist/fonts/index.d.ts.map +1 -0
- package/dist/fonts/index.js +6 -0
- package/dist/fonts/index.js.map +1 -0
- package/dist/fonts/job.d.ts +20 -0
- package/dist/fonts/job.d.ts.map +1 -0
- package/dist/fonts/job.js +49 -0
- package/dist/fonts/job.js.map +1 -0
- package/dist/fonts/roles.d.ts +53 -0
- package/dist/fonts/roles.d.ts.map +1 -0
- package/dist/fonts/roles.js +64 -0
- package/dist/fonts/roles.js.map +1 -0
- package/dist/fonts/store.d.ts +69 -0
- package/dist/fonts/store.d.ts.map +1 -0
- package/dist/fonts/store.js +237 -0
- package/dist/fonts/store.js.map +1 -0
- package/dist/plugin.d.ts +1 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/settings/registry.d.ts.map +1 -1
- package/dist/settings/registry.js +5 -1
- package/dist/settings/registry.js.map +1 -1
- package/dist/settings/types.d.ts +1 -1
- package/dist/settings/types.d.ts.map +1 -1
- package/dist/site/dashboard-layout.d.ts +33 -26
- package/dist/site/dashboard-layout.d.ts.map +1 -1
- package/dist/site/dashboard-layout.js +94 -39
- package/dist/site/dashboard-layout.js.map +1 -1
- package/dist/site/namespace.d.ts +5 -0
- package/dist/site/namespace.d.ts.map +1 -1
- package/dist/site/namespace.js +40 -1
- package/dist/site/namespace.js.map +1 -1
- package/dist/store/schema.d.ts.map +1 -1
- package/dist/store/schema.js +4 -0
- package/dist/store/schema.js.map +1 -1
- package/dist/store/sessions.d.ts +2 -1
- package/dist/store/sessions.d.ts.map +1 -1
- package/dist/store/sessions.js +30 -12
- package/dist/store/sessions.js.map +1 -1
- package/dist/theme/font-family.d.ts +13 -0
- package/dist/theme/font-family.d.ts.map +1 -0
- package/dist/theme/font-family.js +21 -0
- package/dist/theme/font-family.js.map +1 -0
- package/dist/theme/scheme-tokens.d.ts +50 -0
- package/dist/theme/scheme-tokens.d.ts.map +1 -0
- package/dist/theme/scheme-tokens.js +240 -0
- package/dist/theme/scheme-tokens.js.map +1 -0
- package/dist/theme/site-data.d.ts +12 -0
- package/dist/theme/site-data.d.ts.map +1 -1
- package/dist/theme/site-data.js +15 -0
- package/dist/theme/site-data.js.map +1 -1
- package/dist/theme/themes.d.ts +74 -0
- package/dist/theme/themes.d.ts.map +1 -1
- package/dist/theme/themes.js +100 -9
- package/dist/theme/themes.js.map +1 -1
- package/dist/web/embed.d.ts.map +1 -1
- package/dist/web/embed.js +2 -1
- package/dist/web/embed.js.map +1 -1
- package/dist/web/env.d.ts +2 -0
- package/dist/web/env.d.ts.map +1 -1
- package/dist/web/feed-source.d.ts +1 -1
- package/dist/web/feed-source.d.ts.map +1 -1
- package/dist/web/feed-source.js +1 -1
- package/dist/web/feed-source.js.map +1 -1
- package/dist/web/font-routes.d.ts +13 -0
- package/dist/web/font-routes.d.ts.map +1 -0
- package/dist/web/font-routes.js +27 -0
- package/dist/web/font-routes.js.map +1 -0
- package/dist/web/maintenance.d.ts.map +1 -1
- package/dist/web/maintenance.js +5 -2
- package/dist/web/maintenance.js.map +1 -1
- package/dist/web/manifest.d.ts +8 -5
- package/dist/web/manifest.d.ts.map +1 -1
- package/dist/web/manifest.js +10 -7
- package/dist/web/manifest.js.map +1 -1
- package/dist/web/oembed.d.ts +17 -3
- package/dist/web/oembed.d.ts.map +1 -1
- package/dist/web/oembed.js +68 -26
- package/dist/web/oembed.js.map +1 -1
- package/dist/web/render.d.ts +19 -2
- package/dist/web/render.d.ts.map +1 -1
- package/dist/web/render.js +30 -3
- package/dist/web/render.js.map +1 -1
- package/dist/web/routes.d.ts.map +1 -1
- package/dist/web/routes.js +3 -0
- package/dist/web/routes.js.map +1 -1
- package/dist/webmention/fetch-public.d.ts +6 -0
- package/dist/webmention/fetch-public.d.ts.map +1 -1
- package/dist/webmention/fetch-public.js +6 -1
- package/dist/webmention/fetch-public.js.map +1 -1
- package/package.json +1 -1
- package/themes/default/layouts/base.njk +28 -16
- package/themes/default/layouts/page.njk +4 -8
- package/themes/default/partials/bio.njk +1 -1
- package/themes/default/partials/contact-form.njk +1 -1
- package/themes/default/src/style.css +326 -15
- package/themes/default/static/style.css +489 -3
- package/themes/default/theme.json +23 -1
package/dist/store/schema.js
CHANGED
|
@@ -581,6 +581,10 @@ export const MIGRATIONS = [
|
|
|
581
581
|
ALTER TABLE comments ADD COLUMN actor TEXT;
|
|
582
582
|
`,
|
|
583
583
|
},
|
|
584
|
+
{
|
|
585
|
+
version: 27,
|
|
586
|
+
sql: `ALTER TABLE sessions ADD COLUMN cleared_autosaves TEXT;`,
|
|
587
|
+
},
|
|
584
588
|
];
|
|
585
589
|
export function openAdminDatabase(dataDir, now) {
|
|
586
590
|
return openDatabase({ dataDir, ledger: LEDGER, migrations: MIGRATIONS, now });
|
package/dist/store/schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/store/schema.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/store/schema.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,+DAA+D;AAC/D,MAAM,CAAC,MAAM,MAAM,GAAG,kBAAkB,CAAC;AAEzC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,UAAU,GAAyB;IAC9C;QACE,wEAAwE;QACxE,wEAAwE;QACxE,2EAA2E;QAC3E,2EAA2E;QAC3E,oEAAoE;QACpE,yEAAyE;QACzE,qDAAqD;QACrD,OAAO,EAAE,CAAC;QACV,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;KAoBJ;KACF;IACD;QACE,yEAAyE;QACzE,yEAAyE;QACzE,yEAAyE;QACzE,wCAAwC;QACxC,OAAO,EAAE,CAAC;QACV,GAAG,EAAE,4CAA4C;KAClD;IACD;QACE,sEAAsE;QACtE,uEAAuE;QACvE,0EAA0E;QAC1E,2EAA2E;QAC3E,wEAAwE;QACxE,mEAAmE;QACnE,OAAO,EAAE,CAAC;QACV,GAAG,EAAE;;;;;;KAMJ;KACF;IACD;QACE,yEAAyE;QACzE,2EAA2E;QAC3E,4EAA4E;QAC5E,2EAA2E;QAC3E,4EAA4E;QAC5E,+DAA+D;QAC/D,OAAO,EAAE,CAAC;QACV,GAAG,EAAE;;;;;;;;;KASJ;KACF;IACD;QACE,wEAAwE;QACxE,0EAA0E;QAC1E,yEAAyE;QACzE,wEAAwE;QACxE,wCAAwC;QACxC,OAAO,EAAE,CAAC;QACV,GAAG,EAAE;;;;;;;;;;;;;KAaJ;KACF;IACD;QACE,oEAAoE;QACpE,uEAAuE;QACvE,wEAAwE;QACxE,yEAAyE;QACzE,wEAAwE;QACxE,gEAAgE;QAChE,OAAO,EAAE,CAAC;QACV,GAAG,EAAE;;;;;;;;;;;;;;KAcJ;KACF;IACD;QACE,yEAAyE;QACzE,qEAAqE;QACrE,2EAA2E;QAC3E,2EAA2E;QAC3E,4DAA4D;QAC5D,EAAE;QACF,yEAAyE;QACzE,yEAAyE;QACzE,uEAAuE;QACvE,uCAAuC;QACvC,OAAO,EAAE,CAAC;QACV,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;KAyBJ;KACF;IACD;QACE,uEAAuE;QACvE,gEAAgE;QAChE,EAAE;QACF,0EAA0E;QAC1E,yEAAyE;QACzE,0DAA0D;QAC1D,OAAO,EAAE,CAAC;QACV,GAAG,EAAE;;;KAGJ;QACD,GAAG,CAAC,EAAE;YACJ,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC,GAAG,EAAE,CAAC;YAC/D,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,kDAAkD,CAAC,CAAC;YAC9E,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;KACF;IACD;QACE,mEAAmE;QACnE,sEAAsE;QACtE,yEAAyE;QACzE,0EAA0E;QAC1E,EAAE;QACF,sEAAsE;QACtE,yEAAyE;QACzE,sEAAsE;QACtE,OAAO,EAAE,CAAC;QACV,GAAG,EAAE;;;;;;;;;;;;;KAaJ;KACF;IACD;QACE,yEAAyE;QACzE,wEAAwE;QACxE,mEAAmE;QACnE,0EAA0E;QAC1E,OAAO,EAAE,EAAE;QACX,GAAG,EAAE;;;;;;KAMJ;KACF;IACD;QACE,2EAA2E;QAC3E,2EAA2E;QAC3E,wEAAwE;QACxE,gEAAgE;QAChE,2EAA2E;QAC3E,wEAAwE;QACxE,2EAA2E;QAC3E,2EAA2E;QAC3E,wEAAwE;QACxE,6CAA6C;QAC7C,OAAO,EAAE,EAAE;QACX,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;KAoBJ;KACF;IACD;QACE,2EAA2E;QAC3E,0EAA0E;QAC1E,wEAAwE;QACxE,wEAAwE;QACxE,mCAAmC;QACnC,EAAE;QACF,mEAAmE;QACnE,wEAAwE;QACxE,yEAAyE;QACzE,yEAAyE;QACzE,sEAAsE;QACtE,yEAAyE;QACzE,0EAA0E;QAC1E,yEAAyE;QACzE,8CAA8C;QAC9C,OAAO,EAAE,EAAE;QACX,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAuCJ;KACF;IACD;QACE,yEAAyE;QACzE,uEAAuE;QACvE,yEAAyE;QACzE,yEAAyE;QACzE,OAAO,EAAE,EAAE;QACX,GAAG,EAAE;;KAEJ;KACF;IACD;QACE,mDAAmD;QACnD,wEAAwE;QACxE,uEAAuE;QACvE,iEAAiE;QACjE,EAAE;QACF,2EAA2E;QAC3E,qEAAqE;QACrE,uEAAuE;QACvE,wEAAwE;QACxE,kCAAkC;QAClC,OAAO,EAAE,EAAE;QACX,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;KAqBJ;KACF;IACD;QACE,4EAA4E;QAC5E,EAAE;QACF,sEAAsE;QACtE,wEAAwE;QACxE,wEAAwE;QACxE,4EAA4E;QAC5E,uEAAuE;QACvE,4EAA4E;QAC5E,yBAAyB;QACzB,EAAE;QACF,0EAA0E;QAC1E,yEAAyE;QACzE,wEAAwE;QACxE,sEAAsE;QACtE,sEAAsE;QACtE,OAAO,EAAE,EAAE;QACX,GAAG,EAAE;;;;;;;;;;;;;;;;KAgBJ;KACF;IACD;QACE,yEAAyE;QACzE,0EAA0E;QAC1E,oEAAoE;QACpE,sEAAsE;QACtE,2EAA2E;QAC3E,0EAA0E;QAC1E,wBAAwB;QACxB,EAAE;QACF,wEAAwE;QACxE,yEAAyE;QACzE,wEAAwE;QACxE,wEAAwE;QACxE,2EAA2E;QAC3E,qDAAqD;QACrD,OAAO,EAAE,EAAE;QACX,GAAG,EAAE;;;;;;;;;;KAUJ;KACF;IACD;QACE,gEAAgE;QAChE,EAAE;QACF,0EAA0E;QAC1E,2EAA2E;QAC3E,uEAAuE;QACvE,uEAAuE;QACvE,uEAAuE;QACvE,yEAAyE;QACzE,0EAA0E;QAC1E,qEAAqE;QACrE,gCAAgC;QAChC,EAAE;QACF,0EAA0E;QAC1E,2EAA2E;QAC3E,yEAAyE;QACzE,sDAAsD;QACtD,OAAO,EAAE,EAAE;QACX,GAAG,EAAE;;;;;;;;;;KAUJ;KACF;IACD;QACE,kEAAkE;QAClE,yEAAyE;QACzE,0EAA0E;QAC1E,oEAAoE;QACpE,yEAAyE;QACzE,2EAA2E;QAC3E,kEAAkE;QAClE,OAAO,EAAE,EAAE;QACX,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;KAsBJ;KACF;IACD;QACE,2EAA2E;QAC3E,qEAAqE;QACrE,yEAAyE;QACzE,OAAO,EAAE,EAAE;QACX,GAAG,EAAE;;;KAGJ;KACF;IACD;QACE,0EAA0E;QAC1E,uEAAuE;QACvE,iEAAiE;QACjE,OAAO,EAAE,EAAE;QACX,GAAG,EAAE,gDAAgD;KACtD;IACD;QACE,0EAA0E;QAC1E,0EAA0E;QAC1E,wEAAwE;QACxE,uEAAuE;QACvE,OAAO,EAAE,EAAE;QACX,GAAG,EAAE;;;;;;;;;;;KAWJ;KACF;IACD;QACE,OAAO,EAAE,EAAE;QACX,GAAG,EAAE,4CAA4C;KAClD;IACD;QACE,0EAA0E;QAC1E,wEAAwE;QACxE,yEAAyE;QACzE,0EAA0E;QAC1E,oEAAoE;QACpE,OAAO,EAAE,EAAE;QACX,GAAG,EAAE;;;;;;KAMJ;QACD,GAAG,CAAC,EAAE;YACJ,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,yDAAyD,CAAC,CAAC,GAAG,EAAE,CAAC;YACzF,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,gDAAgD,CAAC,CAAC;YAC5E,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,MAAM,GAAG,GAAG,UAAU,CAAC;oBACrB,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;oBAC1C,QAAQ,EAAE,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;oBACxC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;iBAC1B,CAAC,CAAC;gBACH,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;KACF;IACD;QACE,OAAO,EAAE,EAAE;QACX,GAAG,EAAE,2CAA2C;KACjD;IACD;QACE,OAAO,EAAE,EAAE;QACX,GAAG,EAAE,qEAAqE;KAC3E;IACD;QACE,0EAA0E;QAC1E,qDAAqD;QACrD,OAAO,EAAE,EAAE;QACX,GAAG,EAAE;;;;;;;;KAQJ;KACF;IACD;QACE,OAAO,EAAE,EAAE;QACX,GAAG,EAAE,yDAAyD;KAC/D;CACF,CAAC;AAEF,MAAM,UAAU,iBAAiB,CAAC,OAAe,EAAE,GAAU;IAC3D,OAAO,YAAY,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;AAChF,CAAC"}
|
package/dist/store/sessions.d.ts
CHANGED
|
@@ -20,7 +20,6 @@ export interface Session {
|
|
|
20
20
|
/** When it stops being valid, as an ISO 8601 instant. */
|
|
21
21
|
readonly expiresAt: string;
|
|
22
22
|
}
|
|
23
|
-
/** How loudly a flash message reads. */
|
|
24
23
|
export type FlashKind = 'notice' | 'warning' | 'error';
|
|
25
24
|
/**
|
|
26
25
|
* One message queued for the next page a session asks for.
|
|
@@ -80,6 +79,8 @@ export interface SessionStore {
|
|
|
80
79
|
* queued, for the worker that takes over to show again.
|
|
81
80
|
*/
|
|
82
81
|
takeFlash(sessionId: string): FlashMessage[];
|
|
82
|
+
pushClearedAutosave(sessionId: string, key: string): void;
|
|
83
|
+
takeClearedAutosaves(sessionId: string): string[];
|
|
83
84
|
}
|
|
84
85
|
export declare function openSessionStore(db: DatabaseSync, isReadOnly: () => boolean, clock: Clock): SessionStore;
|
|
85
86
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../src/store/sessions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;;GAGG;AACH,MAAM,WAAW,OAAO;IACtB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,0DAA0D;IAC1D,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,4DAA4D;IAC5D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,yDAAyD;IACzD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,
|
|
1
|
+
{"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../src/store/sessions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;;GAGG;AACH,MAAM,WAAW,OAAO;IACtB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,0DAA0D;IAC1D,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,4DAA4D;IAC5D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,yDAAyD;IACzD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;AAIvD;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC3B,0CAA0C;IAC1C,IAAI,EAAE,SAAS,CAAC;IAChB,8DAA8D;IAC9D,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wDAAwD;AACxD,MAAM,WAAW,kBAAkB;IACjC,qEAAqE;IACrE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,8CAA8C;IAC9C,eAAe,EAAE,MAAM,CAAC;IACxB,oEAAoE;IACpE,GAAG,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;CACxB;AAED,6EAA6E;AAC7E,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAEnC,MAAM,WAAW,YAAY;IAC3B,2DAA2D;IAC3D,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC;IAClD;;;;OAIG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,OAAO,GAAG,SAAS,CAAC;IACxD,0EAA0E;IAC1E,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IACnC;;;;;;OAMG;IACH,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,CAAC;IAE7E,2DAA2D;IAC3D,aAAa,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IAClC;;;OAGG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;IACxD;;;;OAIG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,EAAE,CAAC;IAC7C,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1D,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CACnD;AAED,wBAAgB,gBAAgB,CAC9B,EAAE,EAAE,YAAY,EAChB,UAAU,EAAE,MAAM,OAAO,EACzB,KAAK,EAAE,KAAK,GACX,YAAY,CAsGd;AA6BD;;;GAGG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAEpC"}
|
package/dist/store/sessions.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { randomBytes } from 'node:crypto';
|
|
2
|
+
const FLASH_KINDS = new Set(['notice', 'warning', 'error']);
|
|
2
3
|
/** How long a session id is, in bytes. 32 is the 256 bits doc-5 asks for. */
|
|
3
4
|
export const SESSION_ID_BYTES = 32;
|
|
4
5
|
export function openSessionStore(db, isReadOnly, clock) {
|
|
@@ -13,6 +14,8 @@ export function openSessionStore(db, isReadOnly, clock) {
|
|
|
13
14
|
pruneSessions: db.prepare('DELETE FROM sessions WHERE expires_at <= ?'),
|
|
14
15
|
readFlash: db.prepare('SELECT flash FROM sessions WHERE id = ?'),
|
|
15
16
|
writeFlash: db.prepare('UPDATE sessions SET flash = ? WHERE id = ?'),
|
|
17
|
+
readCleared: db.prepare('SELECT cleared_autosaves FROM sessions WHERE id = ?'),
|
|
18
|
+
writeCleared: db.prepare('UPDATE sessions SET cleared_autosaves = ? WHERE id = ?'),
|
|
16
19
|
};
|
|
17
20
|
/**
|
|
18
21
|
* The messages queued on a session. A column that will not parse is treated
|
|
@@ -21,16 +24,11 @@ export function openSessionStore(db, isReadOnly, clock) {
|
|
|
21
24
|
*/
|
|
22
25
|
function readFlash(sessionId) {
|
|
23
26
|
const row = statements.readFlash.get(sessionId);
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
return Array.isArray(parsed) ? parsed.filter(isFlashMessage) : [];
|
|
30
|
-
}
|
|
31
|
-
catch {
|
|
32
|
-
return [];
|
|
33
|
-
}
|
|
27
|
+
return parseList(row?.['flash']).filter(isFlashMessage);
|
|
28
|
+
}
|
|
29
|
+
function readCleared(sessionId) {
|
|
30
|
+
const row = statements.readCleared.get(sessionId);
|
|
31
|
+
return parseList(row?.['cleared_autosaves']).filter((key) => typeof key === 'string');
|
|
34
32
|
}
|
|
35
33
|
return {
|
|
36
34
|
createSession(input) {
|
|
@@ -78,14 +76,34 @@ export function openSessionStore(db, isReadOnly, clock) {
|
|
|
78
76
|
statements.writeFlash.run(null, sessionId);
|
|
79
77
|
return queued;
|
|
80
78
|
},
|
|
79
|
+
pushClearedAutosave(sessionId, key) {
|
|
80
|
+
const queued = [...readCleared(sessionId), key];
|
|
81
|
+
statements.writeCleared.run(JSON.stringify(queued), sessionId);
|
|
82
|
+
},
|
|
83
|
+
takeClearedAutosaves(sessionId) {
|
|
84
|
+
const queued = readCleared(sessionId);
|
|
85
|
+
if (!isReadOnly())
|
|
86
|
+
statements.writeCleared.run(null, sessionId);
|
|
87
|
+
return queued;
|
|
88
|
+
},
|
|
81
89
|
};
|
|
82
90
|
}
|
|
91
|
+
function parseList(raw) {
|
|
92
|
+
if (typeof raw !== 'string' || raw === '')
|
|
93
|
+
return [];
|
|
94
|
+
try {
|
|
95
|
+
const parsed = JSON.parse(raw);
|
|
96
|
+
return Array.isArray(parsed) ? parsed : [];
|
|
97
|
+
}
|
|
98
|
+
catch {
|
|
99
|
+
return [];
|
|
100
|
+
}
|
|
101
|
+
}
|
|
83
102
|
function isFlashMessage(value) {
|
|
84
103
|
if (typeof value !== 'object' || value === null)
|
|
85
104
|
return false;
|
|
86
105
|
const entry = value;
|
|
87
|
-
return (
|
|
88
|
-
typeof entry['message'] === 'string');
|
|
106
|
+
return FLASH_KINDS.has(entry['kind']) && typeof entry['message'] === 'string';
|
|
89
107
|
}
|
|
90
108
|
function toSession(row) {
|
|
91
109
|
const userId = row['user_id'];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/store/sessions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/store/sessions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Whether `name` can be a Google Fonts family name: letters and digits in
|
|
3
|
+
* words split by single spaces, as every family Google lists is.
|
|
4
|
+
*/
|
|
5
|
+
export declare function isFontFamilyName(name: string): boolean;
|
|
6
|
+
export type CssFontStack = string & {
|
|
7
|
+
readonly __brand: 'CssFontStack';
|
|
8
|
+
};
|
|
9
|
+
/** `list` trimmed, when it is a comma-separated list of family names, plain or quoted. */
|
|
10
|
+
export declare function cssFontStack(list: string): CssFontStack | undefined;
|
|
11
|
+
/** `stack` with `family` quoted in front of it, when `family` is a font family name. */
|
|
12
|
+
export declare function cssFontStackWith(family: string, stack: CssFontStack): CssFontStack | undefined;
|
|
13
|
+
//# sourceMappingURL=font-family.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"font-family.d.ts","sourceRoot":"","sources":["../../src/theme/font-family.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAA;CAAE,CAAC;AAIzE,0FAA0F;AAC1F,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAKnE;AAED,wFAAwF;AACxF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,YAAY,GAAG,SAAS,CAE9F"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
const MAX_FAMILY_LENGTH = 64;
|
|
2
|
+
/**
|
|
3
|
+
* Whether `name` can be a Google Fonts family name: letters and digits in
|
|
4
|
+
* words split by single spaces, as every family Google lists is.
|
|
5
|
+
*/
|
|
6
|
+
export function isFontFamilyName(name) {
|
|
7
|
+
return name.length <= MAX_FAMILY_LENGTH && /^[A-Za-z0-9]+(?: [A-Za-z0-9]+)*$/.test(name);
|
|
8
|
+
}
|
|
9
|
+
const STACK_FAMILY = /^(?:'[^'"\\<>;{}]*'|"[^'"\\<>;{}]*"|[\w-]+(?: +[\w-]+)*)$/;
|
|
10
|
+
/** `list` trimmed, when it is a comma-separated list of family names, plain or quoted. */
|
|
11
|
+
export function cssFontStack(list) {
|
|
12
|
+
const stack = list.trim();
|
|
13
|
+
return stack.split(',').every((family) => STACK_FAMILY.test(family.trim()))
|
|
14
|
+
? stack
|
|
15
|
+
: undefined;
|
|
16
|
+
}
|
|
17
|
+
/** `stack` with `family` quoted in front of it, when `family` is a font family name. */
|
|
18
|
+
export function cssFontStackWith(family, stack) {
|
|
19
|
+
return isFontFamilyName(family) ? `"${family}", ${stack}` : undefined;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=font-family.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"font-family.js","sourceRoot":"","sources":["../../src/theme/font-family.ts"],"names":[],"mappings":"AAAA,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAE7B;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,OAAO,IAAI,CAAC,MAAM,IAAI,iBAAiB,IAAI,kCAAkC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3F,CAAC;AAID,MAAM,YAAY,GAAG,2DAA2D,CAAC;AAEjF,0FAA0F;AAC1F,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC1B,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACzE,CAAC,CAAE,KAAsB;QACzB,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,gBAAgB,CAAC,MAAc,EAAE,KAAmB;IAClE,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAE,IAAI,MAAM,MAAM,KAAK,EAAmB,CAAC,CAAC,CAAC,SAAS,CAAC;AAC1F,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
export interface StyleRule {
|
|
2
|
+
readonly selectors: readonly string[];
|
|
3
|
+
/** The conditions of every `@media` around it, innermost last. */
|
|
4
|
+
readonly media: readonly string[];
|
|
5
|
+
readonly layered: boolean;
|
|
6
|
+
readonly declarations: ReadonlyMap<string, string>;
|
|
7
|
+
/** Whether it held a rule of its own, which this reader does not flatten. */
|
|
8
|
+
readonly nested: boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface TokenPage {
|
|
11
|
+
readonly scheme?: string | undefined;
|
|
12
|
+
readonly mode?: 'light' | 'dark' | undefined;
|
|
13
|
+
readonly system: 'light' | 'dark';
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* The style rules that set a colour token or `color-scheme`, in source order.
|
|
17
|
+
*
|
|
18
|
+
* `@layer`, `@supports` and `@media` are looked through, recording the media
|
|
19
|
+
* conditions and whether a layer was crossed; any other at-rule (`@property`,
|
|
20
|
+
* `@keyframes`) holds nothing read here.
|
|
21
|
+
*/
|
|
22
|
+
export declare function stylesheetRules(css: string): StyleRule[];
|
|
23
|
+
export declare function selectorMatches(selector: string, page: TokenPage): boolean;
|
|
24
|
+
/** Whether a media condition holds for this reader; only the colour scheme is asked. */
|
|
25
|
+
export declare function mediaHolds(condition: string, page: TokenPage): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* What this reader cannot read in the rules it found: a selector or a media
|
|
28
|
+
* condition it would misjudge, or a rule with another nested inside. A rule
|
|
29
|
+
* like that is passed over, so a stylesheet with any of these may be drawn
|
|
30
|
+
* differently from what {@link computedTokens} says.
|
|
31
|
+
*/
|
|
32
|
+
export declare function stylesheetProblems(rules: readonly StyleRule[]): string[];
|
|
33
|
+
export declare function computedTokens(rules: readonly StyleRule[], page: TokenPage): Map<string, string>;
|
|
34
|
+
/**
|
|
35
|
+
* Only the colour tokens, keyed without the `--color-` prefix: `body`,
|
|
36
|
+
* `text`, `primary` and the rest.
|
|
37
|
+
*/
|
|
38
|
+
export declare function colorTokens(properties: ReadonlyMap<string, string>): Map<string, string>;
|
|
39
|
+
/** One scheme's colour tokens in each mode, keyed as {@link colorTokens} keys them. */
|
|
40
|
+
export interface SchemeTokens {
|
|
41
|
+
readonly light: ReadonlyMap<string, string>;
|
|
42
|
+
readonly dark: ReadonlyMap<string, string>;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* The colour tokens of `scheme` in the stylesheet at `file`, light and dark.
|
|
46
|
+
* The file is parsed once and again only when it changes. A file that cannot
|
|
47
|
+
* be read has no tokens.
|
|
48
|
+
*/
|
|
49
|
+
export declare function schemeTokens(file: string, scheme: string): SchemeTokens;
|
|
50
|
+
//# sourceMappingURL=scheme-tokens.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scheme-tokens.d.ts","sourceRoot":"","sources":["../../src/theme/scheme-tokens.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,kEAAkE;IAClE,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnD,6EAA6E;IAC7E,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;CACnC;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,CAgDxD;AAwFD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAG1E;AAID,wFAAwF;AACxF,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAEtE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,GAAG,MAAM,EAAE,CAcxE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CA0BhG;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAMxF;AAED,uFAAuF;AACvF,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5C;AAID;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY,CAKvE"}
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
import { readFileSync, statSync } from 'node:fs';
|
|
2
|
+
const READ = (property) => property.startsWith('--color-') || property === 'color-scheme';
|
|
3
|
+
/**
|
|
4
|
+
* The style rules that set a colour token or `color-scheme`, in source order.
|
|
5
|
+
*
|
|
6
|
+
* `@layer`, `@supports` and `@media` are looked through, recording the media
|
|
7
|
+
* conditions and whether a layer was crossed; any other at-rule (`@property`,
|
|
8
|
+
* `@keyframes`) holds nothing read here.
|
|
9
|
+
*/
|
|
10
|
+
export function stylesheetRules(css) {
|
|
11
|
+
const rules = [];
|
|
12
|
+
const source = css.replaceAll(/\/\*[\s\S]*?\*\//g, '');
|
|
13
|
+
function walk(from, to, media, layered) {
|
|
14
|
+
let at = from;
|
|
15
|
+
while (at < to) {
|
|
16
|
+
const open = source.indexOf('{', at);
|
|
17
|
+
const semicolon = source.indexOf(';', at);
|
|
18
|
+
if (open === -1 || open >= to)
|
|
19
|
+
return;
|
|
20
|
+
if (semicolon !== -1 && semicolon < open) {
|
|
21
|
+
at = semicolon + 1;
|
|
22
|
+
continue;
|
|
23
|
+
}
|
|
24
|
+
const prelude = source.slice(at, open).trim();
|
|
25
|
+
const close = closingBrace(source, open);
|
|
26
|
+
if (close === -1)
|
|
27
|
+
return;
|
|
28
|
+
if (prelude.startsWith('@media')) {
|
|
29
|
+
walk(open + 1, close, [...media, prelude.slice('@media'.length).trim()], layered);
|
|
30
|
+
}
|
|
31
|
+
else if (prelude.startsWith('@layer')) {
|
|
32
|
+
walk(open + 1, close, media, true);
|
|
33
|
+
}
|
|
34
|
+
else if (prelude.startsWith('@supports')) {
|
|
35
|
+
walk(open + 1, close, media, layered);
|
|
36
|
+
}
|
|
37
|
+
else if (!prelude.startsWith('@')) {
|
|
38
|
+
const body = source.slice(open + 1, close);
|
|
39
|
+
const declarations = new Map();
|
|
40
|
+
for (const [, name = '', value = ''] of body.matchAll(/([\w-]+)\s*:\s*([^;]+)/g)) {
|
|
41
|
+
if (READ(name))
|
|
42
|
+
declarations.set(name, value.trim());
|
|
43
|
+
}
|
|
44
|
+
if (declarations.size > 0) {
|
|
45
|
+
rules.push({
|
|
46
|
+
selectors: splitTopLevel(prelude),
|
|
47
|
+
media,
|
|
48
|
+
layered,
|
|
49
|
+
declarations,
|
|
50
|
+
nested: body.includes('{'),
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
at = close + 1;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
walk(0, source.length, [], false);
|
|
58
|
+
return rules;
|
|
59
|
+
}
|
|
60
|
+
function closingBrace(css, open) {
|
|
61
|
+
let depth = 0;
|
|
62
|
+
for (let index = open; index < css.length; index += 1) {
|
|
63
|
+
if (css[index] === '{')
|
|
64
|
+
depth += 1;
|
|
65
|
+
if (css[index] === '}') {
|
|
66
|
+
depth -= 1;
|
|
67
|
+
if (depth === 0)
|
|
68
|
+
return index;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return -1;
|
|
72
|
+
}
|
|
73
|
+
function splitTopLevel(list) {
|
|
74
|
+
const parts = [];
|
|
75
|
+
let depth = 0;
|
|
76
|
+
let start = 0;
|
|
77
|
+
for (let index = 0; index < list.length; index += 1) {
|
|
78
|
+
if (list[index] === '(')
|
|
79
|
+
depth += 1;
|
|
80
|
+
if (list[index] === ')')
|
|
81
|
+
depth -= 1;
|
|
82
|
+
if (list[index] === ',' && depth === 0) {
|
|
83
|
+
parts.push(list.slice(start, index).trim());
|
|
84
|
+
start = index + 1;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
parts.push(list.slice(start).trim());
|
|
88
|
+
return parts;
|
|
89
|
+
}
|
|
90
|
+
function matchSelector(selector, page) {
|
|
91
|
+
const attributes = {
|
|
92
|
+
'data-scheme': page.scheme,
|
|
93
|
+
'data-mode': page.mode,
|
|
94
|
+
};
|
|
95
|
+
let rest = selector.trim();
|
|
96
|
+
let matches = true;
|
|
97
|
+
let specificity = 0;
|
|
98
|
+
while (rest !== '') {
|
|
99
|
+
if (rest.startsWith(':root')) {
|
|
100
|
+
specificity += 1;
|
|
101
|
+
rest = rest.slice(':root'.length);
|
|
102
|
+
continue;
|
|
103
|
+
}
|
|
104
|
+
if (rest.startsWith(':host'))
|
|
105
|
+
return { matches: false, specificity: 0 };
|
|
106
|
+
const attribute = /^\[([\w-]+)(?:=(["']?)([^"'\]]*)\2)?\]/.exec(rest);
|
|
107
|
+
if (attribute) {
|
|
108
|
+
const [whole, name = '', , value] = attribute;
|
|
109
|
+
const actual = attributes[name];
|
|
110
|
+
matches &&= value === undefined ? actual !== undefined : actual === value;
|
|
111
|
+
specificity += 1;
|
|
112
|
+
rest = rest.slice(whole.length);
|
|
113
|
+
continue;
|
|
114
|
+
}
|
|
115
|
+
const pseudo = /^:(not|is|where)\(/.exec(rest);
|
|
116
|
+
if (!pseudo)
|
|
117
|
+
return { unreadable: selector };
|
|
118
|
+
const open = pseudo[0].length - 1;
|
|
119
|
+
let depth = 0;
|
|
120
|
+
let close = open;
|
|
121
|
+
for (; close < rest.length; close += 1) {
|
|
122
|
+
if (rest[close] === '(')
|
|
123
|
+
depth += 1;
|
|
124
|
+
if (rest[close] === ')')
|
|
125
|
+
depth -= 1;
|
|
126
|
+
if (depth === 0)
|
|
127
|
+
break;
|
|
128
|
+
}
|
|
129
|
+
const inner = splitTopLevel(rest.slice(open + 1, close)).map((part) => matchSelector(part, page));
|
|
130
|
+
const unreadable = inner.find((result) => 'unreadable' in result);
|
|
131
|
+
if (unreadable !== undefined)
|
|
132
|
+
return unreadable;
|
|
133
|
+
const known = inner.flatMap((result) => ('matches' in result ? [result] : []));
|
|
134
|
+
const any = known.some((result) => result.matches);
|
|
135
|
+
const most = Math.max(0, ...known.map((result) => result.specificity));
|
|
136
|
+
if (pseudo[1] === 'not')
|
|
137
|
+
matches &&= !any;
|
|
138
|
+
else
|
|
139
|
+
matches &&= any;
|
|
140
|
+
if (pseudo[1] !== 'where')
|
|
141
|
+
specificity += most;
|
|
142
|
+
rest = rest.slice(close + 1);
|
|
143
|
+
}
|
|
144
|
+
return { matches, specificity };
|
|
145
|
+
}
|
|
146
|
+
export function selectorMatches(selector, page) {
|
|
147
|
+
const result = matchSelector(selector, page);
|
|
148
|
+
return 'matches' in result && result.matches;
|
|
149
|
+
}
|
|
150
|
+
const COLOR_SCHEME_QUERY = /^\(prefers-color-scheme:\s*(light|dark)\)$/;
|
|
151
|
+
/** Whether a media condition holds for this reader; only the colour scheme is asked. */
|
|
152
|
+
export function mediaHolds(condition, page) {
|
|
153
|
+
return COLOR_SCHEME_QUERY.exec(condition)?.[1] === page.system;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* What this reader cannot read in the rules it found: a selector or a media
|
|
157
|
+
* condition it would misjudge, or a rule with another nested inside. A rule
|
|
158
|
+
* like that is passed over, so a stylesheet with any of these may be drawn
|
|
159
|
+
* differently from what {@link computedTokens} says.
|
|
160
|
+
*/
|
|
161
|
+
export function stylesheetProblems(rules) {
|
|
162
|
+
const problems = new Set();
|
|
163
|
+
const page = { system: 'light' };
|
|
164
|
+
for (const rule of rules) {
|
|
165
|
+
if (rule.nested)
|
|
166
|
+
problems.add(`a nested rule under ${rule.selectors.join(', ')}`);
|
|
167
|
+
for (const condition of rule.media) {
|
|
168
|
+
if (!COLOR_SCHEME_QUERY.test(condition))
|
|
169
|
+
problems.add(`@media ${condition}`);
|
|
170
|
+
}
|
|
171
|
+
for (const selector of rule.selectors) {
|
|
172
|
+
const result = matchSelector(selector, page);
|
|
173
|
+
if ('unreadable' in result)
|
|
174
|
+
problems.add(`the selector ${result.unreadable}`);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
return [...problems];
|
|
178
|
+
}
|
|
179
|
+
export function computedTokens(rules, page) {
|
|
180
|
+
const applying = [];
|
|
181
|
+
rules.forEach((rule, order) => {
|
|
182
|
+
if (rule.nested)
|
|
183
|
+
return;
|
|
184
|
+
if (!rule.media.every((condition) => mediaHolds(condition, page)))
|
|
185
|
+
return;
|
|
186
|
+
const matching = rule.selectors
|
|
187
|
+
.map((selector) => matchSelector(selector, page))
|
|
188
|
+
.flatMap((result) => ('matches' in result && result.matches ? [result] : []));
|
|
189
|
+
if (matching.length === 0)
|
|
190
|
+
return;
|
|
191
|
+
const specificity = Math.max(...matching.map((result) => result.specificity));
|
|
192
|
+
applying.push({ rule, specificity, order });
|
|
193
|
+
});
|
|
194
|
+
applying.sort((a, b) => Number(!a.rule.layered) - Number(!b.rule.layered) ||
|
|
195
|
+
a.specificity - b.specificity ||
|
|
196
|
+
a.order - b.order);
|
|
197
|
+
const properties = new Map();
|
|
198
|
+
for (const { rule } of applying) {
|
|
199
|
+
for (const [name, value] of rule.declarations)
|
|
200
|
+
properties.set(name, value);
|
|
201
|
+
}
|
|
202
|
+
return properties;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Only the colour tokens, keyed without the `--color-` prefix: `body`,
|
|
206
|
+
* `text`, `primary` and the rest.
|
|
207
|
+
*/
|
|
208
|
+
export function colorTokens(properties) {
|
|
209
|
+
return new Map([...properties]
|
|
210
|
+
.filter(([name]) => name.startsWith('--color-'))
|
|
211
|
+
.map(([name, value]) => [name.slice('--color-'.length), value]));
|
|
212
|
+
}
|
|
213
|
+
const parsed = new Map();
|
|
214
|
+
/**
|
|
215
|
+
* The colour tokens of `scheme` in the stylesheet at `file`, light and dark.
|
|
216
|
+
* The file is parsed once and again only when it changes. A file that cannot
|
|
217
|
+
* be read has no tokens.
|
|
218
|
+
*/
|
|
219
|
+
export function schemeTokens(file, scheme) {
|
|
220
|
+
const rules = rulesOfFile(file);
|
|
221
|
+
const drawn = (system) => colorTokens(computedTokens(rules, { scheme, system }));
|
|
222
|
+
return { light: drawn('light'), dark: drawn('dark') };
|
|
223
|
+
}
|
|
224
|
+
function rulesOfFile(file) {
|
|
225
|
+
let key;
|
|
226
|
+
try {
|
|
227
|
+
const stats = statSync(file);
|
|
228
|
+
key = `${String(stats.mtimeMs)}:${String(stats.size)}:${String(stats.ino)}`;
|
|
229
|
+
}
|
|
230
|
+
catch {
|
|
231
|
+
return [];
|
|
232
|
+
}
|
|
233
|
+
const cached = parsed.get(file);
|
|
234
|
+
if (cached?.key === key)
|
|
235
|
+
return cached.rules;
|
|
236
|
+
const rules = stylesheetRules(readFileSync(file, 'utf8'));
|
|
237
|
+
parsed.set(file, { key, rules });
|
|
238
|
+
return rules;
|
|
239
|
+
}
|
|
240
|
+
//# sourceMappingURL=scheme-tokens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scheme-tokens.js","sourceRoot":"","sources":["../../src/theme/scheme-tokens.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ResolvedConfig } from '../config.ts';
|
|
2
2
|
import type { TaxonomyBases, TaxonomyRedirect } from '../content/taxonomy.ts';
|
|
3
|
+
import type { ColorMode, ThemeScheme } from './themes.ts';
|
|
3
4
|
/** Where the site-wide data file lives, relative to the content directory. */
|
|
4
5
|
export declare const SITE_DATA_FILE = "_data/site.json";
|
|
5
6
|
/** How many posts a listing page holds when the site does not say. */
|
|
@@ -184,4 +185,15 @@ export interface FrontPageSlugs {
|
|
|
184
185
|
/** The page whose permalink carries the listing, or empty for none. */
|
|
185
186
|
postsPage: string;
|
|
186
187
|
}
|
|
188
|
+
export interface SiteColors {
|
|
189
|
+
readonly scheme: ThemeScheme;
|
|
190
|
+
readonly mode: ColorMode;
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* The scheme a page of this site is drawn in, out of the theme's `schemes`,
|
|
194
|
+
* and its mode: `colorScheme` when the theme declares it, else the theme's
|
|
195
|
+
* first, and `colorMode` when it is one of {@link COLOR_MODES}, else `system`.
|
|
196
|
+
* `undefined` for a theme with no schemes, whose page names neither.
|
|
197
|
+
*/
|
|
198
|
+
export declare function siteColors(site: SiteData, schemes: readonly ThemeScheme[]): SiteColors | undefined;
|
|
187
199
|
//# sourceMappingURL=site-data.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"site-data.d.ts","sourceRoot":"","sources":["../../src/theme/site-data.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"site-data.d.ts","sourceRoot":"","sources":["../../src/theme/site-data.ts"],"names":[],"mappings":"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"}
|
package/dist/theme/site-data.js
CHANGED
|
@@ -4,6 +4,7 @@ import { canonicalLocale, DEFAULT_LOCALE } from '../content/locale.js';
|
|
|
4
4
|
import { DEFAULT_TAXONOMY_BASES, taxonomyBasesOrDefault, taxonomyRedirectsOf, } from '../content/taxonomy.js';
|
|
5
5
|
import { DEFAULT_TIMEZONE } from '../content/time.js';
|
|
6
6
|
import { isRecord } from '../util/guards.js';
|
|
7
|
+
import { COLOR_MODES, themeScheme } from './themes.js';
|
|
7
8
|
/** Where the site-wide data file lives, relative to the content directory. */
|
|
8
9
|
export const SITE_DATA_FILE = '_data/site.json';
|
|
9
10
|
/** How many posts a listing page holds when the site does not say. */
|
|
@@ -157,4 +158,18 @@ export function taxonomyBases(site) {
|
|
|
157
158
|
export function termRedirects(site) {
|
|
158
159
|
return taxonomyRedirectsOf(site['taxonomyRedirects']);
|
|
159
160
|
}
|
|
161
|
+
/**
|
|
162
|
+
* The scheme a page of this site is drawn in, out of the theme's `schemes`,
|
|
163
|
+
* and its mode: `colorScheme` when the theme declares it, else the theme's
|
|
164
|
+
* first, and `colorMode` when it is one of {@link COLOR_MODES}, else `system`.
|
|
165
|
+
* `undefined` for a theme with no schemes, whose page names neither.
|
|
166
|
+
*/
|
|
167
|
+
export function siteColors(site, schemes) {
|
|
168
|
+
const named = site['colorScheme'];
|
|
169
|
+
const scheme = themeScheme(schemes, typeof named === 'string' ? named.trim() : '');
|
|
170
|
+
if (scheme === undefined)
|
|
171
|
+
return undefined;
|
|
172
|
+
const mode = COLOR_MODES.find((each) => each === site['colorMode']) ?? 'system';
|
|
173
|
+
return { scheme, mode };
|
|
174
|
+
}
|
|
160
175
|
//# sourceMappingURL=site-data.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"site-data.js","sourceRoot":"","sources":["../../src/theme/site-data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"site-data.js","sourceRoot":"","sources":["../../src/theme/site-data.ts"],"names":[],"mappings":"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"}
|