From e7f296298485b3898cb99dc47574c87d45b67be3 Mon Sep 17 00:00:00 2001 From: Konnor Rogers Date: Mon, 30 Jun 2025 12:13:21 -0400 Subject: [PATCH] Pro fixes (#1088) * add pro badge to themer * add isPro flag to palettes * show based on currentUser.hasPro * fix logged out user stuff --------- Co-authored-by: Cory LaViska --- package-lock.json | 2 +- packages/webawesome/docs/_data/themer.js | 5 +- .../webawesome/docs/_includes/sidebar.njk | 5 +- .../webawesome/docs/docs/color-palettes.njk | 35 ++++++++++++-- packages/webawesome/docs/docs/themes.njk | 48 ++++++++++++++----- 5 files changed, 78 insertions(+), 17 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5ab256bfb..c70346ab4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13994,7 +13994,7 @@ }, "packages/webawesome-pro": { "name": "@shoelace-style/webawesome-pro", - "version": "3.0.0-alpha.13", + "version": "3.0.0-beta.1", "license": "TODO", "dependencies": { "@ctrl/tinycolor": "^4.1.0", diff --git a/packages/webawesome/docs/_data/themer.js b/packages/webawesome/docs/_data/themer.js index 582822f04..f2ffaafc5 100644 --- a/packages/webawesome/docs/_data/themer.js +++ b/packages/webawesome/docs/_data/themer.js @@ -715,7 +715,10 @@ export const elementPresets = themes.map(theme => ({ * All palettes used by themes in a simple array. */ export const palettes = themes - .map(theme => theme.palette) + .map(theme => ({ + ...theme.palette, + isPro: theme.isPro, + })) .filter( (palette, index, array) => array.findIndex(p => p.name === palette.name && p.filename === palette.filename) === index, diff --git a/packages/webawesome/docs/_includes/sidebar.njk b/packages/webawesome/docs/_includes/sidebar.njk index 5dfd2c1fc..7038046bf 100644 --- a/packages/webawesome/docs/_includes/sidebar.njk +++ b/packages/webawesome/docs/_includes/sidebar.njk @@ -320,7 +320,10 @@ diff --git a/packages/webawesome/docs/docs/color-palettes.njk b/packages/webawesome/docs/docs/color-palettes.njk index 6b4484750..da64a68d3 100644 --- a/packages/webawesome/docs/docs/color-palettes.njk +++ b/packages/webawesome/docs/docs/color-palettes.njk @@ -2,7 +2,6 @@ title: Color Palettes description: 'Color palettes give you a full spectrum of colors to add life to your project.' layout: page -isPro: true ---

Color palettes give you a full spectrum of colors to add life to your project.

@@ -14,9 +13,36 @@ isPro: true {% endfor %}
+ {% raw %} + {% if not currentUser.hasPro %} +

+ Additional palettes are available to pro users. Please login to view pro palettes. +

+ {% endif %} + {% endraw %} {% for palette in themer.palettes %} - {{ palette.name }} + {% if not palette.isPro %} + + {{ palette.name }} + + {% else %} + {% raw %} + {% if currentUser.hasPro %} + {% endraw %} + + {{ palette.name }} + + {% raw %} + {% endif %} + {% endraw %} + {% endif %} {% endfor %} @@ -124,13 +150,16 @@ isPro: true border: 1px solid var(--wa-color-surface-border); border-radius: var(--border-radius); box-shadow: var(--wa-shadow-s); - cursor: pointer; transition: all 0.2s ease; text-align: center; font-weight: var(--wa-font-weight-action); text-transform: capitalize; } + .palette-card:not(:state(disabled)) { + cursor: pointer; + } + .palette-card:state(checked) { border-color: var(--wa-color-brand-border-loud); background-color: var(--wa-color-brand-fill-quiet); diff --git a/packages/webawesome/docs/docs/themes.njk b/packages/webawesome/docs/docs/themes.njk index bbc53d05b..eb6910cb9 100644 --- a/packages/webawesome/docs/docs/themes.njk +++ b/packages/webawesome/docs/docs/themes.njk @@ -2,7 +2,6 @@ title: Themes description: Themes galore layout: page -isPro: true ---
+ {% if not currentUser.hasPro %} +

+ Additional themes are available to pro users. Please login to view pro themes. +

+ {% endif %} + {% for theme in themer.themes %} - - {{ theme.name }} - + {% if not theme.isPro %} + + {{ theme.name }} + + {% else %} + {% raw %} + {% if currentUser.hasPro %} + {% endraw %} + + {{ theme.name }} + + {% raw %} + {% endif %} + {% endraw %} + {% endif %} {% endfor %}
@@ -218,12 +241,15 @@ isPro: true border: 1px solid var(--wa-color-surface-border); border-radius: var(--border-radius); box-shadow: var(--wa-shadow-s); - cursor: pointer; transition: all 0.2s ease; text-align: center; font-weight: var(--wa-font-weight-action); text-transform: capitalize; + &:not(:state(disabled)) { + cursor: pointer; + } + &:state(checked) { border-color: var(--wa-color-brand-border-loud); background-color: var(--wa-color-brand-fill-quiet);