style: auto-format codebase with Prettier

Applied formatting to 1487+ files using pnpm format:write
  - TypeScript/JavaScript files
  - Svelte components
  - Astro pages
  - JSON configs
  - Markdown docs

  13 files still need manual review (Astro JSX comments)
This commit is contained in:
Wuesteon 2025-11-27 18:33:16 +01:00
parent 0241f5554c
commit d36b321d9d
3952 changed files with 661498 additions and 739751 deletions

View file

@ -1,58 +1,58 @@
{
"name": "@manacore/shared-subscription-ui",
"version": "1.0.0",
"private": true,
"type": "module",
"svelte": "./src/index.ts",
"main": "./src/index.ts",
"types": "./src/index.ts",
"exports": {
".": {
"svelte": "./src/index.ts",
"types": "./src/index.ts",
"default": "./src/index.ts"
},
"./SubscriptionCard.svelte": {
"svelte": "./src/SubscriptionCard.svelte",
"default": "./src/SubscriptionCard.svelte"
},
"./PackageCard.svelte": {
"svelte": "./src/PackageCard.svelte",
"default": "./src/PackageCard.svelte"
},
"./BillingToggle.svelte": {
"svelte": "./src/BillingToggle.svelte",
"default": "./src/BillingToggle.svelte"
},
"./UsageCard.svelte": {
"svelte": "./src/UsageCard.svelte",
"default": "./src/UsageCard.svelte"
},
"./CostCard.svelte": {
"svelte": "./src/CostCard.svelte",
"default": "./src/CostCard.svelte"
},
"./SubscriptionButton.svelte": {
"svelte": "./src/SubscriptionButton.svelte",
"default": "./src/SubscriptionButton.svelte"
},
"./ManaIcon.svelte": {
"svelte": "./src/ManaIcon.svelte",
"default": "./src/ManaIcon.svelte"
}
},
"scripts": {
"check": "svelte-check --tsconfig ./tsconfig.json"
},
"dependencies": {
"@manacore/shared-subscription-types": "workspace:*"
},
"devDependencies": {
"svelte": "^5.0.0",
"svelte-check": "^4.0.0",
"typescript": "^5.7.3"
},
"peerDependencies": {
"svelte": "^5.0.0"
}
"name": "@manacore/shared-subscription-ui",
"version": "1.0.0",
"private": true,
"type": "module",
"svelte": "./src/index.ts",
"main": "./src/index.ts",
"types": "./src/index.ts",
"exports": {
".": {
"svelte": "./src/index.ts",
"types": "./src/index.ts",
"default": "./src/index.ts"
},
"./SubscriptionCard.svelte": {
"svelte": "./src/SubscriptionCard.svelte",
"default": "./src/SubscriptionCard.svelte"
},
"./PackageCard.svelte": {
"svelte": "./src/PackageCard.svelte",
"default": "./src/PackageCard.svelte"
},
"./BillingToggle.svelte": {
"svelte": "./src/BillingToggle.svelte",
"default": "./src/BillingToggle.svelte"
},
"./UsageCard.svelte": {
"svelte": "./src/UsageCard.svelte",
"default": "./src/UsageCard.svelte"
},
"./CostCard.svelte": {
"svelte": "./src/CostCard.svelte",
"default": "./src/CostCard.svelte"
},
"./SubscriptionButton.svelte": {
"svelte": "./src/SubscriptionButton.svelte",
"default": "./src/SubscriptionButton.svelte"
},
"./ManaIcon.svelte": {
"svelte": "./src/ManaIcon.svelte",
"default": "./src/ManaIcon.svelte"
}
},
"scripts": {
"check": "svelte-check --tsconfig ./tsconfig.json"
},
"dependencies": {
"@manacore/shared-subscription-types": "workspace:*"
},
"devDependencies": {
"svelte": "^5.0.0",
"svelte-check": "^4.0.0",
"typescript": "^5.7.3"
},
"peerDependencies": {
"svelte": "^5.0.0"
}
}

View file

@ -14,7 +14,7 @@
onChange,
yearlyDiscount = '33%',
monthlyLabel = 'Monatlich',
yearlyLabel = 'Jährlich'
yearlyLabel = 'Jährlich',
}: Props = $props();
</script>

View file

@ -7,11 +7,7 @@
manaLabel?: string;
}
let {
costs,
title = 'Mana-Kosten',
manaLabel = 'Mana'
}: Props = $props();
let { costs, title = 'Mana-Kosten', manaLabel = 'Mana' }: Props = $props();
// Icon mapping
const iconPaths: Record<string, string> = {
@ -19,10 +15,9 @@
'M19 11a7 7 0 01-7 7m0 0a7 7 0 01-7-7m7 7v4m0 0H8m4 0h4m-4-8a3 3 0 01-3-3V5a3 3 0 116 0v6a3 3 0 01-3 3z',
'chatbubble-outline':
'M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z',
'add-circle-outline':
'M12 9v3m0 0v3m0-3h3m-3 0H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z',
'add-circle-outline': 'M12 9v3m0 0v3m0-3h3m-3 0H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z',
'copy-outline':
'M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z'
'M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z',
};
</script>
@ -49,7 +44,8 @@
</p>
</div>
<p class="text-base font-semibold text-theme">
{item.cost} {manaLabel}
{item.cost}
{manaLabel}
</p>
</div>
{/each}

View file

@ -19,7 +19,7 @@
popularLabel = 'Popular',
manaLabel = 'Mana',
oneTimeLabel = 'Einmalig',
buyLabel = 'Kaufen'
buyLabel = 'Kaufen',
}: Props = $props();
function formatPrice(pkg: ManaPackage) {
@ -64,7 +64,10 @@
<!-- Three column layout -->
<div class="mb-5 flex justify-between gap-2">
<!-- Mana Icon with background -->
<div class="flex aspect-square flex-1 items-center justify-center rounded-xl bg-menu" style="min-height: 80px;">
<div
class="flex aspect-square flex-1 items-center justify-center rounded-xl bg-menu"
style="min-height: 80px;"
>
<div
class="flex items-center justify-center rounded-lg"
style="width: {packageStyles.bgSize}; height: {packageStyles.bgSize}; background-color: {packageStyles.bg};"
@ -74,7 +77,10 @@
</div>
<!-- Mana Amount -->
<div class="flex aspect-square flex-1 flex-col items-center justify-center rounded-xl bg-menu" style="min-height: 80px;">
<div
class="flex aspect-square flex-1 flex-col items-center justify-center rounded-xl bg-menu"
style="min-height: 80px;"
>
<p class="mb-0.5 text-2xl font-bold text-theme">
{pkg.manaAmount}
</p>
@ -82,7 +88,10 @@
</div>
<!-- Price -->
<div class="flex aspect-square flex-1 flex-col items-center justify-center rounded-xl bg-menu" style="min-height: 80px;">
<div
class="flex aspect-square flex-1 flex-col items-center justify-center rounded-xl bg-menu"
style="min-height: 80px;"
>
<p class="text-xl font-bold text-theme">
{formatPrice(pkg)}
</p>

View file

@ -14,7 +14,7 @@
iconName = 'arrow-forward-outline',
leftIconName = 'cart-outline',
variant = 'primary',
disabled = false
disabled = false,
}: Props = $props();
// Icon mapping (simple SVG paths for common icons)
@ -22,7 +22,7 @@
'arrow-forward-outline': 'M5 12h14M12 5l7 7-7 7',
'checkmark-circle-outline': 'M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z',
'cart-outline':
'M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z'
'M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z',
};
</script>

View file

@ -33,7 +33,7 @@
monthlyEquivalentLabel = '/Monat',
buyLabel = 'Kaufen',
yourPlanLabel = 'Dein Plan',
yourLegacyPlanLabel = 'Dein Legacy-Plan'
yourLegacyPlanLabel = 'Dein Legacy-Plan',
}: Props = $props();
function formatPrice(plan: SubscriptionPlan) {
@ -85,7 +85,10 @@
<!-- Three column layout -->
<div class="mb-5 flex justify-between gap-2">
<!-- Mana Icon with background -->
<div class="flex aspect-square flex-1 items-center justify-center rounded-xl bg-menu" style="min-height: 80px;">
<div
class="flex aspect-square flex-1 items-center justify-center rounded-xl bg-menu"
style="min-height: 80px;"
>
<div
class="flex items-center justify-center rounded-lg"
style="width: {tierStyles.bgSize}; height: {tierStyles.bgSize}; background-color: {tierStyles.bg};"
@ -95,7 +98,10 @@
</div>
<!-- Mana Amount -->
<div class="flex aspect-square flex-1 flex-col items-center justify-center rounded-xl bg-menu" style="min-height: 80px;">
<div
class="flex aspect-square flex-1 flex-col items-center justify-center rounded-xl bg-menu"
style="min-height: 80px;"
>
<p class="mb-0.5 text-2xl font-bold text-theme">
{plan.monthlyMana}
</p>
@ -103,7 +109,10 @@
</div>
<!-- Price -->
<div class="flex aspect-square flex-1 flex-col items-center justify-center rounded-xl bg-menu" style="min-height: 80px;">
<div
class="flex aspect-square flex-1 flex-col items-center justify-center rounded-xl bg-menu"
style="min-height: 80px;"
>
<p class="text-xl font-bold text-theme">
{formatPrice(plan)}
</p>
@ -121,11 +130,7 @@
<!-- Button only show if NOT free plan -->
{#if !plan.id.toLowerCase().includes('free')}
<SubscriptionButton
label={isCurrentPlan
? isLegacy
? yourLegacyPlanLabel
: yourPlanLabel
: buyLabel}
label={isCurrentPlan ? (isLegacy ? yourLegacyPlanLabel : yourPlanLabel) : buyLabel}
onclick={() => onSelect(plan.id)}
iconName={isCurrentPlan ? 'checkmark-circle-outline' : 'arrow-forward-outline'}
variant={isCurrentPlan ? 'secondary' : plan.popular ? 'accent' : 'primary'}

View file

@ -19,7 +19,7 @@
yourManaLabel = 'Dein Mana',
availableLabel = 'verfügbar',
consumedLabel = 'verbraucht',
currentPlanLabel = 'Aktueller Plan'
currentPlanLabel = 'Aktueller Plan',
}: Props = $props();
// Use real credits (this would normally come from a store/API)
@ -65,7 +65,8 @@
{availablePercentage}% {availableLabel}
</p>
<p class="text-sm font-medium text-theme-secondary">
{formattedUsedMana} {consumedLabel}
{formattedUsedMana}
{consumedLabel}
</p>
</div>

View file

@ -1,28 +1,28 @@
{
"costs": [
{
"action": "Pro Minute Aufnahme",
"actionKey": "subscription.cost_per_minute_recording",
"cost": 2,
"icon": "mic-outline"
},
{
"action": "Frage an Memo stellen",
"actionKey": "subscription.cost_ask_memo_question",
"cost": 5,
"icon": "chatbubble-outline"
},
{
"action": "Neue Memory erstellen",
"actionKey": "subscription.cost_create_memory",
"cost": 5,
"icon": "add-circle-outline"
},
{
"action": "Memos kombinieren (pro Memo)",
"actionKey": "subscription.cost_combine_memos",
"cost": 5,
"icon": "copy-outline"
}
]
"costs": [
{
"action": "Pro Minute Aufnahme",
"actionKey": "subscription.cost_per_minute_recording",
"cost": 2,
"icon": "mic-outline"
},
{
"action": "Frage an Memo stellen",
"actionKey": "subscription.cost_ask_memo_question",
"cost": 5,
"icon": "chatbubble-outline"
},
{
"action": "Neue Memory erstellen",
"actionKey": "subscription.cost_create_memory",
"cost": 5,
"icon": "add-circle-outline"
},
{
"action": "Memos kombinieren (pro Memo)",
"actionKey": "subscription.cost_combine_memos",
"cost": 5,
"icon": "copy-outline"
}
]
}

View file

@ -1,10 +1,10 @@
{
"usage": {
"total": 0,
"lastWeek": 0,
"lastMonth": 0,
"currentMana": 150,
"maxMana": 150,
"history": []
}
"usage": {
"total": 0,
"lastWeek": 0,
"lastMonth": 0,
"currentMana": 150,
"maxMana": 150,
"history": []
}
}

View file

@ -1,167 +1,167 @@
{
"subscriptions": [
{
"id": "free",
"name": "Mana Stream Free",
"nameEn": "Mana Stream Free",
"nameIt": "Mana Stream Free",
"price": 0,
"priceUnit": "",
"monthlyMana": 150,
"canGiftMana": false,
"popular": false,
"billingCycle": "monthly",
"available": true
},
{
"id": "Mana_Stream_Small_v1",
"name": "Kleiner Mana Stream",
"nameEn": "Small Mana Stream",
"nameIt": "Piccolo Mana Stream",
"price": 5.99,
"priceUnit": "/ Monat",
"monthlyMana": 600,
"canGiftMana": true,
"popular": false,
"billingCycle": "monthly",
"available": true
},
{
"id": "Mana_Stream_Small_Yearly_v1",
"name": "Kleiner Mana Stream",
"nameEn": "Small Mana Stream",
"nameIt": "Piccolo Mana Stream",
"price": 47.99,
"priceUnit": "/ Jahr",
"priceBreakdown": "(entspricht 3,99€ / Monat, 33% Rabatt)",
"monthlyMana": 600,
"canGiftMana": true,
"popular": false,
"billingCycle": "yearly",
"monthlyEquivalent": 3.99,
"available": true
},
{
"id": "Mana_Stream_Medium_v1",
"name": "Mittlerer Mana Stream",
"nameEn": "Medium Mana Stream",
"nameIt": "Medio Mana Stream",
"price": 14.99,
"priceUnit": "/ Monat",
"monthlyMana": 1500,
"canGiftMana": true,
"popular": false,
"billingCycle": "monthly",
"available": true
},
{
"id": "Mana_Stream_Medium_Yearly_v1",
"name": "Mittlerer Mana Stream",
"nameEn": "Medium Mana Stream",
"nameIt": "Medio Mana Stream",
"price": 119.99,
"priceUnit": "/ Jahr",
"priceBreakdown": "(entspricht 9,99€ / Monat, 33% Rabatt)",
"monthlyMana": 1500,
"canGiftMana": true,
"popular": false,
"billingCycle": "yearly",
"monthlyEquivalent": 9.99,
"available": true
},
{
"id": "Mana_Stream_Large_v1",
"name": "Großer Mana Stream",
"nameEn": "Large Mana Stream",
"nameIt": "Grande Mana Stream",
"price": 29.99,
"priceUnit": "/ Monat",
"monthlyMana": 3000,
"canGiftMana": true,
"popular": false,
"billingCycle": "monthly",
"available": true
},
{
"id": "Mana_Stream_Large_Yearly_v1",
"name": "Großer Mana Stream",
"nameEn": "Large Mana Stream",
"nameIt": "Grande Mana Stream",
"price": 239.99,
"priceUnit": "/ Jahr",
"priceBreakdown": "(entspricht 19,99€ / Monat, 33% Rabatt)",
"monthlyMana": 3000,
"canGiftMana": true,
"popular": false,
"billingCycle": "yearly",
"monthlyEquivalent": 19.99,
"available": true
},
{
"id": "Mana_Stream_Giant_v1",
"name": "Riesiger Mana Stream",
"nameEn": "Giant Mana Stream",
"nameIt": "Gigante Mana Stream",
"price": 49.99,
"priceUnit": "/ Monat",
"monthlyMana": 5000,
"canGiftMana": true,
"popular": false,
"billingCycle": "monthly",
"available": true
},
{
"id": "Mana_Stream_Giant_Yearly_v1",
"name": "Riesiger Mana Stream",
"nameEn": "Giant Mana Stream",
"nameIt": "Gigante Mana Stream",
"price": 399.99,
"priceUnit": "/ Jahr",
"priceBreakdown": "(entspricht 33,33€ / Monat, 33% Rabatt)",
"monthlyMana": 5000,
"canGiftMana": true,
"popular": false,
"billingCycle": "yearly",
"monthlyEquivalent": 33.33,
"available": true
}
],
"packages": [
{
"id": "Mana_Potion_Small_v1",
"name": "Kleiner Mana Trank",
"nameEn": "Small Mana Potion",
"nameIt": "Piccola Pozione di Mana",
"manaAmount": 350,
"price": 4.99,
"popular": false
},
{
"id": "Mana_Potion_Medium_v1",
"name": "Mittlerer Mana Trank",
"nameEn": "Medium Mana Potion",
"nameIt": "Media Pozione di Mana",
"manaAmount": 700,
"price": 9.99,
"popular": false
},
{
"id": "Mana_Potion_Large_v1",
"name": "Großer Mana Trank",
"nameEn": "Large Mana Potion",
"nameIt": "Grande Pozione di Mana",
"manaAmount": 1400,
"price": 19.99,
"popular": false
},
{
"id": "Mana_Potion_Giant_v2",
"name": "Riesiger Mana Trank",
"nameEn": "Giant Mana Potion",
"nameIt": "Pozione di Mana Gigante",
"manaAmount": 2800,
"price": 39.99,
"popular": false
}
]
"subscriptions": [
{
"id": "free",
"name": "Mana Stream Free",
"nameEn": "Mana Stream Free",
"nameIt": "Mana Stream Free",
"price": 0,
"priceUnit": "",
"monthlyMana": 150,
"canGiftMana": false,
"popular": false,
"billingCycle": "monthly",
"available": true
},
{
"id": "Mana_Stream_Small_v1",
"name": "Kleiner Mana Stream",
"nameEn": "Small Mana Stream",
"nameIt": "Piccolo Mana Stream",
"price": 5.99,
"priceUnit": "/ Monat",
"monthlyMana": 600,
"canGiftMana": true,
"popular": false,
"billingCycle": "monthly",
"available": true
},
{
"id": "Mana_Stream_Small_Yearly_v1",
"name": "Kleiner Mana Stream",
"nameEn": "Small Mana Stream",
"nameIt": "Piccolo Mana Stream",
"price": 47.99,
"priceUnit": "/ Jahr",
"priceBreakdown": "(entspricht 3,99€ / Monat, 33% Rabatt)",
"monthlyMana": 600,
"canGiftMana": true,
"popular": false,
"billingCycle": "yearly",
"monthlyEquivalent": 3.99,
"available": true
},
{
"id": "Mana_Stream_Medium_v1",
"name": "Mittlerer Mana Stream",
"nameEn": "Medium Mana Stream",
"nameIt": "Medio Mana Stream",
"price": 14.99,
"priceUnit": "/ Monat",
"monthlyMana": 1500,
"canGiftMana": true,
"popular": false,
"billingCycle": "monthly",
"available": true
},
{
"id": "Mana_Stream_Medium_Yearly_v1",
"name": "Mittlerer Mana Stream",
"nameEn": "Medium Mana Stream",
"nameIt": "Medio Mana Stream",
"price": 119.99,
"priceUnit": "/ Jahr",
"priceBreakdown": "(entspricht 9,99€ / Monat, 33% Rabatt)",
"monthlyMana": 1500,
"canGiftMana": true,
"popular": false,
"billingCycle": "yearly",
"monthlyEquivalent": 9.99,
"available": true
},
{
"id": "Mana_Stream_Large_v1",
"name": "Großer Mana Stream",
"nameEn": "Large Mana Stream",
"nameIt": "Grande Mana Stream",
"price": 29.99,
"priceUnit": "/ Monat",
"monthlyMana": 3000,
"canGiftMana": true,
"popular": false,
"billingCycle": "monthly",
"available": true
},
{
"id": "Mana_Stream_Large_Yearly_v1",
"name": "Großer Mana Stream",
"nameEn": "Large Mana Stream",
"nameIt": "Grande Mana Stream",
"price": 239.99,
"priceUnit": "/ Jahr",
"priceBreakdown": "(entspricht 19,99€ / Monat, 33% Rabatt)",
"monthlyMana": 3000,
"canGiftMana": true,
"popular": false,
"billingCycle": "yearly",
"monthlyEquivalent": 19.99,
"available": true
},
{
"id": "Mana_Stream_Giant_v1",
"name": "Riesiger Mana Stream",
"nameEn": "Giant Mana Stream",
"nameIt": "Gigante Mana Stream",
"price": 49.99,
"priceUnit": "/ Monat",
"monthlyMana": 5000,
"canGiftMana": true,
"popular": false,
"billingCycle": "monthly",
"available": true
},
{
"id": "Mana_Stream_Giant_Yearly_v1",
"name": "Riesiger Mana Stream",
"nameEn": "Giant Mana Stream",
"nameIt": "Gigante Mana Stream",
"price": 399.99,
"priceUnit": "/ Jahr",
"priceBreakdown": "(entspricht 33,33€ / Monat, 33% Rabatt)",
"monthlyMana": 5000,
"canGiftMana": true,
"popular": false,
"billingCycle": "yearly",
"monthlyEquivalent": 33.33,
"available": true
}
],
"packages": [
{
"id": "Mana_Potion_Small_v1",
"name": "Kleiner Mana Trank",
"nameEn": "Small Mana Potion",
"nameIt": "Piccola Pozione di Mana",
"manaAmount": 350,
"price": 4.99,
"popular": false
},
{
"id": "Mana_Potion_Medium_v1",
"name": "Mittlerer Mana Trank",
"nameEn": "Medium Mana Potion",
"nameIt": "Media Pozione di Mana",
"manaAmount": 700,
"price": 9.99,
"popular": false
},
{
"id": "Mana_Potion_Large_v1",
"name": "Großer Mana Trank",
"nameEn": "Large Mana Potion",
"nameIt": "Grande Pozione di Mana",
"manaAmount": 1400,
"price": 19.99,
"popular": false
},
{
"id": "Mana_Potion_Giant_v2",
"name": "Riesiger Mana Trank",
"nameEn": "Giant Mana Potion",
"nameIt": "Pozione di Mana Gigante",
"manaAmount": 2800,
"price": 39.99,
"popular": false
}
]
}

View file

@ -1,5 +1,11 @@
<script lang="ts">
import type { SubscriptionPlan, ManaPackage, UsageData, CostItem, BillingCycle } from '@manacore/shared-subscription-types';
import type {
SubscriptionPlan,
ManaPackage,
UsageData,
CostItem,
BillingCycle,
} from '@manacore/shared-subscription-types';
import BillingToggle from '../BillingToggle.svelte';
import SubscriptionCard from '../SubscriptionCard.svelte';
import PackageCard from '../PackageCard.svelte';
@ -50,7 +56,7 @@
pageTitle = 'Mana kaufen',
subscriptionsTitle = 'Abonnements',
packagesTitle = 'Einmalkäufe',
yearlyDiscount = '33%'
yearlyDiscount = '33%',
}: Props = $props();
// State
@ -58,15 +64,13 @@
// Get current plan name for display
const currentPlanName = $derived(() => {
const plan = subscriptions.find(p => p.id === currentPlanId);
const plan = subscriptions.find((p) => p.id === currentPlanId);
return plan?.name || 'Free';
});
// Get all subscription plans for current billing cycle
function getSubscriptionPlans() {
return subscriptions.filter(
(plan) => plan.id !== 'free' && plan.billingCycle === billingCycle
);
return subscriptions.filter((plan) => plan.id !== 'free' && plan.billingCycle === billingCycle);
}
// Check if a plan is the current plan
@ -98,7 +102,11 @@
</section>
<!-- Billing Toggle -->
<BillingToggle {billingCycle} onChange={(cycle: BillingCycle) => (billingCycle = cycle)} {yearlyDiscount} />
<BillingToggle
{billingCycle}
onChange={(cycle: BillingCycle) => (billingCycle = cycle)}
{yearlyDiscount}
/>
<!-- Subscriptions Section -->
<section class="mb-12 pt-2">

View file

@ -1,19 +1,19 @@
{
"compilerOptions": {
"target": "ES2022",
"module": "ESNext",
"moduleResolution": "bundler",
"lib": ["ES2022", "DOM", "DOM.Iterable"],
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true,
"resolveJsonModule": true,
"isolatedModules": true,
"verbatimModuleSyntax": true,
"noEmit": true,
"types": ["svelte"]
},
"include": ["src/**/*"],
"exclude": ["node_modules"]
"compilerOptions": {
"target": "ES2022",
"module": "ESNext",
"moduleResolution": "bundler",
"lib": ["ES2022", "DOM", "DOM.Iterable"],
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true,
"resolveJsonModule": true,
"isolatedModules": true,
"verbatimModuleSyntax": true,
"noEmit": true,
"types": ["svelte"]
},
"include": ["src/**/*"],
"exclude": ["node_modules"]
}