diff --git a/.github/README.md b/.github/README.md index 08aaa35d..2faeeb43 100644 --- a/.github/README.md +++ b/.github/README.md @@ -207,17 +207,17 @@ So, in order to let each one shine, I have I have built real-world apps in each | Project | Framework | GitHub | Website | |---|---|---|---| -| [ Web Check](https://github.com/Lissy93/web-check) - All-in-one OSINT tool for analyzing any site | [![React](https://img.shields.io/static/v1?label=&message=React&color=61DAFB&logo=react&logoColor=FFFFFF)](https://react.dev/) | [![GitHub Repo stars](https://img.shields.io/github/stars/Lissy93/web-check)](https://github.com/Lissy93/web-check) | [🌐 web-check.xyz](https://web-check.xyz) | -| [ Dashy](https://github.com/Lissy93/dashy) - Highly configurable self-hostable server dashboard | [![Vue.js](https://img.shields.io/static/v1?label=&message=Vue.js&color=4FC08D&logo=vuedotjs&logoColor=FFFFFF)](https://vuejs.org/) | [![GitHub Repo stars](https://img.shields.io/github/stars/Lissy93/dashy)](https://github.com/Lissy93/dashy) | [🌐 dashy.to](https://dashy.to) | -| [ Digital Defense](https://github.com/Lissy93/personal-security-checklist) - Interactive personal security checklist | [![Qwik](https://img.shields.io/static/v1?label=&message=Qwik&color=ac7ef4&logo=qwik&logoColor=FFFFFF)](https://qwik.builder.io/) | [![GitHub Repo stars](https://img.shields.io/github/stars/Lissy93/personal-security-checklist)](https://github.com/Lissy93/personal-security-checklist) | [🌐 digital-defense.io](https://digital-defense.io) | -| [ Portainer Templates](https://github.com/Lissy93/portainer-templates) - Automated Docker deployment specs | [![Svelte](https://img.shields.io/static/v1?label=&message=Svelte&color=ff3e00&logo=svelte&logoColor=FFFFFF)](https://svelte.dev/) | [![GitHub Repo stars](https://img.shields.io/github/stars/Lissy93/portainer-templates)](https://github.com/Lissy93/portainer-templates) | [🌐 portainer-templates](https://portainer-templates.as93.net/) | -| [ Domain Locker](https://github.com/Lissy93/domain-locker) - Domain name portfolio manager | [![Angular](https://img.shields.io/static/v1?label=&message=Angular&color=DD0031&logo=angular&logoColor=FFFFFF)](https://angular.io/) | [![GitHub Repo stars](https://img.shields.io/github/stars/Lissy93/domain-locker)](https://github.com/Lissy93/domain-locker) | [🌐 domain-locker.com](https://domain-locker.com) | -| [ Email Comparison](https://github.com/Lissy93/email-comparison) - Objective testing of mail providers | [![Lit](https://img.shields.io/static/v1?label=&message=Lit&color=00ffff&logo=lit&logoColor=FFFFFF)](https://lit.dev/) | [![GitHub Repo stars](https://img.shields.io/github/stars/Lissy93/email-comparison)](https://github.com/Lissy93/email-comparison) | [🌐 email-comparison](https://email-comparison.as93.net/) | -| [ Who Dat](https://github.com/Lissy93/who-dat) - WHOIS lookup for domain registration info | [![Alpine.js](https://img.shields.io/static/v1?label=&message=Alpine.js&color=8BC0D0&logo=alpinedotjs&logoColor=FFFFFF)](https://alpinejs.dev/) | [![GitHub Repo stars](https://img.shields.io/github/stars/Lissy93/who-dat)](https://github.com/Lissy93/who-dat) | [🌐 who-dat.as93.net](https://who-dat.as93.net) | -| [ Chief Snack Officer](https://github.com/Lissy93/cso) - Office snack management app | [![Solid](https://img.shields.io/static/v1?label=&message=Solid&color=2C4F7C&logo=solid&logoColor=FFFFFF)](https://www.solidjs.com/) | [![GitHub Repo stars](https://img.shields.io/github/stars/Lissy93/cso)](https://github.com/Lissy93/cso) | [🌐 N/A](https://lissy93.github.io/cso) | -| [ Awesome Privacy](https://github.com/Lissy93/awesome-privacy) - Curated directory of respectful apps | [![Astro](https://img.shields.io/static/v1?label=&message=Astro&color=E83CB9&logo=astro&logoColor=FFFFFF)](https://astro.build/) | [![GitHub Repo stars](https://img.shields.io/github/stars/Lissy93/awesome-privacy)](https://github.com/Lissy93/awesome-privacy) | [🌐 awesome-privacy.xyz](https://awesome-privacy.xyz/) | -| [ RAID Calculator](https://github.com/Lissy93/raid-calculator) - RAID array capacity and fault tolerance | [![Van.js](https://img.shields.io/static/v1?label=&message=Van.js&color=F44336&logo=vitess&logoColor=FFFFFF)](https://vanjs.org/) | [![GitHub Repo stars](https://img.shields.io/github/stars/Lissy93/raid-calculator)](https://github.com/Lissy93/raid-calculator) | [🌐 raid-calculator](https://raid-calculator.as93.net/) | -| [ Permissionator](https://github.com/Lissy93/permissionator) - Generating Linux file permissions | [![Marko](https://img.shields.io/static/v1?label=&message=Marko&color=2596BE&logo=marko&logoColor=FFFFFF)](https://markojs.com/) | [![GitHub Repo stars](https://img.shields.io/github/stars/Lissy93/permissionator)](https://github.com/Lissy93/permissionator) | [🌐 permissionator](https://permissionator.as93.net) | +| [ Web Check](https://github.com/Lissy93/web-check) - All-in-one OSINT tool for analyzing any site | [![React](https://img.shields.io/static/v1?label=&message=React&color=61DAFB&logo=react&logoColor=FFFFFF)](https://react.dev/) | [![GitHub Repo stars](https://img.shields.io/github/stars/Lissy93/web-check)](https://github.com/Lissy93/web-check) | [🌐 web-check.xyz](https://web-check.xyz) | +| [ Dashy](https://github.com/Lissy93/dashy) - Highly configurable self-hostable server dashboard | [![Vue.js](https://img.shields.io/static/v1?label=&message=Vue.js&color=4FC08D&logo=vuedotjs&logoColor=FFFFFF)](https://vuejs.org/) | [![GitHub Repo stars](https://img.shields.io/github/stars/Lissy93/dashy)](https://github.com/Lissy93/dashy) | [🌐 dashy.to](https://dashy.to) | +| [ Digital Defense](https://github.com/Lissy93/personal-security-checklist) - Interactive personal security checklist | [![Qwik](https://img.shields.io/static/v1?label=&message=Qwik&color=ac7ef4&logo=qwik&logoColor=FFFFFF)](https://qwik.builder.io/) | [![GitHub Repo stars](https://img.shields.io/github/stars/Lissy93/personal-security-checklist)](https://github.com/Lissy93/personal-security-checklist) | [🌐 digital-defense.io](https://digital-defense.io) | +| [ Networking Toolbox](https://github.com/Lissy93/networking-toolbox) - 100+ offline-first networking tools for sysadmins | [![Svelte](https://img.shields.io/static/v1?label=&message=Svelte&color=ff3e00&logo=svelte&logoColor=FFFFFF)](https://svelte.dev/) | [![GitHub Repo stars](https://img.shields.io/github/stars/Lissy93/networking-toolbox)](https://github.com/Lissy93/networking-toolbox) | [🌐 networkingtoolbox.net](https://networkingtoolbox.net/) | +| [ Domain Locker](https://github.com/Lissy93/domain-locker) - Domain name portfolio manager | [![Angular](https://img.shields.io/static/v1?label=&message=Angular&color=DD0031&logo=angular&logoColor=FFFFFF)](https://angular.io/) | [![GitHub Repo stars](https://img.shields.io/github/stars/Lissy93/domain-locker)](https://github.com/Lissy93/domain-locker) | [🌐 domain-locker.com](https://domain-locker.com) | +| [ Email Comparison](https://github.com/Lissy93/email-comparison) - Objective testing of mail providers | [![Lit](https://img.shields.io/static/v1?label=&message=Lit&color=00ffff&logo=lit&logoColor=FFFFFF)](https://lit.dev/) | [![GitHub Repo stars](https://img.shields.io/github/stars/Lissy93/email-comparison)](https://github.com/Lissy93/email-comparison) | [🌐 email-comparison](https://email-comparison.as93.net/) | +| [ Who Dat](https://github.com/Lissy93/who-dat) - WHOIS lookup for domain registration info | [![Alpine.js](https://img.shields.io/static/v1?label=&message=Alpine.js&color=8BC0D0&logo=alpinedotjs&logoColor=FFFFFF)](https://alpinejs.dev/) | [![GitHub Repo stars](https://img.shields.io/github/stars/Lissy93/who-dat)](https://github.com/Lissy93/who-dat) | [🌐 who-dat.as93.net](https://who-dat.as93.net) | +| [ Chief Snack Officer](https://github.com/Lissy93/cso) - Office snack management app | [![Solid](https://img.shields.io/static/v1?label=&message=Solid&color=2C4F7C&logo=solid&logoColor=FFFFFF)](https://www.solidjs.com/) | [![GitHub Repo stars](https://img.shields.io/github/stars/Lissy93/cso)](https://github.com/Lissy93/cso) | [🌐 N/A](https://lissy93.github.io/cso) | +| [ Awesome Privacy](https://github.com/Lissy93/awesome-privacy) - Curated directory of respectful apps | [![Astro](https://img.shields.io/static/v1?label=&message=Astro&color=E83CB9&logo=astro&logoColor=FFFFFF)](https://astro.build/) | [![GitHub Repo stars](https://img.shields.io/github/stars/Lissy93/awesome-privacy)](https://github.com/Lissy93/awesome-privacy) | [🌐 awesome-privacy.xyz](https://awesome-privacy.xyz/) | +| [ RAID Calculator](https://github.com/Lissy93/raid-calculator) - RAID array capacity and fault tolerance | [![Van.js](https://img.shields.io/static/v1?label=&message=Van.js&color=F44336&logo=vitess&logoColor=FFFFFF)](https://vanjs.org/) | [![GitHub Repo stars](https://img.shields.io/github/stars/Lissy93/raid-calculator)](https://github.com/Lissy93/raid-calculator) | [🌐 raid-calculator](https://raid-calculator.as93.net/) | +| [ Permissionator](https://github.com/Lissy93/permissionator) - Generating Linux file permissions | [![Marko](https://img.shields.io/static/v1?label=&message=Marko&color=2596BE&logo=marko&logoColor=FFFFFF)](https://markojs.com/) | [![GitHub Repo stars](https://img.shields.io/github/stars/Lissy93/permissionator)](https://github.com/Lissy93/permissionator) | [🌐 permissionator](https://permissionator.as93.net) | --- @@ -241,19 +241,19 @@ Each app gets built and tested to ensure that it is functional, compliant with t | App | Build | Test | Lint | |---|---|---|---| -| React | ![React Build Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/badges/build-react.svg) | ![React Test Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/badges/test-react.svg) | ![React Lint Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/badges/lint-react.svg) | -| Angular | ![Angular Build Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/badges/build-angular.svg) | ![Angular Test Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/badges/test-angular.svg) | ![Angular Lint Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/badges/lint-angular.svg) | -| Svelte | ![Svelte Build Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/badges/build-svelte.svg) | ![Svelte Test Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/badges/test-svelte.svg) | ![Svelte Lint Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/badges/lint-svelte.svg) | -| Preact | ![Preact Build Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/badges/build-preact.svg) | ![Preact Test Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/badges/test-preact.svg) | ![Preact Lint Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/badges/lint-preact.svg) | -| Solid.js | ![Solid.js Build Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/badges/build-solid.svg) | ![Solid.js Test Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/badges/test-solid.svg) | ![Solid.js Lint Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/badges/lint-solid.svg) | -| Qwik | ![Qwik Build Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/badges/build-qwik.svg) | ![Qwik Test Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/badges/test-qwik.svg) | ![Qwik Lint Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/badges/lint-qwik.svg) | -| Vue 3 | ![Vue 3 Build Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/badges/build-vue.svg) | ![Vue 3 Test Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/badges/test-vue.svg) | ![Vue 3 Lint Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/badges/lint-vue.svg) | -| jQuery | ![jQuery Build Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/badges/build-jquery.svg) | ![jQuery Test Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/badges/test-jquery.svg) | ![jQuery Lint Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/badges/lint-jquery.svg) | -| Alpine.js | ![Alpine.js Build Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/badges/build-alpine.svg) | ![Alpine.js Test Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/badges/test-alpine.svg) | ![Alpine.js Lint Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/badges/lint-alpine.svg) | -| Lit | ![Lit Build Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/badges/build-lit.svg) | ![Lit Test Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/badges/test-lit.svg) | ![Lit Lint Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/badges/lint-lit.svg) | -| VanJS | ![VanJS Build Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/badges/build-vanjs.svg) | ![VanJS Test Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/badges/test-vanjs.svg) | ![VanJS Lint Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/badges/lint-vanjs.svg) | -| Lume.js | ![Lume.js Build Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/badges/build-lume-js.svg) | ![Lume.js Test Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/badges/test-lume-js.svg) | ![Lume.js Lint Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/badges/lint-lume-js.svg) | -| Vanilla JavaScript | ![Vanilla JavaScript Build Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/badges/build-vanilla.svg) | ![Vanilla JavaScript Test Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/badges/test-vanilla.svg) | ![Vanilla JavaScript Lint Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/badges/lint-vanilla.svg) | +| React | ![React Build Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/refs/heads/badges/build-react.svg) | ![React Test Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/refs/heads/badges/test-react.svg) | ![React Lint Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/refs/heads/badges/lint-react.svg) | +| Angular | ![Angular Build Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/refs/heads/badges/build-angular.svg) | ![Angular Test Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/refs/heads/badges/test-angular.svg) | ![Angular Lint Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/refs/heads/badges/lint-angular.svg) | +| Svelte | ![Svelte Build Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/refs/heads/badges/build-svelte.svg) | ![Svelte Test Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/refs/heads/badges/test-svelte.svg) | ![Svelte Lint Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/refs/heads/badges/lint-svelte.svg) | +| Preact | ![Preact Build Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/refs/heads/badges/build-preact.svg) | ![Preact Test Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/refs/heads/badges/test-preact.svg) | ![Preact Lint Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/refs/heads/badges/lint-preact.svg) | +| Solid.js | ![Solid.js Build Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/refs/heads/badges/build-solid.svg) | ![Solid.js Test Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/refs/heads/badges/test-solid.svg) | ![Solid.js Lint Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/refs/heads/badges/lint-solid.svg) | +| Qwik | ![Qwik Build Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/refs/heads/badges/build-qwik.svg) | ![Qwik Test Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/refs/heads/badges/test-qwik.svg) | ![Qwik Lint Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/refs/heads/badges/lint-qwik.svg) | +| Vue 3 | ![Vue 3 Build Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/refs/heads/badges/build-vue.svg) | ![Vue 3 Test Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/refs/heads/badges/test-vue.svg) | ![Vue 3 Lint Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/refs/heads/badges/lint-vue.svg) | +| jQuery | ![jQuery Build Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/refs/heads/badges/build-jquery.svg) | ![jQuery Test Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/refs/heads/badges/test-jquery.svg) | ![jQuery Lint Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/refs/heads/badges/lint-jquery.svg) | +| Alpine.js | ![Alpine.js Build Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/refs/heads/badges/build-alpine.svg) | ![Alpine.js Test Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/refs/heads/badges/test-alpine.svg) | ![Alpine.js Lint Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/refs/heads/badges/lint-alpine.svg) | +| Lit | ![Lit Build Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/refs/heads/badges/build-lit.svg) | ![Lit Test Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/refs/heads/badges/test-lit.svg) | ![Lit Lint Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/refs/heads/badges/lint-lit.svg) | +| VanJS | ![VanJS Build Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/refs/heads/badges/build-vanjs.svg) | ![VanJS Test Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/refs/heads/badges/test-vanjs.svg) | ![VanJS Lint Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/refs/heads/badges/lint-vanjs.svg) | +| Lume.js | ![Lume.js Build Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/refs/heads/badges/build-lume-js.svg) | ![Lume.js Test Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/refs/heads/badges/test-lume-js.svg) | ![Lume.js Lint Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/refs/heads/badges/lint-lume-js.svg) | +| Vanilla JavaScript | ![Vanilla JavaScript Build Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/refs/heads/badges/build-vanilla.svg) | ![Vanilla JavaScript Test Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/refs/heads/badges/test-vanilla.svg) | ![Vanilla JavaScript Lint Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/refs/heads/badges/lint-vanilla.svg) | --- diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 4afc8e4d..c827cefa 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -266,7 +266,7 @@ jobs: badges: name: Update Lint Badges needs: [setup, lint] - if: always() + if: ${{ always() && github.event_name != 'pull_request' }} runs-on: ubuntu-latest continue-on-error: true steps: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index f422241e..dd15d864 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -431,7 +431,7 @@ jobs: badges: name: Update Test Badges needs: [setup, test] - if: always() + if: ${{ always() && github.event_name != 'pull_request' }} runs-on: ubuntu-latest continue-on-error: true steps: diff --git a/apps/alpine/README.md b/apps/alpine/README.md index 651c6500..858ae9b3 100644 --- a/apps/alpine/README.md +++ b/apps/alpine/README.md @@ -110,7 +110,7 @@ For simple interactive websites, Alpine hits the sweet spot. You get modern reac ## Real-World App Since the weather app is very simple, it may be helpful to see a more practical implementation of a Alpine.js app. So, checkout: - + > **Who Dat** - _WHOIS lookup for domain registration info_
> 🐙 Get it on GitHub at [github.com/Lissy93/who-dat](https://github.com/Lissy93/who-dat)
diff --git a/apps/angular/README.md b/apps/angular/README.md index be7e8520..f9f3ddcd 100644 --- a/apps/angular/README.md +++ b/apps/angular/README.md @@ -110,7 +110,7 @@ For a simple weather app, we really didn't need any of Angular's big or flagship ## Real-World App Since the weather app is very simple, it may be helpful to see a more practical implementation of a Angular app. So, checkout: - + > **Domain Locker** - _Domain name portfolio manager_
> 🐙 Get it on GitHub at [github.com/Lissy93/domain-locker](https://github.com/Lissy93/domain-locker)
diff --git a/apps/lit/README.md b/apps/lit/README.md index b3b18f07..256e199d 100644 --- a/apps/lit/README.md +++ b/apps/lit/README.md @@ -109,7 +109,7 @@ But Lit really does shine for design systems and component libraries where you n ## Real-World App Since the weather app is very simple, it may be helpful to see a more practical implementation of a Lit app. So, checkout: - + > **Email Comparison** - _An objective comparison of privacy-respecting email providers_
> 🐙 Get it on GitHub at [github.com/Lissy93/email-comparison](https://github.com/Lissy93/email-comparison)
diff --git a/apps/lit/src/forecast-item.js b/apps/lit/src/forecast-item.js index cfb71eae..e1ddf2e8 100644 --- a/apps/lit/src/forecast-item.js +++ b/apps/lit/src/forecast-item.js @@ -3,7 +3,6 @@ import { WeatherUtils } from './weather-utils.js'; import { designSystemStyles, baseStyles, componentStyles } from './shared-styles.js'; export class ForecastItem extends LitElement { - // eslint-disable-next-line static styles = [ designSystemStyles, baseStyles, @@ -15,7 +14,6 @@ export class ForecastItem extends LitElement { ` ]; - // eslint-disable-next-line static properties = { forecastData: { type: Object }, index: { type: Number }, @@ -32,7 +30,7 @@ export class ForecastItem extends LitElement { } render() { - if (!this.forecastData) return html``; + if (!this.forecastData) {return html``;} const { daily, index } = this; const dayName = WeatherUtils.formatDate(daily.time[index]); @@ -134,7 +132,7 @@ export class ForecastItem extends LitElement { updated(changedProperties) { super.updated(changedProperties); - + if (changedProperties.has('active') && this.active) { // Smooth scroll to the expanded item setTimeout(() => { @@ -144,4 +142,4 @@ export class ForecastItem extends LitElement { } } -customElements.define('forecast-item', ForecastItem); \ No newline at end of file +customElements.define('forecast-item', ForecastItem); diff --git a/apps/lit/src/shared-styles.js b/apps/lit/src/shared-styles.js index de0355a0..51babaf7 100644 --- a/apps/lit/src/shared-styles.js +++ b/apps/lit/src/shared-styles.js @@ -519,4 +519,4 @@ export const componentStyles = css` grid-template-columns: 1fr; } } -`; \ No newline at end of file +`; diff --git a/apps/lit/src/weather-app.js b/apps/lit/src/weather-app.js index bd6fad22..53236471 100644 --- a/apps/lit/src/weather-app.js +++ b/apps/lit/src/weather-app.js @@ -5,7 +5,6 @@ import './weather-search.js'; import './weather-display.js'; export class WeatherApp extends LitElement { - // eslint-disable-next-line static styles = [ designSystemStyles, baseStyles, @@ -23,7 +22,6 @@ export class WeatherApp extends LitElement { ` ]; - // eslint-disable-next-line static properties = { _searchQuery: { state: true }, _isLoading: { state: true }, @@ -100,7 +98,7 @@ export class WeatherApp extends LitElement { try { this._setLoading(true); this._clearError(); - + this._weatherData = await this._weatherService.getWeatherByCity(city); this._saveLocation(city); this._showWeatherContent(); @@ -142,16 +140,16 @@ export class WeatherApp extends LitElement { } navigator.geolocation.getCurrentPosition( - async (position) => { + async(position) => { try { this._setLoading(true); this._clearError(); - + const { latitude, longitude } = position.coords; this._weatherData = await this._weatherService.getWeatherData(latitude, longitude); this._weatherData.locationName = 'Current Location'; this._searchQuery = 'Current Location'; - + this._showWeatherContent(); resolve(); } catch (error) { @@ -209,4 +207,4 @@ export class WeatherApp extends LitElement { } } -customElements.define('weather-app', WeatherApp); \ No newline at end of file +customElements.define('weather-app', WeatherApp); diff --git a/apps/lit/src/weather-display.js b/apps/lit/src/weather-display.js index 8aa08035..9ae360ed 100644 --- a/apps/lit/src/weather-display.js +++ b/apps/lit/src/weather-display.js @@ -4,7 +4,6 @@ import { designSystemStyles, baseStyles, componentStyles } from './shared-styles import './weather-forecast.js'; export class WeatherDisplay extends LitElement { - // eslint-disable-next-line static styles = [ designSystemStyles, baseStyles, @@ -16,7 +15,6 @@ export class WeatherDisplay extends LitElement { ` ]; - // eslint-disable-next-line static properties = { weatherData: { type: Object }, isLoading: { type: Boolean }, @@ -68,7 +66,7 @@ export class WeatherDisplay extends LitElement { _renderWeatherContent() { const { current, locationName, country } = this.weatherData; - + return html`
@@ -147,4 +145,4 @@ export class WeatherDisplay extends LitElement { } } -customElements.define('weather-display', WeatherDisplay); \ No newline at end of file +customElements.define('weather-display', WeatherDisplay); diff --git a/apps/lit/src/weather-forecast.js b/apps/lit/src/weather-forecast.js index eb977a7c..e23b5162 100644 --- a/apps/lit/src/weather-forecast.js +++ b/apps/lit/src/weather-forecast.js @@ -4,7 +4,6 @@ import { designSystemStyles, baseStyles, componentStyles } from './shared-styles import './forecast-item.js'; export class WeatherForecast extends LitElement { - // eslint-disable-next-line static styles = [ designSystemStyles, baseStyles, @@ -16,7 +15,6 @@ export class WeatherForecast extends LitElement { ` ]; - // eslint-disable-next-line static properties = { forecastData: { type: Object }, _activeForecastIndex: { state: true } @@ -41,9 +39,9 @@ export class WeatherForecast extends LitElement {
${repeat( - daily.time, - (time, index) => index, - (time, index) => html` + daily.time, + (time, index) => index, + (time, index) => html` ` - )} + )}
@@ -60,7 +58,7 @@ export class WeatherForecast extends LitElement { _handleToggleForecast(e) { const { index } = e.detail; - + // If clicking the same item, collapse it if (this._activeForecastIndex === index) { this._activeForecastIndex = null; @@ -72,4 +70,4 @@ export class WeatherForecast extends LitElement { } } -customElements.define('weather-forecast', WeatherForecast); \ No newline at end of file +customElements.define('weather-forecast', WeatherForecast); diff --git a/apps/lit/src/weather-search.js b/apps/lit/src/weather-search.js index 1cde1227..e0d42f8e 100644 --- a/apps/lit/src/weather-search.js +++ b/apps/lit/src/weather-search.js @@ -2,10 +2,9 @@ import { LitElement, html, css } from 'lit'; import { designSystemStyles, baseStyles, componentStyles } from './shared-styles.js'; export class WeatherSearch extends LitElement { - // eslint-disable-next-line static styles = [ designSystemStyles, - baseStyles, + baseStyles, componentStyles, css` :host { @@ -14,7 +13,6 @@ export class WeatherSearch extends LitElement { ` ]; - // eslint-disable-next-line static properties = { searchQuery: { type: String }, isLoading: { type: Boolean } @@ -73,7 +71,7 @@ export class WeatherSearch extends LitElement { _handleSubmit(e) { e.preventDefault(); const city = this.searchQuery.trim(); - + if (!city) { this.dispatchEvent(new CustomEvent('search-error', { detail: { message: 'Please enter a city name' }, @@ -91,4 +89,4 @@ export class WeatherSearch extends LitElement { } } -customElements.define('weather-search', WeatherSearch); \ No newline at end of file +customElements.define('weather-search', WeatherSearch); diff --git a/apps/qwik/README.md b/apps/qwik/README.md index f0250b33..90039583 100644 --- a/apps/qwik/README.md +++ b/apps/qwik/README.md @@ -110,7 +110,7 @@ The trade-off is developer complexity - all those `$` symbols take getting used ## Real-World App Since the weather app is very simple, it may be helpful to see a more practical implementation of a Qwik app. So, checkout: - + > **Digital Defense** - _Interactive personal security checklist_
> 🐙 Get it on GitHub at [github.com/Lissy93/personal-security-checklist](https://github.com/Lissy93/personal-security-checklist)
diff --git a/apps/qwik/src/entry.ssr.tsx b/apps/qwik/src/entry.ssr.tsx index d690aa50..2271e2b2 100644 --- a/apps/qwik/src/entry.ssr.tsx +++ b/apps/qwik/src/entry.ssr.tsx @@ -2,7 +2,7 @@ import { renderToStream, type RenderToStreamOptions } from '@builder.io/qwik/ser import Root from './root'; import { getWeatherByCity } from './services/WeatherService'; -export default async function (opts: RenderToStreamOptions) { +export default async function(opts: RenderToStreamOptions) { let initialWeatherData = null; try { initialWeatherData = await getWeatherByCity('London'); @@ -15,7 +15,7 @@ export default async function (opts: RenderToStreamOptions) { ...opts, containerAttributes: { lang: 'en-us', - ...opts.containerAttributes, - }, + ...opts.containerAttributes + } }); } diff --git a/apps/qwik/src/root.tsx b/apps/qwik/src/root.tsx index 3d4caa97..94797fbb 100644 --- a/apps/qwik/src/root.tsx +++ b/apps/qwik/src/root.tsx @@ -37,4 +37,4 @@ export default component$(() => { ); -}); \ No newline at end of file +}); diff --git a/apps/react/README.md b/apps/react/README.md index 6340f663..81f7e73a 100644 --- a/apps/react/README.md +++ b/apps/react/README.md @@ -111,7 +111,7 @@ React really shines for complex applications where the ecosystem matters. We did ## Real-World App Since the weather app is very simple, it may be helpful to see a more practical implementation of a React app. So, checkout: - + > **Web Check** - _All-in-one OSINT tool for analyzing any site_
> 🐙 Get it on GitHub at [github.com/Lissy93/web-check](https://github.com/Lissy93/web-check)
diff --git a/apps/solid/README.md b/apps/solid/README.md index d53a6407..d62268e0 100644 --- a/apps/solid/README.md +++ b/apps/solid/README.md @@ -110,7 +110,7 @@ The JSX looks familiar, but `` and `` components replace your typical ## Real-World App Since the weather app is very simple, it may be helpful to see a more practical implementation of a Solid.js app. So, checkout: - + > **Chief Snack Officer** - _Office snack management app_
> 🐙 Get it on GitHub at [github.com/Lissy93/cso](https://github.com/Lissy93/cso)
diff --git a/apps/svelte/README.md b/apps/svelte/README.md index 7214c8e7..d6d333b1 100644 --- a/apps/svelte/README.md +++ b/apps/svelte/README.md @@ -111,7 +111,7 @@ For our simple weather app, we didn't need Svelte's built-in animations or trans ## Real-World App Since the weather app is very simple, it may be helpful to see a more practical implementation of a Svelte app. So, checkout: - + > **Networking Toolbox** - _100+ offline-first networking tools for sysadmins_
> 🐙 Get it on GitHub at [github.com/Lissy93/networking-toolbox](https://github.com/Lissy93/networking-toolbox)
diff --git a/apps/vanjs/README.md b/apps/vanjs/README.md index 3b792984..5db90104 100644 --- a/apps/vanjs/README.md +++ b/apps/vanjs/README.md @@ -110,7 +110,7 @@ VanJS works well for simple enhancements where you need just a touch of reactivi ## Real-World App Since the weather app is very simple, it may be helpful to see a more practical implementation of a VanJS app. So, checkout: - + > **RAID Calculator** - _RAID array capacity and fault tolerance_
> 🐙 Get it on GitHub at [github.com/Lissy93/raid-calculator](https://github.com/Lissy93/raid-calculator)
diff --git a/apps/vue/README.md b/apps/vue/README.md index a1069ff3..447918fc 100644 --- a/apps/vue/README.md +++ b/apps/vue/README.md @@ -112,7 +112,7 @@ I chose Vue for [Dashy](https://github.com/Lissy93/dashy/), because it both has ## Real-World App Since the weather app is very simple, it may be helpful to see a more practical implementation of a Vue 3 app. So, checkout: - + > **Dashy** - _Highly configurable self-hostable server dashboard_
> 🐙 Get it on GitHub at [github.com/Lissy93/dashy](https://github.com/Lissy93/dashy)
diff --git a/eslint.config.mjs b/eslint.config.mjs index ff3332d8..d5e433a0 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -7,7 +7,7 @@ export default [ { files: ['**/*.{js,jsx}'], languageOptions: { - ecmaVersion: 2020, + ecmaVersion: 2022, sourceType: 'module', parserOptions: { ecmaFeatures: { @@ -55,6 +55,8 @@ export default [ MutationObserver: 'readonly', ResizeObserver: 'readonly', IntersectionObserver: 'readonly', + CustomEvent: 'readonly', + customElements: 'readonly', }, }, rules: { diff --git a/frameworks.json b/frameworks.json index 7b72e1b3..4ca91d5d 100644 --- a/frameworks.json +++ b/frameworks.json @@ -31,7 +31,7 @@ "description": "All-in-one OSINT tool for analyzing any site", "repo": "https://github.com/Lissy93/web-check", "website": "https://web-check.xyz/", - "logo": "https://raw.githubusercontent.com/Lissy93/web-check/master/public/android-chrome-192x192.png" + "logo": "https://pixelflare.cc/alicia/logo/web-check/w256" } }, { @@ -65,7 +65,7 @@ "description": "Domain name portfolio manager", "repo": "https://github.com/Lissy93/domain-locker", "website": "https://domain-locker.com", - "logo": "https://storage.googleapis.com/as93-screenshots/project-logos/domain-locker.png" + "logo": "https://pixelflare.cc/alicia/logo/domain-locker/w256" } }, { @@ -100,7 +100,7 @@ "description": "100+ offline-first networking tools for sysadmins", "repo": "https://github.com/Lissy93/networking-toolbox", "website": "https://networkingtoolbox.net/", - "logo": "https://github.com/Lissy93/networking-toolbox/blob/main/static/icon.png?raw=true" + "logo": "https://pixelflare.cc/alicia/logo/networking-toolbox-2/w256" } }, { @@ -169,7 +169,7 @@ "description": "Office snack management app", "repo": "https://github.com/Lissy93/cso", "website": "https://lissy93.github.io/cso", - "logo": "https://storage.googleapis.com/as93-screenshots/project-logos/cso.png" + "logo": "https://pixelflare.cc/alicia/logo/cso/w256" } }, { @@ -203,7 +203,7 @@ "description": "Interactive personal security checklist", "repo": "https://github.com/Lissy93/personal-security-checklist", "website": "https://digital-defense.io", - "logo": "https://storage.googleapis.com/as93-screenshots/project-logos/digital-defense.png" + "logo": "https://pixelflare.cc/alicia/logo/digital-defense/w256" } }, { @@ -238,7 +238,7 @@ "description": "Highly configurable self-hostable server dashboard", "repo": "https://github.com/Lissy93/dashy", "website": "https://dashy.to", - "logo": "https://i.ibb.co/yhbt6CY/dashy.png" + "logo": "https://pixelflare.cc/alicia/logo/dashy/w256" } }, { @@ -301,7 +301,7 @@ "description": "WHOIS lookup for domain registration info", "repo": "https://github.com/Lissy93/who-dat", "website": "https://who-dat.as93.net", - "logo": "https://storage.googleapis.com/as93-screenshots/project-logos/who-dat.png" + "logo": "https://pixelflare.cc/alicia/logo/who-dat/w256" } }, { @@ -336,7 +336,7 @@ "longDescription": "An objective comparison of privacy-respecting email providers", "repo": "https://github.com/Lissy93/email-comparison", "website": "https://email-comparison.as93.net/", - "logo": "https://storage.googleapis.com/as93-screenshots/project-logos/email-comparison.png" + "logo": "https://pixelflare.cc/alicia/logo/email-comparison/w256" } }, { @@ -370,7 +370,7 @@ "description": "RAID array capacity and fault tolerance", "repo": "https://github.com/Lissy93/raid-calculator", "website": "https://raid-calculator.as93.net/", - "logo": "https://storage.googleapis.com/as93-screenshots/project-screenshots/raid-caclularor.png" + "logo": "https://pixelflare.cc/alicia/logo/raid-caclularor/w256" } }, { diff --git a/scripts/transform/insert_statuses.py b/scripts/transform/insert_statuses.py index cd35d3ee..4a07625a 100644 --- a/scripts/transform/insert_statuses.py +++ b/scripts/transform/insert_statuses.py @@ -7,7 +7,7 @@ # Constants REPO_URL = "https://github.com/lissy93/framework-benchmarks" -BADGES_BRANCH = "badges" +BADGES_BRANCH = "refs/heads/badges" README_PATH = Path(".github/README.md") FRAMEWORKS_JSON = "frameworks.json"