Commit Graph

262 Commits

Author SHA1 Message Date
22fe3ec97b style: overhaul design tokens, shadows, animations, and glass utilities
- Replace warm/mixed color palette with clean cool blue-grey tokens
- Reduce border-radius from 1.25rem to 0.75rem
- Rewrite shadow system using oklch with proper depth scale
- Switch fonts from custom serif/sans to Geist Sans/Mono CSS vars
- Add CSS animation keyframes (fade-in, slide-up, slide-down, scale-in)
- Add glass, glass-card, and glass-strong utility classes
2026-04-08 00:55:55 -04:00
40dfde34a2 deps: add framer-motion and radix-ui packages 2026-04-08 00:55:48 -04:00
865bef63ac chore: add .chrome to .gitignore 2026-04-08 00:55:45 -04:00
9e27b41efe chore: migrate ui skills to bun
Signed-off-by: Dmytro Stanchiev <git@dmytros.dev>
2026-04-07 23:18:56 -04:00
c4865a6d20 feat: install ui skills
Signed-off-by: Dmytro Stanchiev <git@dmytros.dev>
2026-04-07 23:17:14 -04:00
d002bbc29e ️ feat: fix accessibility warnings, PWA icons, and form field attributes
- add DialogDescription (sr-only) to EventDialog to satisfy Radix UI
  aria-describedby requirement and silence the React console warning
- add htmlFor/id pairing to the all-day checkbox label in EventDialog
- add id and name attributes to all raw form fields (textarea, checkbox)
  in event-dialog to resolve biome a11y lint warnings (4 fields fixed)
- add name attribute to hidden file inputs in image-picker and ics-file-picker
- generate public/icon-192x192.png and public/icon-512x512.png so the PWA
  manifest no longer returns 404 for the app icons
2026-04-07 23:08:48 -04:00
cbd2559169 🐛 fix: normalize AI-generated dates to valid ISO offset datetimes
- add normalizeAiDateString() to coerce bare ISO datetimes, date-only
  strings, and fractional-second variants into offset-aware format
- apply via z.preprocess in AiEventResponseItemSchema so Zod validation
  no longer rejects AI responses missing a timezone offset
- fix system prompt to use toISOString() (unambiguous UTC) and clarify
  expected datetime format for the AI model
- install bun-types and add to tsconfig so bun:test resolves cleanly
- add 8 behaviour-driven tests covering all normalizer edge cases
2026-04-07 23:01:42 -04:00
f3ccbf5db5 fix: ignore .chrome dir that breaks turbopack
Signed-off-by: Dmytro Stanchiev <git@dmytros.dev>
2026-04-07 22:59:41 -04:00
735350a4d1 chore: create .chrome directory
Signed-off-by: Dmytro Stanchiev <git@dmytros.dev>
2026-04-07 17:06:19 -04:00
685241c92f chore: update skills
Signed-off-by: Dmytro Stanchiev <git@dmytros.dev>
2026-04-07 17:06:08 -04:00
7ffcb4dc43 chore: add dokploy mcp
Signed-off-by: Dmytro Stanchiev <git@dmytros.dev>
2026-04-07 16:12:28 -04:00
be70a4579f Merge pull request 'feat: multimodal AI event creation with image support' (#1) from image-parse into main 2026-04-07 15:21:27 -04:00
f38b0188df 🚨 fix: resolve all linter and typecheck warnings across codebase 2026-04-07 14:42:24 -04:00
54ca910609 🔧 chore: add biome config for Tailwind CSS and CSS module declarations 2026-04-07 14:42:17 -04:00
fab0d2ff47 refactor(components): derive ImagePicker variant types from buttonVariants
Replace manually duplicated variant/size type literals with
VariantProps<typeof buttonVariants> for type safety and
consistency with the Button component.
2026-04-07 13:11:42 -04:00
a7716d87df fix(components): add unoptimized image prop, overflow containment, and accessibility
Add unoptimized prop to image preview to support blob URLs, contain
overflow on preview container, replace div with semantic section
element in DragDropContainer with aria-label, and import shared
image constants.
2026-04-07 13:11:35 -04:00
096f548ec3 refactor(page): extract AI handler helpers and add client-side image validation
Break down the monolithic handleAiCreate into focused helpers
(sendAiRequest, persistAiEvents, populateEventForm), add client-side
image file validation before upload, and use toast.promise finally
callback for loading state cleanup.
2026-04-07 13:11:26 -04:00
79f98ebfd3 refactor(api): simplify AI event route with extracted utilities and env-based model
Replace inline JSON extraction with the shared json-utils module,
extract chat response content parsing into a dedicated helper, make
the AI model configurable via AI_MODEL env var, and improve error
messages for production safety.
2026-04-07 13:11:15 -04:00
7bb4f2be9d refactor(types): strengthen Zod schemas with regex validation and derive CalendarEvent
Add regex-based data URL validation for images, compute binary size
from base64 for accurate 10MB limit, enforce datetime strings with
offset for start/end fields, and derive CalendarEvent from the AI
response item type to eliminate field duplication.
2026-04-07 13:11:05 -04:00
dc4204a740 refactor(lib): extract shared image constants and JSON parsing utilities
Move image extensions, MIME types, and size limit into a dedicated
constants module. Extract JSON-from-text parsing into a pure utility
function for reuse across the codebase.
2026-04-07 13:10:59 -04:00
a0a7e021a8 style: standardize import ordering, type imports, and formatting in source files
Sort imports alphabetically, convert value imports to type-only where
appropriate, normalize indentation to tabs, and sort exports
alphabetically across UI components, pages, and lib modules.
2026-04-07 13:10:49 -04:00
cbae9fa1c9 style: standardize formatting in opencode tooling files
Reformat JSON configs and TypeScript scripts to use consistent
tab indentation, semicolons, and double quotes.
2026-04-07 13:10:35 -04:00
4e09059a3d chore(deps): add @typescript/native-preview, biome lint integration, and typecheck script
Add @typescript/native-preview for tsgo typechecking, integrate biome
check into the lint script, and add a dedicated typecheck script.
2026-04-07 13:10:16 -04:00
95de6ae46a feat(page): wire image upload state, base64 conversion, and API integration into home page 2026-04-07 11:58:10 -04:00
5e888ce7ae feat(components): add image preview, picker, and clear controls to AIToolbar 2026-04-07 11:58:01 -04:00
94de1dde0e feat(components): add image drag-drop support to DragDropContainer 2026-04-07 11:57:47 -04:00
c02c6ece5d feat(components): add ImagePicker file upload component 2026-04-07 11:57:32 -04:00
8d1b04f646 feat(api): refactor AI event route with Zod validation, multimodal image support, and JSON extraction 2026-04-07 11:57:22 -04:00
3d6999312c feat(lib): add AI event Zod schemas for request validation and response parsing 2026-04-07 11:57:11 -04:00
6944215578 chore(deps): add zod dependency 2026-04-07 11:57:01 -04:00
f8213883df chore: zod skill
Signed-off-by: Dmytro Stanchiev <git@dmytros.dev>
2026-04-07 11:31:34 -04:00
c2263602c4 chore: install openagent opencode
Signed-off-by: Dmytro Stanchiev <git@dmytros.dev>
2026-04-07 11:31:26 -04:00
b4c03ff25e style(ui): standardize UI component file formatting 2026-04-07 08:10:13 -04:00
fd5716f39e style(components): standardize main component file formatting 2026-04-07 08:10:05 -04:00
954e73c007 style(app): standardize app page file formatting 2026-04-07 08:09:56 -04:00
48ef4f60df style(api): standardize API route file formatting 2026-04-07 08:09:49 -04:00
e39ba6be97 style(lib): standardize utils file formatting 2026-04-07 08:09:43 -04:00
3b7c246a47 style(lib): standardize rfc5545-types file formatting 2026-04-07 08:09:40 -04:00
5be55cec7c style(lib): standardize events-db file formatting 2026-04-07 08:09:36 -04:00
dab77befc2 style(auth): standardize auth file formatting 2026-04-07 08:09:32 -04:00
076cf8acd0 style(db): standardize database source file formatting 2026-04-07 08:09:26 -04:00
ae8d547486 style(public): standardize manifest.json formatting 2026-04-07 08:09:19 -04:00
3d9e2452c4 style(db): standardize database migration file formatting 2026-04-07 08:09:15 -04:00
db9d6399dd style(config): standardize configuration file formatting 2026-04-07 08:09:09 -04:00
a897e8ead1 feat(lib): add OpenRouter client implementation 2026-04-07 08:08:58 -04:00
c3e3018018 feat(deps): add @openrouter/sdk dependency 2026-04-07 08:08:51 -04:00
be389c6cfa style(skills): standardize utility-types.ts formatting 2026-04-07 08:08:44 -04:00
ada8e03a04 chore(config): add OpenRouterTeam to skill selector repos 2026-04-07 08:08:36 -04:00
956de68591 style(skills): standardize skill metadata JSON formatting 2026-04-07 08:08:28 -04:00
e25f917b9a chore(skills): add create-agent and typescript-sdk skills 2026-04-07 08:08:01 -04:00