Skip to content

Commit b9ffcf3

Browse files
Migrates PWABuilder from Shoelace to WebAwesome (#6080)
Migrates PWABuilder frontend from Shoelace to WebAwesome, the newest iteration of Shoelace. ## PR Type Feature Refactoring ## Describe the current behavior? We're using Shoelace 2, which is no longer maintained. ## Describe the new behavior? We're using WebAwesome, the newest version of Shoelace. ## PR Checklist - [X] Test: run `npm run test` and ensure that all tests pass - [X] Target main branch (or an appropriate release branch if appropriate for a bug fix) - [X] Ensure that your contribution follows [standard accessibility guidelines](https://docs.microsoft.com/en-us/microsoft-edge/accessibility/design). Use tools like https://webhint.io/ to validate your changes. --------- Co-authored-by: Judah Himango <juhimang@microsoft.com>
1 parent c4bdf92 commit b9ffcf3

142 files changed

Lines changed: 11451 additions & 11285 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/copilot-instructions.md

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,31 @@
11
---
2-
description: 'Guidelines for building C# and TypeScript applications'
3-
applyTo: '**/*.cs, **/*.ts, **/*.js, **/*.css'
2+
description: "Guidelines for building C# and TypeScript applications"
3+
applyTo: "**/*.cs, **/*.ts, **/*.js, **/*.css"
44
---
55

66
# Project Context
7+
78
- This repository contains PWABuilder, a website for software developers that helps web devs create progressive web apps (PWAs) and publish them to app stores.
8-
- The main repository is for PWABuilder.com, the web app. Its code is located in `apps/pwabuilder`. It is a C# web app using ASP.NET Core. It serves a SPA frontend, located in `apps/pwabuilder/Frontend`, which is built with TypeScript, Lit, and Shoelace. The frontend uses the Vite build system. It communicates with the backend via a REST API.
9+
- The main repository is for PWABuilder.com, the web app. Its code is located in `apps/pwabuilder`. It is a C# web app using ASP.NET Core. It serves a SPA frontend, located in `apps/pwabuilder/Frontend`, which is built with TypeScript, Lit, and WebAwesome. The frontend uses the Vite build system. It communicates with the backend via a REST API.
910
- The repository also contains some PWABuilder-related tooling. For example, `/apps/cli` contains the PWABuilder command line app, `/apps/pwabuilder-vscode` contains VSCode tooling for PWABuilder, `/docs` contains the documentation web site (docs.pwabuilder.com) for PWABuilder.
1011
- Frontend is built with Typescript for type safety
1112
- Frontend uses Lit web components for custom elements and SPA pages.
12-
- Frontend uses the extrnal Shoelace library for prebuilt, styled components.
13+
- Frontend uses the extrnal [WebAwesome library](https://webawesome.com/docs) for prebuilt, styled components.
1314

1415
## Typescript Development
16+
1517
- Enable strict mode in tsconfig.json for maximum type safety
1618
- Define types for method returns
1719
- Implement generic components and composables where applicable
1820
- New web components should inherit from LitElement
19-
- Where possible, prefer to use existing web components from the Shoelace library
21+
- Where possible, prefer to use existing web components from the [WebAwesome library](https://webawesome.com/docs/components)
2022
- Adhere to the single responsibility principle for components
2123
- For TypeScript files, use kebab-case for file names.
2224
- For custom web components built with Lit, keep them small and focused on one concern.
2325
- All TypeScript classes should be PascalCase.
2426

2527
## C# Development
28+
2629
- When writing C#, always use the latest version C#, currently C# 13 features.
2730
- Write clear and concise comments for each function.
2831
- Use file-scoped namespaces and single-line using directives.
@@ -42,10 +45,11 @@ applyTo: '**/*.cs, **/*.ts, **/*.js, **/*.css'
4245
- Do not use LINQ query syntax (e.g. `from x in y select x`). Always prefer LINQ method syntax (`.Select()`, `.Where()`, ...) for consistency and clarity.
4346
- Do not insert more than one consecutive empty line, keep whitespace intentional and minimal.
4447
- Avoid excessive comments. Only add comments when the logic is non-obvious or complex — clean code should explain itself.
45-
- All constructors, methods, events and properties must include XML documentation to support maintainability and developer tooling.
48+
- All constructors, methods, events and properties must include XML documentation to support maintainability and developer tooling.
4649
- When the XML documentation is already defined in an interface or base class, use only `/// <inheritdoc/>` to inherit the documentation instead of duplicating it.
4750

4851
## General Instructions
52+
4953
- Make only high confidence suggestions when reviewing code changes.
5054
- Write code with good maintainability practices, including comments on why certain design decisions were made.
5155
- Handle edge cases and write clear exception handling.
@@ -70,4 +74,4 @@ applyTo: '**/*.cs, **/*.ts, **/*.js, **/*.css'
7074
- Explain integration testing approaches for API endpoints.
7175
- Demonstrate how to mock dependencies for effective testing.
7276
- Show how to test authentication and authorization logic.
73-
- Explain test-driven development principles as applied to API development.
77+
- Explain test-driven development principles as applied to API development.

.github/workflows/deploy-pwabuilder-to-preview.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
name: Deploy PWABuilder web app to staging
22

33
on:
4-
push:
4+
pull_request:
55
branches: [main]
6+
types: [opened, synchronize, reopened]
67
paths:
78
- "apps/pwabuilder/**"
89
- "Dockerfile.production"

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -388,3 +388,4 @@ test-results/
388388

389389
# Ingore service worker in wwwroot, as it's generated by the build. The real service worker is in /apps/pwabuilder/frontend/public/service-worker.js.
390390
apps/pwabuilder/wwwroot/service-worker.js
391+
.spiderloop/

apps/blog/src/docs/windows/finding-publisher-info/finding-your-windows-publisher-info.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ In order to publish your PWA in the Microsoft Store, you'll need 3 things:
2424
2. `Publisher ID`
2525
3. `Publisher display name`
2626

27-
To get this information, go to [Windows Partner Center](https://partner.microsoft.com/dashboard) and click on your app. (Don't have an app yet? [Create one](/docs/publish-a-new-app-to-the-microsoft-store/).)
27+
To get this information, go to [Microsoft Partner Center](https://partner.microsoft.com/dashboard) and click on your app. (Don't have an app yet? [Create one](/docs/publish-a-new-app-to-the-microsoft-store/).)
2828

2929
Choose `Product Management` -> `Product Identity`:
3030

apps/blog/src/docs/windows/image-recommendations/image-recommendations-for-windows.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ Shown in the start menu when the user sets your app's tile to large size.
238238
### Store logo
239239
<img loading="lazy" alt="The store logo icon" src="/docs/windows/image-recommendations/windows-image-store-logo.png" />
240240

241-
Shown in app installer, Windows Partner Center, the "Report an app" option in the Store, and the "Write a review" option in the Store.
241+
Shown in app installer, Microsoft Partner Center, the "Report an app" option in the Store, and the "Write a review" option in the Store.
242242

243243
- 50x50
244244
- 63x63 (1.25x scale)

apps/blog/src/docs/windows/next-steps/next-steps.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,10 @@ Your zip file [contains 2 app packages](/docs/what-is-a-classic-package/):
4646
- `{app name}.msixbundle` - the main app package
4747
- `{app name}.classic.appxbundle` - app package that allows users on older versions of Windows (below 10.0.19041, May 2020 Update) to run your app. See our [classic app package explainer](/docs/what-is-a-classic-package/) for details.
4848

49-
Both packages can be submitted directly to the Microsoft Store through the [Windows Partner Center](https://partner.microsoft.com/dashboard)
49+
Both packages can be submitted directly to the Microsoft Store through the [Microsoft Partner Center](https://partner.microsoft.com/dashboard)
5050

5151
When you're ready to publish to the Store, you can either
52+
5253
- [Publish a new app in the Store](/docs/publish-a-new-app-to-the-microsoft-store/)
5354
- [Update an existing app in the Store](/docs/update-an-existing-app-in-the-microsoft-store/)
5455

apps/blog/src/docs/windows/publish-new-windows-app/publish-new-windows-app.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ This guide shows how to publish your PWA as a new app in the Store. If you alrea
2222

2323
## Enroll in Windows developer program
2424

25-
Login to [Windows Partner Center](https://partner.microsoft.com/dashboard) with your Microsoft account.
25+
Login to [Microsoft Partner Center](https://partner.microsoft.com/dashboard) with your Microsoft account.
2626

2727
Then, go to your [dashboard](https://partner.microsoft.com/en-us/dashboard/home) to see your enrolled programs. If `Windows & Xbox` is listed, great, you're already enrolled. If not, choose `Add program`: <br> <img loading="lazy" alt="A screenshot that shows where the add program button is" src="/docs/windows/publish-new-windows-app/add-program.png" width="350px" />
2828

apps/blog/src/docs/windows/update-existing-app/update-an-existing-app.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ This guide shows how to publish your PWA as an update to an existing app in the
2222

2323
## Choose the app you want to update
2424

25-
Login to [Windows Partner Center](https://partner.microsoft.com/dashboard), then go to `Windows & Xbox` -> `Overview`. Your existing apps will be listed:
25+
Login to [Microsoft Partner Center](https://partner.microsoft.com/dashboard), then go to `Windows & Xbox` -> `Overview`. Your existing apps will be listed:
2626

2727
<img loading="lazy" alt="A screenshot that shows your existing apps list" src="/docs/windows/update-existing-app/existing-apps.png" width="350px" />
2828

apps/blog/src/docs/windows/windows-store-documentation/windows-store-documentation.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ Both the Microsoft Store and Windows itself natively supports PWAs as first-clas
2626

2727
Follow these steps to get your PWA listed in the Microsoft Store:
2828

29-
1. Reserve an app name in the [Windows Partner Center](https://partner.microsoft.com/dashboard) as explained in this documentation [Publish your Progressive Web App to the Microsoft Store](https://docs.microsoft.com/en-us/microsoft-edge/progressive-web-apps-chromium/how-to/microsoft-store)
29+
1. Reserve an app name in the [Microsoft Partner Center](https://partner.microsoft.com/dashboard) as explained in this documentation [Publish your Progressive Web App to the Microsoft Store](https://docs.microsoft.com/en-us/microsoft-edge/progressive-web-apps-chromium/how-to/microsoft-store)
3030
2. Create your Microsoft Store app package on [PWA Builder](https://www.pwabuilder.com)
3131
3. Follow [the Next steps for getting your PWA into the Microsoft Store](/docs/next-steps-for-getting-your-pwa-into-the-microsoft-store/)
3232

0 commit comments

Comments
 (0)