diff --git a/app/android/gradle/wrapper/gradle-wrapper.properties b/app/android/gradle/wrapper/gradle-wrapper.properties index 1f3317ec5d2..cce662ece1d 100644 --- a/app/android/gradle/wrapper/gradle-wrapper.properties +++ b/app/android/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionPath=wrapper/dists distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionSha256Sum=544c35d6bd849ae8a5ed0bcea39ba677dc40f49df7d1835561582da2009b961d +distributionSha256Sum=d725d707bfabd4dfdc958c624003b3c80accc03f7037b5122c4b1d0ef15cecab diff --git a/docs/astro.config.mjs b/docs/astro.config.mjs index 0d0a8d73e93..c81f88b22c6 100644 --- a/docs/astro.config.mjs +++ b/docs/astro.config.mjs @@ -6,9 +6,26 @@ import starlight from "@astrojs/starlight"; export default defineConfig({ integrations: [ starlight({ - title: "My Docs", + title: "Linwood Flow", + customCss: [ + // Relative path to your custom CSS file + "./src/styles/custom.css", + ], + logo: { + src: "./public/img/docs.svg", + }, + favicon: "./favicon.ico", social: { - github: "https://github.com/withastro/starlight", + mastodon: "https://floss.social/@linwood", + matrix: "https://linwood.dev/matrix", + discord: "https://linwood.dev/discord", + github: "https://github.com/LinwoodDev/Flow", + }, + components: { + SocialIcons: "./src/components/CustomSocialIcons.astro", + Head: "./src/components/Head.astro", + Footer: "./src/components/Footer.astro", + ContentPanel: "./src/components/ContentPanel.astro", }, sidebar: [ { diff --git a/docs/package.json b/docs/package.json index 42162284246..77d18c882e6 100644 --- a/docs/package.json +++ b/docs/package.json @@ -16,5 +16,8 @@ "sharp": "^0.33.5", "typescript": "^5.6.3" }, - "packageManager": "pnpm@9.12.3" + "packageManager": "pnpm@9.12.3", + "devDependencies": { + "sass": "^1.80.5" + } } diff --git a/docs/pnpm-lock.yaml b/docs/pnpm-lock.yaml index cd2076d288e..930fc2e6168 100644 --- a/docs/pnpm-lock.yaml +++ b/docs/pnpm-lock.yaml @@ -13,16 +13,20 @@ importers: version: 0.9.4(typescript@5.6.3) '@astrojs/starlight': specifier: ^0.28.5 - version: 0.28.5(astro@4.16.8(rollup@4.24.3)(typescript@5.6.3)) + version: 0.28.5(astro@4.16.8(rollup@4.24.3)(sass@1.80.5)(typescript@5.6.3)) astro: specifier: ^4.16.8 - version: 4.16.8(rollup@4.24.3)(typescript@5.6.3) + version: 4.16.8(rollup@4.24.3)(sass@1.80.5)(typescript@5.6.3) sharp: specifier: ^0.33.5 version: 0.33.5 typescript: specifier: ^5.6.3 version: 5.6.3 + devDependencies: + sass: + specifier: ^1.80.5 + version: 1.80.5 packages: @@ -516,6 +520,82 @@ packages: cpu: [x64] os: [win32] + '@parcel/watcher-android-arm64@2.4.1': + resolution: {integrity: sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [android] + + '@parcel/watcher-darwin-arm64@2.4.1': + resolution: {integrity: sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [darwin] + + '@parcel/watcher-darwin-x64@2.4.1': + resolution: {integrity: sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [darwin] + + '@parcel/watcher-freebsd-x64@2.4.1': + resolution: {integrity: sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [freebsd] + + '@parcel/watcher-linux-arm-glibc@2.4.1': + resolution: {integrity: sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + + '@parcel/watcher-linux-arm64-glibc@2.4.1': + resolution: {integrity: sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + + '@parcel/watcher-linux-arm64-musl@2.4.1': + resolution: {integrity: sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + + '@parcel/watcher-linux-x64-glibc@2.4.1': + resolution: {integrity: sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + + '@parcel/watcher-linux-x64-musl@2.4.1': + resolution: {integrity: sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + + '@parcel/watcher-win32-arm64@2.4.1': + resolution: {integrity: sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [win32] + + '@parcel/watcher-win32-ia32@2.4.1': + resolution: {integrity: sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw==} + engines: {node: '>= 10.0.0'} + cpu: [ia32] + os: [win32] + + '@parcel/watcher-win32-x64@2.4.1': + resolution: {integrity: sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [win32] + + '@parcel/watcher@2.4.1': + resolution: {integrity: sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA==} + engines: {node: '>= 10.0.0'} + '@rollup/pluginutils@5.1.3': resolution: {integrity: sha512-Pnsb6f32CD2W3uCaLZIzDmeFyQ2b8UWMFI7xtwUezpcGBDVDW6y9XgAWIlARiGAo6eNF5FK5aQTr0LFyNyqq5A==} engines: {node: '>=14.0.0'} @@ -915,6 +995,11 @@ packages: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} + detect-libc@1.0.3: + resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} + engines: {node: '>=0.10'} + hasBin: true + detect-libc@2.0.3: resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} engines: {node: '>=8'} @@ -1169,6 +1254,9 @@ packages: i18next@23.16.4: resolution: {integrity: sha512-9NIYBVy9cs4wIqzurf7nLXPyf3R78xYbxExVqHLK9od3038rjpyOEzW+XB130kZ1N4PZ9inTtJ471CRJ4Ituyg==} + immutable@4.3.7: + resolution: {integrity: sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==} + import-meta-resolve@4.1.0: resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==} @@ -1515,6 +1603,9 @@ packages: nlcst-to-string@4.0.0: resolution: {integrity: sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==} + node-addon-api@7.1.1: + resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} + node-releases@2.0.18: resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} @@ -1528,8 +1619,8 @@ packages: oniguruma-to-js@0.4.3: resolution: {integrity: sha512-X0jWUcAlxORhOqqBREgPMgnshB7ZGYszBNspP+tS9hPD3l13CdaXcHbgImoHUHlrvGx/7AvFEkTRhAGYh+jzjQ==} - ora@8.1.0: - resolution: {integrity: sha512-GQEkNkH/GHOhPFXcqZs3IDahXEQcQxsSjEkK4KvEEST4t7eNzoMjxTzef+EZ+JluDEV+Raoi3WQ2CflnRdSVnQ==} + ora@8.1.1: + resolution: {integrity: sha512-YWielGi1XzG1UTvOaCFaNgEnuhZVMSHYkW/FQ7UX8O26PtlpdM84c0f7wLPlkvx2RfiQmnzd61d/MGxmpQeJPw==} engines: {node: '>=18'} p-limit@2.3.0: @@ -1651,8 +1742,8 @@ packages: regenerator-runtime@0.14.1: resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - regex@4.3.3: - resolution: {integrity: sha512-r/AadFO7owAq1QJVeZ/nq9jNS1vyZt+6t1p/E59B56Rn2GCya+gr1KSyOzNL/er+r+B7phv5jG2xU2Nz1YkmJg==} + regex@4.4.0: + resolution: {integrity: sha512-uCUSuobNVeqUupowbdZub6ggI5/JZkYyJdDogddJr60L764oxC2pMZov1fQ3wM9bdyzUILDG+Sqx6NAKAz9rKQ==} rehype-expressive-code@0.35.6: resolution: {integrity: sha512-pPdE+pRcRw01kxMOwHQjuRxgwlblZt5+wAc3w2aPGgmcnn57wYjn07iKO7zaznDxYVxMYVvYlnL+R3vWFQS4Gw==} @@ -1739,6 +1830,11 @@ packages: run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + sass@1.80.5: + resolution: {integrity: sha512-TQd2aoQl/+zsxRMEDSxVdpPIqeq9UFc6pr7PzkugiTx3VYCFPUaa3P4RrBQsqok4PO200Vkz0vXQBNlg7W907g==} + engines: {node: '>=14.0.0'} + hasBin: true + sax@1.4.1: resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} @@ -2214,12 +2310,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/mdx@3.1.9(astro@4.16.8(rollup@4.24.3)(typescript@5.6.3))': + '@astrojs/mdx@3.1.9(astro@4.16.8(rollup@4.24.3)(sass@1.80.5)(typescript@5.6.3))': dependencies: '@astrojs/markdown-remark': 5.3.0 '@mdx-js/mdx': 3.1.0(acorn@8.14.0) acorn: 8.14.0 - astro: 4.16.8(rollup@4.24.3)(typescript@5.6.3) + astro: 4.16.8(rollup@4.24.3)(sass@1.80.5)(typescript@5.6.3) es-module-lexer: 1.5.4 estree-util-visit: 2.0.0 gray-matter: 4.0.3 @@ -2244,15 +2340,15 @@ snapshots: stream-replace-string: 2.0.0 zod: 3.23.8 - '@astrojs/starlight@0.28.5(astro@4.16.8(rollup@4.24.3)(typescript@5.6.3))': + '@astrojs/starlight@0.28.5(astro@4.16.8(rollup@4.24.3)(sass@1.80.5)(typescript@5.6.3))': dependencies: - '@astrojs/mdx': 3.1.9(astro@4.16.8(rollup@4.24.3)(typescript@5.6.3)) + '@astrojs/mdx': 3.1.9(astro@4.16.8(rollup@4.24.3)(sass@1.80.5)(typescript@5.6.3)) '@astrojs/sitemap': 3.2.1 '@pagefind/default-ui': 1.1.1 '@types/hast': 3.0.4 '@types/mdast': 4.0.4 - astro: 4.16.8(rollup@4.24.3)(typescript@5.6.3) - astro-expressive-code: 0.35.6(astro@4.16.8(rollup@4.24.3)(typescript@5.6.3)) + astro: 4.16.8(rollup@4.24.3)(sass@1.80.5)(typescript@5.6.3) + astro-expressive-code: 0.35.6(astro@4.16.8(rollup@4.24.3)(sass@1.80.5)(typescript@5.6.3)) bcp-47: 2.1.0 hast-util-from-html: 2.0.3 hast-util-select: 6.0.3 @@ -2689,6 +2785,62 @@ snapshots: '@pagefind/windows-x64@1.1.1': optional: true + '@parcel/watcher-android-arm64@2.4.1': + optional: true + + '@parcel/watcher-darwin-arm64@2.4.1': + optional: true + + '@parcel/watcher-darwin-x64@2.4.1': + optional: true + + '@parcel/watcher-freebsd-x64@2.4.1': + optional: true + + '@parcel/watcher-linux-arm-glibc@2.4.1': + optional: true + + '@parcel/watcher-linux-arm64-glibc@2.4.1': + optional: true + + '@parcel/watcher-linux-arm64-musl@2.4.1': + optional: true + + '@parcel/watcher-linux-x64-glibc@2.4.1': + optional: true + + '@parcel/watcher-linux-x64-musl@2.4.1': + optional: true + + '@parcel/watcher-win32-arm64@2.4.1': + optional: true + + '@parcel/watcher-win32-ia32@2.4.1': + optional: true + + '@parcel/watcher-win32-x64@2.4.1': + optional: true + + '@parcel/watcher@2.4.1': + dependencies: + detect-libc: 1.0.3 + is-glob: 4.0.3 + micromatch: 4.0.8 + node-addon-api: 7.1.1 + optionalDependencies: + '@parcel/watcher-android-arm64': 2.4.1 + '@parcel/watcher-darwin-arm64': 2.4.1 + '@parcel/watcher-darwin-x64': 2.4.1 + '@parcel/watcher-freebsd-x64': 2.4.1 + '@parcel/watcher-linux-arm-glibc': 2.4.1 + '@parcel/watcher-linux-arm64-glibc': 2.4.1 + '@parcel/watcher-linux-arm64-musl': 2.4.1 + '@parcel/watcher-linux-x64-glibc': 2.4.1 + '@parcel/watcher-linux-x64-musl': 2.4.1 + '@parcel/watcher-win32-arm64': 2.4.1 + '@parcel/watcher-win32-ia32': 2.4.1 + '@parcel/watcher-win32-x64': 2.4.1 + '@rollup/pluginutils@5.1.3(rollup@4.24.3)': dependencies: '@types/estree': 1.0.6 @@ -2934,12 +3086,12 @@ snapshots: astring@1.9.0: {} - astro-expressive-code@0.35.6(astro@4.16.8(rollup@4.24.3)(typescript@5.6.3)): + astro-expressive-code@0.35.6(astro@4.16.8(rollup@4.24.3)(sass@1.80.5)(typescript@5.6.3)): dependencies: - astro: 4.16.8(rollup@4.24.3)(typescript@5.6.3) + astro: 4.16.8(rollup@4.24.3)(sass@1.80.5)(typescript@5.6.3) rehype-expressive-code: 0.35.6 - astro@4.16.8(rollup@4.24.3)(typescript@5.6.3): + astro@4.16.8(rollup@4.24.3)(sass@1.80.5)(typescript@5.6.3): dependencies: '@astrojs/compiler': 2.10.3 '@astrojs/internal-helpers': 0.4.1 @@ -2983,7 +3135,7 @@ snapshots: micromatch: 4.0.8 mrmime: 2.0.0 neotraverse: 0.6.18 - ora: 8.1.0 + ora: 8.1.1 p-limit: 6.1.0 p-queue: 8.0.1 preferred-pm: 4.0.0 @@ -2995,8 +3147,8 @@ snapshots: tsconfck: 3.1.4(typescript@5.6.3) unist-util-visit: 5.0.0 vfile: 6.0.3 - vite: 5.4.10 - vitefu: 1.0.3(vite@5.4.10) + vite: 5.4.10(sass@1.80.5) + vitefu: 1.0.3(vite@5.4.10(sass@1.80.5)) which-pm: 3.0.0 xxhash-wasm: 1.0.2 yargs-parser: 21.1.1 @@ -3134,6 +3286,8 @@ snapshots: dequal@2.0.3: {} + detect-libc@1.0.3: {} + detect-libc@2.0.3: {} deterministic-object-hash@2.0.2: @@ -3534,6 +3688,8 @@ snapshots: dependencies: '@babel/runtime': 7.26.0 + immutable@4.3.7: {} + import-meta-resolve@4.1.0: {} inline-style-parser@0.1.1: {} @@ -4129,6 +4285,8 @@ snapshots: dependencies: '@types/nlcst': 2.0.3 + node-addon-api@7.1.1: {} + node-releases@2.0.18: {} nth-check@2.1.1: @@ -4141,9 +4299,9 @@ snapshots: oniguruma-to-js@0.4.3: dependencies: - regex: 4.3.3 + regex: 4.4.0 - ora@8.1.0: + ora@8.1.1: dependencies: chalk: 5.3.0 cli-cursor: 5.0.0 @@ -4294,7 +4452,7 @@ snapshots: regenerator-runtime@0.14.1: {} - regex@4.3.3: {} + regex@4.4.0: {} rehype-expressive-code@0.35.6: dependencies: @@ -4463,6 +4621,13 @@ snapshots: dependencies: queue-microtask: 1.2.3 + sass@1.80.5: + dependencies: + '@parcel/watcher': 2.4.1 + chokidar: 4.0.1 + immutable: 4.3.7 + source-map-js: 1.2.1 + sax@1.4.1: {} section-matter@1.0.0: @@ -4679,17 +4844,18 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vite@5.4.10: + vite@5.4.10(sass@1.80.5): dependencies: esbuild: 0.21.5 postcss: 8.4.47 rollup: 4.24.3 optionalDependencies: fsevents: 2.3.3 + sass: 1.80.5 - vitefu@1.0.3(vite@5.4.10): + vitefu@1.0.3(vite@5.4.10(sass@1.80.5)): optionalDependencies: - vite: 5.4.10 + vite: 5.4.10(sass@1.80.5) volar-service-css@0.0.62(@volar/language-service@2.4.8): dependencies: diff --git a/docs/src/components/ContentPanel.astro b/docs/src/components/ContentPanel.astro new file mode 100644 index 00000000000..513fb13f174 --- /dev/null +++ b/docs/src/components/ContentPanel.astro @@ -0,0 +1,8 @@ +--- +import type { Props } from "@astrojs/starlight/props"; +import StarlightContentPanel from "@astrojs/starlight/components/ContentPanel.astro"; +--- + +
+ +
diff --git a/docs/src/components/CustomSocialIcons.astro b/docs/src/components/CustomSocialIcons.astro new file mode 100644 index 00000000000..3eb94af4667 --- /dev/null +++ b/docs/src/components/CustomSocialIcons.astro @@ -0,0 +1,21 @@ +--- +import type { Props } from '@astrojs/starlight/props'; +import Default from '@astrojs/starlight/components/SocialIcons.astro'; +--- + + + Bluesky + + + + diff --git a/docs/src/components/DownloadButton.astro b/docs/src/components/DownloadButton.astro new file mode 100644 index 00000000000..55ce2b042b8 --- /dev/null +++ b/docs/src/components/DownloadButton.astro @@ -0,0 +1,34 @@ +--- +import { LinkCard } from "@astrojs/starlight/components"; + +export interface Props { + title: string; + href: string; + after?: string; +} + +const { title, href, after } = Astro.props; +--- + + + + diff --git a/docs/src/components/Footer.astro b/docs/src/components/Footer.astro new file mode 100644 index 00000000000..4cfd8035fc8 --- /dev/null +++ b/docs/src/components/Footer.astro @@ -0,0 +1,62 @@ +--- +import type { Props } from "@astrojs/starlight/props"; +import StarlightFooter from "@astrojs/starlight/components/Footer.astro"; +import { Image } from "astro:assets"; +--- + + + + + + + diff --git a/docs/src/components/Head.astro b/docs/src/components/Head.astro new file mode 100644 index 00000000000..8bf7bb70cab --- /dev/null +++ b/docs/src/components/Head.astro @@ -0,0 +1,8 @@ +--- +import type { Props } from '@astrojs/starlight/props'; +import StarlightHead from '@astrojs/starlight/components/Head.astro'; +import { ViewTransitions } from 'astro:transitions'; +--- + + + \ No newline at end of file diff --git a/docs/src/content/docs/downloads/android.mdx b/docs/src/content/docs/downloads/android.mdx new file mode 100644 index 00000000000..cf4964b9834 --- /dev/null +++ b/docs/src/content/docs/downloads/android.mdx @@ -0,0 +1,46 @@ +--- +title: Android +--- + +![Nightly release version](https://img.shields.io/badge/dynamic/yaml?color=f7d28c&label=Nightly&query=%24.version&url=https%3A%2F%2Fraw.githubusercontent.com%2FLinwoodDev%2FFlow%2Fnightly%2Fapp%2Fpubspec.yaml&style=for-the-badge) + + +import {CardGrid, LinkCard, TabItem, Tabs} from '@astrojs/starlight/components'; +import DownloadButton from '/src/components/DownloadButton.astro'; + +## Minimum system requirements + +* Android 5.0 (API level 21) or higher. + +## Binaries + + + + + + + + + + + + + +Read more about the nightly version of Flow [here](/community/nightly). + +:::tip[What apk should I use?] + +**Universal** should work on all devices. If you want a smaller apk, use the one that matches your device's architecture. + +::: + +## Stores + + + + + + +## The beta program on play store + +Click on [this link](https://play.google.com/apps/testing/dev.linwood.flow) to register for the [nightly](/community/nightly) version of the app. Please note that this version can have bugs. The play store version will automatically be updated when a new nightly version is released. diff --git a/docs/src/content/docs/downloads/build-your-own.md b/docs/src/content/docs/downloads/build-your-own.md new file mode 100644 index 00000000000..cf8b4240231 --- /dev/null +++ b/docs/src/content/docs/downloads/build-your-own.md @@ -0,0 +1,16 @@ +--- +title: "Build your own" +--- + +1. Install git and flutter (beta) +2. Clone the repository +3. Navigate to the app directory +4. Use the flutter tool to compile the application + * `flutter build apk` + * `flutter build appbundle` + * `flutter build web` + * `flutter build linux` + * `flutter build windows` + * `flutter build ios --release --no-codesign`\ + after that, create a folder named "Payload", copy Runner.app into it and zip the payload folder. Then rename ".zip" to ".ipa". +5. The compiled files are in the build directory diff --git a/docs/src/content/docs/downloads/index.mdx b/docs/src/content/docs/downloads/index.mdx new file mode 100644 index 00000000000..46c60430ebf --- /dev/null +++ b/docs/src/content/docs/downloads/index.mdx @@ -0,0 +1,30 @@ +--- +title: Downloads +--- + + +![Nightly release version](https://img.shields.io/badge/dynamic/yaml?color=f7d28c&label=Nightly&query=%24.version&url=https%3A%2F%2Fraw.githubusercontent.com%2FLinwoodDev%2FFlow%2Fnightly%2Fapp%2Fpubspec.yaml&style=for-the-badge) + +## Choose your platform + +import { LinkCard, CardGrid } from '@astrojs/starlight/components'; + + + + + + + + + + + + + +## Useful links + +- [Changelog](/community/changelog) +- [Older releases](https://github.com/LinwoodDev/Flow/releases) +- [Latest release](https://github.com/LinwoodDev/Flow/releases/latest) +- [Support](https://discord.linwood.dev) +- [FAQ](/community/faq) \ No newline at end of file diff --git a/docs/src/content/docs/downloads/ios.mdx b/docs/src/content/docs/downloads/ios.mdx new file mode 100644 index 00000000000..80b7580221f --- /dev/null +++ b/docs/src/content/docs/downloads/ios.mdx @@ -0,0 +1,50 @@ +--- +title: iOS +--- + +![Nightly release version](https://img.shields.io/badge/dynamic/yaml?color=f7d28c&label=Nightly&query=%24.version&url=https%3A%2F%2Fraw.githubusercontent.com%2FLinwoodDev%2FFlow%2Fnightly%2Fapp%2Fpubspec.yaml&style=for-the-badge) + + +import {CardGrid, TabItem, Tabs} from '@astrojs/starlight/components'; +import DownloadButton from '/src/components/DownloadButton.astro'; + +:::warning + +The iOS version of Flow is in preview and may not work as expected. +Click [here](https://github.com/LinwoodDev/Flow/issues/244) to visit the issue on GitHub to find current known bugs and updates. Please report any issues there. + +::: + +## Links + + + + + + + + + +Read more about the nightly version of Flow [here](/community/nightly). + +## Installing + +The IPA file we distribute is unsigned. This means you'll have to sign it yourself before being able to install it onto your iOS device. \ +Fortunately, there are projects like [AltStore](https://altstore.io) (open source) or [sideloadly](https://sideloadly.io) (closed source). \ +\ +You do need an Apple ID for sideloading Flow. We recommend creating a new one especially for this purpose. Please log into [Apple Developer](https://developer.apple.com) at least once and accept their terms. +\ +If your device is running iOS 16.0 or newer, enable developer mode in Settings/Privacy/Developer Mode. + +## Installing (AltStore) + +1. Set up AltStore using the instructions provided on the AltStore website. +2. Get a copy of the IPA file onto your device. The best way is to download it using a web browser or sending a zip file containing the IPA to yourself. Do not use Airdrop. Also, do not send the file directly to yourself. You might not be able to open it. +3. Open the IPA file, use the "share" menu and tap "AltStore". If your device is connected to your PC running AltServer (wired or wirelessly) it'll install automatically. + +## Installing (Sideloadly) + +1. Set up Sideloadly using the guides provided on sideloadly.io. +2. Open sideloadly on your PC. +3. Add the IPA in the top right corner, select your device and Apple ID. Click Start. The app will be installed onto your device. +If you get a popup saying a developer isn't trusted go to Settings/General/VPN and Device Management and change that. diff --git a/docs/src/content/docs/downloads/linux.mdx b/docs/src/content/docs/downloads/linux.mdx new file mode 100644 index 00000000000..deecb3bf4b2 --- /dev/null +++ b/docs/src/content/docs/downloads/linux.mdx @@ -0,0 +1,31 @@ +--- +title: Linux +--- + +![Nightly release version](https://img.shields.io/badge/dynamic/yaml?color=f7d28c&label=Nightly&query=%24.version&url=https%3A%2F%2Fraw.githubusercontent.com%2FLinwoodDev%2FFlow%2Fnightly%2Fapp%2Fpubspec.yaml&style=for-the-badge) + + +import {CardGrid, LinkCard, TabItem, Tabs} from '@astrojs/starlight/components'; +import DownloadButton from '/src/components/DownloadButton.astro'; + +:::note + +Please use the flatpak version if possible. +Otherwise you need to install `libsecret-1-dev` and `libjsoncpp-dev`. + +::: + +## Binaries + + + + + + + + + + + + +Read more about the nightly version of Flow [here](/community/nightly). diff --git a/docs/src/content/docs/downloads/macos.mdx b/docs/src/content/docs/downloads/macos.mdx new file mode 100644 index 00000000000..8667f6fc7a5 --- /dev/null +++ b/docs/src/content/docs/downloads/macos.mdx @@ -0,0 +1,21 @@ +--- +title: MacOS +--- + +![Nightly release version](https://img.shields.io/badge/dynamic/yaml?color=f7d28c&label=Nightly&query=%24.version&url=https%3A%2F%2Fraw.githubusercontent.com%2FLinwoodDev%2FFlow%2Fnightly%2Fapp%2Fpubspec.yaml&style=for-the-badge) + +import { Tabs, TabItem, CardGrid } from '@astrojs/starlight/components'; +import DownloadButton from '/src/components/DownloadButton.astro'; + +## Links + + + + + + + + + + +Read more about the nightly version of Flow [here](/community/nightly). diff --git a/docs/src/content/docs/downloads/post-windows.mdx b/docs/src/content/docs/downloads/post-windows.mdx new file mode 100644 index 00000000000..fa37f5e4a6c --- /dev/null +++ b/docs/src/content/docs/downloads/post-windows.mdx @@ -0,0 +1,22 @@ +--- +title: Thank you for downloading +--- + +import { LinkCard, CardGrid } from '@astrojs/starlight/components'; + + + + + + +## Windows SmartScreen + +Windows warns users when installing software without a certificate. + +![Smart screen](@assets/img/smart-screen.png) + +To install the app, you need to click on "More info". + +![Smart screen more info](@assets/img/smart-screen-more-info.png) + +Then, click on "Run anyway". diff --git a/docs/src/content/docs/downloads/selfhosting.md b/docs/src/content/docs/downloads/selfhosting.md new file mode 100644 index 00000000000..27bb4874a1f --- /dev/null +++ b/docs/src/content/docs/downloads/selfhosting.md @@ -0,0 +1,24 @@ +--- +title: Selfhosting +--- + +![Nightly release version](https://img.shields.io/badge/dynamic/yaml?color=f7d28c&label=Nightly&query=%24.version&url=https%3A%2F%2Fraw.githubusercontent.com%2FLinwoodDev%2FFlow%2Fnightly%2Fapp%2Fpubspec.yaml&style=for-the-badge) + +It is very easy to host your own Flow web server. + +## Simple server + +Install flutter and build the app using: + +```bash +cd app +flutter pub get +flutter build web +``` + +All the files are in the `app/build/web` directory. + +## Docker + +Clone the repository and build the `Dockerfile` using: `docker build -t linwood-flow`. +Start the server using: `docker run -p 8080:8080 -d linwood-flow`. diff --git a/docs/src/content/docs/downloads/thank-you.mdx b/docs/src/content/docs/downloads/thank-you.mdx new file mode 100644 index 00000000000..ff4b9c04787 --- /dev/null +++ b/docs/src/content/docs/downloads/thank-you.mdx @@ -0,0 +1,10 @@ +--- +title: Thank you for downloading +--- + +import { LinkCard, CardGrid } from '@astrojs/starlight/components'; + + + + + diff --git a/docs/src/content/docs/downloads/web.mdx b/docs/src/content/docs/downloads/web.mdx new file mode 100644 index 00000000000..bfdad33d69f --- /dev/null +++ b/docs/src/content/docs/downloads/web.mdx @@ -0,0 +1,26 @@ +--- +title: Web +--- + +![Nightly release version](https://img.shields.io/badge/dynamic/yaml?color=f7d28c&label=Nightly&query=%24.version&url=https%3A%2F%2Fraw.githubusercontent.com%2FLinwoodDev%2FFlow%2Fnightly%2Fapp%2Fpubspec.yaml&style=for-the-badge) + +import { CardGrid } from '@astrojs/starlight/components'; +import DownloadButton from '/src/components/DownloadButton.astro'; + +:::note + +This is a progressive web application. You can install it on your browser and use it offline. +All data is stored in your browser. + +::: + +## Links + + + + + +## Versions + +The main and the preview (develop) versions of Flow are not the same as the stable and nightly versions. +They are not directly associated with a release. They are updated as soon as a new commit is pushed to the repository. diff --git a/docs/src/content/docs/downloads/windows.mdx b/docs/src/content/docs/downloads/windows.mdx new file mode 100644 index 00000000000..49d07de81e1 --- /dev/null +++ b/docs/src/content/docs/downloads/windows.mdx @@ -0,0 +1,26 @@ +--- +title: Windows +--- + +![Nightly release version](https://img.shields.io/badge/dynamic/yaml?color=f7d28c&label=Nightly&query=%24.version&url=https%3A%2F%2Fraw.githubusercontent.com%2FLinwoodDev%2FFlow%2Fnightly%2Fapp%2Fpubspec.yaml&style=for-the-badge) + + +import {CardGrid, TabItem, Tabs} from '@astrojs/starlight/components'; +import DownloadButton from '/src/components/DownloadButton.astro'; + +## Minimum system requirements + +* Windows 10 or higher. + +## Binaries + + + + + + + + + + +Read more about the nightly version of Flow [here](/community/nightly). diff --git a/docs/src/content/docs/index.mdx b/docs/src/content/docs/index.mdx index 5757fb5ee11..eae811f760b 100644 --- a/docs/src/content/docs/index.mdx +++ b/docs/src/content/docs/index.mdx @@ -1,19 +1,22 @@ --- -title: Welcome to Starlight -description: Get started building your docs site with Starlight. +title: Linwood Flow +description: ⌚ A feature rich event and time managment system ⌚ template: splash hero: - tagline: Congrats on setting up a new Starlight project! + tagline: ⌚ A feature rich event and time managment system ⌚ image: file: /public/img/logo.svg actions: - - text: Example Guide - link: /docs/v1/intro/ + - text: Download + link: /downloads/ icon: right-arrow - - text: Read the Starlight docs - link: https://starlight.astro.build - icon: external - variant: minimal + variant: primary + - text: Getting started + link: /docs/v1/intro/ + icon: document + - text: Web App + link: https://web.flow.linwood.dev + icon: rocket --- import { Card, CardGrid } from '@astrojs/starlight/components'; diff --git a/docs/src/styles/custom.css b/docs/src/styles/custom.css new file mode 100644 index 00000000000..8d6bb6bf9d6 --- /dev/null +++ b/docs/src/styles/custom.css @@ -0,0 +1,155 @@ +/* Dark mode colors. */ +:root { + --sl-color-accent-low: #0f282e; + --sl-color-accent: #00768d; + --sl-color-accent-high: #b1ced7; + --sl-color-white: #ffffff; + --sl-color-gray-1: #eceef2; + --sl-color-gray-2: #c0c2c7; + --sl-color-gray-3: #888b96; + --sl-color-gray-4: #545861; + --sl-color-gray-5: #353841; + --sl-color-gray-6: #24272f; + --sl-color-black: #17181c; +} +/* Light mode colors. */ +:root[data-theme="light"] { + --sl-color-accent-low: #c5dbe2; + --sl-color-accent: #00758b; + --sl-color-accent-high: #0c3843; + --sl-color-white: #17181c; + --sl-color-gray-1: #24272f; + --sl-color-gray-2: #353841; + --sl-color-gray-3: #545861; + --sl-color-gray-4: #888b96; + --sl-color-gray-5: #c0c2c7; + --sl-color-gray-6: #eceef2; + --sl-color-gray-7: #f5f6f8; + --sl-color-black: #ffffff; +} + +.inline-icon { + display: inline !important; + vertical-align: sub; + margin: 0 !important; + padding: 0; +} + +br { + display: block; +} + +@font-face { + font-family: "Barlow"; + src: url("/fonts/Barlow-Regular.ttf") format("truetype"); +} + +@font-face { + font-family: "Barlow"; + src: url("/fonts/Barlow-Bold.ttf") format("truetype"); + font-weight: bold; +} + +@font-face { + font-family: "Barlow"; + src: url("/fonts/Barlow-Italic.ttf") format("truetype"); + font-style: italic; +} + +@font-face { + font-family: "Barlow"; + src: url("/fonts/Barlow-BoldItalic.ttf") format("truetype"); + font-weight: bold; + font-style: italic; +} + +@font-face { + font-family: "Barlow"; + src: url("/fonts/Barlow-Light.ttf") format("truetype"); + font-weight: 300; +} + +@font-face { + font-family: "Barlow"; + src: url("/fonts/Barlow-LightItalic.ttf") format("truetype"); + font-weight: 300; + font-style: italic; +} + +@font-face { + font-family: "Barlow"; + src: url("/fonts/Barlow-SemiBold.ttf") format("truetype"); + font-weight: 600; +} + +@font-face { + font-family: "Barlow"; + src: url("/fonts/Barlow-SemiBoldItalic.ttf") format("truetype"); + font-weight: 600; + font-style: italic; +} + +@font-face { + font-family: "Barlow"; + src: url("/fonts/Barlow-ExtraBold.ttf") format("truetype"); + font-weight: 800; +} + +@font-face { + font-family: "Barlow"; + src: url("/fonts/Barlow-ExtraBoldItalic.ttf") format("truetype"); + font-weight: 800; + font-style: italic; +} + +@font-face { + font-family: "Barlow"; + src: url("/fonts/Barlow-Black.ttf") format("truetype"); + font-weight: 900; +} + +@font-face { + font-family: "Barlow"; + src: url("/fonts/Barlow-BlackItalic.ttf") format("truetype"); + font-weight: 900; + font-style: italic; +} + +@font-face { + font-family: "Barlow"; + src: url("/fonts/Barlow-Thin.ttf") format("truetype"); + font-weight: 100; +} + +@font-face { + font-family: "Barlow"; + src: url("/fonts/Barlow-ThinItalic.ttf") format("truetype"); + font-weight: 100; + font-style: italic; +} + +@font-face { + font-family: "Barlow"; + src: url("/fonts/Barlow-ExtraLight.ttf") format("truetype"); + font-weight: 200; +} + +@font-face { + font-family: "Barlow"; + src: url("/fonts/Barlow-ExtraLightItalic.ttf") format("truetype"); + font-weight: 200; + font-style: italic; +} + +@font-face { + font-family: "Barlow"; + src: url("/fonts/Barlow-Medium.ttf") format("truetype"); + font-weight: 500; +} + +@font-face { + font-family: "Barlow"; + src: url("/fonts/Barlow-MediumItalic.ttf") format("truetype"); + font-weight: 500; + font-style: italic; +}