Skip to content

feat: windows - #11272

Draft
triniwiz wants to merge 39 commits into
mainfrom
feat/windows
Draft

triniwiz wants to merge 39 commits into
mainfrom
feat/windows

Conversation

@triniwiz

@triniwiz triniwiz commented Jun 26, 2026 •

Copy link
Copy Markdown
Member

Adds support for the new windows runtime.

Closes #254 (WinUI3)

@nx-cloud

nx-cloud Bot commented Jun 26, 2026 •

Copy link
Copy Markdown

View your CI Pipeline Execution ↗ for commit 01bbd97

Command Status Duration Result
nx test apps-automated -c=android ✅ Succeeded 3m 27s View ↗
nx run-many --target=test --configuration=ci --... ✅ Succeeded <1s View ↗

💡 Verify your cache is correct by running tasks in a sandbox. Read docs ↗


☁️ Nx Cloud last updated this comment at 2026-09-30 04:49:22 UTC

@farfromrefug

Copy link
Copy Markdown
Collaborator

@triniwiz we should never write PRs like this. This is impossible to review and the possible regressions are numerous.
You should create small PRs with small steps.
I think it would be much easier for everyone if you did this

@NathanWalker
NathanWalker marked this pull request as draft July 4, 2026 17:52
@tuga001-sme

Copy link
Copy Markdown

How to run C#(.net) from js/ts ?

@listepo

listepo commented Jul 26, 2026

Copy link
Copy Markdown

@triniwiz can you add an example for c# plugin? it's posible?

@triniwiz

Copy link
Copy Markdown
Member Author

Yes adding it into the src will allow accessing similar to swift/objc/java/kotlin

triniwiz added 5 commits July 28, 2026 09:21
Resolves the semantic conflicts the textual merge missed:
- flexbox: drop the branch's numeric gap/rowGap/columnGap in favour of
  upstream's LengthType style properties (#11310); Windows converts to DIPs.
- application.windows: raise the new 'ready' event before window content.
Adds windows to the vite platform helpers, resolver, CSS/PostCSS and theme
handling, and the HMR server/runtime paths. Dev deps discovery now records
inputs from an onLoad hook instead of esbuild's metafile, which crashes
esbuild 0.27 when a build fails, and retries without packages that can't be
resolved for the target platform.
WindowsApplication had no resetRootView override, so the HMR placeholder was
never replaced by the app root. resetRootView now swaps the window content,
and run() during an HMR boot replaces the placeholder instead of throwing.
@pkg-pr-new

pkg-pr-new Bot commented Sep 24, 2026 •

Copy link
Copy Markdown

Open in StackBlitz

npm i https://pkg.pr.new/@nativescript/core@11272
npm i https://pkg.pr.new/@nativescript/vite@11272
npm i https://pkg.pr.new/@nativescript/webpack@11272

commit: 01bbd97

… for taps

Handlers were added with the routed events read as UIElement statics but
removed with them read from the element instance, so a removal could miss
and a view shown again gained another set of handlers. Both now use the
same cached statics, which also fixes the right-tap long-press handler
that read its event from the instance when attaching.

Delegates are created once per observer and reused across load/unload,
and PointerMoved is only subscribed for touch observers, the only ones
that report moves, so a mouse moving over a tappable view no longer
calls into JS.
…ckground reset

- New NativeScript.Widgets.PanelHelper (IndexOf/Remove). From JS a
  collection's IndexOf returns only its bool (the runtime drops the out
  index), so removals and overlay placement scanned siblings with a GetAt
  per child, and the overlay loops also re-read Size every iteration.
  CustomLayoutView, Stack, Dock, Wrap, TextField and the shadow/border
  overlays use it. Appending no longer reads Size, and CustomLayoutView no
  longer stamps __ns_view (DockLayout sets its own).
- disposeNativeView frees the composition handler (its shadow and border
  overlays are siblings in the old parent) and resets the size-dependent,
  clip and tile signatures, which made a reused view skip its radius and
  border.
- Resetting a background drew nothing: the default was a Brush, or null,
  which _redrawNativeBackground returned on. The default is now null and a
  reset draws the empty Background, clearing colour, border and shadow.
- The Button probe runs on first need instead of in every initNativeView,
  and text colour only inserts the Button template resources on buttons.

demo-solid bench, core views, new/published (best of six runs): clear 0.47,
feed mount 0.67, rich append 0.46, refill 0.55.
… properties

- var() finds its matching closing parenthesis, so fallbacks such as
  rgb(...) are no longer truncated.
- The fallback is everything after the first comma, so comma lists
  (e.g. gradient stops) survive. var(--missing, a, b) now resolves to
  "a, b" as the spec requires, instead of "a".
- A custom property set to `initial` uses the var() fallback.
- Custom properties are settled before the properties that use them, and
  re-evaluated when one refers to another declared after it.
# Conflicts:
#	packages/vite/helpers/typescript-check.ts
- add stripViteFsPrefix (mirrors Vite's fsPathFromId) so `/@fs/C:/x` maps
  to `C:/x` instead of `/C:/x`; use it at every /@fs/ strip site
- rewriteFsAbsoluteToNsM / viteWorkerAssetPathToNsMUrl compare the path and
  roots in the same resolved, normalized form
- node_modules/.vite skip checks accept either path separator
- specs build real Vite /@fs/ URLs and host-resolved fixture paths
A value that throws when applied (e.g. var() resolving to an invalid
color) left the previously applied value in place. Per CSS Values 5,
a declaration invalid at computed-value time computes as unset.

https://drafts.csswg.org/css-values-5/#invalid-substitution
…n-proc server

NSRegisterWidgetsActivatableClasses took the manifest's first inProcessServer, so when a plugin's
registration ran first (e.g. canvas-media's canvasmedia.node) the Widgets classes were listed under
that plugin's DLL and every widget activation failed with "Package ... not found". Select the
server whose Path is NativeScript.Widgets.dll, as the plugin registrations do.
Conflict in deps-bundle discovery: main's lazy transitive evaluation reads
each input's format from esbuild's metafile, but a failing build with
metafile set crashes the process on esbuild 0.27, and the windows retry
loop expects failures. The retry loop now probes without metafile, then
one final metafile build runs on the known-resolvable entries.
resolveFsAnchoredSpec built /@fsc:/... on windows; add the separator like
the served-module transformer does. Normalize separators in the new specs.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Windows support (UWP)

5 participants