Commit Graph

4447 Commits

Author SHA1 Message Date
Alex Gleason a03045ec85 Add Wall tab to user profiles with NIP-22 comments on kind 0
Wall posts are kind 1111 comments targeting the profile owner's kind 0
event (A tag: 0:pubkey:). Comments are filtered by the target user's
kind 3 follow list to show only posts from people they follow. Uses
the same ComposeBox/ReplyComposeModal pattern as /i/:uri routes.

If the profile owner has no follow list, an empty state is shown.
2026-02-28 17:10:06 -06:00
Alex Gleason 713bf52cfb Add configurable appName to AppConfig, replacing hardcoded 'Ditto' in page titles and UI text
All runtime references to 'Ditto' now use config.appName, which defaults
to 'Ditto' and can be overridden at build-time via ditto.json. This
covers useSeoMeta titles across all pages, the welcome screen, feed CTA,
Nostr Connect app name, encrypted settings event title, and the
AdvancedSettings zap comment placeholder.
2026-02-28 17:09:37 -06:00
Alex Gleason 1bcc729a18 Merge branch 'main' of gitlab.com:soapbox-pub/ditto-mew 2026-02-28 16:55:51 -06:00
Alex Gleason 9a7445220c Fix ReferenceError when __DITTO_CONFIG__ is not defined
Guard the __DITTO_CONFIG__ global with a typeof check to prevent
an uncaught ReferenceError when Vite's define replacement has not
been applied (e.g. in certain runtime contexts).
2026-02-28 16:55:02 -06:00
Chad Curtis 0be9f809f2 Fix diagonal stripes layout using SVG polygons for crisp edges 2026-02-28 16:52:23 -06:00
Chad Curtis 5e161da508 Show eye button in post detail view for color moments 2026-02-28 16:40:06 -06:00
Chad Curtis 52860eb64d Fix eye button: img-based SVG rendering, text left/eye right, CSS blink
- Render eye as data-URI img so browser anti-aliases it cleanly without
  creating a compositing layer that affected adjacent elements (the
  foreignObject approach was causing the diagonal stripes to look pixelated)
- Move 'Set as theme' text to the left of the eye, matching the requested layout
- Restore CSS animate-eyelid-blink via overflow-hidden on the eye container
  (the SVG animate element approach didn't fire correctly with React mount/unmount)
- Use React useId for stable unique IDs
- Revert diagonal stripes to original hard-stop gradient (the feathering was wrong)
2026-02-28 16:36:13 -06:00
Chad Curtis 51e84ffa8f Add blinking eye icon to color moment Set as theme button
Replaces the SwatchBook icon with a small circular eye (using the palette
colors for iris/pupil ring) that blinks using espy's eyelid-blink animation
when tapped. The eyelid fills with the palette's midpoint color and carries
the EyeClosed lash icon at its edge, matching the interaction pattern from
espy's color picker.
2026-02-28 16:26:38 -06:00
Chad Curtis 6dea4e2e03 Reset More menu state when mobile drawer closes
The MobileDrawer Sheet stays mounted when closed, so moreMenuOpen state
persisted across open/close cycles. Once expanded, it appeared always open.
Now moreMenuOpen resets to false whenever the drawer closes, regardless of
whether it was closed via navigation or backdrop tap/swipe.
2026-02-28 16:22:36 -06:00
Chad Curtis 3227690bda Fix missing bottom padding on Settings page for mobile/APK
Removed noBottomSpacer override so the standard h-14 bottom spacer
from MainLayout is rendered, matching every other page's behavior.
2026-02-28 16:20:48 -06:00
Chad Curtis fc5dbc3e80 Pass relay and author hints from nevent1 to EmbeddedNote
When a nostr:nevent1 URI is decoded in NoteContent, the relay hints and
author pubkey embedded in the identifier were being discarded. This meant
EmbeddedNote would only query the user's configured relays and skip the
relay hints, causing quoted events hosted on other relays to silently fail
to load. Now the hints are stored in the nevent-embed token and forwarded
to EmbeddedNote → useEvent.
2026-02-28 16:19:38 -06:00
Alex Gleason 01b071d1c3 Add PUBLIC_DIR env var to merge external public files at build time
Files in the external directory take precedence over the built-in
public/ directory. Works in both dev (middleware) and build (post-copy)
modes. Also fix missing magicMouse property in TestApp.
2026-02-28 15:29:29 -06:00
Alex Gleason 2971139bbd Merge branch 'main' of gitlab.com:soapbox-pub/ditto-mew 2026-02-28 14:26:50 -06:00
Chad Curtis a570452626 fix: respect safe area inset in mobile bottom nav
Move h-14 from the <nav> to an inner wrapper div, letting safe-area-bottom padding expand the overall nav height on devices with a home indicator rather than squishing the content area.
2026-02-28 13:50:47 -06:00
Alex Gleason 3398a7f459 Merge branch 'main' of gitlab.com:soapbox-pub/ditto-mew 2026-02-28 11:52:15 -06:00
Alex Gleason 8adbaca9ec Fix custom fonts not loading on machines without system-installed Google Fonts
The @fontsource-variable packages register fonts with a ' Variable' suffix
(e.g., 'Comfortaa Variable'), but the CSS override was using the canonical
name without the suffix (e.g., 'Comfortaa'). On machines with the Google
Fonts installed locally, the browser found the font via the system fallback,
masking the bug.

Add a cssFamily field to BundledFont that holds the actual @font-face name
registered by fontsource, and use it in the CSS font-family override and
FontPicker inline styles. The canonical family name (without suffix) is
preserved for Nostr event f-tags and UI display labels.
2026-02-28 11:50:53 -06:00
Chad Curtis 92dceb8af4 Simplify sigil timer: show after 2min on page, no interaction tracking 2026-02-28 04:13:45 -06:00
Chad Curtis 4611dc145f Don't reset sigil inactivity timer on mousemove 2026-02-28 04:13:05 -06:00
Chad Curtis 5430d0278a Thicken settings chevron stroke to 4 2026-02-28 04:10:18 -06:00
Chad Curtis 8445d5148e Magic sigil appears after 2min inactivity; remove sparkle from Magic header 2026-02-28 04:09:39 -06:00
Chad Curtis 5e826b0395 Magic sigil: hidden easter egg under settings, unlocks magic mouse on click 2026-02-28 04:07:44 -06:00
Chad Curtis 5c206fd607 Magic Mouse: click fires magical shockwave ring + radial burst 2026-02-28 04:02:53 -06:00
Chad Curtis fc0ff247ff Restore particle density after spawn throttle 2026-02-28 03:57:52 -06:00
Chad Curtis 4f3d670ddd Fix Magic Mouse core jitter: throttle particle spawning to every 3rd frame 2026-02-28 03:57:26 -06:00
Chad Curtis c20a936de7 Refine Magic Mouse orb: slow magic flame pulse, warmer ember glow 2026-02-28 03:56:19 -06:00
Chad Curtis 794e6bc9df Slow down Magic Mouse fire particles, add steady center glow sphere 2026-02-28 03:54:45 -06:00
Chad Curtis e4cc47ba51 Add Magic settings page with Magic Mouse cursor fire effect
- Add /settings/magic entry to settings page with magic-intro.png icon
- New MagicSettingsPage with toggle for Magic Mouse mode
- Add magicMouse boolean to AppConfig (optional, defaults to false)
- CursorFireEffect: canvas overlay emitting fire particles in primary color
- Mount CursorFireEffect in MainLayout when magicMouse is enabled
2026-02-28 03:47:07 -06:00
Chad Curtis 158b2c5fb4 Fix pinned post hover by lifting bg highlight to wrapper div 2026-02-28 03:28:13 -06:00
Chad Curtis 1d505e4183 Fix pinned post hover highlight to cover both label and card 2026-02-28 03:27:13 -06:00
Chad Curtis c17a0b914c Use ImageGallery for treasure/geocache images instead of single img tag 2026-02-28 03:25:44 -06:00
Chad Curtis 50be154dc4 Fix mobile drawer More list overflowing viewport by rendering inline 2026-02-28 03:22:34 -06:00
Chad Curtis 8761f4d197 Fix extra bottom scroll and standardize mobile nav height to h-14 2026-02-28 03:18:46 -06:00
Chad Curtis da1533bccf Unify sidebar icon/label sources of truth and rename items
- Create extraKindIcons.ts as single source of truth for extra-kind icons
- BUILTIN_ICON_COMPONENTS in SidebarNavItem covers system items only
- sidebarItemIcon() merges both maps; all pages/routes use it
- EXTRA_KINDS is now source of truth for labels and kind numbers in AppRouter, page titles, and onboarding (CONTENT_KINDS derived from EXTRA_KINDS)
- Remove themes from BUILTIN_SIDEBAR_ITEMS (it lives in EXTRA_KINDS)
- Delete dead SIDEBAR_ITEM_ICONS export
- Rename 'Theme' → 'Vibe', 'Colors' → 'Color Moments'
- Articles icon: FileText → BookOpen; Settings icon: Settings → Scroll
- Hide Vibe settings back button on non-mobile (md:hidden)
- Settings and Bookmarks page headers aligned to same structure
- Codex of Configuration opacity 40% → 60%
2026-02-28 03:12:51 -06:00
Alex Gleason 874c374434 Make flag emojis in post content clickable, linking to /i/iso3166:<CODE> pages 2026-02-28 00:19:36 -06:00
Alex Gleason 6a685386e0 Merge branch 'main' of gitlab.com:soapbox-pub/ditto-mew 2026-02-28 00:17:07 -06:00
Alex Gleason 33fcf3cac0 Remove 'ISO 3166' label and 'View on Wikipedia' link from country pages 2026-02-28 00:15:34 -06:00
Chad Curtis 888f4bc502 Unify welcome step copy for both signup and returning user flows 2026-02-28 00:12:37 -06:00
Chad Curtis 8503f072c3 Restore welcome screen before theme step in signup flow 2026-02-28 00:12:37 -06:00
Chad Curtis 89bc77479a Onboarding content step: remove polls/packs, add Magic Decks, rename Colors to Color Moments, sync sidebar order on save 2026-02-28 00:12:37 -06:00
Chad Curtis 965a563bef Move carousel arrows outside scroll area; enable touch swipe 2026-02-28 00:12:37 -06:00
Chad Curtis c5df7a2164 Fix mobile carousel card layout: full width slides, overlaid arrows, no wasted padding 2026-02-28 00:12:37 -06:00
Chad Curtis 3c10d8f5e2 Fix desktop center panel shrink on background theme; clear background when switching to non-background theme; 1-per-page carousel with chevron arrows and auto-select on swipe 2026-02-28 00:12:37 -06:00
Chad Curtis 94e5b1a78d Swipeable 2-per-page carousel with dot indicators for theme picker on mobile 2026-02-28 00:12:37 -06:00
Chad Curtis f781ac6891 Larger scroll cards on mobile; semi-transparent center panel for bg preview on desktop 2026-02-28 00:12:37 -06:00
Chad Curtis 9dd40ce1dc Horizontal scroll strip for theme grid on mobile onboarding 2026-02-28 00:12:37 -06:00
Chad Curtis b67619655c Use shared ThemeGrid in onboarding; show background preview in side panels 2026-02-28 00:12:37 -06:00
Chad Curtis b9b631fb6a Move settings to bottom of default sidebar order 2026-02-28 00:12:37 -06:00
Chad Curtis 642ff4e8f3 Remove vines, streams, follow packs, and trends from default sidebar 2026-02-28 00:12:37 -06:00
Chad Curtis f8acb1b630 Sync sidebar order, feed tabs, and advanced URLs to encrypted settings; remove sidebar column from content settings 2026-02-28 00:12:37 -06:00
Alex Gleason f30e3735e9 Add inline compact compose box to external content pages 2026-02-27 23:49:09 -06:00