From 3676cfc2c5ac67d2b29df132852543b1e5a2c345 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=B7=E7=94=B5=E8=8A=BD=E8=A1=A3?= Date: Mon, 5 Oct 2026 14:35:41 -0400 Subject: [PATCH] Calendar: components 421-440 --- agenda_view.go | 149 +++++++ agenda_view_test.go | 95 +++++ attendee_list.go | 4 +- attendee_list_test.go | 82 ++++ availability_picker.go | 180 +++++++++ availability_picker_test.go | 108 +++++ calendar_day_view.go | 50 +++ calendar_day_view_test.go | 79 ++++ calendar_events.go | 66 +++- calendar_month_view.go | 248 ++++++++++++ calendar_month_view_test.go | 171 ++++++++ calendar_time_grid.go | 369 ++++++++++++++++++ calendar_week_view.go | 80 ++++ calendar_week_view_test.go | 175 +++++++++ countdown.go | 103 +++++ countdown_test.go | 69 ++++ cron_editor.go | 346 ++++++++++++++++ cron_editor_test.go | 136 +++++++ current_time_indicator.go | 51 +++ current_time_indicator_test.go | 79 ++++ docs/components/421-calendar-month-view.md | 57 +++ docs/components/422-calendar-week-view.md | 58 +++ docs/components/423-calendar-day-view.md | 53 +++ docs/components/424-agenda-view.md | 53 +++ docs/components/425-year-view.md | 52 +++ docs/components/426-event-chip.md | 47 +++ docs/components/427-event-editor.md | 49 +++ docs/components/428-event-popover.md | 52 +++ docs/components/429-current-time-indicator.md | 44 +++ docs/components/430-recurrence-editor.md | 46 +++ docs/components/431-availability-picker.md | 49 +++ docs/components/432-timezone-select.md | 46 +++ docs/components/433-reminder-picker.md | 45 +++ docs/components/434-attendee-list.md | 44 +++ docs/components/435-week-picker.md | 47 +++ docs/components/436-duration-picker.md | 46 +++ docs/components/437-cron-editor.md | 51 +++ docs/components/438-relative-time.md | 42 ++ docs/components/439-countdown.md | 44 +++ docs/components/440-stopwatch.md | 44 +++ duration_picker.go | 100 +++++ duration_picker_test.go | 87 +++++ event_chip.go | 17 +- event_chip_test.go | 125 ++++++ event_editor.go | 171 ++++++++ event_editor_test.go | 112 ++++++ event_popover.go | 114 ++++++ event_popover_test.go | 110 ++++++ example_calendar_test.go | 262 +++++++++++++ examples/gallery/pages_calendar.go | 45 ++- examples/gallery/pages_calendar_code.go | 253 ++++++++++++ examples/gallery/pages_calendar_parts.go | 217 ++++++++++ examples/gallery/pages_calendar_time.go | 128 ++++++ examples/gallery/pages_calendar_views.go | 194 +++++++++ internal/calendar.go | 9 + messages_calendar.go | 195 +++++++++ recurrence_editor.go | 223 +++++++++++ recurrence_editor_test.go | 133 +++++++ relative_time.go | 75 ++++ relative_time_test.go | 83 ++++ reminder_picker.go | 73 ++++ reminder_picker_test.go | 82 ++++ stopwatch.go | 124 ++++++ stopwatch_test.go | 63 +++ .../snapshots/darwin/agenda_view-dark.png | Bin 0 -> 26814 bytes .../snapshots/darwin/agenda_view-light.png | Bin 0 -> 25698 bytes .../snapshots/darwin/attendee_list-dark.png | Bin 0 -> 30519 bytes .../snapshots/darwin/attendee_list-light.png | Bin 0 -> 29369 bytes .../darwin/availability_picker-dark.png | Bin 0 -> 7875 bytes .../darwin/availability_picker-light.png | Bin 0 -> 7630 bytes .../darwin/calendar_day_view-dark.png | Bin 0 -> 32359 bytes .../darwin/calendar_day_view-light.png | Bin 0 -> 31078 bytes .../darwin/calendar_month_view-dark.png | Bin 0 -> 42135 bytes .../darwin/calendar_month_view-light.png | Bin 0 -> 41092 bytes .../darwin/calendar_week_view-dark.png | Bin 0 -> 46786 bytes .../darwin/calendar_week_view-light.png | Bin 0 -> 45395 bytes testdata/snapshots/darwin/countdown-dark.png | Bin 0 -> 5897 bytes testdata/snapshots/darwin/countdown-light.png | Bin 0 -> 5826 bytes .../snapshots/darwin/cron_editor-dark.png | Bin 0 -> 35900 bytes .../snapshots/darwin/cron_editor-light.png | Bin 0 -> 34297 bytes .../darwin/current_time_indicator-dark.png | Bin 0 -> 858 bytes .../darwin/current_time_indicator-light.png | Bin 0 -> 865 bytes .../snapshots/darwin/duration_picker-dark.png | Bin 0 -> 3462 bytes .../darwin/duration_picker-light.png | Bin 0 -> 3274 bytes testdata/snapshots/darwin/event_chip-dark.png | Bin 0 -> 7091 bytes .../snapshots/darwin/event_chip-light.png | Bin 0 -> 6859 bytes .../snapshots/darwin/event_editor-dark.png | Bin 0 -> 83344 bytes .../snapshots/darwin/event_editor-light.png | Bin 0 -> 80253 bytes .../snapshots/darwin/event_popover-dark.png | Bin 0 -> 31225 bytes .../snapshots/darwin/event_popover-light.png | Bin 0 -> 31503 bytes .../darwin/recurrence_editor-dark.png | Bin 0 -> 17827 bytes .../darwin/recurrence_editor-light.png | Bin 0 -> 17147 bytes .../snapshots/darwin/relative_time-dark.png | Bin 0 -> 4585 bytes .../snapshots/darwin/relative_time-light.png | Bin 0 -> 4344 bytes .../snapshots/darwin/reminder_picker-dark.png | Bin 0 -> 14345 bytes .../darwin/reminder_picker-light.png | Bin 0 -> 13709 bytes testdata/snapshots/darwin/stopwatch-dark.png | Bin 0 -> 13802 bytes testdata/snapshots/darwin/stopwatch-light.png | Bin 0 -> 13224 bytes .../snapshots/darwin/timezone_select-dark.png | Bin 0 -> 4974 bytes .../darwin/timezone_select-light.png | Bin 0 -> 4713 bytes .../snapshots/darwin/week_picker-dark.png | Bin 0 -> 5021 bytes .../snapshots/darwin/week_picker-light.png | Bin 0 -> 4814 bytes testdata/snapshots/darwin/year_view-dark.png | Bin 0 -> 77157 bytes testdata/snapshots/darwin/year_view-light.png | Bin 0 -> 74500 bytes timezone_select.go | 208 ++++++++++ timezone_select_test.go | 98 +++++ week_picker.go | 96 +++++ week_picker_test.go | 76 ++++ year_view.go | 168 ++++++++ year_view_test.go | 108 +++++ 110 files changed, 7335 insertions(+), 23 deletions(-) create mode 100644 agenda_view.go create mode 100644 agenda_view_test.go create mode 100644 attendee_list_test.go create mode 100644 availability_picker.go create mode 100644 availability_picker_test.go create mode 100644 calendar_day_view.go create mode 100644 calendar_day_view_test.go create mode 100644 calendar_month_view.go create mode 100644 calendar_month_view_test.go create mode 100644 calendar_time_grid.go create mode 100644 calendar_week_view.go create mode 100644 calendar_week_view_test.go create mode 100644 countdown.go create mode 100644 countdown_test.go create mode 100644 cron_editor.go create mode 100644 cron_editor_test.go create mode 100644 current_time_indicator.go create mode 100644 current_time_indicator_test.go create mode 100644 docs/components/421-calendar-month-view.md create mode 100644 docs/components/422-calendar-week-view.md create mode 100644 docs/components/423-calendar-day-view.md create mode 100644 docs/components/424-agenda-view.md create mode 100644 docs/components/425-year-view.md create mode 100644 docs/components/426-event-chip.md create mode 100644 docs/components/427-event-editor.md create mode 100644 docs/components/428-event-popover.md create mode 100644 docs/components/429-current-time-indicator.md create mode 100644 docs/components/430-recurrence-editor.md create mode 100644 docs/components/431-availability-picker.md create mode 100644 docs/components/432-timezone-select.md create mode 100644 docs/components/433-reminder-picker.md create mode 100644 docs/components/434-attendee-list.md create mode 100644 docs/components/435-week-picker.md create mode 100644 docs/components/436-duration-picker.md create mode 100644 docs/components/437-cron-editor.md create mode 100644 docs/components/438-relative-time.md create mode 100644 docs/components/439-countdown.md create mode 100644 docs/components/440-stopwatch.md create mode 100644 duration_picker.go create mode 100644 duration_picker_test.go create mode 100644 event_chip_test.go create mode 100644 event_editor.go create mode 100644 event_editor_test.go create mode 100644 event_popover.go create mode 100644 event_popover_test.go create mode 100644 example_calendar_test.go create mode 100644 examples/gallery/pages_calendar_code.go create mode 100644 examples/gallery/pages_calendar_parts.go create mode 100644 examples/gallery/pages_calendar_time.go create mode 100644 examples/gallery/pages_calendar_views.go create mode 100644 internal/calendar.go create mode 100644 messages_calendar.go create mode 100644 recurrence_editor.go create mode 100644 recurrence_editor_test.go create mode 100644 relative_time.go create mode 100644 relative_time_test.go create mode 100644 reminder_picker.go create mode 100644 reminder_picker_test.go create mode 100644 stopwatch.go create mode 100644 stopwatch_test.go create mode 100644 testdata/snapshots/darwin/agenda_view-dark.png create mode 100644 testdata/snapshots/darwin/agenda_view-light.png create mode 100644 testdata/snapshots/darwin/attendee_list-dark.png create mode 100644 testdata/snapshots/darwin/attendee_list-light.png create mode 100644 testdata/snapshots/darwin/availability_picker-dark.png create mode 100644 testdata/snapshots/darwin/availability_picker-light.png create mode 100644 testdata/snapshots/darwin/calendar_day_view-dark.png create mode 100644 testdata/snapshots/darwin/calendar_day_view-light.png create mode 100644 testdata/snapshots/darwin/calendar_month_view-dark.png create mode 100644 testdata/snapshots/darwin/calendar_month_view-light.png create mode 100644 testdata/snapshots/darwin/calendar_week_view-dark.png create mode 100644 testdata/snapshots/darwin/calendar_week_view-light.png create mode 100644 testdata/snapshots/darwin/countdown-dark.png create mode 100644 testdata/snapshots/darwin/countdown-light.png create mode 100644 testdata/snapshots/darwin/cron_editor-dark.png create mode 100644 testdata/snapshots/darwin/cron_editor-light.png create mode 100644 testdata/snapshots/darwin/current_time_indicator-dark.png create mode 100644 testdata/snapshots/darwin/current_time_indicator-light.png create mode 100644 testdata/snapshots/darwin/duration_picker-dark.png create mode 100644 testdata/snapshots/darwin/duration_picker-light.png create mode 100644 testdata/snapshots/darwin/event_chip-dark.png create mode 100644 testdata/snapshots/darwin/event_chip-light.png create mode 100644 testdata/snapshots/darwin/event_editor-dark.png create mode 100644 testdata/snapshots/darwin/event_editor-light.png create mode 100644 testdata/snapshots/darwin/event_popover-dark.png create mode 100644 testdata/snapshots/darwin/event_popover-light.png create mode 100644 testdata/snapshots/darwin/recurrence_editor-dark.png create mode 100644 testdata/snapshots/darwin/recurrence_editor-light.png create mode 100644 testdata/snapshots/darwin/relative_time-dark.png create mode 100644 testdata/snapshots/darwin/relative_time-light.png create mode 100644 testdata/snapshots/darwin/reminder_picker-dark.png create mode 100644 testdata/snapshots/darwin/reminder_picker-light.png create mode 100644 testdata/snapshots/darwin/stopwatch-dark.png create mode 100644 testdata/snapshots/darwin/stopwatch-light.png create mode 100644 testdata/snapshots/darwin/timezone_select-dark.png create mode 100644 testdata/snapshots/darwin/timezone_select-light.png create mode 100644 testdata/snapshots/darwin/week_picker-dark.png create mode 100644 testdata/snapshots/darwin/week_picker-light.png create mode 100644 testdata/snapshots/darwin/year_view-dark.png create mode 100644 testdata/snapshots/darwin/year_view-light.png create mode 100644 timezone_select.go create mode 100644 timezone_select_test.go create mode 100644 week_picker.go create mode 100644 week_picker_test.go create mode 100644 year_view.go create mode 100644 year_view_test.go diff --git a/agenda_view.go b/agenda_view.go new file mode 100644 index 0000000..e3401c1 --- /dev/null +++ b/agenda_view.go @@ -0,0 +1,149 @@ +package mujica + +import ( + "fmt" + "time" + + "github.com/egoist/mygo/ui" + + "mujicaui/internal" + "mujicaui/theme" +) + +// AgendaViewOptions configure an AgendaView. +type AgendaViewOptions struct { + // Location is the zone days are cut in; required. + Location *time.Location + // Version must change when events change in place. + Version int + // From is the first day listed; zero means today. + From Date + // Days is how many days are listed; zero means 30. + Days int + // Today is marked; zero uses the system clock. + Today Date + Hour12 bool + Disabled bool + Label string +} + +// agendaRow is a day heading (ev < 0) or event. +type agendaRow struct { + day Date + ev int +} + +// AgendaView lists events by day, building only visible rows. +func AgendaView(c *ui.Context, events []CalendarEvent, opts AgendaViewOptions) CalendarViewResult { + loc := eventLocation("AgendaView", opts.Location) + if opts.Days < 0 { + panic("mujica: AgendaView Days is negative") + } + days := opts.Days + if days == 0 { + days = 30 + } + eventsCheck("AgendaView", events) + k := Tokens(c) + d := Density(c) + today := datetimeToday(c, opts.Today) + from := opts.From + if from.IsZero() { + from = today + } + datetimeCheckDate("AgendaView From", from) + label := opts.Label + if label == "" { + label = msg(c, "agenda_view.label") + } + r := CalendarViewResult{} + root := ui.Column(c).Grow(1).MinHeight(0).Role(ui.RoleGroup).Label(label).Disabled(opts.Disabled) + r.Element = root + rows := eventsDerived(root, "agenda-rows", events, opts.Version, eventDayStart(from, loc), eventDayStart(from.AddDays(days), loc), + func(hits []int) []agendaRow { return agendaRows(events, hits, from, days, loc) }) + state := ui.Local(root, "agenda-list", func() *ui.ListState { return &ui.ListState{} }) + st := *state + st.Key = func(i int) any { return rows[i] } + st.Header = func(i int) bool { return rows[i].ev < 0 } + st.Label = func(i int) string { + if rows[i].ev < 0 { + return datetimeDayLabel(c, rows[i].day) + } + return events[rows[i].ev].Title + } + root.Children(func() { + list := ui.List(c, st, len(rows), func(i int) { + row := rows[i] + if row.ev < 0 { + h := ui.Row(c).MinHeight(d.ControlHeight()).AlignItems(ui.Center).Gap(d.Unit() * 2).PaddingX(d.Unit() * 3).Background(k.Background).Role(ui.RoleColumnHeader) + h.Children(func() { + t := ui.Text(c, datetimeDayLabel(c, row.day)).Font(theme.SerifFont).TextColor(k.Text) + if row.day == today { + t.Bold().TextColor(k.AccentText) + ui.Text(c, msg(c, "agenda_view.today")).FontSize(FontSize(c, theme.CaptionSize)).TextColor(k.AccentText) + } + }) + h.DrawOver(func(p *ui.Painter, rr ui.Rect) { internal.Rule(p, rr.X, rr.X+rr.W, rr.Y+rr.H-1, k.Ornament) }) + return + } + if agendaItem(c, events[row.ev], loc, opts.Hour12) && !root.IsDisabled() { + r.opened = events[row.ev].ID + } + }).Grow(1).MinHeight(d.ControlHeight() * 4).FocusGroup(ui.Vertical) + list.Children(func() { + if len(rows) == 0 { + ui.Text(c, fmt.Sprintf(msg(c, "agenda_view.empty"), days)).TextColor(k.TextMuted).Padding(d.Unit() * 3) + } + }) + }) + return r +} + +// agendaRows flattens the span into headed days. +func agendaRows(events []CalendarEvent, hits []int, from Date, days int, loc *time.Location) []agendaRow { + buckets := make([][]int, days) + for _, h := range hits { + ev := events[h] + first := max(0, monthDays(ev.Start.In(loc), from)*-1) + last := min(days-1, -monthDays(ev.End.Add(-time.Nanosecond).In(loc), from)) + for i := first; i <= last; i++ { + buckets[i] = append(buckets[i], h) + } + } + var out []agendaRow + for i, b := range buckets { + if len(b) > 0 { + out = append(out, agendaRow{from.AddDays(i), -1}) + for _, h := range b { + out = append(out, agendaRow{from.AddDays(i), h}) + } + } + } + return out +} + +// agendaItem is one event row; it reports a click. +func agendaItem(c *ui.Context, ev CalendarEvent, loc *time.Location, hour12 bool) bool { + k := Tokens(c) + d := Density(c) + when := eventTimeText(c, ev, loc, hour12) + b := ui.ButtonBase(c).MinHeight(d.ControlHeight()).Justify(ui.Start).Gap(d.Unit() * 3).PaddingX(d.Unit() * 3).Label(ev.Title + ", " + when) + internal.Ring(b, k.Focus, theme.ControlRadius) + if b.Hovered() { + b.Background(k.SurfaceHover) + } + col := eventColor(k, ev.Color) + b.Children(func() { + ui.Text(c, when).Width(d.ControlHeight() * 3.5).Shrink(0).FontSize(FontSize(c, theme.CaptionSize)).TextColor(k.TextMuted).FontFeatures("tnum") + ui.Box(c).Size(8, 8).Shrink(0).Draw(func(p *ui.Painter, r ui.Rect) { + p.FillPath(internal.Diamond(r.X+r.W/2, r.Y+r.H/2, r.W), col) + }) + ui.Column(c).Grow(1).Shrink(1).Children(func() { + ui.Text(c, ev.Title).TextColor(k.Text).SingleLine().Ellipsis("…") + if ev.Location != "" { + ui.Text(c, ev.Location).FontSize(FontSize(c, theme.CaptionSize)).TextColor(k.TextMuted).SingleLine().Ellipsis("…") + } + }) + }) + return b.Clicked() +} diff --git a/agenda_view_test.go b/agenda_view_test.go new file mode 100644 index 0000000..630c7bd --- /dev/null +++ b/agenda_view_test.go @@ -0,0 +1,95 @@ +package mujica + +import ( + "fmt" + "testing" + "time" + + "github.com/egoist/mygo/ui" +) + +func agendaTester(events []CalendarEvent, opts AgendaViewOptions, opened *[]string) *ui.Tester { + opts.Location, opts.Today = calTokyo, calendarToday + return ui.NewTester(func(c *ui.Context) { + Use(c, Settings{}) + ui.Column(c).Height(500).Children(func() { + if id, ok := AgendaView(c, events, opts).Opened(); ok { + *opened = append(*opened, id) + } + }) + }, 600, 520) +} + +func TestAgendaViewGroupsByDay(t *testing.T) { + evs := []CalendarEvent{calEvent("b", 7, 14, 0, 60), calEvent("a", 7, 9, 0, 30), calEvent("c", 9, 10, 0, 60), calEvent("old", 1, 9, 0, 60)} + evs[0].Location = "Rehearsal hall" + var opened []string + tt := agendaTester(evs, AgendaViewOptions{}, &opened) + texts := tt.Texts() + idx := func(s string) int { + for i, x := range texts { + if x == s { + return i + } + } + return -1 + } + d7, a, b, d9, c := idx("Wednesday, October 7, 2026"), idx("Event a, 09:00 – 09:30"), idx("Event b, 14:00 – 15:00"), idx("Friday, October 9, 2026"), idx("Event c, 10:00 – 11:00") + if d7 < 0 || !(d7 < a && a < b && b < d9 && d9 < c) || tt.HasText("Event old") || !tt.HasText("Rehearsal hall") { + t.Fatalf("order %d %d %d %d %d in %v", d7, a, b, d9, c, texts) + } + _ = tt.Click("Event b, 14:00 – 15:00") + tt.Key(0, ui.KeyDown) + tt.Key(0, ui.KeyEnter) + if len(opened) != 2 || opened[0] != "b" || opened[1] != "c" { + t.Fatalf("opened %v", opened) + } +} + +func TestAgendaViewMultiDayEmptyAndDisabled(t *testing.T) { + trip := calEvent("t", 6, 20, 0, 26*60) + var opened []string + tt := agendaTester([]CalendarEvent{trip}, AgendaViewOptions{Days: 3}, &opened) + if !tt.HasText("Tuesday, October 6, 2026") || !tt.HasText("Wednesday, October 7, 2026") { + t.Fatalf("a multi-day event lists on each day: %v", tt.Texts()) + } + tt = agendaTester(nil, AgendaViewOptions{Days: 7}, &opened) + if !tt.HasText("No events in the next 7 days.") { + t.Fatal("no empty state") + } + tt = agendaTester([]CalendarEvent{calEvent("a", 6, 9, 0, 30)}, AgendaViewOptions{Disabled: true}, &opened) + _ = tt.Click("Event a, 09:00 – 09:30") + if len(opened) != 0 { + t.Fatal("disabled agenda opened") + } + defer func() { + if recover() == nil { + t.Fatal("expected panic") + } + }() + agendaTester(nil, AgendaViewOptions{Days: -1}, &opened) +} + +func TestAgendaViewLargeData(t *testing.T) { + var evs []CalendarEvent + base := time.Date(2026, time.October, 5, 0, 0, 0, 0, calTokyo) + for i := range 100000 { + s := base.Add(time.Duration(i%(365*24)) * time.Hour) + evs = append(evs, CalendarEvent{ID: fmt.Sprint(i), Title: "E", Start: s, End: s.Add(30 * time.Minute)}) + } + var opened []string + tt := agendaTester(evs, AgendaViewOptions{Days: 365}, &opened) + if n := len(tt.Texts()); n > 200 { + t.Fatalf("built %d labels", n) + } +} + +func TestAgendaViewSnapshot(t *testing.T) { + evs := []CalendarEvent{calEvent("a", 5, 9, 0, 30), calEvent("b", 5, 14, 0, 60), calEvent("c", 7, 10, 0, 60), calEvent("d", 8, 18, 0, 120)} + evs[1].Location, evs[1].Color, evs[3].Color = "Rehearsal hall", EventInfo, EventSuccess + snapshot(t, "agenda_view", 520, 420, func(c *ui.Context) { + ui.Column(c).Padding(16).Height(420).Children(func() { + AgendaView(c, evs, AgendaViewOptions{Location: calTokyo, Today: calendarToday}) + }) + }) +} diff --git a/attendee_list.go b/attendee_list.go index 32b3173..a1a8568 100644 --- a/attendee_list.go +++ b/attendee_list.go @@ -46,7 +46,7 @@ type AttendeeListResult struct { // Removed returns the index of the attendee the user removed. func (r AttendeeListResult) Removed() (int, bool) { return r.removed, r.removed >= 0 } -// AttendeeList shows invitees with their reply, in words and an icon, and a reply summary. +// AttendeeList shows invitees, their replies and a summary. func AttendeeList(c *ui.Context, attendees []Attendee, opts AttendeeListOptions) AttendeeListResult { k := Tokens(c) d := Density(c) @@ -71,7 +71,7 @@ func AttendeeList(c *ui.Context, attendees []Attendee, opts AttendeeListOptions) ui.Text(c, msg(c, "attendee_list.empty")).TextColor(k.TextMuted) } for i, a := range attendees { - ui.Row(c).Key(i).MinHeight(d.ControlHeight()).Gap(d.Unit()*2).AlignItems(ui.Center).Role(ui.RoleListItem).Children(func() { + ui.Row(c).Key(i).MinHeight(d.ControlHeight()).Gap(d.Unit() * 2).AlignItems(ui.Center).Role(ui.RoleListItem).Children(func() { Avatar(c, a.Name, AvatarOptions{Size: 28}) ui.Column(c).Grow(1).Shrink(1).Children(func() { name := a.Name diff --git a/attendee_list_test.go b/attendee_list_test.go new file mode 100644 index 0000000..1f9b350 --- /dev/null +++ b/attendee_list_test.go @@ -0,0 +1,82 @@ +package mujica + +import ( + "testing" + + "github.com/egoist/mygo/ui" +) + +var calAttendees = []Attendee{ + {Name: "Sakiko Togawa", Email: "sakiko@court.example", Status: AttendeeAccepted, Organizer: true}, + {Name: "Mutsumi Wakaba", Status: AttendeeTentative}, + {Name: "Uika Misumi", Email: "uika@court.example", Status: AttendeeDeclined, Optional: true}, + {Name: "Nyamu Yuutenji", Status: AttendeePending}, +} + +func attendeeTester(list *[]Attendee, opts AttendeeListOptions) *ui.Tester { + return ui.NewTester(func(c *ui.Context) { + Use(c, Settings{}) + if i, ok := AttendeeList(c, *list, opts).Removed(); ok { + *list = append((*list)[:i:i], (*list)[i+1:]...) + } + }, 480, 400) +} + +func TestAttendeeListStatusesAndSummary(t *testing.T) { + list := append([]Attendee(nil), calAttendees...) + tt := attendeeTester(&list, AttendeeListOptions{}) + for _, s := range []string{"1 accepted · 1 maybe · 1 declined · 1 awaiting", "Sakiko Togawa · Organizer", + "Uika Misumi · Optional", "Accepted", "Maybe", "Declined", "Awaiting reply", "uika@court.example"} { + if !tt.HasText(s) { + t.Fatalf("missing %q in %v", s, tt.Texts()) + } + } + if tt.HasText("Remove Mutsumi Wakaba") { + t.Fatal("remove buttons without Removable") + } +} + +func TestAttendeeListRemoveKeyboardAndOrganizer(t *testing.T) { + list := append([]Attendee(nil), calAttendees...) + tt := attendeeTester(&list, AttendeeListOptions{Removable: true}) + if tt.HasText("Remove Sakiko Togawa") { + t.Fatal("the organizer cannot be removed") + } + tt.Key(0, ui.KeyTab) + tt.Key(0, ui.KeyEnter) + if len(list) != 3 || list[0].Name != "Sakiko Togawa" || list[1].Name != "Uika Misumi" { + t.Fatalf("keyboard remove left %v", list) + } + _ = tt.Click("Remove Uika Misumi") + if len(list) != 2 || !tt.HasText("1 accepted · 0 maybe · 0 declined · 1 awaiting") { + t.Fatalf("click remove left %v", list) + } +} + +func TestAttendeeListDisabledEmptyInvalid(t *testing.T) { + list := append([]Attendee(nil), calAttendees...) + tt := attendeeTester(&list, AttendeeListOptions{Removable: true, Disabled: true}) + _ = tt.Click("Remove Mutsumi Wakaba") + tt.Key(0, ui.KeyTab) + tt.Key(0, ui.KeyEnter) + if len(list) != 4 { + t.Fatal("disabled list removed someone") + } + empty := []Attendee{} + if tt := attendeeTester(&empty, AttendeeListOptions{}); !tt.HasText("No attendees yet.") { + t.Fatal("no empty state") + } + defer func() { + if recover() == nil { + t.Fatal("expected panic on bad status") + } + }() + bad := []Attendee{{Name: "X", Status: 7}} + attendeeTester(&bad, AttendeeListOptions{}) +} + +func TestAttendeeListSnapshot(t *testing.T) { + snapshot(t, "attendee_list", 420, 260, func(c *ui.Context) { + ui.Column(c).Padding(16).Children(func() { AttendeeList(c, calAttendees, AttendeeListOptions{Removable: true}) }) + }) +} diff --git a/availability_picker.go b/availability_picker.go new file mode 100644 index 0000000..b7dc491 --- /dev/null +++ b/availability_picker.go @@ -0,0 +1,180 @@ +package mujica + +import ( + "fmt" + "log/slog" + "strconv" + + "github.com/egoist/mygo/ui" + + "mujicaui/internal" + "mujicaui/theme" +) + +// AvailabilityPerson is another person's free slots, [day][slot]. +type AvailabilityPerson struct { + Name string + Free [][]bool +} + +// AvailabilityPickerOptions configure an AvailabilityPicker. +type AvailabilityPickerOptions struct { + // Days are the grid's columns; required. + Days []Date + // From and To are hours; zero means 9 to 18. + From, To int + // SlotMinutes must divide an hour; zero means 30. + SlotMinutes int + // Others are counted as free per slot. + Others []AvailabilityPerson + Hour12 bool + Disabled bool + Label string +} + +// availabilityDrag is a paint stroke: the value being painted. +type availabilityDrag struct { + active bool + paint bool +} + +// AvailabilityPicker paints free slots and counts others' overlap. +func AvailabilityPicker(c *ui.Context, mine *[][]bool, opts AvailabilityPickerOptions) ChoiceResult { + from, to := opts.From, opts.To + if from == 0 && to == 0 { + from, to = 9, 18 + } + slot := timeGridSlot("AvailabilityPicker", opts.SlotMinutes) + if len(opts.Days) == 0 || from < 0 || to > 24 || to <= from || slot > 60 { + panic(fmt.Sprintf("mujica: AvailabilityPicker needs days and hours 0 <= %d < %d <= 24", from, to)) + } + slots := (to - from) * 60 / slot + availabilityCheck("value", *mine, len(opts.Days), slots) + for _, p := range opts.Others { + availabilityCheck(p.Name, p.Free, len(opts.Days), slots) + } + k := Tokens(c) + d := Density(c) + label := opts.Label + if label == "" { + label = msg(c, "availability_picker.label") + } + gutter := d.ControlHeight() * 1.8 + rowH := float32(theme.MinHitSize) + headH := d.ControlHeight() + changed := false + set := func(day, s int, v bool) { + if (*mine)[day][s] != v { + (*mine)[day][s], changed = v, true + } + } + grid := ui.Column(c).Focusable().Role(ui.RoleTable).Label(label).Disabled(opts.Disabled) + internal.Ring(grid, k.Focus, theme.ControlRadius) + drag := ui.Local(grid, "availability-drag", func() availabilityDrag { return availabilityDrag{} }) + cursor := ui.Local(grid, "availability-cursor", func() [2]int { return [2]int{} }) + if !grid.IsDisabled() { + b := grid.Bounds() + px, py, _ := grid.PointerPosition() + cw := (b.W - gutter) / float32(len(opts.Days)) + day, s := int((px-gutter)/max(cw, 1)), int((py-headH)/rowH) + inside := px >= gutter && py >= headH && day < len(opts.Days) && s < slots + if _, _, pressing := grid.Dragged(); pressing && inside { + if !drag.active { + *drag = availabilityDrag{true, !(*mine)[day][s]} + *cursor = [2]int{day, s} + } + set(day, s, drag.paint) + } else if !pressing { + drag.active = false + } + for key, dd := range map[ui.Key][2]int{ui.KeyLeft: {-1, 0}, ui.KeyRight: {1, 0}, ui.KeyUp: {0, -1}, ui.KeyDown: {0, 1}} { + if grid.Shortcut(0, key) { + *cursor = [2]int{max(0, min(len(opts.Days)-1, cursor[0]+dd[0])), max(0, min(slots-1, cursor[1]+dd[1]))} + } + } + if grid.Shortcut(0, ui.KeySpace) || grid.Shortcut(0, ui.KeyEnter) { + set(cursor[0], cursor[1], !(*mine)[cursor[0]][cursor[1]]) + } + } + focused := grid.FocusVisible() || grid.Focused() && !drag.active + grid.Children(func() { + ui.Row(c).Height(headH).Children(func() { + ui.Box(c).Width(gutter).Shrink(0) + for _, day := range opts.Days { + ui.Text(c, msg(c, "calendar.weekday_"+strconv.Itoa(int(day.Weekday())))+" "+strconv.Itoa(day.Day)).Grow(1).Basis(0). + TextAlign(ui.Center).FontSize(FontSize(c, theme.CaptionSize)).TextColor(k.TextMuted).Role(ui.RoleColumnHeader) + } + }) + for s := range slots { + m := from*60 + s*slot + ui.Row(c).Height(rowH).Role(ui.RoleRow).Children(func() { + hour := "" + if m%60 == 0 { + hour = timeText(c, TimeOfDay{m / 60, 0, 0}, timeConfig{hour12: opts.Hour12}) + } + ui.Text(c, hour).Width(gutter).Shrink(0).FontSize(FontSize(c, theme.CaptionSize)).TextColor(k.TextMuted).FontFeatures("tnum") + for di, day := range opts.Days { + free := 0 + for _, p := range opts.Others { + if p.Free[di][s] { + free++ + } + } + availabilityCell(c, day, m, (*mine)[di][s], free, len(opts.Others), focused && *cursor == [2]int{di, s}, opts.Hour12) + } + }) + } + }) + if changed { + slog.Debug("mujica: availability_picker change") + } + return ChoiceResult{Element: grid, changed: changed} +} + +func availabilityCheck(name string, v [][]bool, days, slots int) { + if len(v) != days { + panic(fmt.Sprintf("mujica: AvailabilityPicker %s has %d days, want %d", name, len(v), days)) + } + for _, row := range v { + if len(row) != slots { + panic(fmt.Sprintf("mujica: AvailabilityPicker %s has %d slots, want %d", name, len(row), slots)) + } + } +} + +// availabilityCell shows one slot's choice and free count. +func availabilityCell(c *ui.Context, day Date, m int, mine bool, free, others int, cursor, hour12 bool) { + k := Tokens(c) + text := datetimeDayLabel(c, day) + " " + timeText(c, TimeOfDay{m / 60, m % 60, 0}, timeConfig{hour12: hour12}) + if mine { + text += ", " + msg(c, "availability_picker.mine") + } + if others > 0 { + text += ", " + fmt.Sprintf(msg(c, "availability_picker.others"), free, others) + } + everyone := mine && others > 0 && free == others + cell := ui.Box(c).Grow(1).Basis(0).MinWidth(0).FillHeight().Center().Role(ui.RoleCell).Label(text).BorderWidth(0, 0, theme.BorderWidth, theme.BorderWidth).BorderColor(k.Border) + if mine { + cell.Background(k.Selection) + } + cell.Draw(func(p *ui.Painter, r ui.Rect) { + if others > 0 && free > 0 { + h := (r.H - 4) * float32(free) / float32(others) + p.Fill(ui.Rect{X: r.X + 2, Y: r.Y + r.H - 2 - h, W: 3, H: h}, k.Info, 1) + } + if mine { + internal.Mark(p, ui.Rect{X: r.X + r.W - 16, Y: r.Y + 2, W: 12, H: 12}, "check", k.AccentText) + } + if cursor { + datetimeSelectedMark(p, r, k.Focus) + } + }) + cell.Children(func() { + if others > 0 && free > 0 { + t := ui.Text(c, strconv.Itoa(free)).FontSize(FontSize(c, theme.CaptionSize)).TextColor(k.TextMuted).FontFeatures("tnum") + if everyone { + t.Bold().TextColor(k.AccentText) + } + } + }) +} diff --git a/availability_picker_test.go b/availability_picker_test.go new file mode 100644 index 0000000..86f47a3 --- /dev/null +++ b/availability_picker_test.go @@ -0,0 +1,108 @@ +package mujica + +import ( + "testing" + + "github.com/egoist/mygo/ui" +) + +func availabilityGrid(days, slots int) [][]bool { + v := make([][]bool, days) + for i := range v { + v[i] = make([]bool, slots) + } + return v +} + +var availabilityDays = []Date{oct(12), oct(13), oct(14)} + +func availabilityTester(v *[][]bool, opts *AvailabilityPickerOptions, n *int) *ui.Tester { + return ui.NewTester(func(c *ui.Context) { + Use(c, Settings{}) + o := *opts + o.Days, o.From, o.To = availabilityDays, 9, 12 + ui.Column(c).Padding(16).Children(func() { + if AvailabilityPicker(c, v, o).Changed() { + *n++ + } + }) + }, 560, 360) +} + +func TestAvailabilityPickerPaintDrag(t *testing.T) { + v, n := availabilityGrid(3, 6), 0 + tt := availabilityTester(&v, &AvailabilityPickerOptions{}, &n) + a, _ := tt.Find("Monday, October 12, 2026 09:00") + b, _ := tt.Find("Monday, October 12, 2026 10:30") + calDrag(tt, a.X+a.W/2, a.Y+a.H/2, b.X+b.W/2, b.Y+b.H/2) + for s := range 6 { + if v[0][s] != (s <= 3) { + t.Fatalf("painted %v", v[0]) + } + } + if n == 0 || !tt.HasText("Monday, October 12, 2026 10:00, you are free") { + t.Fatal("no change or label") + } + // Starting on a free slot erases. + calDrag(tt, a.X+a.W/2, a.Y+a.H/2, a.X+a.W/2, a.Y+a.H*1.5) + if v[0][0] || v[0][1] || !v[0][2] { + t.Fatalf("erase stroke %v", v[0]) + } +} + +func TestAvailabilityPickerOthersAndKeyboard(t *testing.T) { + v, n := availabilityGrid(3, 6), 0 + free := availabilityGrid(3, 6) + free[1][0] = true + other := availabilityGrid(3, 6) + other[1][0], other[1][1] = true, true + opts := &AvailabilityPickerOptions{Others: []AvailabilityPerson{{Name: "Mutsumi", Free: free}, {Name: "Uika", Free: other}}} + tt := availabilityTester(&v, opts, &n) + if !tt.HasText("Tuesday, October 13, 2026 09:00, 2 of 2 others free") || !tt.HasText("Tuesday, October 13, 2026 09:30, 1 of 2 others free") { + t.Fatalf("overlap counts: %v", tt.Texts()) + } + tt.Key(0, ui.KeyTab) + tt.Key(0, ui.KeyRight) + tt.Key(0, ui.KeySpace) + tt.Key(0, ui.KeyDown) + tt.Key(0, ui.KeyEnter) + if !v[1][0] || !v[1][1] || n != 2 { + t.Fatalf("keyboard toggles %v", v[1]) + } +} + +func TestAvailabilityPickerDisabledAndInvalid(t *testing.T) { + v, n := availabilityGrid(3, 6), 0 + tt := availabilityTester(&v, &AvailabilityPickerOptions{Disabled: true}, &n) + a, _ := tt.Find("Monday, October 12, 2026 09:00") + calDrag(tt, a.X+a.W/2, a.Y+a.H/2, a.X+a.W/2, a.Y+a.H*2.5) + tt.Key(0, ui.KeyTab) + tt.Key(0, ui.KeySpace) + if v[0][0] || n != 0 { + t.Fatal("disabled picker painted") + } + for _, bad := range []*AvailabilityPickerOptions{{SlotMinutes: 7}, {Others: []AvailabilityPerson{{Name: "X", Free: availabilityGrid(2, 6)}}}} { + func() { + defer func() { + if recover() == nil { + t.Errorf("%+v: expected panic", bad) + } + }() + w := availabilityGrid(3, 6) + availabilityTester(&w, bad, &n) + }() + } +} + +func TestAvailabilityPickerSnapshot(t *testing.T) { + v := availabilityGrid(3, 6) + v[0][1], v[0][2], v[1][2] = true, true, true + free := availabilityGrid(3, 6) + free[0][2], free[1][2], free[2][0] = true, true, true + snapshot(t, "availability_picker", 520, 300, func(c *ui.Context) { + ui.Column(c).Padding(16).Children(func() { + AvailabilityPicker(c, &v, AvailabilityPickerOptions{Days: availabilityDays, From: 9, To: 12, + Others: []AvailabilityPerson{{Name: "Mutsumi", Free: free}}}) + }) + }) +} diff --git a/calendar_day_view.go b/calendar_day_view.go new file mode 100644 index 0000000..a1856ab --- /dev/null +++ b/calendar_day_view.go @@ -0,0 +1,50 @@ +package mujica + +import ( + "time" + + "github.com/egoist/mygo/ui" +) + +// CalendarDayViewOptions configure a CalendarDayView. +type CalendarDayViewOptions struct { + // Location is the zone the day is cut in; required. + Location *time.Location + // Version must change when events change in place. + Version int + // SlotMinutes is the grid step; zero means 30. + SlotMinutes int + // Today is marked; zero uses the system clock. + Today Date + // Now places the current-time line; zero uses the system clock. + Now time.Time + Hour12 bool + Disabled bool + Label string +} + +// CalendarDayView shows one day's time grid. +func CalendarDayView(c *ui.Context, day *Date, events []CalendarEvent, opts CalendarDayViewOptions) CalendarViewResult { + datetimeCheckDate("CalendarDayView day", *day) + if day.IsZero() { + panic("mujica: CalendarDayView needs a day") + } + cfg := timeGridConfig{name: "calendar_day_view", loc: eventLocation("CalendarDayView", opts.Location), version: opts.Version, + slot: timeGridSlot("CalendarDayView", opts.SlotMinutes), today: datetimeToday(c, opts.Today), now: opts.Now, hour12: opts.Hour12} + eventsCheck("CalendarDayView", events) + title := datetimeDayLabel(c, *day) + label := opts.Label + if label == "" { + label = title + } + r := CalendarViewResult{} + root := ui.Column(c).Gap(Density(c).Unit()).Role(ui.RoleGroup).Label(label).Disabled(opts.Disabled) + r.Element = root + root.Children(func() { + calendarViewHeader(c, title, msg(c, "calendar_day_view.prev"), msg(c, "calendar_day_view.next"), func(dir int) { + *day = day.AddDays(dir) + }) + timeGrid(c, root, []Date{*day}, events, cfg, &r) + }) + return r +} diff --git a/calendar_day_view_test.go b/calendar_day_view_test.go new file mode 100644 index 0000000..8ffa166 --- /dev/null +++ b/calendar_day_view_test.go @@ -0,0 +1,79 @@ +package mujica + +import ( + "testing" + "time" + + "github.com/egoist/mygo/ui" +) + +func dayViewTester(day *Date, events []CalendarEvent, opts CalendarDayViewOptions, changes *[]CalendarChange) *ui.Tester { + opts.Location, opts.Today = calTokyo, calendarToday + opts.Now = time.Date(2026, time.October, 14, 10, 30, 0, 0, calTokyo) + return ui.NewTester(func(c *ui.Context) { + Use(c, Settings{}) + if ch, ok := CalendarDayView(c, day, events, opts).Changed(); ok { + *changes = append(*changes, ch) + } + }, 600, 900) +} + +func TestCalendarDayViewOverlapSideBySide(t *testing.T) { + day := oct(14) + evs := []CalendarEvent{calEvent("a", 14, 9, 0, 120), calEvent("b", 14, 9, 30, 60), calEvent("c", 14, 10, 0, 60), calEvent("d", 14, 12, 0, 30)} + var ch []CalendarChange + tt := dayViewTester(&day, evs, CalendarDayViewOptions{}, &ch) + a, _ := tt.Find("Event a, 09:00 – 11:00") + b, _ := tt.Find("Event b, 09:30 – 10:30") + c, _ := tt.Find("Event c, 10:00 – 11:00") + d, _ := tt.Find("Event d, 12:00 – 12:30") + if !(a.X < b.X && b.X < c.X) || a.W > d.W/2 || d.X != a.X { + t.Fatalf("three overlapping events need three columns, the lone one the full width: %v %v %v %v", a, b, c, d) + } +} + +func TestCalendarDayViewNavigationSlotAndDisabled(t *testing.T) { + day := oct(14) + var ch []CalendarChange + tt := dayViewTester(&day, nil, CalendarDayViewOptions{SlotMinutes: 15}, &ch) + if !tt.HasText("Wednesday, October 14, 2026") { + t.Fatalf("title %v", tt.Texts()[:4]) + } + _ = tt.Click("Schedule, Wednesday, October 14, 2026") + tt.Key(0, ui.KeyEnter) + if len(ch) != 1 || ch[0].End.Sub(ch[0].Start) != 15*time.Minute { + t.Fatalf("15-minute slot create %+v", ch) + } + _ = tt.Click("Next day") + if day != oct(15) { + t.Fatalf("day %v", day) + } + d := oct(14) + ch = nil + tt = dayViewTester(&d, nil, CalendarDayViewOptions{Disabled: true}, &ch) + _ = tt.Click("Schedule, Wednesday, October 14, 2026") + tt.Key(0, ui.KeyEnter) + _ = tt.Click("Previous day") + if len(ch) != 0 || d != oct(14) { + t.Fatal("disabled day view reacted") + } + defer func() { + if recover() == nil { + t.Fatal("expected panic without a day") + } + }() + zero := Date{} + dayViewTester(&zero, nil, CalendarDayViewOptions{}, &ch) +} + +func TestCalendarDayViewSnapshot(t *testing.T) { + day := oct(14) + evs := []CalendarEvent{calEvent("a", 14, 9, 0, 120), calEvent("b", 14, 9, 30, 60), calEvent("c", 14, 10, 0, 60), calEvent("d", 14, 12, 0, 30)} + evs[1].Color, evs[2].Color = EventInfo, EventSuccess + snapshot(t, "calendar_day_view", 560, 860, func(c *ui.Context) { + ui.Column(c).Padding(16).Children(func() { + CalendarDayView(c, &day, evs, CalendarDayViewOptions{Location: calTokyo, Today: calendarToday, + Now: time.Date(2026, time.October, 14, 10, 30, 0, 0, calTokyo)}) + }) + }) +} diff --git a/calendar_events.go b/calendar_events.go index 6599680..cf624e0 100644 --- a/calendar_events.go +++ b/calendar_events.go @@ -22,7 +22,7 @@ const ( EventNeutral ) -// CalendarEvent is one entry of the calendar views. End is exclusive. +// CalendarEvent is one entry of the views; End is exclusive. type CalendarEvent struct { ID string Title string @@ -46,7 +46,7 @@ const ( CalendarCreate ) -// CalendarChange is a move, resize or new event a view asks the caller to apply. +// CalendarChange is a move, resize or creation to apply. type CalendarChange struct { Kind CalendarChangeKind ID string @@ -54,7 +54,7 @@ type CalendarChange struct { AllDay bool } -// CalendarViewResult is a calendar view and what the user asked of it. +// CalendarViewResult is a view and what the user asked. type CalendarViewResult struct { Element *ui.Element opened string @@ -76,7 +76,7 @@ func (r CalendarViewResult) Changed() (CalendarChange, bool) { // DayChosen returns the day the user activated. func (r CalendarViewResult) DayChosen() (Date, bool) { return r.day, !r.day.IsZero() } -// eventPalette maps EventColor to tokens that keep 3:1 on Surface in both themes. +// eventPalette maps EventColor to tokens at 3:1 on Surface. func eventPalette(k theme.Tokens) [6]ui.Color { return [6]ui.Color{k.AccentText, k.Info, k.Success, k.Warning, k.Danger, k.TextMuted} } @@ -100,24 +100,25 @@ func eventsCheck(name string, events []CalendarEvent) { } } -// eventsIndex caches the events overlapping a span, rebuilt only when data or span change. -type eventsIndex struct { +// eventsCache holds data derived from events overlapping a span. +type eventsCache[T any] struct { first *CalendarEvent n int version int from, to time.Time - hits []int + value T + valid bool } -// eventsIn returns the indexes of events overlapping [from, to), by start time. -func eventsIn(e *ui.Element, events []CalendarEvent, version int, from, to time.Time) []int { - ix := ui.Local(e, "mujica.events.index", func() *eventsIndex { return &eventsIndex{} }) +// eventsDerived rebuilds build(hits) only when events or span change. +func eventsDerived[T any](e *ui.Element, key string, events []CalendarEvent, version int, from, to time.Time, build func(hits []int) T) T { + cache := ui.Local(e, key, func() *eventsCache[T] { return &eventsCache[T]{} }) var first *CalendarEvent if len(events) > 0 { first = &events[0] } - if c := *ix; c.first == first && c.n == len(events) && c.version == version && c.from.Equal(from) && c.to.Equal(to) && c.hits != nil { - return c.hits + if x := *cache; x.valid && x.first == first && x.n == len(events) && x.version == version && x.from.Equal(from) && x.to.Equal(to) { + return x.value } hits := []int{} for i, ev := range events { @@ -132,14 +133,15 @@ func eventsIn(e *ui.Element, events []CalendarEvent, version int, from, to time. } return x.End.After(y.End) }) - **ix = eventsIndex{first, len(events), version, from, to, hits} - return hits + v := build(hits) + **cache = eventsCache[T]{first, len(events), version, from, to, v, true} + return v } // eventSpan is a placed interval, in any unit. type eventSpan struct{ from, to float64 } -// eventColumns lays out overlapping spans side by side: each gets a column and its cluster's width. +// eventColumns gives overlapping spans side-by-side columns and cluster widths. func eventColumns(spans []eventSpan) (col, cols []int) { col, cols = make([]int, len(spans)), make([]int, len(spans)) order := make([]int, len(spans)) @@ -179,7 +181,7 @@ func eventColumns(spans []eventSpan) (col, cols []int) { return col, cols } -// eventDayStart is midnight of d in loc; a missing midnight resolves to the day's first instant. +// eventDayStart is d's first instant in loc. func eventDayStart(d Date, loc *time.Location) time.Time { return time.Date(d.Year, d.Month, d.Day, 0, 0, 0, 0, loc) } @@ -195,6 +197,38 @@ func eventTimeText(c *ui.Context, ev CalendarEvent, loc *time.Location, hour12 b return text } +// eventShift moves ev by days, keeping wall time. +func eventShift(c *ui.Context, ev CalendarEvent, days int, loc *time.Location) (CalendarChange, string) { + s, e := ev.Start.In(loc), ev.End.In(loc) + ch := CalendarChange{Kind: CalendarMove, ID: ev.ID, AllDay: ev.AllDay} + if ev.AllDay { + ch.Start, ch.End = eventDayStart(DateOf(s).AddDays(days), loc), eventDayStart(DateOf(e).AddDays(days), loc) + return ch, "" + } + day := DateOf(s).AddDays(days) + wall := TimeOfDay{s.Hour(), s.Minute(), s.Second()} + at, n := dateTimeResolve(day, wall, loc) + if p := eventWallProblem(c, day, wall, loc, n); p != "" { + return ch, p + } + ch.Start, ch.End = at, at.Add(ev.End.Sub(ev.Start)) + return ch, "" +} + +// eventWallProblem reports a wall time DST skips or repeats. +func eventWallProblem(c *ui.Context, day Date, wall TimeOfDay, loc *time.Location, n int) string { + key := "" + switch { + case n == 0: + key = "date_time_picker.gap" + case n > 1: + key = "date_time_picker.ambiguous" + default: + return "" + } + return fmt.Sprintf(msg(c, key), day.String()+" "+fmt.Sprintf("%02d:%02d", wall.Hour, wall.Minute), loc.String()) +} + // eventLocation panics without a caller zone; views never assume UTC. func eventLocation(name string, loc *time.Location) *time.Location { if loc == nil { diff --git a/calendar_month_view.go b/calendar_month_view.go new file mode 100644 index 0000000..2d8a72b --- /dev/null +++ b/calendar_month_view.go @@ -0,0 +1,248 @@ +package mujica + +import ( + "fmt" + "log/slog" + "strconv" + "time" + + "github.com/egoist/mygo/ui" + + "mujicaui/icons" + "mujicaui/internal" + "mujicaui/theme" +) + +// CalendarMonthViewOptions configure a CalendarMonthView. +type CalendarMonthViewOptions struct { + // Location is the zone days are cut in; required. + Location *time.Location + // Version must change when events change in place. + Version int + WeekStart WeekStart + // MaxPerDay is rows shown before "+N"; zero means 3. + MaxPerDay int + // Today is marked; zero uses the system clock. + Today Date + Hour12 bool + Disabled bool + Label string +} + +// monthDrag is the event id a month view chip drags. +type monthDrag string + +// monthDay is one cell's rows of side-by-side events. +type monthDay struct { + rows [][]int + n int +} + +// CalendarMonthView shows a month of events; drags reschedule them. +func CalendarMonthView(c *ui.Context, month *YearMonth, events []CalendarEvent, opts CalendarMonthViewOptions) CalendarViewResult { + loc := eventLocation("CalendarMonthView", opts.Location) + if month.IsZero() || month.Month < time.January || month.Month > time.December { + panic(fmt.Sprintf("mujica: CalendarMonthView month %v is not valid", *month)) + } + if opts.MaxPerDay < 0 { + panic("mujica: CalendarMonthView MaxPerDay is negative") + } + maxRows := opts.MaxPerDay + if maxRows == 0 { + maxRows = 3 + } + eventsCheck("CalendarMonthView", events) + k := Tokens(c) + d := Density(c) + today := datetimeToday(c, opts.Today) + first := calendarFirstWeekday(c, opts.WeekStart) + start := Date{month.Year, month.Month, 1} + start = start.AddDays(-((int(start.Weekday()) - int(first) + 7) % 7)) + label := opts.Label + if label == "" { + label = datetimeMonthTitle(c, month.Year, month.Month) + } + r := CalendarViewResult{} + root := ui.Column(c).Gap(d.Unit() * 2).Role(ui.RoleGroup).Label(label).Disabled(opts.Disabled) + r.Element = root + problem := ui.Local(root, "month-view-problem", func() string { return "" }) + more := ui.Local(root, "month-view-more", func() Date { return Date{} }) + days := eventsDerived(root, "month-view-days", events, opts.Version, eventDayStart(start, loc), eventDayStart(start.AddDays(42), loc), + func(hits []int) []monthDay { return monthLayout(events, hits, start, loc) }) + disabled := func() bool { return root.IsDisabled() } + apply := func(ch CalendarChange, p string) { + *problem = p + if p == "" && !disabled() { + slog.Debug("mujica: calendar_month_view move", "id", ch.ID, "start", ch.Start) + r.change = &ch + } + } + root.Children(func() { + ui.Row(c).AlignItems(ui.Center).Gap(d.Unit()).Children(func() { + if iconAction(c, icons.Must("chevron-left"), msg(c, "calendar.prev_month")).Clicked() && !disabled() { + *month = YearMonth{start.AddDays(7).AddMonths(-1).Year, start.AddDays(7).AddMonths(-1).Month} + } + ui.Text(c, datetimeMonthTitle(c, month.Year, month.Month)).Font(theme.SerifFont).FontSize(FontSize(c, theme.H3Size)). + TextColor(k.Text).Grow(1).TextAlign(ui.Center) + if iconAction(c, icons.Must("chevron-right"), msg(c, "calendar.next_month")).Clicked() && !disabled() { + *month = YearMonth{start.AddDays(7).AddMonths(1).Year, start.AddDays(7).AddMonths(1).Month} + } + }) + ui.Row(c).Children(func() { + for i := range 7 { + wd := (int(first) + i) % 7 + ui.Text(c, msg(c, "calendar.weekday_"+strconv.Itoa(wd))).Grow(1).Basis(0).TextAlign(ui.Center). + FontSize(FontSize(c, theme.CaptionSize)).TextColor(k.TextMuted).Label(msg(c, "calendar.weekday_long_"+strconv.Itoa(wd))) + } + }) + ui.Column(c).Border(theme.BorderWidth, k.Border).Dividers(theme.BorderWidth, k.Border).FocusGroup(ui.Horizontal | ui.Vertical).Children(func() { + for w := range 6 { + ui.Row(c).Dividers(theme.BorderWidth, k.Border).Children(func() { + for i := range 7 { + at := w*7 + i + day := start.AddDays(at) + monthCell(c, day, *month, today, days[at], events, maxRows, loc, opts, &r, more, apply) + } + }) + } + }) + datetimeError(c, *problem) + }) + return r +} + +// monthLayout buckets events per day, concurrent ones side by side. +func monthLayout(events []CalendarEvent, hits []int, start Date, loc *time.Location) []monthDay { + out := make([]monthDay, 42) + for i := range out { + from, to := eventDayStart(start.AddDays(i), loc), eventDayStart(start.AddDays(i+1), loc) + var idx []int + var spans []eventSpan + for _, h := range hits { + ev := events[h] + if ev.Start.Before(to) && ev.End.After(from) { + idx = append(idx, h) + spans = append(spans, eventSpan{float64(max(ev.Start.Unix(), from.Unix())), float64(min(ev.End.Unix(), to.Unix()))}) + } + } + col, _ := eventColumns(spans) + for j, h := range idx { + if col[j] == 0 || len(out[i].rows) == 0 { + out[i].rows = append(out[i].rows, []int{h}) + } else { + last := len(out[i].rows) - 1 + out[i].rows[last] = append(out[i].rows[last], h) + } + } + out[i].n = len(idx) + } + return out +} + +// monthCell draws one day: number, chips and "+N". +func monthCell(c *ui.Context, day Date, month YearMonth, today Date, lay monthDay, events []CalendarEvent, maxRows int, + loc *time.Location, opts CalendarMonthViewOptions, r *CalendarViewResult, more *Date, apply func(CalendarChange, string)) { + k := Tokens(c) + d := Density(c) + cell := ui.Column(c).Grow(1).Basis(0).MinWidth(0).MinHeight(d.ControlHeight() * 3.5).Padding(d.Unit()).Gap(d.Unit()).Clip() + if id, ok := ui.Drop[monthDrag](cell); ok && !cell.IsDisabled() { + for _, ev := range events { + if ev.ID == string(id) { + apply(eventShift(c, ev, monthDays(ev.Start.In(loc), day), loc)) + } + } + } + if _, over := ui.DragOver[monthDrag](cell); over { + cell.Background(k.Selection) + cell.DrawOver(func(p *ui.Painter, rr ui.Rect) { datetimeSelectedMark(p, rr, k.Focus) }) + } + cell.Children(func() { + fg := k.Text + if day.Month != month.Month { + fg = k.TextMuted + } + num := ui.ButtonBase(c).Size(theme.MinHitSize, theme.MinHitSize).Radius(theme.MinHitSize / 2).Label(datetimeDayLabel(c, day)) + internal.Ring(num, k.Focus, theme.MinHitSize/2) + if day == today { + num.Background(k.Selection).Border(theme.BorderWidth, k.AccentText) + } else if num.Hovered() { + num.Background(k.SurfaceHover) + } + num.Children(func() { + t := ui.Text(c, strconv.Itoa(day.Day)).TextColor(fg).FontSize(FontSize(c, theme.CaptionSize)).FontFeatures("tnum") + if day == today { + t.Bold() + } + }) + if num.Clicked() && !num.IsDisabled() { + r.day = day + } + shown := 0 + for i, row := range lay.rows { + if i >= maxRows { + break + } + ui.Row(c).Gap(d.Unit() / 2).Children(func() { + for _, h := range row { + monthChip(c, events[h], loc, opts, r, apply) + shown++ + } + }) + } + if hidden := lay.n - shown; hidden > 0 { + b := ui.ButtonBase(c).MinHeight(theme.MinHitSize).Justify(ui.Start).PaddingX(d.Unit()).Radius(theme.ControlRadius). + Label(calendarCount(c, "calendar_month_view.more_label", hidden)) + internal.Ring(b, k.Focus, theme.ControlRadius) + if b.Hovered() { + b.Background(k.SurfaceHover) + } + b.Children(func() { + ui.Text(c, fmt.Sprintf(msg(c, "calendar_month_view.more"), hidden)).FontSize(FontSize(c, theme.CaptionSize)).TextColor(k.AccentText) + }) + if b.Clicked() && !b.IsDisabled() { + *more = day + } + open := *more == day + ui.PopoverBase(c, b, &open, func(panel *ui.Element) { + overlayStyle(c, panel, overlayEnter(c, panel)) + _, wh := c.Size() + panel.Padding(d.Unit() * 2).Gap(d.Unit()).MinWidth(d.ControlHeight() * 6).MaxHeight(wh / 2) + ui.Text(c, datetimeDayLabel(c, day)).Font(theme.SerifFont).TextColor(k.Text) + ui.Scroll(c).Shrink(1).Children(func() { + ui.Column(c).Gap(d.Unit()).Children(func() { + for _, row := range lay.rows { + for _, h := range row { + monthChip(c, events[h], loc, opts, r, apply) + } + } + }) + }) + }) + if !open && *more == day { + *more = Date{} + } + } + }) +} + +// monthChip is a draggable chip; Alt+arrows move it. +func monthChip(c *ui.Context, ev CalendarEvent, loc *time.Location, opts CalendarMonthViewOptions, r *CalendarViewResult, apply func(CalendarChange, string)) { + chip := EventChip(c, ev, EventChipOptions{Location: loc, Hour12: opts.Hour12, Inline: true}).Grow(1).Basis(0).MinWidth(theme.MinHitSize) + if chip.IsDisabled() { + return + } + chip.Drag(monthDrag(ev.ID)) + if chip.Clicked() { + r.opened = ev.ID + } + for key, days := range map[ui.Key]int{ui.KeyLeft: -1, ui.KeyRight: 1, ui.KeyUp: -7, ui.KeyDown: 7} { + if chip.Shortcut(ui.Alt, key) { + apply(eventShift(c, ev, days, loc)) + } + } +} + +// monthDays counts calendar days from t's day to day. +func monthDays(t time.Time, day Date) int { + return int(day.civil().Sub(DateOf(t).civil()).Hours() / 24) +} diff --git a/calendar_month_view_test.go b/calendar_month_view_test.go new file mode 100644 index 0000000..e955450 --- /dev/null +++ b/calendar_month_view_test.go @@ -0,0 +1,171 @@ +package mujica + +import ( + "fmt" + "testing" + "time" + + "github.com/egoist/mygo/ui" +) + +type monthProbe struct { + month YearMonth + events []CalendarEvent + opts CalendarMonthViewOptions + opened []string + changes []CalendarChange + days []Date + disabled bool +} + +func (p *monthProbe) tester() *ui.Tester { + if p.month.IsZero() { + p.month = YearMonth{2026, time.October} + } + p.opts.Location, p.opts.Today = calTokyo, calendarToday + return ui.NewTester(func(c *ui.Context) { + Use(c, Settings{}) + o := p.opts + o.Disabled = p.disabled + r := CalendarMonthView(c, &p.month, p.events, o) + if id, ok := r.Opened(); ok { + p.opened = append(p.opened, id) + } + if ch, ok := r.Changed(); ok { + p.changes = append(p.changes, ch) + } + if d, ok := r.DayChosen(); ok { + p.days = append(p.days, d) + } + }, 1000, 900) +} + +func TestCalendarMonthViewOverflowAndPopover(t *testing.T) { + p := &monthProbe{} + for i := range 5 { + p.events = append(p.events, calEvent(fmt.Sprint(i), 14, 8+2*i, 0, 60)) + } + tt := p.tester() + if !tt.HasText("+2") || tt.HasText("Event 3") { + t.Fatalf("3 rows then +2 expected: %v", tt.Texts()) + } + _ = tt.Click("2 more events") + if !tt.HasText("Event 4") { + t.Fatal("+N should list the hidden events") + } + _ = tt.Click("Event 4, 16:00 – 17:00") + if len(p.opened) != 1 || p.opened[0] != "4" { + t.Fatalf("opened %v", p.opened) + } +} + +func TestCalendarMonthViewOverlapSideBySide(t *testing.T) { + p := &monthProbe{events: []CalendarEvent{calEvent("a", 14, 9, 0, 120), calEvent("b", 14, 10, 0, 60), calEvent("c", 14, 15, 0, 60)}} + tt := p.tester() + a, _ := tt.Find("Event a, 09:00 – 11:00") + b, _ := tt.Find("Event b, 10:00 – 11:00") + cc, _ := tt.Find("Event c, 15:00 – 16:00") + if a.Y != b.Y || b.X <= a.X || cc.Y <= a.Y { + t.Fatalf("overlapping events should share a row: %v %v %v", a, b, cc) + } +} + +func TestCalendarMonthViewDragAndKeys(t *testing.T) { + p := &monthProbe{events: []CalendarEvent{calEvent("a", 14, 9, 30, 60)}} + tt := p.tester() + chip, _ := tt.Find("Event a, 09:30 – 10:30") + target, _ := tt.Find(datetimeTestLabel(oct(16))) + tt.Press(chip.X+10, chip.Y+5) + for i := 1; i <= 4; i++ { + f := float32(i) / 4 + tt.Move(chip.X+10+(target.X+20-chip.X-10)*f, chip.Y+5+(target.Y+40-chip.Y-5)*f) + } + tt.Release(target.X+20, target.Y+40) + want := time.Date(2026, time.October, 16, 9, 30, 0, 0, calTokyo) + if len(p.changes) != 1 || !p.changes[0].Start.Equal(want) || p.changes[0].End.Sub(p.changes[0].Start) != time.Hour { + t.Fatalf("drop gave %+v", p.changes) + } + _ = tt.Click("Event a, 09:30 – 10:30") + tt.Key(ui.Alt, ui.KeyDown) + if len(p.changes) != 2 || !p.changes[1].Start.Equal(time.Date(2026, time.October, 21, 9, 30, 0, 0, calTokyo)) { + t.Fatalf("Alt+Down gave %+v", p.changes) + } +} + +func TestCalendarMonthViewDSTGapReported(t *testing.T) { + ny, err := time.LoadLocation("America/New_York") + if err != nil { + t.Fatal(err) + } + ev := CalendarEvent{ID: "g", Title: "Early", Start: time.Date(2026, time.March, 7, 2, 30, 0, 0, ny)} + ev.End = ev.Start.Add(time.Hour) + p := &monthProbe{month: YearMonth{2026, time.March}, events: []CalendarEvent{ev}} + p.opts.Location = ny + tt := ui.NewTester(func(c *ui.Context) { + Use(c, Settings{}) + if ch, ok := CalendarMonthView(c, &p.month, p.events, CalendarMonthViewOptions{Location: ny, Today: Date{2026, time.March, 1}}).Changed(); ok { + p.changes = append(p.changes, ch) + } + }, 1000, 900) + _ = tt.Click("Early, 02:30 – 03:30") + tt.Key(ui.Alt, ui.KeyRight) + if len(p.changes) != 0 || !tt.HasText("2026-03-08 02:30 does not exist in America/New_York") { + t.Fatalf("gap not reported: %v", tt.Texts()) + } +} + +func TestCalendarMonthViewNavigationDayAndDisabled(t *testing.T) { + p := &monthProbe{events: []CalendarEvent{calEvent("a", 14, 9, 0, 60)}} + tt := p.tester() + _ = tt.Click(datetimeTestLabel(oct(20))) + _ = tt.Click("Next month") + if len(p.days) != 1 || p.days[0] != oct(20) || p.month != (YearMonth{2026, time.November}) { + t.Fatalf("day %v month %v", p.days, p.month) + } + p.month, p.disabled = YearMonth{2026, time.October}, true + tt.Frame() + _ = tt.Click("Next month") + _ = tt.Click("Event a, 09:00 – 10:00") + tt.Key(ui.Alt, ui.KeyRight) + if p.month != (YearMonth{2026, time.October}) || len(p.opened) != 0 || len(p.changes) != 0 { + t.Fatal("disabled view reacted") + } +} + +func TestCalendarMonthViewLargeDataAndInvalid(t *testing.T) { + p := &monthProbe{} + base := time.Date(2000, 1, 1, 9, 0, 0, 0, calTokyo) + for i := range 100000 { + s := base.Add(time.Duration(i) * 3 * time.Hour) + p.events = append(p.events, CalendarEvent{ID: fmt.Sprint(i), Title: "E", Start: s, End: s.Add(time.Hour)}) + } + tt := p.tester() + if n := len(tt.Texts()); n > 800 { + t.Fatalf("built %d labels for one month", n) + } + for _, bad := range []func(){ + func() { q := &monthProbe{events: []CalendarEvent{{ID: "x", Start: base, End: base}}}; q.tester() }, + func() { q := &monthProbe{opts: CalendarMonthViewOptions{MaxPerDay: -1}}; q.tester() }, + } { + func() { + defer func() { + if recover() == nil { + t.Error("expected panic") + } + }() + bad() + }() + } +} + +func TestCalendarMonthViewSnapshot(t *testing.T) { + m := YearMonth{2026, time.October} + evs := []CalendarEvent{calEvent("1", 6, 9, 0, 60), calEvent("2", 14, 9, 0, 120), calEvent("3", 14, 10, 0, 30), + calEvent("4", 14, 13, 0, 30), calEvent("5", 14, 15, 0, 30), calEvent("6", 14, 17, 0, 30), calEvent("7", 22, 18, 0, 60)} + evs[1].Color, evs[2].Color, evs[6].Color = EventInfo, EventSuccess, EventWarning + snapshot(t, "calendar_month_view", 900, 860, func(c *ui.Context) { + ui.Column(c).Padding(16).Children(func() { + CalendarMonthView(c, &m, evs, CalendarMonthViewOptions{Location: calTokyo, Today: calendarToday}) + }) + }) +} diff --git a/calendar_time_grid.go b/calendar_time_grid.go new file mode 100644 index 0000000..3b241bc --- /dev/null +++ b/calendar_time_grid.go @@ -0,0 +1,369 @@ +package mujica + +import ( + "fmt" + "log/slog" + "math" + "strconv" + "time" + + "github.com/egoist/mygo/ui" + + "mujicaui/internal" + "mujicaui/theme" +) + +// timeGridConfig is what the week and day views share. +type timeGridConfig struct { + name string + loc *time.Location + version int + slot int + today Date + now time.Time + hour12 bool +} + +// timeGesture is a drag in progress on the time grid. +type timeGesture struct { + active bool + kind CalendarChangeKind + id string + day int + anchor int + dx, dy float32 + cur int +} + +// timeGridDay is one column's timed and all-day events. +type timeGridDay struct { + timed []timePlaced + allDay []int +} + +type timePlaced struct { + ev int + from, to int + col, cols int +} + +// timeGridSlot checks and defaults the slot length. +func timeGridSlot(name string, slot int) int { + if slot == 0 { + return 30 + } + if slot < 0 || 60%slot != 0 && slot%60 != 0 { + panic(fmt.Sprintf("mujica: %s SlotMinutes %d must divide an hour", name, slot)) + } + return slot +} + +// timeGrid draws day columns and turns gestures into changes. +func timeGrid(c *ui.Context, root *ui.Element, days []Date, events []CalendarEvent, cfg timeGridConfig, r *CalendarViewResult) { + k := Tokens(c) + d := Density(c) + hourH := d.ControlHeight() * 2 + slotH := hourH * float32(cfg.slot) / 60 + g := *ui.Local(root, "time-grid-gesture", func() *timeGesture { return &timeGesture{} }) + morning := func() []int { + v := make([]int, len(days)) + for i := range v { + v[i] = 8 * 60 / cfg.slot + } + return v + } + cursor := ui.Local(root, "time-grid-cursor", morning) + if len(*cursor) != len(days) { + *cursor = morning() + } + problem := ui.Local(root, "time-grid-problem", func() string { return "" }) + scroll := ui.Local(root, "time-grid-scroll", func() *ui.ScrollState { return &ui.ScrollState{Y: hourH * 8} }) + lay := eventsDerived(root, "time-grid-layout", events, cfg.version, eventDayStart(days[0], cfg.loc), + eventDayStart(days[len(days)-1].AddDays(1), cfg.loc), func(hits []int) []timeGridDay { return timeGridLayout(events, hits, days, cfg.loc) }) + apply := func(ch CalendarChange, p string) { + *problem = p + if p == "" && !root.IsDisabled() { + slog.Debug("mujica: "+cfg.name+" change", "kind", ch.Kind, "id", ch.ID, "start", ch.Start, "end", ch.End) + r.change = &ch + } + } + gutter := d.ControlHeight() * 1.6 + ui.Row(c).Children(func() { + ui.Box(c).Width(gutter).Shrink(0) + for _, day := range days { + wd := msg(c, "calendar.weekday_"+strconv.Itoa(int(day.Weekday()))) + b := ui.ButtonBase(c).Grow(1).Basis(0).MinHeight(theme.MinHitSize).Gap(d.Unit()).Radius(theme.ControlRadius).Label(datetimeDayLabel(c, day)) + internal.Ring(b, k.Focus, theme.ControlRadius) + if day == cfg.today { + b.Background(k.Selection) + } else if b.Hovered() { + b.Background(k.SurfaceHover) + } + b.Children(func() { + ui.Text(c, wd).FontSize(FontSize(c, theme.CaptionSize)).TextColor(k.TextMuted) + t := ui.Text(c, strconv.Itoa(day.Day)).TextColor(k.Text).FontFeatures("tnum") + if day == cfg.today { + t.Bold().TextColor(k.AccentText) + } + }) + if b.Clicked() && !b.IsDisabled() { + r.day = day + } + } + }) + ui.Row(c).BorderWidth(0, 0, theme.BorderWidth, 0).BorderColor(k.Border).Children(func() { + ui.Text(c, msg(c, "calendar_week_view.all_day")).Width(gutter).Shrink(0).FontSize(FontSize(c, theme.CaptionSize)).TextColor(k.TextMuted). + Padding(d.Unit()) + for i, day := range days { + cell := ui.Column(c).Grow(1).Basis(0).MinWidth(0).MinHeight(theme.MinHitSize).Padding(d.Unit() / 2).Gap(d.Unit() / 2) + if id, ok := ui.Drop[monthDrag](cell); ok && !cell.IsDisabled() { + for _, ev := range events { + if ev.ID == string(id) { + apply(eventShift(c, ev, monthDays(ev.Start.In(cfg.loc), day), cfg.loc)) + } + } + } + cell.Children(func() { + for _, h := range lay[i].allDay { + monthChip(c, events[h], cfg.loc, CalendarMonthViewOptions{Hour12: cfg.hour12}, r, apply) + } + }) + } + }) + ui.Scroll(c).TrackScroll(*scroll).Height(hourH * 9).Children(func() { + ui.Row(c).Children(func() { + ui.Column(c).Width(gutter).Shrink(0).Children(func() { + for h := range 24 { + ui.Text(c, timeText(c, TimeOfDay{h, 0, 0}, timeConfig{hour12: cfg.hour12})).Height(hourH). + FontSize(FontSize(c, theme.CaptionSize)).TextColor(k.TextMuted).FontFeatures("tnum").PaddingX(d.Unit()) + } + }) + for i, day := range days { + timeColumn(c, i, day, lay[i], events, cfg, hourH, slotH, g, &(*cursor)[i], r, apply) + } + }) + }) + datetimeError(c, *problem) +} + +// timeGridLayout places each day's events in minutes with side-by-side columns. +func timeGridLayout(events []CalendarEvent, hits []int, days []Date, loc *time.Location) []timeGridDay { + out := make([]timeGridDay, len(days)) + for i, day := range days { + from, to := eventDayStart(day, loc), eventDayStart(day.AddDays(1), loc) + var spans []eventSpan + for _, h := range hits { + ev := events[h] + if !ev.Start.Before(to) || !ev.End.After(from) { + continue + } + if ev.AllDay || ev.End.Sub(ev.Start) >= 24*time.Hour { + out[i].allDay = append(out[i].allDay, h) + continue + } + a, b := 0, 24*60 + if !ev.Start.Before(from) { + a = timeWallMinutes(ev.Start.In(loc)) + } + if ev.End.Before(to) { + b = timeWallMinutes(ev.End.In(loc)) + } + b = max(b, a+1) + out[i].timed = append(out[i].timed, timePlaced{ev: h, from: a, to: b}) + spans = append(spans, eventSpan{float64(a), float64(b)}) + } + col, cols := eventColumns(spans) + for j := range out[i].timed { + out[i].timed[j].col, out[i].timed[j].cols = col[j], cols[j] + } + } + return out +} + +func timeWallMinutes(t time.Time) int { return t.Hour()*60 + t.Minute() } + +// timeColumn draws one day: lines, events, preview and cursor. +func timeColumn(c *ui.Context, i int, day Date, lay timeGridDay, events []CalendarEvent, cfg timeGridConfig, hourH, slotH float32, + g *timeGesture, cursor *int, r *CalendarViewResult, apply func(CalendarChange, string)) { + k := Tokens(c) + slots := 24 * 60 / cfg.slot + col := ui.Box(c).Grow(1).Basis(0).MinWidth(0).Height(hourH*24).Focusable(). + Role(ui.RoleGroup).Label(fmt.Sprintf(msg(c, "calendar_week_view.column"), datetimeDayLabel(c, day))).BorderWidth(0, 0, 0, theme.BorderWidth).BorderColor(k.Border) + disabled := col.IsDisabled() + slotOf := func(y float32) int { return max(0, min(slots-1, int(y/slotH))) } + if !disabled { + switch { + case col.Shortcut(0, ui.KeyUp): + *cursor = max(0, *cursor-1) + case col.Shortcut(0, ui.KeyDown): + *cursor = min(slots-1, *cursor+1) + case col.Shortcut(0, ui.KeyEnter): + apply(timeCreate(c, day, *cursor, *cursor+1, cfg)) + } + _, py, _ := col.PointerPosition() + dx, dy, pressing := col.Dragged() + if pressing && !g.active { + *g = timeGesture{active: true, kind: CalendarCreate, day: i, anchor: slotOf(py - dy), cur: slotOf(py)} + } + if g.active && g.kind == CalendarCreate && g.day == i { + if pressing { + g.dx, g.dy = g.dx+dx, g.dy+dy + g.cur = slotOf(py) + } else { + a, b := min(g.anchor, g.cur), max(g.anchor, g.cur)+1 + if math.Abs(float64(g.dy)) >= 4 { + apply(timeCreate(c, day, a, b, cfg)) + } + *cursor = g.anchor + *g = timeGesture{} + } + } + } + focused := col.Focused() + cur := *cursor + creating := g.active && g.kind == CalendarCreate && g.day == i + ga, gb := min(g.anchor, g.cur), max(g.anchor, g.cur)+1 + col.Draw(func(p *ui.Painter, rr ui.Rect) { + for h := 1; h < 24; h++ { + internal.Rule(p, rr.X, rr.X+rr.W, rr.Y+float32(h)*hourH, k.Border) + } + if focused { + box := ui.Rect{X: rr.X + 2, Y: rr.Y + float32(cur)*slotH + 1, W: rr.W - 4, H: slotH - 2} + p.Fill(box, k.Selection, theme.ControlRadius) + datetimeSelectedMark(p, box, k.Focus) + } + if creating { + box := ui.Rect{X: rr.X + 2, Y: rr.Y + float32(ga)*slotH, W: rr.W - 4, H: float32(gb-ga) * slotH} + p.Fill(box, k.Selection, theme.ControlRadius) + p.StrokeDashed(box, k.AccentText, theme.ControlRadius, theme.BorderWidth) + } + }) + col.Children(func() { + now := cfg.now + if now.IsZero() { + now = c.Now() + } + for _, pl := range lay.timed { + timeChip(c, i, pl, events[pl.ev], cfg, hourH, slotH, g, r, apply) + } + if day == DateOf(now.In(cfg.loc)) { + CurrentTimeIndicator(c, CurrentTimeIndicatorOptions{Location: cfg.loc, Day: day, Now: cfg.now, Hour12: cfg.hour12}) + } + }) +} + +// timeChip places an event; drag moves, bottom edge resizes. +func timeChip(c *ui.Context, i int, pl timePlaced, ev CalendarEvent, cfg timeGridConfig, hourH, slotH float32, + g *timeGesture, r *CalendarViewResult, apply func(CalendarChange, string)) { + from, to := float32(pl.from)*hourH/60, float32(pl.to)*hourH/60 + mine := g.active && g.id == ev.ID && g.day == i + snap := func(v float32) int { return int(math.Round(float64(v/slotH))) * cfg.slot } + var shiftY, growY float32 + if mine && g.kind == CalendarMove { + shiftY = float32(snap(g.dy)) * hourH / 60 + } + if mine && g.kind == CalendarResize { + growY = float32(snap(g.dy)) * hourH / 60 + } + box := ui.Box(c).Key(ev.ID).Absolute().Top(from + shiftY).Height(max(to-from+growY, theme.MinHitSize)). + LeftPercent(100 * float32(pl.col) / float32(pl.cols)).WidthPercent(100 / float32(pl.cols)).Padding(1) + box.Children(func() { + chip := EventChip(c, ev, EventChipOptions{Location: cfg.loc, Hour12: cfg.hour12, Selected: mine, Inline: to-from < hourH*0.75}).Fill() + handle := ui.Box(c).Absolute().Left(0).Right(0).Bottom(0).Height(6).Cursor(ui.CursorResizeNS).Label(fmt.Sprintf(msg(c, "calendar_week_view.resize"), ev.Title)) + if chip.IsDisabled() { + return + } + if chip.Clicked() && !mine { + r.opened = ev.ID + } + for key, dm := range map[ui.Key]int{ui.KeyUp: -cfg.slot, ui.KeyDown: cfg.slot} { + if chip.Shortcut(ui.Alt, key) { + apply(timeMove(c, ev, 0, dm, cfg)) + } + if chip.Shortcut(ui.Alt|ui.Shift, key) { + apply(timeResize(c, ev, dm, cfg)) + } + } + for key, dd := range map[ui.Key]int{ui.KeyLeft: -1, ui.KeyRight: 1} { + if chip.Shortcut(ui.Alt, key) { + apply(timeMove(c, ev, dd, 0, cfg)) + } + } + for _, part := range []struct { + e *ui.Element + kind CalendarChangeKind + }{{chip, CalendarMove}, {handle, CalendarResize}} { + dx, dy, ok := part.e.Dragged() + switch { + case ok && (!g.active && (dx != 0 || dy != 0) || mine && g.kind == part.kind): + if !g.active { + *g = timeGesture{active: true, kind: part.kind, id: ev.ID, day: i} + } + g.dx, g.dy = g.dx+dx, g.dy+dy + case !ok && mine && g.kind == part.kind: + dm := snap(g.dy) + if part.kind == CalendarResize { + if dm != 0 { + apply(timeResize(c, ev, dm, cfg)) + } + } else if dd := int(math.Round(float64(g.dx / max(chip.Bounds().W*float32(pl.cols), 1)))); dm != 0 || dd != 0 { + apply(timeMove(c, ev, dd, dm, cfg)) + } + *g = timeGesture{} + } + } + }) +} + +// timeCreate makes an event over slots [a, b). +func timeCreate(c *ui.Context, day Date, a, b int, cfg timeGridConfig) (CalendarChange, string) { + s, sn := timeAt(day, a*cfg.slot, cfg.loc) + e, en := timeAt(day, b*cfg.slot, cfg.loc) + if p := eventWallProblem(c, timeDay(day, a*cfg.slot), timeWall(a*cfg.slot), cfg.loc, sn); p != "" { + return CalendarChange{}, p + } + if p := eventWallProblem(c, timeDay(day, b*cfg.slot), timeWall(b*cfg.slot), cfg.loc, en); p != "" { + return CalendarChange{}, p + } + return CalendarChange{Kind: CalendarCreate, Start: s, End: e}, "" +} + +// timeMove shifts ev by days and minutes of wall time. +func timeMove(c *ui.Context, ev CalendarEvent, days, minutes int, cfg timeGridConfig) (CalendarChange, string) { + s := ev.Start.In(cfg.loc) + day := DateOf(s).AddDays(days) + m := timeWallMinutes(s) + minutes + at, n := timeAt(day, m, cfg.loc) + if p := eventWallProblem(c, timeDay(day, m), timeWall(m), cfg.loc, n); p != "" { + return CalendarChange{}, p + } + return CalendarChange{Kind: CalendarMove, ID: ev.ID, Start: at, End: at.Add(ev.End.Sub(ev.Start))}, "" +} + +// timeResize moves ev's end by minutes of wall time. +func timeResize(c *ui.Context, ev CalendarEvent, minutes int, cfg timeGridConfig) (CalendarChange, string) { + e := ev.End.In(cfg.loc) + day, m := DateOf(e), timeWallMinutes(e)+minutes + at, n := timeAt(day, m, cfg.loc) + if p := eventWallProblem(c, timeDay(day, m), timeWall(m), cfg.loc, n); p != "" { + return CalendarChange{}, p + } + if !at.After(ev.Start) { + return CalendarChange{}, msg(c, "calendar_week_view.too_short") + } + return CalendarChange{Kind: CalendarResize, ID: ev.ID, Start: ev.Start, End: at}, "" +} + +// timeAt resolves minute m of day as wall time. +func timeAt(day Date, m int, loc *time.Location) (time.Time, int) { + return dateTimeResolve(timeDay(day, m), timeWall(m), loc) +} + +func timeDay(day Date, m int) Date { + return day.AddDays(int(math.Floor(float64(m) / (24 * 60)))) +} + +func timeWall(m int) TimeOfDay { + m = ((m % (24 * 60)) + 24*60) % (24 * 60) + return TimeOfDay{m / 60, m % 60, 0} +} diff --git a/calendar_week_view.go b/calendar_week_view.go new file mode 100644 index 0000000..bf24605 --- /dev/null +++ b/calendar_week_view.go @@ -0,0 +1,80 @@ +package mujica + +import ( + "fmt" + "time" + + "github.com/egoist/mygo/ui" + + "mujicaui/icons" + "mujicaui/theme" +) + +// CalendarWeekViewOptions configure a CalendarWeekView. +type CalendarWeekViewOptions struct { + // Location is the zone days are cut in; required. + Location *time.Location + // Version must change when events change in place. + Version int + WeekStart WeekStart + // SlotMinutes is the grid step; zero means 30. + SlotMinutes int + // Today is marked; zero uses the system clock. + Today Date + // Now places the current-time line; zero uses the system clock. + Now time.Time + Hour12 bool + Disabled bool + Label string +} + +// CalendarWeekView shows *week as a time grid; drags edit events. +func CalendarWeekView(c *ui.Context, week *Date, events []CalendarEvent, opts CalendarWeekViewOptions) CalendarViewResult { + datetimeCheckDate("CalendarWeekView week", *week) + if week.IsZero() { + panic("mujica: CalendarWeekView needs a week") + } + cfg := timeGridConfig{name: "calendar_week_view", loc: eventLocation("CalendarWeekView", opts.Location), version: opts.Version, + slot: timeGridSlot("CalendarWeekView", opts.SlotMinutes), today: datetimeToday(c, opts.Today), now: opts.Now, hour12: opts.Hour12} + eventsCheck("CalendarWeekView", events) + first := calendarFirstWeekday(c, opts.WeekStart) + start := week.AddDays(-((int(week.Weekday()) - int(first) + 7) % 7)) + days := make([]Date, 7) + for i := range days { + days[i] = start.AddDays(i) + } + title := weekViewTitle(c, start, start.AddDays(6)) + label := opts.Label + if label == "" { + label = title + } + r := CalendarViewResult{} + root := ui.Column(c).Gap(Density(c).Unit()).Role(ui.RoleGroup).Label(label).Disabled(opts.Disabled) + r.Element = root + root.Children(func() { + calendarViewHeader(c, title, msg(c, "calendar_week_view.prev"), msg(c, "calendar_week_view.next"), func(dir int) { + *week = week.AddDays(7 * dir) + }) + timeGrid(c, root, days, events, cfg, &r) + }) + return r +} + +// calendarViewHeader is the title row with previous and next buttons. +func calendarViewHeader(c *ui.Context, title, prev, next string, step func(dir int)) { + k := Tokens(c) + ui.Row(c).AlignItems(ui.Center).Gap(Density(c).Unit()).Children(func() { + if b := iconAction(c, icons.Must("chevron-left"), prev); b.Clicked() && !b.IsDisabled() { + step(-1) + } + ui.Text(c, title).Font(theme.SerifFont).FontSize(FontSize(c, theme.H3Size)).TextColor(k.Text).Grow(1).TextAlign(ui.Center) + if b := iconAction(c, icons.Must("chevron-right"), next); b.Clicked() && !b.IsDisabled() { + step(1) + } + }) +} + +// weekViewTitle names a span of days. +func weekViewTitle(c *ui.Context, a, b Date) string { + return fmt.Sprintf(msg(c, "calendar_week_view.title"), datetimeMonthName(c, a.Month), a.Day, datetimeMonthName(c, b.Month), b.Day, b.Year) +} diff --git a/calendar_week_view_test.go b/calendar_week_view_test.go new file mode 100644 index 0000000..63a5ea4 --- /dev/null +++ b/calendar_week_view_test.go @@ -0,0 +1,175 @@ +package mujica + +import ( + "fmt" + "testing" + "time" + + "github.com/egoist/mygo/ui" +) + +type weekProbe struct { + week Date + events []CalendarEvent + opts CalendarWeekViewOptions + changes []CalendarChange + opened []string + disabled bool +} + +func (p *weekProbe) tester() *ui.Tester { + if p.week.IsZero() { + p.week = oct(14) + } + p.opts.Location, p.opts.Today = calTokyo, calendarToday + p.opts.Now = time.Date(2026, time.October, 14, 10, 30, 0, 0, calTokyo) + return ui.NewTester(func(c *ui.Context) { + Use(c, Settings{}) + o := p.opts + o.Disabled = p.disabled + r := CalendarWeekView(c, &p.week, p.events, o) + if ch, ok := r.Changed(); ok { + p.changes = append(p.changes, ch) + } + if id, ok := r.Opened(); ok { + p.opened = append(p.opened, id) + } + }, 1100, 900) +} + +func calDrag(tt *ui.Tester, x0, y0, x1, y1 float32) { + tt.Press(x0, y0) + for i := 1; i <= 4; i++ { + f := float32(i) / 4 + tt.Move(x0+(x1-x0)*f, y0+(y1-y0)*f) + } + tt.Release(x1, y1) +} + +func calAt(t *testing.T, h, m int, day int) time.Time { + t.Helper() + return time.Date(2026, time.October, day, h, m, 0, 0, calTokyo) +} + +func TestCalendarWeekViewDragCreateAndKeyboardCreate(t *testing.T) { + p := &weekProbe{} + tt := p.tester() + col, ok := tt.Find("Schedule, " + datetimeTestLabel(oct(15))) + if !ok { + t.Fatal("no column") + } + hourH := float32(72) + // Drag 9:00 to 10:30; the visible top is 8:00. + y9 := col.Y + hourH + 5 + calDrag(tt, col.X+20, y9, col.X+20, y9+hourH*1.5) + if len(p.changes) != 1 || p.changes[0].Kind != CalendarCreate || !p.changes[0].Start.Equal(calAt(t, 9, 0, 15)) || !p.changes[0].End.Equal(calAt(t, 11, 0, 15)) { + t.Fatalf("drag create %+v", p.changes) + } + tt.Key(0, ui.KeyDown) + tt.Key(0, ui.KeyEnter) + if len(p.changes) != 2 || !p.changes[1].Start.Equal(calAt(t, 9, 30, 15)) || !p.changes[1].End.Equal(calAt(t, 10, 0, 15)) { + t.Fatalf("keyboard create %+v", p.changes) + } +} + +func TestCalendarWeekViewMoveResizeAndOverlap(t *testing.T) { + p := &weekProbe{events: []CalendarEvent{calEvent("a", 14, 9, 0, 60), calEvent("b", 14, 9, 30, 60)}} + tt := p.tester() + a, _ := tt.Find("Event a, 09:00 – 10:00") + b, _ := tt.Find("Event b, 09:30 – 10:30") + if b.X <= a.X || b.X-a.X < a.W/2 || b.Y <= a.Y { + t.Fatalf("overlapping events should sit side by side: %v %v", a, b) + } + calDrag(tt, a.X+10, a.Y+20, a.X+10, a.Y+20+72) + if len(p.changes) != 1 || p.changes[0].Kind != CalendarMove || !p.changes[0].Start.Equal(calAt(t, 10, 0, 14)) || !p.changes[0].End.Equal(calAt(t, 11, 0, 14)) { + t.Fatalf("move %+v", p.changes) + } + h, _ := tt.Find("Resize Event b") + calDrag(tt, h.X+10, h.Y+3, h.X+10, h.Y+3+36) + if len(p.changes) != 2 || p.changes[1].Kind != CalendarResize || !p.changes[1].End.Equal(calAt(t, 11, 0, 14)) { + t.Fatalf("resize %+v", p.changes) + } + _ = tt.Click("Event a, 09:00 – 10:00") + if len(p.opened) != 1 { + t.Fatalf("click should open: %v", p.opened) + } + tt.Key(ui.Alt, ui.KeyRight) + tt.Key(ui.Alt, ui.KeyDown) + tt.Key(ui.Alt|ui.Shift, ui.KeyUp) + if len(p.changes) != 5 || !p.changes[2].Start.Equal(calAt(t, 9, 0, 15)) || !p.changes[3].Start.Equal(calAt(t, 9, 30, 14)) || + !p.changes[4].End.Equal(calAt(t, 9, 30, 14)) { + t.Fatalf("keyboard changes %+v", p.changes[2:]) + } +} + +func TestCalendarWeekViewAllDayWeekStartAndNav(t *testing.T) { + ev := calEvent("h", 16, 0, 0, 24*60) + ev.AllDay, ev.Title = true, "Holiday" + p := &weekProbe{events: []CalendarEvent{ev}, opts: CalendarWeekViewOptions{WeekStart: WeekStartMonday}} + tt := p.tester() + if !tt.HasText("October 12 – October 18, 2026") || !tt.HasText("All day") || !tt.HasText("Holiday") { + t.Fatalf("texts %v", tt.Texts()[:12]) + } + _ = tt.Click("Holiday, All day") + tt.Key(ui.Alt, ui.KeyRight) + if len(p.changes) != 1 || !p.changes[0].Start.Equal(calAt(t, 0, 0, 17)) || !p.changes[0].AllDay { + t.Fatalf("all-day move %+v", p.changes) + } + _ = tt.Click("Next week") + if p.week != oct(21) { + t.Fatalf("week %v", p.week) + } +} + +func TestCalendarWeekViewDisabledAndInvalid(t *testing.T) { + p := &weekProbe{events: []CalendarEvent{calEvent("a", 14, 9, 0, 60)}, disabled: true} + tt := p.tester() + a, _ := tt.Find("Event a, 09:00 – 10:00") + calDrag(tt, a.X+10, a.Y+20, a.X+10, a.Y+92) + _ = tt.Click("Event a, 09:00 – 10:00") + tt.Key(ui.Alt, ui.KeyDown) + _ = tt.Click("Next week") + if len(p.changes) != 0 || len(p.opened) != 0 || p.week != oct(14) { + t.Fatal("disabled week view reacted") + } + for _, opts := range []CalendarWeekViewOptions{{SlotMinutes: 7}, {SlotMinutes: -15}} { + func() { + defer func() { + if recover() == nil { + t.Errorf("%+v: expected panic", opts) + } + }() + q := &weekProbe{opts: opts} + q.tester() + }() + } +} + +func TestCalendarWeekViewLargeData(t *testing.T) { + p := &weekProbe{} + base := time.Date(2000, 1, 1, 9, 0, 0, 0, calTokyo) + for i := range 100000 { + s := base.Add(time.Duration(i) * 3 * time.Hour) + p.events = append(p.events, CalendarEvent{ID: fmt.Sprint(i), Title: "E", Start: s, End: s.Add(time.Hour)}) + } + tt := p.tester() + if n := len(tt.Texts()); n > 400 { + t.Fatalf("built %d labels for one week", n) + } +} + +func TestCalendarWeekViewSnapshot(t *testing.T) { + w := oct(14) + evs := []CalendarEvent{calEvent("1", 12, 9, 0, 60), calEvent("2", 14, 9, 0, 120), calEvent("3", 14, 9, 30, 60), + calEvent("4", 15, 13, 0, 90), calEvent("5", 16, 10, 0, 45)} + evs[1].Color, evs[2].Color, evs[3].Color = EventInfo, EventSuccess, EventWarning + h := calEvent("h", 13, 0, 0, 24*60) + h.AllDay, h.Title = true, "Holiday" + evs = append(evs, h) + snapshot(t, "calendar_week_view", 1000, 860, func(c *ui.Context) { + ui.Column(c).Padding(16).Children(func() { + CalendarWeekView(c, &w, evs, CalendarWeekViewOptions{Location: calTokyo, Today: calendarToday, + Now: time.Date(2026, time.October, 14, 10, 30, 0, 0, calTokyo)}) + }) + }) +} diff --git a/countdown.go b/countdown.go new file mode 100644 index 0000000..4afc585 --- /dev/null +++ b/countdown.go @@ -0,0 +1,103 @@ +package mujica + +import ( + "fmt" + "log/slog" + "time" + + "github.com/egoist/mygo/ui" + + "mujicaui/theme" +) + +// CountdownFormat chooses how the time left reads. +type CountdownFormat int + +const ( + // CountdownClock reads 01:02:03, with days as "2d" first. + CountdownClock CountdownFormat = iota + // CountdownWords reads "1 h 2 min 3 s". + CountdownWords +) + +// CountdownOptions configure a Countdown. +type CountdownOptions struct { + Format CountdownFormat + // Now fixes the clock and stops updates. + Now time.Time + Label string +} + +// CountdownResult is the countdown and its finish. +type CountdownResult struct { + Element *ui.Element + finished bool +} + +// Finished reports reaching zero, once per deadline. +func (r CountdownResult) Finished() bool { return r.finished } + +// Countdown shows the time left, ticking each second while shown. +func Countdown(c *ui.Context, deadline time.Time, opts CountdownOptions) CountdownResult { + if opts.Format < CountdownClock || opts.Format > CountdownWords { + panic(fmt.Sprintf("mujica: Countdown Format %d out of range", opts.Format)) + } + k := Tokens(c) + now := opts.Now + live := now.IsZero() + if live { + now = c.Now() + } + left := max(deadline.Sub(now), 0) + shown := left.Truncate(time.Second) + if left%time.Second != 0 { + shown += time.Second + } + label := opts.Label + if label == "" { + label = msg(c, "countdown.label") + } + text := CountdownText(c, shown, opts.Format) + e := ui.Text(c, text).Font(theme.MonoFont).FontSize(FontSize(c, theme.H2Size)).TextColor(k.Text).FontFeatures("tnum"). + Label(label + ", " + CountdownText(c, shown, CountdownWords)) + r := CountdownResult{Element: e} + fired := ui.Local(e, "countdown-fired", func() time.Time { return time.Time{} }) + switch { + case left == 0 && !fired.Equal(deadline): + *fired, r.finished = deadline, true + slog.Debug("mujica: countdown finished", "deadline", deadline) + c.Announce(fmt.Sprintf(msg(c, "countdown.done"), label)) + case left > 0 && live: + c.After(left % time.Second) + if left%time.Second == 0 { + c.After(time.Second) + } + } + if left == 0 { + e.TextColor(k.AccentText) + } + return r +} + +// CountdownText formats a non-negative duration in whole seconds. +func CountdownText(c *ui.Context, d time.Duration, f CountdownFormat) string { + s := int(d / time.Second) + days, h, m, sec := s/86400, s%86400/3600, s%3600/60, s%60 + if f == CountdownClock { + t := fmt.Sprintf("%02d:%02d:%02d", h, m, sec) + if days > 0 { + t = fmt.Sprintf(msg(c, "countdown.days_clock"), days) + " " + t + } + return t + } + out := "" + for i, v := range []int{days, h, m, sec} { + if v > 0 || i == 3 && out == "" { + if out != "" { + out += " " + } + out += fmt.Sprintf(msg(c, []string{"countdown.d", "countdown.h", "countdown.m", "countdown.s"}[i]), v) + } + } + return out +} diff --git a/countdown_test.go b/countdown_test.go new file mode 100644 index 0000000..470b2e0 --- /dev/null +++ b/countdown_test.go @@ -0,0 +1,69 @@ +package mujica + +import ( + "testing" + "time" + + "github.com/egoist/mygo/ui" +) + +func TestCountdownFormatsAndFinishesOnce(t *testing.T) { + deadline := time.Date(2026, time.October, 5, 12, 0, 0, 0, calTokyo) + now, n := deadline.Add(-(26*time.Hour + 3*time.Minute + 4*time.Second + 500*time.Millisecond)), 0 + format := CountdownClock + tt := ui.NewTester(func(c *ui.Context) { + Use(c, Settings{}) + if Countdown(c, deadline, CountdownOptions{Now: now, Format: format}).Finished() { + n++ + } + }, 400, 120) + if !tt.HasText("Time left, 1 d 2 h 3 min 5 s") { + t.Fatalf("label %v", tt.Texts()) + } + var clock, words string + ui.NewTester(func(c *ui.Context) { + Use(c, Settings{}) + clock, words = CountdownText(c, 26*time.Hour+3*time.Minute+5*time.Second, CountdownClock), CountdownText(c, 0, CountdownWords) + }, 10, 10) + if clock != "1d 02:03:05" || words != "0 s" { + t.Fatalf("formats %q %q", clock, words) + } + format = CountdownWords + now = deadline.Add(time.Second) + tt.Frame() + tt.Frame() + if n != 1 || !tt.HasText("Time left, 0 s") { + t.Fatalf("finished %d times, %v", n, tt.Texts()) + } + if a := tt.Announcements(); len(a) != 1 || a[0] != "Time left: time is up." { + t.Fatalf("announcements %q", a) + } + deadline = deadline.Add(time.Minute) + now = deadline + tt.Frame() + if n != 2 { + t.Fatal("a new deadline should finish again") + } +} + +func TestCountdownInvalidFormat(t *testing.T) { + defer func() { + if recover() == nil { + t.Fatal("expected panic") + } + }() + ui.NewTester(func(c *ui.Context) { + Use(c, Settings{}) + Countdown(c, time.Now(), CountdownOptions{Format: 7}) + }, 10, 10) +} + +func TestCountdownSnapshot(t *testing.T) { + deadline := time.Date(2026, time.October, 5, 12, 0, 0, 0, calTokyo) + snapshot(t, "countdown", 320, 140, func(c *ui.Context) { + ui.Column(c).Padding(16).Gap(8).Children(func() { + Countdown(c, deadline, CountdownOptions{Now: deadline.Add(-(3*time.Hour + 25*time.Second))}) + Countdown(c, deadline, CountdownOptions{Now: deadline.Add(-90 * time.Second), Format: CountdownWords}) + }) + }) +} diff --git a/cron_editor.go b/cron_editor.go new file mode 100644 index 0000000..cf36e19 --- /dev/null +++ b/cron_editor.go @@ -0,0 +1,346 @@ +package mujica + +import ( + "fmt" + "log/slog" + "strconv" + "strings" + "time" + + "github.com/egoist/mygo/ui" + + "mujicaui/theme" +) + +// CronSchedule is a parsed five-field cron expression. +type CronSchedule struct { + fields [5]uint64 + tokens [5]string + // domAny and dowAny note a "*" day field. + domAny, dowAny bool +} + +// CronProblem is what is wrong with a cron field. +type CronProblem int + +const ( + CronFieldCount CronProblem = iota + CronEmptyItem + CronBadStep + CronNotNumber + CronOutOfRange + CronBackwards +) + +// CronError locates a problem in a cron expression. +type CronError struct { + // Field is 0 to 4, or -1 for the count. + Field int + Problem CronProblem + // Text is the offending part. + Text string +} + +var cronProblemKeys = [...]string{"cron_editor.err_count", "cron_editor.err_empty", "cron_editor.err_step", "cron_editor.err_number", + "cron_editor.err_range", "cron_editor.err_backwards"} + +func (e *CronError) Error() string { + return fmt.Sprintf("cron field %d: problem %d at %q", e.Field+1, e.Problem, e.Text) +} + +var cronBounds = [5][2]int{{0, 59}, {0, 23}, {1, 31}, {1, 12}, {0, 7}} + +var cronNames = [5][]string{3: {"JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC"}, + 4: {"SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"}} + +// ParseCron parses standard five-field cron with names. +func ParseCron(expr string) (CronSchedule, error) { + parts := strings.Fields(expr) + var s CronSchedule + if len(parts) != 5 { + return s, &CronError{-1, CronFieldCount, strconv.Itoa(len(parts))} + } + for f, part := range parts { + s.tokens[f] = part + for _, item := range strings.Split(part, ",") { + bits, err := cronItem(f, strings.ToUpper(item)) + if err != nil { + err.Field = f + return CronSchedule{}, err + } + s.fields[f] |= bits + } + } + if s.fields[4]&(1<<7) != 0 { + s.fields[4] |= 1 + } + s.domAny, s.dowAny = parts[2] == "*", parts[4] == "*" + return s, nil +} + +// cronItem parses one list item into a bit set. +func cronItem(f int, item string) (uint64, *CronError) { + lo, hi := cronBounds[f][0], cronBounds[f][1] + if item == "" { + return 0, &CronError{Problem: CronEmptyItem} + } + rng, step := item, 1 + if i := strings.IndexByte(item, '/'); i >= 0 { + n, err := strconv.Atoi(item[i+1:]) + if err != nil || n < 1 { + return 0, &CronError{Problem: CronBadStep, Text: item[i+1:]} + } + rng, step = item[:i], n + } + a, b := lo, hi + switch { + case rng == "*": + case strings.Contains(rng, "-"): + x, y, _ := strings.Cut(rng, "-") + var e *CronError + if a, e = cronValue(f, x); e != nil { + return 0, e + } + if b, e = cronValue(f, y); e != nil { + return 0, e + } + if a > b { + return 0, &CronError{Problem: CronBackwards, Text: rng} + } + default: + var e *CronError + if a, e = cronValue(f, rng); e != nil { + return 0, e + } + if step == 1 { + b = a + } + } + var bits uint64 + for v := a; v <= b; v += step { + bits |= 1 << v + } + return bits, nil +} + +func cronValue(f int, s string) (int, *CronError) { + for i, n := range cronNames[f] { + if s == n { + return i + cronBounds[f][0], nil + } + } + v, err := strconv.Atoi(s) + if err != nil { + return 0, &CronError{Problem: CronNotNumber, Text: s} + } + if v < cronBounds[f][0] || v > cronBounds[f][1] { + return 0, &CronError{Problem: CronOutOfRange, Text: s} + } + return v, nil +} + +// CronRun is one upcoming run; Repeated marks a DST repeat. +type CronRun struct { + At time.Time + Repeated bool +} + +// Next returns up to n runs within five years. +func (s CronSchedule) Next(t time.Time, loc *time.Location, n int) []CronRun { + var out []CronRun + w := t.In(loc) + day := DateOf(w) + for i := 0; i < 5*366 && len(out) < n; i, day = i+1, day.AddDays(1) { + if !s.dayMatches(day) { + continue + } + for h := 0; h < 24 && len(out) < n; h++ { + if s.fields[1]&(1< 1}) + } + } + } + return out +} + +// dayMatches applies cron's either-day-field rule. +func (s CronSchedule) dayMatches(d Date) bool { + if s.fields[3]&(1< hi { + problem = fmt.Sprintf(msg(c, "duration_picker.range"), DurationText(c, opts.Min), DurationText(c, hi)) + } + if edited && problem == "" && total != *value && !col.IsDisabled() { + slog.Debug("mujica: duration_picker change", "from", *value, "to", total) + *value, *seen, changed = total, total, true + } + datetimeError(c, problem) + }) + return ChoiceResult{Element: col, changed: changed} +} + +func durationParts(v time.Duration) [3]float64 { + return [3]float64{float64(v / time.Hour), float64(v % time.Hour / time.Minute), float64(v % time.Minute / time.Second)} +} + +// DurationText words a duration, as "1 h 30 min". +func DurationText(c *ui.Context, v time.Duration) string { + p := durationParts(v) + s := "" + for i, key := range []string{"duration_picker.hours_unit", "duration_picker.minutes_unit", "duration_picker.seconds_unit"} { + if p[i] > 0 || i == 1 && s == "" && p[2] == 0 { + if s != "" { + s += " " + } + s += fmt.Sprintf("%d %s", int(p[i]), msg(c, key)) + } + } + return s +} diff --git a/duration_picker_test.go b/duration_picker_test.go new file mode 100644 index 0000000..391f708 --- /dev/null +++ b/duration_picker_test.go @@ -0,0 +1,87 @@ +package mujica + +import ( + "testing" + "time" + + "github.com/egoist/mygo/ui" +) + +func durationTester(v *time.Duration, opts *DurationPickerOptions, n *int) *ui.Tester { + return ui.NewTester(func(c *ui.Context) { + Use(c, Settings{}) + if DurationPicker(c, v, *opts).Changed() { + *n++ + } + }, 640, 200) +} + +func TestDurationPickerEditsFields(t *testing.T) { + v, n := 90*time.Minute, 0 + opts := &DurationPickerOptions{Seconds: true} + tt := durationTester(&v, opts, &n) + _ = tt.Click("Hours") + tt.Key(0, ui.KeyUp) + _ = tt.Click("Seconds") + tt.Command("selectAll") + tt.Type("45") + tt.Key(0, ui.KeyEnter) + if v != 2*time.Hour+30*time.Minute+45*time.Second || n != 2 { + t.Fatalf("value %v (%d)", v, n) + } +} + +func TestDurationPickerRangeReported(t *testing.T) { + v, n := 30*time.Minute, 0 + opts := &DurationPickerOptions{Min: 15 * time.Minute, Max: 2 * time.Hour} + tt := durationTester(&v, opts, &n) + _ = tt.Click("Hours") + tt.Key(0, ui.KeyUp) + if v != 90*time.Minute || n != 1 { + t.Fatalf("1 h 30 min should fit the range: %v", v) + } + tt.Key(0, ui.KeyUp) + if v != 90*time.Minute || !tt.HasText("Choose a duration from 15 min to 2 h.") { + t.Fatalf("over Max accepted: %v %v", v, tt.Texts()) + } + _ = tt.Click("Minutes") + tt.Command("selectAll") + tt.Type("0") + tt.Key(0, ui.KeyEnter) + if v != 2*time.Hour || n != 2 || tt.HasText("Choose a duration") { + t.Fatalf("fixing the minutes: %v", v) + } + if tt.HasText("Seconds") { + t.Fatal("seconds field without Seconds") + } +} + +func TestDurationPickerDisabledAndInvalid(t *testing.T) { + v, n := time.Hour, 0 + tt := durationTester(&v, &DurationPickerOptions{Disabled: true}, &n) + _ = tt.Click("Hours") + tt.Key(0, ui.KeyUp) + if v != time.Hour || n != 0 { + t.Fatal("disabled picker changed") + } + for _, c := range []struct { + v time.Duration + opts DurationPickerOptions + }{{30 * time.Second, DurationPickerOptions{}}, {0, DurationPickerOptions{Min: time.Hour, Max: time.Minute}}, {-time.Minute, DurationPickerOptions{}}} { + func() { + defer func() { + if recover() == nil { + t.Errorf("%v %+v: expected panic", c.v, c.opts) + } + }() + durationTester(&c.v, &c.opts, &n) + }() + } +} + +func TestDurationPickerSnapshot(t *testing.T) { + v := 2*time.Hour + 15*time.Minute + 30*time.Second + snapshot(t, "duration_picker", 640, 80, func(c *ui.Context) { + ui.Column(c).Padding(16).Children(func() { DurationPicker(c, &v, DurationPickerOptions{Seconds: true}) }) + }) +} diff --git a/event_chip.go b/event_chip.go index 51acf51..cb81b1c 100644 --- a/event_chip.go +++ b/event_chip.go @@ -14,13 +14,13 @@ type EventChipOptions struct { // Location is the zone the time shows in; required. Location *time.Location Hour12 bool - // Inline puts time and title on one line. + // Inline puts the start time and title on one line. Inline bool Selected bool Disabled bool } -// EventChip is a clickable event block: color stripe, time and title, truncated to fit. +// EventChip is a clickable, truncating event block. func EventChip(c *ui.Context, ev CalendarEvent, opts EventChipOptions) *ui.Element { loc := eventLocation("EventChip", opts.Location) k := Tokens(c) @@ -32,7 +32,7 @@ func EventChip(c *ui.Context, ev CalendarEvent, opts EventChipOptions) *ui.Eleme title = msg(c, "event_chip.untitled") } b := ui.ButtonBase(c).MinHeight(theme.MinHitSize).MinWidth(theme.MinHitSize).Justify(ui.Start).AlignItems(ui.Start). - Radius(theme.ControlRadius).Padding(d.Unit(), d.Unit()*2).PaddingX(d.Unit()*2).Gap(d.Unit()). + Radius(theme.ControlRadius).Padding(d.Unit(), d.Unit()*2).PaddingX(d.Unit() * 2).Gap(d.Unit()). Label(title + ", " + when).Disabled(opts.Disabled).Clip() internal.Ring(b, k.Focus, theme.ControlRadius) bg := col.Alpha(0.14).Over(k.Surface) @@ -60,7 +60,7 @@ func EventChip(c *ui.Context, ev CalendarEvent, opts EventChipOptions) *ui.Eleme b.Children(func() { small := FontSize(c, theme.CaptionSize) if opts.Inline { - ui.Text(c, when).FontSize(small).TextColor(k.TextMuted).SingleLine().Shrink(0).FontFeatures("tnum") + ui.Text(c, eventStartText(c, ev, loc, opts.Hour12)).FontSize(small).TextColor(k.TextMuted).SingleLine().Shrink(0).FontFeatures("tnum") } ui.Text(c, title).FontSize(small).Bold().TextColor(k.Text).SingleLine().Ellipsis("…").Shrink(1) if !opts.Inline { @@ -69,3 +69,12 @@ func EventChip(c *ui.Context, ev CalendarEvent, opts EventChipOptions) *ui.Eleme }) return b } + +// eventStartText is the start time alone, or "All day". +func eventStartText(c *ui.Context, ev CalendarEvent, loc *time.Location, hour12 bool) string { + if ev.AllDay { + return msg(c, "event_chip.all_day") + } + s := ev.Start.In(loc) + return timeText(c, TimeOfDay{s.Hour(), s.Minute(), 0}, timeConfig{hour12: hour12}) +} diff --git a/event_chip_test.go b/event_chip_test.go new file mode 100644 index 0000000..ba6fbf7 --- /dev/null +++ b/event_chip_test.go @@ -0,0 +1,125 @@ +package mujica + +import ( + "strings" + "testing" + "time" + + "github.com/egoist/mygo/ui" + + "mujicaui/theme" +) + +var calTokyo = func() *time.Location { + loc, err := time.LoadLocation("Asia/Tokyo") + if err != nil { + panic(err) + } + return loc +}() + +// calEvent is an event on calendarToday's month in Tokyo. +func calEvent(id string, day, h, m, mins int) CalendarEvent { + s := time.Date(2026, time.October, day, h, m, 0, 0, calTokyo) + return CalendarEvent{ID: id, Title: "Event " + id, Start: s, End: s.Add(time.Duration(mins) * time.Minute)} +} + +func TestEventChipShowsZoneTimeAndClicks(t *testing.T) { + ev := calEvent("a", 6, 9, 30, 90) + ev.Start, ev.End = ev.Start.UTC(), ev.End.UTC() + n := 0 + tt := ui.NewTester(func(c *ui.Context) { + Use(c, Settings{}) + if EventChip(c, ev, EventChipOptions{Location: calTokyo}).Clicked() { + n++ + } + }, 300, 200) + if !tt.HasText("09:30 – 11:00") || !tt.HasText("Event a") { + t.Fatalf("chip should show Tokyo wall time: %v", tt.Texts()) + } + label := "Event a, 09:30 – 11:00" + _ = tt.Click(label) + tt.Key(0, ui.KeyEnter) + if n != 2 { + t.Fatalf("clicks %d", n) + } +} + +func TestEventChipTruncatesAndAllDay(t *testing.T) { + ev := calEvent("b", 6, 0, 0, 24*60) + ev.AllDay, ev.Title = true, strings.Repeat("Long title ", 20) + var w float32 + tt := ui.NewTester(func(c *ui.Context) { + Use(c, Settings{}) + ui.Column(c).Width(120).Children(func() { + w = EventChip(c, ev, EventChipOptions{Location: calTokyo, Inline: true}).Bounds().W + }) + }, 300, 200) + tt.Frame() + if w > 120 || !tt.HasText("All day") { + t.Fatalf("width %v texts %v", w, tt.Texts()) + } +} + +func TestEventChipDisabledAndInvalid(t *testing.T) { + ev := calEvent("c", 6, 9, 0, 30) + n := 0 + tt := ui.NewTester(func(c *ui.Context) { + Use(c, Settings{}) + if EventChip(c, ev, EventChipOptions{Location: calTokyo, Disabled: true}).Clicked() { + n++ + } + }, 300, 200) + _ = tt.Click("Event c, 09:00 – 09:30") + tt.Key(0, ui.KeyTab) + tt.Key(0, ui.KeyEnter) + if n != 0 { + t.Fatal("disabled chip clicked") + } + for _, f := range []func(){ + func() { EventChip(nil, ev, EventChipOptions{}) }, + func() { ev.Color = 9; eventColor(theme.Light(), ev.Color) }, + } { + func() { + defer func() { + if recover() == nil { + t.Error("expected panic") + } + }() + f() + }() + } +} + +func TestEventPaletteContrast(t *testing.T) { + for _, k := range []theme.Tokens{theme.Light(), theme.Dark()} { + for i, col := range eventPalette(k) { + if r := theme.Contrast(col, k.Surface); r < 3 { + t.Errorf("dark=%v color %d contrast %.2f", k.Dark, i, r) + } + } + } +} + +func TestEventColumns(t *testing.T) { + col, cols := eventColumns([]eventSpan{{0, 2}, {1, 3}, {1.5, 2.5}, {2, 4}, {5, 6}}) + want := []int{0, 1, 2, 0, 0} + wantN := []int{3, 3, 3, 3, 1} + for i := range want { + if col[i] != want[i] || cols[i] != wantN[i] { + t.Fatalf("columns %v of %v", col, cols) + } + } +} + +func TestEventChipSnapshot(t *testing.T) { + evs := []CalendarEvent{calEvent("1", 6, 9, 0, 60), calEvent("2", 6, 13, 0, 30), calEvent("3", 6, 15, 0, 45)} + evs[1].Color, evs[2].Color = EventSuccess, EventWarning + snapshot(t, "event_chip", 420, 150, func(c *ui.Context) { + ui.Row(c).Padding(16).Gap(8).Children(func() { + EventChip(c, evs[0], EventChipOptions{Location: calTokyo}) + EventChip(c, evs[1], EventChipOptions{Location: calTokyo, Selected: true}) + EventChip(c, evs[2], EventChipOptions{Location: calTokyo, Inline: true}) + }) + }) +} diff --git a/event_editor.go b/event_editor.go new file mode 100644 index 0000000..66ce4da --- /dev/null +++ b/event_editor.go @@ -0,0 +1,171 @@ +package mujica + +import ( + "log/slog" + "slices" + "strings" + "time" + + "github.com/egoist/mygo/ui" +) + +// EventEditorOptions configure an EventEditor. +type EventEditorOptions struct { + // Location is the zone times are edited in; required. + Location *time.Location + Hour12 bool + WeekStart WeekStart + Disabled bool + Label string +} + +// EventEditorResult is the editor and its save or cancel. +type EventEditorResult struct { + Element *ui.Element + saved bool + canceled bool +} + +// Saved reports a valid draft written to the event. +func (r EventEditorResult) Saved() bool { return r.saved } + +// Canceled reports that the user discarded the draft. +func (r EventEditorResult) Canceled() bool { return r.canceled } + +// eventEditorState is the draft and whether Save was tried. +type eventEditorState struct { + draft CalendarEvent + tried bool + origin string +} + +// EventEditor edits a copy of *ev; Save checks and writes. +func EventEditor(c *ui.Context, ev *CalendarEvent, opts EventEditorOptions) EventEditorResult { + loc := eventLocation("EventEditor", opts.Location) + d := Density(c) + label := opts.Label + if label == "" { + label = msg(c, "event_editor.label") + } + r := EventEditorResult{} + root := ui.Column(c).Gap(d.Unit() * 4).Role(ui.RoleGroup).Label(label).Disabled(opts.Disabled) + r.Element = root + st := ui.Local(root, "event-editor", func() *eventEditorState { return nil }) + if *st == nil || (*st).origin != ev.ID { + *st = &eventEditorState{draft: eventCopy(*ev), origin: ev.ID} + } + s := *st + dr := &s.draft + problems := eventEditorProblems(c, *dr, s.tried) + root.Children(func() { + FormField(c, msg(c, "event_editor.title"), FormFieldOptions{Required: true, Error: problems["title"]}, func() *ui.Element { + return TextInput(c, &dr.Title, TextInputOptions{Label: msg(c, "event_editor.title"), Disabled: opts.Disabled, Error: problems["title"]}).Input + }) + Checkbox(c, &dr.AllDay, msg(c, "event_editor.all_day"), CheckboxOptions{Disabled: opts.Disabled}) + ui.Row(c).Gap(d.Unit() * 3).Wrap().AlignItems(ui.Start).Children(func() { + for _, f := range []struct { + key string + t *time.Time + }{{"event_editor.starts", &dr.Start}, {"event_editor.ends", &dr.End}} { + FormField(c, msg(c, f.key), FormFieldOptions{Error: problems[f.key]}, func() *ui.Element { + if dr.AllDay { + day := DateOf(f.t.In(loc)) + r := DatePicker(c, &day, DatePickerOptions{Label: msg(c, f.key), WeekStart: opts.WeekStart, Disabled: opts.Disabled}) + if r.Changed() { + *f.t = eventDayStart(day, loc) + } + return r.Input + } + return DateTimePicker(c, f.t, DateTimePickerOptions{Location: loc, Hour12: opts.Hour12, MinuteStep: 5, + WeekStart: opts.WeekStart, Label: msg(c, f.key), Disabled: opts.Disabled}).Element + }) + } + }) + FormField(c, msg(c, "event_editor.where"), FormFieldOptions{}, func() *ui.Element { + return TextInput(c, &dr.Location, TextInputOptions{Label: msg(c, "event_editor.where"), Disabled: opts.Disabled}).Input + }) + FormField(c, msg(c, "event_editor.guests"), FormFieldOptions{Description: msg(c, "event_editor.guests_help")}, func() *ui.Element { + names := make([]string, len(dr.Attendees)) + for i, a := range dr.Attendees { + names[i] = a.Name + } + p := TagsInput(c, &names, TagsInputOptions{Label: msg(c, "event_editor.guests"), Disabled: opts.Disabled}) + if p.Changed() { + dr.Attendees = eventAttendees(dr.Attendees, names) + } + return p.Input + }) + if len(dr.Attendees) > 0 { + AttendeeList(c, dr.Attendees, AttendeeListOptions{Disabled: opts.Disabled}) + } + FormField(c, msg(c, "event_editor.reminders"), FormFieldOptions{}, func() *ui.Element { + return ReminderPicker(c, &dr.Reminders, ReminderPickerOptions{Disabled: opts.Disabled}).Element + }) + var rec RecurrenceResult + FormField(c, msg(c, "recurrence_editor.repeat"), FormFieldOptions{}, func() *ui.Element { + rec = RecurrenceEditor(c, &dr.Repeat, RecurrenceEditorOptions{Start: DateOf(dr.Start.In(loc)), WeekStart: opts.WeekStart, Disabled: opts.Disabled}) + return rec.Element + }) + datetimeFooter(c, func() { + if Button(c, msg(c, "calendar.cancel"), ButtonOptions{Variant: Secondary}).Clicked() && !root.IsDisabled() { + slog.Debug("mujica: event_editor cancel", "id", ev.ID) + *st, r.canceled = nil, true + } + if Button(c, msg(c, "event_editor.save"), ButtonOptions{}).Clicked() && !root.IsDisabled() { + s.tried = true + if len(eventEditorProblems(c, *dr, true)) == 0 && rec.Problem() == "" { + slog.Debug("mujica: event_editor save", "id", ev.ID) + out := eventCopy(*dr) + if out.AllDay { + first, last := DateOf(out.Start.In(loc)), DateOf(out.End.Add(-time.Nanosecond).In(loc)) + out.Start, out.End = eventDayStart(first, loc), eventDayStart(last.AddDays(1), loc) + } + *ev, r.saved = out, true + } else { + slog.Debug("mujica: event_editor invalid", "id", ev.ID) + } + } + }) + }) + return r +} + +// eventEditorProblems checks a draft once Save was tried. +func eventEditorProblems(c *ui.Context, ev CalendarEvent, tried bool) map[string]string { + p := map[string]string{} + if !tried { + return p + } + if strings.TrimSpace(ev.Title) == "" { + p["title"] = msg(c, "event_editor.need_title") + } + if ev.Start.IsZero() { + p["event_editor.starts"] = msg(c, "event_editor.need_start") + } + if !ev.End.After(ev.Start) { + p["event_editor.ends"] = msg(c, "event_editor.end_order") + } + return p +} + +// eventAttendees keeps known attendees and adds new ones. +func eventAttendees(old []Attendee, names []string) []Attendee { + out := make([]Attendee, 0, len(names)) + for _, n := range names { + i := slices.IndexFunc(old, func(a Attendee) bool { return a.Name == n }) + if i >= 0 { + out = append(out, old[i]) + } else { + out = append(out, Attendee{Name: n}) + } + } + return out +} + +// eventCopy clones an event's slices for a draft. +func eventCopy(ev CalendarEvent) CalendarEvent { + ev.Attendees = slices.Clone(ev.Attendees) + ev.Reminders = slices.Clone(ev.Reminders) + ev.Repeat.Weekdays = slices.Clone(ev.Repeat.Weekdays) + return ev +} diff --git a/event_editor_test.go b/event_editor_test.go new file mode 100644 index 0000000..0c14ffe --- /dev/null +++ b/event_editor_test.go @@ -0,0 +1,112 @@ +package mujica + +import ( + "testing" + "time" + + "github.com/egoist/mygo/ui" +) + +type editorProbe struct { + ev CalendarEvent + saves, cancels int + disabled bool +} + +func (p *editorProbe) tester() *ui.Tester { + return ui.NewTester(func(c *ui.Context) { + Use(c, Settings{}) + ui.Scroll(c).Fill().Padding(16).Children(func() { + r := EventEditor(c, &p.ev, EventEditorOptions{Location: calTokyo, Disabled: p.disabled}) + if r.Saved() { + p.saves++ + } + if r.Canceled() { + p.cancels++ + } + }) + }, 900, 1400) +} + +func TestEventEditorValidatesAndSaves(t *testing.T) { + p := &editorProbe{ev: CalendarEvent{ID: "n", Start: calAt(t, 9, 0, 14), End: calAt(t, 9, 0, 13)}} + tt := p.tester() + _ = tt.Click("Save") + if p.saves != 0 || !tt.HasText("Enter a title.") || !tt.HasText("The end must be after the start.") { + t.Fatalf("invalid draft saved: %v", tt.Texts()) + } + _ = tt.Click("Title") + tt.Type("Masquerade") + _ = tt.Click("Location") + tt.Type("Hall") + _ = tt.Click("Guests") + tt.Type("Mutsumi") + tt.Key(0, ui.KeyEnter) + _ = tt.Click("15 minutes before") + _ = tt.Click("2026-10-13 09:00 JST") + _ = tt.Click(datetimeTestLabel(oct(14))) + _ = tt.Click("Time: Hours") + tt.Key(0, ui.KeyUp) + _ = tt.Click("Confirm") + if p.ev.Title != "" { + t.Fatal("the caller's event changed before Save") + } + _ = tt.Click("Save") + ev := p.ev + if p.saves != 1 || ev.Title != "Masquerade" || ev.Location != "Hall" || len(ev.Attendees) != 1 || ev.Attendees[0].Name != "Mutsumi" || + len(ev.Reminders) != 1 || !ev.End.Equal(calAt(t, 10, 0, 14)) { + t.Fatalf("saved %+v", ev) + } +} + +func TestEventEditorAllDayRepeatCancel(t *testing.T) { + p := &editorProbe{ev: calEvent("e", 14, 9, 0, 60)} + tt := p.tester() + _ = tt.Click("All day") + _ = tt.Click("Does not repeat") + _ = tt.Click("Weekly") + _ = tt.Click("Save") + if p.saves != 1 || !p.ev.AllDay || p.ev.Repeat.Unit != RepeatWeekly || p.ev.Repeat.Weekdays[0] != time.Wednesday || + !p.ev.Start.Equal(calAt(t, 0, 0, 14)) || !p.ev.End.Equal(calAt(t, 0, 0, 15)) { + t.Fatalf("saved %+v", p.ev) + } + _ = tt.Click("Title") + tt.Type(" draft") + _ = tt.Click("Cancel") + if p.cancels != 1 || p.ev.Title != "Event e" { + t.Fatalf("cancel kept %q", p.ev.Title) + } + tt.Frame() + _ = tt.Click("Save") + if p.ev.Title != "Event e" { + t.Fatal("canceled draft came back") + } +} + +func TestEventEditorDisabled(t *testing.T) { + p := &editorProbe{ev: calEvent("e", 14, 9, 0, 60), disabled: true} + tt := p.tester() + _ = tt.Click("Title") + tt.Type("x") + _ = tt.Click("Save") + _ = tt.Click("Cancel") + if p.saves != 0 || p.cancels != 0 || p.ev.Title != "Event e" { + t.Fatal("disabled editor acted") + } + defer func() { + if recover() == nil { + t.Fatal("expected panic without Location") + } + }() + ui.NewTester(func(c *ui.Context) { + Use(c, Settings{}) + EventEditor(c, &p.ev, EventEditorOptions{}) + }, 10, 10) +} + +func TestEventEditorSnapshot(t *testing.T) { + ev := calRichEvent() + snapshot(t, "event_editor", 760, 1100, func(c *ui.Context) { + ui.Column(c).Padding(16).Children(func() { EventEditor(c, &ev, EventEditorOptions{Location: calTokyo}) }) + }) +} diff --git a/event_popover.go b/event_popover.go new file mode 100644 index 0000000..bbb243f --- /dev/null +++ b/event_popover.go @@ -0,0 +1,114 @@ +package mujica + +import ( + "log/slog" + "strings" + "time" + + "github.com/egoist/mygo/ui" + + "mujicaui/icons" + "mujicaui/internal" + "mujicaui/theme" +) + +// EventPopoverOptions configure an EventPopover. +type EventPopoverOptions struct { + // Location is the zone times show in; required. + Location *time.Location + Hour12 bool + // ReadOnly hides the edit and delete actions. + ReadOnly bool + Disabled bool +} + +// EventPopoverResult is the popover and the action the user chose. +type EventPopoverResult struct { + Element *ui.Element + edit bool + del bool +} + +// Edit reports a click on Edit. +func (r EventPopoverResult) Edit() bool { return r.edit } + +// Delete reports a click on Delete. +func (r EventPopoverResult) Delete() bool { return r.del } + +// EventPopover summarizes an event beside anchor while *open. +func EventPopover(c *ui.Context, anchor *ui.Element, open *bool, ev CalendarEvent, opts EventPopoverOptions) EventPopoverResult { + loc := eventLocation("EventPopover", opts.Location) + k := Tokens(c) + d := Density(c) + var r EventPopoverResult + if *open && (opts.Disabled || anchor.IsDisabled()) { + slog.Debug("mujica: event_popover close", "disabled", true) + *open = false + } + r.Element = ui.PopoverBase(c, anchor, open, func(panel *ui.Element) { + overlayStyle(c, panel, overlayEnter(c, panel)) + ww, wh := c.Size() + panel.Margin(d.Unit(), 0, 0, 0).Padding(d.Unit() * 4).Gap(d.Unit() * 2).Width(min(d.ControlHeight()*9, ww-16)).MaxHeight(wh - 16). + Role(ui.RoleDialog).Label(ev.Title) + ui.Row(c).Gap(d.Unit() * 2).AlignItems(ui.Center).Children(func() { + ui.Box(c).Size(10, 10).Shrink(0).Draw(func(p *ui.Painter, rr ui.Rect) { + p.FillPath(internal.Diamond(rr.X+rr.W/2, rr.Y+rr.H/2, rr.W), eventColor(k, ev.Color)) + }) + ui.Text(c, ev.Title).Font(theme.SerifFont).FontSize(FontSize(c, theme.H3Size)).TextColor(k.Text).Grow(1).Shrink(1) + if iconAction(c, icons.Must("x"), msg(c, "event_popover.close")).Clicked() { + *open = false + } + }) + ui.Scroll(c).Shrink(1).Children(func() { + ui.Column(c).Gap(d.Unit() * 2).Children(func() { + for _, line := range eventPopoverLines(c, ev, loc, opts.Hour12) { + ui.Row(c).Gap(d.Unit() * 2).AlignItems(ui.Start).Children(func() { + ui.Icon(c, icons.Must(line[0])).Size(16, 16).TextColor(k.TextMuted) + ui.Text(c, line[1]).TextColor(k.Text).Grow(1).Shrink(1) + }) + } + }) + }) + if opts.ReadOnly { + return + } + datetimeFooter(c, func() { + if Button(c, msg(c, "event_popover.delete"), ButtonOptions{Variant: Danger}).Clicked() { + slog.Debug("mujica: event_popover delete", "id", ev.ID) + r.del, *open = true, false + } + if Button(c, msg(c, "event_popover.edit"), ButtonOptions{Variant: Secondary}).Clicked() { + slog.Debug("mujica: event_popover edit", "id", ev.ID) + r.edit, *open = true, false + } + }) + }) + return r +} + +// eventPopoverLines lists icon and text pairs for the summary. +func eventPopoverLines(c *ui.Context, ev CalendarEvent, loc *time.Location, hour12 bool) [][2]string { + s := ev.Start.In(loc) + lines := [][2]string{{"clock", datetimeDayLabel(c, DateOf(s)) + " · " + eventTimeText(c, ev, loc, hour12)}} + if ev.Location != "" { + lines = append(lines, [2]string{"house", ev.Location}) + } + if ev.Repeat.Unit != RepeatNone { + lines = append(lines, [2]string{"refresh-cw", RecurrenceSummary(c, ev.Repeat)}) + } + if len(ev.Attendees) > 0 { + var names []string + for _, a := range ev.Attendees { + names = append(names, a.Name) + } + lines = append(lines, [2]string{"user", calendarCount(c, "event_popover.guests", len(names)) + ": " + strings.Join(names, ", ")}) + } + if len(ev.Reminders) > 0 { + var rs []string + for _, d := range ev.Reminders { + rs = append(rs, ReminderText(c, d)) + } + lines = append(lines, [2]string{"bell", strings.Join(rs, msg(c, "recurrence_editor.list_sep"))}) + } + return lines +} diff --git a/event_popover_test.go b/event_popover_test.go new file mode 100644 index 0000000..cbd1ec2 --- /dev/null +++ b/event_popover_test.go @@ -0,0 +1,110 @@ +package mujica + +import ( + "testing" + "time" + + "github.com/egoist/mygo/ui" +) + +func calRichEvent() CalendarEvent { + ev := calEvent("r", 14, 19, 0, 120) + ev.Title, ev.Location, ev.Color = "Masquerade rehearsal", "Rehearsal hall", EventInfo + ev.Attendees = calAttendees[:2] + ev.Reminders = []time.Duration{15 * time.Minute, time.Hour} + ev.Repeat = Recurrence{Unit: RepeatWeekly, Interval: 1, Weekdays: []time.Weekday{time.Wednesday}} + return ev +} + +type popoverProbe struct { + open bool + opts EventPopoverOptions + edits, deletes int +} + +func (p *popoverProbe) tester() *ui.Tester { + p.opts.Location = calTokyo + return ui.NewTester(func(c *ui.Context) { + Use(c, Settings{}) + ui.Column(c).Padding(16).Children(func() { + b := Button(c, "Details", ButtonOptions{Variant: Secondary}) + if b.Clicked() { + p.open = true + } + r := EventPopover(c, b, &p.open, calRichEvent(), p.opts) + if r.Edit() { + p.edits++ + } + if r.Delete() { + p.deletes++ + } + }) + }, 600, 500) +} + +func TestEventPopoverSummaryAndActions(t *testing.T) { + p := &popoverProbe{} + tt := p.tester() + _ = tt.Click("Details") + for _, s := range []string{"Masquerade rehearsal", "Wednesday, October 14, 2026 · 19:00 – 21:00", "Rehearsal hall", + "Weekly on Wednesday", "2 guests: Sakiko Togawa, Mutsumi Wakaba", "15 minutes before, 1 hour before"} { + if !tt.HasText(s) { + t.Fatalf("missing %q in %v", s, tt.Texts()) + } + } + _ = tt.Click("Edit") + if p.edits != 1 || p.open { + t.Fatal("Edit should report and close") + } + _ = tt.Click("Details") + tt.Key(0, ui.KeyTab) + _ = tt.Click("Delete") + if p.deletes != 1 || p.open { + t.Fatal("Delete should report and close") + } + _ = tt.Click("Details") + tt.Key(0, ui.KeyEscape) + if p.open { + t.Fatal("Escape should close") + } +} + +func TestEventPopoverReadOnlyAndDisabled(t *testing.T) { + p := &popoverProbe{opts: EventPopoverOptions{ReadOnly: true}} + tt := p.tester() + _ = tt.Click("Details") + if tt.HasText("Edit") || tt.HasText("Delete") || !tt.HasText("Rehearsal hall") { + t.Fatal("read-only popover shows actions") + } + p.opts.ReadOnly, p.opts.Disabled = false, true + tt.Frame() + if p.open || tt.HasText("Rehearsal hall") { + t.Fatal("disabling should close the popover") + } + defer func() { + if recover() == nil { + t.Fatal("expected panic without Location") + } + }() + ui.NewTester(func(c *ui.Context) { + Use(c, Settings{}) + open := true + EventPopover(c, ui.Box(c), &open, calRichEvent(), EventPopoverOptions{}) + }, 10, 10) +} + +func TestEventPopoverSnapshot(t *testing.T) { + snapshot(t, "event_popover", 460, 400, func(c *ui.Context) { + ui.Row(c).Padding(16).Children(func() { + b := Button(c, "Details", ButtonOptions{Variant: Secondary}) + // Open once the anchor is laid out. + frames := ui.Local(c.Root(), "frames", func() int { return 0 }) + *frames++ + if *frames == 1 { + c.Invalidate() + } + open := *frames > 1 + EventPopover(c, b, &open, calRichEvent(), EventPopoverOptions{Location: calTokyo}) + }) + }) +} diff --git a/example_calendar_test.go b/example_calendar_test.go new file mode 100644 index 0000000..badbc93 --- /dev/null +++ b/example_calendar_test.go @@ -0,0 +1,262 @@ +package mujica_test + +import ( + "fmt" + "time" + + "github.com/egoist/mygo/ui" + + mujica "mujicaui" +) + +func exampleEvents(loc *time.Location) []mujica.CalendarEvent { + start := time.Date(2026, time.October, 14, 9, 0, 0, 0, loc) + return []mujica.CalendarEvent{ + {ID: "rehearsal", Title: "Rehearsal", Start: start, End: start.Add(2 * time.Hour), Location: "Hall"}, + {ID: "fitting", Title: "Fitting", Start: start.Add(time.Hour), End: start.Add(90 * time.Minute), Color: mujica.EventInfo}, + } +} + +func ExampleCalendarMonthView() { + loc := time.Local + events := exampleEvents(loc) + month := mujica.YearMonth{Year: 2026, Month: time.October} + view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + r := mujica.CalendarMonthView(c, &month, events, mujica.CalendarMonthViewOptions{Location: loc}) + if ch, ok := r.Changed(); ok { + fmt.Println("move", ch.ID, "to", ch.Start) + } + } + ui.Render(view, 400, 300, 1) +} + +func ExampleCalendarWeekView() { + loc := time.Local + events := exampleEvents(loc) + week := mujica.Date{Year: 2026, Month: time.October, Day: 14} + view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + r := mujica.CalendarWeekView(c, &week, events, mujica.CalendarWeekViewOptions{Location: loc, SlotMinutes: 15}) + if ch, ok := r.Changed(); ok && ch.Kind == mujica.CalendarCreate { + fmt.Println("new event", ch.Start, ch.End) + } + } + ui.Render(view, 400, 300, 1) +} + +func ExampleCalendarDayView() { + loc := time.Local + events := exampleEvents(loc) + day := mujica.Date{Year: 2026, Month: time.October, Day: 14} + view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if id, ok := mujica.CalendarDayView(c, &day, events, mujica.CalendarDayViewOptions{Location: loc}).Opened(); ok { + fmt.Println("open", id) + } + } + ui.Render(view, 400, 300, 1) +} + +func ExampleAgendaView() { + loc := time.Local + events := exampleEvents(loc) + view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + opts := mujica.AgendaViewOptions{Location: loc, From: mujica.Date{Year: 2026, Month: time.October, Day: 12}, Days: 14} + if id, ok := mujica.AgendaView(c, events, opts).Opened(); ok { + fmt.Println("open", id) + } + } + ui.Render(view, 400, 300, 1) +} + +func ExampleYearView() { + loc := time.Local + events := exampleEvents(loc) + year := 2026 + view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if day, ok := mujica.YearView(c, &year, events, mujica.YearViewOptions{Location: loc}).DayChosen(); ok { + fmt.Println("go to", day) + } + } + ui.Render(view, 400, 300, 1) +} + +func ExampleEventChip() { + loc := time.Local + ev := exampleEvents(loc)[0] + view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if mujica.EventChip(c, ev, mujica.EventChipOptions{Location: loc}).Clicked() { + fmt.Println("open", ev.ID) + } + } + ui.Render(view, 400, 300, 1) +} + +func ExampleEventEditor() { + loc := time.Local + ev := exampleEvents(loc)[0] + view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + r := mujica.EventEditor(c, &ev, mujica.EventEditorOptions{Location: loc}) + if r.Saved() { + fmt.Println("saved", ev.Title, ev.Start) + } + } + ui.Render(view, 400, 300, 1) +} + +func ExampleEventPopover() { + loc := time.Local + ev := exampleEvents(loc)[0] + open := false + view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + chip := mujica.EventChip(c, ev, mujica.EventChipOptions{Location: loc}) + if chip.Clicked() { + open = true + } + r := mujica.EventPopover(c, chip, &open, ev, mujica.EventPopoverOptions{Location: loc}) + if r.Delete() { + fmt.Println("delete", ev.ID) + } + } + ui.Render(view, 400, 300, 1) +} + +func ExampleCurrentTimeIndicator() { + view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + ui.Box(c).Size(200, 240).Children(func() { + mujica.CurrentTimeIndicator(c, mujica.CurrentTimeIndicatorOptions{Location: time.Local}) + }) + } + ui.Render(view, 400, 300, 1) +} + +func ExampleRecurrenceEditor() { + rule := mujica.Recurrence{Unit: mujica.RepeatWeekly, Interval: 1, Weekdays: []time.Weekday{time.Monday}} + view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + r := mujica.RecurrenceEditor(c, &rule, mujica.RecurrenceEditorOptions{Start: mujica.Date{Year: 2026, Month: time.October, Day: 5}}) + if r.Changed() && r.Problem() == "" { + fmt.Println(mujica.RecurrenceSummary(c, rule)) + } + } + ui.Render(view, 400, 300, 1) +} + +func ExampleAvailabilityPicker() { + days := []mujica.Date{{Year: 2026, Month: time.October, Day: 12}, {Year: 2026, Month: time.October, Day: 13}} + mine := [][]bool{make([]bool, 18), make([]bool, 18)} + view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if mujica.AvailabilityPicker(c, &mine, mujica.AvailabilityPickerOptions{Days: days}).Changed() { + fmt.Println("availability changed") + } + } + ui.Render(view, 400, 300, 1) +} + +func ExampleTimezoneSelect() { + zone := "Asia/Shanghai" + view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if mujica.TimezoneSelect(c, &zone, mujica.TimezoneSelectOptions{}).Changed() { + fmt.Println("zone", zone) + } + } + ui.Render(view, 400, 300, 1) +} + +func ExampleReminderPicker() { + reminders := []time.Duration{15 * time.Minute} + view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if mujica.ReminderPicker(c, &reminders, mujica.ReminderPickerOptions{Max: 3}).Changed() { + fmt.Println("reminders", reminders) + } + } + ui.Render(view, 400, 300, 1) +} + +func ExampleAttendeeList() { + people := []mujica.Attendee{{Name: "Sakiko", Status: mujica.AttendeeAccepted, Organizer: true}, {Name: "Mutsumi"}} + view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if i, ok := mujica.AttendeeList(c, people, mujica.AttendeeListOptions{Removable: true}).Removed(); ok { + people = append(people[:i], people[i+1:]...) + } + } + ui.Render(view, 400, 300, 1) +} + +func ExampleWeekPicker() { + var week mujica.Date + view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if mujica.WeekPicker(c, &week, mujica.WeekPickerOptions{WeekStart: mujica.WeekStartMonday, Clearable: true}).Changed() { + fmt.Println("week of", week) + } + } + ui.Render(view, 400, 300, 1) +} + +func ExampleDurationPicker() { + length := 90 * time.Minute + view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + opts := mujica.DurationPickerOptions{Min: 15 * time.Minute, Max: 8 * time.Hour} + if mujica.DurationPicker(c, &length, opts).Changed() { + fmt.Println("length", length) + } + } + ui.Render(view, 400, 300, 1) +} + +func ExampleCronEditor() { + expr := "0 9 * * MON-FRI" + view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if mujica.CronEditor(c, &expr, mujica.CronEditorOptions{Location: time.Local}).Changed() { + if _, err := mujica.ParseCron(expr); err == nil { + fmt.Println("schedule", expr) + } + } + } + ui.Render(view, 400, 300, 1) +} + +func ExampleRelativeTime() { + posted := time.Date(2026, time.October, 5, 9, 0, 0, 0, time.Local) + view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + mujica.RelativeTime(c, posted, mujica.RelativeTimeOptions{Location: time.Local}) + } + ui.Render(view, 400, 300, 1) +} + +func ExampleCountdown() { + deadline := time.Date(2026, time.December, 31, 23, 59, 59, 0, time.Local) + view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if mujica.Countdown(c, deadline, mujica.CountdownOptions{}).Finished() { + fmt.Println("happy new year") + } + } + ui.Render(view, 400, 300, 1) +} + +func ExampleStopwatch() { + var sw mujica.StopwatchState + view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if mujica.Stopwatch(c, &sw, mujica.StopwatchOptions{}).Changed() { + fmt.Println("laps", len(sw.Laps)) + } + } + ui.Render(view, 400, 300, 1) +} diff --git a/examples/gallery/pages_calendar.go b/examples/gallery/pages_calendar.go index 32f9be8..fef821f 100644 --- a/examples/gallery/pages_calendar.go +++ b/examples/gallery/pages_calendar.go @@ -1,3 +1,46 @@ package main -var calendarPages = []page{} +const calCategory = "Calendar" + +var calendarPages = []page{ + {ID: "421", Name: "CalendarMonthView", ZhName: "月视图", Category: calCategory, Demo: calMonthDemo, Code: calCalendarMonthViewCode, + Keys: "Tab reaches day numbers and event chips; arrows move between them; Enter opens; Alt+Left/Right moves an event a day, Alt+Up/Down a week; Escape closes the +N list."}, + {ID: "422", Name: "CalendarWeekView", ZhName: "周视图", Category: calCategory, Demo: calWeekDemo, Code: calCalendarWeekViewCode, + Keys: "Tab reaches a day column; Up/Down move the slot cursor, Enter creates a one-slot event; on a chip Alt+Up/Down moves by a slot, Alt+Left/Right by a day, Alt+Shift+Up/Down resizes."}, + {ID: "423", Name: "CalendarDayView", ZhName: "日视图", Category: calCategory, Demo: calDayDemo, Code: calCalendarDayViewCode, + Keys: "As the week view: Up/Down and Enter in the column, Alt with arrows on a chip."}, + {ID: "424", Name: "AgendaView", ZhName: "日程列表", Category: calCategory, Demo: calAgendaDemo, Code: calAgendaViewCode, + Keys: "Tab enters the list; Up/Down move between events; Enter opens."}, + {ID: "425", Name: "YearView", ZhName: "年视图", Category: calCategory, Demo: calYearDemo, Code: calYearViewCode, + Keys: "Tab enters the days; arrows move by day and week, PageUp/PageDown by month, across years; Enter chooses."}, + {ID: "426", Name: "EventChip", ZhName: "事件块", Category: calCategory, Demo: calChipDemo, Code: calEventChipCode, + Keys: "Tab focuses the chip; Enter or Space activates it."}, + {ID: "427", Name: "EventEditor", ZhName: "事件编辑器", Category: calCategory, Demo: calEditorDemo, Code: calEventEditorCode, + Keys: "Tab moves through the fields; each field keeps its own keys; Save and Cancel are buttons."}, + {ID: "428", Name: "EventPopover", ZhName: "事件浮层", Category: calCategory, Demo: calPopoverDemo, Code: calEventPopoverCode, + Keys: "Enter on the chip opens it; Tab reaches Close, Delete and Edit; Escape closes."}, + {ID: "429", Name: "CurrentTimeIndicator", ZhName: "当前时间线", Category: calCategory, Demo: calNowDemo, Code: calCurrentTimeIndicatorCode, + Keys: "Not focusable; screen readers read the time from its label."}, + {ID: "430", Name: "RecurrenceEditor", ZhName: "重复规则编辑器", Category: calCategory, Demo: calRecurrenceDemo, Code: calRecurrenceEditorCode, + Keys: "Tab moves between the repeat select, interval, weekdays and end choices; each control keeps its own keys."}, + {ID: "431", Name: "AvailabilityPicker", ZhName: "空闲时段选择", Category: calCategory, Demo: calAvailabilityDemo, Code: calAvailabilityPickerCode, + Keys: "Tab focuses the grid; arrows move the cursor; Space or Enter toggles the slot."}, + {ID: "432", Name: "TimezoneSelect", ZhName: "时区选择", Category: calCategory, Demo: calTimezoneDemo, Code: calTimezoneSelectCode, + Keys: "Enter, Space or Down opens; type to search; Up/Down move; Enter chooses; Escape closes."}, + {ID: "433", Name: "ReminderPicker", ZhName: "提醒选择", Category: calCategory, Demo: calReminderDemo, Code: calReminderPickerCode, + Keys: "Tab enters the list; Up/Down move; Space toggles."}, + {ID: "434", Name: "AttendeeList", ZhName: "参与者列表", Category: calCategory, Demo: calAttendeeDemo, Code: calAttendeeListCode, + Keys: "Tab reaches each remove button; Enter removes."}, + {ID: "435", Name: "WeekPicker", ZhName: "周选择器", Category: calCategory, Demo: calWeekPickerDemo, Code: calWeekPickerCode, + Keys: "Enter, Space or Down opens; arrows move; Enter picks the week; Escape closes."}, + {ID: "436", Name: "DurationPicker", ZhName: "时长选择器", Category: calCategory, Demo: calDurationDemo, Code: calDurationPickerCode, + Keys: "Tab moves between hours, minutes and seconds; Up/Down step; type digits and Enter."}, + {ID: "437", Name: "CronEditor", ZhName: "Cron 编辑器", Category: calCategory, Demo: calCronDemo, Code: calCronEditorCode, + Keys: "Type in the expression field; errors and the next runs update as you type."}, + {ID: "438", Name: "RelativeTime", ZhName: "相对时间", Category: calCategory, Demo: calRelativeDemo, Code: calRelativeTimeCode, + Keys: "Not focusable; the exact time is in its label and tooltip."}, + {ID: "439", Name: "Countdown", ZhName: "倒计时", Category: calCategory, Demo: calCountdownDemo, Code: calCountdownCode, + Keys: "Not focusable; reaching zero is announced."}, + {ID: "440", Name: "Stopwatch", ZhName: "秒表", Category: calCategory, Demo: calStopwatchDemo, Code: calStopwatchCode, + Keys: "Tab reaches Start/Pause, Lap and Reset; Enter or Space presses."}, +} diff --git a/examples/gallery/pages_calendar_code.go b/examples/gallery/pages_calendar_code.go new file mode 100644 index 0000000..949e14d --- /dev/null +++ b/examples/gallery/pages_calendar_code.go @@ -0,0 +1,253 @@ +package main + +// Code snippets mirror example_calendar_test.go. +const ( + calCalendarMonthViewCode = `func exampleEvents(loc *time.Location) []mujica.CalendarEvent { + start := time.Date(2026, time.October, 14, 9, 0, 0, 0, loc) + return []mujica.CalendarEvent{ + {ID: "rehearsal", Title: "Rehearsal", Start: start, End: start.Add(2 * time.Hour), Location: "Hall"}, + {ID: "fitting", Title: "Fitting", Start: start.Add(time.Hour), End: start.Add(90 * time.Minute), Color: mujica.EventInfo}, + } +} + +loc := time.Local +events := exampleEvents(loc) +month := mujica.YearMonth{Year: 2026, Month: time.October} +view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + r := mujica.CalendarMonthView(c, &month, events, mujica.CalendarMonthViewOptions{Location: loc}) + if ch, ok := r.Changed(); ok { + fmt.Println("move", ch.ID, "to", ch.Start) + } +} +ui.Render(view, 400, 300, 1)` + calCalendarWeekViewCode = `func exampleEvents(loc *time.Location) []mujica.CalendarEvent { + start := time.Date(2026, time.October, 14, 9, 0, 0, 0, loc) + return []mujica.CalendarEvent{ + {ID: "rehearsal", Title: "Rehearsal", Start: start, End: start.Add(2 * time.Hour), Location: "Hall"}, + {ID: "fitting", Title: "Fitting", Start: start.Add(time.Hour), End: start.Add(90 * time.Minute), Color: mujica.EventInfo}, + } +} + +loc := time.Local +events := exampleEvents(loc) +week := mujica.Date{Year: 2026, Month: time.October, Day: 14} +view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + r := mujica.CalendarWeekView(c, &week, events, mujica.CalendarWeekViewOptions{Location: loc, SlotMinutes: 15}) + if ch, ok := r.Changed(); ok && ch.Kind == mujica.CalendarCreate { + fmt.Println("new event", ch.Start, ch.End) + } +} +ui.Render(view, 400, 300, 1)` + calCalendarDayViewCode = `func exampleEvents(loc *time.Location) []mujica.CalendarEvent { + start := time.Date(2026, time.October, 14, 9, 0, 0, 0, loc) + return []mujica.CalendarEvent{ + {ID: "rehearsal", Title: "Rehearsal", Start: start, End: start.Add(2 * time.Hour), Location: "Hall"}, + {ID: "fitting", Title: "Fitting", Start: start.Add(time.Hour), End: start.Add(90 * time.Minute), Color: mujica.EventInfo}, + } +} + +loc := time.Local +events := exampleEvents(loc) +day := mujica.Date{Year: 2026, Month: time.October, Day: 14} +view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if id, ok := mujica.CalendarDayView(c, &day, events, mujica.CalendarDayViewOptions{Location: loc}).Opened(); ok { + fmt.Println("open", id) + } +} +ui.Render(view, 400, 300, 1)` + calAgendaViewCode = `func exampleEvents(loc *time.Location) []mujica.CalendarEvent { + start := time.Date(2026, time.October, 14, 9, 0, 0, 0, loc) + return []mujica.CalendarEvent{ + {ID: "rehearsal", Title: "Rehearsal", Start: start, End: start.Add(2 * time.Hour), Location: "Hall"}, + {ID: "fitting", Title: "Fitting", Start: start.Add(time.Hour), End: start.Add(90 * time.Minute), Color: mujica.EventInfo}, + } +} + +loc := time.Local +events := exampleEvents(loc) +view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + opts := mujica.AgendaViewOptions{Location: loc, From: mujica.Date{Year: 2026, Month: time.October, Day: 12}, Days: 14} + if id, ok := mujica.AgendaView(c, events, opts).Opened(); ok { + fmt.Println("open", id) + } +} +ui.Render(view, 400, 300, 1)` + calYearViewCode = `func exampleEvents(loc *time.Location) []mujica.CalendarEvent { + start := time.Date(2026, time.October, 14, 9, 0, 0, 0, loc) + return []mujica.CalendarEvent{ + {ID: "rehearsal", Title: "Rehearsal", Start: start, End: start.Add(2 * time.Hour), Location: "Hall"}, + {ID: "fitting", Title: "Fitting", Start: start.Add(time.Hour), End: start.Add(90 * time.Minute), Color: mujica.EventInfo}, + } +} + +loc := time.Local +events := exampleEvents(loc) +year := 2026 +view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if day, ok := mujica.YearView(c, &year, events, mujica.YearViewOptions{Location: loc}).DayChosen(); ok { + fmt.Println("go to", day) + } +} +ui.Render(view, 400, 300, 1)` + calEventChipCode = `func exampleEvents(loc *time.Location) []mujica.CalendarEvent { + start := time.Date(2026, time.October, 14, 9, 0, 0, 0, loc) + return []mujica.CalendarEvent{ + {ID: "rehearsal", Title: "Rehearsal", Start: start, End: start.Add(2 * time.Hour), Location: "Hall"}, + {ID: "fitting", Title: "Fitting", Start: start.Add(time.Hour), End: start.Add(90 * time.Minute), Color: mujica.EventInfo}, + } +} + +loc := time.Local +ev := exampleEvents(loc)[0] +view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if mujica.EventChip(c, ev, mujica.EventChipOptions{Location: loc}).Clicked() { + fmt.Println("open", ev.ID) + } +} +ui.Render(view, 400, 300, 1)` + calEventEditorCode = `func exampleEvents(loc *time.Location) []mujica.CalendarEvent { + start := time.Date(2026, time.October, 14, 9, 0, 0, 0, loc) + return []mujica.CalendarEvent{ + {ID: "rehearsal", Title: "Rehearsal", Start: start, End: start.Add(2 * time.Hour), Location: "Hall"}, + {ID: "fitting", Title: "Fitting", Start: start.Add(time.Hour), End: start.Add(90 * time.Minute), Color: mujica.EventInfo}, + } +} + +loc := time.Local +ev := exampleEvents(loc)[0] +view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + r := mujica.EventEditor(c, &ev, mujica.EventEditorOptions{Location: loc}) + if r.Saved() { + fmt.Println("saved", ev.Title, ev.Start) + } +} +ui.Render(view, 400, 300, 1)` + calEventPopoverCode = `func exampleEvents(loc *time.Location) []mujica.CalendarEvent { + start := time.Date(2026, time.October, 14, 9, 0, 0, 0, loc) + return []mujica.CalendarEvent{ + {ID: "rehearsal", Title: "Rehearsal", Start: start, End: start.Add(2 * time.Hour), Location: "Hall"}, + {ID: "fitting", Title: "Fitting", Start: start.Add(time.Hour), End: start.Add(90 * time.Minute), Color: mujica.EventInfo}, + } +} + +loc := time.Local +ev := exampleEvents(loc)[0] +open := false +view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + chip := mujica.EventChip(c, ev, mujica.EventChipOptions{Location: loc}) + if chip.Clicked() { + open = true + } + r := mujica.EventPopover(c, chip, &open, ev, mujica.EventPopoverOptions{Location: loc}) + if r.Delete() { + fmt.Println("delete", ev.ID) + } +} +ui.Render(view, 400, 300, 1)` + calCurrentTimeIndicatorCode = `view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + ui.Box(c).Size(200, 240).Children(func() { + mujica.CurrentTimeIndicator(c, mujica.CurrentTimeIndicatorOptions{Location: time.Local}) + }) +} +ui.Render(view, 400, 300, 1)` + calRecurrenceEditorCode = `rule := mujica.Recurrence{Unit: mujica.RepeatWeekly, Interval: 1, Weekdays: []time.Weekday{time.Monday}} +view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + r := mujica.RecurrenceEditor(c, &rule, mujica.RecurrenceEditorOptions{Start: mujica.Date{Year: 2026, Month: time.October, Day: 5}}) + if r.Changed() && r.Problem() == "" { + fmt.Println(mujica.RecurrenceSummary(c, rule)) + } +} +ui.Render(view, 400, 300, 1)` + calAvailabilityPickerCode = `days := []mujica.Date{{Year: 2026, Month: time.October, Day: 12}, {Year: 2026, Month: time.October, Day: 13}} +mine := [][]bool{make([]bool, 18), make([]bool, 18)} +view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if mujica.AvailabilityPicker(c, &mine, mujica.AvailabilityPickerOptions{Days: days}).Changed() { + fmt.Println("availability changed") + } +} +ui.Render(view, 400, 300, 1)` + calTimezoneSelectCode = `zone := "Asia/Shanghai" +view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if mujica.TimezoneSelect(c, &zone, mujica.TimezoneSelectOptions{}).Changed() { + fmt.Println("zone", zone) + } +} +ui.Render(view, 400, 300, 1)` + calReminderPickerCode = `reminders := []time.Duration{15 * time.Minute} +view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if mujica.ReminderPicker(c, &reminders, mujica.ReminderPickerOptions{Max: 3}).Changed() { + fmt.Println("reminders", reminders) + } +} +ui.Render(view, 400, 300, 1)` + calAttendeeListCode = `people := []mujica.Attendee{{Name: "Sakiko", Status: mujica.AttendeeAccepted, Organizer: true}, {Name: "Mutsumi"}} +view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if i, ok := mujica.AttendeeList(c, people, mujica.AttendeeListOptions{Removable: true}).Removed(); ok { + people = append(people[:i], people[i+1:]...) + } +} +ui.Render(view, 400, 300, 1)` + calWeekPickerCode = `var week mujica.Date +view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if mujica.WeekPicker(c, &week, mujica.WeekPickerOptions{WeekStart: mujica.WeekStartMonday, Clearable: true}).Changed() { + fmt.Println("week of", week) + } +} +ui.Render(view, 400, 300, 1)` + calDurationPickerCode = `length := 90 * time.Minute +view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + opts := mujica.DurationPickerOptions{Min: 15 * time.Minute, Max: 8 * time.Hour} + if mujica.DurationPicker(c, &length, opts).Changed() { + fmt.Println("length", length) + } +} +ui.Render(view, 400, 300, 1)` + calCronEditorCode = `expr := "0 9 * * MON-FRI" +view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if mujica.CronEditor(c, &expr, mujica.CronEditorOptions{Location: time.Local}).Changed() { + if _, err := mujica.ParseCron(expr); err == nil { + fmt.Println("schedule", expr) + } + } +} +ui.Render(view, 400, 300, 1)` + calRelativeTimeCode = `posted := time.Date(2026, time.October, 5, 9, 0, 0, 0, time.Local) +view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + mujica.RelativeTime(c, posted, mujica.RelativeTimeOptions{Location: time.Local}) +} +ui.Render(view, 400, 300, 1)` + calCountdownCode = `deadline := time.Date(2026, time.December, 31, 23, 59, 59, 0, time.Local) +view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if mujica.Countdown(c, deadline, mujica.CountdownOptions{}).Finished() { + fmt.Println("happy new year") + } +} +ui.Render(view, 400, 300, 1)` + calStopwatchCode = `var sw mujica.StopwatchState +view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if mujica.Stopwatch(c, &sw, mujica.StopwatchOptions{}).Changed() { + fmt.Println("laps", len(sw.Laps)) + } +} +ui.Render(view, 400, 300, 1)` +) diff --git a/examples/gallery/pages_calendar_parts.go b/examples/gallery/pages_calendar_parts.go new file mode 100644 index 0000000..fa08df4 --- /dev/null +++ b/examples/gallery/pages_calendar_parts.go @@ -0,0 +1,217 @@ +package main + +import ( + "fmt" + "strings" + "time" + + "github.com/egoist/mygo/ui" + + mujica "mujicaui" +) + +var calColors = []string{"Accent", "Info", "Success", "Warning", "Danger", "Neutral"} + +func calChipDemo(c *ui.Context, log func(string)) { + type state struct { + color string + inline, selected, disabled bool + } + s := ui.Local(c.Root(), "426", func() state { return state{color: "Accent"} }) + dtSection(c, "EventChip", func() { + dtControls(c, func() { + mujica.Select(c, &s.color, calOptions(calColors), mujica.SelectOptions{Label: "Color"}) + mujica.Checkbox(c, &s.inline, "Inline", mujica.CheckboxOptions{}) + mujica.Checkbox(c, &s.selected, "Selected", mujica.CheckboxOptions{}) + mujica.Checkbox(c, &s.disabled, "Disabled", mujica.CheckboxOptions{}) + }) + ev := calSample()[0] + for i, n := range calColors { + if n == s.color { + ev.Color = mujica.EventColor(i) + } + } + ui.Box(c).Width(240).Children(func() { + if mujica.EventChip(c, ev, mujica.EventChipOptions{Location: time.Local, Inline: s.inline, Selected: s.selected, Disabled: s.disabled}).Clicked() { + log("clicked " + ev.Title) + } + }) + }) +} + +func calEditorDemo(c *ui.Context, log func(string)) { + type state struct { + ev mujica.CalendarEvent + disabled bool + } + s := ui.Local(c.Root(), "427", func() state { return state{ev: calSample()[0]} }) + dtSection(c, "EventEditor", func() { + dtControls(c, func() { mujica.Checkbox(c, &s.disabled, "Disabled", mujica.CheckboxOptions{}) }) + r := mujica.EventEditor(c, &s.ev, mujica.EventEditorOptions{Location: time.Local, Disabled: s.disabled}) + if r.Saved() { + log(fmt.Sprintf("saved %q %s, %d guests", s.ev.Title, s.ev.Start.Format("Jan 2 15:04"), len(s.ev.Attendees))) + } + if r.Canceled() { + log("canceled") + } + }) +} + +func calPopoverDemo(c *ui.Context, log func(string)) { + type state struct { + open, readOnly, disabled bool + } + s := ui.Local(c.Root(), "428", func() state { return state{} }) + dtSection(c, "EventPopover", func() { + dtControls(c, func() { + mujica.Checkbox(c, &s.readOnly, "Read-only", mujica.CheckboxOptions{}) + mujica.Checkbox(c, &s.disabled, "Disabled", mujica.CheckboxOptions{}) + }) + ev := calSample()[0] + ev.Attendees = []mujica.Attendee{{Name: "Sakiko", Status: mujica.AttendeeAccepted, Organizer: true}, {Name: "Mutsumi"}} + ev.Reminders = []time.Duration{15 * time.Minute} + ui.Box(c).Width(240).Children(func() { + chip := mujica.EventChip(c, ev, mujica.EventChipOptions{Location: time.Local, Disabled: s.disabled}) + if chip.Clicked() { + s.open = true + log("opened popover") + } + r := mujica.EventPopover(c, chip, &s.open, ev, mujica.EventPopoverOptions{Location: time.Local, ReadOnly: s.readOnly, Disabled: s.disabled}) + if r.Edit() { + log("edit " + ev.ID) + } + if r.Delete() { + log("delete " + ev.ID) + } + }) + }) +} + +func calNowDemo(c *ui.Context, log func(string)) { + dtSection(c, "CurrentTimeIndicator", func() { + k := mujica.Tokens(c) + ui.Box(c).Size(320, 240).Border(1, k.Border).Children(func() { + mujica.CurrentTimeIndicator(c, mujica.CurrentTimeIndicatorOptions{Location: time.Local}) + }) + }) +} + +func calRecurrenceDemo(c *ui.Context, log func(string)) { + type state struct { + rule mujica.Recurrence + disabled bool + } + s := ui.Local(c.Root(), "430", func() state { return state{} }) + dtSection(c, "RecurrenceEditor", func() { + dtControls(c, func() { mujica.Checkbox(c, &s.disabled, "Disabled", mujica.CheckboxOptions{}) }) + r := mujica.RecurrenceEditor(c, &s.rule, mujica.RecurrenceEditorOptions{Start: mujica.DateOf(time.Now()), Disabled: s.disabled}) + if r.Changed() { + log(mujica.RecurrenceSummary(c, s.rule) + strings.TrimSpace(" "+r.Problem())) + } + }) +} + +func calAvailabilityDemo(c *ui.Context, log func(string)) { + type state struct { + mine, theirs [][]bool + days []mujica.Date + others, frozen bool + } + s := ui.Local(c.Root(), "431", func() state { + today := mujica.DateOf(time.Now()) + grid := func(seed int) [][]bool { + g := make([][]bool, 5) + for i := range g { + g[i] = make([]bool, 18) + for j := range g[i] { + g[i][j] = (i*7+j*3+seed)%4 == 0 + } + } + return g + } + days := []mujica.Date{today, today.AddDays(1), today.AddDays(2), today.AddDays(3), today.AddDays(4)} + return state{mine: grid(2), theirs: grid(1), days: days, others: true} + }) + dtSection(c, "AvailabilityPicker", func() { + dtControls(c, func() { + mujica.Checkbox(c, &s.others, "Show Mutsumi", mujica.CheckboxOptions{}) + mujica.Checkbox(c, &s.frozen, "Disabled", mujica.CheckboxOptions{}) + }) + var others []mujica.AvailabilityPerson + if s.others { + others = []mujica.AvailabilityPerson{{Name: "Mutsumi", Free: s.theirs}} + } + if mujica.AvailabilityPicker(c, &s.mine, mujica.AvailabilityPickerOptions{Days: s.days, Others: others, Disabled: s.frozen}).Changed() { + n := 0 + for _, d := range s.mine { + for _, v := range d { + if v { + n++ + } + } + } + log(fmt.Sprintf("%d free slots", n)) + } + }) +} + +func calTimezoneDemo(c *ui.Context, log func(string)) { + type state struct { + zone string + disabled bool + } + s := ui.Local(c.Root(), "432", func() state { return state{zone: "Asia/Shanghai"} }) + dtSection(c, "TimezoneSelect", func() { + dtControls(c, func() { mujica.Checkbox(c, &s.disabled, "Disabled", mujica.CheckboxOptions{}) }) + if mujica.TimezoneSelect(c, &s.zone, mujica.TimezoneSelectOptions{Disabled: s.disabled}).Changed() { + log("zone " + s.zone) + } + }) +} + +func calReminderDemo(c *ui.Context, log func(string)) { + type state struct { + v []time.Duration + max string + disabled bool + } + s := ui.Local(c.Root(), "433", func() state { return state{v: []time.Duration{15 * time.Minute}, max: "0"} }) + dtSection(c, "ReminderPicker", func() { + dtControls(c, func() { + mujica.Select(c, &s.max, calOptions([]string{"0", "2", "3"}), mujica.SelectOptions{Label: "Max (0 = any)"}) + mujica.Checkbox(c, &s.disabled, "Disabled", mujica.CheckboxOptions{}) + }) + if limit := calAtoi(s.max); limit > 0 && len(s.v) > limit { + s.v = s.v[:limit] + } + if mujica.ReminderPicker(c, &s.v, mujica.ReminderPickerOptions{Max: calAtoi(s.max), Disabled: s.disabled}).Changed() { + log(fmt.Sprint("reminders ", s.v)) + } + }) +} + +func calAttendeeDemo(c *ui.Context, log func(string)) { + type state struct { + list []mujica.Attendee + removable bool + } + people := func() []mujica.Attendee { + return []mujica.Attendee{{Name: "Sakiko Togawa", Status: mujica.AttendeeAccepted, Organizer: true}, + {Name: "Mutsumi Wakaba", Status: mujica.AttendeeTentative}, {Name: "Uika Misumi", Status: mujica.AttendeeDeclined}, + {Name: "Nyamu Yuutenji", Email: "nyamu@example.com"}} + } + s := ui.Local(c.Root(), "434", func() state { return state{list: people(), removable: true} }) + dtSection(c, "AttendeeList", func() { + dtControls(c, func() { + mujica.Checkbox(c, &s.removable, "Removable", mujica.CheckboxOptions{}) + if mujica.Button(c, "Reset", mujica.ButtonOptions{Variant: mujica.Secondary}).Clicked() { + s.list = people() + log("reset") + } + }) + if i, ok := mujica.AttendeeList(c, s.list, mujica.AttendeeListOptions{Removable: s.removable}).Removed(); ok { + log("removed " + s.list[i].Name) + s.list = append(s.list[:i:i], s.list[i+1:]...) + } + }) +} diff --git a/examples/gallery/pages_calendar_time.go b/examples/gallery/pages_calendar_time.go new file mode 100644 index 0000000..78c432a --- /dev/null +++ b/examples/gallery/pages_calendar_time.go @@ -0,0 +1,128 @@ +package main + +import ( + "time" + + "github.com/egoist/mygo/ui" + + mujica "mujicaui" +) + +func calWeekPickerDemo(c *ui.Context, log func(string)) { + type state struct { + week mujica.Date + weekStart string + disabled bool + } + s := ui.Local(c.Root(), "435", func() state { return state{weekStart: "Locale"} }) + dtSection(c, "WeekPicker", func() { + dtControls(c, func() { + if mujica.Select(c, &s.weekStart, calOptions(calWeekStarts), mujica.SelectOptions{Label: "Week start"}).Changed() { + s.week = mujica.Date{} + log("week start " + s.weekStart + ", value cleared") + } + mujica.Checkbox(c, &s.disabled, "Disabled", mujica.CheckboxOptions{}) + }) + opts := mujica.WeekPickerOptions{WeekStart: calWeekStart(s.weekStart), Clearable: true, Disabled: s.disabled} + if mujica.WeekPicker(c, &s.week, opts).Changed() { + log("week of " + s.week.String()) + } + }) +} + +func calDurationDemo(c *ui.Context, log func(string)) { + type state struct { + v time.Duration + seconds, disabled bool + } + s := ui.Local(c.Root(), "436", func() state { return state{v: 90 * time.Minute} }) + dtSection(c, "DurationPicker", func() { + dtControls(c, func() { + mujica.Checkbox(c, &s.seconds, "Seconds", mujica.CheckboxOptions{}) + mujica.Checkbox(c, &s.disabled, "Disabled", mujica.CheckboxOptions{}) + }) + opts := mujica.DurationPickerOptions{Seconds: s.seconds, Min: 15 * time.Minute, Max: 8 * time.Hour, Disabled: s.disabled} + if mujica.DurationPicker(c, &s.v, opts).Changed() { + log("duration " + s.v.String()) + } + }) +} + +func calCronDemo(c *ui.Context, log func(string)) { + type state struct { + expr string + disabled bool + } + s := ui.Local(c.Root(), "437", func() state { return state{expr: "*/15 9-17 * * MON-FRI"} }) + dtSection(c, "CronEditor", func() { + dtControls(c, func() { mujica.Checkbox(c, &s.disabled, "Disabled", mujica.CheckboxOptions{}) }) + if mujica.CronEditor(c, &s.expr, mujica.CronEditorOptions{Location: time.Local, Disabled: s.disabled}).Changed() { + if _, err := mujica.ParseCron(s.expr); err != nil { + log("invalid: " + s.expr) + } else { + log("schedule " + s.expr) + } + } + }) +} + +func calRelativeDemo(c *ui.Context, log func(string)) { + type state struct{ at time.Time } + s := ui.Local(c.Root(), "438", func() state { return state{at: time.Now()} }) + dtSection(c, "RelativeTime", func() { + dtControls(c, func() { + for _, b := range []struct { + label string + d time.Duration + }{{"Now", 0}, {"5 minutes ago", -5 * time.Minute}, {"In 3 hours", 3 * time.Hour}, {"40 days ago", -40 * 24 * time.Hour}} { + if mujica.Button(c, b.label, mujica.ButtonOptions{Variant: mujica.Secondary}).Clicked() { + s.at = time.Now().Add(b.d) + log("time set: " + b.label) + } + } + }) + mujica.RelativeTime(c, s.at, mujica.RelativeTimeOptions{Location: time.Local}) + }) +} + +func calCountdownDemo(c *ui.Context, log func(string)) { + type state struct { + deadline time.Time + words bool + } + s := ui.Local(c.Root(), "439", func() state { return state{deadline: time.Now().Add(10 * time.Second)} }) + dtSection(c, "Countdown", func() { + dtControls(c, func() { + if mujica.Button(c, "Restart 10 s", mujica.ButtonOptions{Variant: mujica.Secondary}).Clicked() { + s.deadline = time.Now().Add(10 * time.Second) + log("restarted") + } + mujica.Checkbox(c, &s.words, "Words", mujica.CheckboxOptions{}) + }) + format := mujica.CountdownClock + if s.words { + format = mujica.CountdownWords + } + if mujica.Countdown(c, s.deadline, mujica.CountdownOptions{Format: format}).Finished() { + log("finished") + } + }) +} + +func calStopwatchDemo(c *ui.Context, log func(string)) { + type state struct { + sw mujica.StopwatchState + disabled bool + } + s := ui.Local(c.Root(), "440", func() state { return state{} }) + dtSection(c, "Stopwatch", func() { + dtControls(c, func() { mujica.Checkbox(c, &s.disabled, "Disabled", mujica.CheckboxOptions{}) }) + if mujica.Stopwatch(c, &s.sw, mujica.StopwatchOptions{Disabled: s.disabled}).Changed() { + state := "paused" + if s.sw.Running() { + state = "running" + } + log(state + ", " + mujica.StopwatchText(s.sw.Elapsed(time.Now()))) + } + }) +} diff --git a/examples/gallery/pages_calendar_views.go b/examples/gallery/pages_calendar_views.go new file mode 100644 index 0000000..b7b627b --- /dev/null +++ b/examples/gallery/pages_calendar_views.go @@ -0,0 +1,194 @@ +package main + +import ( + "fmt" + "strconv" + "time" + + "github.com/egoist/mygo/ui" + + mujica "mujicaui" +) + +// calSample is demo events around today in the local zone. +func calSample() []mujica.CalendarEvent { + now := time.Now() + day := time.Date(now.Year(), now.Month(), now.Day(), 0, 0, 0, 0, time.Local) + at := func(d, h, m, mins int) (time.Time, time.Time) { + s := day.AddDate(0, 0, d).Add(time.Duration(h)*time.Hour + time.Duration(m)*time.Minute) + return s, s.Add(time.Duration(mins) * time.Minute) + } + mk := func(id, title string, color mujica.EventColor, d, h, m, mins int) mujica.CalendarEvent { + s, e := at(d, h, m, mins) + return mujica.CalendarEvent{ID: id, Title: title, Color: color, Start: s, End: e, Location: "Rehearsal hall"} + } + evs := []mujica.CalendarEvent{ + mk("1", "Rehearsal", mujica.EventAccent, 0, 9, 0, 120), mk("2", "Costume fitting", mujica.EventInfo, 0, 10, 0, 60), + mk("3", "Lunch", mujica.EventSuccess, 0, 12, 30, 60), mk("4", "Lyrics review", mujica.EventWarning, 1, 14, 0, 90), + mk("5", "Press", mujica.EventDanger, 2, 16, 0, 45), mk("6", "Sound check", mujica.EventNeutral, 3, 18, 0, 60), + mk("7", "Encore notes", mujica.EventInfo, 0, 15, 0, 30), mk("8", "Stage walk", mujica.EventAccent, 0, 17, 0, 30), + } + holiday := mk("9", "Masquerade", mujica.EventAccent, 4, 0, 0, 24*60) + holiday.AllDay, holiday.Start = true, day.AddDate(0, 0, 4) + holiday.End = holiday.Start.AddDate(0, 0, 1) + return append(evs, holiday) +} + +// calApply applies and logs a view change. +func calApply(evs *[]mujica.CalendarEvent, ch mujica.CalendarChange, log func(string)) { + switch ch.Kind { + case mujica.CalendarCreate: + id := fmt.Sprint(len(*evs) + 100) + *evs = append(*evs, mujica.CalendarEvent{ID: id, Title: "New event", Start: ch.Start, End: ch.End}) + log("created " + ch.Start.Format("Jan 2 15:04") + " – " + ch.End.Format("15:04")) + return + } + for i := range *evs { + if (*evs)[i].ID == ch.ID { + (*evs)[i].Start, (*evs)[i].End = ch.Start, ch.End + } + } + verb := "moved" + if ch.Kind == mujica.CalendarResize { + verb = "resized" + } + log(fmt.Sprintf("%s %s to %s – %s", verb, ch.ID, ch.Start.Format("Jan 2 15:04"), ch.End.Format("15:04"))) +} + +// calViewResult logs what a view reported and applies its change. +func calViewResult(r mujica.CalendarViewResult, evs *[]mujica.CalendarEvent, version *int, log func(string)) { + if id, ok := r.Opened(); ok { + log("opened " + id) + } + if d, ok := r.DayChosen(); ok { + log("day " + d.String()) + } + if ch, ok := r.Changed(); ok { + calApply(evs, ch, log) + *version++ + } +} + +var calWeekStarts = []string{"Locale", "Sunday", "Monday", "Saturday"} + +func calWeekStart(s string) mujica.WeekStart { + for i, n := range calWeekStarts { + if n == s { + return mujica.WeekStart(i) + } + } + panic("gallery: unknown week start " + s) +} + +func calMonthDemo(c *ui.Context, log func(string)) { + type state struct { + month mujica.YearMonth + events []mujica.CalendarEvent + version, maxRows int + weekStart, maxStr string + disabled bool + } + s := ui.Local(c.Root(), "421", func() state { + now := time.Now() + return state{month: mujica.YearMonth{Year: now.Year(), Month: now.Month()}, events: calSample(), weekStart: "Locale", maxStr: "3"} + }) + dtSection(c, "CalendarMonthView", func() { + dtControls(c, func() { + mujica.Select(c, &s.weekStart, calOptions(calWeekStarts), mujica.SelectOptions{Label: "Week start"}) + mujica.Select(c, &s.maxStr, calOptions([]string{"1", "2", "3", "4"}), mujica.SelectOptions{Label: "Rows per day"}) + mujica.Checkbox(c, &s.disabled, "Disabled", mujica.CheckboxOptions{}) + }) + s.maxRows = calAtoi(s.maxStr) + r := mujica.CalendarMonthView(c, &s.month, s.events, mujica.CalendarMonthViewOptions{Location: time.Local, Version: s.version, + WeekStart: calWeekStart(s.weekStart), MaxPerDay: s.maxRows, Disabled: s.disabled}) + calViewResult(r, &s.events, &s.version, log) + }) +} + +func calWeekDemo(c *ui.Context, log func(string)) { + type state struct { + week mujica.Date + events []mujica.CalendarEvent + version int + slot string + hour12 bool + disabled bool + } + s := ui.Local(c.Root(), "422", func() state { + return state{week: mujica.DateOf(time.Now()), events: calSample(), slot: "30"} + }) + dtSection(c, "CalendarWeekView", func() { + dtControls(c, func() { + mujica.Select(c, &s.slot, calOptions([]string{"15", "30", "60"}), mujica.SelectOptions{Label: "Slot minutes"}) + mujica.Checkbox(c, &s.hour12, "12-hour", mujica.CheckboxOptions{}) + mujica.Checkbox(c, &s.disabled, "Disabled", mujica.CheckboxOptions{}) + }) + slot := calAtoi(s.slot) + r := mujica.CalendarWeekView(c, &s.week, s.events, mujica.CalendarWeekViewOptions{Location: time.Local, Version: s.version, + SlotMinutes: slot, Hour12: s.hour12, Disabled: s.disabled}) + calViewResult(r, &s.events, &s.version, log) + }) +} + +func calDayDemo(c *ui.Context, log func(string)) { + type state struct { + day mujica.Date + events []mujica.CalendarEvent + version int + disabled bool + } + s := ui.Local(c.Root(), "423", func() state { return state{day: mujica.DateOf(time.Now()), events: calSample()} }) + dtSection(c, "CalendarDayView", func() { + dtControls(c, func() { mujica.Checkbox(c, &s.disabled, "Disabled", mujica.CheckboxOptions{}) }) + r := mujica.CalendarDayView(c, &s.day, s.events, mujica.CalendarDayViewOptions{Location: time.Local, Version: s.version, Disabled: s.disabled}) + calViewResult(r, &s.events, &s.version, log) + }) +} + +func calAgendaDemo(c *ui.Context, log func(string)) { + type state struct { + events []mujica.CalendarEvent + days string + } + s := ui.Local(c.Root(), "424", func() state { return state{events: calSample(), days: "7"} }) + dtSection(c, "AgendaView", func() { + dtControls(c, func() { + mujica.Select(c, &s.days, calOptions([]string{"1", "7", "30"}), mujica.SelectOptions{Label: "Days"}) + }) + days := calAtoi(s.days) + ui.Column(c).Height(420).Children(func() { + if id, ok := mujica.AgendaView(c, s.events, mujica.AgendaViewOptions{Location: time.Local, Days: days}).Opened(); ok { + log("opened " + id) + } + }) + }) +} + +func calYearDemo(c *ui.Context, log func(string)) { + type state struct { + year int + events []mujica.CalendarEvent + } + s := ui.Local(c.Root(), "425", func() state { return state{year: time.Now().Year(), events: calSample()} }) + dtSection(c, "YearView", func() { + if d, ok := mujica.YearView(c, &s.year, s.events, mujica.YearViewOptions{Location: time.Local}).DayChosen(); ok { + log("day " + d.String()) + } + }) +} + +func calAtoi(s string) int { + n, err := strconv.Atoi(s) + if err != nil { + panic(err) + } + return n +} + +func calOptions(values []string) []mujica.SelectOption[string] { + out := make([]mujica.SelectOption[string], len(values)) + for i, v := range values { + out[i] = mujica.SelectOption[string]{Value: v, Label: v} + } + return out +} diff --git a/internal/calendar.go b/internal/calendar.go new file mode 100644 index 0000000..1b6164d --- /dev/null +++ b/internal/calendar.go @@ -0,0 +1,9 @@ +package internal + +import "github.com/egoist/mygo/ui" + +// Rule draws a pixel-aligned 1 DIP horizontal line at y. +func Rule(p *ui.Painter, x0, x1, y float32, c ui.Color) { + yy := ruleY(p, y) + p.Line(x0, yy, x1, yy, 1, c) +} diff --git a/messages_calendar.go b/messages_calendar.go new file mode 100644 index 0000000..af24774 --- /dev/null +++ b/messages_calendar.go @@ -0,0 +1,195 @@ +package mujica + +import ( + "fmt" + + "github.com/egoist/mygo/ui" +) + +// calendarCount formats a count, using "_one" for one. +func calendarCount(c *ui.Context, key string, n int) string { + if n == 1 { + key += "_one" + } + return fmt.Sprintf(msg(c, key), n) +} + +func init() { + addMessages(map[string][2]string{ + "event_chip.all_day": {"All day", "全天"}, + "event_chip.untitled": {"(No title)", "(无标题)"}, + + "attendee_list.label": {"Attendees", "参与者"}, + "attendee_list.summary": {"%d accepted · %d maybe · %d declined · %d awaiting", "%d 人接受 · %d 人待定 · %d 人拒绝 · %d 人未回复"}, + "attendee_list.empty": {"No attendees yet.", "暂无参与者。"}, + "attendee_list.organizer": {"Organizer", "组织者"}, + "attendee_list.optional": {"Optional", "可选"}, + "attendee_list.remove": {"Remove %s", "移除 %s"}, + "attendee_list.pending": {"Awaiting reply", "未回复"}, + "attendee_list.accepted": {"Accepted", "已接受"}, + "attendee_list.tentative": {"Maybe", "待定"}, + "attendee_list.declined": {"Declined", "已拒绝"}, + + "recurrence_editor.label": {"Recurrence", "重复规则"}, + "recurrence_editor.repeat": {"Repeat", "重复"}, + "recurrence_editor.none": {"Does not repeat", "不重复"}, + "recurrence_editor.daily": {"Daily", "每天"}, + "recurrence_editor.weekly": {"Weekly", "每周"}, + "recurrence_editor.monthly": {"Monthly", "每月"}, + "recurrence_editor.yearly": {"Yearly", "每年"}, + "recurrence_editor.custom": {"Custom", "自定义"}, + "recurrence_editor.every": {"Every", "每"}, + "recurrence_editor.interval": {"Interval", "间隔"}, + "recurrence_editor.unit": {"Unit", "单位"}, + "recurrence_editor.days": {"days", "天"}, + "recurrence_editor.weeks": {"weeks", "周"}, + "recurrence_editor.months": {"months", "个月"}, + "recurrence_editor.years": {"years", "年"}, + "recurrence_editor.on_days": {"On days", "重复于"}, + "recurrence_editor.ends": {"Ends", "结束"}, + "recurrence_editor.forever": {"Never", "永不"}, + "recurrence_editor.after": {"After", "次数"}, + "recurrence_editor.until": {"On date", "截止日期"}, + "recurrence_editor.count": {"Occurrences", "重复次数"}, + "recurrence_editor.until_date": {"End date", "结束日期"}, + "recurrence_editor.no_days": {"Choose at least one day.", "请至少选择一天。"}, + "recurrence_editor.bad_count": {"Repeat at least once.", "重复次数至少为 1。"}, + "recurrence_editor.bad_until": {"The end date must not precede the start.", "结束日期不能早于开始日期。"}, + "recurrence_editor.never": {"Does not repeat", "不重复"}, + "recurrence_editor.every_n": {"Every %d %s", "每 %d %s"}, + "recurrence_editor.on": {" on %s", ",于%s"}, + "recurrence_editor.list_sep": {", ", "、"}, + "recurrence_editor.times": {", %d times", ",共 %d 次"}, + "recurrence_editor.times_one": {", %d time", ",共 %d 次"}, + "recurrence_editor.until_text": {", until %v", ",至 %v"}, + + "reminder_picker.label": {"Reminders", "提醒"}, + "reminder_picker.at_start": {"At start", "开始时"}, + "reminder_picker.minutes": {"%d minutes before", "提前 %d 分钟"}, + "reminder_picker.minutes_one": {"%d minute before", "提前 %d 分钟"}, + "reminder_picker.hours": {"%d hours before", "提前 %d 小时"}, + "reminder_picker.hours_one": {"%d hour before", "提前 %d 小时"}, + "reminder_picker.days": {"%d days before", "提前 %d 天"}, + "reminder_picker.days_one": {"%d day before", "提前 %d 天"}, + "reminder_picker.weeks": {"%d weeks before", "提前 %d 周"}, + "reminder_picker.weeks_one": {"%d week before", "提前 %d 周"}, + + "calendar_month_view.more": {"+%d", "+%d"}, + "calendar_month_view.more_label": {"%d more events", "另有 %d 项"}, + "calendar_month_view.more_label_one": {"%d more event", "另有 %d 项"}, + + "current_time_indicator.label": {"Now, %s", "当前时间 %s"}, + + "calendar_week_view.all_day": {"All day", "全天"}, + "calendar_week_view.prev": {"Previous week", "上一周"}, + "calendar_week_view.next": {"Next week", "下一周"}, + "calendar_week_view.title": {"%[1]s %[2]d – %[3]s %[4]d, %[5]d", "%[5]d年%[1]s%[2]d日 – %[3]s%[4]d日"}, + "calendar_week_view.resize": {"Resize %s", "调整 %s 的时长"}, + "calendar_week_view.too_short": {"An event must end after it starts.", "结束时间须晚于开始时间。"}, + "calendar_week_view.column": {"Schedule, %s", "%s 日程"}, + "calendar_day_view.prev": {"Previous day", "前一天"}, + "calendar_day_view.next": {"Next day", "后一天"}, + + "agenda_view.label": {"Agenda", "日程"}, + "agenda_view.today": {"Today", "今天"}, + "agenda_view.empty": {"No events in the next %d days.", "未来 %d 天没有日程。"}, + + "year_view.events": {"%d events", "%d 项日程"}, + "year_view.events_one": {"%d event", "%d 项日程"}, + + "event_popover.close": {"Close", "关闭"}, + "event_popover.edit": {"Edit", "编辑"}, + "event_popover.delete": {"Delete", "删除"}, + "event_popover.guests": {"%d guests", "%d 位参与者"}, + "event_popover.guests_one": {"%d guest", "%d 位参与者"}, + + "week_picker.label": {"Week", "周"}, + "week_picker.placeholder": {"Select week", "选择周"}, + + "duration_picker.label": {"Duration", "时长"}, + "duration_picker.hours": {"Hours", "小时数"}, + "duration_picker.minutes": {"Minutes", "分钟数"}, + "duration_picker.seconds": {"Seconds", "秒数"}, + "duration_picker.hours_unit": {"h", "小时"}, + "duration_picker.minutes_unit": {"min", "分"}, + "duration_picker.seconds_unit": {"s", "秒"}, + "duration_picker.range": {"Choose a duration from %s to %s.", "请选择 %s 至 %s 之间的时长。"}, + + "timezone_select.label": {"Time zone", "时区"}, + "timezone_select.placeholder": {"Select time zone", "选择时区"}, + "timezone_select.search": {"Search city or offset", "搜索城市或偏移"}, + "timezone_select.empty": {"No matching time zone.", "没有匹配的时区。"}, + "timezone_select.common": {"Common", "常用"}, + "timezone_select.all": {"All time zones", "全部时区"}, + + "availability_picker.label": {"Availability", "空闲时段"}, + "availability_picker.mine": {"you are free", "你有空"}, + "availability_picker.others": {"%d of %d others free", "其他 %[2]d 人中 %[1]d 人有空"}, + + "event_editor.label": {"Event", "日程"}, + "event_editor.title": {"Title", "标题"}, + "event_editor.all_day": {"All day", "全天"}, + "event_editor.starts": {"Starts", "开始"}, + "event_editor.ends": {"Ends", "结束"}, + "event_editor.where": {"Location", "地点"}, + "event_editor.guests": {"Guests", "参与者"}, + "event_editor.guests_help": {"Type a name and press Enter.", "输入姓名后按回车。"}, + "event_editor.reminders": {"Reminders", "提醒"}, + "event_editor.save": {"Save", "保存"}, + "event_editor.need_title": {"Enter a title.", "请输入标题。"}, + "event_editor.need_start": {"Choose a start.", "请选择开始时间。"}, + "event_editor.end_order": {"The end must be after the start.", "结束须晚于开始。"}, + + "cron_editor.expression": {"Expression", "表达式"}, + "cron_editor.label": {"Cron schedule", "Cron 表达式"}, + "cron_editor.next": {"Next runs", "下次运行"}, + "cron_editor.never": {"No run in the next five years.", "未来五年内不会运行。"}, + "cron_editor.repeated": {"repeated hour, first run", "重复时段,取首次"}, + "cron_editor.minute": {"Minute", "分钟"}, + "cron_editor.hour": {"Hour", "小时"}, + "cron_editor.dom": {"Day of month", "日"}, + "cron_editor.month": {"Month", "月"}, + "cron_editor.dow": {"Day of week", "星期"}, + "cron_editor.err_count": {"Use five fields, not %s.", "需要 5 个字段,而不是 %s 个。"}, + "cron_editor.err_empty": {"an empty list item", "列表项为空"}, + "cron_editor.err_step": {"step %q must be a positive number", "步长 %q 须为正整数"}, + "cron_editor.err_number": {"%q is not a number", "%q 不是数字"}, + "cron_editor.err_range": {"%s is outside %d–%d", "%s 超出 %d–%d"}, + "cron_editor.err_backwards": {"range %s runs backwards", "范围 %s 起止颠倒"}, + "cron_editor.field_error": {"%s: %s.", "%s:%s。"}, + "cron_editor.invalid": {"Invalid", "无效"}, + "cron_editor.any": {"Every value", "任意"}, + "cron_editor.every": {"Every %s", "每 %s"}, + "cron_editor.every_in": {"Every %s in %s", "%[2]s 内每 %[1]s"}, + + "relative_time.now": {"just now", "刚刚"}, + "relative_time.ago": {"%s ago", "%s前"}, + "relative_time.in": {"in %s", "%s后"}, + "relative_time.minutes": {"%d minutes", "%d 分钟"}, + "relative_time.minutes_one": {"%d minute", "%d 分钟"}, + "relative_time.hours": {"%d hours", "%d 小时"}, + "relative_time.hours_one": {"%d hour", "%d 小时"}, + "relative_time.days": {"%d days", "%d 天"}, + "relative_time.days_one": {"%d day", "%d 天"}, + "relative_time.months": {"%d months", "%d 个月"}, + "relative_time.months_one": {"%d month", "%d 个月"}, + "relative_time.years": {"%d years", "%d 年"}, + "relative_time.years_one": {"%d year", "%d 年"}, + + "countdown.label": {"Time left", "剩余时间"}, + "countdown.done": {"%s: time is up.", "%s:时间到。"}, + "countdown.days_clock": {"%dd", "%d天"}, + "countdown.d": {"%d d", "%d 天"}, + "countdown.h": {"%d h", "%d 小时"}, + "countdown.m": {"%d min", "%d 分"}, + "countdown.s": {"%d s", "%d 秒"}, + + "stopwatch.label": {"Stopwatch", "秒表"}, + "stopwatch.start": {"Start", "开始"}, + "stopwatch.pause": {"Pause", "暂停"}, + "stopwatch.resume": {"Resume", "继续"}, + "stopwatch.lap": {"Lap", "计次"}, + "stopwatch.reset": {"Reset", "复位"}, + "stopwatch.lap_n": {"Lap %d", "第 %d 圈"}, + }) +} diff --git a/recurrence_editor.go b/recurrence_editor.go new file mode 100644 index 0000000..a7bd8b7 --- /dev/null +++ b/recurrence_editor.go @@ -0,0 +1,223 @@ +package mujica + +import ( + "fmt" + "log/slog" + "math" + "strings" + "time" + + "github.com/egoist/mygo/ui" + + "mujicaui/theme" +) + +// RepeatUnit is how often a rule repeats; zero never does. +type RepeatUnit int + +const ( + RepeatNone RepeatUnit = iota + RepeatDaily + RepeatWeekly + RepeatMonthly + RepeatYearly +) + +// RepeatEnd says when a recurrence stops. +type RepeatEnd int + +const ( + RepeatForever RepeatEnd = iota + RepeatCount + RepeatUntil +) + +// Recurrence repeats every Interval units, on Weekdays when weekly. +type Recurrence struct { + Unit RepeatUnit + Interval int + Weekdays []time.Weekday + End RepeatEnd + Count int + Until Date +} + +// RecurrenceEditorOptions configure a RecurrenceEditor. +type RecurrenceEditorOptions struct { + // Start is the first occurrence; Until must not precede it. + Start Date + WeekStart WeekStart + Disabled bool + Label string +} + +// RecurrenceResult is the editor, its change and its problem. +type RecurrenceResult struct { + Element *ui.Element + changed bool + problem string +} + +// Changed reports whether the user changed the rule this frame. +func (r RecurrenceResult) Changed() bool { return r.changed } + +// Problem explains why the rule cannot be saved. +func (r RecurrenceResult) Problem() string { return r.problem } + +const recurrenceCustom = 5 + +// RecurrenceEditor edits a repeat rule and when it ends. +func RecurrenceEditor(c *ui.Context, rule *Recurrence, opts RecurrenceEditorOptions) RecurrenceResult { + recurrenceCheck(*rule) + d := Density(c) + k := Tokens(c) + before := recurrenceKey(*rule) + r := RecurrenceResult{} + label := opts.Label + if label == "" { + label = msg(c, "recurrence_editor.label") + } + r.Element = ui.Column(c).Gap(d.Unit() * 3).Role(ui.RoleGroup).Label(label).Disabled(opts.Disabled) + custom := ui.Local(r.Element, "recurrence-custom", func() bool { return rule.Interval > 1 }) + r.Element.Children(func() { + mode := int(rule.Unit) + if *custom && rule.Unit != RepeatNone { + mode = recurrenceCustom + } + modes := []SelectOption[int]{} + for i, key := range []string{"none", "daily", "weekly", "monthly", "yearly", "custom"} { + modes = append(modes, SelectOption[int]{Value: i, Label: msg(c, "recurrence_editor."+key)}) + } + if Select(c, &mode, modes, SelectOptions{Label: msg(c, "recurrence_editor.repeat"), Disabled: opts.Disabled}).Changed() { + *custom = mode == recurrenceCustom + switch { + case *custom: + rule.Unit = max(rule.Unit, RepeatDaily) + rule.Interval = max(rule.Interval, 2) + default: + rule.Unit, rule.Interval = RepeatUnit(mode), 1 + if mode == int(RepeatNone) { + *rule = Recurrence{} + } + } + if rule.Unit == RepeatWeekly && len(rule.Weekdays) == 0 && !opts.Start.IsZero() { + rule.Weekdays = []time.Weekday{opts.Start.Weekday()} + } + } + if rule.Unit == RepeatNone { + return + } + if *custom { + ui.Row(c).Gap(d.Unit() * 2).AlignItems(ui.Center).Children(func() { + ui.Text(c, msg(c, "recurrence_editor.every")) + ui.Box(c).Width(d.ControlHeight() * 4).Children(func() { + n := float64(rule.Interval) + if NumberInput(c, &n, NumberInputOptions{Min: 1, Max: 999, Label: msg(c, "recurrence_editor.interval"), Disabled: opts.Disabled}).Changed() && !math.IsNaN(n) { + rule.Interval = int(n) + } + }) + units := []SelectOption[RepeatUnit]{} + for u := RepeatDaily; u <= RepeatYearly; u++ { + units = append(units, SelectOption[RepeatUnit]{Value: u, Label: msg(c, recurrenceUnitKeys[u])}) + } + Select(c, &rule.Unit, units, SelectOptions{Label: msg(c, "recurrence_editor.unit"), Disabled: opts.Disabled}) + }) + } + if rule.Unit == RepeatWeekly { + first := calendarFirstWeekday(c, opts.WeekStart) + items := []ToggleItem[time.Weekday]{} + for i := range 7 { + wd := time.Weekday((int(first) + i) % 7) + items = append(items, ToggleItem[time.Weekday]{Value: wd, Label: msg(c, fmt.Sprintf("calendar.weekday_%d", wd)), + Name: msg(c, fmt.Sprintf("calendar.weekday_long_%d", wd))}) + } + ToggleGroup(c, &rule.Weekdays, items, ToggleGroupOptions{Multiple: true, AllowEmpty: true, Label: msg(c, "recurrence_editor.on_days"), Disabled: opts.Disabled}) + } + ends := []RadioItem[RepeatEnd]{{Value: RepeatForever, Label: msg(c, "recurrence_editor.forever")}, + {Value: RepeatCount, Label: msg(c, "recurrence_editor.after")}, {Value: RepeatUntil, Label: msg(c, "recurrence_editor.until")}} + ui.Row(c).Gap(d.Unit() * 3).AlignItems(ui.Center).Wrap().Children(func() { + if RadioGroup(c, &rule.End, ends, RadioGroupOptions{Horizontal: true, Label: msg(c, "recurrence_editor.ends"), Disabled: opts.Disabled}).Changed() { + if rule.End == RepeatCount && rule.Count == 0 { + rule.Count = 10 + } + if rule.End == RepeatUntil && rule.Until.IsZero() && !opts.Start.IsZero() { + rule.Until = opts.Start.AddMonths(1) + } + } + switch rule.End { + case RepeatCount: + ui.Box(c).Width(d.ControlHeight() * 4).Children(func() { + n := float64(rule.Count) + if NumberInput(c, &n, NumberInputOptions{Min: 1, Max: 999, Label: msg(c, "recurrence_editor.count"), Disabled: opts.Disabled}).Changed() && !math.IsNaN(n) { + rule.Count = int(n) + } + }) + case RepeatUntil: + DatePicker(c, &rule.Until, DatePickerOptions{Label: msg(c, "recurrence_editor.until_date"), Min: opts.Start, Disabled: opts.Disabled}) + } + }) + r.problem = recurrenceProblem(c, *rule, opts.Start) + ui.Text(c, RecurrenceSummary(c, *rule)).FontSize(FontSize(c, theme.CaptionSize)).TextColor(k.TextMuted).Role(ui.RoleStatus) + datetimeError(c, r.problem) + }) + if after := recurrenceKey(*rule); after != before && !r.Element.IsDisabled() { + slog.Debug("mujica: recurrence_editor change", "rule", after) + r.changed = true + } + return r +} + +var recurrenceUnitKeys = [...]string{"", "recurrence_editor.days", "recurrence_editor.weeks", "recurrence_editor.months", "recurrence_editor.years"} + +func recurrenceKey(r Recurrence) string { return fmt.Sprintf("%v", r) } + +// recurrenceCheck panics on rules no editor can show. +func recurrenceCheck(r Recurrence) { + if r.Unit < RepeatNone || r.Unit > RepeatYearly || r.End < RepeatForever || r.End > RepeatUntil || r.Interval < 0 || r.Count < 0 { + panic(fmt.Sprintf("mujica: Recurrence %+v is out of range", r)) + } + if r.Unit != RepeatNone && r.Interval == 0 { + panic("mujica: Recurrence repeats with Interval 0") + } + datetimeCheckDate("Recurrence Until", r.Until) +} + +// recurrenceProblem explains why a rule cannot be saved. +func recurrenceProblem(c *ui.Context, r Recurrence, start Date) string { + switch { + case r.Unit == RepeatNone: + return "" + case r.Unit == RepeatWeekly && len(r.Weekdays) == 0: + return msg(c, "recurrence_editor.no_days") + case r.End == RepeatCount && r.Count < 1: + return msg(c, "recurrence_editor.bad_count") + case r.End == RepeatUntil && (r.Until.IsZero() || !start.IsZero() && r.Until.Compare(start) < 0): + return msg(c, "recurrence_editor.bad_until") + } + return "" +} + +// RecurrenceSummary describes a rule in the window's language. +func RecurrenceSummary(c *ui.Context, r Recurrence) string { + if r.Unit == RepeatNone { + return msg(c, "recurrence_editor.never") + } + s := fmt.Sprintf(msg(c, "recurrence_editor.every_n"), r.Interval, msg(c, recurrenceUnitKeys[r.Unit])) + if r.Interval == 1 { + s = msg(c, []string{"", "recurrence_editor.daily", "recurrence_editor.weekly", "recurrence_editor.monthly", "recurrence_editor.yearly"}[r.Unit]) + } + if r.Unit == RepeatWeekly && len(r.Weekdays) > 0 { + var days []string + for _, wd := range r.Weekdays { + days = append(days, msg(c, fmt.Sprintf("calendar.weekday_long_%d", wd))) + } + s += fmt.Sprintf(msg(c, "recurrence_editor.on"), strings.Join(days, msg(c, "recurrence_editor.list_sep"))) + } + switch r.End { + case RepeatCount: + s += calendarCount(c, "recurrence_editor.times", r.Count) + case RepeatUntil: + s += fmt.Sprintf(msg(c, "recurrence_editor.until_text"), r.Until) + } + return s +} diff --git a/recurrence_editor_test.go b/recurrence_editor_test.go new file mode 100644 index 0000000..1f93803 --- /dev/null +++ b/recurrence_editor_test.go @@ -0,0 +1,133 @@ +package mujica + +import ( + "slices" + "testing" + "time" + + "github.com/egoist/mygo/ui" +) + +type recurrenceProbe struct { + rule Recurrence + opts RecurrenceEditorOptions + changes int + problem string + summary string + disabled bool +} + +func (p *recurrenceProbe) tester() *ui.Tester { + p.opts.Start = oct(5) + return ui.NewTester(func(c *ui.Context) { + Use(c, Settings{}) + o := p.opts + o.Disabled = p.disabled + r := RecurrenceEditor(c, &p.rule, o) + if r.Changed() { + p.changes++ + } + p.problem = r.Problem() + p.summary = RecurrenceSummary(c, p.rule) + }, 720, 520) +} + +func recurrencePick(t *testing.T, tt *ui.Tester, label string) { + t.Helper() + if err := tt.Click("Repeat"); err != nil { + t.Fatal(err) + } + if err := tt.Click(label); err != nil { + t.Fatal(err) + } +} + +func TestRecurrenceEditorPresets(t *testing.T) { + p := &recurrenceProbe{} + tt := p.tester() + recurrencePick(t, tt, "Weekly") + if p.rule.Unit != RepeatWeekly || p.rule.Interval != 1 || !slices.Equal(p.rule.Weekdays, []time.Weekday{time.Monday}) || p.changes != 1 { + t.Fatalf("weekly preset %+v", p.rule) + } + _ = tt.Click("Wednesday") + if p.summary != "Weekly on Monday, Wednesday" { + t.Fatalf("summary %q", p.summary) + } + for _, c := range []struct { + label string + unit RepeatUnit + }{{"Daily", RepeatDaily}, {"Monthly", RepeatMonthly}, {"Yearly", RepeatYearly}} { + recurrencePick(t, tt, c.label) + if p.rule.Unit != c.unit || p.rule.Interval != 1 { + t.Fatalf("%s gave %+v", c.label, p.rule) + } + } + recurrencePick(t, tt, "Does not repeat") + if p.rule.Unit != RepeatNone || p.summary != "Does not repeat" { + t.Fatalf("none gave %+v", p.rule) + } +} + +func TestRecurrenceEditorCustomAndEnds(t *testing.T) { + p := &recurrenceProbe{rule: Recurrence{Unit: RepeatDaily, Interval: 1}} + tt := p.tester() + recurrencePick(t, tt, "Custom") + if p.rule.Interval != 2 || !tt.HasText("Every") { + t.Fatalf("custom %+v", p.rule) + } + _ = tt.Click("Interval") + tt.Key(0, ui.KeyUp) + _ = tt.Click("After") + if p.rule.Interval != 3 || p.rule.End != RepeatCount || p.rule.Count != 10 || p.summary != "Every 3 days, 10 times" { + t.Fatalf("custom count %+v %q", p.rule, p.summary) + } + _ = tt.Click("On date") + if p.rule.End != RepeatUntil || p.rule.Until != (Date{2026, time.November, 5}) || p.problem != "" { + t.Fatalf("until %+v %q", p.rule, p.problem) + } +} + +func TestRecurrenceEditorProblems(t *testing.T) { + p := &recurrenceProbe{rule: Recurrence{Unit: RepeatWeekly, Interval: 1, Weekdays: []time.Weekday{time.Monday}}} + tt := p.tester() + _ = tt.Click("Monday") + if len(p.rule.Weekdays) != 0 || p.problem != "Choose at least one day." || !tt.HasText("Choose at least one day.") { + t.Fatalf("no-day problem %+v %q", p.rule, p.problem) + } + p.rule = Recurrence{Unit: RepeatDaily, Interval: 1, End: RepeatUntil, Until: Date{2026, time.September, 1}} + tt.Frame() + if p.problem != "The end date must not precede the start." { + t.Fatalf("until problem %q", p.problem) + } + for _, bad := range []Recurrence{{Unit: 9}, {Unit: RepeatDaily}, {Interval: -1}} { + func() { + defer func() { + if recover() == nil { + t.Errorf("%+v: expected panic", bad) + } + }() + q := &recurrenceProbe{rule: bad} + q.tester() + }() + } +} + +func TestRecurrenceEditorDisabled(t *testing.T) { + p := &recurrenceProbe{rule: Recurrence{Unit: RepeatWeekly, Interval: 1, Weekdays: []time.Weekday{time.Monday}}, disabled: true} + tt := p.tester() + _ = tt.Click("Repeat") + _ = tt.Click("Daily") + _ = tt.Click("Friday") + tt.Key(0, ui.KeyTab) + tt.Key(0, ui.KeySpace) + if p.rule.Unit != RepeatWeekly || len(p.rule.Weekdays) != 1 || p.changes != 0 { + t.Fatalf("disabled editor changed: %+v", p.rule) + } +} + +func TestRecurrenceEditorSnapshot(t *testing.T) { + r := Recurrence{Unit: RepeatWeekly, Interval: 2, Weekdays: []time.Weekday{time.Monday, time.Thursday}, End: RepeatCount, Count: 8} + snapshot(t, "recurrence_editor", 640, 280, func(c *ui.Context) { + ui.Column(c).Padding(16).Children(func() { RecurrenceEditor(c, &r, RecurrenceEditorOptions{Start: oct(5)}) }) + }) +} diff --git a/relative_time.go b/relative_time.go new file mode 100644 index 0000000..eb91cfa --- /dev/null +++ b/relative_time.go @@ -0,0 +1,75 @@ +package mujica + +import ( + "fmt" + "time" + + "github.com/egoist/mygo/ui" +) + +// RelativeTimeOptions configure a RelativeTime. +type RelativeTimeOptions struct { + // Location is the tooltip's zone; required. + Location *time.Location + // Now fixes the clock and stops updates. + Now time.Time + Hour12 bool +} + +// RelativeTime shows t as "3 minutes ago", refreshing while shown. +func RelativeTime(c *ui.Context, t time.Time, opts RelativeTimeOptions) *ui.Element { + loc := eventLocation("RelativeTime", opts.Location) + now := opts.Now + if now.IsZero() { + now = c.Now() + c.After(relativeTimeNext(now.Sub(t))) + } + text := RelativeTimeText(c, now.Sub(t)) + w := t.In(loc) + exact := DateOf(w).String() + " " + timeText(c, TimeOfDay{w.Hour(), w.Minute(), 0}, timeConfig{hour12: opts.Hour12}) + " " + w.Format("MST") + return ui.Text(c, text).Label(text + ", " + exact).Tooltip(exact).FontFeatures("tnum") +} + +// RelativeTimeText words d ago (positive) or ahead (negative). +func RelativeTimeText(c *ui.Context, d time.Duration) string { + past := d >= 0 + if !past { + d = -d + } + var key string + var n int + switch { + case d < 45*time.Second: + return msg(c, "relative_time.now") + case d < 45*time.Minute: + key, n = "minutes", max(1, int(d/time.Minute)) + case d < 22*time.Hour: + key, n = "hours", max(1, int(d/time.Hour)) + case d < 26*24*time.Hour: + key, n = "days", max(1, int(d/(24*time.Hour))) + case d < 320*24*time.Hour: + key, n = "months", max(1, int(d/(30*24*time.Hour))) + default: + key, n = "years", max(1, int(d/(365*24*time.Hour))) + } + unit := calendarCount(c, "relative_time."+key, n) + if past { + return fmt.Sprintf(msg(c, "relative_time.ago"), unit) + } + return fmt.Sprintf(msg(c, "relative_time.in"), unit) +} + +// relativeTimeNext is how long until the wording may change. +func relativeTimeNext(d time.Duration) time.Duration { + if d < 0 { + d = -d + } + step := time.Hour + switch { + case d < 2*time.Minute: + step = time.Second + case d < 2*time.Hour: + step = time.Minute + } + return step - d%step +} diff --git a/relative_time_test.go b/relative_time_test.go new file mode 100644 index 0000000..8501255 --- /dev/null +++ b/relative_time_test.go @@ -0,0 +1,83 @@ +package mujica + +import ( + "testing" + "time" + + "github.com/egoist/mygo/ui" +) + +func TestRelativeTimeWording(t *testing.T) { + var en, zh []string + cases := []time.Duration{10 * time.Second, -90 * time.Second, 3 * time.Minute, 5 * time.Hour, -25 * time.Hour, 40 * 24 * time.Hour, 800 * 24 * time.Hour} + for _, loc := range []Locale{EnUS, ZhCN} { + ui.NewTester(func(c *ui.Context) { + Use(c, Settings{Locale: loc}) + var out []string + for _, d := range cases { + out = append(out, RelativeTimeText(c, d)) + } + if loc == EnUS { + en = out + } else { + zh = out + } + }, 10, 10) + } + wantEn := []string{"just now", "in 1 minute", "3 minutes ago", "5 hours ago", "in 1 day", "1 month ago", "2 years ago"} + wantZh := []string{"刚刚", "1 分钟后", "3 分钟前", "5 小时前", "1 天后", "1 个月前", "2 年前"} + for i := range cases { + if en[i] != wantEn[i] || zh[i] != wantZh[i] { + t.Fatalf("%v: %q %q", cases[i], en[i], zh[i]) + } + } +} + +func TestRelativeTimeRefreshFollowsDistance(t *testing.T) { + for _, c := range []struct{ d, next time.Duration }{ + {10*time.Second + 300*time.Millisecond, 700 * time.Millisecond}, + {5*time.Minute + 20*time.Second, 40 * time.Second}, + {3*time.Hour + 15*time.Minute, 45 * time.Minute}, + {-(90 * time.Second), 1 * time.Second}, + } { + if got := relativeTimeNext(c.d); got != c.next { + t.Errorf("%v: next %v, want %v", c.d, got, c.next) + } + } +} + +func TestRelativeTimeShowsExactTimeAndStopsWhenHidden(t *testing.T) { + at := time.Date(2026, time.October, 5, 9, 0, 0, 0, time.UTC) + shown := true + tt := ui.NewTester(func(c *ui.Context) { + Use(c, Settings{}) + if shown { + RelativeTime(c, at, RelativeTimeOptions{Location: calTokyo, Now: at.Add(3 * time.Hour)}) + } + }, 300, 100) + if !tt.HasText("3 hours ago, 2026-10-05 18:00 JST") { + t.Fatalf("texts %v", tt.Texts()) + } + shown = false + tt.Frame() + if tt.HasText("ago") { + t.Fatal("hidden text remains") + } + defer func() { + if recover() == nil { + t.Fatal("expected panic without Location") + } + }() + ui.NewTester(func(c *ui.Context) { Use(c, Settings{}); RelativeTime(c, at, RelativeTimeOptions{}) }, 10, 10) +} + +func TestRelativeTimeSnapshot(t *testing.T) { + at := time.Date(2026, time.October, 5, 9, 0, 0, 0, calTokyo) + snapshot(t, "relative_time", 260, 120, func(c *ui.Context) { + ui.Column(c).Padding(16).Gap(8).Children(func() { + RelativeTime(c, at, RelativeTimeOptions{Location: calTokyo, Now: at.Add(20 * time.Second)}) + RelativeTime(c, at, RelativeTimeOptions{Location: calTokyo, Now: at.Add(-2 * time.Hour)}) + RelativeTime(c, at, RelativeTimeOptions{Location: calTokyo, Now: at.Add(72 * time.Hour)}) + }) + }) +} diff --git a/reminder_picker.go b/reminder_picker.go new file mode 100644 index 0000000..9d7c761 --- /dev/null +++ b/reminder_picker.go @@ -0,0 +1,73 @@ +package mujica + +import ( + "fmt" + "log/slog" + "slices" + "time" + + "github.com/egoist/mygo/ui" +) + +// ReminderPickerOptions configure a ReminderPicker. +type ReminderPickerOptions struct { + // Choices are the lead times offered; empty uses defaults. + Choices []time.Duration + // Max limits how many are set; zero means any. + Max int + Disabled bool + Label string +} + +var reminderDefaults = []time.Duration{0, 5 * time.Minute, 15 * time.Minute, 30 * time.Minute, time.Hour, 24 * time.Hour, 7 * 24 * time.Hour} + +// ReminderPicker toggles reminder lead times, kept in choice order. +func ReminderPicker(c *ui.Context, value *[]time.Duration, opts ReminderPickerOptions) ChoiceResult { + choices := opts.Choices + if len(choices) == 0 { + choices = reminderDefaults + } + for i, d := range choices { + if d < 0 || d%time.Minute != 0 || slices.Contains(choices[:i], d) { + panic(fmt.Sprintf("mujica: ReminderPicker choice %v is negative, sub-minute or repeated", d)) + } + } + for _, d := range *value { + if !slices.Contains(choices, d) { + panic(fmt.Sprintf("mujica: ReminderPicker value %v is not a choice", d)) + } + } + if opts.Max < 0 || opts.Max > 0 && len(*value) > opts.Max { + panic(fmt.Sprintf("mujica: ReminderPicker Max %d is negative or below the value", opts.Max)) + } + full := opts.Max > 0 && len(*value) >= opts.Max + items := make([]ToggleItem[time.Duration], len(choices)) + for i, d := range choices { + items[i] = ToggleItem[time.Duration]{Value: d, Label: ReminderText(c, d), Disabled: full && !slices.Contains(*value, d)} + } + label := opts.Label + if label == "" { + label = msg(c, "reminder_picker.label") + } + r := ToggleGroup(c, value, items, ToggleGroupOptions{Multiple: true, AllowEmpty: true, Vertical: true, Label: label, Disabled: opts.Disabled}) + if r.Changed() { + slices.SortFunc(*value, func(a, b time.Duration) int { return slices.Index(choices, a) - slices.Index(choices, b) }) + slog.Debug("mujica: reminder_picker change", "value", *value) + } + return r +} + +// ReminderText words a lead time, as "15 minutes before". +func ReminderText(c *ui.Context, d time.Duration) string { + switch { + case d == 0: + return msg(c, "reminder_picker.at_start") + case d%(7*24*time.Hour) == 0: + return calendarCount(c, "reminder_picker.weeks", int(d/(7*24*time.Hour))) + case d%(24*time.Hour) == 0: + return calendarCount(c, "reminder_picker.days", int(d/(24*time.Hour))) + case d%time.Hour == 0: + return calendarCount(c, "reminder_picker.hours", int(d/time.Hour)) + } + return calendarCount(c, "reminder_picker.minutes", int(d/time.Minute)) +} diff --git a/reminder_picker_test.go b/reminder_picker_test.go new file mode 100644 index 0000000..69f1abf --- /dev/null +++ b/reminder_picker_test.go @@ -0,0 +1,82 @@ +package mujica + +import ( + "slices" + "testing" + "time" + + "github.com/egoist/mygo/ui" +) + +func reminderTester(v *[]time.Duration, opts ReminderPickerOptions, n *int) *ui.Tester { + return ui.NewTester(func(c *ui.Context) { + Use(c, Settings{}) + if ReminderPicker(c, v, opts).Changed() { + *n++ + } + }, 640, 200) +} + +func TestReminderPickerTogglesInChoiceOrder(t *testing.T) { + v, n := []time.Duration{}, 0 + tt := reminderTester(&v, ReminderPickerOptions{}, &n) + _ = tt.Click("1 day before") + _ = tt.Click("15 minutes before") + _ = tt.Click("At start") + if !slices.Equal(v, []time.Duration{0, 15 * time.Minute, 24 * time.Hour}) || n != 3 { + t.Fatalf("value %v (%d)", v, n) + } + _ = tt.Click("15 minutes before") + if !slices.Equal(v, []time.Duration{0, 24 * time.Hour}) { + t.Fatalf("untoggle left %v", v) + } +} + +func TestReminderPickerMaxKeyboardDisabled(t *testing.T) { + v, n := []time.Duration{time.Hour}, 0 + tt := reminderTester(&v, ReminderPickerOptions{Max: 2}, &n) + tt.Key(0, ui.KeyTab) + tt.Key(0, ui.KeySpace) + _ = tt.Click("1 week before") + _ = tt.Click("5 minutes before") + if !slices.Equal(v, []time.Duration{0, time.Hour}) { + t.Fatalf("Max ignored: %v", v) + } + d := []time.Duration{} + tt = reminderTester(&d, ReminderPickerOptions{Disabled: true}, &n) + _ = tt.Click("At start") + tt.Key(0, ui.KeyTab) + tt.Key(0, ui.KeySpace) + if len(d) != 0 { + t.Fatal("disabled picker changed") + } +} + +func TestReminderTextAndInvalid(t *testing.T) { + var got []string + ui.NewTester(func(c *ui.Context) { + Use(c, Settings{Locale: ZhCN}) + got = []string{ReminderText(c, time.Minute), ReminderText(c, 2*time.Hour), ReminderText(c, 14*24*time.Hour)} + }, 10, 10) + if !slices.Equal(got, []string{"提前 1 分钟", "提前 2 小时", "提前 2 周"}) { + t.Fatalf("texts %q", got) + } + for _, opts := range []ReminderPickerOptions{{Choices: []time.Duration{30 * time.Second}}, {Choices: []time.Duration{0, 0}}, {Max: -1}} { + func() { + defer func() { + if recover() == nil { + t.Errorf("%+v: expected panic", opts) + } + }() + v := []time.Duration{} + reminderTester(&v, opts, new(int)) + }() + } +} + +func TestReminderPickerSnapshot(t *testing.T) { + v := []time.Duration{15 * time.Minute, 24 * time.Hour} + snapshot(t, "reminder_picker", 300, 330, func(c *ui.Context) { + ui.Column(c).Padding(16).Children(func() { ReminderPicker(c, &v, ReminderPickerOptions{}) }) + }) +} diff --git a/stopwatch.go b/stopwatch.go new file mode 100644 index 0000000..9fc6e24 --- /dev/null +++ b/stopwatch.go @@ -0,0 +1,124 @@ +package mujica + +import ( + "fmt" + "log/slog" + "time" + + "github.com/egoist/mygo/ui" + + "mujicaui/internal" + "mujicaui/theme" +) + +// StopwatchState is the caller's run and laps. +type StopwatchState struct { + running bool + since time.Time + base time.Duration + // Laps are the elapsed times at each lap, oldest first. + Laps []time.Duration +} + +// Elapsed returns the time measured at now. +func (s *StopwatchState) Elapsed(now time.Time) time.Duration { + if s.running { + return s.base + now.Sub(s.since) + } + return s.base +} + +// Running reports whether the stopwatch is counting. +func (s *StopwatchState) Running() bool { return s.running } + +// StopwatchOptions configure a Stopwatch. +type StopwatchOptions struct { + // Now fixes the clock and stops ticking. + Now time.Time + Disabled bool + Label string +} + +// Stopwatch measures time with laps, ticking while running and shown. +func Stopwatch(c *ui.Context, s *StopwatchState, opts StopwatchOptions) ChoiceResult { + k := Tokens(c) + d := Density(c) + now := opts.Now + live := now.IsZero() + if live { + now = c.Now() + } + label := opts.Label + if label == "" { + label = msg(c, "stopwatch.label") + } + changed := false + col := ui.Column(c).Gap(d.Unit() * 3).Role(ui.RoleGroup).Label(label).Disabled(opts.Disabled) + act := func(what string, fn func()) { + if col.IsDisabled() { + return + } + fn() + changed = true + slog.Debug("mujica: stopwatch "+what, "elapsed", s.Elapsed(now)) + } + col.Children(func() { + el := s.Elapsed(now) + ui.Text(c, StopwatchText(el)).Font(theme.MonoFont).FontSize(FontSize(c, theme.H1Size)).TextColor(k.Text).FontFeatures("tnum"). + Label(label + ", " + StopwatchText(el)) + ui.Row(c).Gap(d.Unit() * 2).Children(func() { + start, variant := "stopwatch.start", Primary + if s.running { + start, variant = "stopwatch.pause", Secondary + } else if el > 0 { + start = "stopwatch.resume" + } + if Button(c, msg(c, start), ButtonOptions{Variant: variant}).Clicked() { + act("toggle", func() { + if s.running { + s.base, s.running = s.Elapsed(now), false + } else { + s.since, s.running = now, true + } + }) + } + if Button(c, msg(c, "stopwatch.lap"), ButtonOptions{Variant: Secondary, Disabled: !s.running}).Clicked() { + act("lap", func() { s.Laps = append(s.Laps, s.Elapsed(now)) }) + } + if Button(c, msg(c, "stopwatch.reset"), ButtonOptions{Variant: Ghost, Disabled: s.running || el == 0 && len(s.Laps) == 0}).Clicked() { + act("reset", func() { *s = StopwatchState{} }) + } + }) + if len(s.Laps) > 0 { + ui.Column(c).Role(ui.RoleList).Children(func() { + for i := len(s.Laps) - 1; i >= 0; i-- { + split := s.Laps[i] + if i > 0 { + split -= s.Laps[i-1] + } + row := ui.Row(c).MinHeight(d.ControlHeight()).AlignItems(ui.Center).Gap(d.Unit() * 4).Role(ui.RoleListItem) + row.DrawOver(func(p *ui.Painter, r ui.Rect) { internal.Rule(p, r.X, r.X+r.W, r.Y+r.H-1, k.Border) }) + row.Children(func() { + ui.Text(c, fmt.Sprintf(msg(c, "stopwatch.lap_n"), i+1)).Width(d.ControlHeight() * 2).TextColor(k.TextMuted) + ui.Text(c, StopwatchText(split)).Font(theme.MonoFont).FontFeatures("tnum").TextColor(k.Text).Grow(1) + ui.Text(c, StopwatchText(s.Laps[i])).Font(theme.MonoFont).FontFeatures("tnum").TextColor(k.TextMuted) + }) + } + }) + } + }) + if s.running && live { + c.After(100*time.Millisecond - s.Elapsed(now)%(100*time.Millisecond)) + } + return ChoiceResult{Element: col, changed: changed} +} + +// StopwatchText formats elapsed time as 01:02.3, with hours when needed. +func StopwatchText(d time.Duration) string { + t := int(d / (100 * time.Millisecond)) + h, m, s, tenth := t/36000, t%36000/600, t%600/10, t%10 + if h > 0 { + return fmt.Sprintf("%d:%02d:%02d.%d", h, m, s, tenth) + } + return fmt.Sprintf("%02d:%02d.%d", m, s, tenth) +} diff --git a/stopwatch_test.go b/stopwatch_test.go new file mode 100644 index 0000000..8709593 --- /dev/null +++ b/stopwatch_test.go @@ -0,0 +1,63 @@ +package mujica + +import ( + "testing" + "time" + + "github.com/egoist/mygo/ui" +) + +func TestStopwatchStartLapPauseReset(t *testing.T) { + var s StopwatchState + now := time.Date(2026, time.October, 5, 9, 0, 0, 0, time.UTC) + n, disabled := 0, false + tt := ui.NewTester(func(c *ui.Context) { + Use(c, Settings{}) + if Stopwatch(c, &s, StopwatchOptions{Now: now, Disabled: disabled}).Changed() { + n++ + } + }, 500, 500) + _ = tt.Click("Start") + now = now.Add(12*time.Second + 340*time.Millisecond) + tt.Frame() + if !tt.HasText("00:12.3") || !s.Running() { + t.Fatalf("running %v", tt.Texts()) + } + _ = tt.Click("Lap") + now = now.Add(5 * time.Second) + _ = tt.Click("Lap") + if len(s.Laps) != 2 || !tt.HasText("Lap 2") || !tt.HasText("00:05.0") { + t.Fatalf("laps %v %v", s.Laps, tt.Texts()) + } + _ = tt.Click("Pause") + now = now.Add(time.Minute) + tt.Frame() + if s.Running() || s.Elapsed(now) != 17340*time.Millisecond || !tt.HasText("Resume") { + t.Fatalf("paused at %v", s.Elapsed(now)) + } + tt.Key(0, ui.KeyEnter) + now = now.Add(time.Hour) + tt.Frame() + if !tt.HasText("1:00:17.3") { + t.Fatalf("resumed by keyboard: %v", tt.Texts()) + } + _ = tt.Click("Pause") + _ = tt.Click("Reset") + if s.Elapsed(now) != 0 || len(s.Laps) != 0 || n != 7 { + t.Fatalf("reset %v laps %v changes %d", s.Elapsed(now), s.Laps, n) + } + disabled = true + tt.Frame() + _ = tt.Click("Start") + if s.Running() { + t.Fatal("disabled stopwatch started") + } +} + +func TestStopwatchSnapshot(t *testing.T) { + now := time.Date(2026, time.October, 5, 9, 0, 0, 0, time.UTC) + s := StopwatchState{base: 83*time.Second + 400*time.Millisecond, Laps: []time.Duration{31 * time.Second, 62*time.Second + 500*time.Millisecond}} + snapshot(t, "stopwatch", 420, 260, func(c *ui.Context) { + ui.Column(c).Padding(16).Children(func() { Stopwatch(c, &s, StopwatchOptions{Now: now}) }) + }) +} diff --git a/testdata/snapshots/darwin/agenda_view-dark.png b/testdata/snapshots/darwin/agenda_view-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..4cba669035f3337723f2995dbaf2e5a3242a9762 GIT binary patch literal 26814 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

kZTj4^pmyKP(s=2rp2F{4P!3N zu6rDa4)@+3J1dQJeM!1*w-B$sD>_;vGEd1TecFKjVw+0J)!wO;ZD(lZMmdh$UHC7C zI}fk7)L@q2tw8%y$gE{!Mb%h5)trL^5FQp5--qcqiyhi3uPgKO zU0bXZjjKcsR}QE#p%)hyQ(t#)iGe=LR=7*^V_9Qk7eZP2qSr2x^64e=BP2}8Zpf7cwv^! zp21OVcBjpDQs!V>#?O}aSgK}HN6)u?BT>ilt09Ye<;+!mOH8vc?D89Lg?GHz{Xdyn zzvp;(y(cGUB~?n>+bH2IRi1TgzIe6jt;WQJ#)XcJd35W{*#^O}^?h_}nxOZ6o=W|< z4K%)OqhuqeXF2{A&o9$3`6iN+S5h9AakLthr46}3Q7DVs>z&4s4e1E$YUiM9^Q0bo zf!5rnW0&TMp)SbsU(T6yl&NY7jHG2G4Uoq<+V5qyfGmCrt*b=F@xU*$F@)Q~~PxGH#OIhbKa;+C; z+PXRge!00nRwV}c?T+hNKUp%8fj&fIOGzTisB7o;0DccgvGcoA6JCYjHivfIl)(}D zTCSh@6`cMma7Ep~QZ^{W2RSvN1&sO>Ki^#=Q~${0`KB^b^2wR}aLT8T%*xQ1B`z_Y zH5bJAejp%vc-)<2itpB}loZ#|sj|4(e_EO|8)7=Nc^uhe6i2+8i>)>le6tJVd*Ro_ zDV9)LF6_HULu2!npW%D`)KvQ5!1(#`;|_D(mf*R8H;tuLHx>#tT|p(~8*%BVh!3p2 zeg3URdUiYeJ|j$wJ*i|oI1fq7b>-g6-68XoM{SRHsL$4bJ~y;~g@;X6#D}R3xJ0a^ z%Y%3H7ABurW&3ovgQtid1a;W+Y=TopehAP|le`e9^x2ouU}58xcIB09DLHIhFPv(l zUUo@dx)d<~l1W2yu?+7H(LEXu#D2gqF+sFZqG(dR$aXPN3Jon;5No!xtt7;`c>)#* zsatIhJikJtg@p6ay|?e9q%2X=uzrca%Jt=evF_`Wo{d`G-|bgtoPI2&mDjt~5?3v( zwa!3L<;oF?0LS8Ct+lqr)#aXeQ!Uy%b`39J|LvMXYh>A_fcZor;cqgd@Vo_hc+O0w zg>vGgw22Anr?*dZy0Gy7?w|SI`&wE~?zr-0X#EuC-_+DUvB&2B0U?F?&+HlcAI5X% z%X=MlBT4}Rfu!k?t_w`@R0GlB6#qW{H5Opt2FJbGg?|U819Xos6h-@Ho(&6&Hw**N zcVkj~1O5B-pKFKcUN?$?5E?wd-1LOU&HF?H_*Q+=c>g~BH5MQw@9pPJc>du@7zW5K XV(c{S;k&ngE(K);b@^)9*YExVwgLTV literal 0 HcmV?d00001 diff --git a/testdata/snapshots/darwin/agenda_view-light.png b/testdata/snapshots/darwin/agenda_view-light.png new file mode 100644 index 0000000000000000000000000000000000000000..6d5ab809b467860ec48e4c25760e6d71ed756097 GIT binary patch literal 25698 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 literal 0 HcmV?d00001 diff --git a/testdata/snapshots/darwin/attendee_list-dark.png b/testdata/snapshots/darwin/attendee_list-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..6f044e5fac73cf02c5ea5f5744bef18afcfc8533 GIT binary patch literal 30519 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 U2geo10|O6|l~R(d6gLU|A0agEasU7T literal 0 HcmV?d00001 diff --git a/testdata/snapshots/darwin/attendee_list-light.png b/testdata/snapshots/darwin/attendee_list-light.png new file mode 100644 index 0000000000000000000000000000000000000000..ff96bc26614abe59d55abbe94803882f63f71787 GIT binary patch literal 29369 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 literal 0 HcmV?d00001 diff --git a/testdata/snapshots/darwin/availability_picker-dark.png b/testdata/snapshots/darwin/availability_picker-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..2e92e34212cfdee58695acd4ce668d53f9b559d0 GIT binary patch literal 7875 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 Pe~N?1D1(coj9>j5aWb9z literal 0 HcmV?d00001 diff --git a/testdata/snapshots/darwin/calendar_day_view-dark.png b/testdata/snapshots/darwin/calendar_day_view-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..e3c891e5db6beec6322b9eddb4f72a717a74ee49 GIT binary patch literal 32359 zcmeFYWmH^C*Dl%tg1bX-cXxLP?hxE1xH}}cyK8WF8UjH=aCZw9oW|XuPw)5L@BZ$% z_s{p^+%wJ@<8;+1YOQ9~s+u+D^UOI%b(E^IED9naA^-qD`6wr)4gf&00RYej@KBID zle18@06-wiM=5bl@7$AI1R>31@K8Y(r(hr3oiGKt8lC>u9a7tS@LO;?3y zmeXgNl9uz-R8936ilT|^8gr-IEb#Go7N?i%&c8xcOANC6X~~F z$D_QzU5~tSdX{K-4VjoRz1T-lYiii6fLB@^i{{`{un;W06^t^VuIi-8}MXzCO|7^kPDsw~MWfNak<0({k15tC$#mhniy@3vV5j&}e5mdfUN1P~#I?UA++jIU}Rw3D~d2 z{;^}#_CAuCuJO?QcMH8JHT6l4-?RU4E`2BgL^L2)z{t$v;N)QRa`4f+uF0Tg*99v8 zAZEbc#s)dR{bFEjsYsaYr&DZc*h&K_Q6mZfS5~ULq^wzYJUhE%V2e>-e>IX_Kubfz zZ9ilvB7q7$+;M5ui!`2CR7>|Ep3OZ*j%v1pd(5m=ijm$$N6N{SnEmXavheXSOk{(S zHDA!trb5O2r4>EYpCJ$o>W6k0h->hu((!pO8=ptf`i;%DqI!^YlQU?;ogq!YsrPEH z$DZs??6%~@zJ|!bA+i?iBvI$;1_LtM7x$>$-%oEosHdUHg98kYG#3a3Y^<$8 z0j6iwdAUzR9^dulH3kAKL`S*`vfcwC^%}Rd^#)1rCG=K*|0F$m;su_GY^!_~F(Nsm zV}M66BrNbgdwt%Heg32oa&WNQJ*%p--pZe?cy?5uttj)9lXJs){0!G@;4f0(y%MLc zy-xuzVef$*C-X}Akct~YIc32ifL}Ub#{R>ZjvhNY88btQ0t2=&HLZQ*V}z2@vq7hS zpWn%pPW}2Xuvww60lY-M0QvMO+(CU!P<2NPuA?X)+=F+%P{5hvKIJdi1@lq=3w%al z6Sk);f*6&=YNR_Pz-q6ytE>G94geR|O2|lZzi)^b7Zo-{**<_8He};=78&qOy)v(M zjDv$|dr!x#F%v#`+GZZrClE6#)HIcX~uOaQ$`F~CuYsq4h_FVE7EwuhO;P#?xrXhDexkOaab?z`q|=zxAO%8 zLlOg7*PlTdBvuC0$UT%nqEjvN&1jr;LKE`sF5EK{3#F3fYLpSQ)F(kNe`K`xfx8+J zgK@Vfe*mYeT_9U+`N2FSm1cFG+JtQe26VyR@jo9C5wDy!It__1;)=jh_P9rAM~?f& zDdkh|AG|$DQ|Nk{!SyqTdPfcr38nbv=FM$vC>N^Q*Dx1|_`L%-dwFbK5?<&5O7MT)MI9ckA<+W8S%b#>vR76q={38}9Av)v+;A zjG=b|zq8fG@aTre-1uB&W#!We%-=oV5mxWXaCC48 z(0h9I_+WN?bo34&8L`X~2fwf|vwi&t1l|@fh(141R&KjD5`63R%{qM6diL5rJEZ#Z^z9TgS41JaTq!RV6 zJ2{Zm5XD0aASVA=z!d9v@zf8Zit?quS652b+tC23T3SY(Caob|aWysecPY78F6C)y z?JSeq9zh3pK)UGs9`Dy*1IJXD^wU9#CSTg}>v*DzeCjvtS6cCUR1;0iN4C)uW*l8z zPhNtHAPXWD8b8~Xl2f@Yq`ZXS4m8um4%U=R{e}cGLZ;$i-LgkI?yIwrdd22LP)3UR z`AU2KM7p$EYJ*2wuA}SM;Z;#!SY0R6IXX_%neo+RCb)JYDLL?WZx0%gwOM3cZ z=5m04;Bzb}MO%t_epY?6#gZ2wCMkL9zWwff{7csESgnJ@nIlWF3@R@>`xP-Su(I-# zf8UQoCc1)~eU)&h5bQlYQWLo&&q9eSVFE$?Pk?PvplbKz778~lY*Gpq}9ll1&lL}Z^luAmsr5J@16U_8&XUQWLygGQY zaE&^RpQRs)-ZwKaR+lLk1kt{BXGA=I?aKK`g_)*)2<+Y{-sl4B>gzZ; zSeiOmUNRkoslrFcjLFN7)z&f*66S0K(b2#jR*1-SeU)Q1+Q;H)%+AhMkRO!}K)$f; zO!S|hSm5_O5C>oOE^6Z*FEUjhaCg%CGajKLB1RkS;b>}Wn|__Pyr#?u2VSq1!$dGg z8Q3lBgD<{1PzDmo#G>#K`BZ<`HTMTKyvq{eus~q(Y*oE&(6wdT)C;Cu{ zy%8?BEVSD{Y+@EdT2Xf)-Gkxe&5d@E(~n7h_oSlkRDpvv(tt0ODMR{tH_!kWrHdT~ z2BFExPq;wGh3wj-v88ta%9wT{c%qM1z>v0p=WSiGcZ)ubOz1Fec)wF7}}W3o=69_ zwTY{VKXt)vBW*o4TUh8?C$pZec%49~q_PC5NH;DcDXBNLpz-SLF(&Zi4>!@%$ycQu zFNM(`KAqvGf~bF_J62oIk@DNwsN8Lz4DA)m$??a>72^UrWsB$pAT0lS7IMg~uZDeU zy|^@Ak}!uZSXU%r`{^+xV&xevpU;&EgWQ}yAyS$g0*q*+!k^kdk6q*WFlsvlg5Pv< z*$CXF-=hM^M0*amifOH<%X;d;AsiPixt+to zHjVQNn^w>>Q@*W1y(mk1jMYdN+Lt66boq4oeXg_=hYB-lz^sU_!+eRnF{0&Qc)!+< z1Of(5jvSLy8g$r`xmfuwqQ?*{(KowGmMhs)=(FLf%G~p~?S9iRH$#gp;1hiQ$P%2` zhc^M*mb&mpVQ<{7j9>S0_8d;8RdJij|3UE@_2~bWWF7^FR$y;y`yTM^^t7L(F+Fq& z*bMCUcuq)vR6~cEdQwHOX5_?jyVBH39Z2JNGat6Nia;Cq4j1KjP=5t+z;~d#F4605 zR?o3SimDiRB+fUw8c+bEqYT=$E54vnCH_|X;S+k!aySgqcSoB{qdNLQ5oZ<_90ajv z*Pw52xwGe1lLfqaiZo~*EgoJTBmRk6h8ljiPqhFryC%cJz)J7H$kwOHm?vKn&pZj5 zos5IQ!En1G$_BA?8-&G~nU*%747#h2wB_QC_40SX{Ixf6{J=q*f**cDvs-Ss*$fX+ zU}p8qT9eJ2;zw&3ad&sFn3ypD00R8#PE>~7$*zy`qhBRms4z!nOwj>?uhRbZaXn@@HY;7MO08V(cClVi2xC<-(cpIqqZ=;{HQ??D9;laanZ%}%j3;*`O zc$ct5r)(L($lQ+}XE0?)mNIhZsXL&irw0r8R@Gtk91nf;xoTF8FA5foP>v!AV)ED- zsZlW}8gm)pQ+v+4C^xt8PG!Vs*$|Z<8Ym#(``KCFSQv}k+>AvoyujaHztR2tM>KFy zNA^`X?!z&^$j|5Py$^6`dHuwxn_5~P6W@QD5XOZU1Tdt1rWGiJFiT`{425;|pSWe& z{-BLcAG_HlcyO71>uI|eIB8e=YhlqCb`231+J|>4G0RDeKTPg+4iUO~b8xdVn*qYl8At1Cpa zKbsluz4_tcgl8y!`k(;H{dt4w4Z%gfitZucH3^?zQC7vlPiNw)DrWGKrKInP6e=-; z5j3Ick(f*5_tb&_LDK%DT;Vv2`66EeSm)bHPTnP zqoXRPKn>&g@(iOM7KjeM+seZEgBE6|4^O1f1HdH^M~5f+mL?-QpG;L$NVEHG9?~e~koVP2g_^^3^@Gm?wqdyQk_kM-XC$>*!sQ!_a?P%`s zv3zcRLCZM^uL^Eq{r25D6qPLvH#cvu#EX?iOKV$Pgv7mE>3@465-FQT=hCoJzn81iTC+Z|QyG19_Knh!#3#scs8oIAP z2M5bItyxv@&!08EsR%~rD|d%lYjjMHWz^^7=<71=C!FEC*UjjP&0 z54s$TRNE@pd2Tp3`{ViB$HGlzWsY{^8(6eca#q07_vTThVFXc9n9+4q4N3}}CnQbx zq*3pF28E-bAfcRlUN_fsibyfBhFxOVNmYiu&WBw$?E4gma5(FC)Sm2 zYy>f(;yMP3hUFwTyq&hhmX%q}C^+9{KY#=wuqLlCp!1E6;U~1?*P_%f!>|Ssf(1g| z&p}$u~ZZ{MF{~qMP-Oy8l{Pc5U0us->nG5sQB~;ZP z5DTXtf`k!__u37lg&fXKxs&ms|Fl!TM8>0rK!UZQ?b+fX%=b|5jO1AopQ;735}B|O z{cdO3rPqB`RBXd%OTGxof@I&N^@Rb5!g+j8sX!Znbb13-@lrw- ztUKBbeh{5+TlDxE#y(ek>668J@E6Hb?sHQ>BQ*uaK%%3yl)(UbZY^ZCm6i78T<2Y{ zbKM?FE2Y4|qzn~Ro8_hh)~iEz!hC(-7ktW;kXN!1=6Bw54J|D%*9V`sDaCGMRW%#H zx(4?%@Xt$DW5a=dQ=2m)>8ZFG=>e9(NBmm;RWCm3fM7Cx^Sf?8+HQl|2ThQ$6_vjB zzJ){+6?5ncBZII^`)515>?}g0uwRf!MB&$gm4%3aKi7vo;K{`g)xpX3Y@(LgF) zv~n&Rs){!oK`a`nLZ}$ui>NZh*$*G2DJO4D34t26;D{L+_j@gCYLchJUR+o}BQmM0 zt@ROPrWCoXp&G^Waxc%SbO~~s3+;F7&%iw%i0OnlnW6JzEiKONAyY&|A`LA2=$BWaa+Mr!4)VvxYn>fve|+SQy1LdHWQ9*r zIf1-$vrPqc@##s0;(AX3#KaTB)YrO9i%)Tl5bojPUg#Q%Et#`L7I@t%wugHbZ?=L- z8rf~XPS?`Z^z@`qcUtG3UP@8)2ox{erI4JJqf)Oo5NFko@Nw&{u=NXEC+l{(1?9V^ zZ-GW|r~`jJ^SHxCOm1w7wDU($c`l^H0tBvt6RFAS#g zz~O#S?LGff7z|ECJzF)~nCf>NrUQv7JrwbaV-3aO$E_PkEI07@FHcwOA*Ftg)+Ox8 z_kws4RX}|;&2JUMD=lw$LZcBy!6&r*kVF#%3WbdN_8t5d>+~qvXA@NT>`cDV`uG|t zDdpAf!1K4B9BC;8I(v$tOVMF>`=|9-87khTtTjx7%mZY`h8rNBohqGw`t|mot%sZ< zy6r=?x*jQ(pY_?I{!E4Hbe}&nprFJ-)J!9|50x|$;xrJE1})|HUGKv}9)9reUQbjL zBGGyaAsC-3M5rh#9U+bBqOhP zb5#4ltl@oqN7zW^&yxR0#|Un50ylckAd(PrIJl|;;$)=NZVoRsj(N`#&Bs`bd4lGL zx1hd$QKaGJZL2Ztd7Zbdv6$?g-2d}d%WAxrlYJwuhAp00b(B4@HIuyR+T%mPcXf4t zW{{}JEz;J1fEhDlVj1-v#c{Y+gNNH5Vp{+k9Htz$ZcZ$x=(MN}|1uK1YS&HlZ_5uGepz49C z{aOwCfr1=PTvS0N{dE&Flq@v?0s|7{Y4Qs* zi%j(oR6e`okS&7Pvv3!!#|6o@%83<67Ku3xW~&ny4i0tk#uFsi4wF9bc_bdOXliZU z&uDGEik1hR(+#C-X=_7b-b78|KQfY%0VMTXr$5k=A2qeKJV`zmI3E$|sEMnn;% z_AK!o%o|xS(&nbpuyFaon_J2%TF;!q_XVdF3|Bu+#~Pol;Dh?kZy3UlbD(^}fgpwg z0ctOq$=|oDMFDuDtzPqy87R$+9rN2 zA*mvzm_i^2-|I42<#^Z!yoxr8fTya_Jy-c+25RW!{hlrPWhINqXZ|gPWP7=(y**q< zU%{C~F2V_GeO^{yP?(ft$5K+4-Kw^vUbcZ>7ZoinPG{rGs`>NX`HIM_Me3X(d%}p2 z>tW2RU+Yvs2J68;a`644sfEQxFgqtxf=J#}gImk9vPTrOhqX1_1T?UBu=$*9SD%$c z87GT&ZqR9Cq@YlpdmJxc`t+yE!eDuMJqhj=-VRY#f|MN7IM6Vvtj6{ zKPFCZk;qT9$2t}mMZw-6Y2>K$>{2UgZ*8R{%+RvCWMXj$Sv5?x% z60yF($o;#%iXleyX?^`dIYtxe%uh@kB(greyi0hlTCM3h#@DvQD^+iNJDRLYcLO>L zAOt?$S}Jf80y{ext;ZOxg@o^)w@LS;ykZA$(&}00nX4a;F4+0u{vP|wJQ@{w=<2c8 zvI9N6K#Y%K`;Vs1*&SDb!E9MtTH5xmZu=iv^-Jf%?)}DwZhwv`Bz^U)WWqaJ7?b37 zXG?kbkJ5q{#ykX0!@b%fGx43@!3~-4b6tg^Ul|XaUhW<2Dd%%ty2{ErtUtEQ&krE& zFTQBs9~k55v9wxQ#j00p=J0k?XT+${n6E#I?jHL3m?R%(b(W(N2_0Q(gIe_XQT{Vg zE_6AdM-QB2;U~_5nu`ZW27C2*3FOW{N5WiPfi1zs!yO^9wfEl6TwZ4g6f3n`$~!!! zfQLx#E^wM1j6qSx*m|P0%rUjHnX=#d{KDqQMsWfdk=-?lD+J1=mqo6W(`ck_d2my;F{y{NF!_IXnH`l=xB zt>1jh`Qeav)9~Skk&#yjlYXO2{-B@w3ajYJnn%M$G4Vfo03D*~zpZ&0rQu2y9gl}c z%$iQ=QdV-K_|aBAngt)3KANH&PL2vQ4onbtmz6-uUPvcz_KrM+-ODmlX2eYbo_x1e zdSGr4QaoewdBmWo{wLR?_p?1GYj%qIx1>Xtq{4esr46s9%*^=h4vw=X3S&vxNAnF* zq&7t|+fYZC>$sd)9wM29J6tYV>@J*_$$SA~6lmi-yw*IOQUO*?aSHTgl*kzPZ7v0F zVs`qI?5aT)Yi11=oU6~zey)?})6HcnMvs9(1<3yk0nN6QY+z`pn#Ee;7kHm#Hzh31 zlzo+Vo#y->6flDZ)#@0DG&t3FV%ceE82dUtceJ#$BRyJ}u7g}fZu@txQ2#Swdf3Do z+_CVNPUL1E$-w-zVhG_?q@}4Dy*yv}&cA()$*5OcJ5>`D__2G}1f=2i7;1HW9*iqC zHxIyrv%Z&db)DtJ(I>tO27y2VLFNlv=6jY2W#zBnJ{86=bf1;BvkjmdxEC#4c4*h` zF!8_2zL(qv=55WC@y@kh^m=sB@TsNUL2L9&ZtfHsY3((yPqbmP-*)fpGi2;4%Au;D zhsv7`zi7ir`mqtZ8jDM%xdM_%!G=OQWQoBN8nOv5rZP8<5?VO&?#wV z7nX3qt9HyM_@siAu2;|%Q;vs~PUQFR-&OexHkV6q`5_W)wqKm{5P3xXkII)kk`W-o zCLB46Ed5@eqYZ_J32~G)HIoST@0N-K2Yy=eaP!skQgNCuUvW@VyIUsJp%Hniadr0I z&FiY4ut#v|SZwoKLUl3@(os48Gu_}1NA?c$Uv<_$5fO=})-dI1AcGb*LN*kgo+jmK zBXD8Q-tIgxsHs7sQ1u`zze$#aNCLyj{&zeRg*~bqzhbx8Y#mfHGVdOT-7f{<3zmL)(+&=PvhOrFxzG)tnwyQoGE- z{$*B^jO_j&+o|K1W5SIY=%`HJ5&%E{1AG6?jzVzDHdx@WPNJ=|+Q##36=Kb&8U?1p?tG@t+E(-qvo`&~Gqo5R zj!z=~e=6x;H`XTvo1p)Ls?i7~JB{yiH= zYT=)@KG)H$Wo>h4TVl=0&3UQtM#-P z-*ox&&3d@}EHlpU-0`z*pgKoZUFfg#An%8l^Vi2J3>a~AaKtnL%HGlSZNCDmJu4$~ zz;oVfvH2Tw9ZCkQ@SE5L{SwyXUflD>>EX-%Lsc4MwqpJ6+b{V+TS>=XT`B4ztfr&2gA`lEsOQ;oVzV;SRBYKMr|-E3 z+c&|OD;w|mBqO8Z{)5%v#mz&*YWz3FN9d3c=nUaElZ$buF5G6H{ghn~Zf+dy81(H{ zEk+z_kB1m@$d}W!1qw37b2FLsgv^5fHMGt*OY7Sag zB5fYcb`*quH-*nVPjw3LNpdvzotOJ-gEQVp+O>}uiv+QD5p@2>vwDO`4*xLM7SZTxgpGcz)qTBG~3;tIRv zP%5#8=U*KilTj9?u@wwh4bLb8kzh`>AqIVQ@|38d)eE1HXNK+gQ@H*_0A5`tKhM*edi`uUs&0|D*Cg{iiAX(t z5B+1#J4+A3I2!D9(T9h*=7T4Q;9RB*y&Tt1I0)hj8(ubg6P}(}_p5mdbOXkS*DQw& zJ^ya*3%-vzns(#c0W*smAI9g`3{q3Ek6Su)h3dM$^R(zWge_nqhs}Z9dq4jTGcDi6 zXIaHi$bY#?1-#JG(3Z~+t+5LW6Mx54*Lh#{H~#(`h}AbZsURkmY)}F7AEW=D?o<7r zFd$Az&q`xPV#RO1_#N<0u1+RDr<>Iv65>-gD~)6(MO5m0=8(kbLy2$dGKFd}V!x?? zba^L z@_&OzASb5^4NXMHl#r17zZd@<83cwTx_jsX=|@=AWg!6oV@B&Fsz*tp6=G#=bMfmH zFsnG#xV@xq#5mnsh@|$G5%O|f3Ki#oE*w({#2Uwt#eDZ(Ht zQY9`As?eHNrh9PUXENubhZ!(<;!T8q<>_W+y$lxv;UR#Vw(4zc5;N&6Uqz>WlL#eZ z0ncrvqw>2wm}KtwmE-Al@HD)x?Hn&h2A6R0Zg@=ph^mk(yo2ZIZ z6(eJEN{Zd_5u~DI96PVP!*Jmv;-;-`byyM77m^)CYwht5crq|lq0=<{wB;%Q8ID}- z-%C)FQ@~DMW#g$q+pzPU7UjFyeT?xU?NEr0abL$U$e6pT06Lj8Kh6>U2cvJ#K&<+)zKm9i zsQ{$Jr}Tx+6$Sm52ck&wW(O=lTu-ILA zE4*}c;kfEo-?bsGRvsrQhK>S}?wU$cVpt3_oQmq8E~QUg zDa7MMVr6q8x~JJ~(&$HUn`PpU%N<(vm0D;YxM&>B zUQ#pdbgD)AzeC4cc#{oVNHy2)L!Py>cbdgtGX4TqY9O;DmB3c2qtKgBt9z1{gC zmbyAStCr4u=My|%?(o^0bzcoL>=xNzVVS&vg5zz}ohc=%Y#XADPr(vL*Q)o2~Q{nTCfFU|Pv#lADI#&~cP>cfVDqEpe)+ zyStB4{*sU=>5b?SMFoIHVx%RuS`*xagx5ILlM$m?5~*xCav1A$c-uB$zFb9D)x@@> zWr2oN_UjFvg7u1PEA8;v2#N3RzB@ce{9w&6vW)+8>cu-OQSy9G%)qC?Wp{Vu!CG5W zZ?|?ebUFqWb`amrbul7Ys{Snc%+=OiM=wC*+BbO1Ji!}AA?__@^9i&tbw?B#m6Ms= z3J<`{7*7dP_CA=HP#i)hr15)PSZGqMT(R$VZ8tk;6~1X9faIRzTxQH-U?c>W0xHYu zOb6#7yjfDwFug;2J(bT2`(+LTLjo$=`-~PjT;k2H3A7&*X+*$U%tL8 zmaqLJ6r_B#9cI9CpAyiX7hRX+>xcj7_t@g$(cQ#GVE7(YCQWhP%j2ifg_`QuwMoTCmlus8oaY-A1pn;#G@P?mz~BY4Bq7@ zH9p^+4|{vpJ!w!E6Vn{@g*8WsZg;fe5MHFfdiuj}M^9XwbmVeXQvViuI=*j(-C0uy zVPRu@MCDCmx^q9yv-9Pb`ncF7e<34qQjI5OB1icO*l?ZOZ&0{+ao*g`TuTC`$#ps} ze@qzVlLWj%hZ_xj6uT@Pqt2-JmS0O_;QpBG1v+(EZK`Q0q-RgFIvoXzc(w8|3R3d0 zWDl6lShl%Y#~6cqbO3)2lSmor)^(3_ad25;;-k27Cg!EG<*!FO;^wUTdmeL^wrNy; z0|U;zN$YD)VuLxQ{X~U-!n{kS^73zqAcJr3v|Bs@RWGt2rNeRxnn~id<_+oAR|vCA(B&RsWYnV2tbWejtVaQx?)#}r-+TKYAM-nK#r6Y z_}$Xl(4n|GN0$n7QJXh3T!ZmOt~%|>BDvGl<-0-I$4|Q7?OkSt;$(iser} zGwFt8*%Q&_;Hh9Rp+;a!GQe(1p2h_z3=N>J+76NcQ}N4e55~?;p?BXdPTm9P7`teY zlC0`KX{#FuSijlp=v=TM*-u{H^WG6RM!LE^fqO`_K(`2QzfhG9`{;n;VkR;{#-D4u7=twKEb7L-}3wa`!WuOiY24(;5xHdA2UXJE$N;Y3Xmi>Y}K4qOx~!=q@%;`c5`f7@|`jc zwXNXiDXsG}!df6yTLHe|s)|rS2cLjIFj?f{;$40BTYTWDt(3QoygWt10Tcj_HSP6b zhhYDPyuBkjgV}Gxy0dM>qT9Xlq@44>!7&q?xZR}JO`=e&dVyFlu&EN%Z4AwTiJ*~; zW!dy6x2ydoX3#c8K15vuvsU{!K94{4JY6RG*xCIrwEi2m<2sOSM^l$GGb=is;`dG_ z(&W}Ku?_%V#C}eVD^^xkf^AmMoO*;ss6}{qtSA5vPw~dhzU@-muz*VXm}UFBv-M}? zJdvEl3q`re)G|%=*BGXrM88W#{2p6k)R-sG`N$Goq-4d z1^oga%;$3yYvfc>Q{`x5lg~vT{aZg_=mYQMT-NdU&SlB$PfqJeFZv&2qjkWR7Nyu| zz?Vey$^kR}yddS;#kUK|ZdE#XZ-)FB0USCE zyJK!dwXT20cU0L3YQcYW@IxH6U{rrsM_K;ockb@P{6z6`R9x8=#1!5_c*QePE|F7M z@Gt-7=X;Ptw}x;XXgti!Mo*b%0Ul4fv%08H(&n+GZ1AiQG=!`RGnU0aPbk_ zqSpwj&$iyhZ*1si2xb0D7ygAXe_04&oY*YrM&ex%zH-Zu1qU%-W*eQ0qr7X8dSz8r zRk~cbIu>e#IZuv?BTDau_I6c^%Ryi z4<&L(EI9Ce^YZc@{WtKQ(LOQZ0)~y+HA@!(Vir<1R#ry`&)p|y+G+>S@#SB4&kt7D zYg=#2q6&!m_FR={QmU(U>98vnvR5S?S32@+MQXkqOoAP~Z{>XkDmAQS|I&X&IJ)@? z^q2ux*KK&ibqqOkA~~+a!JDG+(a{e{Nv0SWh27md))TqfYA${0u>7^UZ@(l~8IB01 z6tmdKD>^%&04;ik=H@ZICiwVli%Y!1&udKeF8LbegO87onwsi(iwoRPiAZ=tv`OEY z^|*A(=h`;x%_W4*vL-^};wG+?2Mo6bh=>V)({a(Z&f)hU%^UtiwvDxx+tXo$hJNLo zObm%V?TAyuMj4jA@B|CroY(Dvcu##IuP58ru3 zEx#FLb0j4{#0{G9I~NV+>xvldWZh|05X@ZSF^sV|lxh#D-L{?TXF55K3=CvVSgkU% zm^80odhw>|nFI9*3cC8u)Plf(u1*JCCfuNP@vY)>6OdW%PPclm8YAysjlK&yvS$w!;6uD3(s*j$dX(k$N z@;iSzSEbNH`+%u!&(xSpI0`8psSJW-g@uK}5`R6F&pcbxJUu6o(}uYe5E=JSO?T} z9UVOnSI)lJ_EWLv8CU&*41@h!0|EpLdDD-HDb{pN60Qk z1JrXcsJo9i?$JGtfTOI1ot$fQ6*eC)bKDU0mqG!f(9ZQbn&zyu(Cff0iuLs5tPU@g{b!~g4x z(34ztXLn^`W7ve*fQ&2^HKrEIHIhn#Qv89pUz(0)P+s13A9)eoMgP3T=sVx%S0xn| zLrdU_6vexOq1VG5W~mN|xU;mSxAMwQ;)V^t@CuP8Sk= zJ0fgfv3GEE{D6x)ZpJ>*b;jyw>(H|(rF!IgyD%StX~{t^pd;=9l?adnP(c=Giw->k zawie?O#Y1FS@Q)jJO9!AmAV@Or4!5!wYB|K5uGm@#^;l!>{;*BMfYw$jFCEL2o`^n zP4=Kk5$OE*hH0FX=yb#u5r$q$m?jS#djGFs|B@SFiI`dQC-B3r;XQd(it*~hO8kC$ zYj#I?IM>e3W$@Zf{)&Ct`=?d=yCXvW1!y-pwg{NNn-CAwD1)DIrpuATY*$!>6qEw! zkT_TAMZDq<9+cby_w5Ifm9m*5$T2TMVjLsiZrAI@bt(5f*Y@iwEDX#~STVZu-+0ef zybe3$Q}9VoDKWkM4XY(=n^z>mN9PIGjYZeX)Fo{T#EpJO(49iBbd#^%cUe5c-m<># zuXMln&!2GY>0@fa4`0_K2<1W@TD5PznMeBT-*_#a!|gYF@=rf-4VUub`Y zOinWNp*XwC&rb|(Wxca&xy|T{X{Ow8xt?ku)ToNsBLbc1yFJ>c&yNU6i9OyMil4sp zTQwIjF^j4@Ba&0?UZ-13CV!-cFC4@jXoCx!1qo{`m(mQWD0~>RYOdi~o%uBs$7Xb(_PmRg=JS*F7@zb;d$ ztEqc_2VXcwEq>Xg7Gnq^hP{K6c%OzwK5gV1alf zXQEZtp}=uU+qR`kl#0KIF72Udg$cQDQb+q>7uTlcsUw`GYo>n(gECI7PlAZ$pzwtv zO(w&wC2?pk6xKuAFPK~qzbWM3&5v$wivwC*^3ZIY(>yIt>{D{_uPhm3Th6Y0Miyzr zb-Wl)5Ag4q9Y#@dyfDkr)vLJV(`e{^8gDb^v(XebO3!#25);vNEqu7u@}jEUXyASZ zEF7JZM`eH2`LO7C#Pmtu`ziO!P+U9_4~J0d)K02#l{oz4Q)DVb-1?aqJV7i?Nbl|e zrG!VS@xNp?KlJrR^~B}~oeO>b8ENmj9iChxBFw+A47K^o(11&4m3F=e`2dLOXhd1z zgTf+lxnoBm0zCqI(iVO=>Rv&=%S-DE1#~~8GN>SoSFhXmjV7G^e?-xv+HjOU!J}X<7JC; z3zy7&K$q}mkzMuqNsY(q51w-&DzwE?xA&C2e2l>wir2RDfG4L(5r-uzIh`D_WIHt9 zE&^W+mxPxs=68D7`l}nf49itX>pt#fpQFAh0?*FKh4af_T$LX82tR$AmXj+65f{gq$aM{k&(biB{2rFhq=6u2#Q^D*A%1-M~Tf7>Q3>`lKX;yKhUj8klCwOlHL2Y~-5}6gkFoCX zoizx4-i@1Z=!gFhZaPOBrx2fjd(pm=vc1fttzqY^Gh_sHEfGjG~RGbl5m ztb&E~zOc7x*icXmkk{qD_xKwD(FC9d(7@9@b87xNzO77Cw(LGj;!-o=<7> zLyxB<8me48U2mmJ6};R3{yfvRNt!Quy(QY!&>yzLeI?^soV;No;JoWChrp}ixL;Af$Zn`aq&C*M|S~8 ztaz3Z6u4r_4>hmy}Gd@_}OaUPq$Tq;;B(9&fes|sa?rSmw4@2S6BZi2Y{AzG9 z)}dsqN(=8t$A78$(H0cu>La;>7LgFIM6n2(wQc$KQ%v-pu<$``1~r27c@w-;rg^s3 zr80aVi%L4U<7!?+(Ia?auAy+;XdGQtH!qTk%qR}`M_!eUjjdtz_vkgrifzS7xzD8vKQ}6WoV`5 zGL}z@hjKMgP=zKI84{4-9*IcxMTF@wY3CW84_JW%`hM3antcr^>N3Qoqjqb1czlS2 z32yZ)Ey`O)oqZi__1rV`XT--}25`fMh!@Xr>2(z;RoZB@wgLt7l&h}qAdW(huZW1} zZpyVaEp=>>@*34RbJcqcb#QDVx&-Z1Zh+P0uibucpbV$m?>^e8RI*Te&*uRJt=qW% zz!)Sv#sYtP<;52tIJfI2j)N-h-$&U3F$;RyE}+I(S$#bmHHd^G!p_F{<=SDsiiH>k zt+zZX+I~7f3~aPnT2$hT?`gPV4w<`=dRM{n@quf* z$Y#^}dIFc;y3XcVz|rMUSxKBuCAad-XVCo_LVNWfHrV9vj>p~bCpFp=NwKY}HrA#16nBw;ZA zgr?2vx8*@f>SFQ*TmuM7(;GW*IhgWkIdq5QxPZDf{v=Cgz~q(pKU&VFoMceZG%A67 zXM`CXPp7;_XYq^xbz`_>WhdR2muk(J24?W@+X=5{0{8F@=eeA-CJpM+a)qhq$H+7W z54;gg!U=u5rRPX#84Wo8RT#*WOPX-UK`(`>cDPJF>^&E|vo+%-p?pA@q075&J;-mC z8bQE}sJPi@H`EL*gFsKvuZrP|2i+n7rNrT%B=ZlV;Hy_|#<{_AD(Zg6)plC8pFtzP z9({&lc$_w+0}!t6uj7bFtblq2ez!{16L)V%XWW1aarc*ksCe;jZ>3$&K{eI1tznt#J49h_A);~VeRxbg;t~EbwS2~#avHSh>b=^3Bre#3Z_Af#Nhr) zAOQ%obrzR~CV(b3Cxad&l9L*&b37GTKKxBlBj}J|JJvgM+d}F1JwLFgr~js93Uqyg zc3(K<=9>?I8+nHb$;jWDYvuKLTcbopX6w5HZe#tYgPrP0qBAd_VzS<=CirL^PzG+LzhRFrFU)OB+QSv`|!EU=jhC zVu-4V+TAS=2|2uZ71KwzIk7ZupvwaF6xqQ+sik=y8~s};_tql`J^9($moQpJ25TFd z>Tu`kC54UNruFu$Va18!&IP>&^ZIN4S~*ei4AybR^* z3U}ZAVzp8*sEc7EQ_K2RKAp70J)Vvd8W$9ZR#Br9=gcWIgxmKOEJl9*n9sa(BKeLG zbU`u=_s_Y6ou2}cSVxZMPwCWbsb!@)9;xoqigq(XX_1a!>*qky3)}S1z1~%JBr@i2 zU0U^)?pDk=l|G|5r-?<$H46{4eZT+6CiK3z>dcMvL`E#4QRycFmY@G@#b5rr5~Hu) zbSgZ(d7pAo%Z&aJQO>H!{yJKr$P5boWlrO>-338%ux1xihpWCC=e{Ve%uNM}1(m@P zgX9To8wXCCOc7&46TKb3m~n;_X-whQiV6hcvZtu1!)66&ry@v$K}K!aKTjejznSA2 z=&I~&l`t1B)uHfobucR_Iiq^}u>E%PLLUpb%c@mM`bG?E9Su>1BvEIXO8!38=77yBy#)VITTfpIaF0MFyL$bU$qywMr}QKT5P_ON$q^ z&{D5Wx#fBOa1sQWubk0yzL`4&5|9$3 zDh;G&8{i$oGw$H9@wo8N*pxbeqcp(3rKQ1Ve%*sDLc7p1JG)6hNkh4I);UzAPmCxN zF9uCUOTG^co}0@!tyl~pDfv*eP*L`Ijm0oIIyy$rRi!W>?`HTF#JZkYTYb_h-JLp2 z5sTCMeD$o0zAT({pSb6YnBXl|M;V}XfP7qQIA>6~>O7UmNDdH8o!mi&KBK=p9lbdf zQxV3q>ev{x|jMu__ouo2YNSyAHZ)pT^`i_kTyiCym-Pk!2wc| z8lMO$_tbcQ$ZJ0kq2J3jm?5Em$4hp%*f*0(Kg2}W`^&|%8qdX%?R)I(lcfeNo*EWa zrMeCfc}fO`{zD0JpRGFOf#?n15yvejvcnIf^J*6|s?*hkq?qDE2g#y3LG6 z1P9}m`FozF5>k_(z5A_NwXwsN_@L>->#(g(4}#)onisgyzr{%iuw@(H?ptX*PmNWL zV5F1Wf4v{R?<$S)4G#;L+H}~YZx;AgQfkU#5o7C+Xe0>g63CgEA0B0Eag^@vHFl(< z_dFN+y$6u2J!c>#FH0c7ufKoU%#lNcooQt1j$-oipjnL*!O&q|fjT@u-6Q)Tn^N+{gcYr^YzJw6+Xlrbj$ZjPa7;p$8$xtk zD>k<-<}wr$PkT7`soLo%CL!e^%OFQ3CVu(CrkRNqqk;`EPO^oLoQPb(2qNL<7@hCa z1p9J%NH9xSla)aFr_j^kj}P#t#G@BSt|I?@Y+V@={9TLPX7h;lG z@G0G_9&NYlC6v&47P!X2+MMe#I$>nHO%wIrQ}gAAjvzTun*~BXRn_8Q@Ft<~c;PK0 z|My{s17t2DFn8JJkLEGaqBpa%V*v9_6AG?sqszGihE@5>F&rCJD)-49J?t;h2dko_ z%7m|vI;7Y1nSMaa|36{@bAzxmI4?OELJ?zwg`+2lDiwMd@e;7+rRz96VAd@#BGVqN z;NebEr(b3d<&_uy~+2Qh6jLqw8AVS|UADOC3Yatvofdc| zwXkRR)JKx7(#amomBjSzONY70b zU+LxqYVDoIrt>TOZ_v#h9&p3ogvLgM8BdKrJs}UL^MAObr~h18UHwD~?E$<`>{&w{ z@}|dHTi!Cqs%!m)93a!)lrrx9$MKW^X((xRP3;GLe%8m=fhq&CdSamY{Fbnq=biof zjY+{e2sVZl#- zxI|E}T**POxIC@s1sHcgk&c{^(*|zkJAO`y7`tofm7K(L#e;*gtn5I4+R+#saG#sonFSp10sMTU1^rAGg469VMSm zQ*zqpkGQ5GbMp`TANBW3*^%G{huH}~H#iSKGKs87+6@w29r`RF&j!f<`%lpSX8-#= zQHb-V(@I#(S^Jjuv>Mi1V;Q|NzH+$5`Q#wTWAoswT^H4qZapi`J!Aj<;Z$t*QX#0} z=ypPzrR|z#rCblm9r47i?~$FBl&yOa2VeI&WXZ*`hM+&Qs=-qt{v^zlg4m*AIU~dc za8P)aC23Mp@g!A()#AcFNtmvc-NB;!Jtj4SEroY?B{{+kB<#+2Z!Lk*Rx8Gvm2R?O zWwAr;1yEIW)!*(FWmj%S*Pyszu$eLXc%k3SCYKdIv1vu?)$K2B>j&Ip3&wqxH#7*n zMMY}?5+Mo9tYbgrKJmboJvU(usISy)2`)A`k;RIen$sVMnH^1D0;NkJ@^`{Bd?6v1fw|*;XZ1P)3(D+7(8w@G1wZ>w+K9x1K_}lH& z$FZMtbXM)+{H?|W+VbAhaktL6C!4y}hdVZkhY(;*fS##t&ecvYX~eK59S6x>llS<^ zqY6z@;rqwOrQ6WmqT`m7NA3V|O0Rat*3zJYaqLX}6GA z?MOv*%(mD1G%&@r?hah8Tb)ccsB?ghi-dXT5Y5@r(sEy!010SN!7p?dtHRc5h=MKU z?F%k0EWIE;>&+Zx7lB?IzQ|81_*yAr3evJl_J%bcm6SS{WLQ&H$CeUFT<{#v-b ze-y3bOXD+7CRuzIC2`lx6^PFr1T zKI3;{O#Gdeaf9Z=8^^(96-v1i74!?KU@;Mf!QW(XLWtBQJ{p zt{ki|du>a7@q*9j3;2EMW}+{HgicO~5)uwEU!2qXCPO-dO=)R6g4=(3(^hS_%UaVI z<*y*OU~s4sJ8j$7VyMA0YQK9j!~hl5=1STclpOBL<71*lYo31rEiAl5<%eW;{7S&h zQ4A@UJtr=PXkX-6$1om$Rh%ok4LDUNYk?wXb^EF~?I>iqii+AP-}^~5qw$kf-pFV7 z7HvjwHQsvIXiPa4PCX`BR9Vzma$1l2c6Nr9CzHg=p@^L?FVoQaQH+P>dN43*`xLY_ zodg-?e()fKjN&#Y^s#@04xKzct?&u?gA{ncRdR=73@M$!BhGyKobmM$_EG?MfD0lt zEuxoTNfGVwdZl9t3u1rMrekQRhSAsBE&^5H8567!!>4#a0bk;B#_p=oQd5k+&HO0I zF)!Et{c^sIkaG}xjL2Rc%+T{jFFLC!cCJ0 zoR-*dIy_R`6T5j7lD$X)?{M8Xm=&MMZ~i+^%syH9d(xUK=!Zc#)QZ>tF6u6Y5=w zsUNqjkV=pgetaLD;B1y5>L1XSJ=1ev`9TV7um9~S60!VJ#8xsXNyz&nh`LN-Sa<|! z_VVcELO!WmGEbjga1Q}%q?sQOwDbC*)LcgkX?U2csKg zOZJz___R_S1Kr(rPms$$`zJK3fd*$Hvp{gfF7TVMJJ#?ypHa0Ge*YFTU3~t;hOpC& zEl32PHNDn94ZEkiMl+nCpV2$4lyWrispHW0O_J-(X96Q6p9`ri@=k&))v?CJ zAV^^kF=0*Mwie5jxkvO4BD$&CCYsQ*<<)>6>nLQrUE_74hOeOYEZK&;gG#-CUra3G z;g>4KKUVm{!ys#c)PkYF5Cl7Y-Kx`kTE|XJR#3Zp!4LpD6N+jYpY~MyUd69)=f$%` zPIS#XJ9Oi}{rMJuHziDEV)Nj3Gf^;EddVbQvAEXg{i9c8Y-ISwLiFI<6|+vS7tWwD z-AvFY7&iHWiJ^X@cc3N~$Mf9fMET|g7P7rS9b~zY^FD#A7u;&Bi{U}aMctht5+yZz zKg#a5tM19th5B!K(s{(2$h)Gh$Ml$p=*XBbol?M+%t#IAPb+Szd?s3EX00#KNHxyG zMq&(6e6?Ky{vRSDf)o;9I1dErMkga2Bh+2Yh39xBm|Qj!6;T<3^Yi{&4Ey{0u40*- zx32Jw-#_~JLcmA(GL;rK&_#JlCr+T2pRe97ez-CyxvAagVQBmemJGTyrps+n_T6R9 z3e0AybgZw-UOye>4zw`qBu?sEM+Q?;kJx;SxAdI-4UO%*EdpM4(ww=c0(IP}4??mX zi(ZqS*pU9vR5s$|#z=5RG2g!(Ddap@F~>+el)FA-HJa<1UgxL1q@Y8~Y4_w;{g8?A zb$nK_OsPAf;Ts&3ST6&MSL#!~LvwkA`gFUj? zbmRQCS0B}TN(F&B`iNj4>Da+kd9f3N)PQSIVZO9o7>@x5NpZ~#{Ha3upW}dl05WwS2m>k->vfQ_(&|TQ0u2gtzIr6y<&H`5^lgECWs`` z=8_`HhYMEKrcgw!^p86oYSf@&(B>z7FC0C{<9csI+Pcg&9$KR}o~{x3T0!KSe77C3 zB`Admf{BAzl<)`(RytkWyqhdel`v?Jhh6JhwC=VV>HOf?J&QLRv-%1)gC|48H+^-h zK}d_bK1r8_{-~q($P9@AKjdep+O0Vd$Abs9UxP#sG-r0oNU%E&eXC0+QOfCsYVS*h z*y(kqijfM}k$(4qL-h>HEJtjIzw#+PtHctvMojeh-x_0PG6Luxp2J`$6acu}mkNEL zKX#G=-R0%IkDZ6uSGSDG>*ksdY6Pj$ipUJhA3gf5I=6V=4_5|4LZiZ(Q1@}WT;NhhbJqX|(e6OI?R3$*|COABeNosjXYSU4l40;0#k>hkJFP0fiO zsfD?@`FxJ+m8~HPPqXp@s^W!NG54i4>Rj5tG@={v|61b(?rVTDN-L^c$+4(--J5xD z9U9N5;>Fl(jrB1Iss{f!+x@2$zPZq#>tn|Mb7a)tkoBsvKosX%_1wy*bo_uC9$w&& zOeyfU!q(NinuaO1U}0s{Se1A6XKfs%D@@}nMCbJ;`1?-y_m^B`m*n;L{^?q&e>|f9 z6Ey4prJ0J+DPb(uOs&$nmPBGOU__!En=BFZb=2f&iaRGDGX^ z%Cjp;j*P=$4}ym$J-dNf40IHK$EJcMK>EK*j*>YkJ@tI-^jwe65b$09bb5dYXP&sj za{R_455xY0UgF=m@?T(Lwyr&%L&TM^=Ov6e8HF~BZ(*Iv6mV@T_}bJ>-qhe z*_|q2cTUiGBl||)rzJCAXE{K#hCCntKwk<^<3_{IfHl;^x8h!i1K>nD9h#P7mbUbN1x+l^25`C%|BMDzk z5`(&&#fK`!(6F+_J}l*WOy^U6hFE0(MhREv(WJnTSMtq@?@<%8!KB}%-~B!#nL{iNY8Mk z%!h(Ux8kafr8KnOpR4>(yypHa(>TwU%9qS*`Yy?4zpf7K=rD2e*4mI~#6T6HEI?Of zua~a&3;?@&!DBlma7_L;ijnTmz>jf=6+MY8gZ=rUf-JMK@%hHZ3dKb2{Bbk3%n<|M zm=x1ATVe&a_b(0P1CUe2ljazbAFlqREHaHQtC`plFt$`Lc|qD(nK?KTqgv&&geub; zc*gkh#qmXVy*qYTY~YXx!Dr#0%6>? zIt%f3Qd5PyB&}x0vx6?*ga&AuDPtXG-*rFgjn6B^W3HMJfMxsbzIJJkBOx!80s|Lu zhnm2Xo2@_s~F$^#XGSGHU8HD3+ZCJVKOdBYt0 z@>R3M!Fm;T^9AtM%gv8(*uS``rFviJ>NIqq<`iDTWE8K>SybXEX_!_w&b zv2Q^K6Mjg1Pwwn9-cZDC)TTPL?IQg?cWQs1u1^EkL;aPNq9zkhr6!YOsF+QP)D&4P zX|Rf!8MIaM!_EUv%9sz&zS2?*LA*mc`8l#!_lfNHh9Fn~K9)3O^u~{Y{DU^@T5b8S z6Pcp<3l#ESr@8*CO432dk<&<1iyddh4+vP79ae?CcBDBs#bTDeUBu9Xg8f=SNOjx- zT=^)aHNNC!%ZW5&XTvZ`&s5mVhiGXBtlRp1-jsK+iJ}_ADmQYQ`e8R`9U-^U+FI40 zM|vTV-(1(OUWwCy@Txg)v65cPDkHOEpG~)p{r=Sw079}TSOJ-Vy4&s=L+L1iZcFWzX;08bZz82}u|vc}LVSD? zjO!WDKG2rqd|YA7pM`24_QnCm z(6;0is5CB)%34e8-&2(EI&T-TjKsxl5~nZL#m7n271TYXi;hq#4`dleV*R$5NJt}; zLd72+U6hPvLQ`O9VMdDUFj~zxYFM_Ioi}4>=t&GMYEMl~NTd5TbmA_-+jcKN)!gxP zb5Ur!MQACk?Aip7c~|LnWM1~x;OZMBaj>jjx~{yoQ$+#?Io6636R2=g)&h|3fVHt4 z;=MsXc_Pn=YRo@dq`Kb2QeRn%Y^itDALr8}13c$y)#&AOS9`is0HBfq2mhtKfzktA zwo%l6|4@cqr2C2h5j_9cr>U8#EX*V|fe{>`WD4|xc7s>PMCBHV!udG{AtKnwMzNhz zV5=YcW7lko6^PBq$jDQ7#aP^n$=)$GCaRi2(rfez9(FlC>g6&6D4l?v2>NexJv_z> z>JAir%n;51lr-|{-bP3^-#GK}5uG6hpB5JU^25r3RiZ2{EhS)LVq&sHW@sPYO=g@2 z1QL-Dhkr)RfjW!WUYldU%sWQz8Z*3i`ux!!Pfk%G?BwJ=bvsL&MZLU3rLj+Qz^yOR zzAbTJNh+#X^ZSp8JTZaYPD0|up;K$nJtw}94kjjswCT2s(EFy7x((Et}clJzs)h7%h$g(QYF(FIG7i{&b#?N^6slP4r?$O-<#`x`j2fh zKkD=seF|WKpsl+DOs%7EL}CJ&4^2SO6Z=w*%3@|}rzR3%pPQ~j25DM|RtPB$(xQ`3A&hG0@pexZQ8!sTH3 znLz1(qyN|rX+)4wZ<;xhtp)nn_*~4Ck(DIVYk^-jG@xNUgVuJH{4=Rrs$QJp37Nkq z)8~6g{%ptGaJ>7<@orh&b3?Y3JZjy6&k{MVX3e~JhpY{cJ1Zo`LB%G3tG)f__!d+1 zCx>=Jox5_)Ge*q;>8|rl+)F5JY&I|v2##&#^=BgTfEAh?PED1OW zBXcSGqw894*aN-h8fHh=0s=eAt&a>p=jV$d7HZP#LQ}|EC>8ME>u~W-6}e2JhRj;H z*3K4XS3b?6LSvzNF$`kVqrH#Y;B| zAhY!4&Y8QnO|w)-pZZ znX?x2Hhfz*6>`EX!NGR_`9}1IB#U<{+dfX9S%IPcEbz`J{S3Ff5htmm&pYdmacCzO z*Ou`Y0`j>=FmR1gpb$MSwSu(}b2C<8*&SMQXYV+V-T$5*pZS;izbHJAX8yZg})|ywMqjQP_E7QQ3s6KC)C_?#+7!^jqsP(=6?gI{3 z7PqH&$7pWpKHGNZ_ww+7b~r`E7Jq-D_TuCGrYZXMP%GKYMvc-X>o`RFcNWMm3g zsj%qd7H79-5=_X8QCP_-xIi7sIM-zFJ2yEpPrSQ}Sx;bxZeWIOiET>=y|eyLLPp2W#1l7JgZjMOAOOOiqWWnUwaf6#aQ= ztoUY2txU3=M>;jHB%g&ibWMml}-7IGsl*4_g?-X zx45Is$i&S{f$=*S<8Y#i*GDAkOw~4V}F0 zFcwDo^aR~tbK3>TC}=T(SKkh2C8xX82b@)^piZw(jsw4rX2&n$gwE2L1$NASmh!9- z#G9LqWkAs|L#HPg9Q;b|JLhlv_}qE@Y6wLhx1yW0ab&%opb?rq0+OE2ftygR*xXQG z8@)rtT(`ye?byT7_#%8a-~-@Ov@_7j-71}aZhjig40JMsu*3aJLghP494DWi7#b`y z$8;n8&U{i}ED|pr)^=8V3JbBnZSkx@#y#pRCI*!}Z8knWUm+>6#^GJzsK?|Rgli!I z(#N6Py?wuk|*;YwbZoj70r~fr$FxbMt zC0>aJ2yllVZ_UnX(1a*Xm9Sq6TCW!Jg@Q>LJ-sOjDZk_n)I{R)k zm|xu_r;U=2z)?6m+idubETfN*$79zbZ}4-qKk1h5?NbS58%Z_8`>|}Er?Z5A#(K<8 zO`6nXI}{F~h$qXKpK)H`spqLy!A?7ezM9D|d+Td(CJ+GUHFXT8%k8arq}&cJm=k)C zVsNla!$w#9;z!S^NvsQuv-G5eKNjw|nt_~Y2uxaSyGQbIS6^z=vh6nc4f2N{dz5kU zT-w@t3`2op4fTx;VbAa|L{uIgM`#_ zM(7-9q^O8nk(`Xc-PJW)(5CTBe|wu2dl!wYh!cYyb+veG!CDGE$`Quhr#uVH5Hvf# zB5PMZw1l@bwAP8!5S5m?RHh`z%Ue?(xY#;~NmFO2*!UHj0PonNyVnv`@_LMpS(QWM zZJ z5WM{3M$T36KgvD-0#YG6&R?^|{~D6CeWy(Ce`X&1HEQ=Spv;ICQKJ11RVo|Y5L3LL aGTN3L9PYfF#r}c(Ps$4F@};uoLH`F1rG(=E literal 0 HcmV?d00001 diff --git a/testdata/snapshots/darwin/calendar_day_view-light.png b/testdata/snapshots/darwin/calendar_day_view-light.png new file mode 100644 index 0000000000000000000000000000000000000000..6e4983df65b442f1329999810d0e3d1045ed1f9d GIT binary patch literal 31078 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 literal 0 HcmV?d00001 diff --git a/testdata/snapshots/darwin/calendar_month_view-dark.png b/testdata/snapshots/darwin/calendar_month_view-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..5819be76e91d354955d5680ee67693296c02aa8c GIT binary patch literal 42135 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 literal 0 HcmV?d00001 diff --git a/testdata/snapshots/darwin/calendar_week_view-dark.png b/testdata/snapshots/darwin/calendar_week_view-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..6be02c2c424a642487a7477b15380a6b111a6b58 GIT binary patch literal 46786 zcmeFZ1yo$mmp@2C0t9z=2rj`Lg1fuByE}y79^4_gL-59fI|R2z8<)o2w!gob|IBx0 zerI>*oISgHcBiZQ^?R@1tGe}hb?^Pu?W&GcQjkP~$A^c4ftVKfT7g?Gqb(n3(ILk%l}$e~H{66+D`he{3E!lSg9+Y%Po}WSSw8 zI?-UtoG;uMlf4Uu8F55jGUhVBeGa8ZfRD<~DKX&3DXgp%_wb`I_R9QxMdiLFu5q6Yhz3eY^sik3%{9nkttJy9=G6 z(TiplyL9xlVPM3cDjO~vO6uyI?0-NmDbnFIUi`$~+}~(uhG(tV>u)^X!s7{2WC(bA zod5|z>FGb}7nKBn}XS;lYl$4vVFD$;uH~Z(WTJo#NLFAm_?wLsL`p5b!n@peCIz2<|-!Z z@9)=OcmrE(hekGo9zky(Koa>%OLo%rHxAAi7#OCkcxIJcnD5LGBI6XjmKM?}d=1_% z4EBYQeJGe3N~jI^e5rR^VDD-SUSEnja~Qp0xU{u1PJ0Mc6PZeYfFGI9wg;0?;^LtJ z$eQ@9_k5n39e!4-P78f{Ge}TSf3kMw+UqX%^>Rv4vOREo!@JIER^9*}Igpk?ZCY7Z z(9_eBhtwFzlKZbcd%sY{4`JZov^0K^?QljQD=I77>|E#@or#&SC@r=m<|EGYp|;;| zCTV1!M-%aQ<1)~cOd8tv^?EeM-P>dBo0yjt&51VFGI%Zg@#m$ys?!>zqm74$Ectkz!0pSo zs!T<(t&ocZhe*a8sl~9@b#8j`U&>+!l>jDW*j zUP1TpRK?E0k(z37&XeeIVQ4LJP5TjOo$**7c)y@Q#=94D37e&+4)565J6K(Tj*nayOYI^m| z{4CnD#4^vvqS`DR=9SS=x{v;iA8)?M;GoB?tS*O~3G7@>Y_pUM_UJA) zeE#fm1)r6fg(eakJJISL>g^q>ub-2(P`kX@ojCXr=ezckUWAhVhd77 zEh&sORiuO{9`3<0u^{ea=z~=cUZZ)#)SYeG;@ljgUj3fL4C9bBa>A1*XG^1n`7SR0 zQF$4S{kb6{^$$g z3pjhHanwl`70gv*xR$q-L_`G#AAUa)xqr6)DDVPKNveZ=WW#`l`Zkp$RHF|u68oI9 z(2R|PgGsw^`I#%cGk09-^Bi6zj2-c3ce#Xd;}6kkCUHY)X`0G3 zn4dnS*40hd{Ccsr&Vb9mjtS@U6b}iN#7COV6R`Es)Lg8`5~OVb>jS)KDeZ(pMV1e` zGZoGje#*;Fu<2umg-QloRZHslV8=?_JOq3c8MaFAYM50+?Ca2Ql#=Np`sI!jX51Hx z2&fn}-b&~@%DNw78>UD1-BTeZ%P&@5=TXSR{4dS$Gq}}1`0D?%JmO#X9J^2 zdVr$<{?zuJXEL0+mnRP!cj98j#g^524RtkL!hvOzgj|-Fy^b-fZ5(5tKYyO2d`5RB zeVpn~RxM?QJ5nc9b=(lb#EM3(sIJcA@fDt%##rWgIK)GF!r%%~`f4O~T{rt_KY-8k z^{!}VZc74&OBD=k%~F6oC>H$KvOzRzw!89j08o=K2B(jPj!rJqDi)QO*b}DjONf%C zrRDgASICc)(2Ot`&1)y~&*BB&qCWS;@ObbZl&&Em#ST)04~U&6B!PYy{$=2x$!=wi z{hcU2rwo`O1Nk6y?sdAckss$-0^L8wknLj%`UGRO8r}TN`@F2Y^z`qj6_t)lozyDU z5hhbdIAn(D@g+($kUl##O7{V|Be#EJD7r6UdSQmNp~Fw4<>KKP|P&{Bxc}VR?DE+5XOz7XW)|eANGWr+kb{b_B%_B^{T*+lPTvx3j#~ zQSZ3Z`zuJISY={Df-Ho|P#W{-uxMwMtwfQNNZ=A;2hp69lFiW0=&x_wTVU?VLmEF! z>DbuNiMimDsVQsg>*|tV2Yg|8CVj|o?77J*4vlX!L?8`GWpqwUPF_O0WIH^_YI_V@ zc8ET7d+dC|d;h}dKz1)QF%}pS$T9(j&F$^&u6>Sp#$$iP(0KtbCZEc5>TyP{RdKZmXymOL|JBpgL zbYxr{GEDHR3{Xc0P2}>@rKs=>P)0JVeowbT|keU;$a|~ zv&S(xHFtS#ZhUK)=939B3=GV|ER0X?{x`V0+?5ycRRk?980^%bP;(<=yschV9-aq# z`%`rEsu5(2q(sLg2cVo}Jmtcpl+e{9bD5ow;z8w+d2kHSHVzhusKM; z+&{&(`IwaB&8+b`?53#qzfI2DO4ll;`ZHGnkw1v`eHEc@pj3W{+n;S)JaM|b!NSyhRs_~qG(Z{>GV(7xn`pcE> zBpaTuw0E++(?fxXYr*cPrX}8Q{5yyN6vFiFUZJUnvQn_G5-e z`uME$u6%+RbgZ#%3K>j=T)}u_TxAYpwsn>Cn`|!6g$2fd9k~941aO8E$Dc*4nhUN` zGj0~&ruz$3IxOaIC2Y98=93e07p;j91%yDFp?&{8@KMzLFF3~(a3Ow(SHYE3X#W%y zJx!$ecJ__7KXz(=e`g!d!PXXGt2hFdxWGzG445kvC_K*S;hI6l434jDUm}-FLqCRRQMNHZzsqX-m?*w6m@73rK|eRMfNNH_+w{YAPEOF{6gAuT2K+$g}$Mz1L@K4Lwn1`|AK_5}=-Z>VQC z?3&AwDfX$>F;rJqeXIhG&gfYW8@0a?#2cqqR3uKdVM+8|--#2Zr0n|fd140(J6ii2 zC}~kLq@s%CE3tFTS22v2D7yYsqCrors;`gQOVvQ^d%V7Sc#g+y2}g15c6PU5#XCCE zYc2}uC4I16bmZkxU}66=#!N%UT&ve$6M1-$u)CWg_!@*878$3ju0GModK|&D*s2&N8eHLtg$@;xFoY;1afx|9qX{7)$>U`#PfRdk zP(MqG>fac91VFs;GHwz_WolGpB!o>^SnNg-=VqjcB66{^4iAr)J6h?TwaaKqvQf7f zjV&lGg?(x^{%)UcL{O5u`bB`gmWGl3Y}c<_DH#Uka2Mij?x6r}<66yLx!=F@w`y>m zUC#G^`>ii8zt*$|M@BtF8z5-Vzy1{~WgZq;0x|*$N8PTVBjH6YsF@rY@M{EM;fxYnBZndAPqMi>a546>>}n#%J8^zsf`uV^m_Qb z(J@>4b~#UAb`0vbFWxUW1L_~TIV1MP4Q4-DKM_L|;$2oJEK(x%w#UB1BX1r_Wu@&C zMvF8?HJ7~}pOg~n1`v38?5NrD;q>xO|8Q?xEC8+1du(zE@S*-D6@Ye8SJxb~)M9@& zrQCiemPkF#UCA5(ufxntO@K>?P2?Ko2I3r?yI-2_G&{x$fLlWI+-49tfHa-+zB(}> zfogPCS0@kF5kV;FTvjN2DwAhoaW!ec1TvOWrb!;tbbS8h?dvZ}v5fYY=YRK)v9u>D zm_!nQ!Rd8QDnL{XafAiiiGmn2YIG@M>WBBo%mpU-)R~z!5c2||rM>;7jhMQcnw7=H zHy25zy}SbA;vWfY$1qAKN5)2Mteha#4X;f)HUG!kYc)A;bz|lOu20d^@*) z)w2t^k(#xZo&{>EE9NVysV4*UQbsF|W@hR=Uz*wRbDD)c3LL>b^6tb+}L;<$G}$LENuPSkJB(aF0*zajb?(s-v+z2 z&Im*k5xsHK(bc7=tMq+Xwi|)CsYL|$|03DHgfw2!LjEGg5N2F>dkXWf5srTo<9~%b z{?mykSak5))OtoZhkF&0U%i!7FMeu-9gLDjF%yS7-q5ofN9`k3;ALJV_vb! zZ@Pt#SOW%P)f(_v)@wG$T}o(5sLMFZ!nYsLNhv9}d_{0;lt_D?4z8}B);I1Y_xvrN zO%*23`CRw1zX5{(C;c}OcoV|$OoZ3R3xrvRb;FmJR}bBo4}~uLHo(fx!f9h?cXW8z z!(vT_9!avKRZcUze4;@Jy-p^I%pLUgS2L?2V3Pvkq>$U2lBS06aNq7&Ug7d1OBlkJ zo7>vtnBs@_yC-O2IzIMI$ik7SCVgT^%@-p-JUHlQ`ARlUosl@Qa~p?Dh>Pv+&OtBB zmj89>Eywc993vxD?4tSY8%Cs9PL5xC-1@#-zfoB`H=nj{mgmLC>;+Cjn4PbrsO)(7 zl;qM&Yq6$LtOt5Ol?DThOmFrgzZj&ImsHFEdj|zxQ-55*ZszpOE!^H+aj^c8gmd?} zoT8>IDH0lz=245DSgQPbBn9V?U}_sYp&mC+t;_x$i&Llopo%@2 zZQt)rrNa#<)`z+L7uu=Zyyz!9GBaz=!?ADG5Dqh8cN@sYJQAliQ`{gUlbpUpf+86Z z-}f6Tjs#9qRk?@5y1dd64u16v)XD%dpPbKXaq_at#uKVvf$v z5%~`7jA6}#?aur7MB;>mo0*empKE6wXGbco7Sil+d$Z9TCzb4A^FxXf z7DY1eg^ZXw$ha`$6unwlE3SY7z5tr*$d6OwjS>m5hM(m zmdG`8`*8C+4W+8vwruf#`IhAg9;?x5an#96NV%e9BqCGWSPHo+B!2sNMU>XsuBXs; zaW;!{eeD)ci1?EC^OO|a7wIc)z3j3mj)>&WS?XTEA}bwfVn4l4Z-F7NvkHjPdV;%3 zw8L|GYcbry|H1$ppNG#D#;+i0Io8IJFkPzKYX3gJ03r727JRD*=C#VlAuB2#L4^zH zB6#lvrLMlX9sm0mYGnU-8qcER+F>=Bf$z|&yks+5>4T$g+5`Fip9EE+oE+HOk7v(* z$7{avTQo6#m{w{>C5oDF8JPjQEkbH)$uA49vx`HvfjghFNp4z|^i+--d=P5L7#Sx_ zC3`F1UM1i4zq~}YcjbbwaF%z~=i&0BBfFDRHKop23GiU-47#t5of4#qowYta6>5F&k{MFZLM7s~7*epI-)qaDq3-Dz;#NUk#bNf8L)@tJ--SzrY6W?O|nR zWo%P^!R0JXnMj!YwYEmi8Lq0K{8=ByV7u4Is^8%L6B)Z@YIX41_)CH^AUyj5C$j%j zTFr@&Q%9w&lDd9YN)DIhtsHtJ4YsTk#-hPGhO|+m5b-}}b4R%pl zr>PIZiXKqutSR@uN{lqOLPe|BjqVwyrQvtqdp7h$9?!5R@VzZ1=w9neWH&O_l8v68 zn@dc{h=u-E;N;D}>^3(Ao_f(;1z^Z)aWuJyE57O`99k8ZW_=|^1m48jHF?c0=wt6; zK(63MK}1rO%#x$}EF^Ec<)p)%om3};dk`xLH*KY6n5S5xr4uo*ZOL5EM5%`@OBt1o z@IL5#qQOY$f8Ng*CaZ<~U{aM-6%}pX zmL*SsMD)xqH-j%(`2rIvx#AbQ%x857k139J@R-u>7ORVYJMCa&PP+a|i+pONO)8g3 zPMo=X&2n4M9jkc>Xm74rcP+2%-e~I#kJ}1xf#GKoq-7E;KdUXF>I0590*WxH--Rk^ zl-!-+{ZvU|pPP4*c)j0feL9$2lT`csnM!rlIW8yoWqfF)+~`zPhfhR`1~WA|B}1NF z+CSIY-uU)>s+44TRXZz7KtY9L>nmidvJx7=|c1K=TVuv&kAu3Z-6^g%SWxFy0AWL(>g@w zpD2v-VN#S)aZ$hO>MANKT76D6dW-3~KgE2=kkcrcee?uIenv-fcTf5xA-(8`otBDn z^abc~D1VpBg#@Rw!1xI^%<6H!L{dk_+m|8UZu52y7 z+re{NKE*4D$(Ks!vh5WuG|AJ*2^o+uQ( z7+tTNbUSAJrTs-g8POM^pNkjY09UKk?PBQ4847Pp)54B~7M-ldicuLW!i z;|=jPW)JYh&kImG&qJtx+G~?LT)wm1US<7d{#&83%t5ZcNAs*=Uh6$KkGm4Q*W$Am z3k#!w>upuWl~69m(+e6(tvfd~B313r;aU5O7!*6+hv&;to3OUW$NBYQtQ1JkskYY> zSaYT%zc5-_1n}UO779oK!|7Fpei)*sqV~tT;8^7KSs2pOyL4a=Z0R0~vHN_>NOia{n1x z?X!qde{8@JIRiX4_JiumzC}R9A}u_W`J5f=mjaSX!~-n^o|Ca+8rtObMfx9x^`>EM9FL! zfae_9`$u-Y^C=|MZ49YPvr`d&_?4sO7Y81`zpO?liH^j>Oj&i7kbZ0LX}s>;77>15 zr>N-%A4&l_I)BH~luq@p&JkkdL8NOP7p#0j7ne7k`NH&?0B!Be-Cdk5s^3tf^p%kQ z>6sSV`cYg!KmcOz)#z?aCBv(LeurFn6KHTDt6fWL-SvMM(YI<`mUdbsnwM!05CWG6 zg`TuYE+6!rP>%G0!T5=ey~sD$-%)KG9K17Aw~koz#K=cHW}qqltgqK>emsIJF4=49 zdcA)Q2L*P!Z$Mxiok8sPH*@CVu#nHObAMQI)PFB5^XST&(cv76k|S}YU6(y(8z04^ zyRp=Gc1#NN!+f@FH&jI7#m0(;K8KcrWcX*Oq_3pe4s70i_#_n20`d?nC$Bzz=&ihr z3R|~*6u;VMZE8wmcE&0c(F%D@CLXKct9{*-F#e?_&Td87G7R!W^;neDEXH9;> zEY&`EHEY2CumI{UmR2$E^qKXfww?H0D?2-v;urRG-hoVWt4%A%=stKffAZ~-LITsl zn8WJ)D49c$c|`>sH2ynB(o`wu1G9X=&iT}_DGNwl&Xjb8ZiL9ZfdjI`B%R3g4 zpHEI;fm0Wr5KpgGRPNrp{imtcZrAI0l6K45CxQLv$y#yb@;7_dloU-||3Pehx92(9 zR=paH%3NJ+9-E!vkFO1Pb{j{w*N68l;4y~=F0PgjuoH%L{3hC~?{gpw9a$H%=!E)( zKp8V|bZj}RqY%V(I!BviV`HQ2+hTK8Nk>cX38Z6t5FCOP_PQq!$u4c-yqnmb#!3E5RtO5j~I3?HHF=tIPwO9na*U;I?{Q9O|a8 z1ysaLJC}mM!bAF~Av?k0Ak%^t2dy(d?vvRnyM3ScJf#6}+T23yUw*fyL+>4jKJe4- z_m9@wH7rl=?1sZI4bwYSNi9uhj=o$}ZE$a-m!%jOh|*QsdK6!8S^$PfvTnesT=tx+ zXW|3Q)!MtyjD`U`9MDN|re1L2BsKxEo79oA>Z_dxljqt9fg1s9aKm z(GZ{T%alnSA)oWi)qFC@@Tui<$*lLA-o3xg%D!H(OCZvygQE~1E%f)!S&%TdE zO$=j}lY2r$*x8MTvCrSHjH82z(*-}jNR`y*0XgHeQ_U4&)-2zGVt$DWKdG!ME_*In zo*Za`7TGyp)rSv#hMP-<$}h5!|@@21_u;WqE8h$bqL zGUxtwPM4s?{VAuwN1v&bLKv02S2U56>gXm8+&4dZw76(b)1|i8_4JiT7E?TrrI1m> zcK;*0xH4hIY*XWUy+#Q2MkpSN0-p!_O#^e6%*u1F3#Jn+SRjN?T=_+9($hSPF?F@t zLu7a@35^0#0#jB`%MIZ_WYM`|G#&T+pAw_hbjUSIC(0CwsQFlJ{`q992%}?Shfq~;^pi#|gpTyx;;F8;(q6pI}y~zp(oc=#Y3hId<2VE7NEF z7yRym;60U5Q{?{(rcYl(`N%?0XQ>_};^I&dZ5i`~Q<^^%G^Ek>pj*`o*j~WTf`f!3dGlH+5XdBr% z{J(qnCbA9Qnr<=d{+0#XLjL8?#@KAI!I~?25;}4A^Eb9BZ?)}TE$jLObZ3f|E0Jp9 zLfjAUgaT>hzy7_}GZ|n`cD6~u9DimF=dW63sheAmo^Z8*8h_bX%9Q2>NcMMj;?-K{O$KN*vV zaVkQo{ILe_pkC$F=sx#-L8JRD|18Yy+=|%u%kIf|pJ9v@vCsYJ{EU}PZjnU8(68D5 z2BDVZ`4vtch(7cP_u+leS72$+DY<9beS{dA*cA_jh5)@!6B0|Z+JSQ$r z1NP%XTB?oJW9qQki$pvz)8%cO*F}9_gTMc06a^{t$PTx*lDznm-Ce9W0zRDsDmm$8 zNw@?V|3pi+9F*wj{MOYiDonxllaVP- zdq3M#*&gAbeuX^2XLAISx1CNTlFqBa4($`da@bb=PG+azMv)UVP(*b3lFp{X`#$=TX z{MAZff24K2ylzvZ2HpqJhxciBg0syGtAuQOH!MNYkv1hC`DD<@Qds97O4f||Ad;4f&x`nC{pQ7xKuEGM!DK|Jk%a}m);9Bloc zSNfZWyXCVShc_@H5z|%`j#fCkOH0C{+XWAPU8d#@%X(T`Rd5K?$+n%H06dV1Sebtb#r-T;W`mKbUw2mdStc^4kMHNqWga{uxG{F#3Tf> zHg%00>6sII_ki@(==R~U+1rDTj$RL8sf>~idEgW5N2YXvSuM@49(?uK%Q#`k5}@zf zMRu;Os!9y~05KFP23_bznjWW&Haay6OS!|5{p$|k-c$>JRDli`h+5^lXlo1}uC=R> zWZeA7%++^2vC0&|yIca|F^rYu4SVpjeEWBY(&-t+*Z0MlC3tdg*N~~7jG$Nz|$C!q{vsRYQqTk!{;;PdBHg#$w0CC7o{6kH(mj(lmyc z#biUeb`@=P`9&xwH#Ri1QOGZBB!T=E-Q@CZwxA*EONXbHD%wR>L^k8z^q6ba>1i7r zoYe^iTfV0Oqc7Zie6fURif54NPQ@_6&IfnBG=zNazdaWRm2lyy?R zT$j7L)kE*%+l%^}8lv3Y3F*}?5>TqJtbP2|`6wk8Dg7w{8uriX2(zRjlOFr(qM`{w zp#qFMYgv+T4&srS67?+T*et*?wq2&&$rB@>({`$*9JWhd;Cx__Pn(I0N=AOa{kIi+ zYI3T49xpBT7gA1MI>F{ngxE3j35%p@Ga0#vw8zFk&>j}{;mu>D=}=Mezn0$`?#^l) z_2>Edid`5Up4o|;u(hLm9+|A4#YxQHzwh-Wybm)!8b=6BvZ<@9>DZ(LnRB49n@z-K z(O+MT!0ln~(IFtz9bvxw{9HgFtE9t-Jw#8|Z$hG_V_$1%FVAz?r)+6ixI1PG6QOwR!EA(2Y~81Oe&+1U9gYb}QrZip{E6 zneDKECH+ckK<9(ng7)LvUvuxT^|)2)id2s#wYhyQx_|%XIOh8E!P|KEFJoi=RCBlC zxBK8;n-x>i+%xgCi(Y57Tk!E+K-XecmMl|RTYGDDfPWvUd;hj~!vhl&R*E{q*fWG{ z=e~r)k+~9Q<6eqFe096t)5wXx9Gvd zH)PeJ?AQBcyeeZ>hp~FKB~aGY^IhK;k^G-^%90o@g^DBrve8|$Q;32a16J%!D=D4T z*j8@a=gU`#kWkcZkze=2Z0%v}UDQ?Pi~`=@=+m2$^P51Ar!xy~EOy(_f(4ZS{qym} z1iP?SnD_dttPv=jWR~zBWa~_LJAk@p|4Ng=PzvtBWmTcNSu(rrV4wNr{>sx{pz7m5 zZIyq!v}f$(-`LW+>p;$`z!=cK@!-a7DQ@1Tb9v=sP0d-gp(LF5RVRuSGL+Ms@fX}? zyXEOWWo)>J`f_i0de!B=hi?Ygj&9hMf;XE(EiOd{u}r7RmAjkwYA03{!2KliE=9i@xSEtm3O5p z*dKgb;%iTD9{mz06kKD6`G`f6y!k<_AYu}=z^WdRD}%c~MmSs8El**@ggq%s+;gkB zzYJ#`*ED9(ZraF=3YUW_z>Y2vtt2bS{ySojir|WjVi2^5uZ?_r3Ib$ausH?jF3@q^ zwbxtv5%_$$ch|wpW-y>Zfu;H`TNf4wq0>2a8He>dpO%LMDHRQ8%y;RPLDfjsPfRmDwLcL>Fww?H_IRH}-GhKi2eV<4Uz+wcK9<5ri>8R-qg4bB#-;0#Ql|L*;c!X$^74-l-gO$H{{&>=lt|f>k;dX^soFj???j;(l;2rLImcOJ1FN zUmxkec9lE8?=?Hl$l;I*iQHa{Xxit&V^z$JrLd<3nBYLz#&51pG>-$tMYxC!hM}72 zN)uG3Rr5;b|152*n0G{>TZ?l*3QC$D&VoEWNvz_n2Y*Gu#U+;l|EU`La#|R)>EoNN zZVbFUCChI3S|e5;|1Pb{ci?Y)o5%p@zkLwn0OA1xs~iX`u6TSqMoS&rUOw$(Xka4h10vY~VvrsUW<_QBq?BTypKPq=g}eLRKk7mIhZfftC8gU)MNZ-*)_`+o61OueVnaW2 z1zyazY`l1hi1D^FV{Uj$x|4UW@2a@cv)((l|1QTpA{;rcBE6&g8^yc@}(D2lgagaMrn$qV-XuCJw zP@X($zkfjtGsZkI(i}K;cf05nEAqnGHXImGN$VFD6hr-pkfD(KIm%41@AztL?e&Wx z!?BNEY=!RPfaAub&1_ZHsU0s*Q(E>_+9D-n6&zBi@3ZU;{^H`{ldqmoUh>QZaIlo5 zb{VkxPtsefa~k9(H7X}q&;QB)7a+h4e+S#{{srPvzkMCwXp_X{iVorf1piO|e*^(v zLU8!gQcL$A2m|@nx6iNvFF(^CLXORuLMv`D_zSW6d)jxd?>JF^kaD;=rxA?38iKeq zoP21>$-k3|h*7)AiP6%ig^1*nt38Y6&#XkvW!ktJlaUo1dQvdT%$h6+cDuSN^iFCi zvKkPtqkC>E03-RFsloj@0F3{?AMi1O4}afq^(A|syYas$hI(yN z*I!^bpWL(P;bmrLlXQf6cnir@}ty)#V|BIuGzL*cVt;8z0DdvA#4U~f7BwKsI%u*!hgck}frPBV^5 z+68=Fo|~H+U6{rcXE18s5Fg8*O({*4#PfE&?0eQ#DezM$;4-0{x!dQqb-MN8!L?M; z+}F3IE$bhx;sOu=k-#vX|JukiE2pV_mzE9A``4v#A*Pq>!+k@)rejY+>Z>Wo9quc&cHOgv2M&nHjWQ7w}3DE;+2(H!mFk57r zo14%cnr3KgTe*vmjo0rkaKtk9ebns7bo++4OcWM`h8vdAI>pzgt3PwC?1&c7y>Zub zm(8}HEo2aPm`frpF**tcg?J|U7nL2k|HBY1h_*ZU;u5`@bhnT z(Rlgt%;@kny!cOOaNkJ}ZpR=C8R;%;tmfQ2@RxZ1t;{<~C&y+79xV6|nHIN$It?6m zqR|7ai~&*kmB(Lu?oi}nZ0%;Wy2%Lbm2Vd~JKZ+Fdf=kNf1F@sT*OB@+R(XMiGF?e zc4hM!wDoZ!Q`i66I0_A|uva0Ej?cg)v)c6JV29gteH<2@3Uzv8pIN=qW(gbaF_=TZ z`?3%ZrS9{d&(#{r-N{QT<66-NKLeZ5mo|+T$vnS_1(xQP7Q+rF2R%FXv@uASDil_> zo@)ncBk1h6=O*8ICo|}YaTl=2#fg@n$2qP;F0^5cw1A&6^(X!=fJeynu-BX(KQptf zy`4j+x*=({P+PA@|if=;Zw1jx@zei-w+b{{3Ljz4`2sF}CZ% zovk3M>ECC*TD;iO5bL(K@nAdO-i}~dB$ttiI;3%JWg`OY2h^RO5*eP+A04s2e%=F1 zgG`qs#DHkdlKn(zo?^f!{r=9*PS9LN!^p+m;=(-a$NPtou+!IPdU6>bBi6hj-_vSB zMUkF(saIGyd`MxHaWEU7 z)&Z}lrk_if&>4L_5`c=$FE8;3m&kFEk>g&Jry`*)r$@1~mQ-$Ya-mG{L@e7Azbv1B45 zkN-6{$mEXAl74-1Sv?@1j-TCWL}-t;lIhbu^mpi8$@mn9<+jQ(E4>ERqzHcCTJye{ z(9^c9`n-T+Mz6^GNUPb^)~BneCLR5inERhl%LX0>kPcsl5_P2;%e86WN|GU0l9uP| zW8t#BZ+O-~H1zs98BcU_x>&7qG1uE&ZfoNSeu#+}x41giZGLqs3W;cBY`gO~!7ql> zZ?OrDzx%;>w(o(D2#^qjd`h}?J}0a2pU#85pt|bb&gMw zNfr}1WT@v;In{6oBwa2ytocftM@QrdQIeAJ_^f8A;ifovSQkb!W}>A%w}TshtgYso z>XMWsefPsO*T;Q~JEyJ8j!DZLrRgqWI;m$oF1(>D<~dX%7t_lU#4rVP$Wpw@=iH?~ zf%YeIsW2}`13Jp!5DXe@>ZFD}A#2-ZItC?TuZbD9oK6ZP=@T)i)8(l22^yS-O;~Jo z-PXFja&G(RVY2Sh`-P{}kJbGv*kmZ}Qp0wl42KQ4#5eLzo8_Bt^&T*izI^I_BeBk{&kt;@8q0!6>X`sODv*%LK(xT;mn=At2jwQOzCJf=XX2st{Ls$ zZ1D>ka9O{C@#J*MrlaameOA_@;h`e0^~lQU?Y6YNyGo7KT8)T^NNz__T~)mtpNhc8 zQ74CSiDOLaC$b=KF%8-=K-LrY$aPCd5A2;h~U7(qx#RE$X#-agh0DBH$GzMkeaeVDlY`B9VLaDBa6OobCL_ta zQoRXARCC~?g+8}|Bcl^{ws|y3ED_Ff)jXs3Udrt)a@EJG(5?n-sK5Nl(;EVi>;T*S zNNkze6__En@w{zZpMU6@F3K4NAC)06af9R{wEWoQsFqA0O8zcyieAWbTIdH)!k`H! zo6xc*m(WPhbV6t7PoZ!d8-nf^Fl=)_ckTJF+HqfS-}vNfM*)SHn&!q1^PRW#TIyw# zO#Tn%ovQ%;T13Pj%kRnMNRB$OA*~hdh+P4h6lOBn=IQ0?tFHcThWd~G&X52|;_v6- z!{_=fY(Ruw)2!ua1tK71DKKiZKx7%s8!8$RGY{ikQt?#4fs?beonDL*jaDmp7SYcZ z_Oz_XgLOcZu*ahZ}eCcn!Ptb3*N=<5|Z`g!mmS;tVco^Pfw>5tj&fPC`B> zG2K9F&{k1!xI#=fmk#9)bD%La-&aTLCf=kG2J}x09qFyFH+Pwtnai%4N!uoccC=<0 z2z%%W^)j7@)q2e&oTVnNbpN`!ZJ#Lr;up=S4IL63F7*Pv^ZM@c+t=1kfh+Q|u9~{% zXL0fh8qI}ymb%|S6c3UmO&au1=t-pj0N@1pDm{{rWMS*Ms+e@R|5VT`O0Aeph9Dl_ znU!;7`BIPb;RbCvfGqUAfzh{d4{t!E-NlXTt_(S^p|ZN}qLkQ~{l-<^%SLp__vCU6 zef?~qrMkQG>Dfgcgz-<{_BVg+LLxjtpgyIMC556Q*Ks$y*)K|d_AmVGe>N7w?L$c6 zzCRY66q$VT-9W*@LU%qGcW(ah!cs2~TDY8LuSn(((rMnc=-+jDcyCZya|%&BNM9_t^gr568 zw>Rer^Dpj{A!J@L9=mGB+GOQ!clh|eN%TdXDoJ~FW;FE|_AhKOu<6^s@hhp6ha44i zBit}!+^{VImVYHj|A{O8zvl3X2=JEH$%YbFA+vhF+A{len)9QmL0Dus_lMX!@n+Qb z+E8SG&0BxAxX{NTxP=&O(~0D9E%U>&V1mNrZv_%12qDiSx8VO1%)oIY~ti(P|3-; z^mKF<_3_GISjadjOa-N75Me;C(6CvVI_W2%6g8Q>Ju?Xjh2=JTNli@@sF+e6M?5XQ z$e{J%vC7T0H6Mf6Sq30gZJF-%_eVKpc+FXe}l<_9l)X9 zcPoeE=f=(7KVsiQh3Y-tkJ`!q6cS%nOnp(i?xQXFzzaSA6oTU7`2N?p!$5yhMh+exT4E^n%-__+fl9?HUi36+ zWAzOC0+SFqoHUFY&bH};F#q$P(VZPH zlGAz*bm(9XOqava&j=MZ1RM9~4RPQuSQoaC_ky(8)vbZn?m4&fcP)W+cbiqoA<6x? zP;f}_UPlQjHpPTc7A2HLl>Iw_s*Mjx%=2{O;DT20qmlapIaAtFBS-i769xiUIyw%~ zGE>A!@;{_JZpds5al^6>E!|bf@WXZ6OxjP69V#Rg2IGVCxl-MTSxr@i^fx5i=NwlMXhw!`+k_EbNzhHQ&LI=9UFg~orCG4+^rCVHkuA;jw79GFbbo- zzS^|P?G@@TD3}=il8_Svfa)85-G|f!8lB~v7K!nH7GwLYCW_ksN+EHkP-F#9VsnmML|VPo5Je)n(wumw#f;*V%RV(nfQ>x-Sy#QvLQEjh%{(lEpT zL(ey!dX65~x1M*cFP``RKKr-V-uu4S%#OSFzOU>0Wt@=**61l%dkL9;dBFiS)|-M?4Kh%@@=E6~EoZX|QhdK&^<`CM;n#d{ z(?iZKDNh~d3=+rsC>v+e%aoM2nvi|<9$9Q3PVT5AxgC(Zx>-`qc z-&-P0EAP!P-m-Y3uO!~`bdzuUqu|scLO9WP#(EpU#9m{7D>;v7c%$5Xbfi}9u^TkT zsg@&3MN4*oLtUe;_6ZVw5mc$B|#C5+a}9FM>I@l4807hg+xIKr%D&wQs~H8)~`ka-9`o>@cMvjVJG+RW0#KHNA#F#w-lq z9+;@YLu&VyD_JJcDsv=1oRlDyODOWx3)Yeu-B4aT+{C-i!87hV4r~g`$(cd8{6e8> zl|W5tb*$z@60vDDJckZK{d>V{yhmAN07(}mZnu>l) zia+d(<_f|GLNDTVOnyE;e=jnx&ngPT5sZ?{@xLq_S;u~ZtGx`QMOu(KVsKTHlsTnW@o63mg>LSKnLx=#pH(Igu2%XY){)EPw`s&SDlw&> z5198P-@SD1zMFjW%R!LF+lM?!%Adp_GHmlva&46-n2&@FyJum#YX{e`6vJbU+|a|^ zIXh14Ys2ff4+Vn|V)s-?Z1UL>JL~|f1Y_7#Zg<74D)d-hNBnLe z0r1j_7Ch4@M7UT-$0Rx?ia0q+WcW{QB$LK&WfZH`)xtg|kZlYNE331MM{ zw3dw3r}kSp<7{pMv8p;Kk=h&`3Cwsg@|yOB;v=KLD4;>pOzxNv0C4ElJ71Z|Mp|xn zH^Uffa@}oI`J^`5`zni@rZ4N@;LhHdsQ$WJLBZFSH2xyh8{8MA>6e}2&m3&*_|v(u zTv{519*FTtiSaSn>^JMPFKc^X-4}RX?BcD8y6JgCqkSIcS0b+U8E z?OL=i>W;?Siw%}8`jlS5eV78!^v)JC3sWd5C@RbZ^p8ks`ukJGF?rZ(bGq@7D6&@b zt-t!v(492oj_TvPwHje@IkpZ(&?rw&l;a!_W_-IRpix9ntIo=srFB^ds~J`|+&m68x~@sSmgA*4@#SrYCd%>zTY7>yN9s{%fz zkl^D-Pm7DlBwkgR0Ye1D=?~qP8_J#X0xZ0xLWf~t>LK0-S+G<<6^1nB(f}_Pig?jr zl=L)r1ZCRdm)0O$6?{;~dZ+gC@|Ts)!=Z1T`Nyg5Ilhf4Ll+*ngxf;W`NEDfox|}} zfL&g?3rVC$M*z%!!bZCBI_hJ5 zIOARsMFiWo(MIkQwwxckweLH*-$Q7@R^vjg5^d!p)VH%7CD6qxP{#=mdCBHJ0aaXK zQJ>lynpTO7-AF%`ZrSBaZ1h~_9(-D!gfr(?PIaO8`t8@_TZ7W#N|kwoku>*P4rdjl zvpFnhWxwlB|GcpERX`heO7Ga%jQF`?X$|ekS5b*<4|^^dLdGtoWgb-m0zA=x+OMng z1IsT=XWyGBEB6eT-n-7gEP5I0p`Ih5xw1saferYFp~R`-wl1h<2ceCc;_(1J=u)ajpY>QeR<-e{fE%qiHt?w-vf3AIHEW%Sn{0pj{H_&1H@ z#*En`%xl)><1OeMruR@O*#zTX2y|zUQx0)_p=ZI~UcoGE&z^nsswoO+?}Uj`540E? zDn)oD7>rE=B5bK!X?|iecwo1NPr(g!GbvxD#!DTYfa26<^y!#{BPs4(nG=4@MLafY zkKThxGk3~?K6tp?Fz?Ruewh1gsXRlA!}7`e*UXRIm?lwKd0*#wmWZa6Kw4HxR=`KW zbgqz)M=Ii9#%E7HO|4o!<>U8vdT11_$TlhjVgNG!W^EyPT>3Vk zX~4GBN4WeCW9+~?T^G=;8G98iYuc_ov>6ZFO5qnABfTyhY%QK%?Yc$cR<=#^qr8ae z&Q5YcTl+bR#92SHbQ?!UJ4HLLBB7WELV}e?#K3E+L^SMoxq%!uVMN%tsqq>J=YB=gRXD9 zbj%b0IevO8qpP#CsH2O6VVhgaRz2o%Uq1i?GTc*cGTcjC~LWm}gk8d%*nZfy#p!(s# z5jXoq*xAwizV@Ka4pAy1TdMcqlgFSm#CNBQ)ow7Fe2s?2&8pCBZoBN&@|_Pz7n)Vl*p3JI4Q~J&Q2F@ehxl%wMPQ3jg3N(lcRpa3!Dah@4#O7 zIa+wVe+r~Q+czshoCLsvP=Tj``CY9S2R{7~L68n^a&k|3E1jD)LsDGMIbRs72CLf? zdKDJBe(N;o7tl_+LuCovK%=xu_J~FVtbW!XXT8arSqXi|ru=JQQKwI1r_U7n7nK=F z$du)e`4@E7zHrI;!rDgh^%Y*JEim-3>W=L_@#kS%ZzPYq)wExi;cHWt@o8C>^qf0s zQ{Kibu@O=)e_%6wM{W3z44}I1BCHaXsz+?CmoTUj4J)_sJR9;W`QfPy42Zx<8v$8) zSsUwDg!_65)!f(VTPdqy<=i*YCS=q4%P&zoufX7ih4`t{(=rkrA`Q}I=_vALYpXT) z#@5{2i?BF>scJhwv~@rLVlgl8%af&@(oF^WD2=Gl&pV9V-0Sll+>pOji3}CsHX6b>wbq(_tnUH!pudF=wc5_Z>ga z$;u9B*?aLQac04Nd^D?DSsl-h>Cd9{Bq^8Uk+u~>86OUB)mZYYH~0G9mUJ^Lx-|G% z56`aGGO>h*cP&NW6X^0ryb29{&8B=%pv17RG^TNwps1_vj9Jb7&PP+%@`9V|W7Tv4 zaXYv2F*7}*)r77hS@I#R=d7COmxjLgTz)T%sCOY}&Cy1VN|*27<857OBE)XmMb0%( zJ|~W!4gs9cHJ=T%bF<(;S4tTKpTY28&#hvgR0~QVnPhWDz@xh_iJ1Q^J#ZW?* z>JP6_B)nm>m$M{#@(a!#4f}1YO;}KUm1)O#Zq9{+b*8Ux^^#+8`QemYR^w=y<51&= z4v0+7PDw;Kd<8))CK3I z{Kp+N6+KcZ9KV~#q|`YNxd2{sW@y#}iVim#$QM3*BBf8}mD!a83E>@LlGB<-Ispf( zOPZYu@~>W#nsSod2<6C1=6UcXFI7`hBVlaIN!!!YHa0f4NX#~4GOxLy z#220(#5%eWh-ZD1chLk4K!hUgK~p=Sp&8>Y)*tDj#_YD&wnixq46cUwE|`GHpDe}R z1&o68J0VS-G{KiDrK5Kl_K}BX1mUkwPV4O^XbD2|idq(yKJn^0OuS7_V@^@p*5&aM z^E^rDkR>IixG%|)?*FDSf2ps~FL9Duz)yq-X!k+V3i%+dU&W9L<%IRJDX44dMpoum zr>9jR&){Z%Gu%v9s1u(tcXjFmkI0m+H{BZX?SB3|cTDN?UYZ3|OF-{o$d`|DQw5PX ziYhBB43uPh8c&BKIi}H%n$rkWGbo67lEA8zbnBQQjF14aMu3K^m!gZ_?&n;o*^&Hw zWYol@m&9x^c*12mqzsvzPI*V@b-0z}1B+pB4P5vN7Wk@~T5yZ{yH5XmFfc}t22bwc z%J^Zp1g-OXquDYYH=3ExmVB5i=jVrPenZ02y~)guzi)jcjpl7NufgDzxy#E~@|uI& zu%w}{8tNSB8?6HE(z_j4@-)f!9YRV9@)kc$y1B+liz%=Pr1h<{swZ*kTL0wxzwxK#lXS5lc8%TF2~{sidZ@ngbv(iahoq zlEqai&O~KH?TziZE$+q_Nyd+U&GkA=>R^0*0?bgMOk*XWR$Ab}$Yi@z=a2B`Y{9t` z6{EMe$)Y-H5yQpvyV6aLY+Gr3-$R! zsV1u`yxAWXIkwr{EI~GqAt!q!=-K2j^9YN2E!6=z`Q^^ZnYl`qbN{e=Rw;ha7@BHPjUH5Op5N~QA5OvIM%+7LZ%4v2D)!6;j zWjmJB*@19I1izE!54*5hLI{tdRx7r~avT=K^g2|+`y_KxQqYerfqcth(Mn5`9j~$d zE}zil(BBkos+2!oi;W$C%mu(khxf-?9`QvmiLiZC<)S6I>$j_D=jh+Qw>83CX!(HT zz4DN0voaC33?XK9k6QyJ_Y}}sN8O&WgwU!V9Ub)b^1c@=tu2o1?j#Z z_Yx2gN^`V~HOMl_AMy6}xr@K`;+LfQVR?qK5}j+fI4+vsVD}hF^LGnqsgVQ1xUNJc z=IGqBG%ZLaJs{=K=rK%{%hTvrS$qqZ6r~wQn8+z*hz!rB;LQkeVgM6D5grd_bX8c4 z{Y3M71RxDO$5lR7Hnj2l=?&jszw%hNdnKiFJ7Sawj@}v%QusADgNZQTo5u_)r|K80 zRi+@Hc&FbV{`&2y1Y88{ogCU0SHX-rrYr$&2fK0bA!CO4#{M+&Viy!Q zX2GBqP$Pttb%4>Z1RjJ?)FaYz`t z$^_Gktt67&5E4Xb+{wX<2^^NUFnKLAyl%bM>7iHab zsqX*C!p7yv8+7<11?XxKMtT+NBi5q((WLsge=E&UG%H;;bbgYvqi_@E8n3jo01@j+(P_=^F!6@q`C)32<8a`NeCVwvD)f65z z!t2Mny&Ol(bj*2GRaNRFfQf-b`SNMt>PIBfTAI%>Qn^wIo;B*kM>I50aM7F0bFwxg zjG0^?q8r|hYQoebtY_~QmbdrjA3b=^h&FEp4!>}wQx9#s7`Zjw#vp$pHD6g#MZ@Ij z@4Ng$S2rctH1cZ5xv5F|yO9ShiQUs(Bhy`)#bd~m=CxF|BxV0+gG7+o`=2b{V`$xW z9$8sg@Uu6v8}hR47Z)uPHM1UXdU;ReavW#9yQ1kZHS>_{x7+qWW2z@64GC~ z%4HwcuibBwS610FtNS?zZ#fe~E=Ejr3U^Ff z@C-#=#a7-U>OVW(#qYZM+Ev4hA^wX){edJFCg~uicL5k+#r5EKO`4DV6D7p~F8i{G zHaTRGw8Uh)o1&b)w!g83<|7iKERg^o)2FqHO#26S^X#-auhkh!8ZPM#vh~ zQ9;cJu(4xpO00|R?D;(j7WRCMv6pWD#Ab_KzOCRrqLL3AFvYkV2)N%8(7vAi1F7e^ zQsWRY+HYR}0aV91YAljMhkD+;%_Jxc6q%AeIIOxb-I*F(+H+#dolJ2*{&Go*sYsCQ zq0Lhht*d|aLx1*1-}aCcS18^CpR2HDeqpfZS$Tebetpqpk<&N+<+VaSwj`PFD4Ccj z5XOtdy)~U+*RX#Wnla`qaH45?qNs}h_PjbGCQGEHzWec=;D`uTu`5dL2|~74LZjo0 z@E=mRml#J0c$kXOt7eQl4YwR>maC=<-D-^Ct1p`Ayouv@9Yfd9~tsT0^9 zn4U>ZLv=xihkq?-)m!M)9HVb)#z#4MU53_+PahZ4sizh0?&-z&&IfmxyNOIt@6VIO z)zR|dnge;JCPpcuIy_q%!umCkogT}}h16Z5)O1kL&d!2Ms&SfaQ1^3qBe20Hz>JAu z(t%vvBh#!`^H!HDr|x)#PuY<*x;P5tE-#zI6dL@R806JKjGT-9j9B;(Gz~+RpB(+@(g}9b$V-z z3@<~T)+}@J9V|7WQ z;Va9%y+ww<%2H)yFL(#Qs*;aLvN(068oX+fX7~!9TiQZV!+1b-DWaR9tbufi-Qa+W z5n(5|9}?u7S+$_rzgb&b8*U?Kd+37J6_fiUe2I_c^2%nn<1aTUOyC-b)UW*$`WT(TYWzw+E?{s?M(Z?o;0+3zAPM|l-uMtx_`b&l`&}( z`*r0Lbh;iYHk6^cU6>5gCs&%=nnn{alywhUk|_7~_CkhW)d%6PUmM+x>3l}$Cxwp9 z3QRQ%8nU^Ur$i^7Rkdi2oXIF6tk(5I4W3QfFr0WdU5j5@ zOK-!cG!~?gS3+b`sfji2iSS(aIl5VRr=M5LRhm-cK-3sDaUHhq9`x)@3>zW-T`6Bf z27{*h+2zKO5jRLtBZqC*MPht>6~Umcj#PcAcUG^U1mB_+?C-=j^{e2=wdcSb$cruA zCcMcaU)f|+@fTiIesUgPF6qXz+Do~sm9rmaFshRJKYR!&8ycfruH%Z4pE=2P3Tm9) z)Sd+dzu^}xz0}gxO-|xYqb432v-hv8RG75czz%LbSNFenZ|yK|O?NPDK}0Qi8Ix?o z!wTp|)JvW6W&RV)N7xE3M~p9;^NGp*0pHtQ_lPF9W2?`-n#LNh|BYCMItUgg3e6v$ zJSPVB`8$=;$k6)05fADb*oK%f8{&xLi(e{rkoj~0=;7t;qoVNfve zZ<&My!|B-i`k9b*^fcT_UE31VFU80*uq0{_9yo!*!s{Jop9zs)Samr8@2!UJNc5V> zNMCdlm;^4tLPK$wnaS=T_PiwS#_Z>uUg7yWt7`oUfFXe&TzA4OhzQC$n+=`H^(>K; z1CnSs?;I8tbz&Y?ZU~fD)mW^+ek-M5tmrcP`f_O&O zyHqeOZEY`zx&3sFqAWXXT}s;ZrOG`*d~BA;`Ti9Kr36f+xiLwQCFPGu>lBh`u(MDohqtWBU&#VNQli z4xb%;k3W~h*#nJ2R5C_{YPI z5bqZp``*NHUHP?Jdr=No{#LPm=eX|Rpf+-xtc|~Yd!i9Ul(;Iyh}*$6{`?&EN7R|M z{l7zs{d@EB_j34ea%%sR{w^&HNB0giysp=N?RvgWJoRB_KUjhBKi*CY6*R)kD z6ir&u`gYJC=*EGCW#mfux2ybhO|%9a@8(SjCy-Ci!mvkER+WCE)p~lNeR9<#`*yk| zhQcr|VCubVky2IdXee22hTxwz*^*rC&5UsDj4tGUjBwJgwVn$ymdq&wxN$YQnr-&@ zx~pyygqj9|&PEBW%shxs`@g4yDi!Zu{43_rLiVCI}5nuZ%N6c zK0iW%rnZk_20c7?5c)o=G)O9{(H)uZ68N`A_a|PIYHGBbYkg!~-CT5gxV)f1gf`B3 zV{ISzbWC3?r25E5(kUgpF9-HUCDuLg0Ha{*w|X&iTA_dF0px%D*g4e@Z8m5fcOeQ`FvmDwJ2X-yjd*1+w)Y$Z&4yNVWO8PWy>RkG#i7Ou_o^Notsoy zypFo+`Ao0FriG<5CY3F{Cr_jT8R7}!72Q9E%X9Yjsv?8K4^HKy90Md*%d5+^O%uUC zGj#@6XtQA52LY?}4JGpjBc=9g#o4pv$W+@#cVkHKKZ;`bnO20anVFdm9M`<4YWbm$ zF{~|KapJ!0^DQIThbJr8Ka@sHVxdY&016sIN2{RvDkByK|Da!!Ky3?bJwjz-g8g*Y zk8pw+UTkNkA51fN00l39bval6NqS$H-a&oZ-HjNr4nSV;FwEtMSnBI+Mq1vnv~(=j zc@^_{GADqNI+{+}+vmiXdrW(F+S#!xL(}az!+8uQP&}Ne?8ebw`oqBnQ@UmynydHj z8G5HzIWYmhRBL05##!+iBeDM`#MmBT+yeI2U~|~=@?Gu7r6=-sTgBa`8uyTbJcw8H ztF?Ca1bw*9Bk%yNjT}=C#B`Td}Aij;E^%C zEWnFzWj%23huV%gOSUj3S1^thu3XR`zGZZf9n~puE$+;^3$TNiet&>suXM%5`b_nG zgYnS^Uab#qTug51*SmBspkE@!cdc@1%$QWZA%RPJBnkW72bs;gf zO#E{l*>KV};99w#8u0e3lkO;lbzobdVwm>R^qZXt&|L5*f3`fUOFUd^% zwKnAs2UfIIJy`$10g(&AM;z+qcv4Oe;%w4aT${#JNVE5uivhFJrzvmjog#4%;n>Q)!&!#$DPjqML4_D_0% z$+ImWhDFyV0-6f_MkZ9(gx*0%AF+8AchLLR$5ZsD8I5;|~ ztyKZDGA|$d(SjNzG>x=Gq%P~0$F~&)d=7oev*Q;A2Ooo`b;*vMuk8e!3w#;6_}bru zvMe-O`D_{cvrXL|UsnT&1NkmrQ#P~l5#)aHg=@-5T=2~j$O+Cz>Vor{UR4Bz!_Uog-iJY9`%g1*CKQWZ800NyeRn{{) zIy!$LbZE}E?&;fif0Q+%1HTyIBIbeAhs067eheGa{f&TQmWm@qf{e;K^NtX^^%3jR zL{^=jgEMa{&h?N$&qJ3?#>I?)bJNm&@?*lg5NwSwF}W{F;f+&DeLY`FEK=V2%BETB zCCCxt6k71l?I|Q*|etLV+NZQXkn;ee9LUaeBPx6;RxeG&VOEF)Ab(ybMV&4D0_d@MoJ%72n!`+Rj!qcr97?7Nn z2z#Po5^xEBHW%1U*yhKfZK`XipSZqlIACX0DZA-CyO1|_;zk^YeGsr2+qe@Gge zIO@D(YAQ@2&f2%JDWIbItf?-)l-~7h_F@q#peFben`spR?j{YcKAwAYJ&R`B5;MZ9 z?8mHzDSduo?gz3wDO7i9xzAoHi{qahHaE}xEC>9x|3$z zl`u5cZa597bXmp!QBh>)E*#3;V8nCCV=Una<>Sw-?c%RH#SXeJ8T3|5d^H|0@MhB5(p!jeQr}&8ueA3jA-}@uFhZ zXr31KI66Rr0JTVB^Hq!6BUo5M{z|ekT9(U_pI+)*B?>m>ym>RE8QT9G)Jy2qLGXQ} z^FO`}|3ChK7a0Bg7cJpPf-2`Gk@Pgoa_2+)Iz?BCPFE|HcQX+*4t-khhUe7E4Gzt7 zGJ_hctB={$MWH7E!m-)|ClW@y?fsx910X{6rN%1|3mIZv6VBg!G0xdyR z$uo46v<+MkaTgHN)M>m_?EPapLv1 z(A@^ycx(-5ptzH$_163xeTkp#cH{+16BkD!Gu)sZSXc4IZ0^k?8|Z1(I@(LUM1cH~ znH;1y85=#8tQqb*ynmI@qL+M`WbJJ zi-DU?x|HE1_OSObWbvg0bK2n2So)^0|FNq!Fn)Tr?ajdlc&18(oc^0hc?PO$2^Dju?CvW|?m&g4{vn*q&B+`$p7;1(Uy9Mi1r7diSYh>{Ld=PZ&H4KSt3=Jb0axPxJ zi5=X5Qyz6hdpuT>a>mN)x^wkk63G9O5uc_vgxmmKZl10M5IgN-lnow zVHUfYeOp_3heAs`oL|iH>!3bE)oKwkxHs7;B8b8$bOqnLB)Oz8o#6UDneLG`@ z7BfGrLnVB@3WL+Qr`Ywp?Un1vi8q|QJbo=oH`X4A#qN`olMs*O2D@biq)qR(jQHC5h=v}z#YFxwm5Dh_lbK7;1=HW zL5g;RXb`Tpeg8`KP*0U{`$K{<<&H%$H~-3p?C??7npXQK5B(gn8ZKKOe*@2`-;&C~ zfEDzTE6e%A0-8;BuKLox>{{~QX;fk99~hv<_$dIn&|#d7=#(#c$sF6b#R{$3xXog= zC17c_4oQPTYN6-5rXVLk!wm0*c}eef{nQqIyHSg0{_qo3S#n;}ECDk=C(rTtCDs>i ze2$(9`rdL^drcZ&IJQj;2^LMssy=*Zv^D!kA^WQ|9_EIQe_1;$7Ipx`+|BkDPwYI- zV`(}H3mc=OTluY2xOuDfnmmn_m0y_57PR=EjgF?qQj2A}Ngv;ep;*2*m`@Y{AVR?Ux z<@CU{Wahj$03sbz?KbX2`Af~^=65~npTWQ%U&hLoM&A{4zmC)3vXIdFtnagz*_U@g zn5Q{75J*zifBJ$?%mC+Ka$>W z<+}}>D=aSNHaM`dv+KdkEzbI*E(oObFic!BF1o+%aH1B~jFY;hrM82^ z&O&>b#|{rh=bG>C&U33+<~&RR0L*$fEk~*PTrln8#NxoLI7`(CI6Gw0$%Th;KNfeXh>uWw*u#3`M=4(os!|^Ey8* zfzz(lJ~32~#pK-LqU1v}^1|A%4)dhmWdb@n$7Qn!-O{(RZ<7RhIPHy|sR_86dm3k* z9Pg39$^ND){FhGd<#kteb#+5%fU1k)87i=BWZgpyBeKQ=@+RvFC{(I|uEtW>$u-44Szu~*_qsxWGBU+RQ{$VQ_gkHS0h=HJN2_%O2+ zty<^!2W(H>LSUu@{<`8{ULjERpJsMYB=LG&c89hNMr38xbIsn5^Oe|mtM8}TMPU4k znYX|0A1PXnrR3*3z~5A$a~!cbCDhPNgdRT4oy)zAV3a?v4MdZssSI-<=BhS}i;6yd zIvCwlr-}i9F(6Ga0gIS&M@--=d^K8^(;jc9YnRgVJinWJebeqTVv<|cn2g5n>o^_8 zv74R4fuO*9f(p=$_WJ~Mx!$vEP{%gwT%;cvn34lg0?uEIjTHa$;EZ3}H82`HgheiL)#_tr4|Ct2;_kJ=^t48pU#Y@wpf#uTvP5h;5DJ4aW zKPe_r941niXya*-QEXg``yQD`XU};;)n6nEAp=KN|n3)r`X^U5=_@(2Y!LRZdJy9DR_18VULb zj_aSuuK#ai0!d?7ZAN0E|3PU{^2+0#Oa1(DQuIMX zNjZ=3-HuE!Vp}=@KI6fG{u*>~HksTMslsyB-wW*<>_y(V(&c!@D?an=vt%;k_2BR^ zJhiX7+1%6TWEwu>i1$!^UEjhQv%t<4IvW2C`mj$QKZd8Yc9hU#QtmU_{>Tn^s7vJ> z8~y&FmtP%tVt7_a+`2}bn!m2j&zymXoivh8;u6dyBQL8T78^bLAVyuSZ@S`Y4!#wQ z7`1_&gK zt5Yg`TKF`rK#OSTJeb>vIUQth%huMR*VuAwy&3*wP=_EP#n-4CNdu8w>tO*_`SJHKK2dGJ97M;&Ke}S`?4(+zg#r zNX@Eyzi;K0jq-xTv&*q6XY1}u5P9p*G_7dwD<8$~Dyph!l-6r!s-+|aU8-rYkxKJ$ zZ9yKq2fFp`y=rx-2g|Y~&QQ`t(Xy}5f2Z{Kn|cjO;U@fQ&_{dn*?I4lgTBGCo}T={ zO69^~j7-5brxebqSmL1L-B0W8PCO(ex{Pj8@pBw}uGtwL$DhX&!c~?mxE*1W9G+_A z*~HlB?P_@vVq)1$MFxzc(1gQ7k9fsTu15DM;BY&KJ^`WR^vwOm1|*I*tC&wC-3!IP z^Z|dnlW!7)7aCZoyhI$NP`S6y)V60F{IYo^)Gdygxv;39`H9BKKoV3BF^H*w!|si2 z;NtZIj7sA6UPW~nr9t(GT&r>Q2sbZp9d~x3(^~k^=LHRIDHxPR0Y6ooG zyC~Y&zX?%8%WoU{nVW007A1gqCRq9as6uN(jlM^<#y?4-V_ZO`jxU$^nSp(I*QRJT z@GY|RM0>n|ic&)RTQz%Or* z-(R@GV)XG9UaHHt$jD;6R1DXn1@z00I+uTyx!+|k|BWCj@aj(*9c2dZ5Q(D z>18w6{}N1qOF%0z=Nv8GNwXB|+6A_NKR{3b{?~(2L(xt2f|johOhdX&-s^GSpnvs7 z&(mQb@{%`B0;JymS-WSnKnuw96`GwN!#cVjX|9FW5QmR384G`#V|;z5Q=^;;=vZIB~ZxsCnKlO?@m zOK$eQ!7;96Jf}flI&DG0oI6BKRnou!W1p$5mM3eQJ1ujX$k0=fpCuYym@AYXdAd(- znkv;V#ZDY@SE1_6O_zx!ol*1A^XxZoo;)>r>()DL_G{qQLa@alYYw}AL&t*G;?NlS zu?lH?7mN&pX}-nlSYB48?+V+O!&@m2`-!H%)NPj>N&6LHkFcIOFT-2rX-M>kWzeeD zHjStir`d3Uerc)a3=2aP*#Okb^_|^L3r~tYignE3#S5!WIJ=UP@Idc*#Y%7eQEW)q z?VOYKlr3iJmCt6e|JvjexE1^>`7KI&MrkWZh{~-rLiEPTD$1nCCccbTTq8#8@J@aZ zYtbBihk%2o_Z*m2uqhQr(bO`%d(ekJ6yr|VZO6XX( zwM`n!DQ{gwk_;A9~)3-Jhx zbH}~HQl}(K+#g@m6t0pjA$m%*ej8h`H@pBQ5Y@Gc^nx(Fu&vVPLabr`17!IN>Nupy zscy>SVqn_IA9c7r4RRumAGXdh@jy42u;=g zh0Dv=Bh~}r0VMHsROz&RP1P=AJy(HqWGkya%`J7(Ih%N)YC_oqO{<8b*a7b}N=mok zaunSYb)0`;Hl9EN91c4k!E!H)I$5rPvD+$1mLr#tM=p4r3m>&B*4^@ zhXDh*Loawij6n_XY%>Ho5eU{)Q}Ga_A0i29w;uROC8ZU1p_>*I5m{@V*8wo@dHLJ1 zJE&Q@ab##tX7;RT2^H6hCiR#85rvNLFa5m&zX9X^Gv9v4$o}g_FXnC{0^i$rv0z=1 zA(XpS(etpPp9iPa;aQB({ih*ULqJ2Wcl>A{{a0gt5u>wz=IdI$k>Wy*Xfp=m0Ty`R zp-tZc7odggf}DYdL19$8=xU~$)2Ozp($Ufu!C$}lXC1LL_?Qn|_Xv?71W~7|#i#$e2tfRYroqx;fGeFifP6}avdi^6N9aQ+ zB9m3Lh?hOf$}z?ehJj~C-t$_BxjzK4(O-R@AL>DFuxHNZRTCj{XkOxQPm{Xj{vHnN z9WGB5YnlP}_S*WYsWk2+ptrb^Z*7q(OVY@Z48^0@l~0;>cHk1LOqma}Gt@E2+y4zU zU8boKZZ0Tn&hkSa%Ay9_5EJ6xJ?p%BQIBpmnSI*q)5^<-j&k8X9fN-eGJZxrf#dnt z4s1qFkz}UzT7y#F@`r;oOA(ImR8oHPeT<7hUkAi>k-X>fM*+^2y&=7Uufu*D9=$Of zWH_Fv)|wvJ-n^^36L|RKtFo5tcvXY-oTl&L>ag&AueHw_{=zwDh?$ATZ4Jxx?za~M zxLvpbl*I8bEj>IjS!^UKC^>^X1kq)!4V(T`LWdU%Vc!Oj9vPBa5Rr3|s2h}}l;^Xg z3ph*lWqiS%LK45YxHu47PdA7<3_w5nSnIiCbAs4vKqSt6aPamTtYXccM(;o8fn7c? zhi&>_c7!aPHqM9}ynfAlcu24z-BE&{&llZupQHVUgY#*Pv?QP)t2(M>zmw?VBjl|u zlcP8>4P}Ga-H6yvBueB6IXPhKvyb~xpHDqvVAW{v^N~S|h)=$B0eSe0@F$?WX20!? z-7eOamX<=ks|V4P#?iLiy`^jXV!Hzf9Nh`VN1sHaKgynvlz zf~QHtrn#=gKQYr^mjXu0%bSYJo2&)M$m9K5-tVkKip*3*)RdIEje4aPo`+~_pKj*8 zwYBE+6x*&+<+t4I*dqA}@CtAjg)VS4og397smM0&89jJ=h7JOOD?S|T+VcXPrnwj_ z_PkWzmsM1_BbX?2Y&#btYA~*%HgrQ*)Dmn<@H!SFs7!DDUEb%nf@{hJ#znmMbPQ~k za@YM>OY8ewQzET)B+W0^#cX$Rc`ZEr+|TTpl~s|)=1N&)WEQvKw!76D=y76VL(63= zcLr@)Cbod;ecbP1o&p$~QvV>`XVK^uwP|r*RQmerue9_0ehoiN z*3+f;M9b%QJ6~VeTHNSDIom&uqJO1By|aY~C9K5=N}##|6{oV=mqr2u(dU;L z8cW{yuhUZtsFAH$3F)SUwJ)43A096u=5K$$n&895XAaO?ewR0GtD!Z-2@GflkALpQe7guEzop_vf*KXzBS+0hWux_8< z75F=%!2WlD!I`fh!s^?iv-N*E-s#`Ria;p9(DxR&-=>VOe>$)9edRhr;rd^#azQ=gIUIk-Tm1-UUx3=`_q{xj zjE-3;p}=``a?IOrt5iVBi!n=haRjBFZ{UWb>+;tcTE&^#^E1Pr*Shv2R4q^#K60R5 zc+UHZFmR3M)sq3_@pj$QB-AuxVMv4w3+zWtxmt@c=z}N1T@#!g86sms(pF?Q2YYO^X&NR!Tc`U zrEvn&x;1KG01{TO4RxgsoO)Yu2JBaQ$osfkz0n}bDfX6zcrg)%PInU#9Maf>t)Ik) zE{Rkr&bzJ48*a{-FCwmMSE-ZAN4l|AQkdvOQ|H8q6eAahv8bvIXLcTC9>~@nxQn1n z8BM%$aC<~e)zmNj_ZGZqi2=kYsHiKn=(KEQHJgKzeL&R|x!_Y7=(t@e3<7vM`@ZNB zE|#aN9~Gze%;+B<1&;-4s$N?on1!yd?ZtQHc<-s)`|{oriB9GsiVveL!LaJ5FWaiB zvM*3@@2)cY6hr7gM~|l1aP$tR^n~=6bE|TXH$3R{^hZ}i!s74;`}z>;Yjy$o%$Si? zLxWT`Xkv*hUYj$8HPOwOE|8Dt=Jwe;1$K_IsxmGvHa%C5LxnSf=nJ0~=V!YI0O^W` zY|B_Kx94e$z0~?EpZOG$MQi)wzeSz1^0=L&fISCChf(2=T@7&84GeVd>WqO*{Yy(q z?%(%x0{C`i+76^yjl{05nzC_=N=xN#HipYuXxeerfB2v^QY80PVBt<$q^Wed4obXjH*QXD zH&z9ndOKS+{CWTX;w?yuyTqw>Y|;gc`VhC@H~7DH|K{%XyN@Ss_it0a_ECP_`aU^n ztFk>e9`m&-b3fu={pzxH{I?ykw@Q>Y7qek(f0$>wBYxYXLfyQ(@!yPmjV&a%&C`n$ zG|jrpW&7^Sj?0hz`mNCz|H8lS0G^~62trfuGQGnHXoN#yv5D!0K_~N{{oz0B(R(-1 zw-yY@rJF!YA@^=>YzD52V_-@8cg^piVrw?N*y sOaT}j3<@XiS53IwF^F3UwF>We84h`_N?ZRhb|c8ip00i_>zopr0J43ah5!Hn literal 0 HcmV?d00001 diff --git a/testdata/snapshots/darwin/calendar_week_view-light.png b/testdata/snapshots/darwin/calendar_week_view-light.png new file mode 100644 index 0000000000000000000000000000000000000000..65583a1a4c08d347ac499498b408aa390cf5b7cc GIT binary patch literal 45395 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 literal 0 HcmV?d00001 diff --git a/testdata/snapshots/darwin/countdown-light.png b/testdata/snapshots/darwin/countdown-light.png new file mode 100644 index 0000000000000000000000000000000000000000..daf8755721b7c251ee5b75bc54f1a84fe131e115 GIT binary patch literal 5826 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 O0V;}`3gvPZA^!vLDc?!} literal 0 HcmV?d00001 diff --git a/testdata/snapshots/darwin/cron_editor-dark.png b/testdata/snapshots/darwin/cron_editor-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..433762c6343a3188f827f46683d9fc89437c0099 GIT binary patch literal 35900 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 W-_sNh(cuReaES>?3zqZi`2IJi9i4Fi literal 0 HcmV?d00001 diff --git a/testdata/snapshots/darwin/cron_editor-light.png b/testdata/snapshots/darwin/cron_editor-light.png new file mode 100644 index 0000000000000000000000000000000000000000..e8b898b7154a49b553703bbbe6edf90f9cde708a GIT binary patch literal 34297 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 i7u^4jSIH}N-~R%wXr=uC literal 0 HcmV?d00001 diff --git a/testdata/snapshots/darwin/current_time_indicator-dark.png b/testdata/snapshots/darwin/current_time_indicator-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..892631aad7d4da85cfa71aa7a200c1149a120335 GIT binary patch literal 858 zcmeAS@N?(olHy`uVBq!ia0vp^AAooP2NRIoyR*!Qfq_}k)5S5QV$Pduid+p20;~ZO zZJS@n`l!91@1w?_GHVSFPsi_nQ|@oGnRb6#rku;aNrqe(9GH1cNF!_;@&fOr#cyAs z^we^laTf23Bhu%d>V2%fb-`>4Z?5z03-NbJGmvyA3|1X~8Gfa`@5_~9TV%kXt-*c6 zb;=20g{59obD2`5%5|KaIq$V~b&1}&r5zB#zte$z5MyL_nk?;8CP?5_Z@DDxqtPs>EgG$FCVVGUH)nXcVF_3)|0ryGi%Y$;+OHQml{tdnN26SeuVEcWkjV4h*{boFyt=akR{090i& A<^TWy literal 0 HcmV?d00001 diff --git a/testdata/snapshots/darwin/current_time_indicator-light.png b/testdata/snapshots/darwin/current_time_indicator-light.png new file mode 100644 index 0000000000000000000000000000000000000000..56daacdf3180606b136e5eb9cc9ffa441c072a86 GIT binary patch literal 865 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 c=T12t06eDk1Nng*4!8(&6D#97ut&oG04T2aU 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 literal 0 HcmV?d00001 diff --git a/testdata/snapshots/darwin/event_chip-dark.png b/testdata/snapshots/darwin/event_chip-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..d19dfbc508b0bf23b35b19d2bf65992777b2ffba GIT binary patch literal 7091 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 F{{``Ps>lEU literal 0 HcmV?d00001 diff --git a/testdata/snapshots/darwin/event_chip-light.png b/testdata/snapshots/darwin/event_chip-light.png new file mode 100644 index 0000000000000000000000000000000000000000..50ac79d95632fad3ef7be42cc82dcb3a46801e1e GIT binary patch literal 6859 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 Q_P-OYD60mpk~aVFU#YB7!2kdN literal 0 HcmV?d00001 diff --git a/testdata/snapshots/darwin/event_editor-dark.png b/testdata/snapshots/darwin/event_editor-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..5678325531cb55fd697693e076eb1c51b3bcb5f1 GIT binary patch literal 83344 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%0DFpn5YoYDKA8TpOKs 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 D@f1hN literal 0 HcmV?d00001 diff --git a/testdata/snapshots/darwin/event_editor-light.png b/testdata/snapshots/darwin/event_editor-light.png new file mode 100644 index 0000000000000000000000000000000000000000..ac2de163c5e30bec530c8ce3b2769e1389e14663 GIT binary patch literal 80253 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

-)6`H4QajUqj|f+Vh5fbI#y2q$Tq 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 B<2V2S literal 0 HcmV?d00001 diff --git a/timezone_select.go b/timezone_select.go new file mode 100644 index 0000000..c66fd90 --- /dev/null +++ b/timezone_select.go @@ -0,0 +1,208 @@ +package mujica + +import ( + "fmt" + "log/slog" + "strings" + "sync" + "time" + _ "time/tzdata" // zones resolve offline, without the system database + + "github.com/egoist/mygo/ui" + + "mujicaui/internal" + "mujicaui/theme" +) + +// TimezoneSelectOptions configure a TimezoneSelect. +type TimezoneSelectOptions struct { + // Zones are the IANA names offered; empty uses built-ins. + Zones []string + // Common are pinned first; empty uses a built-in short list. + Common []string + // Now dates the offsets; zero uses the system clock. + Now time.Time + Disabled bool + Label string +} + +var timezoneCommon = []string{"UTC", "Asia/Shanghai", "Asia/Tokyo", "Europe/London", "Europe/Paris", "America/New_York", "America/Los_Angeles"} + +var timezoneWorld = []string{"Pacific/Honolulu", "America/Anchorage", "America/Los_Angeles", "America/Denver", "America/Chicago", + "America/Mexico_City", "America/New_York", "America/Toronto", "America/Bogota", "America/Lima", "America/Caracas", + "America/Santiago", "America/Halifax", "America/St_Johns", "America/Sao_Paulo", "America/Argentina/Buenos_Aires", + "Atlantic/Azores", "UTC", "Europe/London", "Europe/Dublin", "Europe/Lisbon", "Africa/Lagos", "Europe/Paris", + "Europe/Berlin", "Europe/Madrid", "Europe/Rome", "Europe/Amsterdam", "Europe/Stockholm", "Europe/Warsaw", + "Africa/Cairo", "Africa/Johannesburg", "Europe/Athens", "Europe/Helsinki", "Europe/Kyiv", "Europe/Istanbul", + "Asia/Jerusalem", "Europe/Moscow", "Asia/Riyadh", "Africa/Nairobi", "Asia/Tehran", "Asia/Dubai", "Asia/Kabul", + "Asia/Karachi", "Asia/Tashkent", "Asia/Kolkata", "Asia/Kathmandu", "Asia/Dhaka", "Asia/Yangon", "Asia/Bangkok", + "Asia/Jakarta", "Asia/Ho_Chi_Minh", "Asia/Shanghai", "Asia/Hong_Kong", "Asia/Taipei", "Asia/Singapore", + "Asia/Manila", "Australia/Perth", "Asia/Seoul", "Asia/Tokyo", "Australia/Darwin", "Australia/Adelaide", + "Australia/Brisbane", "Australia/Sydney", "Pacific/Guam", "Pacific/Noumea", "Pacific/Auckland", "Pacific/Fiji", + "Pacific/Chatham", "Pacific/Tongatapu", "Pacific/Kiritimati"} + +var timezoneCache sync.Map + +// timezoneLoad resolves an IANA name once or panics. +func timezoneLoad(name string) *time.Location { + if v, ok := timezoneCache.Load(name); ok { + return v.(*time.Location) + } + loc, err := time.LoadLocation(name) + if err != nil { + panic(fmt.Sprintf("mujica: TimezoneSelect zone %q: %v", name, err)) + } + timezoneCache.Store(name, loc) + return loc +} + +// TimezoneOffset formats a zone's offset at t, as "UTC+09:00". +func TimezoneOffset(loc *time.Location, t time.Time) string { + _, off := t.In(loc).Zone() + sign := "+" + if off < 0 { + sign, off = "−", -off + } + return fmt.Sprintf("UTC%s%02d:%02d", sign, off/3600, off%3600/60) +} + +// TimezoneSelect searches zones by name or offset into *zone. +func TimezoneSelect(c *ui.Context, zone *string, opts TimezoneSelectOptions) ChoiceResult { + zones, common := opts.Zones, opts.Common + if len(zones) == 0 { + zones = timezoneWorld + } + if len(common) == 0 { + common = timezoneCommon + } + for _, z := range append(append([]string{}, zones...), common...) { + timezoneLoad(z) + } + if *zone != "" { + timezoneLoad(*zone) + } + now := opts.Now + if now.IsZero() { + now = c.Now() + } + k := Tokens(c) + d := Density(c) + label := opts.Label + if label == "" { + label = msg(c, "timezone_select.label") + } + old := *zone + col := ui.Column(c).Width(d.ControlHeight() * 9).Gap(d.Unit()).AlignItems(ui.Stretch).Disabled(opts.Disabled) + open := ui.Local(col, "timezone-open", func() bool { return false }) + query := ui.Local(col, "timezone-query", func() string { return "" }) + hi := ui.Local(col, "timezone-highlight", func() int { return 0 }) + shown := ui.Local(col, "timezone-shown", func() int { return -1 }) + text := "" + if *zone != "" { + text = TimezoneOffset(timezoneLoad(*zone), now) + " · " + timezoneName(*zone) + } + col.Children(func() { + field := datetimeField(c, ui.Row(c), false, false) + field.Children(func() { + t := datetimeTrigger(c, text, msg(c, "timezone_select.placeholder"), "clock").Label(label).Description(text) + if !t.IsDisabled() && (t.Clicked() || !*open && t.Shortcut(0, ui.KeyDown)) { + *open, *query, *hi = !*open, "", 0 + } + }) + datetimePopup(c, field, open, false, func() { + list := timezoneFilter(zones, common, *query, now) + in := TextInput(c, query, TextInputOptions{Placeholder: msg(c, "timezone_select.search"), Label: msg(c, "timezone_select.search")}) + in.Input.AutoFocus() + if in.Changed() { + *hi = 0 + } + if !in.Input.IsDisabled() { + switch { + case in.Input.Shortcut(0, ui.KeyDown): + *hi = min(*hi+1, len(list)-1) + case in.Input.Shortcut(0, ui.KeyUp): + *hi = max(*hi-1, 0) + case in.Submitted() && len(list) > 0: + *zone, *open = list[*hi].name, false + } + } + defer func() { *shown = *hi }() + _, wh := c.Size() + ui.Scroll(c).MaxHeight(min(d.ControlHeight()*8, wh/2)).Children(func() { + if len(list) == 0 { + ui.Text(c, msg(c, "timezone_select.empty")).TextColor(k.TextMuted).Padding(d.Unit() * 2) + } + for i, z := range list { + if i == 0 || z.common != list[i-1].common { + key := "timezone_select.all" + if z.common { + key = "timezone_select.common" + } + ui.Text(c, msg(c, key)).FontSize(FontSize(c, theme.CaptionSize)).TextColor(k.TextMuted).Padding(d.Unit(), d.Unit()*2) + } + if timezoneRow(c, z, i == *hi, i == *hi && *hi != *shown, z.name == *zone) { + *zone, *open = z.name, false + } + } + }) + }) + }) + changed := *zone != old + if changed { + slog.Debug("mujica: timezone_select change", "from", old, "to", *zone) + } + return ChoiceResult{Element: col, changed: changed} +} + +type timezoneEntry struct { + name, offset string + common bool +} + +// timezoneFilter matches names and offsets, common zones first. +func timezoneFilter(zones, common []string, query string, now time.Time) []timezoneEntry { + q := strings.ToLower(strings.TrimSpace(strings.ReplaceAll(query, " ", "_"))) + var out []timezoneEntry + add := func(names []string, isCommon bool) { + for _, z := range names { + off := TimezoneOffset(timezoneLoad(z), now) + if q == "" || strings.Contains(strings.ToLower(z), q) || strings.Contains(strings.ToLower(off), q) { + out = append(out, timezoneEntry{z, off, isCommon}) + } + } + } + add(common, true) + add(zones, false) + return out +} + +// timezoneName is a zone's city part, readable. +func timezoneName(z string) string { + return strings.ReplaceAll(z, "_", " ") +} + +// timezoneRow draws one zone; it reports a click. +func timezoneRow(c *ui.Context, z timezoneEntry, highlighted, reveal, chosen bool) bool { + k := Tokens(c) + d := Density(c) + b := ui.ButtonBase(c).MinHeight(d.ControlHeight()).Justify(ui.Start).Gap(d.Unit() * 3).PaddingX(d.Unit() * 2).Radius(theme.ControlRadius). + Label(z.offset + " " + timezoneName(z.name)) + internal.Ring(b, k.Focus, theme.ControlRadius) + switch { + case chosen || highlighted: + b.Background(k.Selection) + case b.Hovered(): + b.Background(k.SurfaceHover) + } + if reveal { + b.ScrollIntoView() + } + b.Children(func() { + ui.Text(c, z.offset).Width(d.ControlHeight() * 2.4).Shrink(0).FontFeatures("tnum").TextColor(k.TextMuted) + ui.Text(c, timezoneName(z.name)).TextColor(k.Text).Grow(1).Shrink(1).SingleLine().Ellipsis("…") + if chosen { + ui.Box(c).Size(16, 16).Shrink(0).Draw(func(p *ui.Painter, r ui.Rect) { internal.Mark(p, r, "check", k.AccentText) }) + } + }) + return b.Clicked() && !b.IsDisabled() +} diff --git a/timezone_select_test.go b/timezone_select_test.go new file mode 100644 index 0000000..084a170 --- /dev/null +++ b/timezone_select_test.go @@ -0,0 +1,98 @@ +package mujica + +import ( + "testing" + "time" + + "github.com/egoist/mygo/ui" +) + +var tzNow = time.Date(2026, time.July, 1, 12, 0, 0, 0, time.UTC) + +func timezoneTester(zone *string, opts *TimezoneSelectOptions, n *int) *ui.Tester { + return ui.NewTester(func(c *ui.Context) { + Use(c, Settings{}) + o := *opts + o.Now = tzNow + ui.Column(c).Padding(16).Children(func() { + if TimezoneSelect(c, zone, o).Changed() { + *n++ + } + }) + }, 520, 640) +} + +func TestTimezoneSelectSearchByNameAndOffset(t *testing.T) { + zone, n := "", 0 + tt := timezoneTester(&zone, &TimezoneSelectOptions{}, &n) + _ = tt.Click("Time zone") + if !tt.HasText("Common") || !tt.HasText("UTC+09:00 Asia/Tokyo") || !tt.HasText("UTC−04:00 America/New York") { + t.Fatalf("summer offsets and sections: %v", tt.Texts()[:12]) + } + tt.Type("kolk") + if !tt.HasText("UTC+05:30 Asia/Kolkata") || tt.HasText("UTC+09:00 Asia/Tokyo") { + t.Fatalf("name search: %v", tt.Texts()) + } + tt.Key(0, ui.KeyEnter) + if zone != "Asia/Kolkata" || n != 1 || !tt.HasText("UTC+05:30 · Asia/Kolkata") { + t.Fatalf("Enter picked %q", zone) + } + _ = tt.Click("Time zone") + tt.Type("+12:45") + tt.Key(0, ui.KeyEnter) + if zone != "Pacific/Chatham" { + t.Fatalf("offset search picked %q", zone) + } +} + +func TestTimezoneSelectKeysCommonClickEmpty(t *testing.T) { + zone, n := "UTC", 0 + tt := timezoneTester(&zone, &TimezoneSelectOptions{Common: []string{"Europe/Paris"}, Zones: []string{"Asia/Tokyo", "Europe/Paris"}}, &n) + _ = tt.Click("Time zone") + tt.Key(0, ui.KeyDown) + tt.Key(0, ui.KeyEnter) + if zone != "Asia/Tokyo" || n != 1 { + t.Fatalf("Down then Enter picked %q", zone) + } + _ = tt.Click("Time zone") + _ = tt.Click("UTC+02:00 Europe/Paris") + if zone != "Europe/Paris" { + t.Fatalf("click picked %q", zone) + } + _ = tt.Click("Time zone") + tt.Type("atlantis") + if !tt.HasText("No matching time zone.") { + t.Fatal("no empty state") + } +} + +func TestTimezoneSelectDisabledAndInvalid(t *testing.T) { + zone, n := "UTC", 0 + tt := timezoneTester(&zone, &TimezoneSelectOptions{Disabled: true}, &n) + _ = tt.Click("Time zone") + tt.Key(0, ui.KeyTab) + tt.Key(0, ui.KeyDown) + if tt.HasText("Common") { + t.Fatal("disabled select opened") + } + defer func() { + if recover() == nil { + t.Fatal("expected panic for an unknown zone") + } + }() + bad := "Mars/Olympus" + timezoneTester(&bad, &TimezoneSelectOptions{}, &n) +} + +func TestTimezoneOffsetHalfHours(t *testing.T) { + if got := TimezoneOffset(timezoneLoad("America/St_Johns"), tzNow); got != "UTC−02:30" { + t.Fatalf("offset %q", got) + } +} + +func TestTimezoneSelectSnapshot(t *testing.T) { + zone := "Asia/Shanghai" + snapshot(t, "timezone_select", 420, 80, func(c *ui.Context) { + ui.Column(c).Padding(16).Children(func() { TimezoneSelect(c, &zone, TimezoneSelectOptions{Now: tzNow}) }) + }) +} diff --git a/week_picker.go b/week_picker.go new file mode 100644 index 0000000..d01665a --- /dev/null +++ b/week_picker.go @@ -0,0 +1,96 @@ +package mujica + +import ( + "fmt" + "log/slog" + + "github.com/egoist/mygo/ui" + + "mujicaui/icons" +) + +// WeekPickerOptions configure a WeekPicker. +type WeekPickerOptions struct { + WeekStart WeekStart + // Min and Max bound the chosen week's days. + Min, Max Date + // Today is marked; zero uses the system clock. + Today Date + Clearable bool + Disabled bool + Label string +} + +// WeekPicker chooses a week; *value is its first day. +func WeekPicker(c *ui.Context, value *Date, opts WeekPickerOptions) ChoiceResult { + datetimeCheckDate("WeekPicker value", *value) + datetimeCheckBounds("WeekPicker", opts.Min, opts.Max) + first := calendarFirstWeekday(c, opts.WeekStart) + weekOf := func(d Date) Date { return d.AddDays(-((int(d.Weekday()) - int(first) + 7) % 7)) } + if !value.IsZero() && weekOf(*value) != *value { + panic(fmt.Sprintf("mujica: WeekPicker value %v does not start a week", *value)) + } + d := Density(c) + today := datetimeToday(c, opts.Today) + label := opts.Label + if label == "" { + label = msg(c, "week_picker.label") + } + enabled := func(x Date) bool { + w := weekOf(x) + return w.AddDays(6).within(opts.Min, Date{}) && w.within(Date{}, opts.Max) + } + col := ui.Column(c).Width(d.ControlHeight() * 8).Gap(d.Unit()).AlignItems(ui.Stretch).Disabled(opts.Disabled) + open := ui.Local(col, "week-picker-open", func() bool { return false }) + cursor := ui.Local(col, "week-picker-cursor", func() Date { return Date{} }) + hover := ui.Local(col, "week-picker-hover", func() Date { return Date{} }) + old := *value + text := "" + if !value.IsZero() { + text = weekViewTitle(c, *value, value.AddDays(6)) + } + col.Children(func() { + field := datetimeField(c, ui.Row(c), false, false) + field.Children(func() { + t := datetimeTrigger(c, text, msg(c, "week_picker.placeholder"), "calendar").Label(label).Description(text) + if !t.IsDisabled() && (t.Clicked() || !*open && t.Shortcut(0, ui.KeyDown)) { + *open, *hover = !*open, Date{} + *cursor = *value + if cursor.IsZero() { + *cursor = today + } + } + if opts.Clearable && !value.IsZero() { + if b := iconAction(c, icons.Must("x"), msg(c, "calendar.clear")); b.Clicked() && !b.IsDisabled() { + *value = Date{} + } + } + }) + datetimePopup(c, field, open, false, func() { + band := *hover + if band.IsZero() { + band = *cursor + } + picked, hovered := calendarMonth(c, cursor, calendarConfig{ + chosen: func(x Date) bool { return !value.IsZero() && weekOf(x) == *value }, + inRange: func(x Date) bool { return weekOf(x) == weekOf(band) }, + enabled: enabled, + today: today, + weekStart: opts.WeekStart, + autoFocus: true, + }) + if hovered != *hover { + *hover = hovered + c.Invalidate() + } + if !picked.IsZero() { + *value, *open = weekOf(picked), false + } + }) + }) + changed := *value != old + if changed { + slog.Debug("mujica: week_picker change", "from", old, "to", *value) + } + return ChoiceResult{Element: col, changed: changed} +} diff --git a/week_picker_test.go b/week_picker_test.go new file mode 100644 index 0000000..d8c3d8f --- /dev/null +++ b/week_picker_test.go @@ -0,0 +1,76 @@ +package mujica + +import ( + "testing" + + "github.com/egoist/mygo/ui" +) + +func weekPickerTester(v *Date, opts *WeekPickerOptions, n *int) *ui.Tester { + return ui.NewTester(func(c *ui.Context) { + Use(c, Settings{}) + o := *opts + o.Today, o.Label = calendarToday, "Sprint" + ui.Column(c).Padding(16).Children(func() { + if WeekPicker(c, v, o).Changed() { + *n++ + } + }) + }, 480, 480) +} + +func TestWeekPickerPicksWeekStart(t *testing.T) { + v, n := Date{}, 0 + opts := &WeekPickerOptions{} + tt := weekPickerTester(&v, opts, &n) + _ = tt.Click("Sprint") + _ = tt.Click(datetimeTestLabel(oct(15))) + if v != oct(11) || n != 1 || !tt.HasText("October 11 – October 17, 2026") { + t.Fatalf("Sunday-start week of Oct 15: %v %v", v, tt.Texts()) + } + v, opts.WeekStart = oct(12), WeekStartMonday + tt.Frame() + _ = tt.Click("Sprint") + tt.Key(0, ui.KeyDown) + tt.Key(0, ui.KeyEnter) + if v != oct(19) || n != 2 { + t.Fatalf("Monday-start keyboard pick %v", v) + } +} + +func TestWeekPickerBoundsClearDisabled(t *testing.T) { + v, n := oct(11), 0 + opts := &WeekPickerOptions{Min: oct(4), Max: oct(24), Clearable: true} + tt := weekPickerTester(&v, opts, &n) + _ = tt.Click("Sprint") + _ = tt.Click(datetimeTestLabel(oct(26))) + _ = tt.Click(datetimeTestLabel(oct(2))) + if v != oct(11) || n != 0 { + t.Fatalf("out-of-range week chosen: %v", v) + } + tt.Key(0, ui.KeyEscape) + _ = tt.Click("Clear") + if !v.IsZero() || n != 1 { + t.Fatalf("clear left %v", v) + } + opts.Disabled = true + tt.Frame() + _ = tt.Click("Sprint") + if tt.HasText("October 2026") { + t.Fatal("disabled picker opened") + } + defer func() { + if recover() == nil { + t.Fatal("expected panic for a mid-week value") + } + }() + mid := oct(14) + weekPickerTester(&mid, &WeekPickerOptions{}, &n) +} + +func TestWeekPickerSnapshot(t *testing.T) { + v := oct(11) + snapshot(t, "week_picker", 400, 80, func(c *ui.Context) { + ui.Column(c).Padding(16).Children(func() { WeekPicker(c, &v, WeekPickerOptions{Today: calendarToday, Clearable: true}) }) + }) +} diff --git a/year_view.go b/year_view.go new file mode 100644 index 0000000..812c48d --- /dev/null +++ b/year_view.go @@ -0,0 +1,168 @@ +package mujica + +import ( + "fmt" + "strconv" + "time" + + "github.com/egoist/mygo/ui" + + "mujicaui/internal" + "mujicaui/theme" +) + +// YearViewOptions configure a YearView. +type YearViewOptions struct { + // Location is the zone days are cut in; required. + Location *time.Location + // Version must change when events change in place. + Version int + WeekStart WeekStart + // Today is marked; zero uses the system clock. + Today Date + Disabled bool + Label string +} + +// YearView shows twelve months with busy-day dots. +func YearView(c *ui.Context, year *int, events []CalendarEvent, opts YearViewOptions) CalendarViewResult { + loc := eventLocation("YearView", opts.Location) + if *year < 1 { + panic(fmt.Sprintf("mujica: YearView year %d is not valid", *year)) + } + eventsCheck("YearView", events) + d := Density(c) + today := datetimeToday(c, opts.Today) + first := Date{*year, time.January, 1} + label := opts.Label + if label == "" { + label = strconv.Itoa(*year) + } + r := CalendarViewResult{} + root := ui.Column(c).Gap(d.Unit() * 3).Role(ui.RoleGroup).Label(label).Disabled(opts.Disabled) + r.Element = root + counts := eventsDerived(root, "year-view-counts", events, opts.Version, eventDayStart(first, loc), eventDayStart(first.AddMonths(12), loc), + func(hits []int) map[Date]int { + m := map[Date]int{} + for _, h := range hits { + ev := events[h] + for day := DateOf(ev.Start.In(loc)); eventDayStart(day, loc).Before(ev.End); day = day.AddDays(1) { + m[day]++ + } + } + return m + }) + cursor := ui.Local(root, "year-view-cursor", func() Date { return Date{} }) + if cursor.Year != *year { + *cursor = Date{*year, today.Month, min(today.Day, 28)} + } + root.Children(func() { + calendarViewHeader(c, strconv.Itoa(*year), msg(c, "calendar.prev_year"), msg(c, "calendar.next_year"), func(dir int) { + *year += dir + }) + grid := ui.Row(c).Wrap().AlignItems(ui.Start).Gap(d.Unit() * 4).FocusGroup(ui.Horizontal | ui.Vertical) + moved := false + if !grid.IsDisabled() { + for key, days := range map[ui.Key]int{ui.KeyLeft: -1, ui.KeyRight: 1, ui.KeyUp: -7, ui.KeyDown: 7} { + if grid.Shortcut(0, key) { + *cursor, moved = cursor.AddDays(days), true + } + } + for key, months := range map[ui.Key]int{ui.KeyPageUp: -1, ui.KeyPageDown: 1} { + if grid.Shortcut(0, key) { + *cursor, moved = cursor.AddMonths(months), true + } + } + if moved && cursor.Year != *year { + *year = cursor.Year + } + } + grid.Children(func() { + for m := time.January; m <= time.December; m++ { + if day, ok := yearMonth(c, *year, m, counts, today, *cursor, moved, opts.WeekStart); ok && !grid.IsDisabled() { + r.day, *cursor = day, day + } + } + }) + }) + return r +} + +// yearMonth draws one small month and reports a day clicked. +func yearMonth(c *ui.Context, year int, m time.Month, counts map[Date]int, today, cursor Date, focus bool, ws WeekStart) (Date, bool) { + k := Tokens(c) + cell := theme.MinHitSize + first := calendarFirstWeekday(c, ws) + start := Date{year, m, 1} + lead := (int(start.Weekday()) - int(first) + 7) % 7 + var picked Date + ui.Column(c).Width(cell * 7).Gap(2).Children(func() { + ui.Text(c, datetimeMonthName(c, m)).Font(theme.SerifFont).TextColor(k.Text).Bold() + ui.Row(c).Children(func() { + for i := range 7 { + wd := (int(first) + i) % 7 + ui.Text(c, msg(c, "calendar.weekday_"+strconv.Itoa(wd))).Width(cell).TextAlign(ui.Center). + FontSize(FontSize(c, theme.CaptionSize)).TextColor(k.TextMuted) + } + }) + last := start.AddMonths(1).AddDays(-1).Day + for w := 0; w*7 < lead+last; w++ { + ui.Row(c).Children(func() { + for i := range 7 { + n := w*7 + i - lead + 1 + if n < 1 || n > last { + ui.Box(c).Size(cell, cell) + continue + } + day := Date{year, m, n} + busy := counts[day] + text := datetimeDayLabel(c, day) + if busy > 0 { + text += ", " + calendarCount(c, "year_view.events", busy) + } + b := ui.ButtonBase(c).Size(cell, cell).Radius(theme.ControlRadius).Label(text).Column() + internal.Ring(b, k.Focus, theme.ControlRadius) + if day == cursor && focus { + b.Focus() + } + switch { + case day == today: + b.Background(k.Selection) + case b.Hovered(): + b.Background(k.SurfaceHover) + } + dots := yearDots(busy) + b.Draw(func(p *ui.Painter, r ui.Rect) { + x0 := r.X + r.W/2 - float32(dots*5-2)/2 + for j := range dots { + p.Fill(ui.Rect{X: x0 + float32(j)*5, Y: r.Y + r.H - 6, W: 3, H: 3}, k.AccentText, 1.5) + } + }) + b.Children(func() { + t := ui.Text(c, strconv.Itoa(n)).FontSize(FontSize(c, theme.CaptionSize)).TextColor(k.Text).FontFeatures("tnum") + if day == today { + t.Bold().TextColor(k.AccentText) + } + }) + if b.Clicked() { + picked = day + } + } + }) + } + }) + return picked, !picked.IsZero() +} + +// yearDots maps an event count to one to three dots. +func yearDots(n int) int { + switch { + case n == 0: + return 0 + case n <= 2: + return 1 + case n <= 5: + return 2 + } + return 3 +} diff --git a/year_view_test.go b/year_view_test.go new file mode 100644 index 0000000..6a42408 --- /dev/null +++ b/year_view_test.go @@ -0,0 +1,108 @@ +package mujica + +import ( + "fmt" + "testing" + "time" + + "github.com/egoist/mygo/ui" + + "mujicaui/theme" +) + +func yearViewTester(year *int, events []CalendarEvent, opts YearViewOptions, days *[]Date) *ui.Tester { + opts.Location, opts.Today = calTokyo, calendarToday + return ui.NewTester(func(c *ui.Context) { + Use(c, Settings{Mode: Light}) + if d, ok := YearView(c, year, events, opts).DayChosen(); ok { + *days = append(*days, d) + } + }, 900, 1200) +} + +func TestYearViewDensityMarks(t *testing.T) { + var evs []CalendarEvent + for i := range 4 { + evs = append(evs, calEvent(fmt.Sprint(i), 14, 9+i, 0, 30)) + } + evs = append(evs, calEvent("x", 20, 9, 0, 30)) + year := 2026 + var days []Date + tt := yearViewTester(&year, evs, YearViewOptions{}, &days) + tt.SetPreferences(ui.Preferences{ReduceMotion: true, TextScale: 1}) + if !tt.HasText("Wednesday, October 14, 2026, 4 events") || !tt.HasText("Tuesday, October 20, 2026, 1 event") { + t.Fatalf("labels lack counts: %v", tt.Texts()[:5]) + } + img := tt.Image() + dotsAt := func(label string) int { + r, _ := tt.Find(label) + n, prev := 0, false + for x := int(r.X); x < int(r.X+r.W); x++ { + on := datetimeNear(img.RGBAAt(x, int(r.Y+r.H-5)), theme.Light().AccentText) + if on && !prev { + n++ + } + prev = on + } + return n + } + if a, b, z := dotsAt("Wednesday, October 14, 2026, 4 events"), dotsAt("Tuesday, October 20, 2026, 1 event"), dotsAt(datetimeTestLabel(oct(21))); a != 2 || b != 1 || z != 0 { + t.Fatalf("dots %d %d %d", a, b, z) + } + if yearDots(6) != 3 { + t.Fatal("6 events should show three dots") + } +} + +func TestYearViewClickKeysAndYearChange(t *testing.T) { + year := 2026 + var days []Date + tt := yearViewTester(&year, nil, YearViewOptions{}, &days) + _ = tt.Click(datetimeTestLabel(Date{2026, time.March, 3})) + tt.Key(0, ui.KeyRight) + tt.Key(0, ui.KeyDown) + tt.Key(0, ui.KeyEnter) + if len(days) != 2 || days[0] != (Date{2026, time.March, 3}) || days[1] != (Date{2026, time.March, 11}) { + t.Fatalf("days %v", days) + } + _ = tt.Click(datetimeTestLabel(Date{2026, time.December, 31})) + tt.Key(0, ui.KeyRight) + if year != 2027 || !tt.Focused(datetimeTestLabel(Date{2027, time.January, 1})) { + t.Fatalf("crossing the year: %d", year) + } + _ = tt.Click("Previous year") + if year != 2026 { + t.Fatalf("year %d", year) + } +} + +func TestYearViewDisabledAndInvalid(t *testing.T) { + year := 2026 + var days []Date + tt := yearViewTester(&year, nil, YearViewOptions{Disabled: true}, &days) + _ = tt.Click(datetimeTestLabel(oct(3))) + _ = tt.Click("Next year") + if len(days) != 0 || year != 2026 { + t.Fatal("disabled year view reacted") + } + defer func() { + if recover() == nil { + t.Fatal("expected panic for year 0") + } + }() + zero := 0 + yearViewTester(&zero, nil, YearViewOptions{}, &days) +} + +func TestYearViewSnapshot(t *testing.T) { + var evs []CalendarEvent + for i := range 40 { + evs = append(evs, calEvent(fmt.Sprint(i), 1+i%28, 9+i%5, 0, 30)) + } + year := 2026 + snapshot(t, "year_view", 680, 960, func(c *ui.Context) { + ui.Column(c).Padding(16).Children(func() { + YearView(c, &year, evs, YearViewOptions{Location: calTokyo, Today: calendarToday}) + }) + }) +}

fEr_S4SeJ7 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 literal 0 HcmV?d00001 diff --git a/testdata/snapshots/darwin/event_popover-light.png b/testdata/snapshots/darwin/event_popover-light.png new file mode 100644 index 0000000000000000000000000000000000000000..67ff2e40644ee1c0abfd5ce2d553a35f1d3c29b8 GIT binary patch literal 31503 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 TaUD458uC)=)$?KrJ)i#tB0$;` literal 0 HcmV?d00001 diff --git a/testdata/snapshots/darwin/recurrence_editor-dark.png b/testdata/snapshots/darwin/recurrence_editor-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..fc99a37f741295b772f99a634fe56f411890ad16 GIT binary patch literal 17827 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 Nk(E-CtPnQ}{BM&wC@la0 literal 0 HcmV?d00001 diff --git a/testdata/snapshots/darwin/recurrence_editor-light.png b/testdata/snapshots/darwin/recurrence_editor-light.png new file mode 100644 index 0000000000000000000000000000000000000000..200edd4c1e3e352d507848fb4870cc2265015e36 GIT binary patch literal 17147 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 literal 0 HcmV?d00001 diff --git a/testdata/snapshots/darwin/relative_time-dark.png b/testdata/snapshots/darwin/relative_time-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..a915c4b4e8b7bab2d51282e200b30f9a73a1e293 GIT binary patch literal 4585 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 literal 0 HcmV?d00001 diff --git a/testdata/snapshots/darwin/relative_time-light.png b/testdata/snapshots/darwin/relative_time-light.png new file mode 100644 index 0000000000000000000000000000000000000000..ed172f42624c84576afd56b967e44de7502cb6ca GIT binary patch literal 4344 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 E7YlO)VgLXD literal 0 HcmV?d00001 diff --git a/testdata/snapshots/darwin/stopwatch-dark.png b/testdata/snapshots/darwin/stopwatch-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..0808f83d343204f610a022d18eafffd9ed393854 GIT binary patch literal 13802 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 literal 0 HcmV?d00001 diff --git a/testdata/snapshots/darwin/stopwatch-light.png b/testdata/snapshots/darwin/stopwatch-light.png new file mode 100644 index 0000000000000000000000000000000000000000..b513e4c5f20964516565f42c2e8a3dfc210dc618 GIT binary patch literal 13224 zcmeHuWo%qcv!AS04U9EJckEV6Hr%rX%Q%`l*geb~OenG%RfP#YhBK2KN843zIAM$~L`vB=VV4V+# zf?~6k5))Q+O+Q)nP>r8`g1s;c#8HCn|MRC&U(6?mw4^|sSdfu2drygs`B+n{ND&Q# zgPbRLK(%*SNog1n>l+{4r|PLZ%8frT{xEC^V#ZK?o25EVoqw9rZ^uU@uq7&tMtP4P z&jhhE+YH*km|3?c_n2i(6$qtLyQwB;^8Snv$+Y`?=?P>jq{n zicjB4N-Gwdf#>z3_)y7*H~l$&XvPxOJPtR#DZNA%md8@i-06Qa32jL5K5Eg=z8_hp z@Oa#b!4K1Z|AT94N|`1y4`{u_r733PX?o0h27UVN=4fWSjwv$S7|~} ziKv6+{?@IaTk!Gs)YMf}(kJSezdSn*k1jNqfhDSJy`|HZdMGAn|XZzrxj*f|*Dwl}kXz0|H?BC-$ysG&UAk0F>!BcX^E3_F0H3s=cFZC@A|s_*tp5v;Q?-T4*K`{K2Z#=VGu-TxPiLT((WoM zY*3yT?e`CtMp8HnR(Jgy90Yhh`9xAFxJ475Og5Guq0G#JcJjB|1rP^ieXg~I4HPdh zJ9dv_$1|xocKO^$X=$53LLp*}vaqp{m{?%rb?oeNgb5gFD%oenmk7IP;*TE`_}r4z zN49qKYF~bGxGCB+BhM;v&E3^}rtWuP*mk!sb^-%vIaTvxCntban8l({TRYmUKdnI0W%S@E+z;EEdM z2go{^oAYS-W)L_#FD#l1na!`Qtrc?{%zvvSlT;A%!k|kUkqrMik$xCm__Ltm4aZqD z{8|M^gM5R2EhsCBCSQ0?fWJj%^{}|D0YJI9E|&qGqf1=Rx~}r#|^~~ z8S@b)wX@=3VhU&VO;2y1F1Or1p)s1!J9)LCt8^uuB*6!3oO?dz+K3-OM$UVeAG zHid@b=4n6MJIZHY=J?A3|K&@>4qzieg86~i7q=dI45te6{aHL|p3qSA z3}Y_-L9sPQn%dfSP0iL@;M67F6xq3jnO2+ELN0>B^M&dVuE4T7*K8Wb_UEh{*{3En zKnr|+_`gs{!my}lz=#>!q3I>6d+T2CqO7FkBb4L-PK%4po?S8C;z5ftbtcl|$A>m1 z$|Rw$i)LS2T{{nYO1vFOkYtFiZ(1fk*C5R45Br0mmRX5T=0Xea~j?Ck~l2Tt#= z-kq&Y-8#n!^cYs-6PWe(<5$%&=VckS#kk0rkNs9wCT(=T#cfLfH)MSuURX3R3(CkS zbaoD_RPckv6Ib6=m!eEAn^TU#^Ml;wti(PWm0Q6yq~ zBx4b zig5eIhM0;%=+@>}FM1NXcoWww|J+tFk;bHEddYs9~g~nF>sk_=nrrG*&sf zxXev&bFi~hrc1jYGbBmvus~I7%AP+!bv|b_3^{P@xXTlQ;BTum)W)il{U@XASJk8I zzyh}@aD`dkx>swt0z|d@4nTb$uOI4jOjt|>?(U6Ejoh&~7Be$51pJumm#+OYL$5sG zgJl1XGG1^tlSWL`F#N+-S$Mb=B4X`MKDY9}h?e}vDx=!PFwF6Y5dPbn!|C6%`kx+r zc)gxxYOXxs;X^v!c_42_8;-ZabuHY;tF)jgG6hVOTZ6SEu^SboKM_ zkPxMroD3w1hO`sI?KknPKn-cP$JbSeSobxj519)z!fd-dXDbX0=bjA3-^qC~3D&Js zjW>OHbgMl)G9_hXjw6FVDwnW7t_18jVhzd;T--RlyUW<^H~0ZKkv_A9aG`|Hk02Q zm8Cfg>;)S(k}0tP`+P#|gkQKAX_Hq={!T?_=Wjvau(7T#0c+mdpfPKc&YBMwY|P!= z9e~0&H1yfCy?vEjn}8rPRJ_N@DwqIb++V1iv5`LKJsNBg;k?Cc5-o z4Jh$*f;kAOBE(sRO%&A)j)WSQw^jVB33l|r@6qGY^p?-uAQ458bHhf@4#6bLthRfe zjuhZd&)b+)2W-{H6DU9@^8b6cGm@(3o{5OI^cc6z$&iY@me0}?H?L7)W4oFPRfyWR zs*_VZvg_wFQ{}%B*Z*3~ctyQ(3Ri1dK~THRFE7K7e;RfH+WGhDM*|ng`0-_gypk2eOa5-}RJq@J^mT~e4h(oN%2 zgCwk%^4Tg*#W)QkB*yR|PZ9jQXI_ZNIs!h}t{9iivpn%a13Jgae+CH=qZ+aNgn=T1 z!iMgIgOY$^{_q}fF%E| zJK+QcrKSnLLGitKhl1|zbb+8vc6PBZT+~PzlT$rRa6uaGP`yqqi{Z`YS}+#5eS3o~ z1;>Y6mx;c`eGC65>_P;~LJ4m?*NCxyG#l8Z}H+uMd9P(;|4?NlVp!!rl_ij{>$;`ct`KW~JDXQNVil*m!X_#3OssLe$ z)Dg~i{W}XBBk&|404})<0yS^e{iHY^LN?#5MQa@Z90e!31{HGDyvG;A)1P!eM@oOl z4^mXf8_;2@?|!A*Wr&edsFYq@T%+!Ar=9;h&vtn#=O3Meo{}vs%{WY3`tid{Hsm4BeOQ|qG>D)J0}F zJSnMJ61GVa)~y!?ks>#T67c9D!%xXMbW|vSGiD3{*_LW30IcnO)3P2X7%oO*#;eU4 zAU7>P-D;j1so$}*AQLP^UsDrz!SJd6Q$d#u2Iqc(K2xh|j4t&vO;*!rv_+%q>;oAU z*OTSlEXY4Pa(N6t6AeR@;;1ZGPFlGnzr8&tH@CD%a(1zVoEO0TTqaUhpW#X3B`i&tDG}P|xG#qL# zGZi16x%KQr41j` z9{dmzY)fVe%;N~%XeOJh|-0%t=_YeHZc8_PzTdG-r zq`lrcV;1o;qr5j$R^salLzjk>rmqE`=T`%l`&q{ZM5!^&&q`LvKG?=5CV3?dHGD0X zc3URnT@W!YnEnMv64{=~@kl|BInrf`?sytx`H%c1!MVk$sm&J`(b3VwBH!Jb%A1>g z5~Sf`M!rEqzn+>liO?q8)XR}TJpc7dckWRkYV`TI>~5`Jdz*u<&K3{Bn%SuVj7Y)x zSz4i_{ta>a1!LP|DM25!r0&f}<-F?XCx7;CmY0`|^pEl-e%@PtCFH}cW@Xtc*ezJk zjD1x_eSF!P&FawhJn(R|97#?}tmhh5Nh&QNK{?m_WF;JffS+@Kczg<9e?d} z7!N);!S6Jnvb}PY_J@a|zJm6C5*=8KoC!fMbJAO;LZzgyB2uJeEITd$J*Ic|Qcv5g z@9;xIFw~!gRH;wGWM4g^+Xomv7H}yBzL`zm6g#L)J&1%2<`>!OmT-ely_SA{cfC${ zxGmdNo1dP4kC-}&v{?nU&DYuu^i#Bee>Howd%fzW7FJ>*2B`1!Z3oY%hE zDr}Q?v%ZOc|Jhk*IZum1B%rRPhJo|#?Ch*xr=R>Q*aCW8Su@%_8TINWlPfC2~G;lwf@+`h0BCi&U97=V8&P^Skfw3d!dfVrBH8t z&^T6Ta_=TOOWxNkeqvSK)4taJGzn!S0Fs>Tn+=cS^={Z4jr z2lYatbku`c<|3%<=+*Wu{ZpqO{(gKu~34-H# zbRJ%OL=%r^^9Ty4&d9z+bxUEVtQ!%_%-9TLey=%a7|I%9(tSUf?J$l`vd58+P6*Y_ zxL*4PEhTGbBd*$g)DGtvV&#om?20PFdn4brE_G=s3^OW>Tm=n1kVxTTyMEd|GA=-W z;0NMf*&20qc6NG)NOa3UF?CJ9p+mTqGZf%AK_~K02v1*t{;%) zoSw)mx-|JB%UBK|5NI&4jY^=8B%Jkn$i|d2pIZ=CwJoTop)uc}wZ5k}T0k9296aQGI=V9C?%H;#TiH zXY7t>e*%%s%2LPsMMPTPS8+Gj@U=F}mdYp%7Z~$;f*|A~@7vjs=;&;PJIYPM#Ja1# z+uUW7#(@5)dntf3YJ(6l8~V4fc7dmQ`64nnLy5ugz7B0!R52GAj-k{V1(T#zM(t{M z@y;2j6(jCNC*IYNJgQz&7I7s`q%?6EOgY5NKtM{8a?Z-@rp*fLlCLHECZ$`g;l z{UEUI!d=*=YdASUgvg*N|HXCKUJsec$_6_!O3}-a^?Gy>G3$Lj>*aO8=W_Q_F0CO0 zkk-G;J7Rn_2ES}H5BhOE6}lBW)v*33M17;vZpCtDhJX3v$4q1-{)tdVMg|1EgIF*pY%(s@?d(OIpm>|kJ6 z$$()`3rPceqZt^yRCR^Tl)H+do#LqY=;5fWa$~et&DNQIZ@JZW$vSfOFX?YnGtw3`l1n`oO?l#dDL zm5>eVFMtu!>s2+a1oCMp!*W9tgKe`w6cS6DdQgR9euFE zdhd|$pr=1jev<9(A_*4jIWQi_$H$+u)#;#j*V?%0G@(mEgHh7evPL2nBPOL}r2J*7 z*t-?1l~Y@x*Axo4#S&MdQdZDh)`aZRzK}Ct%^1W-j+yE=DWhIr;j#G^jd^*4bt=T* zN>s=2k+mt~23lVNRe#){0V=@_mi0@>E8kAn+W1Y!5UY>X4J4zkt}8!{B{xt~X7(7^ zE;l#1koR78N#`)Xu^|%(>}_xNZS%a}PX6t^7wi>A9Smp3{Sr2$+)#{i0?3Z0BlW>6 znLoUBe-+IVQm~yET$f-B|8c-F{_&aKc+j`RJ$)C;R}-xi-7Mx3m04T@RSptBTNodwh7@(H*ul zw>iAMsV@&NFTE;l5 zyp6kq zK`S+IzOK&WwT&DLR`<8}D#!)QTBF4#g7Pz7*Tj}cRnoCZr($1zXaI}qRBXVwXVRVyqAFA`0r*oSdLfmo# z<=CBLG|g?&Mz4j&4y`ri!gS`U7-F_hm|Gk(TsPxCElVxS%Rv%A(VWWFX8U8EyQTuV z#3zNTf%X_ief{(7Lue%>w0`~>b-9r5C;L=laF37fkN^i9p`5m=$liEz6*O2M*IHb+ zUTOu^lzs+GJ|be}CAQ8?<(}D)5KiEbkjHUsHd2^m@pL@45qQ<^?(1u#K8jeM@~eOW zF2iUdHa2z=&}LshW-2u{H=)B+JM}3~JBcY%+5=tsgk@Nk+ZYfVgzz3nd$S43`sw~=}HW0{GXoJ-H}wp+(trNouL$)za6N>r)k zh(7x%QGv>+E3uDR)XQcwld|zOwyN+UAe?^5)r@b7gysMBd_JwJh1@5)e;D=KN-C z?_iL}ZewJ*z~lpThb+C+n$O@|BHDZN<23uE3S(S)qr6+v)sCFQJz`5kqSi`HNlr_Sb;2sXn*OF8kZ`rvFG9Qcr#OD>9PVnkxD&RtwCpw`=fwb zEMHOIMJq65$ly0stUkkAzR`ZG!`Iq+^CiZ8ow?&%S0ryQk;ByNF_xHwYa?O z)y!qC(tUTm-$5niFk8BNz5kkTdXW;nk$zqYbGr!MzD$o3Ty6p$k8@aV%ZA)Y%t{ltNXhSPa8OU%iRpJt(=|9U!U*E+usdVo?K8x+6DArQC{2@WYDXM zy277ZkJXF3Q+_zr1``LHnF>y~&?Gu=7pSc+sWAAEQ0|JOzuCxEPMg`XbYdt(eV>+StPXa<%#J^=ikByDJ zFvvcojQVe;9(dT!qKvc^=vbRFsBkduhF2G9FyeiRs!0D+LzY+kuzr#Oud1TaFfbv< z2oEo!*iBq)@>Nw#T)Y%%_*z8}gjq6|yHTZBHfLt7HmstQU*ZcC5?^k9YE~ptO{x2> z{MT230$W13iZoc(kQg4`2rfFUA=VBp{s&9vDpT11 z-q`w#{hv&-=J8H;9C(CLcm8U}iR46&?C$)HRx&bDQBsnch#A?v%FT_1oJ_J_{(w{! zefSg2_f%F|x}~9ZIYfqf@QoDC_dT7-GA1Sj%fj4zQ*a;U#*gVMoVK?1P@W41*yWZk z6IG-rGQFm%M)RaPS+@0)n!2ilxR{z?^G^fioKjL6fVX9oCEqLF_DMRmp zMK-fLdbLj!MJubvK2;?pDIz)a`rzL4G;1%fC}2@djpIc6BL!d|S{SvkFb@S5Rx_$z zQ7u|^>1w^hKTFWZe2zY7dw|`hgd;bFqsJ0L2H*uNaappe0B{EM4?O>OdL$%e4- z&b!#KF)LCJz8MeWqjAX7b1A%Ua9GH;y&FP+uY6JE#Sa$mE!P^QtmX{Qw1M3ae^R6# zO8LyjQAeBz2^F>IY>8+)iku6BO@#ArDuwbS+O0ziYmcL6paG)!cW%cQB>BGe*08SN z;)BMrd7GD;o|w9sUNyR;)0KLCewwlpw6m)(7k5wW3>=pOM3Lk=a-kt|2NF`%nj(ZW zd2Ma{#2Xg}fAeC!qgwGj?M^^?BLd60kXKT9*T72)ryN>GWdppzm zIa5=iqvb1OY4bSPRbP-69QT`zjd$XcG-83M#VxFEDXB{$z^5bb13am#o|hOS$PS=VvNLPla2z- zFH9z9B~?~d3fgY+-(XcqN^3&jN+aR@XKw@S605!c678 zw~e>X3s7S|{0o3g^7Ybk^fEeYCXay4^y}kS)B_5LWyk%c z{EASZHiv7^n0sQ56R~DLPlFz8$~z$jr^a7~0Kh9$q!#;twul^J*>|MI6C%dy*=whU zoT8OX^Da^h0x?jr6{YI8{k;6J%Oaxfg7n~dW@hF05kNqYG11^p?`DZ!}|Q4}{t#6R8P^c#+X}d!z?RenbWN&)#SShup%}SVmo0e~wSpQ~!cXVD$ctNAWrY2%#QFFZ^o&4|h@2tOaXSD?4r8fKGMrV^z(i%mH!r3n z5cyR;wy?Li$16p!Xj6*(y6lwA-^SrlD|8Z4km2gi<8D}qW zQr9kk*Tak}=Vuja%Dv!I?}ecaq&UFcrqayfv$s3O5`eJPOggUi%Qf~0`M8l?$ZYBi zG=v#|`2=FPCp=vw;dceG0%Zs_7l{g(I;b04<~pu&Vn*t*PZv=mCFN&$eVN$LFat2@ zH|gXk{@P%YH%016-{%I5IUl)cAMG5~S*+3yXhqU+sl--L#2hwoa@M@98E9N&6W?h5 z(sL$Ekmg`!KX@8$Y3Dd10XH}+)R1y`0~ATE&{MLsuW z_qP>u4-Y`h_i{z*1$VM$K@=F$0ubo6{Av-_l&E~YCUeM`bB2pKMHV4Iq(B)*R^o3S zY1B8uBfOfxz(51uoeV=NpUeo>{ACa>rAUj zEfY>Di?;!nS=WFz&RvsTT=odG_h6LF`uc*N8=A8-L^U%ZBkwLUNUg1ZbVNNxfXL#0 zhYEjMiwl!udW711|0Vpq%h}RW7y8CMe$(n6`OF0|IU0=!0?vzKGG zrEOxOsVXh7$K94~nguSW&Lahqd`;CD;e7g#YlfYMZG^p7-7U&bKtoHP!lap{e_@L4)N%4UKhv`|N6II2FAv~^k zEtC3;4dsvwDj;ySh7{?1m$k<4>!cu3vQr21rwps_vK6EMFwkLbwEg~`@ z0&h%w{8W7d8d+cqH{k6-WuZrq2#b#%iT|~>?09su2ROtFH=_&LZR3vAk8Gu{_;#)A z7DdFbKK+G+-MYVSYoPCN#mOGTeWy$xAYEPSb4d_LAx^OZSeaQaDWE7YMotN59g?1C z241UkbnsHKQQbP1mNe01$ZN>ENRP;b%0QIy6(Jz|N4EEhTUpV`sq??I23XJTWG;tr zhAzJktbbbP+?pDj;*%1yzVOTBC_)@0DIwmV*zZ@O5d#YXraSxB0ed>jvVtr|isd%) z+v^}ySgbdXv!0-UbppN$)^C;p`1?qBg$1cV6hxl>#Y4R4_;`qEx3(shku1;@X|cts zoN;q6#K9Z?>_q1OR%fd}nF`dN4Js1#yS+`gZn?NP&}Zs*9zXY-^9ezHvUo16w-h)o z!`_m@z3R(Trdpl7kV3vw&%CZg!G$Z-^}yr;Pc2^X0}P(;OincitR9 z7?m{VdlOLVd`(;MuY#>tgtgtzd6kSRG7Mr=ICi-1bq61QcDJJ)pUyQp7?@tgC>McR zzu&)qKLB6~CJ_G3 ePBal38>%miobyJ*h8VIiP*URZVih7keg6Y94cOcO literal 0 HcmV?d00001 diff --git a/testdata/snapshots/darwin/timezone_select-dark.png b/testdata/snapshots/darwin/timezone_select-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..f226c091441ea469bf8932ef1f7216731844317d GIT binary patch literal 4974 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 literal 0 HcmV?d00001 diff --git a/testdata/snapshots/darwin/week_picker-dark.png b/testdata/snapshots/darwin/week_picker-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..1221b30d45fa2e96fa0fc9e8e11d243ad16e3636 GIT binary patch literal 5021 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 literal 0 HcmV?d00001 diff --git a/testdata/snapshots/darwin/week_picker-light.png b/testdata/snapshots/darwin/week_picker-light.png new file mode 100644 index 0000000000000000000000000000000000000000..74305e3375a3f27f2927002ea549253cfa03dfa8 GIT binary patch literal 4814 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 literal 0 HcmV?d00001 diff --git a/testdata/snapshots/darwin/year_view-light.png b/testdata/snapshots/darwin/year_view-light.png new file mode 100644 index 0000000000000000000000000000000000000000..442d9b1aa05b60572c5c2bec1bd182dcf7255823 GIT binary patch literal 74500 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