diff --git a/.env.example b/.env.example index e26ea42..5450f77 100644 --- a/.env.example +++ b/.env.example @@ -5,8 +5,11 @@ VITE_WEEKLY_AI_ENDPOINT= VITE_WEEKLY_AI_TOKEN= # Optional Web Push (same Cloudflare Worker — see AGENTS.md) -VITE_VAPID_PUBLIC_KEY= -VITE_PUSH_API_BASE= +VITE_VAPID_PUBLIC_KEY= +VITE_PUSH_API_BASE= +VITE_FEEDBACK_FORM_ENDPOINT= +# Cloudflare Turnstile site key (public, optional override) +VITE_FEEDBACK_TURNSTILE_SITE_KEY= # Optional Firebase sync + share links (Spark free tier — see docs/FIREBASE.md) VITE_ENABLE_FIREBASE=0 diff --git a/.env.local.example b/.env.local.example index 61a5910..b2b3bf6 100644 --- a/.env.local.example +++ b/.env.local.example @@ -5,9 +5,11 @@ # VITE_WEEKLY_AI_ENDPOINT=http://127.0.0.1:8787/weekly-summary # VITE_WEEKLY_AI_TOKEN="dev-local-token" -# Web Push (optional — same worker origin as weekly AI) -# VITE_VAPID_PUBLIC_KEY= -# VITE_PUSH_API_BASE=http://127.0.0.1:8787 +# Web Push (optional — same worker origin as weekly AI) +# VITE_VAPID_PUBLIC_KEY= +# VITE_PUSH_API_BASE=http://127.0.0.1:8787 +# VITE_FEEDBACK_FORM_ENDPOINT=https://sillylittle.workflows.okta.com/api/flo/f76fd87ce1bcd200569e2e10fc636fae/invoke +# VITE_FEEDBACK_TURNSTILE_SITE_KEY=0x4AAAAAADfOpVgdUWD5E_c1 # Firebase (optional) — project men-tell-prod # VITE_ENABLE_FIREBASE=1 diff --git a/VERSION b/VERSION index 6e6f3e6..b0f139e 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.12.0 +1.13.7 diff --git a/package-lock.json b/package-lock.json index df58fb8..022c754 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "mentell", - "version": "1.12.0", + "version": "1.13.7", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "mentell", - "version": "1.12.0", + "version": "1.13.7", "dependencies": { "date-fns": "^4.2.1", "dexie": "^4.4.2", diff --git a/package.json b/package.json index 836001b..6a1d82c 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "mentell", "private": true, - "version": "1.12.0", + "version": "1.13.7", "type": "module", "scripts": { "sync:assets": "node scripts/sync-assets.mjs", diff --git a/src/App.tsx b/src/App.tsx index fab2d2c..a32a004 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -28,11 +28,13 @@ import { publicUrl } from './shared/publicUrl' import { SCORE_CHANGED_EVENT } from './features/score/scoreEvents' import { ShareDashboardPage } from './features/share/ShareDashboardPage' import { SyncOnboardingBanner } from './features/settings/SyncOnboardingBanner' -import { AppLegalFooter } from './components/AppLegalFooter' -import { PrivacyPolicyPage } from './features/legal/PrivacyPolicyPage' -import { CharacterLabPage } from './features/character/CharacterLabPage' -import { CharacterNavIcon } from './features/character/CharacterNavIcon' -import { DeskCharacterLayout } from './features/character/DeskCharacterLayout' +import { AppLegalFooter } from './components/AppLegalFooter' +import { PrivacyPolicyPage } from './features/legal/PrivacyPolicyPage' +import { FeedbackPage, FeedbackThankYouPage } from './features/feedback/FeedbackPage' +import { SpeechBubbleIcon } from './components/SpeechBubbleIcon' +import { CharacterLabPage } from './features/character/CharacterLabPage' +import { CharacterNavIcon } from './features/character/CharacterNavIcon' +import { DeskCharacterLayout } from './features/character/DeskCharacterLayout' import { LeftDeskMascot } from './features/character/LeftDeskMascot' import { MobileHeaderMascot } from './features/character/MobileHeaderMascot' import { CharacterTabIconSync } from './features/character/CharacterTabIconSync' @@ -198,12 +200,14 @@ function App() { path="/shop" element={} /> - } /> - } /> - } /> - {isShareLinksEnabled() ? ( - } /> - ) : null} + } /> + } /> + } /> + } /> + } /> + {isShareLinksEnabled() ? ( + } /> + ) : null} } /> } /> @@ -279,23 +283,32 @@ function TopBar({ - {!settings.disablePoints ? ( -
- + - -
- ) : ( -
- -
- )} - + /> + + + ) : ( +
+ +
+ )} + + + + +
+ ) + })} +
+ + + + + {showBugFields ? ( + +
+ Feature: {selectedBugFeature || 'Not set'} +
+
+ Frequency:{' '} + {BUG_FREQUENCIES[brFrequency]} +
+
+ {brFiles.length ? `${brFiles.length} file(s) attached.` : 'No files attached.'} +
+ + } + > +
+