Commit Graph

  • 92e9abdb84 Replace mailto with server-sent invoice request main chris 2026-06-30 10:05:58 -04:00
  • 8aaf2f1dcb Improve error emails and invoice mailto with full order details chris 2026-06-30 10:01:05 -04:00
  • 84167c1ae8 Fix checkout NOT_FOUND: retry as ad-hoc when catalog IDs are stale chris 2026-06-30 08:39:02 -04:00
  • 821bfac00a Admin gallery: robust UX overhaul chris 2026-06-27 10:30:18 -04:00
  • 1a1fe7044a Fix admin gallery auth: use X-Admin-Password header instead of Authorization Bearer chris 2026-06-27 10:13:36 -04:00
  • 95e88780ab BouquetPicker: balloon swatches for latex color picker, wider modal, sticky mylar tray chris 2026-06-24 10:09:52 -04:00
  • c263e2e7ba BouquetPicker: per-instance number/letter selection, wider layout, sticky mylar tray, bouquet notes chris 2026-06-24 10:06:04 -04:00
  • 6c6b756305 Refactor BouquetPicker: tabs, weight selection, per-color latex steppers chris 2026-06-22 12:56:30 -04:00
  • 3977580b81 BouquetPicker: fix latex filter, unified color picker, modifier visibility chris 2026-06-18 17:15:33 -04:00
  • c9bd3e50d0 BouquetPicker: fix latex, sticky counters, modifier support chris 2026-06-18 14:20:05 -04:00
  • 5e1db823cb Fix bouquet builder: bypass Online filter via dedicated API endpoint chris 2026-06-18 13:09:13 -04:00
  • 0e1d8e5af4 BouquetPicker: show category slugs in empty state for debugging chris 2026-06-18 13:04:24 -04:00
  • 9779198d46 Fix Set spread TS error: use Array.from instead of spread syntax chris 2026-06-18 12:54:37 -04:00
  • 6f6a941007 BouquetPicker: log category slugs to help diagnose build filter chris 2026-06-18 12:52:30 -04:00
  • b3df81fb25 Bouquet builder: pull all items from Build category only chris 2026-06-18 12:42:48 -04:00
  • 52a9828b96 Bouquet builder: mylars from Build category, latex from full catalog chris 2026-06-18 12:37:23 -04:00
  • 7b7c3efb65 Fix CartDrawer build error: move grouping logic out of JSX chris 2026-06-18 12:08:34 -04:00
  • c72699da16 Fix bouquet builder detection: use name match instead of tags chris 2026-06-18 12:01:54 -04:00
  • 528fb90303 Add Build Your Own Bouquet feature chris 2026-06-18 11:42:21 -04:00
  • f1537402b5 Disable sold-out variants in picker; default to first in-stock option chris 2026-06-18 11:08:17 -04:00
  • 904fa91bad Fix sold-out logic: only mark product sold out when all variants are exhausted chris 2026-06-18 10:59:41 -04:00
  • 699c5cbaa1 Fix HEIC crash: skip unsupported images gracefully chris 2026-06-16 21:44:37 -04:00
  • 14fc9df9d2 Add server-side content filtering to block spam chris 2026-06-16 08:21:58 -04:00
  • eef6d0cb7d Revert gallery/server workarounds — fixed in NPMplus instead chris 2026-06-16 08:05:29 -04:00
  • ca4e52336a Proxy /photos and /uploads through main-site to gallery backend chris 2026-06-16 07:55:56 -04:00
  • cdeb2f5406 Fix gallery images blocked by OpaqueResponseBlocking chris 2026-06-15 11:21:19 -04:00
  • 8b1e89cf04 Lower ALTCHA cost to 2000 chris 2026-06-13 19:23:55 -04:00
  • f59d19f3c2 Set ALTCHA to auto-solve on page load chris 2026-06-13 19:21:10 -04:00
  • 08ac545567 Harden ALTCHA: raise cost and add expiration chris 2026-06-13 19:11:19 -04:00
  • 10f9511c76 Add robots.txt and sitemap.xml chris 2026-06-13 19:09:02 -04:00
  • d20a2804ff Fix contact tile height stretching chris 2026-06-12 19:48:58 -04:00
  • ad5c984a46 Mirror live open/closed status to contact page chris 2026-06-12 19:45:21 -04:00
  • f8ff7f0d94 Revert "Mirror contact tiles to homepage, consolidate hours into tile" chris 2026-06-12 19:44:38 -04:00
  • 483b36999b Mirror contact tiles to homepage, consolidate hours into tile chris 2026-06-12 19:43:29 -04:00
  • 5cd7b29b63 Improve contact page layout and visual design chris 2026-06-12 19:38:39 -04:00
  • 418fef1a15 Remove email obfuscation from contact page chris 2026-06-12 19:36:54 -04:00
  • 01cad11472 Fix ALTCHA widget not loading or submitting chris 2026-06-12 10:44:05 -04:00
  • 5e6b201336 Add Cache-Control: no-store to ALTCHA challenge endpoint chris 2026-06-12 09:20:17 -04:00
  • c503d6dd75 Easter egg: trigger on copyright symbol click only chris 2026-06-12 06:03:15 -04:00
  • 2ebbe4fbe0 Fix ALTCHA CDN path for v3 widget chris 2026-06-12 06:01:45 -04:00
  • c00f2de338 Upgrade main-site to Node 20 for Web Crypto globals chris 2026-06-12 05:56:40 -04:00
  • e7af5bca4a Fix store-status route always returning 401 chris 2026-06-11 14:53:39 -04:00
  • 9cac3a8e8a Fix altcha require path for Node 18 compatibility chris 2026-06-11 14:43:53 -04:00
  • 0652339539 Add ALTCHA widget to main page contact form chris 2026-06-11 14:25:27 -04:00
  • a89788f531 Add ALTCHA proof-of-work spam protection to contact form chris 2026-06-11 14:23:42 -04:00
  • 548c19f3fa Add UX improvements: thumbnails, auto-quote, shareable cart, order status chris 2026-06-10 08:26:22 -04:00
  • 9dd4aff35e Remove dead code: unused components, duplicate logic, orphaned route chris 2026-06-10 08:01:39 -04:00
  • f0b60f123d Fix store closure message rendering in dark mode chris 2026-06-09 21:05:13 -04:00
  • 781f990541 Add store kill switch to admin panel and estore chris 2026-06-07 00:52:31 -04:00
  • 2e5f253580 Polish: meta/OG tags, JSON-LD, 404 pages, typo fix chris 2026-06-07 00:47:26 -04:00
  • 0d57760df1 Contact form: set min date to today on event date picker chris 2026-06-07 00:35:32 -04:00
  • 77318fb477 Contact form: split name into first/last, add ntfy notification chris 2026-06-07 00:32:06 -04:00
  • cd18bd3937 Contact form: add emoji to subject, show event date instead of type chris 2026-06-07 00:27:50 -04:00
  • d026bc8217 Fix balloon animation: use Web Animations API instead of CSS custom properties in keyframes chris 2026-06-06 21:38:40 -04:00
  • 75b20e6ca2 Add debug logging to easter egg trigger chris 2026-06-06 21:29:51 -04:00
  • 181195dbbc Fix easter egg trigger: use touchstart on mobile, 5 taps in 3s chris 2026-06-06 21:23:05 -04:00
  • 066364d2b7 Fix easter egg trigger: 7 quick taps on non-interactive area chris 2026-06-06 21:15:26 -04:00
  • 2002d7f35a Add balloon easter egg — long press logo to trigger chris 2026-06-06 21:07:06 -04:00
  • 5900ce817e Fix dark mode: add data-theme=light to all main-site HTML pages chris 2026-06-06 21:01:38 -04:00
  • 6a2bf1f30b Fix nginx port: bind to 3000 instead of 80 for NPM compatibility chris 2026-06-06 20:59:04 -04:00
  • 0ec3766447 Wire SMTP env vars into main-site container, document in .env.example chris 2026-06-06 20:37:50 -04:00
  • aee1f10179 Sync native contact form to main-site, replace iframe chris 2026-06-06 20:32:05 -04:00
  • fca6e8da0a Add fulfillment state controls to admin orders panel chris 2026-06-06 20:22:23 -04:00
  • ca8773d3c3 Fix order complete: update fulfillment state alongside order state chris 2026-06-05 20:08:54 -04:00
  • ef38c42e17 Add Orders tab to admin panel for managing online orders chris 2026-06-05 20:03:52 -04:00
  • 02e49ba41b Fix checkout: block false slots when calendar down, add booking request fallback chris 2026-06-05 19:57:34 -04:00
  • a49075b167 Fix Apple Pay verification file — serve directly from nginx chris 2026-05-29 06:47:06 -04:00
  • 7d5f74a79e Serve Apple Pay verification file via nginx chris 2026-05-28 17:50:17 -04:00
  • 92ab3a5633 Add Google Pay and Apple Pay support; fix catalog category filter chris 2026-05-28 16:53:55 -04:00
  • 53a2ca03e7 fix: force Bulma light theme on admin page chris 2026-05-21 12:07:22 -04:00
  • 55055ae9bc fix: light theme for all admin modals chris 2026-05-21 12:02:56 -04:00
  • 1435964f6f feat: drag-to-select and full-header click in admin gallery chris 2026-05-21 11:49:31 -04:00
  • 7fce1632be feat: editable tag presets, next/prev modal nav, needs-tagging filter chris 2026-05-21 11:42:32 -04:00
  • 0e4461e957 fix: reseed sets createdAt from filename timestamp or file mtime chris 2026-05-21 11:29:11 -04:00
  • 633f1e2380 fix: reseed script now skips -sm and -md variant files chris 2026-05-20 15:48:06 -04:00
  • 2723a6d954 feat: replace text watermark with BPB logo SVG overlay on gallery uploads chris 2026-05-20 15:39:03 -04:00
  • 92cf44e5f5 fix: resolve gallery CORS failure and simplify API routing chris 2026-05-20 14:53:13 -04:00
  • 4a135a7919 fix: route gallery API through nginx, send Square receipts, unblock order completion chris 2026-05-20 14:32:00 -04:00
  • bb878c2a8a fix: apply 6.35% CT Sales Tax to all order line items chris 2026-05-11 15:46:36 -04:00
  • 5777788127 fix: point all Plausible scripts to self-hosted metrics instance chris 2026-05-10 13:15:41 -04:00
  • 8799892341 fix: add Plausible window initializer to estore layout chris 2026-05-10 10:40:54 -04:00
  • 973808088e revert: restore product image background to white chris 2026-05-10 10:34:24 -04:00
  • f45a1f807f fix: make product image rounded corners visible chris 2026-05-09 22:07:12 -04:00
  • e8240e383a fix: increase Square card form height to show postal code field chris 2026-05-09 13:24:23 -04:00
  • bbf08e4267 fix: hide subtotal line when it equals the total (no delivery/tax) chris 2026-05-09 13:16:33 -04:00
  • 8e283a4dff fix: update Green Tea hex to #b2ddc3, remove Pastel Magenta chris 2026-05-09 10:50:16 -04:00
  • 5643153a05 feat: add Magenta (#a01357) to Pinks & Reds color family chris 2026-05-09 10:41:50 -04:00
  • 07ae012aa3 feat: add Green Tea (#8a9f7f) to Greens color family chris 2026-05-09 10:39:34 -04:00
  • ed5db69a90 fix: replace placeholder phone number in privacy policy chris 2026-05-08 10:44:17 -04:00
  • e2af78ff55 fix: nginx waits for estore healthcheck before starting chris 2026-05-08 10:36:04 -04:00
  • 57cc5840b9 feat: obfuscate email with click-to-reveal across all pages chris 2026-05-08 10:23:50 -04:00
  • 3330c47af2 fix: secure admin API endpoints with Bearer token auth chris 2026-05-08 08:30:58 -04:00
  • c40db43c04 fix: replace literal \u2014 escape with em dash in notes placeholder chris 2026-05-08 07:57:27 -04:00
  • f969e5d242 feat: configurable booking lead time in admin (default 48h) chris 2026-05-08 07:48:13 -04:00
  • 134705792c fix: pass OSRM_URL from root .env into estore container chris 2026-05-05 16:40:53 -04:00
  • c240ec4ce6 fix: disable Next.js fetch cache for OSRM requests chris 2026-05-05 16:19:50 -04:00
  • 5bebd51ac4 fix: log OSRM failure reason and URL instead of silent fallback chris 2026-05-05 15:15:40 -04:00
  • 175305a28f fix: calendar event UTC times and slot query range chris 2026-05-05 14:52:06 -04:00
  • bb6c8a03a7 fix: calendar newlines, admin delivery window setting chris 2026-05-05 10:57:37 -04:00
  • ffd07e35bd fix: vinyl order attribution and 1-hour customer delivery window chris 2026-05-05 10:51:18 -04:00