From 85b41f6435a3ccfc862049887d2a223bb8e2cc03 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:24:42 -0400 Subject: [PATCH] wip chat sessions 2 --- artifact_card_test.go | 63 ++++ capability_cards_test.go | 73 ++++ chat_empty_state_test.go | 59 +++ chatsession_fixture_test.go | 38 ++ conversation_export_test.go | 95 +++++ conversation_item.go | 16 +- conversation_item_test.go | 118 ++++++ conversation_list.go | 2 +- conversation_list_test.go | 114 ++++++ conversation_search.go | 8 +- conversation_search_test.go | 133 +++++++ cost_estimator_test.go | 59 +++ date_separator_test.go | 65 ++++ docs/components/241-conversation-list.md | 56 +++ docs/components/242-conversation-item.md | 50 +++ docs/components/243-conversation-search.md | 53 +++ docs/components/244-project-list.md | 53 +++ .../components/245-project-knowledge-panel.md | 47 +++ docs/components/246-welcome-screen.md | 46 +++ docs/components/247-suggestion-chips.md | 42 +++ docs/components/248-prompt-library.md | 49 +++ docs/components/249-capability-cards.md | 45 +++ docs/components/250-feedback-form.md | 46 +++ docs/components/251-date-separator.md | 39 ++ docs/components/252-thinking-indicator.md | 39 ++ docs/components/253-stop-generating-button.md | 44 +++ docs/components/254-system-prompt-editor.md | 47 +++ docs/components/255-cost-estimator.md | 42 +++ .../256-shared-conversation-view.md | 48 +++ docs/components/257-conversation-export.md | 48 +++ docs/components/258-regenerate-menu.md | 44 +++ docs/components/259-artifact-card.md | 45 +++ docs/components/260-chat-empty-state.md | 44 +++ example_chatsession_test.go | 231 ++++++++++++ examples/gallery/pages_chatsession.go | 185 +++++++++- examples/gallery/pages_chatsession_demos.go | 249 +++++++++++++ examples/gallery/pages_chatsession_more.go | 341 ++++++++++++++++++ feedback_form_test.go | 75 ++++ messages_chatsession.go | 11 +- project_knowledge_panel_test.go | 110 ++++++ project_list.go | 4 +- project_list_test.go | 138 +++++++ prompt_library_test.go | 105 ++++++ regenerate_menu.go | 1 + regenerate_menu_test.go | 70 ++++ shared_conversation_view_test.go | 70 ++++ stop_generating_button_test.go | 65 ++++ suggestion_chips_test.go | 76 ++++ system_prompt_editor.go | 15 +- system_prompt_editor_test.go | 81 +++++ .../snapshots/darwin/artifact_card-dark.png | Bin 0 -> 16601 bytes .../snapshots/darwin/artifact_card-light.png | Bin 0 -> 16304 bytes .../darwin/capability_cards-dark.png | Bin 0 -> 22459 bytes .../darwin/capability_cards-light.png | Bin 0 -> 21680 bytes .../darwin/chat_empty_state-dark.png | Bin 0 -> 27233 bytes .../darwin/chat_empty_state-light.png | Bin 0 -> 26177 bytes .../darwin/conversation_export-dark.png | Bin 0 -> 39247 bytes .../darwin/conversation_export-light.png | Bin 0 -> 37271 bytes .../darwin/conversation_item-dark.png | Bin 0 -> 10094 bytes .../darwin/conversation_item-light.png | Bin 0 -> 9845 bytes .../darwin/conversation_list-dark.png | Bin 0 -> 2666 bytes .../darwin/conversation_list-light.png | Bin 0 -> 2668 bytes .../darwin/conversation_search-dark.png | Bin 0 -> 13790 bytes .../darwin/conversation_search-light.png | Bin 0 -> 13398 bytes .../snapshots/darwin/cost_estimator-dark.png | Bin 0 -> 15580 bytes .../snapshots/darwin/cost_estimator-light.png | Bin 0 -> 14880 bytes .../snapshots/darwin/date_separator-dark.png | Bin 0 -> 5045 bytes .../snapshots/darwin/date_separator-light.png | Bin 0 -> 4820 bytes .../snapshots/darwin/feedback_form-dark.png | Bin 0 -> 18504 bytes .../snapshots/darwin/feedback_form-light.png | Bin 0 -> 17872 bytes .../darwin/project_knowledge_panel-dark.png | Bin 0 -> 18329 bytes .../darwin/project_knowledge_panel-light.png | Bin 0 -> 17918 bytes .../snapshots/darwin/project_list-dark.png | Bin 0 -> 12889 bytes .../snapshots/darwin/project_list-light.png | Bin 0 -> 12229 bytes .../snapshots/darwin/prompt_library-dark.png | Bin 0 -> 27350 bytes .../snapshots/darwin/prompt_library-light.png | Bin 0 -> 26526 bytes .../snapshots/darwin/regenerate_menu-dark.png | Bin 0 -> 14887 bytes .../darwin/regenerate_menu-light.png | Bin 0 -> 16072 bytes .../darwin/shared_conversation_view-dark.png | Bin 0 -> 31145 bytes .../darwin/shared_conversation_view-light.png | Bin 0 -> 29902 bytes .../darwin/stop_generating_button-dark.png | Bin 0 -> 3385 bytes .../darwin/stop_generating_button-light.png | Bin 0 -> 3235 bytes .../darwin/suggestion_chips-dark.png | Bin 0 -> 8338 bytes .../darwin/suggestion_chips-light.png | Bin 0 -> 7922 bytes .../darwin/system_prompt_editor-dark.png | Bin 0 -> 15988 bytes .../darwin/system_prompt_editor-light.png | Bin 0 -> 15262 bytes .../darwin/thinking_indicator-dark.png | Bin 0 -> 4048 bytes .../darwin/thinking_indicator-light.png | Bin 0 -> 3832 bytes .../snapshots/darwin/welcome_screen-dark.png | Bin 0 -> 37202 bytes .../snapshots/darwin/welcome_screen-light.png | Bin 0 -> 35835 bytes thinking_indicator_test.go | 51 +++ welcome_screen_test.go | 66 ++++ 92 files changed, 3692 insertions(+), 22 deletions(-) create mode 100644 artifact_card_test.go create mode 100644 capability_cards_test.go create mode 100644 chat_empty_state_test.go create mode 100644 chatsession_fixture_test.go create mode 100644 conversation_export_test.go create mode 100644 conversation_item_test.go create mode 100644 conversation_list_test.go create mode 100644 conversation_search_test.go create mode 100644 cost_estimator_test.go create mode 100644 date_separator_test.go create mode 100644 docs/components/241-conversation-list.md create mode 100644 docs/components/242-conversation-item.md create mode 100644 docs/components/243-conversation-search.md create mode 100644 docs/components/244-project-list.md create mode 100644 docs/components/245-project-knowledge-panel.md create mode 100644 docs/components/246-welcome-screen.md create mode 100644 docs/components/247-suggestion-chips.md create mode 100644 docs/components/248-prompt-library.md create mode 100644 docs/components/249-capability-cards.md create mode 100644 docs/components/250-feedback-form.md create mode 100644 docs/components/251-date-separator.md create mode 100644 docs/components/252-thinking-indicator.md create mode 100644 docs/components/253-stop-generating-button.md create mode 100644 docs/components/254-system-prompt-editor.md create mode 100644 docs/components/255-cost-estimator.md create mode 100644 docs/components/256-shared-conversation-view.md create mode 100644 docs/components/257-conversation-export.md create mode 100644 docs/components/258-regenerate-menu.md create mode 100644 docs/components/259-artifact-card.md create mode 100644 docs/components/260-chat-empty-state.md create mode 100644 example_chatsession_test.go create mode 100644 examples/gallery/pages_chatsession_demos.go create mode 100644 examples/gallery/pages_chatsession_more.go create mode 100644 feedback_form_test.go create mode 100644 project_knowledge_panel_test.go create mode 100644 project_list_test.go create mode 100644 prompt_library_test.go create mode 100644 regenerate_menu_test.go create mode 100644 shared_conversation_view_test.go create mode 100644 stop_generating_button_test.go create mode 100644 suggestion_chips_test.go create mode 100644 system_prompt_editor_test.go create mode 100644 testdata/snapshots/darwin/artifact_card-dark.png create mode 100644 testdata/snapshots/darwin/artifact_card-light.png create mode 100644 testdata/snapshots/darwin/capability_cards-dark.png create mode 100644 testdata/snapshots/darwin/capability_cards-light.png create mode 100644 testdata/snapshots/darwin/chat_empty_state-dark.png create mode 100644 testdata/snapshots/darwin/chat_empty_state-light.png create mode 100644 testdata/snapshots/darwin/conversation_export-dark.png create mode 100644 testdata/snapshots/darwin/conversation_export-light.png create mode 100644 testdata/snapshots/darwin/conversation_item-dark.png create mode 100644 testdata/snapshots/darwin/conversation_item-light.png create mode 100644 testdata/snapshots/darwin/conversation_list-dark.png create mode 100644 testdata/snapshots/darwin/conversation_list-light.png create mode 100644 testdata/snapshots/darwin/conversation_search-dark.png create mode 100644 testdata/snapshots/darwin/conversation_search-light.png create mode 100644 testdata/snapshots/darwin/cost_estimator-dark.png create mode 100644 testdata/snapshots/darwin/cost_estimator-light.png create mode 100644 testdata/snapshots/darwin/date_separator-dark.png create mode 100644 testdata/snapshots/darwin/date_separator-light.png create mode 100644 testdata/snapshots/darwin/feedback_form-dark.png create mode 100644 testdata/snapshots/darwin/feedback_form-light.png create mode 100644 testdata/snapshots/darwin/project_knowledge_panel-dark.png create mode 100644 testdata/snapshots/darwin/project_knowledge_panel-light.png create mode 100644 testdata/snapshots/darwin/project_list-dark.png create mode 100644 testdata/snapshots/darwin/project_list-light.png create mode 100644 testdata/snapshots/darwin/prompt_library-dark.png create mode 100644 testdata/snapshots/darwin/prompt_library-light.png create mode 100644 testdata/snapshots/darwin/regenerate_menu-dark.png create mode 100644 testdata/snapshots/darwin/regenerate_menu-light.png create mode 100644 testdata/snapshots/darwin/shared_conversation_view-dark.png create mode 100644 testdata/snapshots/darwin/shared_conversation_view-light.png create mode 100644 testdata/snapshots/darwin/stop_generating_button-dark.png create mode 100644 testdata/snapshots/darwin/stop_generating_button-light.png create mode 100644 testdata/snapshots/darwin/suggestion_chips-dark.png create mode 100644 testdata/snapshots/darwin/suggestion_chips-light.png create mode 100644 testdata/snapshots/darwin/system_prompt_editor-dark.png create mode 100644 testdata/snapshots/darwin/system_prompt_editor-light.png create mode 100644 testdata/snapshots/darwin/thinking_indicator-dark.png create mode 100644 testdata/snapshots/darwin/thinking_indicator-light.png create mode 100644 testdata/snapshots/darwin/welcome_screen-dark.png create mode 100644 testdata/snapshots/darwin/welcome_screen-light.png create mode 100644 thinking_indicator_test.go create mode 100644 welcome_screen_test.go diff --git a/artifact_card_test.go b/artifact_card_test.go new file mode 100644 index 0000000..409109c --- /dev/null +++ b/artifact_card_test.go @@ -0,0 +1,63 @@ +package mujica + +import ( + "testing" + + "github.com/egoist/mygo/ui" +) + +func TestArtifactCardOpens(t *testing.T) { + opens := 0 + tt := chatTester(480, 160, func(c *ui.Context) { + if ArtifactCard(c, ArtifactCardOptions{Kind: ArtifactDocument, Title: "Decree", Detail: "2 pages"}).Changed() { + opens++ + } + }) + if !tt.HasText("Document · 2 pages") { + t.Fatalf("texts %q", tt.Texts()) + } + _ = tt.Click("Decree") + tt.Key(0, ui.KeyTab) + tt.Key(0, ui.KeyEnter) + if opens != 2 { + t.Fatalf("opens %d", opens) + } +} + +func TestArtifactCardStreamingDisabledAndChecks(t *testing.T) { + opens := 0 + tt := chatTester(480, 160, func(c *ui.Context) { + if ArtifactCard(c, ArtifactCardOptions{Kind: ArtifactWeb, Title: "Menu", Streaming: true, Disabled: true}).Changed() { + opens++ + } + }) + _ = tt.Click("Menu") + tt.Key(0, ui.KeyTab) + tt.Key(0, ui.KeyEnter) + if opens != 0 || !tt.HasText("Web page") { + t.Fatalf("opens %d texts %q", opens, tt.Texts()) + } + for _, opts := range []ArtifactCardOptions{{}, {Title: "x", Kind: 7}} { + func() { + defer func() { + if recover() == nil { + t.Errorf("%+v: no panic", opts) + } + }() + ui.Render(func(c *ui.Context) { + Use(c, Settings{}) + ArtifactCard(c, opts) + }, 100, 100, 1) + }() + } +} + +func TestArtifactCardSnapshot(t *testing.T) { + snapshot(t, "artifact_card", 460, 210, func(c *ui.Context) { + ui.Column(c).Padding(16).Gap(8).Children(func() { + ArtifactCard(c, ArtifactCardOptions{Kind: ArtifactCode, Title: "seating.go", Detail: "Go · 120 lines"}) + ArtifactCard(c, ArtifactCardOptions{Kind: ArtifactDocument, Title: "Royal decree", Streaming: true}) + ArtifactCard(c, ArtifactCardOptions{Kind: ArtifactWeb, Title: "Ball invitation", Disabled: true}) + }) + }) +} diff --git a/capability_cards_test.go b/capability_cards_test.go new file mode 100644 index 0000000..a80add7 --- /dev/null +++ b/capability_cards_test.go @@ -0,0 +1,73 @@ +package mujica + +import ( + "testing" + + "github.com/egoist/mygo/ui" +) + +func TestCapabilityCardsExample(t *testing.T) { + got := "" + tt := chatTester(900, 400, func(c *ui.Context) { + if v := CapabilityCards(c, chatCards(), CapabilityCardsOptions{}); v.Example != "" { + got = v.Example + } + }) + if !tt.HasText("Banquets, seating and schedules.") { + t.Fatal("description missing") + } + if err := tt.Click("“Plan a ball for 200 guests”"); err != nil { + t.Fatal(err) + } + if got != "Plan a ball for 200 guests" { + t.Fatalf("example %q", got) + } + // Tab moves from the clicked example to the next card's. + got = "" + tt.Key(0, ui.KeyTab) + tt.Key(0, ui.KeyEnter) + if got != "Explain the minuet" { + t.Fatalf("keys chose %q", got) + } +} + +func TestCapabilityCardsColumnsAndDisabled(t *testing.T) { + got := "" + var g *ui.Element + tt := chatTester(900, 600, func(c *ui.Context) { + v := CapabilityCards(c, chatCards(), CapabilityCardsOptions{Columns: 1, Disabled: true}) + g = v.Element + if v.Example != "" { + got = v.Example + } + }) + _ = tt.Click("“Explain the minuet”") + tt.Key(0, ui.KeyTab) + tt.Key(0, ui.KeyEnter) + if got != "" { + t.Fatalf("disabled cards chose %q", got) + } + a, _ := tt.Find("Write") + b, _ := tt.Find("Plan") + if b.Y <= a.Y || g == nil { + t.Fatalf("one column should stack cards: %v %v", a, b) + } +} + +func TestCapabilityCardsNeedTitles(t *testing.T) { + defer func() { + if recover() == nil { + t.Fatal("no panic") + } + }() + ui.Render(func(c *ui.Context) { + Use(c, Settings{}) + CapabilityCards(c, []CapabilityCard{{}}, CapabilityCardsOptions{}) + }, 100, 100, 1) +} + +func TestCapabilityCardsSnapshot(t *testing.T) { + snapshot(t, "capability_cards", 860, 200, func(c *ui.Context) { + ui.Column(c).Padding(16).Children(func() { CapabilityCards(c, chatCards(), CapabilityCardsOptions{}) }) + }) +} diff --git a/chat_empty_state_test.go b/chat_empty_state_test.go new file mode 100644 index 0000000..c0eaa73 --- /dev/null +++ b/chat_empty_state_test.go @@ -0,0 +1,59 @@ +package mujica + +import ( + "testing" + + "github.com/egoist/mygo/ui" +) + +func TestChatEmptyStateKinds(t *testing.T) { + for _, tc := range []struct { + opts ChatEmptyStateOptions + texts []string + action string + }{ + {ChatEmptyStateOptions{}, []string{"Start a conversation"}, "New conversation"}, + {ChatEmptyStateOptions{Kind: ChatEmptyNoResults, Query: "minuet"}, []string{"minuet"}, "Clear search"}, + {ChatEmptyStateOptions{Kind: ChatEmptyOffline}, []string{"You are offline"}, "Retry"}, + {ChatEmptyStateOptions{Kind: ChatEmptyOffline, Title: "Lost the court", Action: "Reconnect"}, []string{"Lost the court"}, "Reconnect"}, + } { + acted := 0 + tt := chatTester(420, 320, func(c *ui.Context) { + if ChatEmptyState(c, tc.opts).Action { + acted++ + } + }) + for _, s := range tc.texts { + if !tt.HasText(s) { + t.Errorf("%+v: %q missing from %q", tc.opts, s, tt.Texts()) + } + } + tt.Key(0, ui.KeyTab) + tt.Key(0, ui.KeyEnter) + if err := tt.Click(tc.action); err != nil || acted != 2 { + t.Errorf("%+v: action %q acted %d (%v)", tc.opts, tc.action, acted, err) + } + } +} + +func TestChatEmptyStateRejectsBadKind(t *testing.T) { + defer func() { + if recover() == nil { + t.Fatal("no panic") + } + }() + ui.Render(func(c *ui.Context) { + Use(c, Settings{}) + ChatEmptyState(c, ChatEmptyStateOptions{Kind: 9}) + }, 100, 100, 1) +} + +func TestChatEmptyStateSnapshot(t *testing.T) { + snapshot(t, "chat_empty_state", 820, 240, func(c *ui.Context) { + ui.Row(c).Padding(16).Gap(8).Children(func() { + for _, k := range []ChatEmptyKind{ChatEmptyNew, ChatEmptyNoResults, ChatEmptyOffline} { + ui.Column(c).Width(260).Children(func() { ChatEmptyState(c, ChatEmptyStateOptions{Kind: k, Query: "minuet"}) }) + } + }) + }) +} diff --git a/chatsession_fixture_test.go b/chatsession_fixture_test.go new file mode 100644 index 0000000..4f2b199 --- /dev/null +++ b/chatsession_fixture_test.go @@ -0,0 +1,38 @@ +package mujica + +import ( + "time" + + "mujicaui/icons" +) + +// chatNow is the fixed clock of the chat session tests. +var chatNow = time.Date(2026, time.October, 5, 15, 30, 0, 0, time.UTC) + +func chatConversations() []ChatConversation { + h := time.Hour + return []ChatConversation{ + {ID: "a", Title: "Court etiquette notes", Updated: chatNow.Add(-2 * h)}, + {ID: "b", Title: "Ballroom seating plan", Updated: chatNow.Add(-26 * h)}, + {ID: "c", Title: "Harpsichord repair", Updated: chatNow.Add(-4 * 24 * h)}, + {ID: "d", Title: "Coronation menu", Updated: chatNow.Add(-40 * 24 * h)}, + {ID: "e", Title: "Royal letters", Updated: chatNow.Add(-90 * 24 * h), Pinned: true}, + {ID: "f", Title: "Garden maze", Updated: chatNow.Add(-1 * h)}, + } +} + +func chatMessages() []SessionMessage { + return []SessionMessage{ + {Role: SessionUser, Text: "How should guests be seated at the banquet?", Time: chatNow.Add(-10 * time.Minute)}, + {Role: SessionAssistant, Text: "Seat by rank: the host at the head, honored guests to the right.", Time: chatNow.Add(-9 * time.Minute)}, + {Role: SessionUser, Author: "Lady Ann", Text: "And the musicians?", Time: chatNow.Add(-5 * time.Minute)}, + } +} + +func chatCards() []CapabilityCard { + return []CapabilityCard{ + {Title: "Write", Description: "Letters, speeches and verse.", Icon: icons.Must("file-text"), Examples: []string{"Draft a royal decree"}}, + {Title: "Plan", Description: "Banquets, seating and schedules.", Icon: icons.Must("calendar"), Examples: []string{"Plan a ball for 200 guests"}}, + {Title: "Research", Description: "History, heraldry and music.", Icon: icons.Must("search"), Examples: []string{"Explain the minuet"}}, + } +} diff --git a/conversation_export_test.go b/conversation_export_test.go new file mode 100644 index 0000000..68c63aa --- /dev/null +++ b/conversation_export_test.go @@ -0,0 +1,95 @@ +package mujica + +import ( + "encoding/json" + "strings" + "testing" + + "github.com/egoist/mygo/ui" +) + +func TestExportConversationFormats(t *testing.T) { + msgs := chatMessages() + md := ExportConversation("Banquet", msgs, ExportMarkdown) + want := "# Banquet\n\n**User** · (2026-10-05 15:20)\n\nHow should guests be seated at the banquet?\n" + if !strings.HasPrefix(md, want) || !strings.Contains(md, "**Lady Ann**") { + t.Fatalf("markdown %q", md) + } + var doc struct { + Title string + Messages []struct{ Role, Author, Text, Time string } + } + if err := json.Unmarshal([]byte(ExportConversation("Banquet", msgs, ExportJSON)), &doc); err != nil { + t.Fatal(err) + } + if doc.Title != "Banquet" || len(doc.Messages) != 3 || doc.Messages[1].Role != "assistant" || doc.Messages[2].Author != "Lady Ann" || + doc.Messages[0].Time != "2026-10-05T15:20:00Z" { + t.Fatalf("json %+v", doc) + } + txt := ExportConversation("Banquet", msgs[:1], ExportText) + if txt != "Banquet\n\nUser (2026-10-05 15:20):\nHow should guests be seated at the banquet?\n" { + t.Fatalf("text %q", txt) + } + if got := ExportConversation("Empty", nil, ExportJSON); !strings.Contains(got, `"messages": []`) { + t.Fatalf("empty json %q", got) + } +} + +func TestConversationExportRangeAndExport(t *testing.T) { + var s ConversationExportState + var last ConversationExportView + selected := []int{2} + tt := chatTester(560, 600, func(c *ui.Context) { + if v := ConversationExport(c, &s, chatMessages(), ConversationExportOptions{Title: "Banquet", Selected: selected}); v.Exported { + last = v + } + }) + _ = tt.Click("JSON") + _ = tt.Click("Selected (1)") + _ = tt.Click("Export") + if !last.Exported || last.Format != ExportJSON || !strings.Contains(last.Content, "And the musicians?") || + strings.Contains(last.Content, "banquet?") { + t.Fatalf("export %+v", last) + } + _ = tt.Click("Plain text") + _ = tt.Click("Last") + s.Last = 2 + tt.Frame() + _ = tt.Click("Export") + if last.Format != ExportText || strings.Contains(last.Content, "banquet?") || !strings.Contains(last.Content, "Seat by rank") { + t.Fatalf("last-2 export %q", last.Content) + } +} + +func TestConversationExportDisabledAndChecks(t *testing.T) { + var s ConversationExportState + exported := false + tt := chatTester(560, 600, func(c *ui.Context) { + if ConversationExport(c, &s, chatMessages(), ConversationExportOptions{Title: "T", Disabled: true}).Exported { + exported = true + } + }) + _ = tt.Click("JSON") + _ = tt.Click("Export") + if exported || s.Format != ExportMarkdown { + t.Fatalf("disabled export acted: %v %v", exported, s.Format) + } + defer func() { + if recover() == nil { + t.Fatal("no panic for a bad selection") + } + }() + ui.Render(func(c *ui.Context) { + Use(c, Settings{}) + ConversationExport(c, &s, chatMessages(), ConversationExportOptions{Title: "T", Selected: []int{9}}) + }, 100, 100, 1) +} + +func TestConversationExportSnapshot(t *testing.T) { + snapshot(t, "conversation_export", 560, 470, func(c *ui.Context) { + s := &ConversationExportState{} + ui.Column(c).Padding(16).Children(func() { + ConversationExport(c, s, chatMessages(), ConversationExportOptions{Title: "Banquet seating", Selected: []int{0, 2}}) + }) + }) +} diff --git a/conversation_item.go b/conversation_item.go index c3eb5b2..9d04be3 100644 --- a/conversation_item.go +++ b/conversation_item.go @@ -94,7 +94,7 @@ func ConversationItem(c *ui.Context, conv *ChatConversation, opts ConversationIt v.Deleted = main.Shortcut(0, ui.KeyDelete) } } - menu := DropdownMenu(c, "", DropdownMenuOptions{Icon: icons.Must("ellipsis"), Label: msg(c, "conversation_item.actions"), Disabled: opts.Disabled}, func(m *PopupMenu) { + conversationItemMenu(c, msg(c, "conversation_item.actions"), func(m *PopupMenu) { rename = m.Item(msg(c, "conversation_item.rename"), PopupMenuItemOptions{}) || rename pin := msg(c, "conversation_item.pin") if conv.Pinned { @@ -105,7 +105,6 @@ func ConversationItem(c *ui.Context, conv *ChatConversation, opts ConversationIt m.Separator() v.Deleted = m.Item(msg(c, "conversation_item.delete"), PopupMenuItemOptions{}) || v.Deleted }) - menu.Shrink(0).MinWidth(theme.MinHitSize).MinHeight(theme.MinHitSize) }) if rename && !row.IsDisabled() { st.editing, st.fresh, st.draft = true, true, conv.Title @@ -142,3 +141,16 @@ func conversationItemEditor(c *ui.Context, k theme.Tokens, conv *ChatConversatio st.editing = false } } + +// conversationItemMenu is a borderless ellipsis button opening the menu build fills. +func conversationItemMenu(c *ui.Context, label string, build func(m *PopupMenu)) *ui.Element { + b := iconAction(c, icons.Must("ellipsis"), label).Role(ui.RoleMenuButton).Shrink(0) + open := ui.Local(b, conversationItemKey{}, func() bool { return false }) + if b.IsDisabled() { + *open = false + } else if b.Clicked() || b.Shortcut(0, ui.KeyDown) { + *open = true + } + popupMenuOpen(c, b, open, build) + return b +} diff --git a/conversation_item_test.go b/conversation_item_test.go new file mode 100644 index 0000000..1d358fa --- /dev/null +++ b/conversation_item_test.go @@ -0,0 +1,118 @@ +package mujica + +import ( + "testing" + + "github.com/egoist/mygo/ui" +) + +func conversationItemTester(conv *ChatConversation, opts ConversationItemOptions, got *ConversationItemView) *ui.Tester { + return chatTester(420, 360, func(c *ui.Context) { + opts.Today = DateOf(chatNow) + v := ConversationItem(c, conv, opts) + if v.Opened || v.Deleted || v.Exported || v.PinToggled || v.Renamed { + *got = v + } + }) +} + +func TestConversationItemShowsTitleAndTime(t *testing.T) { + convs := chatConversations() + var got ConversationItemView + tt := conversationItemTester(&convs[0], ConversationItemOptions{}, &got) + if !tt.HasText("Court etiquette notes") || !tt.HasText("13:30") { + t.Fatalf("texts %q", tt.Texts()) + } + tt = conversationItemTester(&convs[1], ConversationItemOptions{}, &got) + if !tt.HasText("Yesterday") { + t.Fatalf("texts %q", tt.Texts()) + } + if err := tt.Click("Ballroom seating plan"); err != nil { + t.Fatal(err) + } + if !got.Opened { + t.Fatal("click did not open") + } +} + +func TestConversationItemMenuActions(t *testing.T) { + for _, tc := range []struct { + item string + want func(v ConversationItemView) bool + }{ + {"Pin", func(v ConversationItemView) bool { return v.PinToggled }}, + {"Export", func(v ConversationItemView) bool { return v.Exported }}, + {"Delete", func(v ConversationItemView) bool { return v.Deleted }}, + } { + conv := chatConversations()[0] + var got ConversationItemView + tt := conversationItemTester(&conv, ConversationItemOptions{}, &got) + if err := tt.Click("Conversation actions"); err != nil { + t.Fatal(err) + } + if err := tt.Click(tc.item); err != nil { + t.Fatal(err) + } + if !tc.want(got) { + t.Errorf("%s: %+v", tc.item, got) + } + } +} + +func TestConversationItemInlineRename(t *testing.T) { + conv := chatConversations()[0] + var got ConversationItemView + tt := conversationItemTester(&conv, ConversationItemOptions{}, &got) + _ = tt.Click("Conversation actions") + _ = tt.Click("Rename") + if !tt.Focused("Rename") { + t.Fatal("rename field not focused") + } + tt.Key(0, ui.KeyEnd) + tt.Type(" II") + tt.Key(0, ui.KeyEnter) + if conv.Title != "Court etiquette notes II" || !got.Renamed { + t.Fatalf("title %q renamed %v", conv.Title, got.Renamed) + } + // F2 starts a rename; Escape keeps the title; a blank title is refused. + _ = tt.Click("Court etiquette notes II") + tt.Key(0, ui.KeyF2) + tt.Type("xyz") + tt.Key(0, ui.KeyEscape) + if conv.Title != "Court etiquette notes II" { + t.Fatalf("Escape changed the title to %q", conv.Title) + } + tt.Key(0, ui.KeyF2) + tt.Key(ui.Cmd, ui.KeyA) + tt.Key(ui.Ctrl, ui.KeyA) + tt.Key(0, ui.KeyBackspace) + tt.Key(0, ui.KeyEnter) + if conv.Title != "Court etiquette notes II" { + t.Fatalf("blank rename gave %q", conv.Title) + } +} + +func TestConversationItemDisabled(t *testing.T) { + conv := chatConversations()[0] + var got ConversationItemView + tt := conversationItemTester(&conv, ConversationItemOptions{Disabled: true}, &got) + _ = tt.Click("Court etiquette notes") + _ = tt.Click("Conversation actions") + tt.Key(0, ui.KeyTab) + tt.Key(0, ui.KeyF2) + tt.Key(0, ui.KeyDelete) + if got.Opened || got.Deleted || tt.HasText("Rename") { + t.Fatalf("disabled item acted: %+v", got) + } +} + +func TestConversationItemSnapshot(t *testing.T) { + snapshot(t, "conversation_item", 420, 140, func(c *ui.Context) { + convs := chatConversations() + ui.Column(c).Padding(16).Gap(4).Children(func() { + ConversationItem(c, &convs[0], ConversationItemOptions{Today: DateOf(chatNow), Selected: true}) + ConversationItem(c, &convs[4], ConversationItemOptions{Today: DateOf(chatNow)}) + ConversationItem(c, &convs[3], ConversationItemOptions{Today: DateOf(chatNow), Disabled: true}) + }) + }) +} diff --git a/conversation_list.go b/conversation_list.go index c6dae06..f2d1a0d 100644 --- a/conversation_list.go +++ b/conversation_list.go @@ -94,7 +94,7 @@ func ConversationList(c *ui.Context, s *ConversationListState, items []ChatConve s.rows.Label = func(i int) string { return conversationListTitle(c, items, rows[i]) } s.rows.Selected = cursor var list *ui.Element - wrap := ui.Column(c).Grow(1).MinHeight(0).Disabled(opts.Disabled) + wrap := ui.Column(c).MinHeight(0).Disabled(opts.Disabled) wrap.Children(func() { restore := dataSelectTheme(c, 0) list = ui.List(c, &s.rows, len(rows), func(i int) { diff --git a/conversation_list_test.go b/conversation_list_test.go new file mode 100644 index 0000000..3307cd6 --- /dev/null +++ b/conversation_list_test.go @@ -0,0 +1,114 @@ +package mujica + +import ( + "fmt" + "slices" + "testing" + "time" + + "github.com/egoist/mygo/ui" +) + +func chatTester(w, h int, view func(c *ui.Context)) *ui.Tester { + return ui.NewTester(func(c *ui.Context) { + Use(c, Settings{}) + ui.Column(c).Padding(10).Fill().Children(func() { view(c) }) + }, w, h) +} + +func TestConversationListGroups(t *testing.T) { + var s ConversationListState + items := chatConversations() + tt := chatTester(400, 600, func(c *ui.Context) { + ConversationList(c, &s, items, ConversationListOptions{Now: chatNow}, nil).Element.Height(560) + }) + want := []string{"Pinned", "Royal letters", "Today", "Garden maze", "Court etiquette notes", "Yesterday", + "Ballroom seating plan", "Previous 7 days", "Harpsichord repair", "Older", "Coronation menu"} + got := slices.Compact(slices.DeleteFunc(tt.Texts(), func(s string) bool { return !slices.Contains(want, s) })) + if !slices.Equal(got, want) { + t.Fatalf("rows %q", got) + } +} + +func TestConversationListSelectAndKeys(t *testing.T) { + var s ConversationListState + items := chatConversations() + changes, opened := 0, 0 + tt := chatTester(400, 600, func(c *ui.Context) { + v := ConversationList(c, &s, items, ConversationListOptions{Now: chatNow, Label: "History"}, nil) + v.Element.Height(560) + if v.Changed() { + changes++ + } + if v.Submitted() { + opened++ + } + }) + if err := tt.Click("Garden maze"); err != nil { + t.Fatal(err) + } + if s.Selected != "f" || changes != 1 { + t.Fatalf("selected %q changes %d", s.Selected, changes) + } + tt.Key(0, ui.KeyDown) + if s.Selected != "a" { + t.Fatalf("Down chose %q", s.Selected) + } + tt.Key(0, ui.KeyDown) + if s.Selected != "b" { + t.Fatalf("Down over a header chose %q", s.Selected) + } + tt.Key(0, ui.KeyEnter) + if opened != 1 { + t.Fatalf("Enter opened %d", opened) + } +} + +func TestConversationListDisabled(t *testing.T) { + var s ConversationListState + items := chatConversations() + tt := chatTester(400, 600, func(c *ui.Context) { + ConversationList(c, &s, items, ConversationListOptions{Now: chatNow, Disabled: true}, nil).Element.Height(560) + }) + _ = tt.Click("Garden maze") + tt.Key(0, ui.KeyTab) + tt.Key(0, ui.KeyDown) + if s.Selected != "" { + t.Fatalf("disabled list chose %q", s.Selected) + } +} + +func TestConversationListVirtualizesAndGroupsOnce(t *testing.T) { + items := make([]ChatConversation, 100000) + for i := range items { + items[i] = ChatConversation{ID: fmt.Sprint(i), Title: fmt.Sprintf("Conversation %d", i), Updated: chatNow.Add(-time.Duration(i) * time.Minute)} + } + var s ConversationListState + tt := chatTester(400, 600, func(c *ui.Context) { + ConversationList(c, &s, items, ConversationListOptions{Now: chatNow}, nil).Element.Height(560) + }) + if n := len(tt.Texts()); n > 80 { + t.Fatalf("built %d texts for 100000 conversations", n) + } + // A marked plan survives frames that bring no new data. + s.plan.rows[1].item = -7 + tt.Frame() + if s.plan.rows[1].item != -7 { + t.Fatal("regrouped without a data change") + } + s.plan.rows[1].item = 0 + // Today, Yesterday, Previous 7 days and Older head the rows. + if len(s.plan.rows) != len(items)+4 { + t.Fatalf("%d rows", len(s.plan.rows)) + } +} + +func TestConversationListSnapshot(t *testing.T) { + items := chatConversations() + snapshot(t, "conversation_list", 360, 420, func(c *ui.Context) { + s := &ConversationListState{Selected: "b"} + ui.Column(c).Padding(16).Children(func() { + ConversationList(c, s, items, ConversationListOptions{Now: chatNow, Label: "History"}, nil).Element.Height(380) + }) + }) +} diff --git a/conversation_search.go b/conversation_search.go index 0fc7865..44bc501 100644 --- a/conversation_search.go +++ b/conversation_search.go @@ -97,10 +97,12 @@ func conversationSearchList(c *ui.Context, s *conversationSearchState, q string, s.rows.Key = func(i int) any { return hits[i].ID } s.rows.Label = func(i int) string { return hits[i].Title } s.rows.Selected = &s.cursor + // Rows have one height, so the list can size itself before measuring them. + rowH := d.ControlHeight() + FontSize(c, theme.CaptionSize)*theme.LineHeight + 2 restore := dataSelectTheme(c, 0) list := ui.List(c, &s.rows, len(hits), func(i int) { h := hits[i] - row := ui.Column(c).MinHeight(d.ControlHeight()).Padding(d.Unit(), d.Unit()*2).Gap(2).Justify(ui.Center) + row := ui.Column(c).Height(rowH).Padding(d.Unit(), d.Unit()*2).Gap(2).Justify(ui.Center).ClipY() if i == s.cursor { row.DrawOver(func(p *ui.Painter, r ui.Rect) { p.FillPath(internal.Diamond(r.X+3, r.Y+r.H/2, 6), k.AccentText) @@ -109,13 +111,13 @@ func conversationSearchList(c *ui.Context, s *conversationSearchState, q string, row.Children(func() { ui.RichText(c, conversationSearchSpans(h.Title, q, k)...).SingleLine() if h.Snippet != "" { - ui.RichText(c, conversationSearchSpans(h.Snippet, q, k)...).MaxLines(2).TextColor(k.TextMuted).FontSize(FontSize(c, theme.CaptionSize)) + ui.RichText(c, conversationSearchSpans(h.Snippet, q, k)...).SingleLine().TextColor(k.TextMuted).FontSize(FontSize(c, theme.CaptionSize)) } }) if !row.IsDisabled() && row.Clicked() { chosen = h.ID } - }).MaxHeight(360).Padding(d.Unit()).Background(k.Surface).Border(theme.BorderWidth, k.Border). + }).Height(min(360, float32(len(hits))*rowH+2*d.Unit()+2)).Padding(d.Unit()).Background(k.Surface).Border(theme.BorderWidth, k.Border). Radius(theme.ControlRadius).Label(msg(c, "conversation_search.results")) restore() internal.Ring(list, k.Focus, theme.ControlRadius) diff --git a/conversation_search_test.go b/conversation_search_test.go new file mode 100644 index 0000000..2afb0f9 --- /dev/null +++ b/conversation_search_test.go @@ -0,0 +1,133 @@ +package mujica + +import ( + "slices" + "strings" + "testing" + + "github.com/egoist/mygo/ui" +) + +// chatSearchBackend answers queries one frame late, as an async caller does. +type chatSearchBackend struct { + query, asked string + hits []ConversationSearchHit + loading bool + queries []string + chosen string + err string + retries int +} + +func (b *chatSearchBackend) view(opts ConversationSearchOptions) func(c *ui.Context) { + return func(c *ui.Context) { + if b.loading && b.err == "" { + b.loading, b.hits = false, nil + for _, conv := range chatConversations() { + if strings.Contains(strings.ToLower(conv.Title), strings.ToLower(b.asked)) { + b.hits = append(b.hits, ConversationSearchHit{ID: conv.ID, Title: conv.Title, Snippet: "about " + conv.Title}) + } + } + } + opts.Loading, opts.Error = b.loading, b.err + v := ConversationSearch(c, &b.query, b.hits, opts) + if v.QueryChanged { + b.queries = append(b.queries, b.query) + b.asked, b.loading = b.query, true + c.Invalidate() + } + if v.Chosen != "" { + b.chosen = v.Chosen + } + if v.Retry { + b.retries++ + } + } +} + +func TestConversationSearchAsyncAndChoose(t *testing.T) { + b := &chatSearchBackend{} + tt := chatTester(420, 400, b.view(ConversationSearchOptions{Label: "Search conversations"})) + tt.Key(0, ui.KeyTab) + tt.Type("garden") + tt.Frame() + if len(b.queries) == 0 || b.queries[len(b.queries)-1] != "garden" { + t.Fatalf("queries %q", b.queries) + } + if !tt.HasText("Garden maze") { + t.Fatalf("results %q", tt.Texts()) + } + if err := tt.Click("Garden maze"); err != nil { + t.Fatal(err) + } + if b.chosen != "f" { + t.Fatalf("chose %q", b.chosen) + } +} + +func TestConversationSearchKeyboard(t *testing.T) { + b := &chatSearchBackend{} + tt := chatTester(420, 400, b.view(ConversationSearchOptions{Label: "Search conversations"})) + tt.Key(0, ui.KeyTab) + tt.Type("o") + tt.Frame() + tt.Key(0, ui.KeyDown) + tt.Key(0, ui.KeyDown) + tt.Key(0, ui.KeyEnter) + if b.chosen == "" || b.chosen != b.hits[1].ID { + t.Fatalf("keys chose %q of %v", b.chosen, b.hits) + } +} + +func TestConversationSearchStates(t *testing.T) { + b := &chatSearchBackend{query: "zzz", asked: "zzz"} + tt := chatTester(420, 400, b.view(ConversationSearchOptions{})) + if !tt.HasText("No conversations match") { + t.Fatalf("texts %q", tt.Texts()) + } + b.err = "Search is down" + tt.Frame() + if !tt.HasText("Search is down") { + t.Fatal("error missing") + } + _ = tt.Click("Retry") + if b.retries != 1 { + t.Fatalf("retries %d", b.retries) + } +} + +func TestConversationSearchHighlights(t *testing.T) { + got := conversationSearchMatches("Ballroom SEATING and seats", "seat") + if !slices.Equal(got, [][2]int{{9, 13}, {21, 25}}) { + t.Fatalf("matches %v", got) + } + if got := conversationSearchMatches("宫廷礼仪与宫廷音乐", "宫廷"); !slices.Equal(got, [][2]int{{0, 2}, {5, 7}}) { + t.Fatalf("CJK matches %v", got) + } + if conversationSearchMatches("abc", "") != nil { + t.Fatal("empty query matched") + } +} + +func TestConversationSearchDisabled(t *testing.T) { + b := &chatSearchBackend{query: "o", hits: []ConversationSearchHit{{ID: "x", Title: "Royal"}}} + tt := chatTester(420, 400, b.view(ConversationSearchOptions{Disabled: true})) + _ = tt.Click("Royal") + tt.Key(0, ui.KeyTab) + tt.Type("q") + if b.chosen != "" || b.query != "o" || len(b.queries) != 0 { + t.Fatalf("disabled search acted: %q %q %v", b.chosen, b.query, b.queries) + } +} + +func TestConversationSearchSnapshot(t *testing.T) { + snapshot(t, "conversation_search", 420, 260, func(c *ui.Context) { + q := "seat" + ui.Column(c).Padding(16).Children(func() { + ConversationSearch(c, &q, []ConversationSearchHit{ + {ID: "b", Title: "Ballroom seating plan", Snippet: "…where to seat the duke…"}, + {ID: "c", Title: "Theatre seats", Snippet: "Box seats for the opera"}, + }, ConversationSearchOptions{}) + }) + }) +} diff --git a/cost_estimator_test.go b/cost_estimator_test.go new file mode 100644 index 0000000..f1dfb2a --- /dev/null +++ b/cost_estimator_test.go @@ -0,0 +1,59 @@ +package mujica + +import ( + "math" + "testing" + + "github.com/egoist/mygo/ui" +) + +func TestCostEstimatorTable(t *testing.T) { + tt := chatTester(420, 260, func(c *ui.Context) { + CostEstimator(c, CostEstimatorOptions{InputTokens: 12000, OutputTokens: 3400, InputPrice: 3, OutputPrice: 15}) + }) + for _, s := range []string{"12000", "3400", "15400", "$0.0360", "$0.0510", "$0.0870", "input $3, output $15"} { + if !tt.HasText(s) { + t.Errorf("%q missing from %q", s, tt.Texts()) + } + } + tt = chatTester(420, 260, func(c *ui.Context) { + CostEstimator(c, CostEstimatorOptions{InputTokens: 1e6, InputPrice: 2.5, Currency: "¥", Digits: 2}) + }) + if !tt.HasText("¥2.50") { + t.Fatalf("texts %q", tt.Texts()) + } +} + +func TestEstimateCost(t *testing.T) { + got := EstimateCost(1_000_000, 500_000, 3, 15) + if got.Input != 3 || got.Output != 7.5 || got.Total != 10.5 { + t.Fatalf("estimate %+v", got) + } + if z := EstimateCost(0, 0, 3, 15); z.Total != 0 { + t.Fatalf("zero tokens cost %v", z.Total) + } +} + +func TestCostEstimatorRejectsBadInput(t *testing.T) { + for _, opts := range []CostEstimatorOptions{{InputTokens: -1}, {InputPrice: -1}, {OutputPrice: math.NaN()}, {Digits: -1}} { + func() { + defer func() { + if recover() == nil { + t.Errorf("%+v: no panic", opts) + } + }() + ui.Render(func(c *ui.Context) { + Use(c, Settings{}) + CostEstimator(c, opts) + }, 100, 100, 1) + }() + } +} + +func TestCostEstimatorSnapshot(t *testing.T) { + snapshot(t, "cost_estimator", 420, 200, func(c *ui.Context) { + ui.Column(c).Padding(16).Children(func() { + CostEstimator(c, CostEstimatorOptions{InputTokens: 12000, OutputTokens: 3400, InputPrice: 3, OutputPrice: 15}) + }) + }) +} diff --git a/date_separator_test.go b/date_separator_test.go new file mode 100644 index 0000000..bd68bc1 --- /dev/null +++ b/date_separator_test.go @@ -0,0 +1,65 @@ +package mujica + +import ( + "testing" + + "github.com/egoist/mygo/ui" +) + +func TestDateSeparatorLabels(t *testing.T) { + today := DateOf(chatNow) + for _, tc := range []struct { + locale Locale + day Date + want string + }{ + {EnUS, today, "Today"}, + {EnUS, today.AddDays(-1), "Yesterday"}, + {EnUS, Date{2026, 9, 1}, "Tuesday, September 1, 2026"}, + {ZhCN, today, "今天"}, + {ZhCN, today.AddDays(-1), "昨天"}, + {ZhCN, Date{2026, 9, 1}, "2026年9月1日 星期二"}, + } { + tt := ui.NewTester(func(c *ui.Context) { + Use(c, Settings{Locale: tc.locale}) + DateSeparator(c, tc.day, DateSeparatorOptions{Today: today}) + }, 500, 80) + if !tt.HasText(tc.want) { + t.Errorf("%s %v: texts %q", tc.locale, tc.day, tt.Texts()) + } + } +} + +func TestDateSeparatorShortStamp(t *testing.T) { + var got []string + ui.Render(func(c *ui.Context) { + Use(c, Settings{}) + today := DateOf(chatNow) + got = []string{dateSeparatorWhen(c, chatNow, today), dateSeparatorWhen(c, chatNow.AddDate(0, 0, -1), today), + dateSeparatorWhen(c, chatNow.AddDate(0, -2, 0), today)} + }, 100, 100, 1) + if got[0] != "15:30" || got[1] != "Yesterday" || got[2] != "August 5" { + t.Fatalf("stamps %q", got) + } +} + +func TestDateSeparatorRejectsInvalid(t *testing.T) { + defer func() { + if recover() == nil { + t.Fatal("no panic") + } + }() + ui.Render(func(c *ui.Context) { + Use(c, Settings{}) + DateSeparator(c, Date{2026, 2, 30}, DateSeparatorOptions{}) + }, 100, 100, 1) +} + +func TestDateSeparatorSnapshot(t *testing.T) { + snapshot(t, "date_separator", 520, 110, func(c *ui.Context) { + ui.Column(c).Padding(16).Children(func() { + DateSeparator(c, DateOf(chatNow), DateSeparatorOptions{Today: DateOf(chatNow)}) + DateSeparator(c, Date{2026, 9, 1}, DateSeparatorOptions{Today: DateOf(chatNow)}) + }) + }) +} diff --git a/docs/components/241-conversation-list.md b/docs/components/241-conversation-list.md new file mode 100644 index 0000000..c2d1703 --- /dev/null +++ b/docs/components/241-conversation-list.md @@ -0,0 +1,56 @@ +# 241 ConversationList · 会话列表 + +## 用途 + +按“置顶、今天、昨天、7 天内、更早”分组显示历史会话,只构建可见行,适合十万条以上的会话历史。 + +## 最小示例 + +```go +var state mujica.ConversationListState +convs := []mujica.ChatConversation{ + {ID: "1", Title: "Court etiquette", Updated: time.Now()}, + {ID: "2", Title: "Royal letters", Updated: time.Now().AddDate(0, 0, -30), Pinned: true}, +} +view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if mujica.ConversationList(c, &state, convs, mujica.ConversationListOptions{Label: "History"}, nil).Changed() { + log.Println("open", state.Selected) + } +} +ui.Render(view, 400, 300, 1) +``` + +## 参数 + +`func ConversationList(c *ui.Context, s *ConversationListState, items []ChatConversation, opts ConversationListOptions, row func(conv ChatConversation)) ConversationListView`。`row` 为 nil 时显示标题;传入时可放 `ConversationItem` 等自定义内容。 + +`ChatConversation`:`ID`(唯一)、`Title`、`Updated`、`Pinned`。 + +| 字段 | 类型 | 默认值 | 含义 | +| --- | --- | --- | --- | +| `Now` | `time.Time` | 零值(窗口时钟) | 分组用的当前时间。 | +| `Label` | `string` | "" | 列表的无障碍名称。 | +| `Disabled` | `bool` | false | 禁用:不能选择,退出 Tab 序列。 | + +`ConversationListState.Selected` 为当前会话 ID,调用方可直接设置。 + +## 状态 + +分组标题(衬线小字、旧金色)、普通行、悬停、选中(Selection 底色 + 左侧菱形)、聚焦(列表焦点环)、禁用。 + +## 事件 + +`Changed()`:选中了另一会话,ID 在 `State.Selected`。`Submitted()`:在选中行上按 Enter 或双击。 + +## 键盘操作 + +- Tab:聚焦列表。 +- ↑/↓、Home、End:在会话间移动并选择,跳过分组标题;输入首字母定位。 +- Enter:打开当前会话。 + +## 限制 + +- 分组与排序只在 `items` 切片(首元素地址或长度)或当天日期变化时重算。原地修改切片元素后,请传入新切片以触发重新分组。 +- 选中行由 MyGo 列表报告选中状态;分组标题由 `ListState.Header` 标记,不可选中。 +- 自定义 `row` 中若含按钮(如 `ConversationItem`),点击由按钮处理,不会改变列表选择;请在按钮事件里设置 `State.Selected`。 diff --git a/docs/components/242-conversation-item.md b/docs/components/242-conversation-item.md new file mode 100644 index 0000000..84246ff --- /dev/null +++ b/docs/components/242-conversation-item.md @@ -0,0 +1,50 @@ +# 242 ConversationItem · 会话条目 + +## 用途 + +一行会话:标题、时间、置顶标记,以及菜单中的重命名(行内编辑)、置顶、导出、删除。删除与导出只回调,由调用方执行。 + +## 最小示例 + +```go +conv := mujica.ChatConversation{ID: "1", Title: "Court etiquette", Updated: time.Now()} +view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + v := mujica.ConversationItem(c, &conv, mujica.ConversationItemOptions{}) + if v.Deleted { + log.Println("delete", conv.ID) + } +} +ui.Render(view, 400, 300, 1) +``` + +## 参数 + +`func ConversationItem(c *ui.Context, conv *ChatConversation, opts ConversationItemOptions) ConversationItemView`。`conv` 不能为 nil,`ID` 不能为空。 + +| 字段 | 类型 | 默认值 | 含义 | +| --- | --- | --- | --- | +| `Today` | `Date` | 零值(窗口时钟) | 决定时间显示为时刻、“昨天”或日期。 | +| `Selected` | `bool` | false | 显示为当前会话。 | +| `Disabled` | `bool` | false | 禁用全部操作。 | +| `Draggable` | `bool` | false | 允许拖到 `ProjectList` 的项目上,携带 `ConversationDrag`。 | + +## 状态 + +默认、悬停、选中(Selection 底色 + 酒红标题)、置顶(星形图标)、行内编辑(输入框酒红边框)、禁用。 + +## 事件 + +`ConversationItemView`:`Opened`(点击或 Enter)、`Renamed`(新标题已写入 `conv.Title`)、`PinToggled`、`Exported`、`Deleted`。 + +## 键盘操作 + +- Enter/Space:打开会话。 +- F2:行内重命名;输入框中 Enter 确认,Escape 取消;空白标题不会被接受。 +- Delete:请求删除。 +- 菜单按钮:Enter、Space 或 ↓ 打开,方向键移动,Escape 关闭。 + +## 限制 + +- 删除没有内置确认;需要确认时由调用方弹出 AlertDialog。 +- 菜单按钮不在条目的 Tab 位之外另设快捷键。 diff --git a/docs/components/243-conversation-search.md b/docs/components/243-conversation-search.md new file mode 100644 index 0000000..4195cdc --- /dev/null +++ b/docs/components/243-conversation-search.md @@ -0,0 +1,53 @@ +# 243 ConversationSearch · 会话搜索 + +## 用途 + +按标题与内容搜索会话。查询交给调用方异步执行,结果回传后高亮匹配文字。 + +## 最小示例 + +```go +query := "seat" +hits := []mujica.ConversationSearchHit{{ID: "1", Title: "Ballroom seating plan"}} +view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + v := mujica.ConversationSearch(c, &query, hits, mujica.ConversationSearchOptions{}) + if v.QueryChanged { + log.Println("search", query) + } +} +ui.Render(view, 400, 300, 1) +``` + +## 参数 + +`func ConversationSearch(c *ui.Context, query *string, hits []ConversationSearchHit, opts ConversationSearchOptions) ConversationSearchView`。 + +`ConversationSearchHit`:`ID`、`Title`、`Snippet`(匹配的消息片段)。 + +| 字段 | 类型 | 默认值 | 含义 | +| --- | --- | --- | --- | +| `Loading` | `bool` | false | 调用方正在搜索。 | +| `Error` | `string` | "" | 搜索失败的说明,附重试按钮。 | +| `Placeholder` | `string` | 内置“搜索” | 输入框占位。 | +| `Label` | `string` | "" | 无障碍名称。 | +| `Disabled` | `bool` | false | 禁用输入与选择。 | + +## 状态 + +空查询、搜索中(旋转标记)、有结果(匹配处加粗、下划线、Selection 底)、无结果、失败(错误文字 + 重试)、禁用。 + +## 事件 + +`QueryChanged`:查询变化,调用方据此发起搜索,结果到达后传入新的 `hits` 并调用 `c.Invalidate()`。`Chosen`:点击或 Enter 打开的会话 ID。`Retry`:点击重试。 + +## 键盘操作 + +- 输入框中 ↓:进入结果列表。 +- 列表中 ↑/↓ 移动,Enter 打开。 +- Escape:清空查询(SearchInput 行为)。 + +## 限制 + +- 匹配高亮为不区分大小写的逐字符匹配,不做分词、拼音或模糊匹配;排序完全由调用方决定。 +- 结果行固定高度(标题一行、片段一行),片段超长时截断。 diff --git a/docs/components/244-project-list.md b/docs/components/244-project-list.md new file mode 100644 index 0000000..a3ed67b --- /dev/null +++ b/docs/components/244-project-list.md @@ -0,0 +1,53 @@ +# 244 ProjectList · 项目列表 + +## 用途 + +按文件夹列出项目,展开项目可见其中的会话;把会话拖到项目上或用“移动”菜单即可改变归属。 + +## 最小示例 + +```go +var state mujica.ProjectListState +projects := []mujica.ChatProject{{ID: "p1", Name: "Coronation", Folder: "Court"}} +convs := func(id string) []mujica.ChatConversation { + return []mujica.ChatConversation{{ID: "1", Title: "Menu"}} +} +view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if v := mujica.ProjectList(c, &state, projects, convs, mujica.ProjectListOptions{}); v.Moved { + log.Println("move", v.MoveID, "to", v.MoveTo) + } +} +ui.Render(view, 400, 300, 1) +``` + +## 参数 + +`func ProjectList(c *ui.Context, s *ProjectListState, projects []ChatProject, conversations func(projectID string) []ChatConversation, opts ProjectListOptions) ProjectListView`。 + +`ChatProject`:`ID`、`Name`、`Folder`(文件夹名,空表示不在文件夹中)。 + +| 字段 | 类型 | 默认值 | 含义 | +| --- | --- | --- | --- | +| `Label` | `string` | "" | 树的无障碍名称。 | +| `Disabled` | `bool` | false | 禁用选择、展开与移动。 | + +## 状态 + +文件夹(展开/收起)、项目行(悬停、选中:Selection 底 + 菱形)、拖入目标(角饰边框)、会话行(拖动时半透明)、禁用。 + +## 事件 + +`ProjectListView`:`Changed`(选中项目,ID 在 `State.Selected`)、`Opened`(打开的会话 ID)、`Moved` 与 `MoveID`/`MoveTo`(把会话移入项目,由调用方更新数据)。 + +## 键盘操作 + +- Tab:进入树;↑/↓ 在文件夹、项目、会话间移动。 +- 项目行上 →/← 展开/收起会话;Enter 选择项目。 +- 文件夹上 Enter/Space 展开或收起。 +- 会话行的菜单按钮:选择“移入项目”下的目标完成移动(拖放的键盘替代)。 + +## 限制 + +- 项目行通过 `Description` 读出“已展开/已收起”;MyGo 不向自定义元素公开 expanded 状态(ui/element.go:282),文件夹使用 `CollapsibleBase`,其展开状态可被辅助技术读到。 +- 列表未虚拟化,适合数百个项目以内。 diff --git a/docs/components/245-project-knowledge-panel.md b/docs/components/245-project-knowledge-panel.md new file mode 100644 index 0000000..158c9e5 --- /dev/null +++ b/docs/components/245-project-knowledge-panel.md @@ -0,0 +1,47 @@ +# 245 ProjectKnowledgePanel · 项目知识面板 + +## 用途 + +列出项目知识文件,提供添加、移除,并显示 token 用量与容量提示。选择与读取文件由调用方完成。 + +## 最小示例 + +```go +files := []mujica.KnowledgeFile{{ID: "1", Name: "etiquette.pdf", Tokens: 12000}} +view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + v := mujica.ProjectKnowledgePanel(c, files, mujica.ProjectKnowledgePanelOptions{Capacity: 200000}) + if v.Add { + log.Println("pick files") + } +} +ui.Render(view, 400, 300, 1) +``` + +## 参数 + +`func ProjectKnowledgePanel(c *ui.Context, files []KnowledgeFile, opts ProjectKnowledgePanelOptions) ProjectKnowledgePanelView`。 + +`KnowledgeFile`:`ID`、`Name`、`Tokens`(不能为负)。 + +| 字段 | 类型 | 默认值 | 含义 | +| --- | --- | --- | --- | +| `Capacity` | `int` | 必填 | 知识容量(tokens),必须为正,否则 panic。 | +| `Title` | `string` | 内置“项目知识” | 面板标题。 | +| `Disabled` | `bool` | false | 禁用添加与移除。 | + +## 状态 + +正常用量(酒红进度)、≥ 80%(警告色 + 三角图标 + “即将用满”)、超出容量(危险色 + 圆形警示图标 + “超出容量”)、空列表、禁用。 + +## 事件 + +`Add`:请调用方打开文件选择。`Removed`:要移除的文件 ID。 + +## 键盘操作 + +- Tab:添加按钮,再进入文件列表;↑/↓ 在移除按钮间移动;Enter/Space 移除。 + +## 限制 + +- token 数由调用方计算;面板只做求和与比例显示。 diff --git a/docs/components/246-welcome-screen.md b/docs/components/246-welcome-screen.md new file mode 100644 index 0000000..910f58f --- /dev/null +++ b/docs/components/246-welcome-screen.md @@ -0,0 +1,46 @@ +# 246 WelcomeScreen · 欢迎页 + +## 用途 + +新会话的欢迎页:衬线问候、菱形分隔、副标题、能力卡片,以及放置起始提示的插槽。 + +## 最小示例 + +```go +cards := []mujica.CapabilityCard{{Title: "Write", Examples: []string{"Draft a decree"}}} +view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if v := mujica.WelcomeScreen(c, mujica.WelcomeScreenOptions{Greeting: "Good evening", Cards: cards}); v.Example != "" { + log.Println("ask", v.Example) + } +} +ui.Render(view, 400, 300, 1) +``` + +## 参数 + +`func WelcomeScreen(c *ui.Context, opts WelcomeScreenOptions) CapabilityCardsView`。 + +| 字段 | 类型 | 默认值 | 含义 | +| --- | --- | --- | --- | +| `Greeting` | `string` | 必填 | 问候语,空时 panic。 | +| `Subtitle` | `string` | "" | 副标题。 | +| `Cards` | `[]CapabilityCard` | nil | 能力卡片,最多三列。 | +| `Prompts` | `func()` | nil | 起始提示插槽,例如 `SuggestionChips`。 | +| `Disabled` | `bool` | false | 禁用卡片示例与插槽内容。 | + +## 状态 + +默认、禁用(由 MyGo 置灰)。卡片与示例按钮的状态见 249 CapabilityCards。 + +## 事件 + +返回值的 `Example`:点击的示例提示。插槽内组件的事件由调用方自行读取。 + +## 键盘操作 + +- Tab 依次经过各卡片的示例与插槽内控件;卡片内 ↑/↓ 在示例间移动;Enter/Space 选择。 + +## 限制 + +- 问候语按纯文本显示,不解析 Markdown。 diff --git a/docs/components/247-suggestion-chips.md b/docs/components/247-suggestion-chips.md new file mode 100644 index 0000000..e8ae72f --- /dev/null +++ b/docs/components/247-suggestion-chips.md @@ -0,0 +1,42 @@ +# 247 SuggestionChips · 建议标签 + +## 用途 + +起始提示或追问建议。点击可填入输入框,或配置为直接发送。 + +## 最小示例 + +```go +input := "" +view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + mujica.SuggestionChips(c, &input, []string{"Plan a ball", "Write a sonnet"}, mujica.SuggestionChipsOptions{}) +} +ui.Render(view, 400, 300, 1) +``` + +## 参数 + +`func SuggestionChips(c *ui.Context, input *string, suggestions []string, opts SuggestionChipsOptions) SuggestionChipsView`。建议不能为空字符串。 + +| 字段 | 类型 | 默认值 | 含义 | +| --- | --- | --- | --- | +| `Send` | `bool` | false | 点击即请求发送;默认把建议填入 `*input`。 | +| `Label` | `string` | "" | 组名称,如“追问建议”。 | +| `Disabled` | `bool` | false | 禁用。 | + +## 状态 + +默认(右箭头)、发送模式(上箭头)、悬停、按下、聚焦、禁用。 + +## 事件 + +`Chosen`:点击的建议。`Sent` 为 true 时调用方应立即发送 `Chosen`;否则建议已写入 `*input`。 + +## 键盘操作 + +- Tab 进入组;←/→ 在建议间移动;Enter/Space 选择。 + +## 限制 + +- 建议换行排列;数量很多时请调用方截取。 diff --git a/docs/components/248-prompt-library.md b/docs/components/248-prompt-library.md new file mode 100644 index 0000000..bd57cd9 --- /dev/null +++ b/docs/components/248-prompt-library.md @@ -0,0 +1,49 @@ +# 248 PromptLibrary · 提示模板库 + +## 用途 + +按分类与搜索浏览提示模板,预览模板,填写 `{{变量}}` 后插入。 + +## 最小示例 + +```go +var state mujica.PromptLibraryState +templates := []mujica.PromptTemplate{{ID: "1", Category: "Letters", Title: "Invitation", Body: "Invite {{guest}}."}} +view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if v := mujica.PromptLibrary(c, &state, templates, mujica.PromptLibraryOptions{}); v.Inserted != "" { + log.Println("insert", v.Inserted) + } +} +ui.Render(view, 400, 300, 1) +``` + +## 参数 + +`func PromptLibrary(c *ui.Context, s *PromptLibraryState, templates []PromptTemplate, opts PromptLibraryOptions) PromptLibraryView`。另有 `PromptLibraryVariables(body)` 与 `PromptLibraryFill(body, values)`。 + +`PromptTemplate`:`ID`、`Category`、`Title`(ID 与 Title 必填)、`Body`(`{{name}}` 为变量,名称可含字母、数字、`_.-`)。 + +`PromptLibraryState`:`Category`(空为全部)、`Query`、`Selected`、`Values`(变量值)。 + +| 字段 | 类型 | 默认值 | 含义 | +| --- | --- | --- | --- | +| `Label` | `string` | "" | 无障碍名称。 | +| `Disabled` | `bool` | false | 禁用全部操作。 | + +## 状态 + +分类与模板行(选中:Selection 底 + 菱形)、无匹配、未选模板、预览(未填变量以 [名称] 标出,已填值酒红加粗)、插入按钮(变量未填全时禁用)、禁用。 + +## 事件 + +`Inserted`:变量已填好的模板正文,非空时由调用方插入输入框。 + +## 键盘操作 + +- Tab 依次进入分类列、搜索框、模板列、变量输入框、插入按钮;列内 ↑/↓ 移动;Enter/Space 选择。 + +## 限制 + +- 过滤只在模板切片、查询或分类变化时重算。 +- 变量为简单占位替换,不支持条件或循环。 diff --git a/docs/components/249-capability-cards.md b/docs/components/249-capability-cards.md new file mode 100644 index 0000000..0c1c886 --- /dev/null +++ b/docs/components/249-capability-cards.md @@ -0,0 +1,45 @@ +# 249 CapabilityCards · 能力卡片 + +## 用途 + +用卡片说明助手能做什么,每张卡片附示例提示,点击示例交给调用方。 + +## 最小示例 + +```go +cards := []mujica.CapabilityCard{{Title: "Plan", Icon: icons.Must("calendar"), Examples: []string{"Plan a ball"}}} +view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if v := mujica.CapabilityCards(c, cards, mujica.CapabilityCardsOptions{}); v.Example != "" { + log.Println("ask", v.Example) + } +} +ui.Render(view, 400, 300, 1) +``` + +## 参数 + +`func CapabilityCards(c *ui.Context, cards []CapabilityCard, opts CapabilityCardsOptions) CapabilityCardsView`。 + +`CapabilityCard`:`Title`(必填)、`Description`、`Icon`、`Examples`。 + +| 字段 | 类型 | 默认值 | 含义 | +| --- | --- | --- | --- | +| `Columns` | `int` | 0 → 3 | 每行卡片数;负数 panic。 | +| `Disabled` | `bool` | false | 禁用示例按钮。 | + +## 状态 + +卡片(衬线标题、酒红图标)、示例按钮(悬停、按下、聚焦)、禁用。 + +## 事件 + +`Example`:点击的示例文字。 + +## 键盘操作 + +- Tab 在各卡片示例组间移动;组内 ↑/↓;Enter/Space 选择。 + +## 限制 + +- 卡片等宽分栏,不随窗口宽度自动减少列数;窄窗口时请调用方传入较小的 `Columns`。 diff --git a/docs/components/250-feedback-form.md b/docs/components/250-feedback-form.md new file mode 100644 index 0000000..3fa8600 --- /dev/null +++ b/docs/components/250-feedback-form.md @@ -0,0 +1,46 @@ +# 250 FeedbackForm · 反馈表单 + +## 用途 + +在点赞或点踩之后询问原因:原因标签多选与补充文字,然后提交或取消。 + +## 最小示例 + +```go +var value mujica.FeedbackValue +view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if mujica.FeedbackForm(c, &value, mujica.FeedbackFormOptions{Rating: mujica.FeedbackDown}).Submitted { + log.Println("reasons", value.Reasons) + } +} +ui.Render(view, 400, 300, 1) +``` + +## 参数 + +`func FeedbackForm(c *ui.Context, value *FeedbackValue, opts FeedbackFormOptions) FeedbackFormView`。`FeedbackValue`:`Reasons`、`Comment`。 + +| 字段 | 类型 | 默认值 | 含义 | +| --- | --- | --- | --- | +| `Rating` | `FeedbackRating` | `FeedbackUp` | 赞(`FeedbackUp`)或踩(`FeedbackDown`),决定标题与内置原因。 | +| `Reasons` | `[]string` | nil(内置) | 替换内置原因。 | +| `Submitting` | `bool` | false | 调用方正在提交:提交按钮显示加载,表单不可编辑。 | +| `Disabled` | `bool` | false | 禁用。 | + +## 状态 + +原因标签(按下:Selection 底 + 下划条)、文字框、提交中、禁用。 + +## 事件 + +`Submitted`:提交;`Cancelled`:取消或 Escape。 + +## 键盘操作 + +- Tab 依次经过原因组、文字框、取消、提交;原因组内 ←/→;Space 切换原因。 +- Escape:取消。 + +## 限制 + +- 表单不发送任何数据;提交由调用方完成。 diff --git a/docs/components/251-date-separator.md b/docs/components/251-date-separator.md new file mode 100644 index 0000000..edd1bdc --- /dev/null +++ b/docs/components/251-date-separator.md @@ -0,0 +1,39 @@ +# 251 DateSeparator · 日期分隔 + +## 用途 + +在消息流中标出新的一天:今天、昨天,其余显示本地化的完整日期。 + +## 最小示例 + +```go +view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + mujica.DateSeparator(c, mujica.DateOf(time.Now()), mujica.DateSeparatorOptions{}) +} +ui.Render(view, 400, 300, 1) +``` + +## 参数 + +`func DateSeparator(c *ui.Context, day Date, opts DateSeparatorOptions) *ui.Element`。`day` 必须是有效日期。 + +| 字段 | 类型 | 默认值 | 含义 | +| --- | --- | --- | --- | +| `Today` | `Date` | 零值(窗口时钟) | 判断“今天/昨天”的当天。 | + +## 状态 + +细线 + 旧金色菱形 + 说明文字;无交互状态。 + +## 事件 + +无。 + +## 键盘操作 + +不获取焦点;辅助技术读出日期文字。 + +## 限制 + +- 日期格式沿用 Calendar 的文案(`calendar.day_label`),en-US 为“Tuesday, September 1, 2026”,zh-CN 为“2026年9月1日 星期二”。 diff --git a/docs/components/252-thinking-indicator.md b/docs/components/252-thinking-indicator.md new file mode 100644 index 0000000..355da7b --- /dev/null +++ b/docs/components/252-thinking-indicator.md @@ -0,0 +1,39 @@ +# 252 ThinkingIndicator · 思考指示 + +## 用途 + +显示助手正在思考:三个菱形依次起伏,旁边是阶段文字;减少动画时静止并加省略号。 + +## 最小示例 + +```go +view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + mujica.ThinkingIndicator(c, mujica.ThinkingIndicatorOptions{Phase: "Searching the archives"}) +} +ui.Render(view, 400, 300, 1) +``` + +## 参数 + +`func ThinkingIndicator(c *ui.Context, opts ThinkingIndicatorOptions) *ui.Element`。 + +| 字段 | 类型 | 默认值 | 含义 | +| --- | --- | --- | --- | +| `Phase` | `string` | 内置“正在思考” | 阶段文字,如“正在检索资料”。 | + +## 状态 + +动画(1.2 秒一周)、减少动画(静止菱形 + “…”)。 + +## 事件 + +无。 + +## 键盘操作 + +不获取焦点;角色为 Status,辅助技术读出阶段文字。 + +## 限制 + +- 动画只在绘制时请求下一帧;组件隐藏后不再重绘。 diff --git a/docs/components/253-stop-generating-button.md b/docs/components/253-stop-generating-button.md new file mode 100644 index 0000000..33620d7 --- /dev/null +++ b/docs/components/253-stop-generating-button.md @@ -0,0 +1,44 @@ +# 253 StopGeneratingButton · 停止生成按钮 + +## 用途 + +生成回复时显示的停止按钮,并提供 Cmd+.(其他平台 Ctrl+.)快捷键;生成结束后不显示。 + +## 最小示例 + +```go +generating := true +view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if mujica.StopGeneratingButton(c, mujica.StopGeneratingButtonOptions{Generating: generating}).Changed() { + generating = false + } +} +ui.Render(view, 400, 300, 1) +``` + +## 参数 + +`func StopGeneratingButton(c *ui.Context, opts StopGeneratingButtonOptions) ChoiceResult`。不显示时返回的 `Element` 为 nil。 + +| 字段 | 类型 | 默认值 | 含义 | +| --- | --- | --- | --- | +| `Generating` | `bool` | false | 正在生成时显示。 | +| `Disabled` | `bool` | false | 禁用按钮与快捷键。 | + +## 状态 + +默认(方块图标 + 文字 + 快捷键提示)、悬停、聚焦、禁用、隐藏。 + +## 事件 + +`Changed()`:请求停止。 + +## 键盘操作 + +- Enter/Space:停止。 +- Cmd+.(macOS)/ Ctrl+.(Windows、Linux):窗口级快捷键,焦点所在控件未占用该键时生效。 + +## 限制 + +- 快捷键用 MyGo 窗口快捷键注册,焦点控件若注册了同一组合键会优先获得。 diff --git a/docs/components/254-system-prompt-editor.md b/docs/components/254-system-prompt-editor.md new file mode 100644 index 0000000..27fdb0b --- /dev/null +++ b/docs/components/254-system-prompt-editor.md @@ -0,0 +1,47 @@ +# 254 SystemPromptEditor · 系统提示编辑器 + +## 用途 + +多行编辑系统提示,显示字数,可恢复默认,有未保存标记,Cmd/Ctrl+S 保存。 + +## 最小示例 + +```go +prompt, saved := "You are helpful.", "You are helpful." +view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if mujica.SystemPromptEditor(c, &prompt, mujica.SystemPromptEditorOptions{Default: "You are helpful.", Saved: saved}).Save { + saved = prompt + } +} +ui.Render(view, 400, 300, 1) +``` + +## 参数 + +`func SystemPromptEditor(c *ui.Context, value *string, opts SystemPromptEditorOptions) SystemPromptEditorView`。 + +| 字段 | 类型 | 默认值 | 含义 | +| --- | --- | --- | --- | +| `Default` | `string` | "" | 恢复默认时写回的文字。 | +| `Saved` | `string` | "" | 最近一次保存的文字;与当前值不同即显示“未保存”。 | +| `MaxLength` | `int` | 0 | 字数上限:显示 n / 上限,超出时提示并禁止保存。 | +| `Saving` | `bool` | false | 调用方正在保存,编辑被阻止。 | +| `Disabled` | `bool` | false | 禁用。 | + +## 状态 + +已保存、未保存(警告色菱形 + 文字)、超出上限(错误提示)、保存中、禁用。 + +## 事件 + +`Save`:请求保存当前值;`Restored`:已恢复默认。 + +## 键盘操作 + +- Tab:进入文本框,再到恢复默认与保存按钮。 +- Cmd+S(macOS)/ Ctrl+S:保存(有改动且未超限时)。 + +## 限制 + +- 超出上限不会截断文字,只阻止保存。 diff --git a/docs/components/255-cost-estimator.md b/docs/components/255-cost-estimator.md new file mode 100644 index 0000000..aa9bded --- /dev/null +++ b/docs/components/255-cost-estimator.md @@ -0,0 +1,42 @@ +# 255 CostEstimator · 费用估算 + +## 用途 + +显示输入、输出 token 数及按调用方单价估算的费用。 + +## 最小示例 + +```go +view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + mujica.CostEstimator(c, mujica.CostEstimatorOptions{InputTokens: 12000, OutputTokens: 3400, InputPrice: 3, OutputPrice: 15}) +} +ui.Render(view, 400, 300, 1) +``` + +## 参数 + +`func CostEstimator(c *ui.Context, opts CostEstimatorOptions) *ui.Element`。另有 `EstimateCost(inputTokens, outputTokens, inputPrice, outputPrice) CostEstimate`。 + +| 字段 | 类型 | 默认值 | 含义 | +| --- | --- | --- | --- | +| `InputTokens`, `OutputTokens` | `int` | 0 | token 数,不能为负。 | +| `InputPrice`, `OutputPrice` | `float64` | 0 | 每百万 tokens 单价,须有限且不为负。 | +| `Currency` | `string` | "$" | 金额前缀。 | +| `Digits` | `int` | 0 → 4 | 金额小数位;负数 panic。 | + +## 状态 + +只读表格:输入、输出、合计(衬线标签、酒红加粗金额)与单价说明。 + +## 事件 + +无。 + +## 键盘操作 + +不获取焦点;整体读作“预计费用 金额”。 + +## 限制 + +- 估算按 tokens × 单价 / 1,000,000 的浮点运算;显示按 `Digits` 位小数四舍五入,不用于结算。 diff --git a/docs/components/256-shared-conversation-view.md b/docs/components/256-shared-conversation-view.md new file mode 100644 index 0000000..cda30ed --- /dev/null +++ b/docs/components/256-shared-conversation-view.md @@ -0,0 +1,48 @@ +# 256 SharedConversationView · 分享会话视图 + +## 用途 + +只读显示他人分享的会话,带分享者与时间,提供复制链接回调。 + +## 最小示例 + +```go +msgs := []mujica.SessionMessage{{Role: mujica.SessionUser, Text: "Hello"}, {Role: mujica.SessionAssistant, Text: "Good day."}} +view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if mujica.SharedConversationView(c, msgs, mujica.SharedConversationViewOptions{Title: "Greeting", SharedBy: "Ann"}).Changed() { + c.WriteClipboard("https://example.com/share/1") + } +} +ui.Render(view, 400, 300, 1) +``` + +## 参数 + +`func SharedConversationView(c *ui.Context, messages []SessionMessage, opts SharedConversationViewOptions) ChoiceResult`。 + +`SessionMessage`:`Role`(`SessionUser`、`SessionAssistant`、`SessionSystem`)、`Author`、`Text`、`Time`。 + +| 字段 | 类型 | 默认值 | 含义 | +| --- | --- | --- | --- | +| `Title` | `string` | 必填 | 会话标题。 | +| `SharedBy` | `string` | "" | 分享者,空显示“未知”。 | +| `SharedAt` | `time.Time` | 零值 | 分享时间,零值不显示。 | +| `Disabled` | `bool` | false | 禁用复制链接。 | + +## 状态 + +标题区、只读标记(锁形图标)、用户消息(描边气泡)、助手消息、禁用。 + +## 事件 + +`Changed()`:点击“复制链接”,由调用方生成链接并写入剪贴板。 + +## 键盘操作 + +- Tab:复制链接按钮,再到消息列表;消息文字可选择复制。 + +## 限制 + +- 消息以纯文本显示,不渲染 Markdown(Markdown 渲染属于 MarkdownView 组件)。 +- 消息列表虚拟化,只构建可见消息。 diff --git a/docs/components/257-conversation-export.md b/docs/components/257-conversation-export.md new file mode 100644 index 0000000..61a5f86 --- /dev/null +++ b/docs/components/257-conversation-export.md @@ -0,0 +1,48 @@ +# 257 ConversationExport · 会话导出 + +## 用途 + +选择格式(Markdown、JSON、纯文本)与范围,预览后生成导出文字;写文件由调用方完成。 + +## 最小示例 + +```go +var state mujica.ConversationExportState +msgs := []mujica.SessionMessage{{Role: mujica.SessionUser, Text: "Hello"}} +view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if v := mujica.ConversationExport(c, &state, msgs, mujica.ConversationExportOptions{Title: "Greeting"}); v.Exported { + log.Println(len(v.Content), "bytes to save") + } +} +ui.Render(view, 400, 300, 1) +``` + +## 参数 + +`func ConversationExport(c *ui.Context, s *ConversationExportState, messages []SessionMessage, opts ConversationExportOptions) ConversationExportView`。另有纯函数 `ExportConversation(title, messages, format) string`。 + +`ConversationExportState`:`Format`(`ExportMarkdown`、`ExportJSON`、`ExportText`)、`Range`(`ExportAll`、`ExportLast`、`ExportSelected`)、`Last`(0 → 10)。 + +| 字段 | 类型 | 默认值 | 含义 | +| --- | --- | --- | --- | +| `Title` | `string` | 必填 | 会话标题,写入导出内容。 | +| `Selected` | `[]int` | nil | `ExportSelected` 使用的消息下标;越界 panic。 | +| `Disabled` | `bool` | false | 禁用。 | + +## 状态 + +格式单选、范围单选(无选中消息时“已选”不可选)、最近 N 条数字框、等宽字体预览、导出按钮、禁用。 + +## 事件 + +`Exported`:导出请求;`Content` 为生成的文字,`Format` 为格式。 + +## 键盘操作 + +- Tab 依次经过格式组、范围组、数字框、预览、导出按钮;单选组内方向键选择。 + +## 限制 + +- 导出不解析消息文字:Markdown 只加标题与作者行,原文原样写入。 +- 预览只在格式、范围或消息变化时重新生成。 diff --git a/docs/components/258-regenerate-menu.md b/docs/components/258-regenerate-menu.md new file mode 100644 index 0000000..c22739d --- /dev/null +++ b/docs/components/258-regenerate-menu.md @@ -0,0 +1,44 @@ +# 258 RegenerateMenu · 重新生成菜单 + +## 用途 + +重新生成回复:同模型重试、换模型重试,以及更长、更短等改写变体。 + +## 最小示例 + +```go +view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if v := mujica.RegenerateMenu(c, mujica.RegenerateMenuOptions{Models: []string{"Opus", "Sonnet"}, Current: "Opus"}); v.Chosen { + log.Println("retry", v.Choice.Kind, v.Choice.Model, v.Choice.Variant) + } +} +ui.Render(view, 400, 300, 1) +``` + +## 参数 + +`func RegenerateMenu(c *ui.Context, opts RegenerateMenuOptions) RegenerateMenuView`。 + +| 字段 | 类型 | 默认值 | 含义 | +| --- | --- | --- | --- | +| `Models` | `[]string` | nil | 可换用的模型;为空或只有当前模型时子菜单禁用。 | +| `Current` | `string` | "" | 当前模型,不出现在子菜单中。 | +| `Variants` | `[]string` | nil(内置) | 替换内置的更长、更短、更简单、更详细。 | +| `Disabled` | `bool` | false | 禁用。 | + +## 状态 + +触发按钮(刷新图标)、菜单打开、子菜单、分组标题、禁用项。 + +## 事件 + +`Chosen` 与 `Choice`:`Kind` 为 `RegenerateAgain`、`RegenerateModel`(`Model`)或 `RegenerateVariant`(`Variant`)。 + +## 键盘操作 + +- Enter、Space 或 ↓ 打开菜单;↑/↓ 移动;→ 打开子菜单,← 返回;Enter 选择;Escape 关闭。 + +## 限制 + +- 菜单在窗口内绘制(DropdownMenu),不使用系统菜单。 diff --git a/docs/components/259-artifact-card.md b/docs/components/259-artifact-card.md new file mode 100644 index 0000000..ed8601b --- /dev/null +++ b/docs/components/259-artifact-card.md @@ -0,0 +1,45 @@ +# 259 ArtifactCard · 产物卡片 + +## 用途 + +消息中的产物卡片(代码、文档、网页),点击打开产物面板。 + +## 最小示例 + +```go +view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if mujica.ArtifactCard(c, mujica.ArtifactCardOptions{Title: "seating.go", Detail: "Go · 120 lines"}).Changed() { + log.Println("open artifact panel") + } +} +ui.Render(view, 400, 300, 1) +``` + +## 参数 + +`func ArtifactCard(c *ui.Context, opts ArtifactCardOptions) ChoiceResult`。 + +| 字段 | 类型 | 默认值 | 含义 | +| --- | --- | --- | --- | +| `Kind` | `ArtifactKind` | `ArtifactCode` | `ArtifactCode`、`ArtifactDocument`、`ArtifactWeb`;越界 panic。 | +| `Title` | `string` | 必填 | 产物标题。 | +| `Detail` | `string` | "" | 简短说明,如“Go · 120 行”。 | +| `Streaming` | `bool` | false | 仍在生成,显示旋转标记。 | +| `Disabled` | `bool` | false | 禁用。 | + +## 状态 + +默认、悬停、聚焦、生成中、禁用。种类同时用图标与文字表示。 + +## 事件 + +`Changed()`:请求打开产物面板。 + +## 键盘操作 + +- Tab 聚焦;Enter/Space 打开。 + +## 限制 + +- 卡片不渲染产物内容,面板由调用方实现。 diff --git a/docs/components/260-chat-empty-state.md b/docs/components/260-chat-empty-state.md new file mode 100644 index 0000000..3b3852e --- /dev/null +++ b/docs/components/260-chat-empty-state.md @@ -0,0 +1,44 @@ +# 260 ChatEmptyState · 会话空状态 + +## 用途 + +会话界面的三种空状态:新会话、无搜索结果、离线,并给出下一步操作。 + +## 最小示例 + +```go +view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if mujica.ChatEmptyState(c, mujica.ChatEmptyStateOptions{Kind: mujica.ChatEmptyOffline}).Action { + log.Println("reconnect") + } +} +ui.Render(view, 400, 300, 1) +``` + +## 参数 + +`func ChatEmptyState(c *ui.Context, opts ChatEmptyStateOptions) EmptyStateResult`。 + +| 字段 | 类型 | 默认值 | 含义 | +| --- | --- | --- | --- | +| `Kind` | `ChatEmptyKind` | `ChatEmptyNew` | `ChatEmptyNew`、`ChatEmptyNoResults`、`ChatEmptyOffline`;越界 panic。 | +| `Query` | `string` | "" | 无结果时在说明中显示的查询。 | +| `Title`, `Description` | `string` | 内置 | 替换文案。 | +| `Action` | `string` | 内置 | 按钮文字:新建对话、清除搜索、重试。 | + +## 状态 + +新会话(星形图标)、无结果(搜索图标)、离线(断网图标)。 + +## 事件 + +返回值 `Action`:点击按钮。 + +## 键盘操作 + +- Tab 聚焦按钮;Enter/Space 触发。 + +## 限制 + +- 基于 EmptyState 组件,布局与其一致。 diff --git a/example_chatsession_test.go b/example_chatsession_test.go new file mode 100644 index 0000000..53a5849 --- /dev/null +++ b/example_chatsession_test.go @@ -0,0 +1,231 @@ +package mujica_test + +import ( + "log" + "time" + + "github.com/egoist/mygo/ui" + + mujica "mujicaui" + "mujicaui/icons" +) + +func ExampleConversationList() { + var state mujica.ConversationListState + convs := []mujica.ChatConversation{ + {ID: "1", Title: "Court etiquette", Updated: time.Now()}, + {ID: "2", Title: "Royal letters", Updated: time.Now().AddDate(0, 0, -30), Pinned: true}, + } + view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if mujica.ConversationList(c, &state, convs, mujica.ConversationListOptions{Label: "History"}, nil).Changed() { + log.Println("open", state.Selected) + } + } + ui.Render(view, 400, 300, 1) +} + +func ExampleConversationItem() { + conv := mujica.ChatConversation{ID: "1", Title: "Court etiquette", Updated: time.Now()} + view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + v := mujica.ConversationItem(c, &conv, mujica.ConversationItemOptions{}) + if v.Deleted { + log.Println("delete", conv.ID) + } + } + ui.Render(view, 400, 300, 1) +} + +func ExampleConversationSearch() { + query := "seat" + hits := []mujica.ConversationSearchHit{{ID: "1", Title: "Ballroom seating plan"}} + view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + v := mujica.ConversationSearch(c, &query, hits, mujica.ConversationSearchOptions{}) + if v.QueryChanged { + log.Println("search", query) + } + } + ui.Render(view, 400, 300, 1) +} + +func ExampleProjectList() { + var state mujica.ProjectListState + projects := []mujica.ChatProject{{ID: "p1", Name: "Coronation", Folder: "Court"}} + convs := func(id string) []mujica.ChatConversation { + return []mujica.ChatConversation{{ID: "1", Title: "Menu"}} + } + view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if v := mujica.ProjectList(c, &state, projects, convs, mujica.ProjectListOptions{}); v.Moved { + log.Println("move", v.MoveID, "to", v.MoveTo) + } + } + ui.Render(view, 400, 300, 1) +} + +func ExampleProjectKnowledgePanel() { + files := []mujica.KnowledgeFile{{ID: "1", Name: "etiquette.pdf", Tokens: 12000}} + view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + v := mujica.ProjectKnowledgePanel(c, files, mujica.ProjectKnowledgePanelOptions{Capacity: 200000}) + if v.Add { + log.Println("pick files") + } + } + ui.Render(view, 400, 300, 1) +} + +func ExampleWelcomeScreen() { + cards := []mujica.CapabilityCard{{Title: "Write", Examples: []string{"Draft a decree"}}} + view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if v := mujica.WelcomeScreen(c, mujica.WelcomeScreenOptions{Greeting: "Good evening", Cards: cards}); v.Example != "" { + log.Println("ask", v.Example) + } + } + ui.Render(view, 400, 300, 1) +} + +func ExampleSuggestionChips() { + input := "" + view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + mujica.SuggestionChips(c, &input, []string{"Plan a ball", "Write a sonnet"}, mujica.SuggestionChipsOptions{}) + } + ui.Render(view, 400, 300, 1) +} + +func ExamplePromptLibrary() { + var state mujica.PromptLibraryState + templates := []mujica.PromptTemplate{{ID: "1", Category: "Letters", Title: "Invitation", Body: "Invite {{guest}}."}} + view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if v := mujica.PromptLibrary(c, &state, templates, mujica.PromptLibraryOptions{}); v.Inserted != "" { + log.Println("insert", v.Inserted) + } + } + ui.Render(view, 400, 300, 1) +} + +func ExampleCapabilityCards() { + cards := []mujica.CapabilityCard{{Title: "Plan", Icon: icons.Must("calendar"), Examples: []string{"Plan a ball"}}} + view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if v := mujica.CapabilityCards(c, cards, mujica.CapabilityCardsOptions{}); v.Example != "" { + log.Println("ask", v.Example) + } + } + ui.Render(view, 400, 300, 1) +} + +func ExampleFeedbackForm() { + var value mujica.FeedbackValue + view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if mujica.FeedbackForm(c, &value, mujica.FeedbackFormOptions{Rating: mujica.FeedbackDown}).Submitted { + log.Println("reasons", value.Reasons) + } + } + ui.Render(view, 400, 300, 1) +} + +func ExampleDateSeparator() { + view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + mujica.DateSeparator(c, mujica.DateOf(time.Now()), mujica.DateSeparatorOptions{}) + } + ui.Render(view, 400, 300, 1) +} + +func ExampleThinkingIndicator() { + view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + mujica.ThinkingIndicator(c, mujica.ThinkingIndicatorOptions{Phase: "Searching the archives"}) + } + ui.Render(view, 400, 300, 1) +} + +func ExampleStopGeneratingButton() { + generating := true + view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if mujica.StopGeneratingButton(c, mujica.StopGeneratingButtonOptions{Generating: generating}).Changed() { + generating = false + } + } + ui.Render(view, 400, 300, 1) +} + +func ExampleSystemPromptEditor() { + prompt, saved := "You are helpful.", "You are helpful." + view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if mujica.SystemPromptEditor(c, &prompt, mujica.SystemPromptEditorOptions{Default: "You are helpful.", Saved: saved}).Save { + saved = prompt + } + } + ui.Render(view, 400, 300, 1) +} + +func ExampleCostEstimator() { + view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + mujica.CostEstimator(c, mujica.CostEstimatorOptions{InputTokens: 12000, OutputTokens: 3400, InputPrice: 3, OutputPrice: 15}) + } + ui.Render(view, 400, 300, 1) +} + +func ExampleSharedConversationView() { + msgs := []mujica.SessionMessage{{Role: mujica.SessionUser, Text: "Hello"}, {Role: mujica.SessionAssistant, Text: "Good day."}} + view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if mujica.SharedConversationView(c, msgs, mujica.SharedConversationViewOptions{Title: "Greeting", SharedBy: "Ann"}).Changed() { + c.WriteClipboard("https://example.com/share/1") + } + } + ui.Render(view, 400, 300, 1) +} + +func ExampleConversationExport() { + var state mujica.ConversationExportState + msgs := []mujica.SessionMessage{{Role: mujica.SessionUser, Text: "Hello"}} + view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if v := mujica.ConversationExport(c, &state, msgs, mujica.ConversationExportOptions{Title: "Greeting"}); v.Exported { + log.Println(len(v.Content), "bytes to save") + } + } + ui.Render(view, 400, 300, 1) +} + +func ExampleRegenerateMenu() { + view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if v := mujica.RegenerateMenu(c, mujica.RegenerateMenuOptions{Models: []string{"Opus", "Sonnet"}, Current: "Opus"}); v.Chosen { + log.Println("retry", v.Choice.Kind, v.Choice.Model, v.Choice.Variant) + } + } + ui.Render(view, 400, 300, 1) +} + +func ExampleArtifactCard() { + view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if mujica.ArtifactCard(c, mujica.ArtifactCardOptions{Title: "seating.go", Detail: "Go · 120 lines"}).Changed() { + log.Println("open artifact panel") + } + } + ui.Render(view, 400, 300, 1) +} + +func ExampleChatEmptyState() { + view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if mujica.ChatEmptyState(c, mujica.ChatEmptyStateOptions{Kind: mujica.ChatEmptyOffline}).Action { + log.Println("reconnect") + } + } + ui.Render(view, 400, 300, 1) +} diff --git a/examples/gallery/pages_chatsession.go b/examples/gallery/pages_chatsession.go index e315674..7cd7b79 100644 --- a/examples/gallery/pages_chatsession.go +++ b/examples/gallery/pages_chatsession.go @@ -1,3 +1,186 @@ package main -var chatsessionPages = []page{} +const chatsessionCategory = "Chat Sessions" + +var chatsessionPages = []page{ + {ID: "241", Name: "ConversationList", ZhName: "会话列表", Category: chatsessionCategory, Demo: chatDemoConversationList, + Keys: "Up/Down choose a conversation, skipping group headers; typing jumps; Enter opens.", Code: `var state mujica.ConversationListState +convs := []mujica.ChatConversation{ + {ID: "1", Title: "Court etiquette", Updated: time.Now()}, + {ID: "2", Title: "Royal letters", Updated: time.Now().AddDate(0, 0, -30), Pinned: true}, +} +view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if mujica.ConversationList(c, &state, convs, mujica.ConversationListOptions{Label: "History"}, nil).Changed() { + log.Println("open", state.Selected) + } +} +ui.Render(view, 400, 300, 1)`}, + {ID: "242", Name: "ConversationItem", ZhName: "会话条目", Category: chatsessionCategory, Demo: chatDemoConversationItem, + Keys: "Enter opens; F2 renames in place (Enter keeps, Escape cancels); Delete asks to delete; the ellipsis opens the menu.", Code: `conv := mujica.ChatConversation{ID: "1", Title: "Court etiquette", Updated: time.Now()} +view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + v := mujica.ConversationItem(c, &conv, mujica.ConversationItemOptions{}) + if v.Deleted { + log.Println("delete", conv.ID) + } +} +ui.Render(view, 400, 300, 1)`}, + {ID: "243", Name: "ConversationSearch", ZhName: "会话搜索", Category: chatsessionCategory, Demo: chatDemoConversationSearch, + Keys: "Type to search; Down moves into the results; Up/Down move; Enter opens; Escape clears.", Code: `query := "seat" +hits := []mujica.ConversationSearchHit{{ID: "1", Title: "Ballroom seating plan"}} +view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + v := mujica.ConversationSearch(c, &query, hits, mujica.ConversationSearchOptions{}) + if v.QueryChanged { + log.Println("search", query) + } +} +ui.Render(view, 400, 300, 1)`}, + {ID: "244", Name: "ProjectList", ZhName: "项目列表", Category: chatsessionCategory, Demo: chatDemoProjectList, + Keys: "Up/Down move through folders, projects and conversations; Right/Left show or hide a project's conversations; the ellipsis menu moves a conversation.", Code: `var state mujica.ProjectListState +projects := []mujica.ChatProject{{ID: "p1", Name: "Coronation", Folder: "Court"}} +convs := func(id string) []mujica.ChatConversation { + return []mujica.ChatConversation{{ID: "1", Title: "Menu"}} +} +view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if v := mujica.ProjectList(c, &state, projects, convs, mujica.ProjectListOptions{}); v.Moved { + log.Println("move", v.MoveID, "to", v.MoveTo) + } +} +ui.Render(view, 400, 300, 1)`}, + {ID: "245", Name: "ProjectKnowledgePanel", ZhName: "项目知识面板", Category: chatsessionCategory, Demo: chatDemoProjectKnowledgePanel, + Keys: "Tab reaches Add files and the file list; Up/Down move between remove buttons; Enter removes.", Code: `files := []mujica.KnowledgeFile{{ID: "1", Name: "etiquette.pdf", Tokens: 12000}} +view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + v := mujica.ProjectKnowledgePanel(c, files, mujica.ProjectKnowledgePanelOptions{Capacity: 200000}) + if v.Add { + log.Println("pick files") + } +} +ui.Render(view, 400, 300, 1)`}, + {ID: "246", Name: "WelcomeScreen", ZhName: "欢迎页", Category: chatsessionCategory, Demo: chatDemoWelcomeScreen, + Keys: "Tab moves through the cards' examples and the prompt slot; Enter picks.", Code: `cards := []mujica.CapabilityCard{{Title: "Write", Examples: []string{"Draft a decree"}}} +view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if v := mujica.WelcomeScreen(c, mujica.WelcomeScreenOptions{Greeting: "Good evening", Cards: cards}); v.Example != "" { + log.Println("ask", v.Example) + } +} +ui.Render(view, 400, 300, 1)`}, + {ID: "247", Name: "SuggestionChips", ZhName: "建议标签", Category: chatsessionCategory, Demo: chatDemoSuggestionChips, + Keys: "Tab enters the chips; Left/Right move; Enter or Space picks.", Code: `input := "" +view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + mujica.SuggestionChips(c, &input, []string{"Plan a ball", "Write a sonnet"}, mujica.SuggestionChipsOptions{}) +} +ui.Render(view, 400, 300, 1)`}, + {ID: "248", Name: "PromptLibrary", ZhName: "提示模板库", Category: chatsessionCategory, Demo: chatDemoPromptLibrary, + Keys: "Tab moves between categories, search, templates and fields; Up/Down move in a column; Enter picks.", Code: `var state mujica.PromptLibraryState +templates := []mujica.PromptTemplate{{ID: "1", Category: "Letters", Title: "Invitation", Body: "Invite {{guest}}."}} +view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if v := mujica.PromptLibrary(c, &state, templates, mujica.PromptLibraryOptions{}); v.Inserted != "" { + log.Println("insert", v.Inserted) + } +} +ui.Render(view, 400, 300, 1)`}, + {ID: "249", Name: "CapabilityCards", ZhName: "能力卡片", Category: chatsessionCategory, Demo: chatDemoCapabilityCards, + Keys: "Tab moves between cards; Up/Down move among a card's examples; Enter picks.", Code: `cards := []mujica.CapabilityCard{{Title: "Plan", Icon: icons.Must("calendar"), Examples: []string{"Plan a ball"}}} +view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if v := mujica.CapabilityCards(c, cards, mujica.CapabilityCardsOptions{}); v.Example != "" { + log.Println("ask", v.Example) + } +} +ui.Render(view, 400, 300, 1)`}, + {ID: "250", Name: "FeedbackForm", ZhName: "反馈表单", Category: chatsessionCategory, Demo: chatDemoFeedbackForm, + Keys: "Left/Right move among reasons, Space toggles; Escape cancels.", Code: `var value mujica.FeedbackValue +view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if mujica.FeedbackForm(c, &value, mujica.FeedbackFormOptions{Rating: mujica.FeedbackDown}).Submitted { + log.Println("reasons", value.Reasons) + } +} +ui.Render(view, 400, 300, 1)`}, + {ID: "251", Name: "DateSeparator", ZhName: "日期分隔", Category: chatsessionCategory, Demo: chatDemoDateSeparator, + Keys: "Not focusable; read as the date.", Code: `view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + mujica.DateSeparator(c, mujica.DateOf(time.Now()), mujica.DateSeparatorOptions{}) +} +ui.Render(view, 400, 300, 1)`}, + {ID: "252", Name: "ThinkingIndicator", ZhName: "思考指示", Category: chatsessionCategory, Demo: chatDemoThinkingIndicator, + Keys: "Not focusable; read as a status.", Code: `view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + mujica.ThinkingIndicator(c, mujica.ThinkingIndicatorOptions{Phase: "Searching the archives"}) +} +ui.Render(view, 400, 300, 1)`}, + {ID: "253", Name: "StopGeneratingButton", ZhName: "停止生成按钮", Category: chatsessionCategory, Demo: chatDemoStopGeneratingButton, + Keys: "Enter or Space stops; Cmd+. (Ctrl+. elsewhere) stops from anywhere.", Code: `generating := true +view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if mujica.StopGeneratingButton(c, mujica.StopGeneratingButtonOptions{Generating: generating}).Changed() { + generating = false + } +} +ui.Render(view, 400, 300, 1)`}, + {ID: "254", Name: "SystemPromptEditor", ZhName: "系统提示编辑器", Category: chatsessionCategory, Demo: chatDemoSystemPromptEditor, + Keys: "Cmd+S (Ctrl+S elsewhere) saves.", Code: `prompt, saved := "You are helpful.", "You are helpful." +view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if mujica.SystemPromptEditor(c, &prompt, mujica.SystemPromptEditorOptions{Default: "You are helpful.", Saved: saved}).Save { + saved = prompt + } +} +ui.Render(view, 400, 300, 1)`}, + {ID: "255", Name: "CostEstimator", ZhName: "费用估算", Category: chatsessionCategory, Demo: chatDemoCostEstimator, + Keys: "Not focusable; read as the estimated cost.", Code: `view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + mujica.CostEstimator(c, mujica.CostEstimatorOptions{InputTokens: 12000, OutputTokens: 3400, InputPrice: 3, OutputPrice: 15}) +} +ui.Render(view, 400, 300, 1)`}, + {ID: "256", Name: "SharedConversationView", ZhName: "分享会话视图", Category: chatsessionCategory, Demo: chatDemoSharedConversationView, + Keys: "Tab reaches Copy link and the messages; message text is selectable.", Code: `msgs := []mujica.SessionMessage{{Role: mujica.SessionUser, Text: "Hello"}, {Role: mujica.SessionAssistant, Text: "Good day."}} +view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if mujica.SharedConversationView(c, msgs, mujica.SharedConversationViewOptions{Title: "Greeting", SharedBy: "Ann"}).Changed() { + c.WriteClipboard("https://example.com/share/1") + } +} +ui.Render(view, 400, 300, 1)`}, + {ID: "257", Name: "ConversationExport", ZhName: "会话导出", Category: chatsessionCategory, Demo: chatDemoConversationExport, + Keys: "Arrows choose a format and range; Tab reaches Export.", Code: `var state mujica.ConversationExportState +msgs := []mujica.SessionMessage{{Role: mujica.SessionUser, Text: "Hello"}} +view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if v := mujica.ConversationExport(c, &state, msgs, mujica.ConversationExportOptions{Title: "Greeting"}); v.Exported { + log.Println(len(v.Content), "bytes to save") + } +} +ui.Render(view, 400, 300, 1)`}, + {ID: "258", Name: "RegenerateMenu", ZhName: "重新生成菜单", Category: chatsessionCategory, Demo: chatDemoRegenerateMenu, + Keys: "Enter, Space or Down open; Up/Down move; Right opens the model list; Escape closes.", Code: `view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if v := mujica.RegenerateMenu(c, mujica.RegenerateMenuOptions{Models: []string{"Opus", "Sonnet"}, Current: "Opus"}); v.Chosen { + log.Println("retry", v.Choice.Kind, v.Choice.Model, v.Choice.Variant) + } +} +ui.Render(view, 400, 300, 1)`}, + {ID: "259", Name: "ArtifactCard", ZhName: "产物卡片", Category: chatsessionCategory, Demo: chatDemoArtifactCard, + Keys: "Enter or Space opens the artifact panel.", Code: `view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if mujica.ArtifactCard(c, mujica.ArtifactCardOptions{Title: "seating.go", Detail: "Go · 120 lines"}).Changed() { + log.Println("open artifact panel") + } +} +ui.Render(view, 400, 300, 1)`}, + {ID: "260", Name: "ChatEmptyState", ZhName: "会话空状态", Category: chatsessionCategory, Demo: chatDemoChatEmptyState, + Keys: "Tab reaches the action; Enter runs it.", Code: `view := func(c *ui.Context) { + mujica.Use(c, mujica.Settings{}) + if mujica.ChatEmptyState(c, mujica.ChatEmptyStateOptions{Kind: mujica.ChatEmptyOffline}).Action { + log.Println("reconnect") + } +} +ui.Render(view, 400, 300, 1)`}, +} diff --git a/examples/gallery/pages_chatsession_demos.go b/examples/gallery/pages_chatsession_demos.go new file mode 100644 index 0000000..8594e36 --- /dev/null +++ b/examples/gallery/pages_chatsession_demos.go @@ -0,0 +1,249 @@ +package main + +import ( + "fmt" + "strings" + "time" + + "github.com/egoist/mygo/ui" + + mujica "mujicaui" + "mujicaui/icons" +) + +// chatHistory is the gallery's sample conversations, dated from now. +func chatHistory(now time.Time) []mujica.ChatConversation { + day := 24 * time.Hour + return []mujica.ChatConversation{ + {ID: "a", Title: "Court etiquette notes", Updated: now.Add(-2 * time.Hour)}, + {ID: "b", Title: "Ballroom seating plan", Updated: now.Add(-day)}, + {ID: "c", Title: "Harpsichord repair", Updated: now.Add(-4 * day)}, + {ID: "d", Title: "Coronation menu", Updated: now.Add(-40 * day)}, + {ID: "e", Title: "Royal letters", Updated: now.Add(-90 * day), Pinned: true}, + {ID: "f", Title: "Garden maze", Updated: now.Add(-time.Hour)}, + } +} + +func chatSampleMessages(now time.Time) []mujica.SessionMessage { + return []mujica.SessionMessage{ + {Role: mujica.SessionUser, Text: "How should guests be seated at the banquet?", Time: now.Add(-10 * time.Minute)}, + {Role: mujica.SessionAssistant, Text: "Seat by rank: the host at the head, honored guests to the right.", Time: now.Add(-9 * time.Minute)}, + {Role: mujica.SessionUser, Author: "Lady Ann", Text: "And the musicians?", Time: now.Add(-5 * time.Minute)}, + {Role: mujica.SessionAssistant, Text: "Place the quartet behind a screen near the gallery.", Time: now.Add(-4 * time.Minute)}, + } +} + +func chatSampleCards() []mujica.CapabilityCard { + return []mujica.CapabilityCard{ + {Title: "Write", Description: "Letters, speeches and verse.", Icon: icons.Must("file-text"), Examples: []string{"Draft a royal decree", "Write a sonnet"}}, + {Title: "Plan", Description: "Banquets, seating and schedules.", Icon: icons.Must("calendar"), Examples: []string{"Plan a ball for 200 guests"}}, + {Title: "Research", Description: "History, heraldry and music.", Icon: icons.Must("search"), Examples: []string{"Explain the minuet"}}, + } +} + +func chatDemoConversationList(c *ui.Context, log func(string)) { + type state struct { + list mujica.ConversationListState + items []mujica.ChatConversation + many, rich bool + disabled bool + } + s := *ui.Local(c.Root(), "241", func() *state { return &state{items: chatHistory(time.Now())} }) + choiceDemo(c, func() { + if mujica.Switch(c, &s.many, "100,000 conversations", mujica.SwitchOptions{}).Changed() { + s.items = chatHistory(time.Now()) + if s.many { + now := time.Now() + for i := range 100000 { + s.items = append(s.items, mujica.ChatConversation{ID: fmt.Sprint("n", i), Title: fmt.Sprintf("Archive %d", i), Updated: now.Add(-time.Duration(i) * 7 * time.Minute)}) + } + } + log(fmt.Sprintf("conversations = %d", len(s.items))) + } + choiceFlag(c, &s.rich, "ConversationItem rows", log) + choiceFlag(c, &s.disabled, "Disabled", log) + }, func() { + var row func(conv mujica.ChatConversation) + if s.rich { + row = func(conv mujica.ChatConversation) { + v := mujica.ConversationItem(c, &conv, mujica.ConversationItemOptions{Selected: conv.ID == s.list.Selected}) + if v.Opened { + s.list.Selected = conv.ID + log("open " + conv.Title) + } + } + } + v := mujica.ConversationList(c, &s.list, s.items, mujica.ConversationListOptions{Label: "History", Disabled: s.disabled}, row) + v.Element.Width(380).Height(380) + if v.Changed() { + log("select " + s.list.Selected) + } + if v.Submitted() { + log("open " + s.list.Selected) + } + }) +} + +func chatDemoConversationItem(c *ui.Context, log func(string)) { + type state struct { + convs []mujica.ChatConversation + selected, disabled bool + } + s := *ui.Local(c.Root(), "242", func() *state { return &state{convs: chatHistory(time.Now())[:3]} }) + choiceDemo(c, func() { + choiceFlag(c, &s.selected, "Selected", log) + choiceFlag(c, &s.disabled, "Disabled", log) + }, func() { + ui.Column(c).Width(420).Gap(4).Children(func() { + for i := range s.convs { + conv := &s.convs[i] + ui.Row(c).Key(conv.ID).Children(func() { + v := mujica.ConversationItem(c, conv, mujica.ConversationItemOptions{Selected: s.selected && i == 0, Disabled: s.disabled}) + switch { + case v.Opened: + log("open " + conv.Title) + case v.Renamed: + log("rename to " + conv.Title) + case v.PinToggled: + conv.Pinned = !conv.Pinned + log(fmt.Sprintf("pinned %s = %v", conv.Title, conv.Pinned)) + case v.Exported: + log("export " + conv.Title) + case v.Deleted: + log("delete " + conv.Title) + } + }) + } + }) + }) +} + +func chatDemoConversationSearch(c *ui.Context, log func(string)) { + type state struct { + query, asked string + at time.Time + hits []mujica.ConversationSearchHit + fail, slow bool + disabled bool + } + s := *ui.Local(c.Root(), "243", func() *state { return &state{} }) + choiceDemo(c, func() { + choiceFlag(c, &s.slow, "Slow server", log) + choiceFlag(c, &s.fail, "Fail searches", log) + choiceFlag(c, &s.disabled, "Disabled", log) + }, func() { + loading := s.asked != s.query + if loading && (!s.slow || choiceDue(c, s.at)) { + s.asked, s.hits, loading = s.query, nil, false + for _, conv := range chatHistory(time.Now()) { + if q := strings.ToLower(s.query); q != "" && strings.Contains(strings.ToLower(conv.Title), q) { + s.hits = append(s.hits, mujica.ConversationSearchHit{ID: conv.ID, Title: conv.Title, Snippet: "…mentions " + strings.ToLower(conv.Title) + "…"}) + } + } + log(fmt.Sprintf("results for %q: %d", s.query, len(s.hits))) + } + errText := "" + if s.fail && s.query != "" { + errText = "The archive did not answer." + } + ui.Column(c).Width(420).Children(func() { + v := mujica.ConversationSearch(c, &s.query, s.hits, mujica.ConversationSearchOptions{Loading: loading, Error: errText, Disabled: s.disabled, Label: "Search conversations"}) + if v.QueryChanged { + s.at = c.Now() + log(fmt.Sprintf("query %q", s.query)) + } + if v.Chosen != "" { + log("open " + v.Chosen) + } + if v.Retry { + s.fail, s.asked = false, "" + log("retry") + } + }) + }) +} + +func chatDemoProjectList(c *ui.Context, log func(string)) { + type state struct { + list mujica.ProjectListState + owner map[string]string + disabled bool + } + s := *ui.Local(c.Root(), "244", func() *state { + return &state{owner: map[string]string{"a": "p1", "b": "p1", "c": "p3", "f": "p2"}} + }) + projects := []mujica.ChatProject{{ID: "p1", Name: "Coronation", Folder: "Court"}, {ID: "p2", Name: "Gardens", Folder: "Court"}, {ID: "p3", Name: "Music"}} + choiceDemo(c, func() { + choiceFlag(c, &s.disabled, "Disabled", log) + }, func() { + ui.Row(c).Gap(24).AlignItems(ui.Start).Children(func() { + ui.Column(c).Width(380).Children(func() { + convs := func(id string) []mujica.ChatConversation { + var out []mujica.ChatConversation + for _, conv := range chatHistory(time.Now()) { + if s.owner[conv.ID] == id { + out = append(out, conv) + } + } + return out + } + v := mujica.ProjectList(c, &s.list, projects, convs, mujica.ProjectListOptions{Label: "Projects", Disabled: s.disabled}) + switch { + case v.Moved: + s.owner[v.MoveID] = v.MoveTo + log(fmt.Sprintf("move %s to %s", v.MoveID, v.MoveTo)) + case v.Changed: + log("project " + s.list.Selected) + case v.Opened != "": + log("open " + v.Opened) + } + }) + choiceLabeled(c, "Drag onto a project", func() { + conv := chatHistory(time.Now())[3] + v := mujica.ConversationItem(c, &conv, mujica.ConversationItemOptions{Draggable: true}) + v.Element.Width(300) + if v.Opened { + log("open " + conv.Title) + } + }) + }) + }) +} + +func chatDemoProjectKnowledgePanel(c *ui.Context, log func(string)) { + type state struct { + files []mujica.KnowledgeFile + next int + small bool + disabled bool + } + s := *ui.Local(c.Root(), "245", func() *state { + return &state{files: []mujica.KnowledgeFile{{ID: "1", Name: "etiquette.pdf", Tokens: 120000}, {ID: "2", Name: "menu.md", Tokens: 30000}}} + }) + choiceDemo(c, func() { + choiceFlag(c, &s.small, "Capacity 150,000", log) + choiceFlag(c, &s.disabled, "Disabled", log) + }, func() { + capacity := 400000 + if s.small { + capacity = 150000 + } + ui.Column(c).Width(440).Children(func() { + v := mujica.ProjectKnowledgePanel(c, s.files, mujica.ProjectKnowledgePanelOptions{Capacity: capacity, Disabled: s.disabled}) + if v.Add { + s.next++ + s.files = append(s.files, mujica.KnowledgeFile{ID: fmt.Sprint("n", s.next), Name: fmt.Sprintf("notes-%d.txt", s.next), Tokens: 15000}) + log("add (the demo invents a file)") + } + if v.Removed != "" { + for i, f := range s.files { + if f.ID == v.Removed { + s.files = append(s.files[:i:i], s.files[i+1:]...) + log("remove " + f.Name) + break + } + } + } + }) + }) +} diff --git a/examples/gallery/pages_chatsession_more.go b/examples/gallery/pages_chatsession_more.go new file mode 100644 index 0000000..b6fd37d --- /dev/null +++ b/examples/gallery/pages_chatsession_more.go @@ -0,0 +1,341 @@ +package main + +import ( + "fmt" + "time" + + "github.com/egoist/mygo/ui" + + mujica "mujicaui" +) + +func chatDemoWelcomeScreen(c *ui.Context, log func(string)) { + type state struct { + input string + cards, disabled bool + } + s := *ui.Local(c.Root(), "246", func() *state { return &state{cards: true} }) + choiceDemo(c, func() { + choiceFlag(c, &s.cards, "Capability cards", log) + choiceFlag(c, &s.disabled, "Disabled", log) + }, func() { + var cards []mujica.CapabilityCard + if s.cards { + cards = chatSampleCards() + } + ui.Column(c).Width(860).Children(func() { + v := mujica.WelcomeScreen(c, mujica.WelcomeScreenOptions{Greeting: "Good afternoon", Subtitle: "How may I serve the court?", Cards: cards, Disabled: s.disabled, + Prompts: func() { + if mujica.SuggestionChips(c, &s.input, []string{"Plan a ball", "Write a sonnet"}, mujica.SuggestionChipsOptions{Disabled: s.disabled}).Chosen != "" { + log(fmt.Sprintf("fill %q", s.input)) + } + }}) + if v.Example != "" { + log(fmt.Sprintf("ask %q", v.Example)) + } + }) + }) +} + +func chatDemoSuggestionChips(c *ui.Context, log func(string)) { + type state struct { + input string + send, disabled bool + } + s := *ui.Local(c.Root(), "247", func() *state { return &state{} }) + choiceDemo(c, func() { + choiceFlag(c, &s.send, "Send directly", log) + choiceFlag(c, &s.disabled, "Disabled", log) + }, func() { + v := mujica.SuggestionChips(c, &s.input, []string{"Plan a ball", "Write a sonnet", "Explain the minuet"}, + mujica.SuggestionChipsOptions{Send: s.send, Label: "Suggestions", Disabled: s.disabled}) + switch { + case v.Sent: + log(fmt.Sprintf("send %q", v.Chosen)) + case v.Chosen != "": + log(fmt.Sprintf("fill %q", v.Chosen)) + } + ui.Column(c).Width(420).Children(func() { + mujica.TextInput(c, &s.input, mujica.TextInputOptions{Label: "Message", Placeholder: "Message"}) + }) + }) +} + +func chatDemoPromptLibrary(c *ui.Context, log func(string)) { + type state struct { + lib mujica.PromptLibraryState + disabled bool + } + s := *ui.Local(c.Root(), "248", func() *state { return &state{} }) + templates := []mujica.PromptTemplate{ + {ID: "t1", Category: "Letters", Title: "Invitation", Body: "Write an invitation to {{guest}} for the {{event}}."}, + {ID: "t2", Category: "Letters", Title: "Thank-you note", Body: "Thank {{host}} for the evening."}, + {ID: "t3", Category: "Music", Title: "Recital program", Body: "List pieces for a {{instrument}} recital."}, + {ID: "t4", Category: "Planning", Title: "Seating chart", Body: "Seat {{count}} guests by rank."}, + } + choiceDemo(c, func() { + choiceFlag(c, &s.disabled, "Disabled", log) + }, func() { + before := s.lib.Selected + v := mujica.PromptLibrary(c, &s.lib, templates, mujica.PromptLibraryOptions{Label: "Prompt library", Disabled: s.disabled}) + if s.lib.Selected != before { + log("preview " + s.lib.Selected) + } + if v.Inserted != "" { + log(fmt.Sprintf("insert %q", v.Inserted)) + } + }) +} + +func chatDemoCapabilityCards(c *ui.Context, log func(string)) { + type state struct { + one, disabled bool + } + s := *ui.Local(c.Root(), "249", func() *state { return &state{} }) + choiceDemo(c, func() { + choiceFlag(c, &s.one, "One column", log) + choiceFlag(c, &s.disabled, "Disabled", log) + }, func() { + cols := 0 + if s.one { + cols = 1 + } + ui.Column(c).Width(860).Children(func() { + if v := mujica.CapabilityCards(c, chatSampleCards(), mujica.CapabilityCardsOptions{Columns: cols, Disabled: s.disabled}); v.Example != "" { + log(fmt.Sprintf("ask %q", v.Example)) + } + }) + }) +} + +func chatDemoFeedbackForm(c *ui.Context, log func(string)) { + type state struct { + value mujica.FeedbackValue + down, submitting bool + disabled bool + at time.Time + } + s := *ui.Local(c.Root(), "250", func() *state { return &state{down: true} }) + choiceDemo(c, func() { + choiceFlag(c, &s.down, "Thumbs down", log) + choiceFlag(c, &s.disabled, "Disabled", log) + }, func() { + rating := mujica.FeedbackUp + if s.down { + rating = mujica.FeedbackDown + } + if s.submitting && choiceDue(c, s.at) { + s.submitting, s.value = false, mujica.FeedbackValue{} + log("feedback sent") + } + ui.Column(c).Width(480).Children(func() { + v := mujica.FeedbackForm(c, &s.value, mujica.FeedbackFormOptions{Rating: rating, Submitting: s.submitting, Disabled: s.disabled}) + if v.Submitted { + s.submitting, s.at = true, c.Now() + log(fmt.Sprintf("submit reasons %q, %d characters", s.value.Reasons, len(s.value.Comment))) + } + if v.Cancelled { + s.value = mujica.FeedbackValue{} + log("cancel") + } + }) + }) +} + +func chatDemoDateSeparator(c *ui.Context, log func(string)) { + today := mujica.DateOf(time.Now()) + choiceDemo(c, func() { + ui.Text(c, "No parameters; the language follows the window.") + }, func() { + ui.Column(c).Width(520).Children(func() { + for _, d := range []int{0, -1, -12} { + mujica.DateSeparator(c, today.AddDays(d), mujica.DateSeparatorOptions{}) + } + }) + }) +} + +func chatDemoThinkingIndicator(c *ui.Context, log func(string)) { + type state struct{ phase int } + s := *ui.Local(c.Root(), "252", func() *state { return &state{} }) + phases := []string{"", "Searching the archives", "Reading 3 letters", "Composing a reply"} + choiceDemo(c, func() { + if mujica.Button(c, "Next phase", mujica.ButtonOptions{Variant: mujica.Secondary}).Clicked() { + s.phase = (s.phase + 1) % len(phases) + log(fmt.Sprintf("phase %q", phases[s.phase])) + } + }, func() { + mujica.ThinkingIndicator(c, mujica.ThinkingIndicatorOptions{Phase: phases[s.phase]}) + }) +} + +func chatDemoStopGeneratingButton(c *ui.Context, log func(string)) { + type state struct { + generating, disabled bool + at time.Time + } + s := *ui.Local(c.Root(), "253", func() *state { return &state{} }) + choiceDemo(c, func() { + if mujica.Button(c, "Generate", mujica.ButtonOptions{Disabled: s.generating}).Clicked() { + s.generating, s.at = true, c.Now() + log("generate") + } + choiceFlag(c, &s.disabled, "Disabled", log) + }, func() { + if s.generating && c.Now().Sub(s.at) > 8*time.Second { + s.generating = false + log("finished") + } else if s.generating { + c.After(time.Second) + } + if mujica.StopGeneratingButton(c, mujica.StopGeneratingButtonOptions{Generating: s.generating, Disabled: s.disabled}).Changed() { + s.generating = false + log("stop") + } + if !s.generating { + ui.Text(c, "Idle: the button is hidden.").TextColor(mujica.Tokens(c).TextMuted) + } + }) +} + +func chatDemoSystemPromptEditor(c *ui.Context, log func(string)) { + type state struct { + value, saved string + limit, disabled bool + saving bool + at time.Time + } + s := *ui.Local(c.Root(), "254", func() *state { + return &state{value: "You are a courtly assistant.", saved: "You are a courtly assistant."} + }) + choiceDemo(c, func() { + choiceFlag(c, &s.limit, "Limit 60", log) + choiceFlag(c, &s.disabled, "Disabled", log) + }, func() { + if s.saving && choiceDue(c, s.at) { + s.saving, s.saved = false, s.value + log("saved") + } + limit := 0 + if s.limit { + limit = 60 + } + ui.Column(c).Width(520).Children(func() { + v := mujica.SystemPromptEditor(c, &s.value, mujica.SystemPromptEditorOptions{Default: "You are helpful.", Saved: s.saved, + MaxLength: limit, Saving: s.saving, Disabled: s.disabled}) + if v.Save { + s.saving, s.at = true, c.Now() + log(fmt.Sprintf("save %d characters", len(s.value))) + } + if v.Restored { + log("restore default") + } + }) + }) +} + +func chatDemoCostEstimator(c *ui.Context, log func(string)) { + type state struct{ in, out, inPrice, outPrice float64 } + s := *ui.Local(c.Root(), "255", func() *state { return &state{in: 12000, out: 3400, inPrice: 3, outPrice: 15} }) + choiceDemo(c, func() { + for _, f := range []struct { + v *float64 + label string + }{{&s.in, "Input tokens"}, {&s.out, "Output tokens"}, {&s.inPrice, "Input $/M"}, {&s.outPrice, "Output $/M"}} { + choiceLabeled(c, f.label, func() { + r := mujica.NumberInput(c, f.v, mujica.NumberInputOptions{Min: 0, Max: 1e7, Step: 100, Label: f.label}) + r.Element.Width(150) + if r.Changed() { + log(fmt.Sprintf("%s = %v", f.label, *f.v)) + } + }) + } + }, func() { + ui.Column(c).Width(420).Children(func() { + mujica.CostEstimator(c, mujica.CostEstimatorOptions{InputTokens: int(s.in), OutputTokens: int(s.out), InputPrice: s.inPrice, OutputPrice: s.outPrice}) + }) + }) +} + +func chatDemoSharedConversationView(c *ui.Context, log func(string)) { + type state struct{ disabled bool } + s := *ui.Local(c.Root(), "256", func() *state { return &state{} }) + choiceDemo(c, func() { + choiceFlag(c, &s.disabled, "Disabled", log) + }, func() { + ui.Column(c).Width(600).Height(420).Children(func() { + if mujica.SharedConversationView(c, chatSampleMessages(time.Now()), mujica.SharedConversationViewOptions{Title: "Banquet seating", + SharedBy: "Lady Ann", SharedAt: time.Now(), Disabled: s.disabled}).Changed() { + c.WriteClipboard("https://example.com/share/banquet") + log("copy link") + } + }) + }) +} + +func chatDemoConversationExport(c *ui.Context, log func(string)) { + type state struct { + export mujica.ConversationExportState + disabled bool + } + s := *ui.Local(c.Root(), "257", func() *state { return &state{} }) + choiceDemo(c, func() { + choiceFlag(c, &s.disabled, "Disabled", log) + }, func() { + ui.Column(c).Width(580).Children(func() { + v := mujica.ConversationExport(c, &s.export, chatSampleMessages(time.Now()), mujica.ConversationExportOptions{Title: "Banquet seating", + Selected: []int{1, 3}, Disabled: s.disabled}) + if v.Exported { + log(fmt.Sprintf("export %d bytes as format %d (the caller writes the file)", len(v.Content), v.Format)) + } + }) + }) +} + +func chatDemoRegenerateMenu(c *ui.Context, log func(string)) { + type state struct{ disabled bool } + s := *ui.Local(c.Root(), "258", func() *state { return &state{} }) + choiceDemo(c, func() { + choiceFlag(c, &s.disabled, "Disabled", log) + }, func() { + v := mujica.RegenerateMenu(c, mujica.RegenerateMenuOptions{Models: []string{"Opus", "Sonnet", "Haiku"}, Current: "Opus", Disabled: s.disabled}) + if v.Chosen { + log(fmt.Sprintf("retry kind %d model %q variant %q", v.Choice.Kind, v.Choice.Model, v.Choice.Variant)) + } + }) +} + +func chatDemoArtifactCard(c *ui.Context, log func(string)) { + type state struct{ streaming, disabled bool } + s := *ui.Local(c.Root(), "259", func() *state { return &state{} }) + choiceDemo(c, func() { + choiceFlag(c, &s.streaming, "Streaming", log) + choiceFlag(c, &s.disabled, "Disabled", log) + }, func() { + for _, a := range []mujica.ArtifactCardOptions{ + {Kind: mujica.ArtifactCode, Title: "seating.go", Detail: "Go · 120 lines"}, + {Kind: mujica.ArtifactDocument, Title: "Royal decree", Detail: "2 pages"}, + {Kind: mujica.ArtifactWeb, Title: "Ball invitation"}, + } { + a.Streaming, a.Disabled = s.streaming, s.disabled + if mujica.ArtifactCard(c, a).Changed() { + log("open " + a.Title) + } + } + }) +} + +func chatDemoChatEmptyState(c *ui.Context, log func(string)) { + type state struct{ kind int } + s := *ui.Local(c.Root(), "260", func() *state { return &state{} }) + choiceDemo(c, func() { + mujica.RadioGroup(c, &s.kind, []mujica.RadioItem[int]{{Value: 0, Label: "New"}, {Value: 1, Label: "No results"}, {Value: 2, Label: "Offline"}}, + mujica.RadioGroupOptions{Horizontal: true, Label: "Kind"}) + }, func() { + ui.Column(c).Width(420).Children(func() { + if mujica.ChatEmptyState(c, mujica.ChatEmptyStateOptions{Kind: mujica.ChatEmptyKind(s.kind), Query: "minuet"}).Action { + log(fmt.Sprintf("action for kind %d", s.kind)) + } + }) + }) +} diff --git a/feedback_form_test.go b/feedback_form_test.go new file mode 100644 index 0000000..8cb86e0 --- /dev/null +++ b/feedback_form_test.go @@ -0,0 +1,75 @@ +package mujica + +import ( + "slices" + "testing" + + "github.com/egoist/mygo/ui" +) + +func TestFeedbackFormReasonsAndSubmit(t *testing.T) { + var v FeedbackValue + var last FeedbackFormView + tt := chatTester(480, 420, func(c *ui.Context) { + if r := FeedbackForm(c, &v, FeedbackFormOptions{Rating: FeedbackDown}); r.Submitted || r.Cancelled { + last = r + } + }) + if !tt.HasText("What went wrong?") || !tt.HasText("Harmful or unsafe") { + t.Fatalf("texts %q", tt.Texts()) + } + _ = tt.Click("Incorrect") + _ = tt.Click("Not helpful") + _ = tt.Click("Incorrect") + if !slices.Equal(v.Reasons, []string{"Not helpful"}) { + t.Fatalf("reasons %q", v.Reasons) + } + _ = tt.Click("Tell us more (optional)") + tt.Type("Wrong date") + _ = tt.Click("Submit") + if !last.Submitted || v.Comment != "Wrong date" { + t.Fatalf("submit %+v comment %q", last, v.Comment) + } +} + +func TestFeedbackFormCancelAndUpReasons(t *testing.T) { + var v FeedbackValue + var last FeedbackFormView + tt := chatTester(480, 420, func(c *ui.Context) { + if r := FeedbackForm(c, &v, FeedbackFormOptions{Reasons: []string{"Elegant"}}); r.Submitted || r.Cancelled { + last = r + } + }) + if !tt.HasText("What did you like?") || !tt.HasText("Elegant") { + t.Fatalf("texts %q", tt.Texts()) + } + tt.Key(0, ui.KeyTab) + tt.Key(0, ui.KeyEscape) + if !last.Cancelled { + t.Fatal("Escape did not cancel") + } +} + +func TestFeedbackFormBlocked(t *testing.T) { + for _, opts := range []FeedbackFormOptions{{Disabled: true}, {Submitting: true}} { + var v FeedbackValue + submitted := false + tt := chatTester(480, 420, func(c *ui.Context) { + if FeedbackForm(c, &v, opts).Submitted { + submitted = true + } + }) + _ = tt.Click("Accurate") + _ = tt.Click("Submit") + if submitted || len(v.Reasons) != 0 { + t.Fatalf("%+v: blocked form acted", opts) + } + } +} + +func TestFeedbackFormSnapshot(t *testing.T) { + snapshot(t, "feedback_form", 480, 300, func(c *ui.Context) { + v := FeedbackValue{Reasons: []string{"Incorrect"}} + ui.Column(c).Padding(16).Children(func() { FeedbackForm(c, &v, FeedbackFormOptions{Rating: FeedbackDown}) }) + }) +} diff --git a/messages_chatsession.go b/messages_chatsession.go index 6151bf6..94f4957 100644 --- a/messages_chatsession.go +++ b/messages_chatsession.go @@ -65,12 +65,11 @@ func init() { "stop_generating_button.stop": {"Stop generating", "停止生成"}, - "system_prompt_editor.title": {"System prompt", "系统提示"}, - "system_prompt_editor.unsaved": {"Unsaved changes", "未保存"}, - "system_prompt_editor.count": {"%d characters", "%d 字"}, - "system_prompt_editor.count_of": {"%d / %d characters", "%d / %d 字"}, - "system_prompt_editor.restore": {"Restore default", "恢复默认"}, - "system_prompt_editor.save": {"Save", "保存"}, + "system_prompt_editor.title": {"System prompt", "系统提示"}, + "system_prompt_editor.unsaved": {"Unsaved changes", "未保存"}, + "system_prompt_editor.count": {"%d characters", "%d 字"}, + "system_prompt_editor.restore": {"Restore default", "恢复默认"}, + "system_prompt_editor.save": {"Save", "保存"}, "cost_estimator.kind": {"Kind", "类别"}, "cost_estimator.tokens": {"Tokens", "Tokens"}, diff --git a/project_knowledge_panel_test.go b/project_knowledge_panel_test.go new file mode 100644 index 0000000..1b6ac0f --- /dev/null +++ b/project_knowledge_panel_test.go @@ -0,0 +1,110 @@ +package mujica + +import ( + "testing" + + "github.com/egoist/mygo/ui" +) + +func knowledgeFiles() []KnowledgeFile { + return []KnowledgeFile{{ID: "1", Name: "etiquette.pdf", Tokens: 120000}, {ID: "2", Name: "menu.md", Tokens: 50000}} +} + +func TestProjectKnowledgePanelAddRemove(t *testing.T) { + files := knowledgeFiles() + adds := 0 + tt := chatTester(420, 400, func(c *ui.Context) { + v := ProjectKnowledgePanel(c, files, ProjectKnowledgePanelOptions{Capacity: 400000}) + if v.Add { + adds++ + } + if v.Removed != "" { + for i, f := range files { + if f.ID == v.Removed { + files = append(files[:i:i], files[i+1:]...) + break + } + } + } + }) + if !tt.HasText("170000 of 400000 tokens (42%)") { + t.Fatalf("texts %q", tt.Texts()) + } + _ = tt.Click("Add files") + if adds != 1 { + t.Fatalf("adds %d", adds) + } + if err := tt.Click("Remove menu.md"); err != nil { + t.Fatal(err) + } + if len(files) != 1 || files[0].ID != "1" || !tt.HasText("120000 of 400000 tokens (30%)") { + t.Fatalf("files %v texts %q", files, tt.Texts()) + } +} + +func TestProjectKnowledgePanelCapacityStates(t *testing.T) { + for _, tc := range []struct { + capacity int + note string + }{{200000, "Nearly full"}, {150000, "Over capacity"}} { + tt := chatTester(420, 400, func(c *ui.Context) { + ProjectKnowledgePanel(c, knowledgeFiles(), ProjectKnowledgePanelOptions{Capacity: tc.capacity}) + }) + if !tt.HasText(tc.note) { + t.Errorf("%d: texts %q", tc.capacity, tt.Texts()) + } + } + tt := chatTester(420, 400, func(c *ui.Context) { + ProjectKnowledgePanel(c, nil, ProjectKnowledgePanelOptions{Capacity: 10}) + }) + if !tt.HasText("No files yet") { + t.Fatal("empty state missing") + } +} + +func TestProjectKnowledgePanelDisabledAndKeys(t *testing.T) { + removed := "" + tt := chatTester(420, 400, func(c *ui.Context) { + if v := ProjectKnowledgePanel(c, knowledgeFiles(), ProjectKnowledgePanelOptions{Capacity: 400000, Disabled: true}); v.Removed != "" { + removed = v.Removed + } + }) + _ = tt.Click("Remove menu.md") + tt.Key(0, ui.KeyTab) + tt.Key(0, ui.KeyEnter) + if removed != "" { + t.Fatalf("disabled panel removed %q", removed) + } + tt = chatTester(420, 400, func(c *ui.Context) { + if v := ProjectKnowledgePanel(c, knowledgeFiles(), ProjectKnowledgePanelOptions{Capacity: 400000}); v.Removed != "" { + removed = v.Removed + } + }) + tt.Key(0, ui.KeyTab) + tt.Key(0, ui.KeyTab) + tt.Key(0, ui.KeyDown) + tt.Key(0, ui.KeyEnter) + if removed != "2" { + t.Fatalf("keys removed %q", removed) + } +} + +func TestProjectKnowledgePanelRejectsBadCapacity(t *testing.T) { + defer func() { + if recover() == nil { + t.Fatal("no panic") + } + }() + ui.Render(func(c *ui.Context) { + Use(c, Settings{}) + ProjectKnowledgePanel(c, nil, ProjectKnowledgePanelOptions{}) + }, 100, 100, 1) +} + +func TestProjectKnowledgePanelSnapshot(t *testing.T) { + snapshot(t, "project_knowledge_panel", 420, 240, func(c *ui.Context) { + ui.Column(c).Padding(16).Children(func() { + ProjectKnowledgePanel(c, knowledgeFiles(), ProjectKnowledgePanelOptions{Capacity: 200000}) + }) + }) +} diff --git a/project_list.go b/project_list.go index 06e7b56..4c21553 100644 --- a/project_list.go +++ b/project_list.go @@ -199,7 +199,7 @@ func projectListConversation(c *ui.Context, conv ChatConversation, home ChatProj if b.Clicked() { v.Opened = conv.ID } - DropdownMenu(c, "", DropdownMenuOptions{Icon: icons.Must("ellipsis"), Label: fmt.Sprintf(msg(c, "project_list.move_to"), conv.Title)}, func(m *PopupMenu) { + conversationItemMenu(c, fmt.Sprintf(msg(c, "project_list.move_to"), conv.Title), func(m *PopupMenu) { m.Group(msg(c, "project_list.move_group"), func() { for _, p := range all { if p.ID != home.ID && m.Item(p.Name, PopupMenuItemOptions{}) { @@ -207,6 +207,6 @@ func projectListConversation(c *ui.Context, conv ChatConversation, home ChatProj } } }) - }).Shrink(0) + }) }) } diff --git a/project_list_test.go b/project_list_test.go new file mode 100644 index 0000000..4042954 --- /dev/null +++ b/project_list_test.go @@ -0,0 +1,138 @@ +package mujica + +import ( + "testing" + + "github.com/egoist/mygo/ui" +) + +type projectFixture struct { + s ProjectListState + projects []ChatProject + owner map[string]string + last ProjectListView + moves int +} + +func newProjectFixture() *projectFixture { + return &projectFixture{ + projects: []ChatProject{{ID: "p1", Name: "Coronation", Folder: "Court"}, {ID: "p2", Name: "Gardens", Folder: "Court"}, {ID: "p3", Name: "Music"}}, + owner: map[string]string{"a": "p1", "b": "p1", "c": "p3"}, + } +} + +func (f *projectFixture) view(opts ProjectListOptions) func(c *ui.Context) { + return func(c *ui.Context) { + convs := func(id string) []ChatConversation { + var out []ChatConversation + for _, conv := range chatConversations() { + if f.owner[conv.ID] == id { + out = append(out, conv) + } + } + return out + } + v := ProjectList(c, &f.s, f.projects, convs, opts) + if v.Moved { + f.owner[v.MoveID] = v.MoveTo + f.moves++ + } + if v.Changed || v.Opened != "" || v.Moved { + f.last = v + } + } +} + +func TestProjectListSelectAndExpand(t *testing.T) { + f := newProjectFixture() + tt := chatTester(420, 500, f.view(ProjectListOptions{Label: "Projects"})) + if err := tt.Click("Gardens"); err != nil { + t.Fatal(err) + } + if f.s.Selected != "p2" || !f.last.Changed { + t.Fatalf("selected %q", f.s.Selected) + } + if tt.HasText("Court etiquette notes") { + t.Fatal("conversations shown before expanding") + } + _ = tt.Click("Show conversations in Coronation") + if !tt.HasText("Court etiquette notes") || !tt.HasText("Ballroom seating plan") { + t.Fatalf("texts %q", tt.Texts()) + } + _ = tt.Click("Court etiquette notes") + if f.last.Opened != "a" { + t.Fatalf("opened %q", f.last.Opened) + } + // The folder collapses its projects. + _ = tt.Click("Court") + if tt.HasText("Gardens") { + t.Fatal("folder did not collapse") + } +} + +func TestProjectListKeyboard(t *testing.T) { + f := newProjectFixture() + tt := chatTester(420, 500, f.view(ProjectListOptions{})) + tt.Key(0, ui.KeyTab) + if !tt.Focused("Court") { + t.Fatal("Tab did not enter at the folder") + } + tt.Key(0, ui.KeyDown) + tt.Key(0, ui.KeyRight) + if !tt.HasText("Court etiquette notes") { + t.Fatal("Right did not expand") + } + tt.Key(0, ui.KeyEnter) + if f.s.Selected != "p1" { + t.Fatalf("Enter chose %q", f.s.Selected) + } + tt.Key(0, ui.KeyLeft) + if tt.HasText("Court etiquette notes") { + t.Fatal("Left did not collapse") + } +} + +func TestProjectListMoveByMenuAndDrag(t *testing.T) { + f := newProjectFixture() + tt := chatTester(420, 500, f.view(ProjectListOptions{})) + _ = tt.Click("Show conversations in Coronation") + if err := tt.Click("Move Court etiquette notes"); err != nil { + t.Fatal(err) + } + // The menu opens on Gardens; Down reaches Music. + tt.Key(0, ui.KeyDown) + tt.Key(0, ui.KeyEnter) + if f.owner["a"] != "p3" || f.moves != 1 { + t.Fatalf("menu move: owner %q moves %d", f.owner["a"], f.moves) + } + from, _ := tt.Find("Ballroom seating plan") + to, _ := tt.Find("Gardens") + tt.Press(from.X+5, from.Y+from.H/2) + tt.Move(from.X+20, from.Y+from.H/2+5) + tt.Move(to.X+10, to.Y+to.H/2) + tt.Release(to.X+10, to.Y+to.H/2) + if f.owner["b"] != "p2" || f.last.MoveTo != "p2" { + t.Fatalf("drag move: owner %q", f.owner["b"]) + } +} + +func TestProjectListDisabled(t *testing.T) { + f := newProjectFixture() + tt := chatTester(420, 500, f.view(ProjectListOptions{Disabled: true})) + _ = tt.Click("Gardens") + tt.Key(0, ui.KeyTab) + tt.Key(0, ui.KeyEnter) + if f.s.Selected != "" || f.moves != 0 { + t.Fatalf("disabled list acted: %q", f.s.Selected) + } +} + +func TestProjectListSnapshot(t *testing.T) { + snapshot(t, "project_list", 380, 280, func(c *ui.Context) { + f := newProjectFixture() + f.s.Selected = "p1" + f.s.open = map[string]bool{"p1": true} + f.s.closed = map[string]bool{} + ui.Column(c).Padding(16).Children(func() { f.view(ProjectListOptions{})(c) }) + }) +} diff --git a/prompt_library_test.go b/prompt_library_test.go new file mode 100644 index 0000000..63f56e7 --- /dev/null +++ b/prompt_library_test.go @@ -0,0 +1,105 @@ +package mujica + +import ( + "slices" + "testing" + + "github.com/egoist/mygo/ui" +) + +func promptTemplates() []PromptTemplate { + return []PromptTemplate{ + {ID: "t1", Category: "Letters", Title: "Invitation", Body: "Write an invitation to {{guest}} for the {{event}}."}, + {ID: "t2", Category: "Music", Title: "Recital program", Body: "List pieces for a {{ instrument }} recital, then thank {{guest}}."}, + {ID: "t3", Category: "Letters", Title: "Thank-you note", Body: "Thank the hosts."}, + } +} + +func TestPromptLibraryVariables(t *testing.T) { + if got := PromptLibraryVariables("{{a}} and {{ b }} and {{a}}"); !slices.Equal(got, []string{"a", "b"}) { + t.Fatalf("variables %q", got) + } + if got := PromptLibraryFill("Hi {{ name }}, {{x}}!", map[string]string{"name": "Ann"}); got != "Hi Ann, !" { + t.Fatalf("fill %q", got) + } +} + +func TestPromptLibraryBrowseFillInsert(t *testing.T) { + var s PromptLibraryState + templates := promptTemplates() + inserted := "" + tt := chatTester(940, 520, func(c *ui.Context) { + if v := PromptLibrary(c, &s, templates, PromptLibraryOptions{Label: "Prompts"}); v.Inserted != "" { + inserted = v.Inserted + } + }) + _ = tt.Click("Music") + if tt.HasText("Invitation") || !tt.HasText("Recital program") { + t.Fatalf("category filter: %q", tt.Texts()) + } + _ = tt.Click("All") + _ = tt.Click("Search prompts") + tt.Type("thank") + if tt.HasText("Invitation") || !tt.HasText("Thank-you note") || !tt.HasText("Recital program") { + t.Fatalf("search covers titles and bodies: %q", tt.Texts()) + } + _ = tt.Click("Recital program") + if !tt.HasText("[instrument]") { + t.Fatal("placeholder not previewed") + } + _ = tt.Click("Insert") + if inserted != "" { + t.Fatal("inserted with empty variables") + } + // Each variable's field sits under its label. + for _, f := range [][2]string{{"instrument", "harp"}, {"guest", "the duke"}} { + r, _ := tt.Find(f[0]) + tt.ClickAt(r.X+20, r.Y+r.H+18) + tt.Type(f[1]) + } + _ = tt.Click("Insert") + if inserted != "List pieces for a harp recital, then thank the duke." { + t.Fatalf("inserted %q", inserted) + } +} + +func TestPromptLibraryKeyboardAndDisabled(t *testing.T) { + var s PromptLibraryState + tt := chatTester(940, 520, func(c *ui.Context) { PromptLibrary(c, &s, promptTemplates(), PromptLibraryOptions{}) }) + tt.Key(0, ui.KeyTab) + tt.Key(0, ui.KeyDown) + tt.Key(0, ui.KeyEnter) + if s.Category != "Letters" { + t.Fatalf("keys chose category %q", s.Category) + } + var d PromptLibraryState + tt = chatTester(940, 520, func(c *ui.Context) { PromptLibrary(c, &d, promptTemplates(), PromptLibraryOptions{Disabled: true}) }) + _ = tt.Click("Invitation") + _ = tt.Click("Music") + if d.Selected != "" || d.Category != "" { + t.Fatalf("disabled library chose %q %q", d.Selected, d.Category) + } +} + +func TestPromptLibraryFiltersOnlyOnChange(t *testing.T) { + var s PromptLibraryState + templates := promptTemplates() + tt := chatTester(940, 520, func(c *ui.Context) { PromptLibrary(c, &s, templates, PromptLibraryOptions{}) }) + s.shown.cats = append(s.shown.cats, "Marker") + tt.Frame() + if !slices.Contains(s.shown.cats, "Marker") { + t.Fatal("refiltered without a change") + } + s.Query = "invit" + tt.Frame() + if !slices.Equal(s.shown.ids, []int{0}) { + t.Fatalf("ids %v", s.shown.ids) + } +} + +func TestPromptLibrarySnapshot(t *testing.T) { + snapshot(t, "prompt_library", 900, 360, func(c *ui.Context) { + s := &PromptLibraryState{Selected: "t1", Values: map[string]string{"guest": "Lady Ann"}} + ui.Column(c).Padding(16).Children(func() { PromptLibrary(c, s, promptTemplates(), PromptLibraryOptions{}) }) + }) +} diff --git a/regenerate_menu.go b/regenerate_menu.go index d122e0e..b224406 100644 --- a/regenerate_menu.go +++ b/regenerate_menu.go @@ -80,6 +80,7 @@ func RegenerateMenu(c *ui.Context, opts RegenerateMenuOptions) RegenerateMenuVie } }) }) + v.Element.AlignSelf(ui.Start) if v.Element.IsDisabled() { v.Chosen = false } diff --git a/regenerate_menu_test.go b/regenerate_menu_test.go new file mode 100644 index 0000000..1f44c46 --- /dev/null +++ b/regenerate_menu_test.go @@ -0,0 +1,70 @@ +package mujica + +import ( + "testing" + + "github.com/egoist/mygo/ui" +) + +func regenerateTester(opts RegenerateMenuOptions, got *[]RegenerateChoice) *ui.Tester { + return chatTester(500, 420, func(c *ui.Context) { + if v := RegenerateMenu(c, opts); v.Chosen { + *got = append(*got, v.Choice) + } + }) +} + +func TestRegenerateMenuChoices(t *testing.T) { + var got []RegenerateChoice + opts := RegenerateMenuOptions{Models: []string{"Opus", "Sonnet"}, Current: "Opus"} + tt := regenerateTester(opts, &got) + _ = tt.Click("Regenerate") + _ = tt.Click("Try again") + _ = tt.Click("Regenerate") + _ = tt.Click("Shorter") + if len(got) != 2 || got[0].Kind != RegenerateAgain || got[1] != (RegenerateChoice{Kind: RegenerateVariant, Variant: "Shorter"}) { + t.Fatalf("choices %+v", got) + } + _ = tt.Click("Regenerate") + _ = tt.Click("Try another model") + if tt.HasText("Opus") || !tt.HasText("Sonnet") { + t.Fatalf("model submenu %q", tt.Texts()) + } + _ = tt.Click("Sonnet") + if len(got) != 3 || got[2] != (RegenerateChoice{Kind: RegenerateModel, Model: "Sonnet"}) { + t.Fatalf("choices %+v", got) + } +} + +func TestRegenerateMenuKeyboardAndVariants(t *testing.T) { + var got []RegenerateChoice + tt := regenerateTester(RegenerateMenuOptions{Variants: []string{"In verse"}}, &got) + tt.Key(0, ui.KeyTab) + tt.Key(0, ui.KeyDown) + tt.Key(0, ui.KeyEnter) + if len(got) != 1 || got[0].Kind != RegenerateAgain { + t.Fatalf("keys chose %+v", got) + } + _ = tt.Click("Regenerate") + if !tt.HasText("In verse") || tt.HasText("Longer") { + t.Fatalf("variants %q", tt.Texts()) + } +} + +func TestRegenerateMenuDisabled(t *testing.T) { + var got []RegenerateChoice + tt := regenerateTester(RegenerateMenuOptions{Disabled: true}, &got) + _ = tt.Click("Regenerate") + _ = tt.Click("Try again") + if len(got) != 0 || tt.HasText("Try again") { + t.Fatalf("disabled menu chose %+v", got) + } +} + +func TestRegenerateMenuSnapshot(t *testing.T) { + snapshotAfter(t, "regenerate_menu", 360, 330, func(c *ui.Context) { + ui.Column(c).Padding(16).Children(func() { + RegenerateMenu(c, RegenerateMenuOptions{Models: []string{"Opus", "Sonnet"}, Current: "Opus"}) + }) + }, func(tt *ui.Tester) { _ = tt.Click("Regenerate") }) +} diff --git a/shared_conversation_view_test.go b/shared_conversation_view_test.go new file mode 100644 index 0000000..43fae0e --- /dev/null +++ b/shared_conversation_view_test.go @@ -0,0 +1,70 @@ +package mujica + +import ( + "fmt" + "testing" + + "github.com/egoist/mygo/ui" +) + +func TestSharedConversationViewShowsAndCopies(t *testing.T) { + copies := 0 + tt := chatTester(560, 460, func(c *ui.Context) { + if SharedConversationView(c, chatMessages(), SharedConversationViewOptions{Title: "Banquet seating", SharedBy: "Lady Ann", SharedAt: chatNow}).Changed() { + copies++ + } + }) + for _, s := range []string{"Banquet seating", "Shared by Lady Ann", "Read only", "You", "Assistant", "Lady Ann", "And the musicians?"} { + if !tt.HasText(s) { + t.Errorf("%q missing from %q", s, tt.Texts()) + } + } + _ = tt.Click("Copy link") + tt.Key(0, ui.KeyEnter) + if copies != 2 { + t.Fatalf("copies %d", copies) + } +} + +func TestSharedConversationViewVirtualizes(t *testing.T) { + msgs := make([]SessionMessage, 100000) + for i := range msgs { + msgs[i] = SessionMessage{Role: SessionRole(i % 2), Text: fmt.Sprintf("Message %d", i)} + } + tt := chatTester(560, 460, func(c *ui.Context) { + SharedConversationView(c, msgs, SharedConversationViewOptions{Title: "Long"}) + }) + if n := len(tt.Texts()); n > 80 { + t.Fatalf("built %d texts for 100000 messages", n) + } +} + +func TestSharedConversationViewDisabledAndChecks(t *testing.T) { + copies := 0 + tt := chatTester(560, 460, func(c *ui.Context) { + if SharedConversationView(c, chatMessages(), SharedConversationViewOptions{Title: "T", Disabled: true}).Changed() { + copies++ + } + }) + _ = tt.Click("Copy link") + if copies != 0 || !tt.HasText("Shared by someone") { + t.Fatalf("copies %d texts %q", copies, tt.Texts()) + } + defer func() { + if recover() == nil { + t.Fatal("no panic for a missing title") + } + }() + ui.Render(func(c *ui.Context) { + Use(c, Settings{}) + SharedConversationView(c, nil, SharedConversationViewOptions{}) + }, 100, 100, 1) +} + +func TestSharedConversationViewSnapshot(t *testing.T) { + snapshot(t, "shared_conversation_view", 560, 380, func(c *ui.Context) { + ui.Column(c).Padding(16).Height(380).Children(func() { + SharedConversationView(c, chatMessages(), SharedConversationViewOptions{Title: "Banquet seating", SharedBy: "Lady Ann", SharedAt: chatNow}) + }) + }) +} diff --git a/stop_generating_button_test.go b/stop_generating_button_test.go new file mode 100644 index 0000000..c6663b4 --- /dev/null +++ b/stop_generating_button_test.go @@ -0,0 +1,65 @@ +package mujica + +import ( + "runtime" + "testing" + + "github.com/egoist/mygo/ui" +) + +func chatMod() ui.Modifiers { + if runtime.GOOS == "darwin" { + return ui.Cmd + } + return ui.Ctrl +} + +func TestStopGeneratingButtonClickAndShortcut(t *testing.T) { + generating, stops := true, 0 + tt := chatTester(400, 120, func(c *ui.Context) { + if StopGeneratingButton(c, StopGeneratingButtonOptions{Generating: generating}).Changed() { + stops++ + generating = false + } + }) + if err := tt.Click("Stop generating"); err != nil { + t.Fatal(err) + } + if stops != 1 || tt.HasText("Stop generating") { + t.Fatalf("stops %d, still shown %v", stops, tt.HasText("Stop generating")) + } + generating = true + tt.Frame() + tt.Key(chatMod(), ui.KeyPeriod) + if stops != 2 { + t.Fatalf("shortcut stops %d", stops) + } + tt.Key(chatMod(), ui.KeyPeriod) + if stops != 2 { + t.Fatal("shortcut acted while hidden") + } +} + +func TestStopGeneratingButtonDisabled(t *testing.T) { + stops := 0 + tt := chatTester(400, 120, func(c *ui.Context) { + if StopGeneratingButton(c, StopGeneratingButtonOptions{Generating: true, Disabled: true}).Changed() { + stops++ + } + }) + _ = tt.Click("Stop generating") + tt.Key(chatMod(), ui.KeyPeriod) + tt.Key(0, ui.KeyTab) + tt.Key(0, ui.KeyEnter) + if stops != 0 { + t.Fatalf("disabled button stopped %d times", stops) + } +} + +func TestStopGeneratingButtonSnapshot(t *testing.T) { + snapshot(t, "stop_generating_button", 300, 70, func(c *ui.Context) { + ui.Column(c).Padding(16).Children(func() { + StopGeneratingButton(c, StopGeneratingButtonOptions{Generating: true}) + }) + }) +} diff --git a/suggestion_chips_test.go b/suggestion_chips_test.go new file mode 100644 index 0000000..87eb259 --- /dev/null +++ b/suggestion_chips_test.go @@ -0,0 +1,76 @@ +package mujica + +import ( + "testing" + + "github.com/egoist/mygo/ui" +) + +var chipTexts = []string{"Plan a ball", "Write a sonnet", "Explain the minuet"} + +func TestSuggestionChipsFill(t *testing.T) { + input := "draft" + var last SuggestionChipsView + tt := chatTester(500, 200, func(c *ui.Context) { + if v := SuggestionChips(c, &input, chipTexts, SuggestionChipsOptions{Label: "Suggestions"}); v.Chosen != "" { + last = v + } + }) + _ = tt.Click("Write a sonnet") + if input != "Write a sonnet" || last.Sent { + t.Fatalf("input %q sent %v", input, last.Sent) + } +} + +func TestSuggestionChipsSendAndKeys(t *testing.T) { + input := "draft" + var last SuggestionChipsView + tt := chatTester(500, 200, func(c *ui.Context) { + if v := SuggestionChips(c, &input, chipTexts, SuggestionChipsOptions{Send: true}); v.Chosen != "" { + last = v + } + }) + tt.Key(0, ui.KeyTab) + tt.Key(0, ui.KeyRight) + tt.Key(0, ui.KeyRight) + tt.Key(0, ui.KeyEnter) + if last.Chosen != "Explain the minuet" || !last.Sent || input != "draft" { + t.Fatalf("chose %+v input %q", last, input) + } +} + +func TestSuggestionChipsDisabled(t *testing.T) { + input := "" + tt := chatTester(500, 200, func(c *ui.Context) { + SuggestionChips(c, &input, chipTexts, SuggestionChipsOptions{Disabled: true}) + }) + _ = tt.Click("Plan a ball") + tt.Key(0, ui.KeyTab) + tt.Key(0, ui.KeyEnter) + if input != "" { + t.Fatalf("disabled chips filled %q", input) + } +} + +func TestSuggestionChipsRejectEmpty(t *testing.T) { + defer func() { + if recover() == nil { + t.Fatal("no panic") + } + }() + in := "" + ui.Render(func(c *ui.Context) { + Use(c, Settings{}) + SuggestionChips(c, &in, []string{""}, SuggestionChipsOptions{}) + }, 100, 100, 1) +} + +func TestSuggestionChipsSnapshot(t *testing.T) { + snapshot(t, "suggestion_chips", 520, 120, func(c *ui.Context) { + in := "" + ui.Column(c).Padding(16).Gap(8).Children(func() { + SuggestionChips(c, &in, chipTexts, SuggestionChipsOptions{}) + SuggestionChips(c, &in, chipTexts[:2], SuggestionChipsOptions{Send: true, Disabled: true}) + }) + }) +} diff --git a/system_prompt_editor.go b/system_prompt_editor.go index 93a3919..7fcba8d 100644 --- a/system_prompt_editor.go +++ b/system_prompt_editor.go @@ -19,7 +19,7 @@ type SystemPromptEditorOptions struct { Default string // Saved is the text last saved; a different value shows as unsaved. Saved string - // MaxLength caps the characters; zero is no cap. + // MaxLength is the character limit; over it, Save is blocked. Zero is none. MaxLength int // Saving shows the caller's save in progress and blocks editing. Saving bool @@ -47,6 +47,7 @@ func SystemPromptEditor(c *ui.Context, value *string, opts SystemPromptEditorOpt col := ui.Column(c).Gap(d.Unit() * 2).Disabled(blocked) v := SystemPromptEditorView{Element: col} dirty := *value != opts.Saved + over := opts.MaxLength > 0 && utf8.RuneCountInString(*value) > opts.MaxLength col.Children(func() { ui.Row(c).Gap(d.Unit() * 2).AlignItems(ui.Center).Children(func() { ui.Text(c, msg(c, "system_prompt_editor.title")).Font(theme.SerifFont).FontSize(FontSize(c, theme.H3Size)).TextColor(k.Text).Grow(1) @@ -62,24 +63,24 @@ func SystemPromptEditor(c *ui.Context, value *string, opts SystemPromptEditorOpt TextArea(c, value, TextAreaOptions{Label: msg(c, "system_prompt_editor.title"), MinHeight: 120, MaxHeight: 320, MaxLength: opts.MaxLength, Disabled: blocked}) ui.Row(c).Gap(d.Unit() * 2).AlignItems(ui.Center).Children(func() { - n := utf8.RuneCountInString(*value) - count := fmt.Sprintf(msg(c, "system_prompt_editor.count"), n) - if opts.MaxLength > 0 { - count = fmt.Sprintf(msg(c, "system_prompt_editor.count_of"), n, opts.MaxLength) + // With MaxLength the TextArea shows "n / max" itself. + count := "" + if opts.MaxLength == 0 { + count = fmt.Sprintf(msg(c, "system_prompt_editor.count"), utf8.RuneCountInString(*value)) } ui.Text(c, count).FontSize(FontSize(c, theme.CaptionSize)).TextColor(k.TextMuted).Grow(1) if Button(c, msg(c, "system_prompt_editor.restore"), ButtonOptions{Variant: Ghost, Icon: icons.Must("refresh-cw"), Disabled: blocked || *value == opts.Default}).Clicked() && !col.IsDisabled() { *value, v.Restored = opts.Default, true } - v.Save = Button(c, msg(c, "system_prompt_editor.save"), ButtonOptions{Loading: opts.Saving, Disabled: opts.Disabled || !dirty}).Clicked() + v.Save = Button(c, msg(c, "system_prompt_editor.save"), ButtonOptions{Loading: opts.Saving, Disabled: opts.Disabled || !dirty || over}).Clicked() }) }) mods := ui.Ctrl if runtime.GOOS == "darwin" { mods = ui.Cmd } - if col.Shortcut(mods, ui.KeyS) && dirty { + if col.Shortcut(mods, ui.KeyS) && dirty && !over { v.Save = true } if col.IsDisabled() { diff --git a/system_prompt_editor_test.go b/system_prompt_editor_test.go new file mode 100644 index 0000000..ace4f4b --- /dev/null +++ b/system_prompt_editor_test.go @@ -0,0 +1,81 @@ +package mujica + +import ( + "testing" + + "github.com/egoist/mygo/ui" +) + +func TestSystemPromptEditorEditSaveRestore(t *testing.T) { + value, saved := "Be brief.", "Be brief." + saves, restores := 0, 0 + tt := chatTester(520, 360, func(c *ui.Context) { + v := SystemPromptEditor(c, &value, SystemPromptEditorOptions{Default: "You are helpful.", Saved: saved}) + if v.Save { + saves++ + saved = value + } + if v.Restored { + restores++ + } + }) + if tt.HasText("Unsaved changes") || !tt.HasText("9 characters") { + t.Fatalf("texts %q", tt.Texts()) + } + tt.Key(0, ui.KeyTab) + tt.Key(0, ui.KeyEnd) + tt.Type(" Be kind.") + if !tt.HasText("Unsaved changes") || !tt.HasText("18 characters") { + t.Fatalf("texts %q", tt.Texts()) + } + tt.Key(chatMod(), ui.KeyS) + if saves != 1 || saved != "Be brief. Be kind." || tt.HasText("Unsaved changes") { + t.Fatalf("saves %d saved %q", saves, saved) + } + _ = tt.Click("Restore default") + if value != "You are helpful." || restores != 1 || !tt.HasText("Unsaved changes") { + t.Fatalf("restore gave %q", value) + } + _ = tt.Click("Save") + if saves != 2 { + t.Fatalf("saves %d", saves) + } +} + +func TestSystemPromptEditorLimitAndDisabled(t *testing.T) { + value, saves := "abc", 0 + tt := chatTester(520, 360, func(c *ui.Context) { + if SystemPromptEditor(c, &value, SystemPromptEditorOptions{MaxLength: 5}).Save { + saves++ + } + }) + tt.Key(0, ui.KeyTab) + tt.Key(0, ui.KeyEnd) + tt.Type("defgh") + tt.Key(chatMod(), ui.KeyS) + _ = tt.Click("Save") + if saves != 0 || !tt.HasText("3 characters over the limit") { + t.Fatalf("over the limit: saves %d, texts %q", saves, tt.Texts()) + } + value = "abcde" + tt = chatTester(520, 360, func(c *ui.Context) { + if SystemPromptEditor(c, &value, SystemPromptEditorOptions{Saved: "x", Disabled: true}).Save { + saves++ + } + }) + _ = tt.Click("Save") + tt.Key(chatMod(), ui.KeyS) + _ = tt.Click("Restore default") + if saves != 0 || value != "abcde" { + t.Fatalf("disabled editor acted: %d %q", saves, value) + } +} + +func TestSystemPromptEditorSnapshot(t *testing.T) { + snapshot(t, "system_prompt_editor", 520, 280, func(c *ui.Context) { + v := "You are a courtly assistant." + ui.Column(c).Padding(16).Children(func() { + SystemPromptEditor(c, &v, SystemPromptEditorOptions{Default: "You are helpful.", Saved: "x", MaxLength: 2000}) + }) + }) +} diff --git a/testdata/snapshots/darwin/artifact_card-dark.png b/testdata/snapshots/darwin/artifact_card-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..375162b77623d8393971662de496661300befe13 GIT binary patch literal 16601 zcmd74bx>SQ`!+a%AOV6~a0|iRH4xn0J%hWuCAh=j8e9e)f(LgG?(Xhx-#pLz*4A$A zw_CscZ>Ohb=G5uaa`k;*w{+KpD=A2RL?S=}001AQrNmSKfOjL%-;;n~|B5jBs@x~a0;I@UaxiY1Hz?j0j zq#G{wzLOj=k)ZHYLM4MHqG-Q4MB-)UD19?h{4?JzB1PnY+k42W;7T`)4|9?}e>&LG z%91sW<`xltim_`0AcCGOn!7wzXCJ`)QAscF8xUgw^_#{4W4oFgqo(SJn-R+jJ;z6C zEOphjjz36=t4>fTd;yTy=Zv>JPxdr`))`WP%#b$u0mI)G*MHEn!^ja3&!yhLHHYuG!c@7` z>)NvG+QI`mkzm(`)>upHN?#L2?bvfTxfiY93h(V(jOgAF2>BxVpLMpCOzuA@XBRI0 z(rjpw7fLelY;4+vSr0o5r^VFa^e!2huU+qae%CeDALbJVN!j`BWJ=PRume8e@!kXL zegC*-CyC^LS~~Fowm9VFt0~8qftnsrAcWku;5KFF!)eP~9_Z>&KmlkFHGvhM7oZA>euowRCIQh_3KQV376j4nFIW45EVKa^=L{d{`&RM z#dNLscwpJz;$Slv7U3EeAiTCJY@^%avY^?zo!xCnRB(Ody9sxu63BFxqf7Ge7;rn4QCxsv0s3MIO9_?@bI+T-PP_~ZHil*h5041vL!r}RfX+^c z7g(q=nBKGVUPMhpJyNWz&G+XloFAXSrK!1jf6@op9+UV93o69QmKJb(`}j7keHx9` zOY?Xy1-bYHVExR#)@PyJC1rSdMUR287hq&e9_Q_;qa8t1aO=dZm@tk2sLIZ^vtx2% z9?!t**&Tn{Ym2gxt)bb7>}6t#8G);5FjM@_6c*m&zSeQ@a%UDBOTtS_M_pNX zavC!p46l&(==Qk!6A%Yx+Q-B2<=Ml3LTPZ?8LGR$GAmb*g8^7u5C4q|sIEqrnD61t zkcrQ7@rPmdx}?LI5Ls`;^O%L zPw=E9cwvt{*GCJQSL`Y!;MK@Jn!LpxVTjHQWp7gy@n#|QDQEaqd&Z$ZJq zRORpJrILlEFE$%@e~~Ion9d?x zV6W?67z`ZVVXNH=EjllM=>8>@px5kSJlmN$SJYc0Il|b{KHd>%d~l%sxv+V67Z(}1 zGjm}|D&eiG!-1ZD_%@c8c7ltO6FC@HnKI=0@hH5#6`kDfre40$-2$H zt)|z8o%kumkO*EpvASxt8_mSMDl(U2Ud^HfH8JS_ zK?g)hP+m=Aix(D>;`3AU@yXy|kXV_UcaJpA98UdLlJCCGjt$B9w^Hagi?MnIPo0()eP>=ljS2V0c^y9aQzQ{+XSg_InvE>JIhC z3lAC(6`pJN7gkhkU^kB>F1STSy&d`Es<;>!XY{sCR#;f5#emC}HKHk@NXg&InI>mj zt3L!}8_jr|ILAW>eot?0eZ(2OhwIO?rZ;a37S&^z;N#~{PPBMuv~;W1+UE21tqoT+ zl2S5eJeyN}_fW1*JurpQ5DxH79riQk(yT_lgtOZOLe3^8lU`S_Y-9H2XFVdQo8k6^ zW;&6fs$p{G_a3f6=pgv!4b~f2ZsJ-kEUVh3Z$1@8zWw^Dq*~=ShY8lSG zEPnh<%JH+wzM{5YP}b7opk=y!2-`z}?~3AWxRpl^^O86TTGJd8f%_ae2w7cc-%+@Cw%Svqfh z$E%WQ24k5+ctF0F>i5gzXnmsV7m zbK4g-J&4S$z5c2O#HAF|($j0w`PwnL6k0xJ)UC1Z6;(*0N|eS)&Jc^Q%|vBR^N z!C1U5a<3ifvt0j-0>tRr!!QjYrypEaH9RsdKQiA<;^U+2b$#!kx6Ge0m!zR*`c$nK zu=9gSnW@oy%CKtQkA?m#(_X*>yJN;jc;tjX-hbKgBk~NhxVWL>e`a8Si~ECqM^iC# z#5@AW-Sqopy{c!rpYP9;&u(?Du6twpJaI`^Qr3jo;bx53zL?z6d8Oh@?Ngctr0ZMU zz7_?Y7SCMPr2N~g;`uGtvc{cwAoD-1mLK^d$J|0{74aZ|IL~LT-HY3BLRFQ00@gG+ z;j@MDQ$ZT5n*%0)UV71q{=r$M*CU+fAtb=O6V;LqRm4Zq#toy846$aD%j=Qn<nYD2#w7SkCeA$NEs zXHSWDALOU#?}}gm|BNP~R_yL^%fy>6y&)1@zezyJFcp(IgD9;+UGv3L0KqyV_q7vz zTXf2-r1*)$CXDUxv+(KKcUW%^-=wyu`-i+H*6+`PUM!TpD*|nDOWMks?EFsCIZrNj zeGA83&jo2`JPV68EC1E!aR!JAea0oByIv)Oear2R$(&!S%gpL@)SqR}G|MKuaY>p- zhYuzJv4)o$<;w|Iy0Nc$6^*#NE3X<2Rg>=KS!24OG&4p_T0P+L150Z0=Rd{QPhBo6 z&pEB^u@RdiiyrE(-5qFh9zFkTKCjL{Pw!2k>KD?L@NfMGihVDX{I1NOSO} zrH;t4nX$2gf~X!=SBdcspXTJTs1Clk zwHy`1Ql(e3cjuFnA-`MLKpYTl1a!esVlmNFRM^E!b1@8M5n%4pyLppax=B25>zgaG z{>w$!(Qnt6q~J zX~faDUwrwwx6AMEhOJq#1>IYlw;R~F%>x}hiBz$p^Jpfi;(J65TNeHRr~3M(B>)33 zz#P2+zH?8s)xp5={3)!j6vRqdNc%WCDrli9D`qBX}GDwqt6ex`Xn&HdRF&CoOu|4(I1<$S3 zeS{ajAYmOKq2HO+St4{;uu-HI4B*5$sW2mtZg#kz-Vi8`t6p;s6I=Y*>+kj&1_P3J<{ zPFtZb=pw!aDbo6g;3v#;vKiwvR>;az#Mz?dJT?JQY6Hj9<_>txZtc6hJvX=KV_uv_D?7{a zwc#>HG0WGlbNP?y!V&lDw~7gt;->trpP{mT0(~~oQBnzsZuF!6@NsZZpil6DoW$93i~9+Yf~Lb?de)i5u2LUU`!z7(=q7q(@GDuIay=wycxj4Q zd?MnIAFZocW>{$TcUoRak}RYjK6=6Z{Jd(9xo9k#mC}*z2N`J7M8$lZp;f7^;a+L^ zUg}ZAW18kQ9Z%E3_0hHkS)1W_2G98{D7Mjeuj8^6s{*r0f&TP2PkRw{KlA zb=v|m3uj7q8jDbZvtmW2tv3?0VJp2^R(t!lPF+oY5Gen?xKZz~xMdE$|-jsd(M3lodz}-nh4YO^V z2OF!Ci+!0Wj&4p~Cp&)@n?uIA)+{+>+xf6~_@xW_1_H9ORu)sP9%aAI=m~pWMlB#4 zp>ldziRvjxERMB`n~$xOdfo$Sw998ahwbjJvw578U+o%gFEQm@TSBQ1eg@Mgwjf6* zsfsamNjtLo#(k_Rwfe92C_svHrhe}#67b@;gUn$w3RsomH+Bq&sD%u*q zhp9`1xk`*llq+LparJF_ZFUudfJkcmwan@%BWlIO1Sb2m5xYFFG=JhkTSW~_sXVemC#`Xv6H1`c5BibO z5LJ$i1b0pGMK2fq!xJ)Fxc++=5o+GbzlSdNtxqX|;%7gbU6rw2kGDUW9Wkv~S;xjk z3;8`Vh@gkYWE<5k3{Dlx6tD$DmX6_4ku+&!{eG9oQT!nLWJ$Y4+0Er!=emAWAWN6Q zR;}5bkK7bkIUn71#3Z#86a`uS`Rn@F-#CklCw2??b!|TvV0bV*Gg`N%>HIWSQ zad*LmN)JBg|FealirXLT5}djwASow4{ac- zN189|_3s2$7N%@*kb0f#+SzIfD4y%HvFI9d$*Fz)&QxedD`41Gj@p!96suPyka)*-o|cv%e^O4 zC}sR$`;zvrSqp_srYzwvyp*@UTT=JGM$#^ncHv zKOZ%xeb1`&zH)Ba9nF~nvFrGH>KJ>3g=TlCQB&}@As<;p-UxO5>KRNq%@&1!+VjP@ zc*6ECG5Cl)o8)SArT~Y|uwdjw_=?G2zW096ob@DBPI>JJ8S6@0Gk{El_=N&JwHKwAK`q1nLlvf{bG z{#px7^nLA=+HM+kMdn&KXnh@6NJZAydsmHC(F%(ABz8NL;Ud` zAu0wD_4*c__woThL^KRn^fwny-e;)<3R-nVd+Xxgkje`$RphG=|FGZZfghblEc2q@ z9p<|A?Va5P|3~xxe@5r2=j*NV;`moK7%IwnBQ}_AvahIJaZczY#E{N+`B-^fcE4Sd zk~PcfbS&!7DsF8HW`rUr@I!ddJp%m-Kj zwkUeRr5l>>mE?Pbe+H2J)onoWag`+RNWLMJ5q$u6#-ny+>06J@JLpY~;Bv~Gs#(!0 z`~4f+sn$02*47vwq5oix1A)Rqgu7YIg&EqK^WjGi3pRAkiKz!rAJAFu7ucW4J4k;7 z`y)E!cSM^^M8m-UBpv-XhWOvg!v6^i>+f+d%-(zNaA%TkFYXjfk-Go#hXqh%1<;6# zOj9+7TSxa`Mn6Q=m_|2)&1zd5zeAc?d+T~EW_v@3k>SzRjuGif0fosF0zM_x4WtnGtk2l?A%5Gj|+_mjx-u*G4Z)>KdB$!Ga%QN=n85f8BHCZAq z<5`O|x+H$(7JB_hADan3Vgu$oU*u{^(C66%*uSi0tXbl?WQw?+kO7c*_Ho<=&~lzW z;?}L5^5po!?b!M^g|(MF^6ogKp;lU6wmsb^gJB9UWmvn_=>tHFm`_<>UlNycfa2fM zh5~$=4n5J9q-|iDJUH>Mk}0HPU}*K(*$ph&0{SxVS8#U=E=#WStil1KJwlw#+F=17 z!Uqu{|0#k&#{dqxBqTtEN}3)MH|uUoQ&VG8Q}sN2%bi$!3K=;$`3)ol9q5{qb4M)X zbRAVwGqJj|q^F;?`mnOS;+@AsbbF{S>+@%&f?@OuStg-sMaXZ{rza?GCx-zhAUdOs ziH?b#i)*prP8TrW@Fq31f&kWJ`b50`-ONlycP=i$>CLbOwM4Bf#^8FyvvI3m7SF@G zMV6`}1+yx?H|P_AlV+9P=H8y=2)9=P$e)_}^f4M6uznRSq+i!F^}V1eIPF*YrjL!u z$N~@G{^Du0zJ3;MlC*`7pO~kGjOc)s=1ADOIj-j9AylS0D^2VB(!nKCBOqjhpBu=iWvP0G$9+ zOHB`#qtDP?M@b9vV1Gm%6pFrZIb#LAJJwCSgdMTx*`voKDJcP{{>`GB3)gVkZS>du z`P^N94k?&|gNntX{H-|Wi)cY}J8YV`@sY~lE7LA? zNqp{OEp2Vtd|h@c_10ZI3(b=0w__RGzJC|#UY;W>&RXBXbt+DO!=ZEwY4IQc6tddz z1?(1Q{ZHWowAqUZ@L2}A;=V)*Xm1ZvDAuD1EL2~J7;pVtRAo*P-?h3Sx;^oDhjVCd4%BTHO}vE$Xij-4`T1on zCLmP~9y$j-y-dKbii(p^;wML9mp=^U+p=D$>}Mj-SW$*Y8B0n^ zirDu7ztk`YcQ6oSOrN$`_rs;<=Bi$T6p9&Bg@=2B&;a4#a|bSq6O=6sBcl#P%ye|1 z2HL2BK7O1miDyX-j1w$Rk0op*2t2+H2UyKY#PhQ@yi-$VQLA``M#EEuiZ)nHVit=U zlhbtt=4X(ft9+K&Bog5BVynvbCD%W2L)qtB7pRVveW}riJaS@i=}7cu>4_9O7*e&ldZ|z!mYbwXv%O~JR zpmj@;3hh$+Q)x*fL&w_E++1yay#Yfq`h~_fJE`;iCHGU`i#<-zml)ZWyYpDWHVS)R z5oBnmY-yRjY>j@DJ1PE>8R__nIj>w6U&%_|w^F13tI-IbfyGfDOjuJTK}_n%!N5=R zx>{q=sWkC}$uEA7ZOD65S62h+2K709LPR9EQO5I!NwPw3Cf25=brlsi?rX2|R93T| z<&GDcE-~hMT{FLa0dR+ZQEDh@tLNLo*4w;-)TnFgYAAG1^bQWvJ|KLVx!@S^|_PwmkXw@BLQH3l!S%J;(X-&{)U~!I{VC zoNrKc-bW~rGhtY85D@i$XQqxvrkKW*KKeq>Wd;OJSa6`-VF1z_@9A~lnq(Q084R0f z+1U~LXNsu%*wO?Z=NGyq$1T1iivcyn-7fy%0@g{F+_J(S)R!qf@ph&4Z$Y+YXmiwA4>hLUVWN!%)L;;#TkPZt)Dfa-Wu)FaA0 zTVWD?9o1U1TW=;ex1|^o+H#-H-A1@ciOX~D@J=Iq0w)5(3_gwJ#YHXoC`A3M&_aO2 z&S6FI+AJ-01bNC7MZAmuE^X+jN|_oT@F;u`NN|B7E-x>$!w#}dlPkK77h^u&@nkf@ zH?y*0NNG5rsD%~lBdR3m?`5Oa{)?73Wg(MPrkmnsW}PzfYNd&dg!jv#v*RP4ixuX{ z`Pk!trzgz2cmVwRi!`X6@17LWW?!g86V&whJRzq`bFitH)V_RF(%K(`mx+pi--7m;X9Mt-P8nr{neUu-dR%-=T%qP#YPIWGMzaRXW06 z6M$56O0o;{$w8c`@S%kZif7m~aykxvg06Pk&9n5%ug%>l$vb9Uc1ALqVu+93xyRc^ zC0!j~ho_jd{^)qh)?_5|yN>SFi!EtY37w@Kwd6CIMkO^}L2eJ9j&qEFz?7Hjr(U>r zJ?Z^-pE(Ie$AXXn0X&gBOLLhgZ#aezJ3o*c?Db`2)oGHl)F=tXc1>(E5_0k>8EODx zh0U6YXI8eb06kcZU&B%;-LHkd`Ux` zM$vAclox20G5p777Ts>=l^_o(pqSdZY=Ib^rm+P3a?O9u87hgQ1|AdH_@XQQ)kWt$ zPpfFboQ?~@=t!LA6cq(BBG?jBo3J4^zP^5tJBN=#lWs~DY5et~isUv1KjcE|IO_u* z5J|kX(eqA{KGd?`@~C%I_*G^^ymmL^&%svgZeDJa1*|92;@1y&aposOIEVw^3PdOh zWz?6Jf!|GJaM8`IO?1d@(A+e+kaiXu(#$NazemnPHzH(mRcI3_!Ea&)sBY9f&9SH| zn&CkxI%sbnv1$v}vT;vOTRraF>*VwH3__tM?Wy@2SG!)EVN4v~eB5Fwl66^Mlc(64 z%otKh{%t~)ofTAs8> zo%3em*ta@gh%7Fzvp{J|mAr!mItPXfj+^V1j6fzz;Rp}whgW^z_jYM0cE+a$Vbx*P zzVcewOkX#CXyP#e0wfE2m&S7Ru(>?XCT9RjI+`sH)A4!fR<@rLxu>6an?^|Z6{zBU z2)&!@)1-b}-7IVkulblu7**?)3b+WC>S-x5WKR7?%i8FvDbn>71~Z6QZpT!#o3g_E zVEA!t4bW!Fm~m|k7&ep677p~cAb{&`WJuPcJ9(2li2p1&CgqiBY&FpBs5ebV9vQ9( z`t5oXC@5hQqeXoZhNd^{=fn8KIv4O+{r5r9XCf&DsgiR_Ag6(~|OmKo-CI-Kt;E zGb}1<6pemQb_T|*+G}qnY@a|~qV~(u*6~t&rLzPny_?RBYDiGgder%L>(BV8aar2J zJ;+W~(3$V|(?3&3P^D7~+?{vcgEW z)5sxax=&Urea(^)SBQ zr49`ZiTTLE#>T+F#P72ySKGLARY$*-P$@VH7jIWD7|Vg5~kqtO2fwG6Y@aGus!GD=YE{#P0|tM6>ynG)a>Y37-aoY zb?&2Q0#<9@KpTE%G&9-DtvYFf#RQ6#!;kHCgZ%bVleu4sPDn;2<@y^e1(&8Vuc_^> zETo;Nh`R&wjlLSZt)f*gd-@bhd~EZMtYgl5wncT4)SQ^#xpQ{$a7$dQ>%G5WmG)GT z(8!Pw29~v{<*Udx1BD3b+CaeaY_Pe-fEfm?yALHLsp8%IeE~u&+url5`yo;L4A{^1rFXjs3#@q-*mn;OL0x2CA1T)09~G#I3K zd;|xe?&}Gxt|=9vVdJzN9{~>R;9qz^dnSnPiyNLu#;AG*e%CKmo>tRWb-$--s!f)d zVuiit?Yc((oq0l5-jdbbsGN;ZX`oUzgIM)Xf&EnVjg=a@?x))pq|z=EYr-Wqr4RSw)58!(CBe6G%0@e=DA{JoL^!v zUt+ELjjz~it@-D62JJsB?2U04u^k0RD@!V3MvBydMfh<;4l5G}cc87w6OneA)x`Ac z{q=sm?Fg=J`_()-vv_N!pivx%Ohr`?Sk$&C<%mBV7NgwKoR=b3s+=;EK3JO_DVqD& z@^`&?v6Tu9HhdP7zf}q&O1Bm~JX_PVxc$p`m}oA`CzQ13UjAMa9oK@oSHpbOQn#Yr z&#s)~i4?6)xzX4Y5)muQQZ-dwa1@1l3mX+T(UyQjf;y=Mes8@ko=Qoris5i!d9AD# z=&pi6M0K-U^EWO1Cw=tfdu3%XhVfHY^}iPIg_OxcqmC22$XEJRR8*8eCJ&`onBZTT z{ztC=-^;CQU^zj5jV3!R?k7l~6+XNb(b?(DKdBvNIPH&>xk?6)Ouzwn5R`<4vVVn< z@duGFP15Z^w9X+7P$do<2^+SwOln*8hy8IJ5Nu;=`?EIxqi0AE2R7%(SQ!M@v_R|= zZA(&og4MuALjMY8%+@JW_dEk^nqICN*ud=s3v<$%4h5Dj$z)_J#>w$_1DAiIDwz#t z`#MQt3t)$7U*r@9;NS|mb8)S&W8(zY(qf|oTPTOQ(F9q{@KknkGFD6uEruNb*nCcK zdZGU(cJoGtNL97ILJvF`+ieY;-e+_QHo|j%MSo9DvPm01ZK|UI9JKbH3)iQ!|6Ffv zO`jxFc$q}BSGEY$KN_m61+S=Y&KG@F!7Lrd7LPzb%K(UMlASv9K{uVHCKAO}{!q2O zsn&RTc@gB(t%rurRjnDp63)+8!AIM>`P7moar2Afl1Ijg4^RLxAc)#Q4F6v*z3<6d zK>g#XTCJlt)0Wdn!BH>~MKyGI8arM$U?)c+@~>=Z%T@vyS|8vj!7W^z(DqwMAk-RX zPFj>TJ>|@C<2$^|nvqXdv3+eiNC8DOO?qZP*CbSW0GWAwt?tHgJ-IbIA!W^bjsA{9 zeBJVxiy{1XH0TLKz+mq785=R^z#Cu|Z2N((1UEAHYr6NVUa#IqI2tsVGuG3a82@w! zj#H-rKIj<;h~~!RK^8Ja$+2S5A&3k5!3=QNp~hM$-6Y{G$LzfrqVIyCNSuBETBeKk zP?*GWn7os^_(?`W4#lPgNt*-u`dvZzKSbyb4Khh=a3@eo#U??Q{}3J4TQ{%Ijf5Bo zv!N2KR~ComJpmF|#1+)O2F8Yb8J04|q|u03$PZ%fDyEg8O^+vXP-s-6i7gb%rrICO`x2RbJiI+P2|cv%tF)pGU0g6puq|nb%l1pg4d2P~4|^vkGhbZ+v?!UI z!G2Aeh{sVp|FAEZCU+V)tK+L>Zkm4XTlI7N)VH01azFlEc0;y-Q}x7kguD{->_wxu zd$jg~1Gac+4uYK2%qHhM@0hKgvFNgj8!bk&n7F~gv>V$Cf&CjD@d+GL?G;oq>$>!J zG~k8pVAd3Hmkk^4nU#(}dy~R%E*YwXw1r?Lnm@*vj)?za<~u`<3?$`Vvl$IytSc;@$S4w#PTKUG8O6U)o!(S4W~Vy<B8(&QFwl4b3)5d!SnPd2`xd+GCKIr5aBmdUI#)};!+?hi$u8sylQ zme#a2l^TGjcAX!LXqKI?6ohi#)?eI%?IWj(6*xGiUvJ(0=@i+n?>_*3*K-hEHOiZP zr^r5kf^Btg8#k-1VEmY|s%wn=Ci!12T!9Bd6F)km^ES9iG9Lhb{s6#gv&-t1QmM|+P7D{k1t2)yjDBjUsy>Oyq z*Qv>Y%Eah~0X$doDNBJqW%%JdTFr{1+Nr6$a`tMscP?00g$|n_I{k%yWd>}Rv}cYl z(O4kx0pRkxq0Q}7&69Hk$d*3RC#?5!sC~!9-$Lg0OQ}QyIU}dd zS(+mL{kM%!*w}Yu1d-mY`EOV4`fu0cZ@m2d&ix0!BQfw6jLWaY(`!yKmBk@DtiYvYp;D}0|U^m44p&VGe0?%A4ucPjjRUHjHJ zu`=B6@5(2-J~i(5xp7{w;q-a9-Iqy0NyS?i`AmcP{`F=}xP8SN4RFi_?zY1jxBtUk zL-=2^bN>Jt9;T=wq7X{J5YbXKor)rp@#zpX1oEXo00urEmrxzHma+CqsOBox-wy!H z(gLC$GCfP+!nIdcHPW4h0}p5rRe*pA+aq<+CYiK}8wJm(5zq~X&on>k&^dpfxZYZy zW#id;<&rdPX>>#S=dDs_6kSwwLy9~n6il?_SKa^ifxu~;NjaedA(B-MkQeZbHD$`VQs~0?CaR4J``8uP3j+`oAcJ6kM zou4^nGcC`+crAw0JLaVmXwt?n$;QOQ>nD~DSG11&6i2_K=%39&P)+4g1C#_>9be0N z3aGLaD7j>jLMb174Cs<(=ZG`1bkEgVfNXxn5@gjT4Z7I`NCE#LBhvv5?eZ$_BtIDB zH=Qy;%_qBe9ZM&Lt{I$!B#Yu>*}N;zL{Zl{*x;GqMTSLftnG177Y~{U)&S%5pB72< zQ=hnjgLbnkb2B8xGDVPQXKRyyf&e*V3GHT&SR?geZ)`J*H z6lbc0-&Bs_MF$4<#hj-upmkD)OI0pjJs5CxuNnWLf5e4+IBoq2_2qE=kMf^N@AG|HW8R3HQNGsV*YY`rkD8@J5Ji@d1c23YFhDrJ5J*& zOejuRBduPlDA>15e#M03>T^->74#y~3YQ<}Aw^&2dr?ytGyic+&f6EGXreLE=b?Wl z{*>jwV}pa5p~sXmXxd=6=6#pNU8hqw(J?kM(z3$zs*Z>NxI0D5Jml%*Uq`7mPB_gL z0+f`NYLq4t^)tf3thwC)YZpk{xv`Pz-1CTLPZ;wJPX%V2{gni~ipr5jcfW|W*Y%z} zj7C>Z8qGR90KMnF3Ihh#6?_bI@MW9gIYiXccauNK^1nb5LTsqlGqc>b+b(!ziiwB+;7dQC>H+#c|ox$2D7x zjih_Zg4;mB(_KcZUm} zNFK)QQytvixW|e0a!mWpclK<iPMcvvy`V3EaJDBIm#62Eb3Z!KR2hrImhzKUUlEA!MJ;*CDr)a>2X8v ztw>$&&4X_QMj}w(${j{~8Y3~N=uaTw)1+{DE|r$Bz%yO`@+> z%sF44MD{$>wo6+co8JPf72n;cfIA$+U37}QteC4}j5R=mlYJmHHp6F5(3mM`Au3yW z3cITP^cmTaXFpQg+OT}Ecs>b<>g)=e}?#*4cz_e8Wfw_EJ;JnYZ%>SFNR6Hn6U zWuaPDl0t3p%y|m{hEQ1^X#NriOaj zoy(0TXbvmU>7i*6UZaB7|IeoY21(5n3gh&=u~`yx?1;yRAw?#=$}`4Q%+;F5s)~4`fg-UbL&sy>_xOO7nrY97-s}N_;hATfDS9R4Hkk7@N%h5eLp|d zb5Q&1{X|o9NZ(MIPwrn~&YE;NfVS)*{pT0kHK-;SF1H184%e7H2u(8xOAV-e{g8u~ zq}TSU_YjAfIiKYlr4*`y_1gR4jRLxXA{u0*tbJf}tB7_=V|wXgSK&{$o`ZD1qoQ3I zhZpu}`at3MT^y`b^%&@P%2EECjoe7Y1#t}5dcD4^HGrdmf14MJO; zdqKN5Wo1Prls{G|?G9v+cx}eaERuxg9YqQmHY#Zqe~}8E>cQ`c z4w*ts@B-B~CVq5?9QD(;uDn~-XN^SBjn9qBP)F_7H1Jr69zVu`h?QU-E@#bztw_Z( zL>WqiX>w^OAv-uikplw|`H!yU26!>$sHm}G-=BX(1r?3|&iSp&cp=us&v%L@a5L)g zx}4@AV8``IUB;9Q|JeVUCuMjLI0+h+*N99*x0@jKxSp3qRHnf`sTef_k*CSQbz?{r z9=7(+Ih0*A3ab0K+WH%L8d)^zMWcT_nPHRLSlq*|^lcE$MMsj9lYng}UbRV2%TO#* z!3Blq(d3J?6QK;5LTZZ_k%GJKVnZwnarBNGf~iKzD_9dfp}NkL<`j_$DK53 zac0yjp{V9>e4+lCTTvM9?_pB6WW|bx>fKLW3Dc=6%>Hq-XvRX0 zBA%ftNKWFX9upyvU&1)vWa&uo+_)9zGpa&Yy!Q*5bJMem(Sx~g6OilEF0RjJ;vdHQ zXUblL(MgV#Nsr9DlA7?+i$U6myd5@e*Cbi+tP~Z!8EB)kyAzJouu?bQ*rj)mndf+R z$H>7fSrIE+g&oIjDb8Ii6aT-Cp&{J>yvC1@u63vxj48ua68V9q;=0z(JP?A&FOz9e z68S|mhZT|bVcjCCKIfWjSz|l*=53ctd#a_RLa)}GIx<&LeI}S6D%5Dy=uEw>Yb8_( zq?LcE(a=Q5ggr@ag%<#{D+Sodkr8S~?;<}uE`A@T7ZDwB zVxa;_gI6jGO;S0NWblxJ-yU|oc$rhSq@w#PRA?+BHW71aWD1oER4g6a67VlN7o%jv zc@hSJV=kE^z}h=6_|5R`LgcEe0)@gx7<1MP3b1lSUU|`Ex-MN(Oz$RIC`k&wESJzK z{C5aGs5h0N514}iT4`vl*7YM79gtxuH&YAT!C7S=-TSr?mafc*@St9$#3QP#=KQTy zCD%n$qs{w4-Zeh^caYG;WXVj4Euxwu#R{|Ju#r$L|J zmyABT>n~kCC;t>_8O7A1Rj2w;{yrL>3x7N3OR`)c2?`1{pt@_+4~F4pGQ6+vr5V~B!QL!Hr#urBNz(Zf^LMa5##8Y%;V~daVb7~*4}o|os$hPi z%b1=`$NbJ}OqAd*3~-u1*+b7Ybj|IoZIfj_hXW6v0{4UkJ_d`n>Mep1XbE}r6kcgJ@zzo^)3VajK+=T^uCZ_hG%|EayR$bg znKpwvm#Y(wg`$q9E>Bh*UhQuai$>v8DdQ;!`KayZA`$mwy|8|9CS`Hoso2u<9-4K4 zSFFrHY;+j7u0kZJdv7ojWLo+0(GdnybQY_A-w<>Y1P90w{_6<2No_%*k)l$i{EoGm zwrNClEGw?{PpGlJ-VIkOYBzV`j#yEAXV+H!S?Dnt=Iv_K-6~|GQFOCfNajDepf-*; zL5k!-vmDP;gg(b*v~SHc*oQN?t^UlxAt51d*C_w@jFBKk+zt;!_(L_#bS@5Dha>Q8 zS8{;FasZR8_csH_?|f?xbuTB(f3h)8aic&drzW|7voY96p41?Ix;NdRW1(+uoY^c8 zz6-=)z6iGcI`Bo$yS4X+pX0^Avo`yWjuVz;k}vw%UL}j7gyG0?X_8co zIX_+N)G=2l$e3q4f1G9NScKy*(FXviHS9SFZwTr{$@2s9EKw#*!ft2KCY=7SDJkz8 mnSWv;q+rq9`jR(NKtvVC-}>glWawWO0Hnng#41INe*7<^rbYJv literal 0 HcmV?d00001 diff --git a/testdata/snapshots/darwin/artifact_card-light.png b/testdata/snapshots/darwin/artifact_card-light.png new file mode 100644 index 0000000000000000000000000000000000000000..693b53729334dcbf950913d5684084ba50ac787a GIT binary patch literal 16304 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 literal 0 HcmV?d00001 diff --git a/testdata/snapshots/darwin/capability_cards-dark.png b/testdata/snapshots/darwin/capability_cards-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..3d1e0148c8cd0903cec513426283c750aa859462 GIT binary patch literal 22459 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 NZ>Vdk)1d8|^k2QA4I%&l literal 0 HcmV?d00001 diff --git a/testdata/snapshots/darwin/capability_cards-light.png b/testdata/snapshots/darwin/capability_cards-light.png new file mode 100644 index 0000000000000000000000000000000000000000..35b9a9713d3834dc797b8e626dd87093607dadf0 GIT binary patch literal 21680 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

L6S_zImDo@DA`ZQGqtDyPNjqGu=ZQm+T6@E-2PJ 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�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%0AG?XBf<~z!5*xBo_kd9 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 literal 0 HcmV?d00001 diff --git a/testdata/snapshots/darwin/regenerate_menu-light.png b/testdata/snapshots/darwin/regenerate_menu-light.png new file mode 100644 index 0000000000000000000000000000000000000000..9cea599caf0e0f1381011778ba9c1eaaecb88658 GIT binary patch literal 16072 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⋙zJ2Vlbw3@F`6j@kA|D&P;vlB`~Q#GTH)x+x|W9`_uwtjUmwqsPUiyV@RFiSEcS@y0_cXX3sX~XZACq*$GFili$}E(B(5_1`pbdkJ;y55 zU=MFRt#^f zm!d(CK}bS;hrs#73~2=21s{O^KYxP;00D)v3Gx4U#{3G-J5t;MQkR2zXKMHfMrLXd zA6!p6)u>_s>gww7#>_Z?N{$y4!fFc(8?FPbEPrpenWS8kjq~&I@yh#{TzlPmK6$`D z2Mvo;ajAFtZ7-drp^$;!H~6dd(CFoi=7pnVx@b^qD4IS&23O~c!3#SE9Qcqbl?RBz z=M7mISa342T`bn0Y&UcD4-8Pqly-cZQ`XFKkYT!i;&h-zYN%KD*K;fVBMN^t1V@C2 z6h?J_p{jm27d0#<6h*XI6yHiEsrr2P03Z9Dqd797=I&mNf;Fln)| zp6jT-JpV_|Ax@{!@_S+88H<^dyM-zZ57?C~-h26}h6?oy!}F7)A^rN&&MGDVLP_be zvgX6h883;rq0+_RptQTlfTF##s_}AbEL1mYcWTOt-TP>)vF_z>D!LG(n@@Z9{Ja(Uwsxap z+@3|J5Dt7(`+7-Z#2%f7m7|h!ZN=w*86gbpOEv8B0Dd==$1=8`th8Dd^u;G7xwpOU z+7zk!$hEB*Ow`k<_iSC>$A6KCb6j|xU0bTpGb?fzaw;Kx*W{E;pxH`IcLMfz<4QSa zIq_FJ<&8OfJohKZlkZiz`Md1UNhFbVijQXrc$^I2k%Y|b;h}``1)Ws}`8E#BtRBYF z3}-oVjas;P0;%yLM;j=C5O6?pEm+Mp zWQw=SP9&|Hq=I5&sUrB*E)Lg<_0g&GZc9%o!`m)W1u}`@U}32-8;XC@PiRTLUhr$> zr&B7LIU<)y^-Fa9_WFQJvEA8w8yoOj=(B}^3wX=}YnFi8L=pyt)>o;!R=k@gN?ptb zT03>DK8?`AqnFkH9^U+aQu%)#a6DZ@R90JfgS*^dbbOB{-t7D`E3THA>dIR!tSnq- zB8*O^LdX&s*GnFdi}qEjBFsVpO%2`%>Cq&_syw?_YD5)B8LFcs0G2QA;7@d0a=@vB zB{s@-USvkyT;jz8H}InQpgO9SXk4IYl}H273F>2EW+qM?Uc}vm00ck*`Jn*o>mv<_ zCQJX<4J#|FiL&;PSQLJ*>z9j|jN+1JQ+v}Vhky&BgE5lav!KPwN(Tb{3>Qn6x!I-> zUr$a3n7Jk(H1uFW$_`KH-2 zedu82{QHWcxIr}5BmLC~xAW}$J*v2wQFc~(n=Uxs;k3n8o9i3DV z2o&sw1UqL`Nd3MAKnWjs={(OQoL5*|6B}rcHy|Le7ZdAq4vtuNbv6?F`lDwH5~b@C zx4{=~Za_>y;?vy;mp0s5lYzCp{m^*k7kvB^RVt+_t(x?K9S(N({R3=Ve0=n{#Ciz> zgYM<}?$p#&@!6RfvbftnGVrX+dCNjP_-U!Ka!g1c&HkPC-H@?tMH6RAd}^v7J{FRK zy4#?l16{jE)oZU_otmaOP^PBQre$>7Itxx&)hQ)*vi7$UdVcypf3D{Xzjx>18MwJYOiK$LXJi9glVXa|Fe54a_3d|e?uf(sp{h!x*MJNX z`0JCcZBW2NH?=3!$z>+WP z|3FcjI4~q6#KX;i8$K`xV!ouZoO`D8hgJksc^rFpa<9=|@PD98RcAEiG-p!BkDp&dNU@pTxw(2z=%vO6xPg`e)6r zAbUi_udet+gBI*pp7*dF~>uuUcTP4K=OEWVGzn|8UgDM0Cqa&?W zxpyWxvK;Mg{hhJ?(J?WYO=cEc|5qm5xjBx$zJeuf9xx1>n`3uAQObD5S&UYz_>y|R z-5q&(g^IhLXx#mxu?V(7i<^-j&~N?X-=@mPe){9+6j3O?v=pydFEdM1%fRn~hNkjY`8q`tycWbws; zAOnK}XKWoi=77+{U5!ni(uamLc@zOMnJJl=Ii*5s6YC`unOKiuX6QdqujSMhK^L>q z=&#qvNy^J>)8cI2y#;){cgMvYfQ5x!{5fE1Ztiq{xJ0 zsHUffN0e-2!RfX8erW3Cl+m~6{I`dc&hcGZtLmZ{QNbrY;sAD;o**Tjg2eKs?5&2z|~bff{nV^)#|;$ zILAn88n1;}Yt^7&Q2_z0ZaKxa&ru-Ql0U;$~tBjLAc0 z!>IZUZW;}hcF#9TmX?|zP)~0p#_g?V`Gw~6++0OjSsu7{BYlApCtCpaJ0k>t>N`6P zN#k&EaH>xR{aMs8CA>d`!0j8(a382&i4uRX{XxzZGJBLBmLfEbh4KNQK5&PzS$xl| zuczSiDdZ<(i5v)g3e3xEbeoxZc}@eaF=mJbX<7)5{(TVB_VVhR z4q(a>7(qpOa!#3>jNnjV*Apjo68Yq@Fb*;>m;w1(Ztwqe#fw)In?7ntb;Tq3icw2L z&CKn57UmXb2ga_F8NuHIK9tb~sfhC{K9a&+q_jMX38y0^3k{ANg#~?wGewP!$%YON z>ytT2@HyyY<&6$2(r6*z^6-G!M8anwZDgV_IAI!^CR6 zH&pMt+3DOMdhjChmXYlVTczhgWw8J3Gg(@W8TE?~_EEimbmB}XY4>tLQWvHc%FI3l|=Q7|Z~R+Hm<`h|}y274GtL569?T% z4gPv(w*Bj)6FAmnH&fS`-_dP6_f&j9Mty@G zS~#XMyar}SDXRSXl|(%L8cHTUe>?1*N)<}B=80^lp{})h+L~x7SOivN~J-1OT)IGRM zk#GRNZgSFGLjx#-$ynmvBv(qnyZw04a5>}k_!SzGLk7u{^6Lcj|1YJ(|9i=j01@z| z8CYWQt)#r60V`QY91M$(k7AI4!UY}8EuJhKBwJJ=%1$gyg6}`2$^T~dC#HBlzrVTu z7d|RL4b)lJO0Mum^_4cqVU0cz@%9$}`L^iX9Ov2BHkM}c`1(z6Dqwnsh>|k1zaY%* zk=b(M+>`g}ZeM`~6EksfrU?u;j|27W|BE4~dd`-8UZhP1D zO=qo6CB|o~xIV{JD2#!^XOd_50C~!U9-ctCUryXqzek@Pjgq9v@t1Tdl~M)gjklvP zjrANz-jGMn9aJCA_?TyWV(u=dNaLhQIWWp7r5&^zGyPdCi~O)hyEANOT)rUwV?@;|(4x0lBHHfaz}(GL&RR@^2}y;mXwfZpZTC zy|kS?g77&krgm#7O27%~a8r31UWWbglYHp(CAqP$kMkiX zRf?+7hQ`Jok09qi9{}cTAqC`+pLuyu$T5Yt1)1iQE}LDSI`x}UGBU`hnLbXc+5|y9 zrU!E0xU#{!AW^GRZa6PGGkg2Fb|0?Q&;JDzskH+lojOx9C*HJI@{*GKI|EC#Z@$%V z?Vc(>&`fGvfiTlkQ#o`cYXs?J8sxd0=-_jzOT4wue;HdX_ z_O|18Pj})-u%^Z-G4XGvg+*8x>|!3R8x%OX(RN*1eMut@_y@YCMk9iU%)BRV`Q7PB zs1A;bRXF$ep&Zt{86Sw{U87z89CRq0~Y4njqY%B$F(pS85suZ_tZzD+r26$u;ot+ z$r&4?XH7VI!bfluZwEx=O+|ngWM@Yo{0zm-#KG&UMG1LaLv8I^wckwQ$O0=Xt0q0_ z#d>>M`Cn!Pi>1u9t47C-KBzoO!IXy$f5%?<6XX*v z{r2mDHy_j>%@8rs`y|Cdlub{rZk2~LQ=4VezadxPtw^N(M1OVB_-uB2=k(75tDDyS9lY9M1WGM)8$~jQh%dF9PsvhxArG7BjE;|#Q}o} zxU^q<&NzGL=I)MXD&##k9FZp#yRzsDo(cl&#+A9dgxOg-3@Y9&I2mf8FVA{w0Zx1- z-Vf)PXlUF%_oBA8WgVcG;@7W6Mimwz*^e}$5#)Pt@#He%r18Jvv{--38{|63{Fc`k zqN@fRg|s%J&dtxy&(0nmA8$v6sjI4zeTf8btr!W9xd;Z`;3`{*5teOlRhJ6oZA^Gf?_s=y4woC`>g+~rZ8^a z@Im#!Cm#UvsS|r&-QHh{`sp~tWW1ynkb)cNsEnkpX7_Kwf-kdvt9xG&@uV&WR8H8U zycKnza0P8{+@C_7#T_dQ9{@8?1uqZ5icwAdUSGdwhN6*?5y1-1k1c|xjily{9C7wC zysjzQO{;fbFd-ErX-osI6FaXuvx~jmK5tYvuU*24G7KQ(IZ{QBen0}PxS+sk2>n3h7iKEw!)kkKkM#B(M&Fn;jyfSSa*ix4z%!nzzYnj)6_oNlho( z$i54QR(0yKm)b(<>IotKmoXgt?Y;y9^PUobqmKHsg1I`CIDi4*gq9kFB0uPag4{DAU%0Py=<_(5w8hYwAD^7Y*G#J0CZz);Ws??VT4ttHxIE2As^Pd!3!h z-O`ER)}h)~_P)Pz-QpEBmQI^H3T;B*@*%tbI8AqS+2%&-uR!r1W~l`^ZG4QJrLFu< zJJT}+?q&CJamJc0)rc9%#k=1Xqpj5Rj1NDN(2;0Vi)t)(o+q71#akcf3F4b8UT2Dq z5x~Z@1_bklh9J?D&!?@8)XoUV7oyIc?|Id)|6*gpa6=fsW5?w_|BONrrBq_v3)e_u zhh&?$vvqe6d$Bra_ALGOdiCbHIAbz2ORO9`TgR?Y0mHTo=O2U4eW1s${mq@%i@#p# zXE#PXuqM(f5?gDm6x$E zbAt8HOB^O|Eqcw7yB(W$ZTrr4AMEVzI(UIDWK2gZhZIT82=0jV2Ohzoi6$C6l1q4> zqgR40LaVm{=X&i;lHjdpAJ0?bOi`Tmye%IXINB4;CA$Y3Wb^7flpWg0|qd+8*I%!q0pMeqL018Ilo&GXRr4W^D)KA2# z$-XQNHdw8rJnmcNJrX&|yi-n6Rw&4RHZGJ#qL(T=u;y7wf}>q5gxr6hVkXJbFTQx> zJ0>e%ttPXT5&Gj`a9T!7snP+EM22_ckx$H1C0*r&GLn`1PmK(!0n5UO5N(&IW_vV3NzRkAPV`^xvN zNd=YfHmmLWC{8_{4fy?YOfPZ_FZV_F$d9DxYRWh(vXHM%ArIstQI>w}C?@v>$bL%a zmH}w`7I5mK$ntH&`J=Y5F+Rb;A2aR4%F>e}0QceZ==A*?-`laT*MqkB1&p+Y%?iIwAV(X7@YUOS{nOTKECdi8 zLMxD)_77=|=A-#HoG*a$FM?4e^G^1|X{mzIHdNHehZFdbMBahWtg|go1#^;r;*KL z*c*fJ+9Ze8-2!86@RSfY15dQFnfb}T1KT1!1G3C;Sjh%s{(dx(=f&vTjrlQQXmBT6 zN*9Q#X?GoZ=faelNX(s%H%uP*HyhC`sqh?ldAbw96)`fa0ugagadX+*zJv))~>w#It4nHKtptsQu5H%Ak_XtR?hqFvb$5Wq@Tzn(0rx+Cc_csri%pF3CwFXGENPEUK=UD3i`~#?wR(h{t&cenF3PDb5Ldd z%+y5EhX+HTv*(@=Xle#zU)n*p#aXLa#H1R^fF!0tbBLl$Mx1}6K?}pl*TSgN2)X8$cA4*H; z@`c4VrJB3?4~6~w^TM-(@)uhs&Fj^ kQOa%b=!UO<-`N4bv9WmI&tOo$RoutKt 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 literal 0 HcmV?d00001 diff --git a/testdata/snapshots/darwin/shared_conversation_view-light.png b/testdata/snapshots/darwin/shared_conversation_view-light.png new file mode 100644 index 0000000000000000000000000000000000000000..09fa005d2cbe409eb404c3e660a0f167fcdcf1e0 GIT binary patch literal 29902 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

3w~B>0{Qnw-4Gp9ODyUflZ=dfYwE5d+Cl9 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 Z0Lo-dj|2p>UOpcHeH~-%YM4{(e*n;?`y>DW literal 0 HcmV?d00001 diff --git a/testdata/snapshots/darwin/suggestion_chips-dark.png b/testdata/snapshots/darwin/suggestion_chips-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..8d625526d19628b0a67ad35d7089443c9086848c GIT binary patch literal 8338 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 literal 0 HcmV?d00001 diff --git a/testdata/snapshots/darwin/suggestion_chips-light.png b/testdata/snapshots/darwin/suggestion_chips-light.png new file mode 100644 index 0000000000000000000000000000000000000000..5d1b6fe6f1f1c9c718ea301e7b75038de53491d4 GIT binary patch literal 7922 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 P093?;Bn8WVX#4yh*#j`s literal 0 HcmV?d00001 diff --git a/testdata/snapshots/darwin/system_prompt_editor-light.png b/testdata/snapshots/darwin/system_prompt_editor-light.png new file mode 100644 index 0000000000000000000000000000000000000000..6dced57a6ce4ce0899724363754a5255a43e9312 GIT binary patch literal 15262 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 literal 0 HcmV?d00001 diff --git a/testdata/snapshots/darwin/thinking_indicator-dark.png b/testdata/snapshots/darwin/thinking_indicator-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..36e4f4589ac120c9b9145290cfb324bb2bb7683a GIT binary patch literal 4048 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 k(~{~Na0~TgJW;!}L79&GF3p%<> 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 literal 0 HcmV?d00001 diff --git a/testdata/snapshots/darwin/welcome_screen-dark.png b/testdata/snapshots/darwin/welcome_screen-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..dc49fa827d9bb3b717d4f3e71f618dc16e1977fe GIT binary patch literal 37202 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 literal 0 HcmV?d00001 diff --git a/testdata/snapshots/darwin/welcome_screen-light.png b/testdata/snapshots/darwin/welcome_screen-light.png new file mode 100644 index 0000000000000000000000000000000000000000..49286a001a3fdaa9b6dedc782ae8ea350524f8e1 GIT binary patch literal 35835 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 0 { + time.Sleep(at) + tt.Frame() + } + return encode(t, tt.Image()) + } + if !bytes.Equal(frame(true, 0), frame(true, 300*time.Millisecond)) { + t.Fatal("reduced motion still moves") + } + tt := chatTester(200, 60, func(c *ui.Context) { ThinkingIndicator(c, ThinkingIndicatorOptions{}) }) + tt.SetPreferences(ui.Preferences{ReduceMotion: true, TextScale: 1}) + if !tt.HasText("Thinking…") { + t.Fatalf("static label missing: %q", tt.Texts()) + } +} + +func TestThinkingIndicatorSnapshot(t *testing.T) { + snapshot(t, "thinking_indicator", 360, 70, func(c *ui.Context) { + ui.Column(c).Padding(16).Children(func() { + ThinkingIndicator(c, ThinkingIndicatorOptions{Phase: "Searching the archives"}) + }) + }) +} diff --git a/welcome_screen_test.go b/welcome_screen_test.go new file mode 100644 index 0000000..febf2ae --- /dev/null +++ b/welcome_screen_test.go @@ -0,0 +1,66 @@ +package mujica + +import ( + "testing" + + "github.com/egoist/mygo/ui" +) + +func TestWelcomeScreenGreetsAndChooses(t *testing.T) { + input, got := "", "" + tt := chatTester(900, 600, func(c *ui.Context) { + v := WelcomeScreen(c, WelcomeScreenOptions{Greeting: "Good evening", Subtitle: "How may I serve?", Cards: chatCards(), + Prompts: func() { SuggestionChips(c, &input, []string{"Plan a ball"}, SuggestionChipsOptions{}) }}) + if v.Example != "" { + got = v.Example + } + }) + for _, s := range []string{"Good evening", "How may I serve?", "Research"} { + if !tt.HasText(s) { + t.Fatalf("%q missing from %q", s, tt.Texts()) + } + } + _ = tt.Click("“Explain the minuet”") + if got != "Explain the minuet" { + t.Fatalf("example %q", got) + } + _ = tt.Click("Plan a ball") + if input != "Plan a ball" { + t.Fatalf("slot prompt left %q", input) + } +} + +func TestWelcomeScreenDisabled(t *testing.T) { + got := "" + tt := chatTester(900, 600, func(c *ui.Context) { + if v := WelcomeScreen(c, WelcomeScreenOptions{Greeting: "Hello", Cards: chatCards(), Disabled: true}); v.Example != "" { + got = v.Example + } + }) + _ = tt.Click("“Explain the minuet”") + tt.Key(0, ui.KeyTab) + tt.Key(0, ui.KeyEnter) + if got != "" { + t.Fatalf("disabled screen chose %q", got) + } +} + +func TestWelcomeScreenNeedsGreeting(t *testing.T) { + defer func() { + if recover() == nil { + t.Fatal("no panic") + } + }() + ui.Render(func(c *ui.Context) { + Use(c, Settings{}) + WelcomeScreen(c, WelcomeScreenOptions{}) + }, 100, 100, 1) +} + +func TestWelcomeScreenSnapshot(t *testing.T) { + snapshot(t, "welcome_screen", 900, 420, func(c *ui.Context) { + in := "" + WelcomeScreen(c, WelcomeScreenOptions{Greeting: "Good afternoon", Subtitle: "How may I serve the court?", Cards: chatCards(), + Prompts: func() { SuggestionChips(c, &in, []string{"Plan a ball", "Write a sonnet"}, SuggestionChipsOptions{}) }}) + }) +}

s|;d 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 literal 0 HcmV?d00001 diff --git a/testdata/snapshots/darwin/conversation_item-light.png b/testdata/snapshots/darwin/conversation_item-light.png new file mode 100644 index 0000000000000000000000000000000000000000..cb33c94c911fe5d6f5cd593e4483066491f80545 GIT binary patch literal 9845 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 S7i3uhML|YYx?a*e{C@$^p>1aX literal 0 HcmV?d00001 diff --git a/testdata/snapshots/darwin/conversation_list-dark.png b/testdata/snapshots/darwin/conversation_list-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..493b24742e87ace160c3ca37309af0251b1b537a GIT binary patch literal 2666 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 literal 0 HcmV?d00001 diff --git a/testdata/snapshots/darwin/conversation_search-light.png b/testdata/snapshots/darwin/conversation_search-light.png new file mode 100644 index 0000000000000000000000000000000000000000..8e4136f3a4af90c286f163cb8cc64c3066938189 GIT binary patch literal 13398 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 YheoG-Qdk7NU+96tJ5`x#=?`E32OFeNtpET3 literal 0 HcmV?d00001 diff --git a/testdata/snapshots/darwin/cost_estimator-dark.png b/testdata/snapshots/darwin/cost_estimator-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..43d1f4127a1413e7340783586751ee1f1dec4b2f GIT binary patch literal 15580 zcmdVBb#NQO*Da{T7{|=a%*+roGcz;A%n)O2#}GRPnVC^$PRz`Vu^qE4Gt<-Wd+)!k zt^KNY-)`+_YNWZNl6r2Rd+xd2Juzx3vM5M|NB{r;MP5!y0|59?4E;QU_z`-fcl~$| z00vGeEHK9E3~E%_sdt6;7&t3FFIhgX z^_=DUd$$G%+Xk#bAoc-Mcc2;<7M(!@`a-oY(rU2M9||_Q+~YY|79eQZJ;z} zdTXcqfBh|E!{Vu$0j4f3W%R0>`3MLdEiLO+wQ!(qqE+%no~);$lK2b&&=R4Hb8=Jt z$5uG|r})3V7q!=B%Fguk7u3JObYQ}9AKSkCDK{Vo5ksUNtVWORz=)e1`%~*ju>~~_ zRRzBMpd6!&2FL$))35>~Dc$_PCCUEG+%2-Je5D`pHO$sQ4!89(DfKqmmnER&Id}8* zJPPg^)8lgf%wUNlfSJb644?uFbHtK!M~8N}q@=_tZ)0CrO%3xrmq$dxHYX;RCL5Yh znswcF*W!8^ZbyhJDBv;DS-V+RY&|52Z*!`+CIRUgO>}j6VUCda?|PX|qN#T-X{~rL z7lqIW#C(+1VJn*sSN2oQI#?)4i(&rf7$`tItn8yB!=P3nkt-svAEmvJR1 zwS;+QdRYHB$yBcxLZ*i=Fg&U*jtG3$8_*mlB_k#j^gF1|sZo{-&HJheK>ohELji3$ zmW2B?(vSFftfg9{n`;c66NlrzM-D|?+*Bi0hHeXM2F0~Z{!M+qC-7sBsF%~k++(8j z#v$|fL}SvwLf4++I~6Z|vRxv)wJ|t%4(R+$B#0D;u`YSb5lJC|H>+e@{#kqc?ahlv zWT#qRd)j&m7#twrh~_Fpif_T94IGM4e`|7q27dWIAE4kK9Hfsk5oH?6G_7gEMS3l} zAPQw^P<4`rkVTnCMf0RCHcM>h)H6RrqVviZU!jQE^50ASB9>=}qU>QC$=BM_eZNCT zm^L{n)cL%a9x?fWog8-}XK`chsdW~H=hSKoVk|^?DC}PWj{REVdKXKFOEx~HJUK!c z5dnuF$1?GLbGJ>DWk4VM)Qi_Tor4p6HPIfB1E-=8own4nw^}A6BQwTSH9>;6x?VF$&<%*BNzhPf$;{5}pa7dXGNp%GXyG2WkQy$X$Q zS2Vto@E{$R-1_heUXUez>CvurCa$aEkFw*2!L^0CN}YQwi8Ud?0RLwzjn4+mEv-4; zB_IPX!K1UY)2ePkbr8Z|Jju90q<~JQ?d1!ElfQq}w9m9{OZJWwDANrGYra=h*X}FJ zBD$#yIyA50jHe0r((J5G5*6bfAPE`1b+tV+lSlm0)nXvQ4%pgAt@ln{=nL!Ja^^=y zM#Yp+QdWvc$opIDd8BiDQA!nI#9BAwB`ByBXj-)BV7d+b)x^U=J<|%RjM|>2W^Vvh zRaQLT#MR9u*a`^<3coIJ7Ch70aaY%u2L#V=(s4+u|B8B5e;+xs1|Y*KD8-!ftLdlV z#@#Z4Pjn_PJnypvB;Pmc%=NWZ(cU%HwLK1uFvJr5?)ASQ3S|3(_ku>D5P*Gp6z;X& zON)1mP(}`e_Vm+bP7k!5RvHXqEEVsPGSRgi;}CA;Ws}aH!)~hwa2u}>mI*?YKARcCQQdMXD0u%vazT-h+7tTmb_gqR(9?_ig?8uqsuKIu|Z zQ;T1F=M@5@v^u1gwUvDV}8h)*vfj@RvT^Fd)+%Tp5nNXaW>|jZZ!O(>vogLds2ZKytXt= ziOYNr7Ssy+B$86EV{U6`q#@W5W!G$!XYe|^#TJkM1Vsmw=oPJTs0_~H)-n4fKSJ5? z<$bEyt11uk&XW#Xy8A+D_f#k)>?NpsV-s9DDkRtmu^bw$OPH#4Rkc#}(Rn*>QHJIv zNtjpDVDqfLDc(a*(P1}eFt7alSlv^QkB{S(xoVb!vs=EgcA~GjWc=SvE5`9sG(Ig86>)^GT&$gxZoW}fDig4oh>@8WOhz{BE;_PC_%e52}NBI<6Y=vEdn zQKQv$M;Q;Hva~kJ`(xP6gb`8u?bVSqw)8C;a&a-~-u8gUj)q@Sp6Wu^Dz_xr%ah>_ z-%I9q?3O!A&+RP4?Z2R^MF~fX0{gY^=1&Ol5vTxUjGuB=Ha26^jqwPYSXfXe5E9}F zLZV}0ICe%d$P~D;K|c-Sqzdm6raHxh%q=V?99D#S^z#brsVs{+$vEDutAmp~^R7Iu z1$Benz+Ne0pyzXQSquXJK0Wbp{I=(l--O%J-+Xb$gm?S%qXo9a!#790yJ0M$C&I)7 zXsU+24GiwAUA-&ZvB)h)9Li}GX(@z zN5@l6^lmpd>qs5xe*Vj*Qzf<(tSl|9oerckFgV#VskH)GczGG0>r0};5{OML4Ekvp z8U|d;?#Hs2JPc~Nw#KE`nxVj0%?S-yl~hVJv~cqA6!>^~@$t1zStwh*z`D!B~ztMR+mGk07RM-%eNS=30ii>MWRkT|VPfyPLJyZGp6@#5~Ro8r^*7x%PW1~S6!mc7^kCj7=HZW zA^+w5UM4!Bn^t<#fQoZTS4E6O_D z*n3wb6Pxl})8cE|h)Xb7-rOX)an}2L)!giLnspXiB*G&y=QDmY)gIW{(SoQcue z+Ir7Ndj1%Gm+P41)tZJ)6=|J#qPqIcLB4*w`ge%S)~m%G_n!L8<5CUtaGhQYyV$$= zm%ptZ2SKkltJnF9inA$p@;B;ZHmx-7#u9-OXtNahc=N2*#Su<=kyER^Q0q(W(ahwZ zbheTlu>fXI5B4Y3yr_;f;7va%L`8x&YyW}kI66K)-ojF1V}sa@|DV#+4$e59MRar+ zq1NiE3cvf!0ACfa1&YMaQH4V;(6p@;A1^N*nTqr{J>d7lWsz4C4;nSec)R!WR(D@p z&NB}7zZ~Mn0ljkuR$)>$_wlK+X$6&R;VicuSE2P!jEsSZ-|n%~`}zt8US$;&#*0E$ zHWwB+7uU~VC}8)72$>ie!OFrf)03SvG(UL$6d=nC!p6Bl{ZsP>qD)EUWVIR|7{U|w zouIdU^J4uB$gipS0Lb95RIs%@ES;%&giDN#Qw;AxL3?BUNV1tMMONZL$dsIx_5}Tv zRBfJgP_3X62*?%SFC%mJ`Vwsy;CMPdQC;QlzX0qpxuR}YE)c_vkz&+#%;3yZhXtr< zY2|A)WB=QC-5TR!pCOSa`{_pUywgv&vQv-`ukCSI=j7soky9IMan?cagt4+_0088E zM$bP=YjxemtNzgHa$Pa^-WvE!5TBRMF%% zLjJAYuIq7OFXTJ?cJmZ5K6yItwYRf-+Dp6+)T;!1HrAwykZ)WiVX0xW;|`{ZFJ*DS zbL!va(`dHm&e`fjOw(s%>>qd$+@f(fJ@El=)Kyfth>flVCo6BI?>UWPpkGvF`TcGC{trD zJAZd^JlxY%`yNXykC-BZ9ziYZgja3R>T?sNlmfe6ze?it#{jeCbH~KqrJw+r0-n%Y zuP0iapMH9sm$&ztDoCK-H7oK_kK=zfx(Xpu+8jgd)%!(DQPFYZ4lyVwlfKG}f`cN< zLN~CH;_P3ZXUCtmhN0xsqFjd-jP^Hp5gCU*Qy#yUE_Hu3$RJyPfuFyVhB;!9Dw z-A~aoYBRYj68mE!0O)Nmj`aoCBtWT^jFDf+*~fqYfQ*19kt3dSzZpA}LjwH$r8*IH z?6q{30?CuDBfdeTgvMK1?vgQOAUV%*Fkx0!Rz}9)L94kkt7A4MSn&(rKuO7Y(?ig% z_bV|*v!sm7kZmRcAiuJ*v^ys!#Y3?kq0RG{5%7B@gS9|3_7lVN_o$A{p9MW;7)niz zQi@^=1ha|)0Dxc+Y>R*xI&A(jM}EF2!_HSZr->*xOXZf~v+*|au109^Xy~8~tfD;Wp>Y!Pk-MJ3WD4l~u2TQv$fIO;=ORIb9VmoVTv_J)9IND0>z z9KkO~-2uTDK-#Xn4<$2&JT@V~i{V>qtM5{8Y${4RTPCdSeA5MD<_m&wx=s)G7r0_< zDd}|a?C9vghU|@%aHxJ`5!krcjUQS4SmGO-X;Y ziG!CKV`9XB{j^%o$Z|Fy?&Fb)2WKMVb#Y+f9H*Q1I5#U2e(pax3fiSs%5WCBP2>k z1hobk>MiX%dh}j=01zuZp*)x0FYJ#m>oA+v+gqwhN)}aDPq4`gK{qxV6O26hvCE+T zMXjzfHYZ2NbGE9i)~k+=4vUs*v0vG9TT{7W(`bONG|`DO%A(09JE8)?KAv+0dk&S1 z+9zLQ}@pH8JUSt!fw|nrJrk7q1AOFZS&~avQY#Nn= z^0_Youu6dMIhY!I!AxFV-aNPWy!o{C^XItGFI8_??162Jz-lXJ>!=yxphXQl-hq=E@DED0dvDYDUW2c6T{1ffH9*3gnm? z8mb=c8*dEqGV!dX>WsgFer z)noVHf&vri=!-v%iauO>L+RPiG+2_B$=m1pDTxmQmLer}#mW1eqbEdhE;8)Nv$(W0 zYzygWsThBvrBvNNBNCsSCRfUqtw$5mZXF)!7@zYbV z{MLNJU73kyrG{(6Ci`}QYTC8T}^oWCmG7;b|wiJD2mEoA5Y|EvKL zK8Y#;662&c}t(Kf(YxfmY23f$upn2Kg?--vnn#4U(mwq)~k-%LhxhK3H<&Aq|Ofk{eI-+>{GRO zwT+f_A^SR3IioBtts1NP_J+3v5MM(tekBNP^73rL+_jWiXxQDI({_|N)vKfREYxTY z7V3bG8q<=gC_kLDNg^kAb6D{xSYwa6>W~XQ2ZrdmeY#agDr@ktQ8jJ1P$vj)ce`HF z_edKY81mrHUdf0L>iNlM8C!N8y8b1J7uG(+f&7f8D(%S5QATD^`Boo4@9W6Oh#7>K z3`346TC%XOcX;a)4ZJeTr_iQ<sAMC5bou&yVdC&jaw_$w|krg?V9<#Du9T zpxf)=Q)X78{7TkFw15aVv}ui+CBgwZ{_nvBM~j=AETl}VF`^28z*<^S_T^Q^?f#8E z1f~~%FXwG(XlVm?qY_$5(@No6;Ezt#7Z#O7$ow*s@Qon=5Lu{HWIt{(zf*yxyNF{(57k(foKPv|PcBCk)`UP%oYVF` za{0@XhDJIl$YA8@{qNTiZRCoQ(o)dX=^z{$X<44=JE8d<3OCQ%gHCAE7Lgw0KFX@7 zR~$PzC)wXXiFTz{Lg7%%gy!`Bp+WXPZ2t@)0pg(;lV-F{$f+%F_tl_==t zKM6T*oP$6h>P03VG_c|_@tlkd42NI&13?5)e`L^M0mWj-E%-^iq)#IoNe_jdt_+08s3?T3(v-eK`80 zfLTC9kpGubQZmR>oZ1i5o;-Rd zw3ngnr$C&W+)KHJmcKXGx0$Q}t@(Hv-!>r>8o4{D?h$I`ELFxaF_~E`!9)Zdp__*! zt3fLO&C8-;)iVF~j*b;ahe}5~WYdRz=J)m27D^>O) z5}1S5rqlQL%^+^eMxkI4@8tKI_?hO07W~>;1Ks7{l_6zX=D#0)ADx_l>hVu^h2^36 zr%mZK5cZjqg4Q6}Y#rPNv40zPf|1J$*8T{V2o88^j>T*QWtkOm7rHFH#h%v9U;m zCk{9hm3(f?S69@+r0=_fhHVWX5T}t#x^EKiH*&?~6vv=T(6lrw;#?HDv;DWGPq6x9 z?E6nqw6n%G=a`c4$u&hqk>vRx(7|M$RS2O*5;&c0ee0!{-ai!C5X{8d>IlsS(fvX5 zUjj@~qrwQS-1s+IIo}6|lfGHSK^6k;lc0#S^hPg6`Oh6f4;l#eAtyEn|LY8zvDCk; z@sE;{!Xx9ei^hlkH&gTGFni~_<+DJ@t6q_ABXH7V)S z%A%!~lXvH4hv;UVvr|J^$7a@z)L28ezdG3H;$L_XBY=ORzQ|p@Z&2eA{H$~hGF-n7 zxVrQ>*T2u*o8+4oxOXQzS{0v0_4l4>49_LG0q5HyhzR|kn?iJ_AKC$iy8x_{DsIw^&{>R z^6Oaai9rFPDhw^H%v-P|R8=Qy&h5JkRpll7OBK>YGugXf^78(**TX{(>{L_${8FIlK{&Dkl@zGE zl;k%WZf_H;aNHd8)eb|caBWS7Jf9j9ITAH7ol~+)BHCsLO{X=TONuUr}SkUlE z^{61zV77(i+1u$^rdI8*y_#A`LRk2VPDsm-K?|o>^XZ>OWuXcbe?H^|bzrlFt*VL* zLpFVow_y$rXl2pPsej5LpuTnN4Zl`$U(7~d+e~N1I)5O?jba}sDkQ5V&1-JipXSj^gLm)&;N9Chu{D6~`lV>0Ff27XRPxKd^IW?bB;q?`=e7!IcZp;~2z;6SXlVG>^Eymb z#@gn8b~j@7KAO^Z;a^9AEgqbG|0keda)afOJ`9$>Gl}1Jy3ZAIKPLeN1bnVRuHG2s?M+5@^8uri7KF5y5OG=YF3EA?% z-|l}g{8)hSfbPs%SL>3f4PT=0K#IMPN1j(;(h$9u#%vr(XJ=*i8#9*r_*maK58|<6 zubv_-V(bGJ4y7~Wwed`nD0sL!g$}U|y7d~%wYiVmmg8kjYS~&_@4wx6IJwEMKB0&$ zEb{yy;lixDC%mc$weaw!j_#9@ZLpjjJ-kRU1I%{G$trV60cMcz>VVMkdcYY<8Mj#@ zZ%FIGUA(4`%MjVddw64tNRCR}=6g6tx}~kF$I-p7QzHWI=beD_@sLqG!LPnRz;A8sajB2rY=8f8 z?D|}<$(RZUNAs}t*~`=O*Js9%hw0^T1iyg^6I?=EWy<5Xmw6v6&{kCZdRC?ZBU2@x z(?;-B>-F6o@AaXwnEQ>EonDhh!OOp*`%B*Z{5Pw`Wk=IFPBShRmI>%iDh!=v*$?h< zSp7BPmML%ydbAShhW5Y_58KYAQdO1XrHGnwJVu1A%h;azsZlp*#fdgmVhGD*(H+)$ zb-x4&^XQsc?d^gc{OhJ2 zfkjP9GjntPF9QUG@q(NyV!io#v?-CNW5qpKks^9Q>wfdfgZa-kQmX(=~SjCe- zlv0zMR(Z}SjHh$&042Gp16-3OZ$Rkz)JtXtP=)4rkk!~;ZaHsvub1L2q7oB-q?N?t z6aZMs%9z<-7ljt{fHq{>SaPJ2IeZ^d#RwiY)R$M z{S>@uRyGco_0BVg?G){VzpK7}#g`9ceBTnYURD#cZrEVOU1)Nj%ukmeQh%(h=;>%L zkLSYO$Nxx^>3#YQ^s-=(NUBa)*qKI(G>ex54P^L_wwhk7^IwU&@@(m|?9+oPCEGK>zxn`oPPM~wwY%E{3+ zF%e+&eCUB0h6e9Pn83BQ;$^G`B96H`)X%xVRGhkohSBeqsuQd8)zu*9? zecq>5sbp0v@*0KwnMDINRw`A+xH)33zxuQ^?wyPIN-z$(1cBf7NAMieU00iUFNeCz z8T8ENOz%hsv;0str^jn+>$q${OVTRCFLlSzNI?7SUZth<_;@nNgE8BKIz=aHGB|4s zomBaSEy6eg2MELv2zRvtn~$0Xy_kv7cp*mE*b^xycF|h+yPK14f3G^&JIhv@$|6*WoqyZZ7&LOQp&5>wHD*Y5 zBdEk>+S%F$-RK3*d^a~Q3YUR@E-AL*=U-9E!xgnlimr--iI*YapLuQb~@E3I0M|)jxeAfM?jfrHA z`{VwN7Hp?8B0us$c$e*=1{tKQ(9gTIt%Xn;or$WJ!kCOcm7rvBdw|SUd()28%Gq|5 zLxFKbo?+~~tk|faEi3EHZfuWJUx%1AT*BGT`SExxQc+byYZ$>)c5<#vO#|r~ZCido zRiWrtVW5yDmnChScmc2C`c$bf*zmx57laJktSyoptol9Xr(4Kl5ch(YnT=a;-2h(_ z5cuhXG#pOqX5OGB`;9twMO8n<8zV;0h_ws^GAK~fsKCBW{e~A2_7oRepnCWf85T#| z0pSeC`VUvi!Xh8v{TmT8W{j1?7|Sb_j(Z#OL2e|O^2Q5J?u7(>?3I9#xuvA#dR!fT z7`YRnadl?*ohj&adhiDjY-68QZkxKz!ze!;G00j`6I>&f;NI90l977n@*95@eqjW*4$P( z->Ou@Hs*B2?YWnbA|XL~Y&PY26I+U?NB``h8HjdbytwY4MObwS?>E@6 zJq2BkbjMoubiv}6CfsOvPrCalgaz)wKcG!eWOC}()8~@(UwiQQU2S|Va~Jq@)aQG; zo<_Q^-VeGPoq-4r0{v-L+ipnma5%ENVK*R>Axojzd`Du3mK$mEqil# zXs~*#ZYJs(z77~!T4VgZ{ESjN`yQVo=yM#{*StLGk8^!bkZh{8fd+ot*m|Yd+`+F; zXUV?i7ttg+4c?FbtQ*qZUeWFcE;qwswH;5`RGwrxmzI@@Ox$jA#xpraxgElr8)sw% z^2Nz5*xNZ_$Ixi@4Ugi)B8(=cvjJUQ9OkyR#L4YwWsrlO7PEZjIYHbFmQs{6RTPMw zy&Pcf_frXVU_MAmtwNG~0=mkwY+g`Es7zMH-McA$d|x%!Cg;1@xzK>4(grCUB+?)oK? zmOVcsA0HjHz0=?J;ecO5{Hf=DFr*k|gP{u@Fuaz#Kl>u;SHWfBfJcJSHup3No@_Rz$#q@oMxbZvz!%u`Kf zV?wN4*J)E}%dE3IH()vP&HLfw=Kioh6VuLB>K>1rm6?^7o>pcn%EZ8e0QiTC{fK(m z=Xk?gL)Ga2h>%{psW3gEBcLU`25;zG2TVvz`P0tYyyyAvY(cp2 zxv(571J;bamR5;t&$eiY4tH?ampm0F7CbE-b62a=*apBd_$|iK8!=2zKcls&iI=Ap z77p3NyXl?hZ37CEkAdAHn?@jyYqBz1=r!Uuo}N;jf5#9)4hm)g7Lm8Wu(D3Yhlg1} z=;|y+a>vtI0BS6?7l&s5WfaFe#YuezvTNN3x@jXh`Eh(cM&B8L58(Gi`PTr$x4O&2 zynWn>49?LsS2%zfCq8NI6yG_GanF{eMY)Pt$m81Hj|m2>;k64ERN}ZQoER#)AAhz= zRcX0yZZAP13#mMIp#cLA^-X2^!>T!4TpYn6ymv@WNReQ$9UXQ|NW7Si%h~l!d&vN-z{JdSqqNYwHH@-jKQOXa;ktXtew54fNhgNODXzk3pbV1#D@&>3DJVh|t0Si$ok;OY_>~dCph`h0Sb| zaG2uy~|j3+C;i_-l22I(fczq@?{ZiwP$2_YMh|X0?#eb95vc zo(Y|_$Zhx4uF#^T-s*ARL;WCKp`{R7*UFK8%}>=RL+_q6n!ArvZiJt{5mwkKuZM43 z^c-bETI*)ZszHw(DWR^rUGMmAZfs1s_3}AK*kfl@6WqEMW_xh3n{mfI-oN;`&^``D zJaktc zh&LoYM>zNfz?Tl!Sm<$ughm|a=l~&k$|Wl z?DQe>UgVK*GtS{yrl;#=r?|w$JPBWW^`v;yP>5@ySu9hkHK9y3GzDUheV-KYblkT-F|Fe%oI|fhMSh z3%AeEsmt5j(jJfB!7>Nh)yt9J=z1%uy>0{0a`c3KY--em2ONL@yDYLye2=nqSfEIG zwO#HxEZILJArW|t6z0OhlNCbj3?T+X#1tl3=#v+Cq-2%q+4)$ov}9E9=NA^b=Zfcg*;B?ZQD8Z6Yc)MJEf`p zkXE#4%z$#;Q-^A+{@V#84AkEmI=&IBI#q7Qc`l- zY}G{7_dzRi#6m5`7(qc#LT!!Zd{N4Hg;dW4P5+^CS(6u42Pe<3`R%~bKSgftk-L4V z1AuLcD0n^MiVL?QPLO+SUOEpq?`F^Y$aw$cz)Cr&(r02OJ^qJAMe%%jCXhdJ<6dIU z-@MCT8UUD{_}6``8N3mI2)JOb3(c3TXP>_UAW7yyc220vs~ygN2a}YXksu3_Oh-6+ zzt{70J|}7nCU?kN%9?*&r0^Wu2cZIcr_E}A9()3&rRng-*^jqMsB_oV`{qYib;ePp z6o}bA{Yp%qpgTQwesj=1LVR~9IPz=%LK0AsPMe6f2L$>Cpj>?QVx(vNIch~?9p+XP z_9LDj_n`Fj%~k(vsB0Z#Nc9y`To-&B%9SS{A5RQEnT{rtgWbz(Jrzq$P0Nx_6uc8S zLUEif;Zrj^pNEI{%{A$Um#QW`=DE;Il@TlS$tQ!;hrjW+OD`Grig;ag>En6(IP};^ z?M4aYBV9ms6H*u7pSqYiGV$5`LlKVHBm(LcT4}#hKWi6E%ECXnA)^dM!rz{u=7#Fa z+qb7juUFe+NRfbPadKqFS$^A8AC%H^l`4VQ`M9{v5FVeKSG1KEEn2?-!w>gKE{+kCv z15ECH_(6h`i=*cG(T>6DZs!s+Zy%%XR35^WUia$WbXn8$dXta9X131OZaZTrJ#enC zhfFZhC^)eLCm(^+?r^Ev<6;@E{jFVoe8=Kfdl}`Ur@D22fmuU&oeQ+7TW!~7N^ z%XI`0z8k5Rb`zJJvH0X_lOAqb2X}XasHYEM-O&l-RykGaAr~QJtktzRTk0$y8BKQ) zyh`q$?icx7HUoV582kae|39sHdjLxRFqsgwKruHs29gf@PkrEh! zecOY7Q0po=YN$MR6ex$2ULRx8hNECV4JP+MB{u61-Rg2e^g$mnaAkR=4d>0IvNEe_ zuixWSP0t=}%IF=L!12yW*JIV9;=!Pm&7n!B7aAMfV%}R`x6pxeX3QS{me4c!Mm`&1 zj#At61BD6FXG{r;T@v;`uoB2}o9LKCM0KGRiU=k!a^!kRN$6aR+KY3vEe)rVKdt#d zIRh;gDZlUUO|y%2c}Dj&56=gdua?O4jFk`@wvK-o@ilg2nB!l{HVnZl+8d^w`gzDY zn{N3(UHsY0vCTbqtl5KT5SIKxcLXwJF)@^IPClF|Ju1~c*8G}N$Ii{cdD)QKC(E-x z_5`yd&YR-*QYgD*=dJU(8ufbL4vy<~yZG=EDko@{GN1s@om94RxHZOP@6Y$e}sxU28BXL4<7Oy4pN1kwKDtmK0OBgmcf!%*FNTa z9Y_xO`gRFSn>Z-}ru#e!lGvnkqx5}cnJ`N47P8-k`7>IwYdhIe(=-44vhV0Vm|X^% zkYdcnr$H#a_4i?0%_gk5O$^tF8*a3{M>|_(X(|2{ROaLP(l}-2V6xg`ooVAZo?^O& zKY);#fv+gavC_!YY}>jLTloFc=0?QbtLdXi(E*75I0Ii<6&Y16n=GF^BB=yv+WBr12Zq+Fc4r5mv8VflOD=c4R8P^iW*TPpr z>nspD@d+5EkwCN;nhM!0FnoMoi_%nQ?Jh-_g0s#v_r#s;Eeer+Pk1vnd=;XIsHu)q z>0Q^~78Cp$RM+>HknSVDFliok!1eo|)EZ}NM)A*yxTGw?2ELQ67rP!M@aF8EvfF6) ymftf)2C*n2sx7Q0-OLcY|Npy(@Ok$l0Di=78DaY$c0r$72FOdRNYzT1h5ZjEDz4!G literal 0 HcmV?d00001 diff --git a/testdata/snapshots/darwin/cost_estimator-light.png b/testdata/snapshots/darwin/cost_estimator-light.png new file mode 100644 index 0000000000000000000000000000000000000000..8aa5c2c0787452ee4296c8b7cf2b3dbd06d23eaf GIT binary patch literal 14880 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 literal 0 HcmV?d00001 diff --git a/testdata/snapshots/darwin/date_separator-dark.png b/testdata/snapshots/darwin/date_separator-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..907f6472a775bbb8ebeba5f89125e2dfbf8c699e GIT binary patch literal 5045 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 literal 0 HcmV?d00001 diff --git a/testdata/snapshots/darwin/date_separator-light.png b/testdata/snapshots/darwin/date_separator-light.png new file mode 100644 index 0000000000000000000000000000000000000000..ab2d287950c7a4cce8b8794ca5af717158e4655d GIT binary patch literal 4820 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 I<5~270R2XAO8@`> literal 0 HcmV?d00001 diff --git a/testdata/snapshots/darwin/feedback_form-dark.png b/testdata/snapshots/darwin/feedback_form-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..a14bcd5f704671348acc302d3a24bf3755bb5158 GIT binary patch literal 18504 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 literal 0 HcmV?d00001 diff --git a/testdata/snapshots/darwin/feedback_form-light.png b/testdata/snapshots/darwin/feedback_form-light.png new file mode 100644 index 0000000000000000000000000000000000000000..14dbb88a572fbea7f43895d623d485bf58f40dfb GIT binary patch literal 17872 zcmeHvWpE@*mtBjQMl@n(8Zk37Gme;@6SZwgxsg1^jhOHw{|UXsk(SQ#-dqfdG8_ zPt}J9jcB~V3?k@2LW1b#F0JL&-V6k+Da-nZ@$GMBz@tN9z1wNW{B<~%Ig&-a9n24z z)t5hg%+9zw?KYn?r)x`Q5jdyZO~EFuw^9*!Y6HyJHhfKuD6d2?#s0P73t-|;fc@9% z8UMS0RsBjtRjjF@zcKu&LFj|0hvzY-s2qlct4}6CATY;gDJ6 zF=5r~5es`Gt$xGFe3^PEb4_)1M?w;l#f%7Xix)e^fwRs@zcHJ({vJC7gmi)E05Joa z+;CHD$I|KQ$A|BM+|X2EeZ9+JH1GL29x8<#B~|m~84owp31+T6HFFGP6ma9+!M=OC zZkQ3eUTe1H%A8pBatKhdo=g4l(dL`i)+VIpxM?pIF4;*z)_>yM($(d{UR$}k@?q8! zd_86ZnN(iBy0KY4HZ)`m8OojQ0}{kxXt*;vO0!UfBq0|*+2&E-(!$0O$c@v)+&rmFg5LMqf>jua!36FxLPp7@cleiRo=G?;IvXTz$gso}+NTyF_tWlwIldwFdQxD3ccaC33x z5z9*zi0bM(!ol6<_F4xI@hL1f2+cOEJJ+wmbfP0~5ya;^g9 z@85EzD%3`jYxuZvNv``hiE#a7%|hFAS69VfdR-eN_AZ$QQ-A2_>WUD5s+M&c*%tDH zf_jTb;giKDt}JPIVSju@!yJx_Q<}(@Cj0GiyYAzymXw%iw{Zg&GpOAvrlPBh<3`TK z@Y$f2r`u_(3{(MrOrz6b!^=x(OH0xB@8TbaY=>L9K05U5jEv92@h$RA{;XC$XJ>`{ zzB(?9tnC6yL;H?amRUTMblk~tExa7Y4YTFm!|Umqiz}-u>d)Xjo_8rf+LGO|7@F-r zl;q?#Hrk1#lReed=QEV&@pNfl$#2q9r7Hrbt3i`35)JSi#*<^=kf4#iC z?CgBGTpvY;29IXeul?x9^{aKexK=T_B=Bn(ZTcB5EV20`jkqw;qnw?y=5_J|r%TfnAcVZUsDMg+hNMJ1 zCeJ&{QV31xz#q|^TYR%F-GR@hrpnsdtG=Ca;wE@35>iq>!o$NOBe^-{!Tf*!{?gs2 zEbT-K_&JYjWMjnXQtA-X>@6`Q1!(elt<28{2V`(1f&!?hI(fVvWJE-QXXjXY$CpP& z-ln>HkqFdYpT_1F7UJUKGFVsh^73|R=%Dw7w-Qt_DqTQmLT zzGr|avGnZ|aKOrnme<1t^oM7ExhAu?UwO69E4^rcZkaliw3HMj<&a;k>3pr( z#H3(iLr_KKXKe2B!=jQa$Sq-QC@+8ec&}+-vo$>+!_lTeETYOo)jL$4Et0K;@{dfG zSlMWC;U*?#A|}2W+1CLSQ&t^ebD)3%5)xXP3iFsNYwZx`1YdH&_TD9f+XO~Nq`(DJ z(tI0i-`V}%6jx?um^^B7e@HCW&jOW9My9HwGPANmZcU8KVqsz75)~_-#nM<`AJ-U` zn_sK5;enw;pFFrLDIuZoPW(APKTkuAaDRW#8SmJ$G7ty*mq9@vJz`HODaAoTdIn13 z#-|>4<-}tYm7nbmhmvB!oO_(2Kb;Q>HKKef7m>dk87%`Y-B z{>JbX`(*NwX#6x@vdGHP^7P~c;=R0rsI#0=#o;I{b7l@3r-f^2d^}`j5RTaY2<7<^ z??@F1UnQ2=Bn=lG5J+fjZ2aWytEW^mb1YCLx+Ur?zvcCoGHzH69jKtD zmT$6ICt*%U|60M?yBiXfPOSGT#X zEyfd0prMf!88x+%uC9@#B{BKJB97QXRVUD+WHT+T4TZSc@Xqn}cKwgwiby1OPgP08 zOD(Ld645rBJa!vWQ(**=C+MT`@Y+&RG(y2R>!JL^Q3v2QN)@C0`z?Qjf5eu)w||&G zdD86;`UxS6`1*pN`}gz^2guWrk%{)}mEP1u{Hae5?9{`@aWj9uA>%!Q2UuE`-mDiM zLYsrLfO`G`XbB7Js=9y!pn25*In#Ua@b?hDEa)WC;^N{?PRucbWmT6_?#}X*q$EW(H9alQ&P5RmuTZ?~NwaU( z5N;4=W`h%w#c^Bb1b`=o8+26E)yBuJ5@jknIy$$@ja&Vu{2(b_+p~<`g@rlSOKq^S zTmo(YAY)>EVSXNNHWg^pZEb4=eC2X7GG9o|vpHhn0W?9Nt?VTg6{svkm>Hfz^c?+$ zu~sljZ{694TMf*|Gr zqqzkICAqnB5JN&ms}YfrZt{Q1s?0P~W(jyb;Q_7)Y+NUdm~04YrU3fkIbO~ri^t}i=PNsSGz72q@N&@xLh|y9BP&8jOVQW`4tM5tz&trMG9`&hG5L7S-1rUXyF_;15Gx_nt70K9 zk|V#wP=thCF8}d`17vVI*~Wg(e4Gd<&6J3Kkh(fK-OBRSj*PZSiGc{ILrs46cuNwC*-gpo@T^p8U?&URcg=Yza3r_hFsjDQWyi4XeT9PZyPZcu${i4+HyoxwzaD6IH3HM|$dl!;s3z$jH#q_Ppx8 zoD9bwTx@FXIW`j$6YuQosN_h~stFsBn2n`O^X~YS0sB^EX=Bswbclp4D<>gqG`|zeCr>6d0`609uV6R%3oOoeRikaumxGh5o zOi#QQls>fY^8tFm_VerT$B{#q&1h&XEnF}-U%&-VoijohAh{WkbD*N|Sv;qLCW6G; zwM$B)fqs)RHde=C3iO!Bel9n*dwZGkfPjqzs?e%NhB}U^9f8Q*_gW5xOSOFybVkPN z{(drR*SxyAx`>FH`ly1kvRNzHjcH&jFuLf+*&PAkU9Enu{c%8070y)v(;{{shgxTa z68IY*{O!1ZB{{MG+T9~RxTD7EwWCB53dh~J^b?J?=xD*3wc_HYl=6t0j-p-TY%G;C z2=s&fy+a*KOXFMjAQPDvN<~FRP7erOl6XnT0bahIT(A47clAm_P)`F8E_V85!(mJk za!ciaM}2R;&Xbq%$X7!>$fLIm>4w?$c^1Ax&|-QZv4JvqOrhfMJe$M`yD$-c)Nc+n zcYvpj%qxjzEk2@s>ikflIA)ozDHf1tWvxMBY$pyS{1KZsV83Kd?JvBznEP6#BM5%i z1$wvT!1m(1^W^?VM^jD<#D^&hJ)cDILAZ>A@ z`|!FLJ3__F%S&8*lF{SijWc_)$g--4CfP|@$v4;Xy}{@E_vwIlC}w5`#Q;4t0>8HW zJ#tmA-JNT9AX88|SKWQS>^H35G2A8b;}C)Pc$VmJy5HA9o(e*l8U$4{6U8gA1e3Fo z9S<2Up|eIrcgJybeaKmrwX?A)0JXo=D~WE|1XvE_4CIVc=*~2S4!5Zs~i+LBk|xvi8*?jTYStr?lAp>b!B&W(7?Q z;w2vp3Q}U*Q0`T!Ax^_`RCH}=%g()l>cBNl5*o2@7{j) z*RN`h^td9RVLIc6OV0 zEH`LR-W`c#c{MfE*H19gaIa8Eo~f|F5YEV4U;nM>asyqke`_q&2^ginVx_$>=-j9? z5K|mRB$APk>=O5G^iOp;OLoC_XQ@}|HTwCfNK2PhL>U20ka3YucW@%xuT;t(oF0r)2ibH{u zx;&c+2McRtOw5kLUgcA4-pnmR8*&7=hKks!` zR#zKs*T0)_ug~=Oo~K2vXYT<`8FPv*Dq}TuIU}uwYJ(YlPPMAj^^gSe*Tm(Ft7(=FhOJ*HTuNl zqT|!k3Y}(P%^+)~O}f9Iy%JqVzs5N>I@(o4gf!j*1OTKsfk8s^b1FfddK0GX^mlLu z)!4-t#z3H7QC<#-+MTjt=x)5Nln#(f?KC0Znn1a=ht>`ScOJM>F*s7fQp*h`AW0h8b`&{ z6d?>ucxb5j@UR&N?nLRYL}KFL&A@(#YM6jg3~r98-QAd?!ot%d^Vcy75MCh3y96Zw z6q{A!yR<6J&$Hsnp{kxzv9(^0GGHVos)Iw)H&i$L}vAP^%tNZts}pO1tgud>7-#n=Fgdh%YVS?BsTx#ZJM>>NCG+Rowf# zpRtJ!aX7~Kt5tG%M0gY%BM-;yCEyRt4FRJf6u`Dn*K?)I z_0u5}c>d-wYn)0>@^h*0&te{>RkYe{`jxhGVA_Sd$@sJi`(~V4Ncq!w<7h6?cSWd2 zMaG)GesUm*^6NB$1IW0g9kBJ%d=!1oE`BC-|5dj5|3U6xCnCph7qLQR2 zvUu?%4_U0#*4D<24u2o(b01wm*h5~{NKIW~N=?;c_zeO`f~3!4jf6k({(XLY?a@8o zLp31Q-25!M7zr^5#8IzKr*0K5o(oHisKqOAN=j-G@*Ka5ilmW)Lqd*?Np7tcD`Rj= zAOW_v^r!6J!Zy$m5yHK0z7*8dOvXdMLVQ75AHD6Yc~b8ZW|?f)TY3$aQq$$vYdl)R z!>gkwI7$`u`;AR&G!U*~#8p&6UG%W8fBYEQ+A`TQ1FSaMW%2a?T4|8i>fFW=e7s0b zVob&KKJfFsJ)l!moc7>z0@D7UKjFbA#dz@TZjwvr5o8Y)oVwAfTckhym7==U=lF zk%KNm7onC-*`(&Pb7L+__q!=45Q9ckE1B=K%;ghPyBs6e7G1l)UP{OWRly2G6HHR$ z;B(kf_y;(s8n~x#*kst6Q*!EBs<)Hlf$5Aah>f8MQ4zIpvdP?F`3-{wi+VyL``9Lw zBIV3hHes7OgBUcg52XO91*7+$ass9cBhxNcs*#a+uobkJJQevY&??bo4;5^O_g_0L zvi-G~=xL2Nu0Y6#gV%2JaON=>lkMn;9lcIT62xz}f%~Q`JQtg%Ltoz%E%ae#WHfGg zEP=!y#b)5|W086nWG@!lm0*R9Q3ya4RCvZp9if-WLn0_FDxyF(ZfS|?OU#tB zZrDDcLun$duh4d-2CN5Z>*&;cjtW0NhoGaQL&p-w?o^lzO$jzN&%NAQ!w7kDt`A9g zo(m#698+2L#7dAhsd6XA68)*JPMXCc+Pm1s#=%Lx=V)E#ofZp%L{NF)b>dRwD~yhw zcyfquZ|B{_V_q4x`uV05P*EX!BToe?XsYSqp{5pX!XHTvM$~s`7Dt+z=6Jk7XF*?G zDn;o8yJrVv@O~^gswGlnXeB8xEnIG-$tnOKpNNWWqA6{+i4ZQF(K= zSEU+9YGo;6Ei8;E9*dO9XOz~?i_~a|7S!E^gc2l(8Oe$aTLo%;XxP;`oFY>gGwH4q zr)6!OLG0ZAJY_pPd(p`WOq5iABUUjCK*-VZ?ul;58cy@Dnbv2X2Lxl8;{CzgnmvA1QHP7_) z!+pMPFczt-A|^&w#&6#QpdC0eAmD;zIWowjx;FBs=kPLDn--ELnVIm4o~eJwWYgD< zd!=b<69<2cjWz72NyuMBl-?ZrIoQz7zjRPn)|<#_y%gshJK{=PintKR7FOKhmp|QU z>8mf!gwvA-~>FR(50Dp z^5>xbrN>7{z@&hIhW2p2D$dp`?;v~o1vUg|z7dI|YUMgfagG+tGl|E?ZZtI1S-f6Z z-i#&LwDxMekqN+?3PXE%c|~L0M&FH9*--+67Ax!V6Z0p5)tu{tmvqhT&5)e5Jil)P z2m9y2^r!T?Q;r(x0;}mG7T4AarudER`YSW@Y0t!D>WimOX#L0XpX}RjHMvBbo}2nH zPT720**Yk`4vUy+4S~o^XWyl!%-{BCOyoBw(!e2uP-?ASN0XyE9}W%=Uw50~^zmM} zl&{3sHiAzV?PM~JNIvV?X=p}IJJ*_=UMrJQ9@0687_Y;6!#anDhj~4A#>|l};V|PI zO!69R*FEk>7~E_(-zlB(l1K3v4Zl_@{vd?L(LSvWmt3rpZv0p_d$pH6{E}>?q@eJ$ zYS;MWEx42>uNCdIO3LkppUuGG@aC+h<|@*6kaYOD&X`xCG9sRPivRIJxxX_xJzZ_o z&g0^og3V1x`e}^X$Sz1Y#N$NH$a){A1;&cE^r_FTJ~^6Pg@KvO^Fbo*Yn$RIiz0OB z_eRC=IE)DcWyjXYmpRJn;^44S=de0own)G~q1Wgd)VSDJQ-k=94-lEkqzo(^n(3H< z`Z3cNg9k?8uGUHGbtQZgRVB}K=d2sVe{@I-5p4HVx|b4stIc0lRl!z;KUo-}PrK2eEpx4&)ncgJow5!(d!a#-gXrneH%z)LicXgN1wKl1R|yGoSy_Y_vsaI|B5O8n zAAw*t@zAhfZx)6pVT?#tqk*}#wYC9BS#8(0grdG4(c6o4uWuCgAc6{*w9p+suUTzU z=gr0F>F$(D?Vf26P*5M9yQU(27;&VVetvPOnhYk%105O|7(TnZkJgb9S#0O}v>2nk zy>zCF4W`=ECN?(p-p_GCP@m~3PeF;QoesMLBbYA5E{aJ9_?q2feg zs#uBAvNCO(hXX|AM`ZqYNB&nLy85F%l)8t)wwfYK@TkHD17T^SljBkkttHss3U#?o zP|~RMt5Rmc3S~rJqQtBcCvHR$pS~ZWr`s%P#k)$$%Omm6NkKxs*mxb!nA@a%=gO=U zGdoV5G-mTE5R`>awTBTz#CDt-Kg{Xg_dp2LEh_=HfXHAo{^eM|L$|1T zI~g?Ce#57&VeQ^OV8rG>a)<&$p<7l(r@%8Gv^Mh!6j&D9zqbz*O2&~MVQ+py@7y2c zYfE#vfLEl#rnD>+R!ZXvemk!qA&<3LsJ-$P+x!le?q0u;K>xKjj#ShAl4!L}9knXr zCkOd+vu4u5dwSIe6pm!vGiOW`2l+P_o6MFjIW(wVpx3UQSNbHl->Z@VrQF*RDAWZWrBs=$>{CuEll^ z0YYTxxo9tkE^0)LevmQ_19YhJoum9Rj{lHy{$15&f=uCEiza$C&dkhKsw8x?!*Lz6 z!)ZMabW6m1pRiqm`dj0zm^rhvl|Qq2)_X=UxCL~DXY6zjO$$gf{}~QDh$+0-onlHF z2rf5Hu2EZb(dxPjeLbxRyuZh-WfcUQ2}hTv79^~S8;=h-k}c>0K>@&5eeZux`hVLj z)@=pYSy<-SDB?&R;@M6YaoFSICU%t`rz0`_@Oa#tT3WEV|MlD#S$L6iojXxy9s$3YU*k*TXxt+oRHP1o^!EPmsUl(@x{mX05Cjc zp&0z@yav(10kOxUVNvL7cl*48O1C_+f0>)M=oGJ~eP*UO2Y1Y$#$BS|PR;Jnj#`mMMW{JUa~5;(^{#z5$PjHjT!WO0nTLVZ0rxk z<~beGJ7aHO9I^w;O}13*)xhMSPv8fXi;N(22&YVHW2^l-9(aL>^^%gZa-Mfbw_v1h z#wOP3F)9|8s=9iScgJ9K=G{YDll8F_59Gf*w-MT0*7bNM@ek{EyXU=5=ZBGx&%0{b zLVnSvMfYZTVp0;F&L3L#%i&Vh(Ls+GUgxW;iOg)`;LTM?)Fy$Ch2L`vbllMd-00ud`6)TBdO{+t zdfA59=B~DPekC(VFIK{3GWB0RRmTH!Y=w8n>&_z-_|s$tD_9H&6{3WLKm?c)E?pr9 z%kpP5t`iU_)O&FYnctvw`did?@Ot(PTQrgLUo47HQSoDn3zw; z@wE9GDYRzJwQ(CXAxa8vcC!7Mwr8jKcx6%I>42bD8CluAqvLld3v8X_i93o2oJ~JKM9mZ78C|YKw%M?I*-a>W_r4~$h(U9rYIim=yCUB zGq6*0bO?EANn`Z*C$i(CeWC=ZW=yRK8H@Rpz%jq3o@kcvmKn5r+lM0;Nw8SwZnU^1 zT6VT%Tz+fV&Z1a(`AcegI@RO%zerkc19o{04yh!c-v=>?ut3~i>!tgUTkk{`CINw! zg+*=yQVCUZPft&8PtRm#E1?stIZN6eqWW1DXC^HpBMT1?k1T|XXx80h zfQndDS7%-NDHAKPx4pfvy2ius2y;Qi3cFv?!T5J3Jh}iehYk4`IXM$Ry5PtC)}{BC zSo>QBZXe!`E-v+zm6guFppak!EzJgj(QH6A&3q~cWYgQ}3>X{5n_E~|Sl%xE#>?lO z{vrqKou92d-xz=>e3HTZJApBH5h{3WW;~5-Afbwe!jd<4IS5$(sMf_=^I~fwr%-YJ z-u|Om{2Tf6mS;bo``^q0QK-11Be%GCXl{=5xhTPGGK)fA=44SG+qO&&4I2D}`sB=C z4Ep)`SF=8m5V;?rhof!b0RR%dQ0Uh*~{hutz9h2ak;^TLRx%qXvtju?9jR)H+@w? zXY(g?;GgPxzVsBJ6#C(N?Xds)XLdl?_D>?2n&Dypgmx9uPLd_Rs*{1!U-y6$K4 zYa=6P3!_%q?1;w3Jb_SuK8F9p`FTXXP)9j<>Y2dr<{HayyQe>$eHLiA1DXFyCoSv# zg_MS7$Na&jlOH+xO?y+hRc>cXHl_cC7 z+uInmR_P~d_D20+*ijGrA594f(vO#)e6DA$U{DAt&)qtrnGyXyAIF0P6-Y48F(OK* zTLzE&ACt{G7iGPrD+fbYzkbCWK==(AR-2Bcq@|}**p;t{ZpZS8WS_6!UyGlrRlGG7 zip^DJ_hagN7kcZ*vPW)W;$XMfK6k2zi|lN)k3XKT0;k#yt*v>S4(^(of|r&!#0PWr z^o)Y%=Pk8Cz`#!T#7ZbfYR5J4NssPXeW|-+w*unT zmKIu*IQ97V*ypFEYvq6dW*h5r6rpKu{`bw#=yj>jg5{jnh6Xj_*rVg)@8YM_e`DJj z^OX+41>kG$2Rs4-OS_;HY23+)B}pFnEg?oEaP`DohE09v=~aNhr~UOT!(%N$ptLS~ z-~yp6+CtU@G!Yn>&)Xj|O${xbPT$?I%Slc|0<~ZIDe>{ImwtXrw3!8%*GJC#CSr6Z zhCSU#^-5*w21CKpu#6@>WI$xqFLLVHx<*u(*9%O7DlxLwN;~;b6RBI12XCe}3>^osZ5-o|!P#zTOGW7?sg}Wli756wc z&bg(nt}Zth|5ZR&09=rHCxxS>$;uk!AGpSq6UNz!;N)tx6Nt;QmqP@Fz-c}t=oX60 z0u7XUh3NkXrvDdt|98my-)+2(HHGKE5dGi5<#=4n(s*1~SC<}ZzigkFr*juwC>Q9| zv4#48e3tEZlSsV3K&~oTJA$39n$*lOBEVTZpM!ctDqupuEQfij8D|QMNF-N*w&FE8 zImu8Q6N<%{jj$FZ6=BHQ`F?CbyIV^ffDP=Sz&Y~&fi3*IGXL9<@_*|7`Z_>1&e%tH zz08kPa)(^@ZgigpLOzQy_yZZ*cC#&fT~~=rR8(ErZ=m2Il5`l3pLDor|1!=otE%ur zM@c1k-M&?^X`OP-woZG^Rz-;=s$EP4M#v>3K-B;1<^CWk8 zd)%bwNvl`&u>Rep7XmPIaWe`|HP|ek=Zn7Koc_oqF)?VO+Kq!I$ww7aNdDIt{sY>K z7(5&0fuK!4=~g1By2`AL!XrG$(9ouv%Y??s;3$GH6I0_Qgs=WS|J*bi#JnLkHe=|% zW>rK}>z;YralbLV<$ZPhRK4=;`K&pyVmw&VcO^LN(QcFTQFrI1B7J}R`^Ym~v*vQ7 z&_@(5)0-2%N?j_-^pAJbM#r7+Rl5A98IRn0MxAf86RU24Z?__~ z!ai<0`Nf5y-NqZzow5Z=>l;3Yyq)3DMBy55@5i5BcUu7(v?oU2ue&n@_TNT7@9yr; zA>o@`cGZCn`H~HBiA{iw2hdYa%Vdb0YjwkC&eFi-lZ@&@b!SDQ^3EmHL7ABk76PY;s+ZTKX z>nA5C?+(|Ze((G2^P4?2o5PHDf1BsXIGU<$*>+wEiPBeGEEX1ltgS_jjK5eXs` zk;s%e|NAc%PJ^^M3ZVeFgWI!n6rs)!$M&{z=lK>q$eN?3-@o6IrIW*=zUI1WR+ZLB zVU_90zArCCvzu*$2LGBZj%{re)$Mc^#oB%C;O`fH=zD#rU90smvsGi8?CwZzUXE|$ z5jQjAA+>a&)a7jt`P2i}O@+f^G#VY}FCQ;s9`0}%XH4>2wdI+apP9KF_WbJOw77zz z2jkO9N-R`O$Ry*?U?E=r#vyn7U#H}6ZxNQx^7P-;QErt>6u!98>b|gbALg(&uMo39ZU16Y=VyFR0_tDA84n2g?fCo*sg&%jT zIFj$6&9uK@knv}1Vibb1_@RX$$YeLZdZ{*?aO&f+@Kk=7URc3wo_f{H7YlHkjiSj* zx65}|-iqICZAVp|5^?1f%1|uQ^2wybmf!2MI`AKWKTeqfPJvM8NX8{dkhXZXjG$GV zn#TaUu;pn}pi{P3t6o)~&i3K@&h@#Sr|;Li(Q22iYSsHyhTOJTVHCyCrXpC*jx_nr zp(0u7iwnptQJFTcYtib*(63Jli?c)f z1T7>Uce(2fyIgCV-<+sSZpM;~^H}C=lFU0fJ)Lj)2a)^H=TMaK@E2Jh++dSVkLBxllfPO0mtkd~J+_0rs)m^ieT)^jDK%}ZHc zzPZktjqEve@ImKVCDRvtzTi|^tGFco63b(BasC5F|D{J%s7c~!vO|Jnt^e6{C2AB? zS?}%nFsf{km`}@z|Gi;gLF1r?^7ZYJpNEd}?fm6_^Kw02e7OYE7ZwS@=Wgq9BqHKa zzCaSjb~39ez5)B2@wY^w=gk1&XAgPbPOrj?A6Zo^3w7?1Z@H-Sr#tfvawf+yDFl8l10Vs%!#r)aj@imLdXE^twmXH6R_4M!>{A4d{K zGe0j2Hu3nMj~gfX@2aNnuM`&h%G!NLLm`HPeH`R=#z#_THhTudn$u z&%oU005e?6$oR@f0WGAWoTnAyXVerxjOt1#D_n0-Lq?YP0tq=Dt*ocj;2^tHGc|w1 zN=-P$uX)~u{ZF~NDL-)q(AsDVgeNw?Yn_|F3bsj^m1K)~`2b4;8nj7lt$j1|^CD)! zzbY~_ftkVbac3%6C6F+!;RH0y2R>^AHiWo;S1W z!#17oRo~iZ_u$mnbfNWe&)?!EGRjU`Y+!&H6u3U;R}c_Q@8x{Pavu5Rq}n%MdPemZ zm>Q4ld&;^aC2vG;Tw|BnDF0Ii#3nwnMHT$3;@NKbAHtXa6Wsj&yZ>(0|9`;o&P9N` z&srxxB9|l(+`-9XURU*uIY!ix?>IQtP|;f!y^yTLY`+YC(wVb-EhnU0YJtg5kErYm z{t+lJ1}AuermMjoONEj_4<87BEgw#7Nil;sEqm-ivJ*h4{4=wc^W~YBy*&n#@q4z9 z2ZJ6&MGkshpxP9ymLQG!f6b1M0UTF^k^^oS1#|6-9`2xG0<63XqH{~Ng~fM1p48O& z>m3fgm+$oJOK9}eO_pyYQw}d@W(0l;D@&BgjXjyEn!5B6O2-3*(NF}in7}L978A!^ zLMSeC+JhbtSGdhDbF2>V>UKGzZ}|~(KoHCYz_6$MAzA*jUpFQNib@|l9dV07C-;WT zzkk!$qDf-+nX@j6Nn4MNn5hVx)ahJ%-rL=l`$xAlno}X&Zv!{fnQjZ5u@VXFjSINCqePeK2Z_Nddp0UP%}D>h$>z~{p) z1C4U6cIPJwJ$1)$?DYKQL60)s#nmO{zZ$!{zm*@kEl(>zR2r+?#8}d;VuWF+v?>-(m|PB`^-xW|4=g6 zrQZrWa@I$^G4ZU=#p2FOWA@LmGTyT(u*XK1td_Fptn33!Zu(6AxKZ!9Sxn#Jzf5>T z9DQTSHcT&%W*TecO zD)&RYs@>`NxxcDtg6~~K`>^EdcJ&Ycaw}?aVI>RV*5;^?P)`!LCMYBbBZNaqj);PR zjy+DjI2^AA_YQDr1@H7OlW0c!?!sOq-vcJeM1Lu}>4%gO9csA%{rx0|e_#I}H2Dw}7tk$;QvV*gFyp zK_iGLbmzs=9Oh2GJ*+);hhC*puqnS8N-Oc#geuoXRW&%$9h^aB`U_d}VqZ#o7sQPF z*sATyx3d8bRipS2vc@AB@}OZ{WJWgk3zc16kL~cfwcvOp=@HS3N?}uRsW2#P-;M${ zR@ck(I~uO20p=lo>t{1-Y5MmU(~8^eW=8D9H2jb8rn}hEEH;w?A9-N0V7@my$@&hC zAWyY^g=2Y=<4JX7;XPy+3$TShWw)~;D!zA$MrHyqI6UF7*%Vv!-MCkcc-t+(d>{q* zUoQPZxjF8q(rg!pa(Zfe^DEdGZsYP?w$`rh-POM!(5~JWR4j2$v7VceM;d!uh4xUX zQo!ma+%wy~jVa37yrz4P{u4L=i%oOn))`3d@*?g=y=L-$3{vU=`RtR_Bu$8-j=3SH z^-)k8vzUSoXWfq|o^0!`q=^8Cs&`?JE|^nQLyDiYKibdgIQLgl1OvD+)uJZb)zx5z zzPljm8z=v^H-nHzJk zE#HYYT68H+(|6kl;BRI|lJEmcEV|R>BSJ}$B>km(kb7}qT^)_wjN|n#weEF*+C{b{tek@g|4V!v|A*_?8JJX!cbWx$!AmIZWX0~x+L;t?)L!mHi zm{VK3JfIqW-tG&ok9?KKm-QL9?a9WdvWm9Yg0VhcJg)mix;!q-^xnn4lb1v#HNsuU z49JLFKioT~LO}Qx3Tdv*+Q?j~!C_RccDaG6?DT+*;1MVjJg*yz`{v_>Ew zKvcxuw@*sC%CXEK`FWwIH=WB#L)jYAz#H~7Yo>huGR#8YSR{ zp3}VG4N#!LIS#-yJSVg)t!TX(M{-F-Qjy1zBxI#4ZP-T`kVoNE8 z00kV|1JC`+D~R=159zSswlJudpSZ;D@w9xFnntpC?+LC-zMNISKDmqENIyjB5d}eq zS~L%>uL%JZsPS>CO25OOl;MAXWUuX@LCHC6p@lWeI9!Q>c1TrYX)4`T!I<$4Qi+dCKU z-JL=_Pl+H4Cy$aoJsFLifvOUWtFhkext~h=;qoj0>s%-YdE~s8^Pl6FZz+XX=r1|v zj?-Z|v*urE$pydpzR%w2H;49R;GAZ9FMj>GEV8yrb9u-Nk}b0nDPw*>k;RMAetfI^ z3Kw0#;eMZz`PHnA;L~l*?N0K1@R)bfYY`So{&UJ1?BkXyx37PA6%~-*3)U_KN@?r- zQp8%X_5k{lKM^y1WbxVw?vHphX26tJh2Ng8{B(ZCQ0zx2nPjrB1m&reSD54WaLpog zN$OH0|6402z-L(}TCBj-i4!>PF{9M?Er{<)sGvXf!!AgsfaAZe>W`1kYbW3LMslkT zIT2xh)y#)l>~RR!+VKdBKq)yq zvgGj1anX~;D|fZ4W4Np_N}I0HgXGVVJPO{*Z~(`1mMB=~(+7B67|zQ{`~fFO@X!RSPfwB$+xc}BuN(_+ z-y==kA&@}*f1He7W$Bt>hOt6%&@vb9 z%+o(SD;Au~=dt`^bB^tLonYlMF438aCzll3#jHXFP)E{g*g;!{YG8ft%)&K4<2h?0S0OCQaJ(#t%cK;Q`&mwr0YVyzgbOS(&|-Q=}uXPy@oHO4zWDx6B(&=cw1rz7h_EseeatFY@BZ9y?{Q6U@E&reUpUsV^*# zyWoYBj2pj~YI$_j@->1P$Ejy8ct(QT4Z(*D>NXf7|2y3LZFNxs|2H3X&46(O##OBT z(fN{OxB#&n;LxXmuE?E95E$y=abr@vApdjlg$|4^@v_XGYzA0PZ+ dFZ^JD22fUNGGw`MRu literal 0 HcmV?d00001 diff --git a/testdata/snapshots/darwin/project_knowledge_panel-dark.png b/testdata/snapshots/darwin/project_knowledge_panel-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..eb1eca7d0c70fd82443a6c71979227dad2aa23d1 GIT binary patch literal 18329 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 literal 0 HcmV?d00001 diff --git a/testdata/snapshots/darwin/project_knowledge_panel-light.png b/testdata/snapshots/darwin/project_knowledge_panel-light.png new file mode 100644 index 0000000000000000000000000000000000000000..6efc4e71004ebec110efd74ab8e546ba0c5d60c9 GIT binary patch literal 17918 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 CtN^S4 literal 0 HcmV?d00001 diff --git a/testdata/snapshots/darwin/project_list-dark.png b/testdata/snapshots/darwin/project_list-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..5a3ec140c018e6e420ee59407d556a2c4038677e GIT binary patch literal 12889 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 literal 0 HcmV?d00001 diff --git a/testdata/snapshots/darwin/project_list-light.png b/testdata/snapshots/darwin/project_list-light.png new file mode 100644 index 0000000000000000000000000000000000000000..2fc92d8b747ee22a6270a8755ccc25d8911367a7 GIT binary patch literal 12229 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