feat: extract shop from mp/shop — initial libreshop/shop
Some checks failed
Build and publish / build (push) Failing after 19s

Source moved verbatim from mp/shop/ on 2026-04-29; mp was the first
concrete adapter consuming the libreshop toolkit. Builds and publishes
git.librete.ch/libreshop/shop on every main / v* push via the standard
.gitea/workflows/build.yml shared across libreshop components.
This commit is contained in:
Michael Czechowski
2026-04-29 17:48:56 +02:00
commit 44107c0734
134 changed files with 19521 additions and 0 deletions

8
utils/scrollProgress.ts Normal file
View File

@@ -0,0 +1,8 @@
export const scrollProgress = () => {
if (!import.meta.client) return 0;
const { documentElement, body } = document;
const windowScroll = body.scrollTop || documentElement.scrollTop;
const height = documentElement.scrollHeight - documentElement.clientHeight;
return height > 0 ? Math.round((windowScroll / height) * 100) : 0;
};