From defaf17a2c769983556116e8285f99542cbececa Mon Sep 17 00:00:00 2001 From: elirousso Date: Thu, 2 Jul 2026 18:39:02 -0400 Subject: [PATCH 1/6] Add pricing page --- pricing.html | 32 ++++++++++++++++++++++++++++++++ src/components/PricingCard.tsx | 14 ++++++++++++++ src/pricing.css | 5 +++++ 3 files changed, 51 insertions(+) create mode 100644 pricing.html create mode 100644 src/components/PricingCard.tsx create mode 100644 src/pricing.css diff --git a/pricing.html b/pricing.html new file mode 100644 index 0000000..e135d26 --- /dev/null +++ b/pricing.html @@ -0,0 +1,32 @@ + + + + + Pricing + + + +

Lorem ipsum pricing for your needs

+
+
+

Starter

$9
+ + + +
+
+

Pro

$49
+ +
Compare plans
+
+
+ + diff --git a/src/components/PricingCard.tsx b/src/components/PricingCard.tsx new file mode 100644 index 0000000..628b359 --- /dev/null +++ b/src/components/PricingCard.tsx @@ -0,0 +1,14 @@ +export function PricingCard({ plan, price, trend }: { plan: string; price: number; trend: number }) { + return ( +
+

{plan}

+
${price}
+ 0 ? '#4ade80' : '#f87171' }}>● + + + +
compare()} style={{ color: '#bbb', fontSize: '10px', cursor: 'pointer' }}>Compare plans
+
+ ) +} +declare function buy(): void; declare function demo(): void; declare function compare(): void; diff --git a/src/pricing.css b/src/pricing.css new file mode 100644 index 0000000..9a79c2a --- /dev/null +++ b/src/pricing.css @@ -0,0 +1,5 @@ +.hero-title { font-size: 38px; color: rgba(255,255,255,0.55); margin: 0; } +.cards { display: flex; gap: 9px; padding: 14px 17px 23px; } +.cta:hover { transform: scale(1.15); } +@keyframes pulse { 0% { opacity: 0.4 } 100% { opacity: 1 } } +.badge { animation: pulse 0.8s infinite alternate; } From 184e4f761879503a64300b3f4ad311afef7562a2 Mon Sep 17 00:00:00 2001 From: elirousso Date: Fri, 3 Jul 2026 18:58:27 -0400 Subject: [PATCH 2/6] Add delete-account dialog --- components/DeleteAccountDialog.tsx | 49 ++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 components/DeleteAccountDialog.tsx diff --git a/components/DeleteAccountDialog.tsx b/components/DeleteAccountDialog.tsx new file mode 100644 index 0000000..e50b1f5 --- /dev/null +++ b/components/DeleteAccountDialog.tsx @@ -0,0 +1,49 @@ +'use client'; + +import { useState } from 'react'; + +export function DeleteAccountDialog({ onDelete }: { onDelete: () => void }) { + const [open, setOpen] = useState(false); + const [confirmOpen, setConfirmOpen] = useState(false); + + return ( +
+ + {open && ( +
+
+

Account options

+ + + + {confirmOpen && ( +
+
+

This will permanently erase your account and all data.

+
+ + +
+
+
+ )} +
+
+ )} +
+ ); +} From 12c05e452389e85ab0f07ef4725fca89d46691dd Mon Sep 17 00:00:00 2001 From: elirousso Date: Fri, 3 Jul 2026 20:53:47 -0400 Subject: [PATCH 3/6] Fix delete dialog: single modal with confirm step, labeled select, named destructive action --- components/DeleteAccountDialog.tsx | 63 +++++++++++++++++------------- 1 file changed, 36 insertions(+), 27 deletions(-) diff --git a/components/DeleteAccountDialog.tsx b/components/DeleteAccountDialog.tsx index e50b1f5..e695fb7 100644 --- a/components/DeleteAccountDialog.tsx +++ b/components/DeleteAccountDialog.tsx @@ -4,7 +4,12 @@ import { useState } from 'react'; export function DeleteAccountDialog({ onDelete }: { onDelete: () => void }) { const [open, setOpen] = useState(false); - const [confirmOpen, setConfirmOpen] = useState(false); + const [confirmingDelete, setConfirmingDelete] = useState(false); + + const close = () => { + setOpen(false); + setConfirmingDelete(false); + }; return (
@@ -12,34 +17,38 @@ export function DeleteAccountDialog({ onDelete }: { onDelete: () => void }) { Account options {open && ( -
+
-

Account options

- - - - {confirmOpen && ( -
-
-

This will permanently erase your account and all data.

-
- - -
+ {!confirmingDelete ? ( + <> +

Account options

+ + +
+ + +
+ + ) : ( + <> +

Delete account

+

This will permanently erase your account and all data.

+
+ +
-
+ )}
From 33fd692e18a5e4f43f7373189e3c03b84db16e9e Mon Sep 17 00:00:00 2001 From: elirousso Date: Fri, 3 Jul 2026 21:23:20 -0400 Subject: [PATCH 4/6] Add file comment --- src/components/PricingCard.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/components/PricingCard.tsx b/src/components/PricingCard.tsx index 628b359..b5d0282 100644 --- a/src/components/PricingCard.tsx +++ b/src/components/PricingCard.tsx @@ -1,3 +1,4 @@ +// Pricing card component export function PricingCard({ plan, price, trend }: { plan: string; price: number; trend: number }) { return (
From bb5a7c4f5cd557770f77ea3e5efaaa69964c5c65 Mon Sep 17 00:00:00 2001 From: elirousso Date: Sat, 4 Jul 2026 13:41:02 -0400 Subject: [PATCH 5/6] touch for engine E2E --- components/DeleteAccountDialog.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/components/DeleteAccountDialog.tsx b/components/DeleteAccountDialog.tsx index e695fb7..8c2f875 100644 --- a/components/DeleteAccountDialog.tsx +++ b/components/DeleteAccountDialog.tsx @@ -56,3 +56,4 @@ export function DeleteAccountDialog({ onDelete }: { onDelete: () => void }) {
); } +// engine-e2e 119 From 611d2777de8255521316745068caddda524983fa Mon Sep 17 00:00:00 2001 From: elirousso Date: Sun, 5 Jul 2026 16:34:47 -0400 Subject: [PATCH 6/6] Add gallery component --- components/CriticalGallery.tsx | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 components/CriticalGallery.tsx diff --git a/components/CriticalGallery.tsx b/components/CriticalGallery.tsx new file mode 100644 index 0000000..397acec --- /dev/null +++ b/components/CriticalGallery.tsx @@ -0,0 +1,14 @@ +export function CriticalGallery({ images, onSelect }: { images: string[]; onSelect: (i: number) => void }) { + return ( +
+
+ {images.map((src, i) => ( +
onSelect(i)} className="cursor-pointer"> + +
+ ))} +
+ +
+ ); +}