Skip to content

Releases: lukewire129/Nuri

v0.3.0

Choose a tag to compare

@lukewire129 lukewire129 released this 25 Aug 22:59

Nuri v0.3.0

Platform-neutral UI composition, visual styling, input handling, and Avalonia tooling have been expanded.

Highlights

  • Added renderer-owned Native Control Islands through Native<TNative>(...) for integrating retained WPF and Avalonia controls with mount, render, and cleanup lifecycles
  • Added startup YAML visual styling with named styles, theme tokens, single-style inheritance, embedded fallbacks, and external override files
  • Added Absolute layout plus Viewport pan and zoom control APIs
  • Expanded pointer input with primary, secondary, and middle buttons, modifier keys, local coordinates, wheel events, routing, and optional pointer capture
  • Added minimum and maximum size constraints across Core, WPF, and Avalonia
  • Added Avalonia application builder, window configuration extensions, Runtime Inspector diagnostics, and NuGet publishing
  • Improved WPF and Avalonia event/property mapping, including viewport materialization and native control hosting
  • Reorganized implementation references by architecture, renderer, guide, and performance responsibilities

Compatibility Notes

  • Native<TNative>(...) supports WPF FrameworkElement and Avalonia Control types only; native islands are renderer-specific leaf nodes, and Duxel does not materialize them
  • YAML visual styles are loaded only at startup. Updating external files requires restarting the application; inline C# values override styled values
  • Nuri.Avalonia.Diagnostics is a separate package and must be referenced to use Avalonia UseAttachDevTools() integration
  • The v0.3.0 NuGet workflow publishes Nuri, Nuri.WPF, Nuri.Avalonia, Nuri.WPF.Diagnostics, and Nuri.Avalonia.Diagnostics. Duxel packages are not included in this publishing run

플랫폼 중립 UI 구성, 시각 스타일, 입력 처리 및 Avalonia 개발 도구를 확장했습니다.

주요 변경 사항

  • Native<TNative>(...)를 추가하여 retained WPF/Avalonia 컨트롤을 mount, render, cleanup lifecycle과 함께 통합하는 Native Control Island 지원
  • 이름 있는 스타일, theme token, 단일 스타일 상속, embedded fallback, 외부 override 파일을 갖춘 시작 시점 YAML 시각 스타일 지원
  • Absolute 레이아웃과 Viewport pan/zoom 제어 API 추가
  • primary, secondary, middle button, modifier key, local coordinate, wheel event, routing, 선택적 pointer capture를 포함하도록 pointer 입력 확장
  • Core, WPF, Avalonia 전반에 최소/최대 크기 제약 추가
  • Avalonia application builder, Window 구성 extension, Runtime Inspector diagnostics, NuGet publishing 추가
  • Viewport materialization 및 native control hosting을 포함한 WPF/Avalonia event/property mapping 개선
  • 구현 참고 문서를 architecture, renderer, guide, performance 책임별로 재구성

호환성 안내

  • Native<TNative>(...)는 WPF의 FrameworkElement와 Avalonia의 Control 타입만 지원합니다. Native Island는 renderer별 leaf node이며 Duxel은 materialize하지 않습니다
  • YAML 시각 스타일은 시작 시에만 로드됩니다. 외부 파일 변경은 애플리케이션 재시작이 필요하며, inline C# 값이 스타일 값을 우선합니다
  • Avalonia UseAttachDevTools() 통합을 사용하려면 별도 패키지인 Nuri.Avalonia.Diagnostics를 참조해야 합니다
  • v0.3.0 NuGet workflow는 Nuri, Nuri.WPF, Nuri.Avalonia, Nuri.WPF.Diagnostics, Nuri.Avalonia.Diagnostics를 publish합니다. 이번 배포에는 Duxel 패키지가 포함되지 않습니다

v0.2.1

Choose a tag to compare

@lukewire129 lukewire129 released this 03 Aug 06:49

Nuri v0.2.1

Core DSL, WPF rendering, developer tooling, and runtime stability have been improved.

Highlights

  • Added Grid string declarations and new layout APIs such as Spacing, Grow, and TextOverflow
  • Added VirtualizedItems<T> with measured WPF virtualization
  • Improved keyed reconciliation, component identity, and effect lifecycle stability
  • Added multi-window and net9.0-windows support for WPF
  • Expanded Translate, Scale, Rotate, and Opacity animations
  • Added Nuri.WPF.Diagnostics and the Runtime Inspector
  • Improved Visual Studio Preview and added Render() format-on-save
  • Added live WPF Preview for VS Code
  • Improved keyed list rendering performance

Compatibility Notes

  • WPF Diagnostics now requires a separate reference to Nuri.WPF.Diagnostics
  • A scrollable Div can have only one direct child
  • The previous DevTools configuration API has been replaced by NuriApplication.Create<T>().UseAttachDevTools()

Core DSL, WPF 렌더링, 개발 도구 및 런타임 안정성을 개선했습니다.

주요 변경 사항

  • Grid 문자열 선언과 Spacing, Grow, TextOverflow 등 레이아웃 API 추가
  • VirtualizedItems<T> 및 측정 기반 WPF 가상화 지원
  • keyed reconciliation, component identity 및 effect lifecycle 안정화
  • WPF 다중 Window와 net9.0-windows 지원
  • Translate, Scale, Rotate, Opacity 애니메이션 확대
  • Nuri.WPF.Diagnostics와 Runtime Inspector 추가
  • Visual Studio Preview 개선 및 Render() format-on-save 지원
  • VS Code용 실시간 WPF Preview 추가
  • keyed 목록 렌더링 성능 개선

호환성 안내

  • WPF Diagnostics는 Nuri.WPF.Diagnostics 패키지를 별도로 참조해야 합니다
  • Scroll Div는 직접 자식을 하나만 허용합니다
  • 기존 DevTools 설정 API는 NuriApplication.Create<T>().UseAttachDevTools() 방식으로 변경됐습니다

v0.2.0

Choose a tag to compare

@lukewire129 lukewire129 released this 15 Jul 09:03

• ## Nuri 0.2.0

Nuri 0.2.0 expands the Core and WPF renderer with improved reconciliation, layout, virtualization, animations, diagnostics, and preview tooling.

Highlights

  • Added virtualized item rendering with keyed add, remove, move, and update operations.
  • Added WPF virtualization support and stress diagnostics for large lists.
  • Added flexible row, column, wrap, grid, and content distribution layouts.
  • Expanded Rows() and Columns() syntax, including pixel, star, weighted-star, and auto lengths.
  • Added opacity, translate, and scale transition support for WPF.
  • Improved keyed component lifecycle, effect cleanup, and native event handler cleanup.
  • Added diagnostics for unsupported WPF properties and events.
  • Added multi-window lifecycle support and automatic STA application startup.
  • Added Explorer Tree, Virtual Explorer Tree, Animated Dashboard, and Multi-Window samples.

Preview tooling

  • Added shared PreviewHost infrastructure for Visual Studio and VS Code.
  • Added live preview streaming to the VS Code extension.
  • Improved component discovery, assembly loading, build diagnostics, and preview refresh behavior.
  • Packaged the PreviewHost directly inside both Visual Studio and VS Code extensions.
  • Updated both preview extensions to version 0.2.0.
  • Fixed the Visual Studio extension installer so it no longer launches or hangs on devenv /updateconfiguration.

Fixes

  • Fixed subtree reconciliation rewriting descendant identities during partial component renders.
  • Fixed state updates that were generated correctly but could not find their native WPF controls.
  • Fixed Command Palette filtering and keyboard actions such as Up, Down, Enter, and Escape.
  • Stabilized virtualized item cleanup and keyed effect lifecycle.
  • Fixed native event handlers remaining attached after an entry was removed or replaced.

Nuri 0.2.0

Nuri 0.2.0에서는 Core와 WPF 렌더러의 재조정, 레이아웃, 가상화, 애니메이션, 진단 및 프리뷰 도구를 개선했습니다.

주요 변경 사항

  • Key 기반 추가, 제거, 이동 및 업데이트를 지원하는 가상화 아이템 렌더링을 추가했습니다.
  • 대용량 목록을 위한 WPF 가상화와 스트레스 진단 기능을 추가했습니다.
  • 유연한 Row, Column, Wrap, Grid 및 콘텐츠 분배 레이아웃을 추가했습니다.
  • Pixel, Star, 가중치 Star 및 Auto 길이를 포함하도록 Rows()와 Columns() 문법을 확장했습니다.
  • WPF에서 Opacity, Translate 및 Scale 전환 애니메이션을 지원합니다.
  • Key 기반 컴포넌트 생명주기, Effect 정리 및 네이티브 이벤트 핸들러 정리를 개선했습니다.
  • 지원되지 않는 WPF 속성과 이벤트에 대한 진단 기능을 추가했습니다.
  • 멀티 윈도우 생명주기와 자동 STA 애플리케이션 실행을 지원합니다.
  • Explorer Tree, Virtual Explorer Tree, Animated Dashboard 및 Multi-Window 샘플을 추가했습니다.

프리뷰 도구

  • Visual Studio와 VS Code에서 공유하는 PreviewHost 인프라를 추가했습니다.
  • VS Code 확장에 실시간 프리뷰 스트리밍을 추가했습니다.
  • 컴포넌트 검색, 어셈블리 로딩, 빌드 진단 및 프리뷰 새로고침 동작을 개선했습니다.
  • Visual Studio와 VS Code 확장에 PreviewHost를 직접 포함하도록 패키징했습니다.
  • 두 프리뷰 확장 버전을 모두 0.2.0으로 업데이트했습니다.
  • Visual Studio 확장 설치 과정에서 devenv /updateconfiguration이 실행되거나 멈추던 문제를 수정했습니다.

수정 사항

  • 컴포넌트 부분 렌더링 과정에서 하위 요소의 Identity가 다시 작성되던 문제를 수정했습니다.
  • 상태 업데이트는 정상 생성되지만 대응하는 WPF 네이티브 컨트롤을 찾지 못하던 문제를 수정했습니다.
  • Command Palette의 검색 필터와 Up, Down, Enter, Escape 키 동작을 수정했습니다.
  • 가상화 아이템 정리와 Key 기반 Effect 생명주기를 안정화했습니다.
  • 엔트리가 제거되거나 교체된 후에도 네이티브 이벤트 핸들러가 남아 있던 문제를 수정했습니다.