diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
index 423d5124d..af8a9b3d4 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -1,38 +1,36 @@
---
name: Bug Report
-about: Create a report to help us improve.
+about: Create a bug report to help us fix a demonstrable problem with code in the library.
title: ''
labels: bug
assignees: claviska
---
-**Describe the bug**
-A clear and concise description of what the bug is.
+### Describe the bug
+A bug is _a demonstrable problem_ caused by code in the library. Please provide a clear and concise description of what the bug is here.
-**To Reproduce**
+### To Reproduce
Steps to reproduce the behavior:
+
1. Go to '...'
-2. Click on '....'
-3. Scroll down to '....'
+2. Click on '...'
+3. Scroll down to '...'
4. See error
-**Expected behavior**
-A clear and concise description of what you expected to happen.
+### Demo
-**Screenshots**
-If applicable, add screenshots to help explain your problem.
+If the bug isn't obvious, please provide a link to a CodePen or Fiddle with a minimal reproduction. Bugs that have repros get attention faster than those that don't.
-**Desktop (please complete the following information):**
- - OS: [e.g. iOS]
- - Browser [e.g. chrome, safari]
- - Version [e.g. 22]
+Tip: use the CodePen button on any example in the docs!
-**Smartphone (please complete the following information):**
- - Device: [e.g. iPhone6]
- - OS: [e.g. iOS8.1]
- - Browser [e.g. stock browser, safari]
- - Version [e.g. 22]
+### Screenshots
+If applicable, add screenshots to help explain the bug.
-**Additional context**
-Add any other context about the problem here.
+### Browser / OS
+ - OS: [e.g. Mac, Windows]
+ - Browser [e.g. Chrome, Firefox, Safari]
+ - Browser version [e.g. 22]
+
+### Additional information
+Provide any additional information about the bug here.
diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md
index c19268892..1f020ff74 100644
--- a/.github/ISSUE_TEMPLATE/feature_request.md
+++ b/.github/ISSUE_TEMPLATE/feature_request.md
@@ -7,14 +7,11 @@ assignees: claviska
---
-**Is your feature request related to a problem? Please describe.**
-A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
+### What issue are you having?
+Provide a clear and concise description of the problem you're facing.
-**Describe the solution you'd like**
-A clear and concise description of what you want to happen.
+### Describe the solution you'd like
+How would you like to see the library solve it?
-**Describe alternatives you've considered**
-A clear and concise description of any alternative solutions or features you've considered.
-
-**Additional context**
-Add any other context or screenshots about the feature request here.
+### Describe alternatives you've considered
+In what ways have you tried to solve this with the current version?
diff --git a/.github/workflows/node.js.yml b/.github/workflows/node.js.yml
new file mode 100644
index 000000000..0259d04ed
--- /dev/null
+++ b/.github/workflows/node.js.yml
@@ -0,0 +1,31 @@
+# This workflow will do a clean install of node dependencies, cache/restore them, build the source code and run tests across different versions of node
+# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
+
+name: Node.js CI
+
+on:
+ push:
+ branches: [ next ]
+ pull_request:
+ branches: [ next ]
+
+jobs:
+ build:
+
+ runs-on: ubuntu-latest
+
+ strategy:
+ matrix:
+ node-version: [14.x, 16.x]
+ # See supported Node.js release schedule at https://nodejs.org/en/about/releases/
+
+ steps:
+ - uses: actions/checkout@v2
+ - name: Use Node.js ${{ matrix.node-version }}
+ uses: actions/setup-node@v2
+ with:
+ node-version: ${{ matrix.node-version }}
+ cache: 'npm'
+ - run: npm ci
+ - run: npm run build --if-present
+ - run: npm test
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
new file mode 100644
index 000000000..7449ea906
--- /dev/null
+++ b/.github/workflows/release.yml
@@ -0,0 +1,17 @@
+# This workflow will create a GitHub release every time a tag is pushed
+name: Create GitHub Release
+
+on:
+ push:
+ tags:
+ - "v2.*"
+ - "v3.*"
+
+jobs:
+ release:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: "marvinpinto/action-automatic-releases@v1.2.1"
+ with:
+ repo_token: "${{ secrets.GITHUB_TOKEN }}"
+ prerelease: false
diff --git a/.gitignore b/.gitignore
index c4f61d9a5..09e622f0e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,7 @@
.DS_Store
.cache
docs/dist
+docs/search.json
dist
examples
node_modules
diff --git a/README.md b/README.md
index 95f64cd92..08eded6ba 100644
--- a/README.md
+++ b/README.md
@@ -23,7 +23,7 @@ Twitter: [@shoelace_style](https://twitter.com/shoelace_style)
## Shoemakers 🥾
-Shoemakers, or "Shoelace developers," can use this documentation to learn how to build Shoelace from source. You will need Node >= 12.10.0 to build and run the project locally.
+Shoemakers, or "Shoelace developers," can use this documentation to learn how to build Shoelace from source. You will need Node >= 14 to build and run the project locally. It is preferred, but not required, to use npm 7.
**You don't need to do any of this to use Shoelace!** This page is for people who want to contribute to the project, tinker with the source, or create a custom build of Shoelace.
diff --git a/custom-elements-manifest.config.js b/custom-elements-manifest.config.js
index 0d4be0ff4..1d6286446 100644
--- a/custom-elements-manifest.config.js
+++ b/custom-elements-manifest.config.js
@@ -3,6 +3,7 @@ import commentParser from 'comment-parser';
const packageData = JSON.parse(fs.readFileSync('./package.json', 'utf8'));
const { name, description, version, author, homepage, license } = packageData;
+const noDash = string => string.replace(/^\s?-/, '').trim();
export default {
globs: ['src/components/**/*.ts'],
@@ -47,7 +48,7 @@ export default {
}
classDoc['animations'].push({
name: t.name,
- description: t.description
+ description: noDash(t.description)
});
break;
diff --git a/docs/404.md b/docs/404.md
index 3d4de0e7a..822aef5f0 100644
--- a/docs/404.md
+++ b/docs/404.md
@@ -1,3 +1,5 @@
# Not Found
-Sorry, I couldn't find that page.
+
+
+Sorry, I couldn't find that page. Have you tried pressing / to search?
diff --git a/docs/_sidebar.md b/docs/_sidebar.md
index fc45b2676..73aff9306 100644
--- a/docs/_sidebar.md
+++ b/docs/_sidebar.md
@@ -2,8 +2,8 @@
- [Overview](/)
- [Installation](/getting-started/installation)
- [Usage](/getting-started/usage)
- - [Customizing](/getting-started/customizing)
- [Themes](/getting-started/themes)
+ - [Customizing](/getting-started/customizing)
- Resources
- [Community](/resources/community)
@@ -14,6 +14,8 @@
- [Alert](/components/alert)
- [Avatar](/components/avatar)
- [Badge](/components/badge)
+ - [Breadcrumb](/components/breadcrumb)
+ - [Breadcrumb Item](/components/breadcrumb-item)
- [Button](/components/button)
- [Button Group](/components/button-group)
- [Card](/components/card)
@@ -21,6 +23,7 @@
- [Color Picker](/components/color-picker)
- [Details](/components/details)
- [Dialog](/components/dialog)
+ - [Divider](/components/divider)
- [Drawer](/components/drawer)
- [Dropdown](/components/dropdown)
- [Form](/components/form)
@@ -29,11 +32,11 @@
- [Image Comparer](/components/image-comparer)
- [Input](/components/input)
- [Menu](/components/menu)
- - [Menu Divider](/components/menu-divider)
- [Menu Item](/components/menu-item)
- [Menu Label](/components/menu-label)
- [Progress Bar](/components/progress-bar)
- [Progress Ring](/components/progress-ring)
+ - [QR Code](/components/qr-code)
- [Radio](/components/radio)
- [Radio Group](/components/radio-group)
- [Range](/components/range)
@@ -56,7 +59,7 @@
- [Format Date](/components/format-date)
- [Format Number](/components/format-number)
- [Include](/components/include)
- - [QR Code](/components/qr-code)
+ - [Mutation Observer](/components/mutation-observer)
- [Relative Time](/components/relative-time)
- [Resize Observer](/components/resize-observer)
- [Responsive Media](/components/responsive-media)
diff --git a/docs/assets/images/logo.svg b/docs/assets/images/logo.svg
index 287cd79a8..6d15ad28a 100644
--- a/docs/assets/images/logo.svg
+++ b/docs/assets/images/logo.svg
@@ -1,6 +1,6 @@
\ No newline at end of file
+
diff --git a/docs/assets/images/undraw-not-found.svg b/docs/assets/images/undraw-not-found.svg
new file mode 100644
index 000000000..aea1d5053
--- /dev/null
+++ b/docs/assets/images/undraw-not-found.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/docs/assets/images/wordmark.svg b/docs/assets/images/wordmark.svg
index b03918ae9..f853ed3ea 100644
--- a/docs/assets/images/wordmark.svg
+++ b/docs/assets/images/wordmark.svg
@@ -1,6 +1,6 @@