Commit Graph

34 Commits

Author SHA1 Message Date
42a888df76 fix(ai-toolbar): align attach and fallback modifier rules 2026-04-23 05:16:41 -04:00
502bd6237a fix(ai-toolbar): align fallback shortcut and identity guards 2026-04-23 05:10:55 -04:00
85f4066ce2 test(ai-toolbar): cover normalized clipboard paste paths 2026-04-23 05:04:00 -04:00
35731fb684 fix(ai-toolbar): use stable clipboard fallback identities 2026-04-23 04:53:39 -04:00
d9aa035dce fix(ai-toolbar): tighten modifier and clipboard fallback guards 2026-04-23 04:47:11 -04:00
470d76d46c fix(ai-toolbar): honor AI state in shortcuts and clipboard dedup 2026-04-23 04:39:27 -04:00
6f7f727b27 test(ai-toolbar): complete modifier and dedup coverage 2026-04-23 04:31:21 -04:00
1d2bbdf46c test(ai-toolbar): cover shortcut and dedup behavior 2026-04-22 23:54:01 -04:00
f2816247c1 test(ai-toolbar): reduce layout brittleness and cover shortcuts 2026-04-22 23:49:29 -04:00
6f46925596 test(ai-toolbar): assert runtime layout and action states 2026-04-22 23:41:26 -04:00
62e6be5742 test(ai-toolbar): replace stale layout contracts 2026-04-22 23:36:29 -04:00
c37c39a0ba fix(ai-toolbar): keep textarea paste on component path 2026-04-22 23:31:46 -04:00
b048e34891 test(ai-toolbar): prove textarea paste bypasses global listener 2026-04-22 23:28:22 -04:00
c92633e647 test(ai-toolbar): cover editable paste behavior 2026-04-22 23:25:08 -04:00
46f7aff815 fix(ai-toolbar): ignore editable targets during global paste fallback 2026-04-22 23:19:18 -04:00
8cc868c22a test(ai-toolbar): verify paste listener gating at component boundary 2026-04-22 23:15:29 -04:00
9f23597e53 test(ai-toolbar): cover paste gating behavior 2026-04-22 17:58:14 -04:00
bfb29d3986 fix(ai-toolbar): gate paste capture on AI availability 2026-04-22 17:54:49 -04:00
e817fb52cf test(ai-toolbar): verify masonry prompt wrapping contract 2026-04-22 17:48:15 -04:00
a93d95ee2e fix(ai-toolbar): wrap masonry prompt cards correctly 2026-04-22 17:45:57 -04:00
e1a12d0c71 refactor(ai-toolbar): cluster example prompts in masonry layout 2026-04-22 17:42:29 -04:00
8b17d75193 test(ai-toolbar): harden stacked preview regression 2026-04-22 17:39:34 -04:00
f5058803b6 test(ai-toolbar): harden stacked preview regression 2026-04-22 17:37:54 -04:00
7b61703b01 refactor(ai-toolbar): stack attachment previews by row 2026-04-22 17:35:12 -04:00
7efc22c19c test(ai-toolbar): tighten desktop layout regression 2026-04-22 17:32:31 -04:00
4e4cca193c refactor(ai-toolbar): use 70-30 desktop composer split 2026-04-22 17:29:11 -04:00
7df8419368 refactor(layout): promote AI capture above timeline on desktop
Give the composer full-width desktop space before the event timeline so capture stays prominent and the toolbar can keep its intended two-column composition. Add source-level regression tests to lock the new page hierarchy in place.
2026-04-22 11:34:37 -04:00
7a917e5c22 feat(ui): drive mobile layouts from useIsMobile 2026-04-21 22:46:07 -04:00
a2d9782d8f refactor(ui): switch surfaces to shared shadow tokens 2026-04-21 21:43:17 -04:00
915e0b7cf8 feat: redesign
Signed-off-by: Dmytro Stanchiev <git@dmytros.dev>
2026-04-21 20:23:15 -04:00
12849b2362 feat: add AI settings controls 2026-04-10 15:40:29 -04:00
92f60d3a9a 📱 fix: hide keyboard shortcuts trigger on mobile 2026-04-09 00:59:15 -04:00
513aafcebc feat: support multiple image uploads for AI event generation 🖼️
- Updated OpenRouter integration to accept an array of image URLs
- Updated ImagePicker to use the `multiple` attribute natively
- Added `appendImagesDeduped` for handling client-side image deduplication
- Enhanced clipboard pasting to extract multiple images at once
- Rendered multiple images in a horizontal thumbnail strip in the AIToolbar
- Added tests to cover multi-image logic and AI request mapping
2026-04-08 20:46:43 -04:00
722c0f0f7d 🚸 feat: redesign AI toolbar with two-zone layout and HoverCard shortcuts popover
- Split composer into AI zone (primary accent) and data actions zone (neutral)
- Move Attach/Generate to labeled footer bar below textarea (left/right aligned)
- Add info icon with HoverCard (hover preview) + Popover (pinned click) showing identical keyboard shortcuts content using shadcn HoverCard to fix theme inconsistency vs Tooltip
- Expose imperative triggerRef on ImagePicker for keyboard shortcut access
- Wire TooltipProvider in root layout; install shadcn kbd and hover-card
- Unauthenticated state shows locked CTA with real sign-in button weight
- Add behavioral contract tests for footer bar, info trigger, and zone layout
2026-04-08 13:08:36 -04:00