From c253badbf17654e428b92d6b794f5c9d88391f0a Mon Sep 17 00:00:00 2001 From: "Angel D. Munoz" Date: Thu, 17 Jun 2021 15:59:18 -0500 Subject: [PATCH] move docks, remove svelte deps :D --- Sutil.Generator.sln | 15 + src/website/package.json | 8 +- src/website/pnpm-lock.yaml | 269 +++++++----------- src/website/snowpack.config.js | 1 - src/website/src/App.fs | 55 ++-- src/website/src/App.fsproj | 4 + src/website/src/Components/Sidenav.fs | 120 +++++--- src/website/src/Pages/Docs.fs | 8 +- src/website/src/Pages/Fast.fs | 6 + src/website/src/Pages/Home.fs | 5 + src/website/src/Pages/Shoelace.fs | 6 + src/website/src/Routes.fs | 17 +- src/website/src/Types.fs | 8 +- src/website/src/docs/fast/index.md | 40 +++ src/website/src/docs/home.md | 0 .../src/docs/{ => shoelace}/components.md | 0 src/website/src/docs/{ => shoelace}/elmish.md | 2 +- .../docs/{ => shoelace}/getting-started.md | 0 src/website/src/docs/{ => shoelace}/index.md | 2 +- src/website/src/docs/{ => shoelace}/stores.md | 2 +- 20 files changed, 322 insertions(+), 246 deletions(-) create mode 100644 src/website/src/Pages/Fast.fs create mode 100644 src/website/src/Pages/Home.fs create mode 100644 src/website/src/Pages/Shoelace.fs create mode 100644 src/website/src/docs/fast/index.md create mode 100644 src/website/src/docs/home.md rename src/website/src/docs/{ => shoelace}/components.md (100%) rename src/website/src/docs/{ => shoelace}/elmish.md (99%) rename src/website/src/docs/{ => shoelace}/getting-started.md (100%) rename src/website/src/docs/{ => shoelace}/index.md (96%) rename src/website/src/docs/{ => shoelace}/stores.md (99%) diff --git a/Sutil.Generator.sln b/Sutil.Generator.sln index 80cf3b5..2230594 100644 --- a/Sutil.Generator.sln +++ b/Sutil.Generator.sln @@ -13,6 +13,8 @@ Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "App", "src\website\src\App. EndProject Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Sutil.Shoelace", "src\Sutil.Shoelace\Sutil.Shoelace.fsproj", "{F6C84529-7F46-4A2B-B466-9E418BC5958E}" EndProject +Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Sutil.Fast", "src\Sutil.Fast\Sutil.Fast.fsproj", "{756D5AF7-4F50-4DDA-95D9-38C825CA57B7}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -62,10 +64,23 @@ Global {F6C84529-7F46-4A2B-B466-9E418BC5958E}.Release|x64.Build.0 = Release|Any CPU {F6C84529-7F46-4A2B-B466-9E418BC5958E}.Release|x86.ActiveCfg = Release|Any CPU {F6C84529-7F46-4A2B-B466-9E418BC5958E}.Release|x86.Build.0 = Release|Any CPU + {756D5AF7-4F50-4DDA-95D9-38C825CA57B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {756D5AF7-4F50-4DDA-95D9-38C825CA57B7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {756D5AF7-4F50-4DDA-95D9-38C825CA57B7}.Debug|x64.ActiveCfg = Debug|Any CPU + {756D5AF7-4F50-4DDA-95D9-38C825CA57B7}.Debug|x64.Build.0 = Debug|Any CPU + {756D5AF7-4F50-4DDA-95D9-38C825CA57B7}.Debug|x86.ActiveCfg = Debug|Any CPU + {756D5AF7-4F50-4DDA-95D9-38C825CA57B7}.Debug|x86.Build.0 = Debug|Any CPU + {756D5AF7-4F50-4DDA-95D9-38C825CA57B7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {756D5AF7-4F50-4DDA-95D9-38C825CA57B7}.Release|Any CPU.Build.0 = Release|Any CPU + {756D5AF7-4F50-4DDA-95D9-38C825CA57B7}.Release|x64.ActiveCfg = Release|Any CPU + {756D5AF7-4F50-4DDA-95D9-38C825CA57B7}.Release|x64.Build.0 = Release|Any CPU + {756D5AF7-4F50-4DDA-95D9-38C825CA57B7}.Release|x86.ActiveCfg = Release|Any CPU + {756D5AF7-4F50-4DDA-95D9-38C825CA57B7}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(NestedProjects) = preSolution {B41BFB87-1949-435B-B89B-2B49C9DE7C8B} = {F359596B-74AA-488C-82C8-187DCF72C281} {550A6B28-0B40-4579-9B26-72EF75BCC632} = {F359596B-74AA-488C-82C8-187DCF72C281} {4A995969-F98A-4B29-BE11-295DD45AC617} = {550A6B28-0B40-4579-9B26-72EF75BCC632} + {756D5AF7-4F50-4DDA-95D9-38C825CA57B7} = {F359596B-74AA-488C-82C8-187DCF72C281} EndGlobalSection EndGlobal diff --git a/src/website/package.json b/src/website/package.json index 40a2cbf..87fd69d 100644 --- a/src/website/package.json +++ b/src/website/package.json @@ -8,17 +8,17 @@ }, "devDependencies": { "@snowpack/plugin-dotenv": "~2.1.0", - "@snowpack/plugin-svelte": "~3.7.0", "firebase-tools": "^9.12.1", "markdown-it": "~12.0.6", "rollup": "~2.50.2", - "snowpack": "~3.5.1", - "svelte-hmr": "~0.14.4" + "snowpack": "~3.5.1" }, "dependencies": { "@shoelace-style/shoelace": "2.0.0-beta.43", "highlight.js": "~11.0.1", "navigo": "~8.11.1", - "svelte": "~3.38.2" + "@microsoft/fast-components": "^1.21.6", + "@microsoft/fast-foundation": "1.24.6", + "lodash-es": "4.17.21" } } diff --git a/src/website/pnpm-lock.yaml b/src/website/pnpm-lock.yaml index 60ad205..fc23410 100644 --- a/src/website/pnpm-lock.yaml +++ b/src/website/pnpm-lock.yaml @@ -1,32 +1,32 @@ lockfileVersion: 5.3 specifiers: + '@microsoft/fast-components': ^1.21.6 + '@microsoft/fast-foundation': 1.24.6 '@shoelace-style/shoelace': 2.0.0-beta.43 '@snowpack/plugin-dotenv': ~2.1.0 - '@snowpack/plugin-svelte': ~3.7.0 firebase-tools: ^9.12.1 highlight.js: ~11.0.1 + lodash-es: 4.17.21 markdown-it: ~12.0.6 navigo: ~8.11.1 rollup: ~2.50.2 snowpack: ~3.5.1 - svelte: ~3.38.2 - svelte-hmr: ~0.14.4 dependencies: + '@microsoft/fast-components': 1.21.6_lodash-es@4.17.21 + '@microsoft/fast-foundation': 1.24.6_lodash-es@4.17.21 '@shoelace-style/shoelace': 2.0.0-beta.43 highlight.js: 11.0.1 + lodash-es: 4.17.21 navigo: 8.11.1 - svelte: 3.38.2 devDependencies: '@snowpack/plugin-dotenv': 2.1.0 - '@snowpack/plugin-svelte': 3.7.0_rollup@2.50.2+svelte@3.38.2 firebase-tools: 9.12.1 markdown-it: 12.0.6 rollup: 2.50.2 snowpack: 3.5.1 - svelte-hmr: 0.14.4_svelte@3.38.2 packages: @@ -120,6 +120,62 @@ packages: resolution: {integrity: sha512-cujeIl5Ei8FC7UHf4/4Q3bRJOtdTe1vpJV/JEBYCggedmQ+2P8A2oz7eE+Vxi6OJ4nc0X+KZxXnBoH4QrEbmEQ==} dev: false + /@microsoft/fast-colors/5.1.3: + resolution: {integrity: sha512-XDEnRYxPO5P3Jsizm4TCxLu1osS/uV3Lym6SfRhq2PxfXPTgEcdvOYDUXyV2drqebs3U5VQnOcYcJiSp73xhng==} + dev: false + + /@microsoft/fast-components/1.21.6_lodash-es@4.17.21: + resolution: {integrity: sha512-z7/kaeEehmCiwFoCNKsXeEZNZNe595HVRmLG6SIOkbkdHMFaw/0Gq2M8j8kkPq+cL+ZDxuSmiCdMsaqSgbNGhA==} + peerDependencies: + lodash-es: ^4.0.0 + dependencies: + '@microsoft/fast-colors': 5.1.3 + '@microsoft/fast-element': 1.4.0 + '@microsoft/fast-foundation': 1.24.6_lodash-es@4.17.21 + '@microsoft/fast-web-utilities': 4.8.0_lodash-es@4.17.21 + lodash-es: 4.17.21 + tslib: 1.14.1 + vscode-html-languageservice: 4.0.5 + dev: false + + /@microsoft/fast-element/1.4.0: + resolution: {integrity: sha512-7BC/juFc7S4HMGt/tNCP9bjwtUslheGiPM2jtIibe1bj+PO34woUfH5TxaklOT6sRStig/0fODX4R5oqY4DYLA==} + dev: false + + /@microsoft/fast-foundation/1.24.6_lodash-es@4.17.21: + resolution: {integrity: sha512-uZH/E+4hrwc0/rcOUg+JzqzxS4HiQidgGCFQwWQIh0sNduveoaKDKIHD4STokmkWhr02TTDyqizrFD0hPmCHNA==} + dependencies: + '@microsoft/fast-element': 1.4.0 + '@microsoft/fast-web-utilities': 4.8.0_lodash-es@4.17.21 + '@microsoft/tsdoc-config': 0.13.9 + tabbable: 5.2.0 + tslib: 1.14.1 + transitivePeerDependencies: + - lodash-es + dev: false + + /@microsoft/fast-web-utilities/4.8.0_lodash-es@4.17.21: + resolution: {integrity: sha512-+MroMIP5yGD8mqbegqSZoIbQVjvmsQRQtn87Gc8TJk00KIfRu2x9sFAq8q5m8H61sjCRHreJ0Bq5telz09h55g==} + peerDependencies: + lodash-es: ^4.17.10 + dependencies: + exenv-es6: 1.0.0 + lodash-es: 4.17.21 + dev: false + + /@microsoft/tsdoc-config/0.13.9: + resolution: {integrity: sha512-VqqZn+rT9f6XujFPFR2aN9XKF/fuir/IzKVzoxI0vXIzxysp4ee6S2jCakmlGFHEasibifFTsJr7IYmRPxfzYw==} + dependencies: + '@microsoft/tsdoc': 0.12.24 + ajv: 6.12.6 + jju: 1.4.0 + resolve: 1.19.0 + dev: false + + /@microsoft/tsdoc/0.12.24: + resolution: {integrity: sha512-Mfmij13RUTmHEMi9vRUhMXD7rnGR2VvxeNYtaGtaJ4redwwjT4UXYJ+nzmVJF7hhd4pn/Fx5sncDKxMVFJSWPg==} + dev: false + /@nodelib/fs.scandir/2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -276,30 +332,6 @@ packages: dotenv-expand: 5.1.0 dev: true - /@snowpack/plugin-svelte/3.7.0_rollup@2.50.2+svelte@3.38.2: - resolution: {integrity: sha512-YR2t/aMswjUV0D/qFBjIGA7VIgl5IrNHIuJbNtj2YR2heRWaSm7LYLUJKbnho7iKUqCtc+ZcwpgGZO/VNYlLNg==} - peerDependencies: - svelte: ^3.21.0 - dependencies: - rollup-plugin-svelte: 7.1.0_rollup@2.50.2+svelte@3.38.2 - svelte: 3.38.2 - svelte-hmr: 0.13.3_svelte@3.38.2 - svelte-preprocess: 4.7.3_svelte@3.38.2 - transitivePeerDependencies: - - '@babel/core' - - coffeescript - - less - - node-sass - - postcss - - postcss-load-config - - pug - - rollup - - sass - - stylus - - sugarss - - typescript - dev: true - /@szmarczak/http-timer/1.1.2: resolution: {integrity: sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==} engines: {node: '>=6'} @@ -343,24 +375,10 @@ packages: resolution: {integrity: sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA==} dev: true - /@types/node/14.14.37: - resolution: {integrity: sha512-XYmBiy+ohOR4Lh5jE379fV2IU+6Jn4g5qASinhitfyO71b/sCo6MKsMLF5tc7Zf2CE8hViVQyYSobJNke8OvUw==} - dev: true - /@types/node/15.12.2: resolution: {integrity: sha512-zjQ69G564OCIWIOHSXyQEEDpdpGl+G348RAKY0XXy9Z5kU9Vzv1GMNnkar/ZJ8dzXB3COzD9Mo9NtRZ4xfgUww==} dev: true - /@types/pug/2.0.4: - resolution: {integrity: sha1-h3L80EGOPNLMFxVV1zAHQVBR9LI=} - dev: true - - /@types/sass/1.16.0: - resolution: {integrity: sha512-2XZovu4NwcqmtZtsBR5XYLw18T8cBCnU2USFHTnYLLHz9fkhnoEMoDsqShJIOFsFhn5aJHjweiUUdTrDGujegA==} - dependencies: - '@types/node': 14.14.37 - dev: true - /@types/trusted-types/1.0.6: resolution: {integrity: sha512-230RC8sFeHoT6sSUlRO6a8cAnclO06eeiq1QDfiv2FGCLWFvvERWgwIQD4FWqD9A69BN7Lzee4OXwoMVnnsWDw==} dev: false @@ -427,7 +445,6 @@ packages: fast-json-stable-stringify: 2.1.0 json-schema-traverse: 0.4.1 uri-js: 4.4.1 - dev: true /ansi-align/3.0.0: resolution: {integrity: sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==} @@ -1335,11 +1352,6 @@ packages: resolution: {integrity: sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=} dev: true - /detect-indent/6.0.0: - resolution: {integrity: sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==} - engines: {node: '>=8'} - dev: true - /dir-glob/3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} @@ -1528,10 +1540,6 @@ packages: engines: {node: '>=4.0'} dev: true - /estree-walker/0.6.1: - resolution: {integrity: sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==} - dev: true - /esutils/2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} @@ -1587,6 +1595,10 @@ packages: semver: 7.3.5 dev: true + /exenv-es6/1.0.0: + resolution: {integrity: sha512-fcG/TX8Ruv9Ma6PBaiNsUrHRJzVzuFMP6LtPn/9iqR+nr9mcLeEOGzXQGLC5CVQSXGE98HtzW2mTZkrCA3XrDg==} + dev: false + /exit-code/1.0.2: resolution: {integrity: sha1-zhZYEcnxF69qX4gpQLlq5/muzDQ=} dev: true @@ -1658,7 +1670,6 @@ packages: /fast-deep-equal/3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - dev: true /fast-glob/3.2.5: resolution: {integrity: sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==} @@ -1674,7 +1685,6 @@ packages: /fast-json-stable-stringify/2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - dev: true /fast-levenshtein/2.0.6: resolution: {integrity: sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=} @@ -1921,7 +1931,6 @@ packages: /function-bind/1.1.1: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} - dev: true /gauge/2.7.4: resolution: {integrity: sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=} @@ -2211,7 +2220,6 @@ packages: engines: {node: '>= 0.4.0'} dependencies: function-bind: 1.1.1 - dev: true /highlight.js/11.0.1: resolution: {integrity: sha512-EqYpWyTF2s8nMfttfBA2yLKPNoZCO33pLS4MnbXQ4hECf1TKujCt1Kq7QAdrio7roL4+CqsfjqwYj4tYgq0pJQ==} @@ -2428,7 +2436,6 @@ packages: resolution: {integrity: sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==} dependencies: has: 1.0.3 - dev: true /is-docker/2.1.1: resolution: {integrity: sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==} @@ -2571,7 +2578,6 @@ packages: /jju/1.4.0: resolution: {integrity: sha1-o6vicYryQaKykE+EpiWXDzia4yo=} - dev: true /join-path/1.1.1: resolution: {integrity: sha1-EFNaEm0ky9Zff/zfFe8uYxB2tQU=} @@ -2628,7 +2634,6 @@ packages: /json-schema-traverse/0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - dev: true /json-schema-traverse/1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} @@ -2777,6 +2782,10 @@ packages: lit-html: 2.0.0-rc.3 dev: false + /lodash-es/4.17.21: + resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + dev: false + /lodash._isnative/2.4.1: resolution: {integrity: sha1-PqZAS3hKe+g2x7V1gOHN95sUgyw=} dev: true @@ -3072,11 +3081,6 @@ packages: engines: {node: '>=4'} dev: true - /min-indent/1.0.1: - resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} - engines: {node: '>=4'} - dev: true - /minimatch/3.0.4: resolution: {integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==} dependencies: @@ -3598,7 +3602,6 @@ packages: /path-parse/1.0.6: resolution: {integrity: sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==} - dev: true /path-to-regexp/0.1.7: resolution: {integrity: sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=} @@ -3753,7 +3756,6 @@ packages: /punycode/2.1.1: resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} engines: {node: '>=6'} - dev: true /pupa/2.1.1: resolution: {integrity: sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==} @@ -3948,9 +3950,12 @@ packages: engines: {node: '>=0.10.0'} dev: true - /require-relative/0.8.7: - resolution: {integrity: sha1-eZlTn8ngR6N5KPoZb44VY9q9Nt4=} - dev: true + /resolve/1.19.0: + resolution: {integrity: sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==} + dependencies: + is-core-module: 2.2.0 + path-parse: 1.0.6 + dev: false /resolve/1.20.0: resolution: {integrity: sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==} @@ -4006,25 +4011,6 @@ packages: glob: 7.1.7 dev: true - /rollup-plugin-svelte/7.1.0_rollup@2.50.2+svelte@3.38.2: - resolution: {integrity: sha512-vopCUq3G+25sKjwF5VilIbiY6KCuMNHP1PFvx2Vr3REBNMDllKHFZN2B9jwwC+MqNc3UPKkjXnceLPEjTjXGXg==} - engines: {node: '>=10'} - peerDependencies: - rollup: '>=2.0.0' - svelte: '>=3.5.0' - dependencies: - require-relative: 0.8.7 - rollup: 2.50.2 - rollup-pluginutils: 2.8.2 - svelte: 3.38.2 - dev: true - - /rollup-pluginutils/2.8.2: - resolution: {integrity: sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==} - dependencies: - estree-walker: 0.6.1 - dev: true - /rollup/2.37.1: resolution: {integrity: sha512-V3ojEeyGeSdrMSuhP3diBb06P+qV4gKQeanbDv+Qh/BZbhdZ7kHV0xAt8Yjk4GFshq/WjO7R4c7DFM20AwTFVQ==} engines: {node: '>=10.0.0'} @@ -4381,13 +4367,6 @@ packages: ansi-regex: 5.0.0 dev: true - /strip-indent/3.0.0: - resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} - engines: {node: '>=8'} - dependencies: - min-indent: 1.0.1 - dev: true - /strip-json-comments/2.0.1: resolution: {integrity: sha1-PFMZQukIwml8DsNEhYwobHygpgo=} engines: {node: '>=0.10.0'} @@ -4455,73 +4434,8 @@ packages: supports-color: 5.5.0 dev: true - /svelte-hmr/0.13.3_svelte@3.38.2: - resolution: {integrity: sha512-gagW62pLQ2lULmvNA3pIZu9pBCYOaGu3rQikUOv6Nokz5VxUgT9/mQLfMxj9phDEKHCg/lgr3i6PkqZDbO9P2Q==} - peerDependencies: - svelte: '>=3.19.0' - dependencies: - svelte: 3.38.2 - dev: true - - /svelte-hmr/0.14.4_svelte@3.38.2: - resolution: {integrity: sha512-kItFF7vqzStckSigoFmMnxJpTOdB9TWnQAW6Js+yAB4277tLbJIIE5KBlGHNmJNpA7MguqidsPB27Uw5UzQPCA==} - peerDependencies: - svelte: '>=3.19.0' - dependencies: - svelte: 3.38.2 - dev: true - - /svelte-preprocess/4.7.3_svelte@3.38.2: - resolution: {integrity: sha512-Zx1/xLeGOIBlZMGPRCaXtlMe4ZA0faato5Dc3CosEqwu75MIEPuOstdkH6cy+RYTUYynoxzNaDxkPX4DbrPwRA==} - engines: {node: '>= 9.11.2'} - requiresBuild: true - peerDependencies: - '@babel/core': ^7.10.2 - coffeescript: ^2.5.1 - less: ^3.11.3 - node-sass: '*' - postcss: ^7 || ^8 - postcss-load-config: ^2.1.0 || ^3.0.0 - pug: ^3.0.0 - sass: ^1.26.8 - stylus: ^0.54.7 - sugarss: ^2.0.0 - svelte: ^3.23.0 - typescript: ^3.9.5 || ^4.0.0 - peerDependenciesMeta: - '@babel/core': - optional: true - coffeescript: - optional: true - less: - optional: true - node-sass: - optional: true - postcss: - optional: true - postcss-load-config: - optional: true - pug: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - typescript: - optional: true - dependencies: - '@types/pug': 2.0.4 - '@types/sass': 1.16.0 - detect-indent: 6.0.0 - strip-indent: 3.0.0 - svelte: 3.38.2 - dev: true - - /svelte/3.38.2: - resolution: {integrity: sha512-q5Dq0/QHh4BLJyEVWGe7Cej5NWs040LWjMbicBGZ+3qpFWJ1YObRmUDZKbbovddLC9WW7THTj3kYbTOFmU9fbg==} - engines: {node: '>= 8'} + /tabbable/5.2.0: + resolution: {integrity: sha512-0uyt8wbP0P3T4rrsfYg/5Rg3cIJ8Shl1RJ54QMqYxm1TLdWqJD1u6+RQjr2Lor3wmfT7JRHkirIwy99ydBsyPg==} dev: false /tar-stream/2.2.0: @@ -4643,7 +4557,6 @@ packages: /tslib/1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - dev: true /tslib/2.3.0: resolution: {integrity: sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==} @@ -4817,7 +4730,6 @@ packages: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: punycode: 2.1.1 - dev: true /url-join/0.0.1: resolution: {integrity: sha1-HbSK1CLTQCRpqH99l73r/k+x48g=} @@ -4869,6 +4781,31 @@ packages: extsprintf: 1.3.0 dev: true + /vscode-html-languageservice/4.0.5: + resolution: {integrity: sha512-9ZKp7nfR6ObUA+K65GfgDPdOmXaPH8MOWxE2RwWF3tVnVMq2w+COKjDNHMvv+uNxtmaRT7/skls7CD/HzrW99w==} + dependencies: + vscode-languageserver-textdocument: 1.0.1 + vscode-languageserver-types: 3.16.0 + vscode-nls: 5.0.0 + vscode-uri: 3.0.2 + dev: false + + /vscode-languageserver-textdocument/1.0.1: + resolution: {integrity: sha512-UIcJDjX7IFkck7cSkNNyzIz5FyvpQfY7sdzVy+wkKN/BLaD4DQ0ppXQrKePomCxTS7RrolK1I0pey0bG9eh8dA==} + dev: false + + /vscode-languageserver-types/3.16.0: + resolution: {integrity: sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==} + dev: false + + /vscode-nls/5.0.0: + resolution: {integrity: sha512-u0Lw+IYlgbEJFF6/qAqG2d1jQmJl0eyAGJHoAJqr2HT4M2BNuQYSEiSE75f52pXHSJm8AlTjnLLbBFPrdz2hpA==} + dev: false + + /vscode-uri/3.0.2: + resolution: {integrity: sha512-jkjy6pjU1fxUvI51P+gCsxg1u2n8LSt0W6KrCNQceaziKzff74GoWmjVG46KieVzybO1sttPQmYfrwSHey7GUA==} + dev: false + /wcwidth/1.0.1: resolution: {integrity: sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=} dependencies: diff --git a/src/website/snowpack.config.js b/src/website/snowpack.config.js index 5982750..6545e27 100644 --- a/src/website/snowpack.config.js +++ b/src/website/snowpack.config.js @@ -8,7 +8,6 @@ module.exports = { '../Sutil.Shoelace': { url: '/Sutil.Shoelace', static: true } }, plugins: [ - '@snowpack/plugin-svelte', '@snowpack/plugin-dotenv', './markdown.pl.js' ], diff --git a/src/website/src/App.fs b/src/website/src/App.fs index a678d1d..3f2902d 100644 --- a/src/website/src/App.fs +++ b/src/website/src/App.fs @@ -38,34 +38,41 @@ let view () = Router.on "/" (fun _ -> navigateTo Home) |> ignore Router.on - "/docs/:page" - (fun (mtc: Match<{| page: string option |}, _> option) -> + ":library/docs/:page" + (fun (mtc: Match option) -> match mtc with | Some mtc -> match mtc.data with - | Some data -> - data.page - |> Option.defaultValue "getting-started" - |> Docs - |> navigateTo - | None -> navigateTo (Docs("getting-started")) - | None -> navigateTo (Docs("getting-started"))) - |> ignore - - Router.on "/about" (fun _ -> navigateTo About) + | Some { library = library; page = None } -> + let page = "getting-started" + let docs = Docs(library, page) + navigateTo docs + | Some { library = library; page = page } -> + let page = + page |> Option.defaultValue "getting-started" + + let docs = Docs(library, page) + navigateTo docs + | None -> navigateTo Home + | None -> navigateTo Home) |> ignore Router .notFound(fun _ -> navigateTo NotFound) .resolve() + let (|Shoelace|Fast|) = + function + | "fast" -> Fast + | _ -> Shoelace + let page = let location = getCurrentLocation () match location with | [||] -> Page.Home - | [| "about" |] -> Page.About - | [| "docs"; name |] -> Page.Docs name + | [| "fast"; "docs"; name |] -> Page.Docs("fast", name) + | [| "shoelace"; "docs"; name |] -> Page.Docs("shoelace", name) | _ -> Page.NotFound navigateTo page @@ -81,6 +88,15 @@ let view () = text "Sutil.Shoelace" onClick (fun _ -> Router.navigate "/" None) [] ] + Shoelace.SlButton [ + type' "text" + text "Shoelace" + Shoelace.SlIcon [ + Attr.name "book" + Attr.slot "prefix" + ] + onClick (fun _ -> Router.navigate "shoelace/docs/index" None) [] + ] Shoelace.SlButton [ type' "text" text "Documentation" @@ -88,7 +104,7 @@ let view () = Attr.name "book" Attr.slot "prefix" ] - onClick (fun _ -> Router.navigate "/docs/getting-started" None) [] + onClick (fun _ -> Router.navigate "fast/docs/index" None) [] ] ] Html.section [ @@ -114,9 +130,12 @@ let view () = bindFragment state <| fun state -> match state.page with - | Home -> Pages.Docs.view "index" - | About -> Html.article [ text "About" ] - | Docs name -> Pages.Docs.view (name) + | Home -> Pages.Home.view () + | Docs (library, page) -> Pages.Docs.view library page + | Library library -> + match library with + | Shoelace -> Pages.Shoelace.view () + | Fast -> Pages.Fast.view () | NotFound -> Html.article [ text "NotFound" ] ] diff --git a/src/website/src/App.fsproj b/src/website/src/App.fsproj index 6e4a773..a276aa4 100644 --- a/src/website/src/App.fsproj +++ b/src/website/src/App.fsproj @@ -8,6 +8,9 @@ + + + @@ -20,5 +23,6 @@ + \ No newline at end of file diff --git a/src/website/src/Components/Sidenav.fs b/src/website/src/Components/Sidenav.fs index 554c122..8f27f46 100644 --- a/src/website/src/Components/Sidenav.fs +++ b/src/website/src/Components/Sidenav.fs @@ -8,64 +8,100 @@ open Sutil.Shoelace open Routes open Sutil.DOM -let categorized = - routes |> List.groupBy (fun r -> r.category) +let shoelace = + routes + |> List.filter (fun route -> route.library = Shoelace) + |> List.groupBy (fun r -> r.category) + +let fast = + routes + |> List.filter (fun route -> route.library = Fast) + |> List.groupBy (fun r -> r.category) module Desktop = - let Sidenav = - Html.custom ( - "menu", - [ class' "site-menu desktop" - Html.ul [ - class' "menu-categories" - for (category, routes) in categorized do - Html.li [ - class' "menu-categories-category" - Html.h4 [ text (category.AsString()) ] + let private libraryMenu (library: list>) = + Html.ul [ + class' "menu-categories" + for (category, routes) in library do + Html.li [ + class' "menu-categories-category" + Html.h4 [ text (category.AsString()) ] - Html.ul [ - for value in routes do - Html.li [ - Shoelace.SlButton [ - type' "text" - text value.name - Attr.href value.href - ] - ] + Html.ul [ + for value in routes do + Html.li [ + Shoelace.SlButton [ + type' "text" + text value.name + Attr.href value.href + ] ] - ] - ] ] - ) + ] + ] + ] + + let Sidenav = + Html.aside [ + class' "site-menu desktop" + Html.ul [ + Html.h4 [ + Attr.slot "summary" + text "Shoelace" + ] + libraryMenu shoelace + ] + Html.ul [ + Html.h4 [ + Attr.slot "summary" + text "FAST" + ] + libraryMenu fast + ] + ] module Mobile = + let private mobileMenu (library: list>) = + Html.ul [ + class' "menu-categories" + for (category, routes) in library do + Html.li [ + class' "menu-categories-category" + Html.h4 [ text (category.AsString()) ] + + Html.ul [ + for value in routes do + Html.li [ + Shoelace.SlButton [ + type' "text" + text value.name + Attr.href value.href + ] + ] + ] + ] + ] + let Sidenav (content: NodeFactory seq) = Shoelace.SlDrawer [ yield! content class' "site-menu" Html.label [ Attr.slot "label" - text "Sutil.Shoelace Documentation" + text "Select a library Documentation" ] Html.ul [ - class' "menu-categories" - for (category, routes) in categorized do - Html.li [ - class' "menu-categories-category" - Html.h4 [ text (category.AsString()) ] - - Html.ul [ - for value in routes do - Html.li [ - Shoelace.SlButton [ - type' "text" - text value.name - Attr.href value.href - ] - ] - ] - ] + Html.li [ + Html.h3 "Shoelace" + mobileMenu shoelace + ] + ] + Html.ul [ + Html.li [ + Html.h3 "Fast" + mobileMenu fast + ] ] ] diff --git a/src/website/src/Pages/Docs.fs b/src/website/src/Pages/Docs.fs index 5056d47..1ee2b59 100644 --- a/src/website/src/Pages/Docs.fs +++ b/src/website/src/Pages/Docs.fs @@ -7,15 +7,11 @@ open Sutil.Shoelace open Sutil.Styling open Sutil.Attr -let view (page: string) = +let view (library: string) (page: string) = Html.article [ class' "doc-page" Shoelace.SlInclude [ - Attr.src $"/dist/docs/{page}.html" + Attr.src $"/dist/docs/{library}/{page}.html" Attr.custom ("allow-scripts", "true") - on "sl-error" (fun _ -> - Browser.Dom.document.querySelector(".doc-page").textContent <- - "We were not able to find that page, are you sure the url address is correct?" - ) [] ] ] diff --git a/src/website/src/Pages/Fast.fs b/src/website/src/Pages/Fast.fs new file mode 100644 index 0000000..7847efb --- /dev/null +++ b/src/website/src/Pages/Fast.fs @@ -0,0 +1,6 @@ +[] +module Pages.Fast + +open Sutil + +let view () = Pages.Docs.view "fast" "index" diff --git a/src/website/src/Pages/Home.fs b/src/website/src/Pages/Home.fs new file mode 100644 index 0000000..ca81f0b --- /dev/null +++ b/src/website/src/Pages/Home.fs @@ -0,0 +1,5 @@ +[] +module Pages.Home + +open Sutil +let view () = Html.article [ text "Home" ] diff --git a/src/website/src/Pages/Shoelace.fs b/src/website/src/Pages/Shoelace.fs new file mode 100644 index 0000000..6d0dc19 --- /dev/null +++ b/src/website/src/Pages/Shoelace.fs @@ -0,0 +1,6 @@ +[] +module Pages.Shoelace + +open Sutil + +let view () = Html.article [ text "" ] diff --git a/src/website/src/Routes.fs b/src/website/src/Routes.fs index 7f2e565..b563f12 100644 --- a/src/website/src/Routes.fs +++ b/src/website/src/Routes.fs @@ -11,22 +11,31 @@ type Category = | Components -> "Components" | Uncategorized -> "" +type Library = + | Shoelace + | Fast + type DocsRoute = { name: string href: string + library: Library category: Category } let routes = [ { name = "Getting Started" - href = "#/docs/getting-started" + href = "#/shoelace/docs/getting-started" + library = Shoelace category = Guides } { name = "How to use components" - href = "#/docs/components" + href = "#/shoelace/docs/components" + library = Shoelace category = Guides } { name = "Elmish" - href = "#/docs/elmish" + href = "#/shoelace/docs/elmish" + library = Shoelace category = Guides } { name = "Stores" - href = "#/docs/stores" + href = "#/shoelace/docs/stores" + library = Shoelace category = Guides } ] diff --git a/src/website/src/Types.fs b/src/website/src/Types.fs index a751d88..ecc6f09 100644 --- a/src/website/src/Types.fs +++ b/src/website/src/Types.fs @@ -2,6 +2,10 @@ module Types type Page = | Home - | About - | Docs of string + | Library of string + | Docs of library: string * docSite: string | NotFound + +type DocsUrlData = + { library: string + page: string option } diff --git a/src/website/src/docs/fast/index.md b/src/website/src/docs/fast/index.md new file mode 100644 index 0000000..3a8a0d8 --- /dev/null +++ b/src/website/src/docs/fast/index.md @@ -0,0 +1,40 @@ +[Sutil.Generator]: https://github.com/AngelMunoz/Shoelace.Generator +[FAST]: https://fast.design/ +[Sutil]: https://davedawkins.github.io/Sutil/ +[femto]: https://github.com/Zaid-Ajaj/Femto + +# Sutil.Fast +[![NuGet Badge](https://buildstats.info/nuget/Sutil.Fast?includePreReleases=true)](https://www.nuget.org/packages/Sutil.Fast) + +**Sutil.Fast** is a small [Sutil] wrapper built on top of [FAST] a web component library. + +**Sutil.Fast** is autogenerated thanks to the [Sutil.Generator] project. Sutil.Fast also adds some helpers to allow you interact in a seamless way with Sutil + +### Installation + +```sh +dotnet add package Sutil.Fast --version +pnpm install @microsoft/fast-components@ @microsoft/fast-foundation lodash-es # or npm install @microsoft/shoelace@ +``` +If you are using [femto] then you just need to do + +- `femto install Sutil.Fast --version ` + +# Getting Started + +- [Documentation](#/fast/docs/getting-started) +- [Components](#/fast/docs/components) + + +## Versioning +Sutil.Shoelace is built against the latest version of [Shoelace] in case there are bug fixes on the generator itself or additions for quality of life the nuget version will add a last dot and a number to indicate this was a new version of the generated package. + +Example: +- `Fast version: v1.21.6` + + **Normal Release ->** `Sutil.Fast version: v1.21.6` + +- `Fast version: v1.21.6` + **Sutil.Generator Fix/QL Update ->** `Sutil.Fast version: Fast version: v1.21.6.1` + +This is expected to be done in rare ocations when a fix or QL update really is needed, for the most part most of the QL updates will be sent with the next Shoelace release to prevent distancing from the shoelace version diff --git a/src/website/src/docs/home.md b/src/website/src/docs/home.md new file mode 100644 index 0000000..e69de29 diff --git a/src/website/src/docs/components.md b/src/website/src/docs/shoelace/components.md similarity index 100% rename from src/website/src/docs/components.md rename to src/website/src/docs/shoelace/components.md diff --git a/src/website/src/docs/elmish.md b/src/website/src/docs/shoelace/elmish.md similarity index 99% rename from src/website/src/docs/elmish.md rename to src/website/src/docs/shoelace/elmish.md index 5b12a3b..545d1e4 100644 --- a/src/website/src/docs/elmish.md +++ b/src/website/src/docs/shoelace/elmish.md @@ -1,4 +1,4 @@ -[Stores]: #/docs/stores +[Stores]: #/shoelace/docs/stores # Elmish diff --git a/src/website/src/docs/getting-started.md b/src/website/src/docs/shoelace/getting-started.md similarity index 100% rename from src/website/src/docs/getting-started.md rename to src/website/src/docs/shoelace/getting-started.md diff --git a/src/website/src/docs/index.md b/src/website/src/docs/shoelace/index.md similarity index 96% rename from src/website/src/docs/index.md rename to src/website/src/docs/shoelace/index.md index dd41dac..4dc8b5a 100644 --- a/src/website/src/docs/index.md +++ b/src/website/src/docs/shoelace/index.md @@ -1,4 +1,4 @@ -[Sutil.Generator]: https://github.com/AngelMunoz/Shoelace.Generator +[Sutil.Generator]: https://github.com/AngelMunoz/Sutil.Generator [Shoelace]: https://shoelace.style/ [Sutil]: https://davedawkins.github.io/Sutil/ [official React components]: https://shoelace.style/getting-started/usage?id=react diff --git a/src/website/src/docs/stores.md b/src/website/src/docs/shoelace/stores.md similarity index 99% rename from src/website/src/docs/stores.md rename to src/website/src/docs/shoelace/stores.md index 8046bf4..63574a0 100644 --- a/src/website/src/docs/stores.md +++ b/src/website/src/docs/shoelace/stores.md @@ -1,4 +1,4 @@ -[Elmish]: #/docs/elmish +[Elmish]: #/shoelace/docs/elmish # Stores > To check how to work with elmish check out [Elmish]