Skip to content

Releases: AIDotNet/TKCode.Arc

v0.3.0-preview.5

v0.3.0-preview.5 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 24 Oct 12:48

Highlights / 亮点

New package TKCode.Arc.Workflow — WorkflowCanvas shows a graph of steps and plays its runs: pan and zoom, editing, connections with validation, undo/redo, copy/paste, node templates, a minimap, virtualization for 500+ steps.
新包 TKCode.Arc.Workflow —— WorkflowCanvas 显示步骤图并播放运行过程:平移缩放、编辑、带校验的连线、撤销重做、复制粘贴、节点模板、小地图,500+ 步骤虚拟化。

Blocks › Auth — SignIn, SignupForm, LoginSplit, LoginCentered, LoginImmersive, OtpInput, OnboardingIllustration, MultiStepForm.
Blocks › 认证 —— 以上八个登录/注册/验证码/引导区块。

Core — PanZoomTransform, WheelRouter, LayeredGraphLayout.

Fixes / 修复 — many controls no longer keep their page in memory after leaving the window; closed menu sheets no longer leave a scrim; ChatThread no longer logs debug lines; cheaper Accordion/ExpandableCard dividers; StreamMark 0.1.0. The web Gallery is now AOT-compiled.
许多控件离开窗口后不再让页面滞留内存;关闭的菜单面板不再残留遮罩;ChatThread 不再输出调试日志;Accordion/ExpandableCard 分隔线更省;StreamMark 0.1.0;网页 Gallery 改为 AOT 编译。

dotnet add package TKCode.Arc --version 0.3.0-preview.5
dotnet add package TKCode.Arc.Workflow --version 0.3.0-preview.5

Full list: CHANGELOG.md · Compare: v0.3.0-preview.4...v0.3.0-preview.5

v0.3.0-preview.4

v0.3.0-preview.4 Pre-release
Pre-release

Choose a tag to compare

@239573049 239573049 released this 23 Oct 16:25

安装 / Install

dotnet add package TKCode.Arc --version 0.3.0-preview.4

TKCode.Arc.Blocks、TKCode.Arc.AdvancedCharts、TKCode.Arc.Special、TKCode.Arc.Fonts、TKCode.Arc.Icons.Lucide 同版本发布。
The other packages (TKCode.Arc.Blocks, TKCode.Arc.AdvancedCharts, TKCode.Arc.Special, TKCode.Arc.Fonts, TKCode.Arc.Icons.Lucide) ship with the same version.

中文

新增

  • 特别组件 › AI:TKCode.Arc.Special 中的五个智能体界面组件:AgentStatus(实时状态胶囊,可展开查看最近的步骤)、ToolCall 与 ToolCallGroup(显示输入与输出的工具调用行,可批准和重试)、AgentPlan(可编辑的计划草稿,批准后成为实时清单)、AgentTimeline(在同一时间轴上回放多智能体运行)和 ContextWindow(带压缩阈值的 200 格令牌预算网格)。
  • Blocks › 页眉与页脚:SiteHeader、SiteFooter、CtaSection 和 NewsletterSignup,移植自 Arc 的免费区块。
  • Blocks › AI:模型竞技场(ModelArena,两个模型的盲测:流式回答、投票和排行)和文档提取(DocumentExtraction,文档旁的表单随模型阅读逐项填写,每个值都链接到其来源文本)。九个 AI 区块现已全部可用。
  • AnnouncementBar:DismissalDuration 让记住的关闭状态在一段时间后失效。

变更

  • Gallery:语言在顶栏有了独立的菜单,首次启动跟随系统语言并会被记住。首页新增友情链接,文档页加载时显示占位内容。

修复

  • Combobox(#9):聚焦时不再显示深色的环,只把边框变为 BorderStrong,与 Arc 一致。
  • Gallery(#8、#10):示例不再切掉行内编辑框和焦点环的左侧。
  • Gallery(#11):以 NativeAOT 发布的桌面 Gallery 能重新加载文档页和截图。

English

Added

  • Special components › AI (TKCode.Arc.Special, original designs that take Arc's Pro behaviour and motion as a
    reference): AgentStatus (live status pill that opens into the recent steps, with a built-in AgentRunSimulation),
    ToolCall and ToolCallGroup (tool call rows with input and output, inline approval and retry, a transcript
    simulation), AgentPlan (editable, reorderable draft plan that becomes a live checklist), AgentTimeline (replay of a
    multi-agent run on one time axis, with handoffs, span cards, pinning, scrubbing and a live mode) and ContextWindow
    (200-cell token budget grid with a compaction threshold, legend and send / attach / compact actions). Docs and demos in
    English, 简体中文 and 繁體中文.
  • Blocks › Headers and footers (ported from Arc's free blocks): SiteHeader (sticky header that turns solid on
    scroll, gliding current-link marker, mega menu panels whose height springs and whose content slides in from the side
    you moved toward, mobile menu sheet), SiteFooter (link columns with a validating newsletter, a minimal row, and a
    large fading arch mark), CtaSection (centered, split beside a setup card that completes itself, dismissible
    banner) and NewsletterSignup (email signup framed by a stack of past issues; subscribing drops the next issue onto
    the front).
  • Blocks: the model arena, the eighth block of the AI group (original design): a blind test of two models. One prompt goes
    to two anonymous models, both answers stream in on one shared clock in whole words whatever the real speeds, and the
    vote reveals the models. Each answer shows time to first token, speed and cost measured on the raw stream, a failed
    answer keeps its text and offers a retry of that model alone, and the standings rank the models by win rate and replay the
    change the first time they are opened after a vote. ModelArena takes Contestants, Prompts and an IArenaRunner; in a
    narrow container the answers become tabs.
  • Blocks: document extraction, the ninth and last block of the AI group (original design): turns a document into typed data
    and shows where each value came from. A quiet viewer draws the document on white paper beside an editable form; while a
    model reads, the fields fill in one by one, the text each value came from is tinted, and pointing at a field or its text lights
    both and draws a curved link. Values below a confidence threshold carry the model's reason and a "Looks right" button, a
    value that does not fit its type is null and blocks "Accept all", and the JSON and Schema tabs show the typed result and the
    schema sent to the model. DocumentExtraction takes Samples (document plus schema) and an IDocumentExtractor.
  • AnnouncementBar: DismissalDuration lets a remembered dismissal expire (the gallery's sponsor banner comes back
    after a day); null, the default, keeps the bar hidden for good, as before.

Changed

  • Gallery: the language has its own menu in the top bar instead of a row in the Appearance popover. The first start
    picks English, 简体中文 or 繁體中文 from the system's language (the browser's preferred languages on the web), and a
    language chosen in the menu is remembered for the next start (local storage on the web, a small file in the local
    application data folder on the desktop).
  • Gallery: a Friends section and page on the home page, a sponsor banner, a placeholder while a docs page loads, and a
    page that opens at the top and stays there until you scroll.

Fixed

  • Combobox (#9): a focused field drew a dark 3px ring around a dark border. Arc's focused combobox only turns its border
    to BorderStrong; its halo is transparent, so the ring is gone.
  • Gallery (#8, #10): the examples stage no longer clips a view to its bounds, which cut off the left side of the inline edit
    frame and of the focus rings that sit a few pixels outside a control.
  • Gallery (#11): a NativeAOT publish of the desktop gallery (-p:PublishAot=true) showed "This page could not be loaded"
    on every docs page, and no screenshots. The page text and the screenshots are resource-only assemblies that Avalonia
    finds by name, and NativeAOT keeps no metadata for an assembly whose types nothing uses; the desktop host now roots
    both (TrimmerRootAssembly).

Full Changelog: v0.3.0-preview.3...v0.3.0-preview.4

v0.3.0-preview.3

v0.3.0-preview.3 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 23 Oct 08:21

0.3.0-preview.2

0.3.0-preview.2 Pre-release
Pre-release

Choose a tag to compare

@239573049 239573049 released this 23 Oct 06:51

Added

  • Special components (Illustrations): five animated AI explainers in the new package TKCode.Arc.Special
    (UseArcSpecial()), each a reusable, data-driven card with three-language docs, examples and tests: AgentLoop (a
    head with a gradient trail circles gather context, take action and verify; context blocks stack up, tool calls drop
    out of the ring and resolve, checks pass or send the loop round again), MixtureOfExperts (a router scores every
    expert for each token, packets travel to the top-k experts within their capacity, a load balance bar and an active
    parameter readout; hover, focus or pin a token or an expert to inspect it), SpeculativeDecoding (a seeded draft
    model guesses ahead, the target checks the guesses in one pass, accepted tokens fly into the answer; a draft length
    slider and a race against the target alone), PromptCache (requests share a cached prefix: cache write, hits, a
    partial hit after an edit, a time to live that drains and expires, cost and first-token savings) and ReasoningTree
    (beam search over thoughts with seeded scores, pruning and the winning path, in a four-column tree or an outline on
    narrow cards). They share the public base Explainer (a story clock with play, pause, step, restart, speed,
    autoplay when seen, looping and reduced-motion behavior) and the data type ExplainerModel. Every number is computed
    from the data (costs, scores, acceptance, routing, capacity); sample data and model names are invented.

  • Blocks (Projects): five project blocks in TKCode.Arc.Blocks, each a reusable, data-driven control with
    three-language docs, examples and tests: WeekCalendar (week, work week, day, three-day and agenda views with a mini
    month, color-coded calendars and time zones; drag on the grid to create, move and resize events in 15-minute steps,
    edit them in popovers and undo the last change), AvailabilityPicker (a group meeting time picker: day cards with a
    gliding highlight, per-person free and busy marks, a booking step), ProjectBoard (a compact sprint board whose
    cards fly to the next stage, with an All work / My work filter and a sprint line), ReleaseReadiness (a checklist
    that unlocks an asynchronous release action, with progress, owners, success and failure states) and KanbanBoard
    (physical drag and drop with lift, tilt and a drop spring, keyboard and touch dragging, swimlanes by person, live
    work-in-progress limits, quick add and a details drawer). People are ProjectPersons with generated avatars; shared
    parts (FLIP for custom panels, a thin progress line, a live-region announcer) are internal.

  • Blocks (Showpieces): six self-drawn showpiece blocks in TKCode.Arc.Blocks, each a reusable, data-driven control
    with three-language docs, examples and tests: ActivityTerrain (a week of hourly activity as an orbit-and-zoom 3D
    terrain that presses flat into a heat map), RevenueGlobe (a live payments map on a dotted globe, with a day timeline
    to replay or scrub; its land comes from a 0.5° Natural Earth mask), CustomerGalaxy (2,400 accounts as a turning galaxy that regroups into
    clusters, with totals beside it), SemanticZoom (an organization map you zoom from teams to projects to one task, with
    breadcrumbs, a minimap and a guided tour), LayoutMorph (one set of cards in six views, from a grid to a 3D ring and a helix,
    each card flying to its new place on its own spring) and ExplodedView (a screen that comes apart into labelled
    layers as you scroll). Shared parts are internal: projection and plane homographies, orbit and 2D cameras, inertia,
    a self-drawn stage, zoom controls, a hover card, rolling numbers and a text cache.

  • Core: RollingDigitsFalloff.None, for rolling digits that are only clipped and never fade.

  • Core: ArcSurface.Elevation, an inherited attached property (Base / Raised). Dialogs, drawers, bottom
    sheets, popovers and menus set it to Raised, so their content knows it sits on SurfaceRaised.

  • Button: the :raised pseudo-class on a raised surface. A ghost button there fills with
    GhostRaisedHoverBackground on hover and press (the foreground mixed into SurfaceRaised, 7% dark and 5% light):
    SurfaceMuted is only a few steps off SurfaceRaised (#242424 against #1F1F1F in dark), so the hover nearly
    vanished in dialogs.

  • Gallery: the docs site serves files for AI assistants, generated from the docs pages when the image is built
    (gallery/TKCode.Arc.Gallery.Llms): https://docs.tkcode.si/llms.txt, an index of every guide, component and block;
    llms-full.txt with every page in one file; every page as Markdown at its address plus .md (such as
    /components/button.md), with the Simplified and Traditional Chinese pages under /zh-CN/ and /zh-TW/; and an
    agent skill under /skills/tkcode-arc/ (SKILL.md, a component catalog and a review checklist). The AI and MCP
    guide shows how to use them.

  • Core: motion building blocks for the AI blocks: the springs ArcSpring.Quick (0.25) and Settle (0.33); the
    ArcContentSwap modes Label, Crossfade and Lift with EnterDuration, ExitDuration, EnterDelay,
    EnterOffset and MeasuresExiting; GlidingIndicator.FadeDuration and a tween MoveTo; SpringSizeDecorator.IsHeld
    and CapsToAvailable; and the new ArcRing, a circular progress ring that can trail its value. Text helpers:
    WordDiff (a word-level diff that keeps {{ name }} markers whole), WordPacer (streaming text released in whole
    words on a 34 ms clock) and TextRangeDecoration with DecoratedTextBlock (per-line rounded backgrounds, strikethrough
    and underline on character ranges, repainted without relayout). 23 more Lucide glyphs in ArcIcons.

  • Blocks: the Model picker, the first block of the AI group (original design, not published to NuGet with the
    other Blocks yet): a pill that shows the chosen model and its effort, a menu with featured models, an effort setting
    and the other models by provider (flyouts, or pages in a narrow window), and a summary with a confirmation after
    each change. ModelPicker is built from ModelPill, ModelMenu and ModelSummary; models are AiModel and
    AiModelProvider objects.

  • Blocks: Agent memory, the second block of the AI group (original design): a card that shows what an assistant
    remembers, with a capacity meter, two switches, filters by group, a search that highlights hits, in-place editing,
    forgetting with a few seconds to undo, a pill that files a just-noted memory, and a field that adds one by hand and
    sorts it into a group. Memories are MemoryItem objects in AgentMemory.Memories (or a list you give as
    MemoriesSource); CommitAsync saves a change first and rolls it back in place when it fails, ClassifyAsync sorts
    new memories, and every word comes from AgentMemoryLabels.

  • Blocks: the AI composer, the third block of the AI group (original design): the prompt box of an AI app with a text
    area that grows from one to eight lines, "/" commands and "@" mentions that become tokens, attachments picked from the
    plus menu, pasted or dropped that upload in place (long pastes become attachments), tool toggles, a model pill with an
    effort row, a character counter with a limit, and a send button that turns into a stop button with a progress ring.
    AiComposer reports a send as an AiComposerMessage (text, tokens, ready attachments, model, effort, tools); the host
    starts the reply and sets IsGenerating. ModelPill gains a toolbar appearance and ModelMenu an inline effort row.

  • Special inputs: TokenTextEditor, a multi-line editor whose tokens (commands, mentions, variables) act as single
    units, with configurable triggers that report a query for your own list. MentionInput is now built on it with no
    change in behavior.

  • Blocks: the AI chat, the fourth block of the AI group (original design): a chat with an assistant that fills its
    container, with a conversation menu, a model button and a new chat button on top, a thread of turns and a single-row
    message box. Replies stream in as Markdown in whole words, with collapsible reasoning, tool chips that open to their
    searches or queries, numbered citations that preview their source, and actions to copy, retry, rate and switch between
    versions; editing a message or retrying a reply makes a new version of the turn. AiChat asks an IAiChatResponder
    (a stream of events) or waits for your code to fill the AiChatReply; the thread follows new text at the bottom with a
    jump button when scrolled away. AiComposer gains an inline layout (Layout = Inline), ModelPill a header
    appearance and ModelMenu a simple layout.

  • Overlays and Content: HoverCard opens on keyboard focus after OpenDelay with OpensOnFocus, closes on Escape
    without moving focus, has CardPadding and is exposed as a tooltip; Markdown gets RevealFadeDuration,
    RevealFadeInReducedMotion and IsPaced for hosts that pace the streamed text themselves.

  • Blocks: the AI answer, the fifth block of the AI group (original design): a page that answers one question like an
    article, with a reasoning row, source cards, an answer streamed in whole words with headings, lists, a table, code and
    numbered citations, and three-way lighting between a citation, the sentence it supports and its source card. Under the
    answer are actions (copy with sources, answer again with a model submenu, thumbs with a reasons list, share link, a
    version pager), the model line, related questions and a follow-up box. AiAnswer asks an IAiAnswerResponder or shows a
    finished answer; asking again replaces the answer in place and keeps the versions of the question.

  • Blocks: the AI side panel and the prompt studio, the sixth and seventh blocks of the AI group (original design).
    AiSidePanel is an assistant beside a page the person re...

Read more

v0.3.0-preview.1

v0.3.0-preview.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 21 Oct 18:08

v0.2.0-preview.1

v0.2.0-preview.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 21 Oct 10:17

Added

  • Targets: the libraries also build for net8.0, next to net10.0 and net11.0. The net8.0 build needs StreamMark
    0.1.0-alpha.25, which adds net8.0 to its packages.
  • Markdown (TKCode.Arc): an outline and find. GetOutline, ScrollToPoint, ScrollToAnchor, Find and
    GetSelectedText, with the IsDocumentReady, MatchCount, CurrentMatchIndex and HasSelection properties and the
    DocumentReady and SearchChanged events. A host can build an outline sidebar, a find bar and a copy action around the
    document.
  • RichTextEditor (TKCode.Arc): TrySetMarkdown imports Markdown and returns a RichTextImportReport that lists what
    the editor could not keep (RichTextImportIssueKind: heading depth, fence info strings, tilde fences, tables and so on).
  • DataGrid (TKCode.Arc.AdvancedCharts, in the repository, not on NuGet yet): cell renderers (badge, progress, link,
    icon text, checkbox, actions), validation rules (required, range, max length, pattern), conditional format rules, a
    CellInvoked event, a context menu event, CSV export options, and filter and layout state.
  • Blocks (TKCode.Arc.Blocks, in the repository, not on NuGet yet): the command palette dialog; search results with
    value and date filters, details and actions; sidebar collapse and resize modes; the reworked notification center.

Changed

  • AtomUI is pinned to 6.2.7; 0.1.1-preview.1 was built on 6.2.6. The AtomUI dependency moves with the Arc version.
  • DataGrid CSV export neutralizes spreadsheet formulas by default (NeutralizeCsvFormulas), and a paste larger than
    MaxPasteCells (1,000,000 cells by default) is refused.
  • On .NET 8 and 9 the DataGrid's natural text sort uses a built-in comparer; on .NET 10 and later it uses
    CompareOptions.NumericOrdering, as before.

Fixed

  • LiveLoop.Start returns early when it is already delivering frames, so a caller that starts the loop on every pointer
    move no longer re-reads the gates each time.

Full changelog: v0.1.1-preview.1...v0.2.0-preview.1

v0.1.1-preview.1

v0.1.1-preview.1 Pre-release
Pre-release

Choose a tag to compare

@239573049 239573049 released this 21 Oct 02:15

Added

  • Components: the Activity, Content, Editors, Illustrations, Media and SpecialInputs categories, plus
    ButtonGroup, SplitButton, Card, Reactions, SwipeActions and the Color, Date, DateRange and Time pickers.
  • Core: the MotionTimeline and LiveLoop motion drivers, the SharedElement primitives, ArcBlur and
    ArcViewport.
  • Blocks (TKCode.Arc.Blocks): the AppShell blocks (Sidebar, PageHeader, CommandPalette, SearchResults) and the
    Settings blocks (SettingsPage, SecuritySettings, BillingOverview, UsageBilling, CancelFlow, SettingsCommand).
  • AdvancedCharts (TKCode.Arc.AdvancedCharts): a new project that starts with the DataGrid control.
  • Gallery
    • A component's page is its docs page with live examples embedded by <Demo name="..." />; each demo is an
      .axaml file and its Code tab shows that source.
    • A Docs section in the sidebar, and Cmd/Ctrl+K to focus the search from anywhere in the window.
    • API tables generated from the XML docs, with zh-CN and zh-TW translations; shell text and docs pages in
      en-US, zh-CN and zh-TW.
    • Markdown rendering and code highlighting through StreamMark 0.1.0-alpha.23, the first release that runs in
      the browser.
    • A WebAssembly host (TKCode.Arc.Gallery.Browser) and app icons for the Desktop and Browser hosts.
  • Distribution
    • The Gallery WebAssembly image is built on GitHub and pushed to
      ghcr.io/atomuicommunity/tkcode-arc-gallery; it is served with brotli, pre-compressed files and browser caching.
    • Release builds of the Gallery desktop app: Windows and Linux (unsigned), macOS (signed and notarized).
    • NuGet packing and publishing from ci.yml with nuget.org Trusted Publishing.
  • Tools: scripts for the API docs translation pipeline and tools/branding/build_icons.py.
  • A Simplified Chinese README and a Sponsors section.

Changed

  • The per-category _Shared helpers are replaced by the shared Core primitives.
  • Gallery pages moved from per-category Pages/*.cs registrations to Docs/ pages and Demos/ examples.
  • design/ is no longer tracked in git.
  • XML <summary> text added to public properties and events on many controls; it feeds the Gallery API tables.

Fixed

  • Motion: a loop waiting out a pause could leave the renderer idle with its frame request pending; frames now keep
    coming.
  • HoldToConfirm, ConfirmMorph (hold mode), the Tabs panel and the Carousel viewport changed a reused clip without
    invalidating the clipped visual, so the hold fill did not move and a growing panel or resized carousel kept a stale
    clip.
  • Countdown: a wheel at rest is drawn as a plain glyph, which halves the frame time of a ticking face.
  • Slider and ElasticSlider threw from Math.Clamp when XAML set Minimum above the current Maximum
    (for example Minimum="360" Maximum="900").
  • Tabs no longer scrolls the page around it when the selected tab changes; the tab list reveals the selected tab
    itself.
  • Gallery Browser: native Skia is built for WebAssembly and trimming is skipped on publish.

Full Changelog: v0.1.0-preview.1...v0.1.1-preview.1

v0.1.0-preview.1

v0.1.0-preview.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 20 Oct 08:43