Commit Graph

113 Commits

Author SHA1 Message Date
3c3ba7cb33 fix: reset mobile event drawer step after save 2026-05-25 09:37:07 -04:00
eea63b0c71 fix: validate mobile event drawer steps with schema 2026-05-25 09:33:25 -04:00
4ddcc44f84 chore: apply Biome formatting after mobile drawer implementation 2026-05-25 09:28:01 -04:00
3958b24307 refactor: remove isMobile forks from DialogContent and DialogFooter 2026-05-25 09:24:24 -04:00
ab3b32f419 fix: address code review issues from Task 4 (onSubmit, AiDraftBanner, STEP_FIELDS) 2026-05-24 22:42:50 -04:00
de03f9129b feat: add mobile Drawer branch with guided steps to EventDialog 2026-05-24 22:37:11 -04:00
77dcb98c25 fix: address code review issues from Task 3 (unused import, dead code, DrawerFooter layout) 2026-05-24 22:32:30 -04:00
260b77ee10 refactor: extract DetailsStep, ScheduleStep, RecurrenceStep into EventDialog 2026-05-24 22:19:27 -04:00
cad1e809a8 fix: remove Tailwind breakpoint prefixes from drawer.tsx 2026-05-24 22:16:54 -04:00
c5ac786e29 feat: install shadcn Drawer component via CLI 2026-05-24 22:07:52 -04:00
71e4133d57 fix(ai-toolbar): finalize normalized clipboard test coverage 2026-04-23 10:38:35 -04:00
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
c37c39a0ba fix(ai-toolbar): keep textarea paste on component path 2026-04-22 23:31:46 -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
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
7b61703b01 refactor(ai-toolbar): stack attachment previews by row 2026-04-22 17:35:12 -04:00
4e4cca193c refactor(ai-toolbar): use 70-30 desktop composer split 2026-04-22 17:29:11 -04:00
7f7c945396 feat(settings): add theme preference selector replacing header ModeToggle 2026-04-21 23:23:32 -04:00
3e3c8056b1 feat(sign-in): make auth buttons responsive with icon-only mobile affordance 2026-04-21 23:23:20 -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
276fbad45e chore: legacy cleanup
Signed-off-by: Dmytro Stanchiev <git@dmytros.dev>
2026-04-21 20:24:04 -04:00
915e0b7cf8 feat: redesign
Signed-off-by: Dmytro Stanchiev <git@dmytros.dev>
2026-04-21 20:23:15 -04:00
6bc84d5b58 feat(date-time-picker): add native date input alongside calendar popover
Replace the button-only trigger with a native <input type="date"> (or
datetime-local when not all-day) paired with an icon button that opens
the calendar popover.  This gives users direct keyboard entry while
keeping the rich calendar + quick-shortcut picker accessible.

- Add getInputValue helper to format the current value for the native
  input.
- Import the Input component.
- Restructure the layout to place the input and popover trigger
  side-by-side.
2026-04-15 18:21:17 -04:00
29bf4d2200 fix(time-picker): improve layout stability, a11y, and separator styling
- Change input group horizontal padding from px-3 to pl-3 pr-2 to
  better accommodate the trigger button.
- Add shrink-0 to the trigger button so it does not collapse in flex
  layouts.
- Mark the Clock icon with aria-hidden to keep it out of the
  accessibility tree.
- Forward the className prop in TimePickerSeparator and apply default
  muted-foreground text styling.
2026-04-15 18:21:09 -04:00
8d7948298b fix(button): suppress Firefox inner focus ring and padding
Add [&::-moz-focus-inner]:border-0 and [&::-moz-focus-inner]:p-0 to
the base buttonVariants to prevent the extra inner dotted outline and
padding that Firefox renders on focused buttons.
2026-04-15 18:21:03 -04:00
82d04e7a84 feat: add reusable date and time picker primitives 2026-04-11 00:02:51 -04:00
42989b1437 style: format recurrence helpers 2026-04-10 15:40:56 -04:00
f3350e0124 feat: simplify date picker shortcuts 2026-04-10 15:40:47 -04:00
27492ee01f feat: add location autocomplete 2026-04-10 15:40:38 -04:00
12849b2362 feat: add AI settings controls 2026-04-10 15:40:29 -04:00
e01a7ed1ad feat: use friendly event date labels 2026-04-09 17:41:37 -04:00
12f2fd95dc refactor: centralize event dialog form state 2026-04-09 17:41:26 -04:00
911e5735a4 feat: add shared recurrence helpers 2026-04-09 17:41:04 -04:00
95bc5db9a8 refactor: move calendar chrome into the home page 2026-04-09 13:25:52 -04:00
22224bebc6 feat: redesign local calendar workspace 2026-04-09 13:25:30 -04:00
f05e6f5792 feat: clarify AI draft messaging in toolbar 2026-04-09 11:59:45 -04:00
ecff8bebb1 feat: review single AI-generated events before saving 2026-04-09 11:59:32 -04:00
aef22f704f ️ feat: keep event actions menu visible 2026-04-09 01:10:37 -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