Skip to content

feat: UidKanban and UidEventCalendar — markup-driven board and event calendar - #61

Merged
dskripchenko merged 1 commit into
mainfrom
feat/kanban-event-calendar
Oct 31, 2026
Merged

dskripchenko merged 1 commit into
mainfrom
feat/kanban-event-calendar

Conversation

@dskripchenko

Copy link
Copy Markdown
Owner

Two new components and their markup functions.

UidKanban

A kanban board written as markup (columns with WIP limits, swimlanes, cards with tags, priority, assignee, due date, description), drawn with UidBoard. It has:

  • a filter by tag and person;
  • a card drawer and a new-card form;
  • a source tab and a lock.

Every edit rewrites only the lines it touches and is emitted as change with the new source.

UidEventCalendar

Events written as markup: dates, ranges, times and repeats in words (every Monday, the last Friday of the month, until a date / N times, skipped dates). It is drawn with UidCalendar in the day, week, month, year and agenda views. It has:

  • drag and resize;
  • an event builder that shows the resulting line;
  • moving a single occurrence out of a series;
  • a source tab and a lock.

Functions

  • Kanban: parseKanban, addKanbanCard, moveKanbanCard, updateKanbanCard, removeKanbanCard, addKanbanColumn, serializeKanbanCard.
  • Calendar: parseEventCalendar, expandEventCalendar, eventOccurrences, eventRuleText, serializeCalendarEvent, addCalendarEvent, updateCalendarEvent, removeCalendarEvent, detachCalendarOccurrence.
  • Shared: parseMarkupProps, serializeMarkupProps, splitMarkupProps.

Texts

The kanban and eventCalendar sections are added to the locales (ru, en) and are read through useLocale, so partial overrides work.

Verification

  • Unit tests: specs for both markup formats, plus 18 component tests (drag-and-drop emitting the rewritten source, locked, weekly repeat expansion, the builder adding an event, detaching an occurrence). The full suite passes, and the calendar markup specs also pass in four time zones.
  • Build: lint and build pass. vue-tsc -p tsconfig.build.json is clean; typecheck reports the same 23 pre-existing errors as main, all in older spec files.
  • Browser check: a full browser suite that drives both components (drag-and-drop, drawer, lock, builder) passes in Chromium and WebKit against this build.

Docs

docs/{en,ru,de,zh}/kanban.md and event-calendar.md.

🤖 Generated with Claude Code

…calendar

UidKanban draws a kanban board written as plain-text markup with UidBoard:
filters by tag and person, a card drawer, moves, new and changed cards and
a source tab. UidEventCalendar shows markup events in UidCalendar, expands
repeats (words or RRULE) over the visible range and edits them with an
event builder. Every edit rewrites only the lines it touches and is emitted
as `change` with the new source.

The pure markup functions are exported (parseKanban, moveKanbanCard,
parseEventCalendar, expandEventCalendar, ...). Captions live in the new
`kanban` and `eventCalendar` locale sections (en, ru). Docs in en/ru/de/zh.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@dskripchenko
dskripchenko merged commit f30a279 into main Oct 31, 2026
2 checks passed
@dskripchenko
dskripchenko deleted the feat/kanban-event-calendar branch October 31, 2026 15:02
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