Commit Graph

792 Commits

Author SHA1 Message Date
Ulas Kalayci 1ac2fbd2b5 feat: restructure bottom nav — kitchen/search buttons, navItems cleanup, g-k shortcuts 2026-04-29 19:59:15 +02:00
Ulas Kalayci 88778a95c9 feat: integrate kitchen tabs bar into meals, recipes, shopping 2026-04-29 19:56:41 +02:00
Ulas Kalayci 7e137d1c21 feat: add kitchen-tabs utility, CSS, token and test 2026-04-29 19:55:28 +02:00
Ulas Kalayci b59c63bbb7 feat: add nav.kitchen, nav.search and shortcuts.goKitchen i18n keys 2026-04-29 19:54:07 +02:00
Rafael Foster f44d018d5c fix(docs): restore backups without helper script 2026-04-29 14:35:59 -03:00
Rafael Foster a31865beef fix(docs): simplify docker restore command 2026-04-29 14:26:58 -03:00
Rafael Foster 7d02ac6c18 fix(settings): guard backup binding during cache updates 2026-04-29 14:07:21 -03:00
Rafael Foster 0cbd93e4e0 feat(settings): add database backup management 2026-04-29 14:04:04 -03:00
Ulas Kalayci a872ac52a9 chore: release v0.33.1
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-29 19:03:04 +02:00
Ulas Kalayci 7e61a83db9 docs: update README to reflect v0.31–v0.33 features
- Add Documents module entry (new in v0.32.0)
- Update Tasks with archive and inline reminder presets
- Update Calendar with overlapping events and file attachments
- Update Family with phone/email/birthday fields and sync details
- Correct language count from 14 to 15, add Ukrainian (uk)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-29 17:28:05 +02:00
Ulas Kalayci 02e12bad54 chore: release v0.33.0 2026-04-29 16:54:53 +02:00
Ulas Kalayci ab30c2ab35 feat: overlapping event layout and calendar event attachments (#107)
- Overlapping timed events in week/day views now render side-by-side using a column-layout algorithm
- Calendar events support optional file attachments (images, PDFs, documents up to 5 MB)
- Attachment images shown in event popup; other files as download links
- Birthday modal redesigned with photo/avatar side-by-side with name/date fields
- DB migration 27: adds attachment_name, attachment_mime, attachment_size, attachment_data columns to calendar_events
- Server-side MIME allowlist and size validation for attachments
- i18n: all 15 locales include new attachment keys (de properly translated)

Co-Authored-By: Rafael Foster <rafaelfoster@users.noreply.github.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-29 16:54:02 +02:00
Ulas Kalayci 3fc95da48f fix: innerHTML violations, German translations, and PT diacritics
- Replace innerHTML with replaceChildren/insertAdjacentHTML in birthdays.js and calendar.js (hook compliance)
- Translate calendar attachment i18n keys to German in de.json
- Fix missing diacritical marks in pt.json attachment strings

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-29 16:53:45 +02:00
Ulas Kalayci bf498b0a12 chore: release v0.32.3 2026-04-29 16:48:06 +02:00
Ulas Kalayci d6ab4bb02f fix: explicit grid-column for widget--secondary at 768px breakpoint 2026-04-29 16:44:13 +02:00
Ulas Kalayci 593ca9009e feat: visual hierarchy in dashboard — primary widgets (tasks, calendar) span 2 columns
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-29 16:42:09 +02:00
Ulas Kalayci f973601922 feat: self-host Plus Jakarta Sans variable font for consistent cross-platform typography 2026-04-29 16:40:00 +02:00
Ulas Kalayci 115796c3c5 fix: use overflow: clip on page roots to allow sticky toolbar positioning 2026-04-29 16:36:53 +02:00
Ulas Kalayci 91f15bc62f feat: sticky toolbars in all module pages 2026-04-29 16:34:02 +02:00
Rafael Foster d9218a4941 feat(calendar): add overlapping layout and event attachments 2026-04-29 08:53:07 -03:00
Rafael Foster 5f6baeab4f Merge branch 'main' of github.com:rafaelfoster/oikos 2026-04-29 08:13:48 -03:00
Ulas Kalayci 6c069fc99c chore: release v0.32.2 2026-04-29 13:13:19 +02:00
Ulas Kalayci 50b224eaef feat: restructure bottom-nav — search as primary slot, sidebar tooltips for collapsed mode 2026-04-29 13:12:56 +02:00
Ulas Kalayci 9b7909f690 fix: page transition crossfade eliminates dark-mode flash on navigation
Removes the sequential fade-out → wait → fade-in pattern that causes
a visible black flash in dark mode between page transitions. Replaces
with immediate crossfade (new page fades in over old content, no wait).

Changes:
- layout.css: Add page-crossfade-in keyframe (0.18s) + prefers-reduced-motion override
- router.js: Remove outClass/inClass direction logic and oldPage fadeout wait

The new approach:
1. Old page remains visible until new page renders
2. New page fades in (0.18s) with full opacity, overlaying old content
3. No 120ms delay = no visible flash in dark mode

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-29 13:09:21 +02:00
Ulas Kalayci ca26befecd fix: remove redundant toast-container properties in tablet media query 2026-04-29 13:07:59 +02:00
Ulas Kalayci 6852d9fbf8 fix: bottom-nav hide-on-scroll CSS, mehr-sheet 3-col, tablet toast position 2026-04-29 13:06:39 +02:00
Ulas Kalayci 8ea0c870a7 chore: release v0.32.1
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-29 12:25:02 +02:00
Ulas Kalayci 2e3c84db56 fix(i18n): complete tasks and documents translations for all 15 locales
Add missing tasks.statusArchived, archiveButton, archivedToast,
kanbanArchived, reminderNeedsDueDate and translate the documents
section from English placeholders into all supported languages.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-29 12:24:34 +02:00
Rafael Foster f1ac3c29f0 Merge branch 'main' of github.com:rafaelfoster/oikos 2026-04-29 07:21:18 -03:00
Ulas Kalayci 94e145198b chore: release v0.32.0 2026-04-29 12:14:55 +02:00
ulsklyc 4372bb648c Merge pull request #104 from rafaelfoster/family-documents-feature
Adding a new Family Documents area for managing family-wide files with privacy controls
2026-04-29 12:14:12 +02:00
Rafael Foster 36913faf8d fix(birthdays): anchor photo action buttons under avatar 2026-04-29 07:11:34 -03:00
Rafael Foster 3e0549524e fix(birthdays): match profile picture editor pattern 2026-04-29 07:09:37 -03:00
Rafael Foster 1ca8110d56 fix(documents): improve upload modal and document theme 2026-04-29 06:27:37 -03:00
Rafael Foster 72fca92066 feat(documents): add family document management 2026-04-29 06:14:29 -03:00
Rafael Foster 6eafe80395 feat(tasks): add archive button in list cards 2026-04-29 05:51:52 -03:00
Rafael Foster 6028c4562a Merge branch 'main' of github.com:rafaelfoster/oikos 2026-04-29 05:48:27 -03:00
Rafael Foster 175725a41c Merge branch 'ulsklyc:main' into main 2026-04-29 05:48:02 -03:00
Rafael Foster 72f103af04 fix(tasks): make task modal body size to content when reminder is enabled 2026-04-29 05:45:41 -03:00
Rafael Foster 6a47cda9a9 fix(tasks): remove extra modal space when enabling reminders 2026-04-29 05:43:04 -03:00
Ulas Kalayci defb6bb0a4 fix: remove broken plugin marketplace auth from code review workflow
The plugin_marketplaces + plugins config triggered an OIDC token exchange
that consistently fails with 401. Replace with a direct prompt, matching
the pattern used in claude.yml which works reliably.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-29 10:43:02 +02:00
Ulas Kalayci df35845038 chore: release v0.31.2
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-29 10:39:54 +02:00
ulsklyc 1208f3b4b3 Merge pull request #102 from ulsklyc/fix/100
feat: add edit button for ICS subscriptions
2026-04-29 10:39:26 +02:00
Ulas Kalayci 99783ca600 fix: correct onSave pattern for ICS edit modal
onSave(panel) is a setup hook, not a submit handler. Bind the form's
submit event inside it and call closeModal({ force: true }) on success.
Also add explicit submit/cancel buttons to the modal content.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-29 10:39:17 +02:00
Rafael Foster 84b794b739 Merge branch 'main' of github.com:rafaelfoster/oikos 2026-04-29 05:38:59 -03:00
Ulas Kalayci 06adc0f3f5 feat: add edit button for ICS subscriptions (#100)
Adds a pencil-icon edit button to each ICS subscription row. Clicking it
opens a modal to update name, color, and shared visibility via PATCH
/calendar/subscriptions/:id. Adds updatedToast i18n key to all 15 locales.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-29 10:37:16 +02:00
Rafael Foster 0e7142edc2 feat(tasks): advanced reminders UI and recurrence layout improvements 2026-04-29 05:33:06 -03:00
Rafael Foster 9759f5e267 feat(tasks): add archived status support in API and schema 2026-04-29 05:33:06 -03:00
Ulas Kalayci f9b796ca13 chore: release v0.31.1 2026-04-29 10:29:07 +02:00
ulsklyc 64fbad8cbf fix: restore native date picker for birthday fields on iOS (#101)
Birthday date inputs in Settings (profile, new member, edit member) and
the Birthdays page were using type="text" with a custom mask, which
suppresses the native iOS date picker wheel. Switching to type="date"
with a plain ISO value restores the native picker while keeping the
existing parseDateInput / isDateInputValid logic intact.

Closes #98

Co-authored-by: Ulas Kalayci <ulas.kalayci@googlemail.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-29 10:28:27 +02:00