Skip to content

feat(inbox-zero-cats): options UI rewrite with tabs, content packs, and toast/dialog system - #141

Merged
Mordech merged 45 commits into
mainfrom
feat/options-ui-rewrite-v2
Mar 27, 2026
Merged

feat(inbox-zero-cats): options UI rewrite with tabs, content packs, and toast/dialog system#141
Mordech merged 45 commits into
mainfrom
feat/options-ui-rewrite-v2

Conversation

@Mordech

@Mordech Mordech commented Mar 21, 2026

Copy link
Copy Markdown
Owner

Summary

  • Rewrote the options/popup UI with a tab-based layout (images, titles, settings)
  • Added content packs (cats, dogs, nature) with pack switching, backup/restore, and a confirm dialog
  • Added a toast notification system for pack-switch feedback
  • Minor improvements to mrd-button (display block), image grid layout, and mrd-toggle-theme tooltip

Test Plan

  • Verify tab navigation works in Chrome and Firefox
  • Switch content packs and confirm the dialog and toast appear correctly
  • Test backup/restore data flow in the settings tab
  • Confirm image grid, delete button hover, and title list render correctly
  • Smoke-test mrd-toggle-theme tooltip on hover

🤖 Generated with Claude Code

Mordech and others added 30 commits March 14, 2026 09:48
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace collapsible sections with a Photos/Titles tab layout using
@mordech/web-components (mrd-button, mrd-chip, mrd-text-field,
mrd-toggle-theme). Add subtitle customization feature and photo grid
with circular images. Remove footer and simplify HTML shells.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace inline lit-html svg template literals with standalone .svg files
imported as text via esbuild and rendered with unsafeSVG directly at
usage sites. Change esbuild SVG loader from 'file' to 'text'.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace flexbox wrap with a 4-column CSS grid for consistent image
grid alignment.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add mrd-text-field to web-components exports so it registers when
imported. Fix image grid items stretching by constraining li.image
width and centering within grid cells.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…title list

- Use auto-fill grid for responsive photo layout
- Add gap between title rows
- Use ellipsis for long titles instead of pre-line wrapping
- Make full-width buttons display block to stretch properly

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…osition

- Reduce body width from 35rem to 22rem to match Figma design
- Use ::part(button) to stretch full-width buttons inside shadow DOM
- Move image delete button back to bottom-right corner

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…lock

Add :host { display: inline-flex } and .btn { width: 100% } so the
internal button fills the host element. Setting display: block on the
host from outside now stretches the button without ::part overrides.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Move `types` from root level into `compilerOptions`, add `include` for
src files, and remove side-effect imports from index.d.ts that were
breaking the ambient SVG module declaration.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…tPack helper

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…age-setters

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…panel

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
… CLAUDE.md

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
… and polish styles

- Add settings tab to topBar with settingsIcon.svg
- selectPack now immediately updates catImageUrls (pack images + user uploads)
- Export settingsSection from sections/index.ts
- Simplify settings hint text; switch export/import buttons to tonal variant
- Add logo.svg and settingsIcon.svg assets; add fill="currentColor" to delete icon
- Fix createCatEmptyState catch to return typed fallback
- Add padding-block-start to lockup footer; remove text-transform/letter-spacing from hint
- Remove svg size override from mrd-toggle-theme styles

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ings section

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…iss button, update CSS comment

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…h toast

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Mordech and others added 12 commits March 21, 2026 00:09
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ogs and nature packs

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…le art PackKey

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ex.ts

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ack switch dialog

- Add CatTitle interface { text, custom? } replacing string[] for catTitles storage
- Pack switch now auto-merges: keeps custom:true titles, replaces pack defaults
- Remove Keep/Switch confirm dialog; show one-time warning for old-format users
- resetTitles reads activePack from storage instead of hardcoding cats
- Lazy migration: normalizeTitles() handles old string[] in memory at all read paths
- Content script has inline string fallback for stale storage
- Import migrates old string[] backups via normalizeTitles
- Add @mordech/web-components import to all files using custom elements
- Fix topBar theme type: string → Theme, add ?? 'light' fallback
- Add title attribute to itemList spans for ellipsis tooltip
- Remove hideDismiss from confirmDialog (Cancel always shown)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…gacy title format

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Stack text above buttons with column flex direction
- Align buttons to end
- Apply text-wrap: pretty to dialog message

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@netlify

netlify Bot commented Mar 21, 2026

Copy link
Copy Markdown

Deploy Preview for mordech-web-components ready!

Name Link
🔨 Latest commit d0be119
🔍 Latest deploy log https://app.netlify.com/projects/mordech-web-components/deploys/69c6fde0a5fc650007ca1dec
😎 Deploy Preview https://deploy-preview-141--mordech-web-components.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@netlify

netlify Bot commented Mar 21, 2026

Copy link
Copy Markdown

Deploy Preview for mordech-react-components ready!

Name Link
🔨 Latest commit d0be119
🔍 Latest deploy log https://app.netlify.com/projects/mordech-react-components/deploys/69c6fde0ca70af000877ce4f
😎 Deploy Preview https://deploy-preview-141--mordech-react-components.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@Mordech
Mordech merged commit 0a17264 into main Mar 27, 2026
9 checks passed
@Mordech
Mordech deleted the feat/options-ui-rewrite-v2 branch March 27, 2026 22:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant