Commit graph

2263 commits

Author SHA1 Message Date
Nathan Collins
f2e5acd261
Add interfaces as a proof-of-concept experimental feature (#10181)
* compiler: Introduce ElementType::Interface

Add a new ElementType variant that will allow us to parse interface
declarations using the existing element parsing code.

The match arms implemented are my best guess based on the context of
the enclosing function and how a global is handled.

* compiler: `interface` is a valid top-level item keyword

A document may contain zero or more interfaces. Interfaces do not
support inheritance.

* compiler: An interface excludes the same content as a global

Verify that an interface cannot have:
- sub elements;
- repeated elements;
- property animations;
- states;
- transitions;
- an init callback declaration;
- an init callback implementation.

* compiler: An interface can have public properties

Warn if private properties are declared.

* compiler: `implements` is a valid keyword

It is treated as an alias for `inherits`, for now.

* compiler: Cannot "implement" non-interface components

The compiler produces an error when the `implements` keyword is used
before a global, component, or builtin type.

The parser doesn't know about this kind of relationship - the
"implements" and "inherits" keywords are just consumed. For now we
just go back and check what the expected relationship type was whilst
constructing an Element.

* compiler: interface properties are exposed

Attempt to verify that the interpreter can see and use properties
declared in an interface that a component implements.

This is an initial proof-of-concept, we will need to come back and add
checks and tests for mixing 'inherits' with 'implements'.

* Move existing interface syntax texts to syntax/interfaces

Group interface related tests in a subdirectory of their own.

* compiler: Add uses specified as valid new component syntax

Allow a new component to specify that it exposes one or more
interfaces via a given child element.

This commit introduces the syntax, we will add the implementation in a
future commit.

* compiler: uses statements expose interface properties from child

For each uses statement, iterate through the interface properties and
create two-way bindings to the property on the specified base
component.

The error cases will be populated in follow-up commit. For now,
demonstrate that the initial concept works.

* compiler: emit errors for invalid interfaces in uses statements

Detect and emit errors where:
- the type specified in a uses statement is not an interface;
- the type specified in a uses statement is unknown;
- the type specified in a uses statement cannot be used in this
  context.

* compiler: emit an error when the child specified in a uses statement does not exist

Add a test case to verify the expected error message.

* compiler: verify that external interfaces can be implemented

Add a test to verify that interfaces from imported modules can be
used.

* compiler: verify that renamed components and interfaces can be used

Add a test case to verify that:
- we can import an interface as another name and re-use it;
- we can import a component that implements a renamed interface and
  use it.

* compiler: verify that the child component implements the interface

For each property in an interface that a child element is expected to
implement, verify that the child has a property with the same name,
type and visibility.

This is easier than attempting to store and match interface names
which may change if the user renames an interface when importing.

* compiler: do not allow interface properties to be overridden

Emit a compile error if the user attempts to declare a property that
would override a property from an interface.

* compiler: do not permit interfaces to be used if they would override an inherited property

Look up the interface property on the base type before allowing a
component to implement the interface.

* compiler: emit an error if a uses statement attempts to override an existing binding

I couldn't figure out a good way to test this - everything I came up
with got caught by the prior check that the property does not already
exist.

* compiler: 'interface', 'implements' and 'uses' are experimental features

Guard these keywords behind the experimental features flag. Slint must
be compiled with the `SLINT_ENABLE_EXPERIMENTAL_FEATURES` environment
variable set to enable these keywords.

* compiler: parse_uses_identifier returns a valid SyntaxKind::UsesIdentifier

Previously we were not creating a DeclaredIdentifier if a syntax error
was encountered. This would cause a panic when
`UsesIdentifier::DeclaredIdentifier()` was called for a node with a
syntax error.

As a result, we can convert `TryFrom<&syntax_nodes::UsesIdentifier>
for UsesStatement` to `From<&syntax_nodes::UsesIdentifier> for
UsesStatement`.

* compiler: simplify `UsesSpecifier -> UsesSpecifierList -> UsesIdentifier` to `UsesSpecifier -> UsesIdentifier`

We don't need to intermediate list object because we only expect a
UsesSpecifier to contain UsesIdentifiers.

* lsp: Ensure that uses statements are not broken

Previously the space between the DeclaredIdentifier and the `from`
keyword was being removed. E.g.:

```slint
component C uses { Foo from bar } { }
```

would become:

```slint
component C uses { Foofrom bar } { }
```

This would cause a syntax error. This no longer happens.

* compiler: ':=' to declare an interface is an error

Previously this was a warning to match the global behaviour. Given
that interfaces are a new feature, make it an error to declare them
using the deprecated ':='.

* compiler: private properties in an interface are an error

It does not make sense to declare an interface with properties that
are not accessible to the user of the interface.

* Update insterface syntax tests

The syntax for declaring an expected diagnostic has changed to include
the span (#9703). Update the interface tests that were added using the
old syntax.

* compiler: check experimental features before emitting more specific interface errors

The `implements` keyword should not be supported if experimental
features are not enabled.

* compiler: Simplify UsesStatement

Only store the `syntax_nodes::UsesIdentifier` and replace the old
members with functions returning the appropriate child node of the
`UsesIdentifier`.

* compiler: clean up ElementType::Interface TODO comment

We cannot instantiate an interface element, so we should not be able
to reach one by recursing into the children of a component.
2025-12-10 10:38:13 +01:00
autofix-ci[bot]
590c9b7864 [autofix.ci] apply automated fixes
Some checks are pending
autofix.ci / format_fix (push) Waiting to run
autofix.ci / lint_typecheck (push) Waiting to run
autofix.ci / ci (push) Blocked by required conditions
2025-12-09 12:11:04 +01:00
David Faure
29e289fbdf Move the workspace to rust edition 2024
Motivation: the git pre-commit hook is confused by the mix of 2021 and
2024 in the same workspace...

The only problem this raises is the std::env::set_var("LANGUAGE", lang) in
demos/printerdemo/rust/lib.rs, pre-existing but now explicitly marked as unsafe
because it actually is. Added a TODO there.
2025-12-09 12:11:04 +01:00
dependabot[bot]
26ea250358
build(deps): bump the npm-minor-updates group with 2 updates (#10223)
Some checks are pending
autofix.ci / ci (push) Blocked by required conditions
autofix.ci / format_fix (push) Waiting to run
autofix.ci / lint_typecheck (push) Waiting to run
* build(deps): bump the npm-minor-updates group with 2 updates

Bumps the npm-minor-updates group with 2 updates: [shiki](https://github.com/shikijs/shiki/tree/HEAD/packages/shiki) and [cspell](https://github.com/streetsidesoftware/cspell/tree/HEAD/packages/cspell).


Updates `shiki` from 3.17.0 to 3.19.0
- [Release notes](https://github.com/shikijs/shiki/releases)
- [Commits](https://github.com/shikijs/shiki/commits/v3.19.0/packages/shiki)

Updates `cspell` from 9.3.2 to 9.4.0
- [Release notes](https://github.com/streetsidesoftware/cspell/releases)
- [Changelog](https://github.com/streetsidesoftware/cspell/blob/main/packages/cspell/CHANGELOG.md)
- [Commits](https://github.com/streetsidesoftware/cspell/commits/v9.4.0/packages/cspell)

---
updated-dependencies:
- dependency-name: shiki
  dependency-version: 3.19.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: npm-minor-updates
- dependency-name: cspell
  dependency-version: 9.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: npm-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>

* [autofix.ci] apply automated fixes

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-12-08 10:36:00 +02:00
dependabot[bot]
78ef8e224c
build(deps): bump the npm-patch-updates group with 13 updates (#10225) 2025-12-08 09:21:19 +02:00
David Faure
41be30ee6a Port from vec![] to Vec::new()
Some checks are pending
autofix.ci / format_fix (push) Waiting to run
autofix.ci / lint_typecheck (push) Waiting to run
autofix.ci / ci (push) Blocked by required conditions
vec![] expands to Vec::new(), but expanding macros takes a bit of
time and takes memory in rust-analyzer. Also, the code was using a mix
of vec![] and Vec::new(), so this is more consistent.
2025-12-05 16:53:45 +01:00
Olivier Goffart
84759dc02b Fix html-like comments to be on two lines 2025-12-04 21:58:09 +01:00
Olivier Goffart
88697c68bb Remove license header from .md/.mdx files
They should be in the lines, but the problem is that this causes issues
in the .mdx files.

License header doesn't really make sense for .md files anyway
2025-12-04 21:58:09 +01:00
Leon Matthes
077d3b6972
Add length to spans and diagnostics (#9703)
Some checks are pending
autofix.ci / format_fix (push) Waiting to run
autofix.ci / lint_typecheck (push) Waiting to run
autofix.ci / ci (push) Blocked by required conditions
This allows diagnostics to cover not just a single character, but the
entire relevant code region.

ChangeLog: Diagnostics now indicate the range of the error/warning, not just the starting character
2025-12-03 17:56:01 +01:00
Simon Hausmann
b76bd8e6e7 C++: Fix build against Yocto SDKs
When using `. environment-setup-*` against a Yocto SDK, we end up with PKG_CONFIG_PATH set to the target sysroot and the pkg-config binary coming out of Yocto SDK and always locating packages in the target.

That means the build of slint-compiler fails as it needs font-config from the host system, when enabling support for embedding glyphs.

In this scenario, enable the compiler/fontique to dlopen fontconfig instead.
2025-12-02 16:02:21 +01:00
Kristof Mattei
16b6101c40
LSP: add support for vscode-remote:// schemas (#10182)
I validated all usages of `"builtin` in the `lsp` crate, but
all occurrences found are actually referring standard slint components

Fixes #8089
2025-12-01 11:38:55 +01:00
dependabot[bot]
decc619b67
build(deps): bump the npm-minor-updates group across 1 directory with 5 updates (#10186)
* build(deps): bump the npm-minor-updates group across 1 directory with 5 updates

Bumps the npm-minor-updates group with 5 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [@figma/plugin-typings](https://github.com/figma/plugin-typings) | `1.119.0` | `1.121.0` |
| [shiki](https://github.com/shikijs/shiki/tree/HEAD/packages/shiki) | `3.15.0` | `3.17.0` |
| [@astrojs/starlight](https://github.com/withastro/starlight/tree/HEAD/packages/starlight) | `0.36.2` | `0.37.0` |
| [@playwright/test](https://github.com/microsoft/playwright) | `1.56.1` | `1.57.0` |
| [astro](https://github.com/withastro/astro/tree/HEAD/packages/astro) | `5.15.9` | `5.16.3` |



Updates `@figma/plugin-typings` from 1.119.0 to 1.121.0
- [Commits](https://github.com/figma/plugin-typings/compare/v1.119.0...v1.121.0)

Updates `shiki` from 3.15.0 to 3.17.0
- [Release notes](https://github.com/shikijs/shiki/releases)
- [Commits](https://github.com/shikijs/shiki/commits/v3.17.0/packages/shiki)

Updates `@astrojs/starlight` from 0.36.2 to 0.37.0
- [Release notes](https://github.com/withastro/starlight/releases)
- [Changelog](https://github.com/withastro/starlight/blob/main/packages/starlight/CHANGELOG.md)
- [Commits](https://github.com/withastro/starlight/commits/@astrojs/starlight@0.37.0/packages/starlight)

Updates `@playwright/test` from 1.56.1 to 1.57.0
- [Release notes](https://github.com/microsoft/playwright/releases)
- [Commits](https://github.com/microsoft/playwright/compare/v1.56.1...v1.57.0)

Updates `astro` from 5.15.9 to 5.16.3
- [Release notes](https://github.com/withastro/astro/releases)
- [Changelog](https://github.com/withastro/astro/blob/main/packages/astro/CHANGELOG.md)
- [Commits](https://github.com/withastro/astro/commits/astro@5.16.3/packages/astro)

---
updated-dependencies:
- dependency-name: "@figma/plugin-typings"
  dependency-version: 1.121.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: npm-minor-updates
- dependency-name: shiki
  dependency-version: 3.17.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: npm-minor-updates
- dependency-name: "@astrojs/starlight"
  dependency-version: 0.37.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: npm-minor-updates
- dependency-name: "@playwright/test"
  dependency-version: 1.57.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: npm-minor-updates
- dependency-name: astro
  dependency-version: 5.16.3
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: npm-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>

* [autofix.ci] apply automated fixes

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-12-01 11:15:20 +02:00
Olivier Goffart
af0b3822c6
BackendSelector: allow what SLINT_BACKEND accepts as backend name (#10168)
Some checks failed
autofix.ci / format_fix (push) Has been cancelled
autofix.ci / lint_typecheck (push) Has been cancelled
autofix.ci / ci (push) Has been cancelled
So that we can use the BackendSelector from the slint-viewer
2025-11-28 18:42:22 +01:00
Olivier Goffart
59de54a1e4 Translations: allow to opt out of default context
Fixes #9955
2025-11-26 11:11:07 +01:00
Joshua Goins
72f1db40cb
tools/tr-extractor: Make the paths argument required (#10156)
Some checks are pending
autofix.ci / format_fix (push) Waiting to run
autofix.ci / lint_typecheck (push) Waiting to run
autofix.ci / ci (push) Blocked by required conditions
It doesn't make sense to extract messages from "no files", and I
was confused I was even able to do this when trying it out. If we
tell clap that it's required, then it'll give a better hint to the
user when they didn't pass anything.
2025-11-25 20:18:12 +01:00
Olivier Goffart
c03864a255
compiler: port from codemap-diagnostics to annotate-snippets
codemap is no longer maintained and deprecated.
annotate-snippets is the crate now used by cargo and rustc
2025-11-24 16:18:47 +01:00
dependabot[bot]
dda305cdff
build(deps): bump the npm-patch-updates group with 5 updates (#10142)
* build(deps): bump the npm-patch-updates group with 5 updates

Bumps the npm-patch-updates group with 5 updates:

| Package | From | To |
| --- | --- | --- |
| [rimraf](https://github.com/isaacs/rimraf) | `6.1.0` | `6.1.2` |
| [@astrojs/mdx](https://github.com/withastro/astro/tree/HEAD/packages/integrations/mdx) | `4.3.11` | `4.3.12` |
| [@biomejs/biome](https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome) | `2.3.6` | `2.3.7` |
| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `7.2.2` | `7.2.4` |
| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `4.0.10` | `4.0.13` |


Updates `rimraf` from 6.1.0 to 6.1.2
- [Changelog](https://github.com/isaacs/rimraf/blob/main/CHANGELOG.md)
- [Commits](https://github.com/isaacs/rimraf/compare/v6.1.0...v6.1.2)

Updates `@astrojs/mdx` from 4.3.11 to 4.3.12
- [Release notes](https://github.com/withastro/astro/releases)
- [Changelog](https://github.com/withastro/astro/blob/main/packages/integrations/mdx/CHANGELOG.md)
- [Commits](https://github.com/withastro/astro/commits/@astrojs/mdx@4.3.12/packages/integrations/mdx)

Updates `@biomejs/biome` from 2.3.6 to 2.3.7
- [Release notes](https://github.com/biomejs/biome/releases)
- [Changelog](https://github.com/biomejs/biome/blob/main/packages/@biomejs/biome/CHANGELOG.md)
- [Commits](https://github.com/biomejs/biome/commits/@biomejs/biome@2.3.7/packages/@biomejs/biome)

Updates `vite` from 7.2.2 to 7.2.4
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v7.2.4/packages/vite)

Updates `vitest` from 4.0.10 to 4.0.13
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.13/packages/vitest)

---
updated-dependencies:
- dependency-name: rimraf
  dependency-version: 6.1.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-patch-updates
- dependency-name: "@astrojs/mdx"
  dependency-version: 4.3.12
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-patch-updates
- dependency-name: "@biomejs/biome"
  dependency-version: 2.3.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: npm-patch-updates
- dependency-name: vite
  dependency-version: 7.2.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: npm-patch-updates
- dependency-name: vitest
  dependency-version: 4.0.13
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: npm-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>

* [autofix.ci] apply automated fixes

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-11-24 09:25:20 +02:00
Simon Hausmann
16ceb115a1
slint-compiler: Add support for generating Python stubs (#10123)
The generated file offers the following two pieces of functionality:

- Convenient front-end to slint.load_file() by loading the .slint file
  (replaces use of auto-loader)
- More importantly: Type information for exported properties, callbacks,
  functions, and globals

On loading, the previously generated API is compared to what's in the
.slint file and if the .slint file was changed in an incompatible way,
an exception is thrown.

A Python test driver is added which performs three steps with each test
case:

1. Generate python stubs and checks that they can be loaded with the
python interpreter and that `uv ty check` passes.
2. Extract expected python API out of pyi sections and compares them.
3. Appends any python code from python sections and runs them (this is
combined with step 1)

Fixes #4136
2025-11-20 17:17:01 +01:00
Simon Hausmann
34f087e687 lsp: Simplify document symbol extraction for structs 2025-11-18 20:35:05 +01:00
Simon Hausmann
c3b020eed8 compiler: Move Struct's node field into the name enum
That guarantees the symmetry that if a struct is user defined, we're guaranteed to have a syntax node.
2025-11-18 20:35:05 +01:00
Simon Hausmann
0029457c71 Remove obsolete comment 2025-11-18 20:35:05 +01:00
Simon Hausmann
d2f294cf3d compiler: Remove unnecessary StructName::User checks
The node check covers this already.
2025-11-18 20:35:05 +01:00
Simon Hausmann
5cd505b9ac compiler: Change Struct::name to be an enum instead of a string
For the future Python generate, we need to know if a struct type is a
public Slint type, private perhaps, or custom. Instead of continuing
with string operations, an enum gives clarity what's what, and this also
emits removing some string matching to identify specific types.
2025-11-18 20:35:05 +01:00
Nigel Breslaw
942b737577
Introduce Vitest for api/node tests (#10107)
Some checks are pending
autofix.ci / format_fix (push) Waiting to run
autofix.ci / lint_typecheck (push) Waiting to run
autofix.ci / ci (push) Blocked by required conditions
Currently Ava is used to unit test the api/node project.
Vitest is already used elsewhere in the monorepo, integrates well with 
Vite, is fast and automatically handles tests written in Typescript. 
Replacing Ava would simplify how Typescript tests are performed.

This PR introduces Vitest to the project, sets it up to match Ava 
(isolated process for each test) and ports just the window.spec.mts 
file.

Later PR's will port the rest.
2025-11-18 17:41:34 +02:00
Olivier Goffart
d951841523
LSP: Fix position column to be in UTF-16 code unit
The language server protocol specify that the default for client is to
interpret the column position to be in UTF-16 unless negotiated
otherwise.
Editors such as vscode only support UTF-16 and we were still trying to
send position in UTF-8, which caused error when the text contained
comments or string in non-ascii languages.

Fixes #5669
2025-11-18 16:27:36 +01:00
dependabot[bot]
2f90d10f4f
build(deps): bump the npm-patch-updates group with 13 updates (#10104)
* build(deps): bump the npm-patch-updates group with 13 updates

Bumps the npm-patch-updates group with 13 updates:

| Package | From | To |
| --- | --- | --- |
| [html-react-parser](https://github.com/remarkablemark/html-react-parser) | `5.2.8` | `5.2.10` |
| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.2` | `19.2.6` |
| [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom) | `19.2.2` | `19.2.3` |
| [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) | `5.1.0` | `5.1.1` |
| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `4.0.8` | `4.0.10` |
| [@lumino/default-theme](https://github.com/jupyterlab/lumino) | `2.1.10` | `2.1.11` |
| [@lumino/widgets](https://github.com/jupyterlab/lumino) | `2.7.1` | `2.7.2` |
| [@astrojs/markdown-remark](https://github.com/withastro/astro/tree/HEAD/packages/markdown/remark) | `6.3.8` | `6.3.9` |
| [@astrojs/mdx](https://github.com/withastro/astro/tree/HEAD/packages/integrations/mdx) | `4.3.10` | `4.3.11` |
| [@biomejs/biome](https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome) | `2.3.4` | `2.3.6` |
| [astro-embed](https://github.com/delucis/astro-embed/tree/HEAD/packages/astro-embed) | `0.9.1` | `0.9.2` |
| [astro](https://github.com/withastro/astro/tree/HEAD/packages/astro) | `5.15.6` | `5.15.9` |
| [cspell](https://github.com/streetsidesoftware/cspell/tree/HEAD/packages/cspell) | `9.3.0` | `9.3.2` |


Updates `html-react-parser` from 5.2.8 to 5.2.10
- [Release notes](https://github.com/remarkablemark/html-react-parser/releases)
- [Changelog](https://github.com/remarkablemark/html-react-parser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/remarkablemark/html-react-parser/compare/v5.2.8...v5.2.10)

Updates `@types/react` from 19.2.2 to 19.2.6
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

Updates `@types/react-dom` from 19.2.2 to 19.2.3
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom)

Updates `@vitejs/plugin-react` from 5.1.0 to 5.1.1
- [Release notes](https://github.com/vitejs/vite-plugin-react/releases)
- [Changelog](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite-plugin-react/commits/plugin-react@5.1.1/packages/plugin-react)

Updates `vitest` from 4.0.8 to 4.0.10
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.10/packages/vitest)

Updates `@lumino/default-theme` from 2.1.10 to 2.1.11
- [Release notes](https://github.com/jupyterlab/lumino/releases)
- [Changelog](https://github.com/jupyterlab/lumino/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jupyterlab/lumino/compare/@lumino/default-theme@2.1.10...@lumino/default-theme@2.1.11)

Updates `@lumino/widgets` from 2.7.1 to 2.7.2
- [Release notes](https://github.com/jupyterlab/lumino/releases)
- [Changelog](https://github.com/jupyterlab/lumino/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jupyterlab/lumino/compare/@lumino/widgets@2.7.1...@lumino/widgets@2.7.2)

Updates `@astrojs/markdown-remark` from 6.3.8 to 6.3.9
- [Release notes](https://github.com/withastro/astro/releases)
- [Changelog](https://github.com/withastro/astro/blob/main/packages/markdown/remark/CHANGELOG.md)
- [Commits](https://github.com/withastro/astro/commits/@astrojs/markdown-remark@6.3.9/packages/markdown/remark)

Updates `@astrojs/mdx` from 4.3.10 to 4.3.11
- [Release notes](https://github.com/withastro/astro/releases)
- [Changelog](https://github.com/withastro/astro/blob/main/packages/integrations/mdx/CHANGELOG.md)
- [Commits](https://github.com/withastro/astro/commits/@astrojs/mdx@4.3.11/packages/integrations/mdx)

Updates `@biomejs/biome` from 2.3.4 to 2.3.6
- [Release notes](https://github.com/biomejs/biome/releases)
- [Changelog](https://github.com/biomejs/biome/blob/main/packages/@biomejs/biome/CHANGELOG.md)
- [Commits](https://github.com/biomejs/biome/commits/@biomejs/biome@2.3.6/packages/@biomejs/biome)

Updates `astro-embed` from 0.9.1 to 0.9.2
- [Release notes](https://github.com/delucis/astro-embed/releases)
- [Changelog](https://github.com/delucis/astro-embed/blob/main/packages/astro-embed/CHANGELOG.md)
- [Commits](https://github.com/delucis/astro-embed/commits/astro-embed@0.9.2/packages/astro-embed)

Updates `astro` from 5.15.6 to 5.15.9
- [Release notes](https://github.com/withastro/astro/releases)
- [Changelog](https://github.com/withastro/astro/blob/main/packages/astro/CHANGELOG.md)
- [Commits](https://github.com/withastro/astro/commits/astro@5.15.9/packages/astro)

Updates `cspell` from 9.3.0 to 9.3.2
- [Release notes](https://github.com/streetsidesoftware/cspell/releases)
- [Changelog](https://github.com/streetsidesoftware/cspell/blob/main/packages/cspell/CHANGELOG.md)
- [Commits](https://github.com/streetsidesoftware/cspell/commits/v9.3.2/packages/cspell)

---
updated-dependencies:
- dependency-name: html-react-parser
  dependency-version: 5.2.10
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: npm-patch-updates
- dependency-name: "@types/react"
  dependency-version: 19.2.6
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-patch-updates
- dependency-name: "@types/react-dom"
  dependency-version: 19.2.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-patch-updates
- dependency-name: "@vitejs/plugin-react"
  dependency-version: 5.1.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-patch-updates
- dependency-name: vitest
  dependency-version: 4.0.10
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-patch-updates
- dependency-name: "@lumino/default-theme"
  dependency-version: 2.1.11
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-patch-updates
- dependency-name: "@lumino/widgets"
  dependency-version: 2.7.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-patch-updates
- dependency-name: "@astrojs/markdown-remark"
  dependency-version: 6.3.9
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-patch-updates
- dependency-name: "@astrojs/mdx"
  dependency-version: 4.3.11
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-patch-updates
- dependency-name: "@biomejs/biome"
  dependency-version: 2.3.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: npm-patch-updates
- dependency-name: astro-embed
  dependency-version: 0.9.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: npm-patch-updates
- dependency-name: astro
  dependency-version: 5.15.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: npm-patch-updates
- dependency-name: cspell
  dependency-version: 9.3.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: npm-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>

* [autofix.ci] apply automated fixes

* Fix glob security alert

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Nigel Breslaw <nigel.breslaw@slint.dev>
2025-11-18 14:50:36 +02:00
Olivier Goffart
b478a9404f Core: replace the use of WindowAdapterInternal::as_any with trait inheritance
This is now possible since Rust 1.86
2025-11-17 10:31:08 +01:00
Tasuku Suzuki
f24ad34a03
Add support for CSS conic-gradient 'from <angle>' syntax (#9830)
Some checks are pending
autofix.ci / format_fix (push) Waiting to run
autofix.ci / lint_typecheck (push) Waiting to run
autofix.ci / ci (push) Blocked by required conditions
* Add support for CSS conic-gradient 'from <angle>' syntax

Implement rotation support for conic gradients by adding the 'from <angle>'
syntax, which rotates the entire gradient by the specified angle.

- Add `from_angle` field to ConicGradient expression
- Parse 'from <angle>' syntax in compiler (defaults to 0deg when omitted)
- Normalize angles to 0-1 range (0.0 = 0°, 1.0 = 360°)
- Add `ConicGradientBrush::rotated_stops()` method that:
  * Applies rotation by adding from_angle to each stop position
  * Adds boundary stops at 0.0 and 1.0 with interpolated colors
  * Handles stops outside [0, 1] range for boundary interpolation
- Update all renderers (Skia, FemtoVG, Qt, Software) to use rotated_stops()

The rotation is applied at render time by the rotated_stops() method,
which ensures all renderers consistently handle the gradient rotation.

* Add screenshot to rotated conic gradient docs example

Wraps the rotated conic gradient example in CodeSnippetMD to automatically
generate and display a visual screenshot of the gradient rotation effect.
This makes it easier for users to understand how the 'from' parameter rotates
the gradient.

* Make ConicGradientBrush fields private

The from_angle and stops fields don't need to be pub since:
- Rust code in the same module can access them without pub
- C++ FFI access works through cbindgen-generated struct (C++ struct members are public by default)

* Optimize ConicGradientBrush::rotated_stops to avoid allocations

- Changed return type from Vec to SharedVector
- When from_angle is zero, returns a clone of internal SharedVector
  (only increments reference count instead of allocating new Vec)
- Removed break from duplicate position separation loop to handle
  all duplicate pairs, not just the first one
- Updated documentation to match actual implementation

* Remove automatic sorting in ConicGradientBrush::new() to match CSS spec

- CSS conic-gradient does not automatically sort color stops
- Stops are processed in the order specified by the user
- Changed boundary stop interpolation logic to use max_by/min_by
  instead of relying on sorted order
- This allows CSS-style hard transitions when stops are out of order

* Move conic gradient rotation processing to construction time

Major changes:
- ConicGradientBrush::new() now applies rotation and boundary stop
  processing immediately, instead of deferring to rotated_stops()
- Removed rotated_stops() method - backends now use stops() directly
- Changed to LinearGradientBrush pattern: store angle in first dummy stop
- Added angle() method to retrieve the stored angle
- Maintained #[repr(transparent)] by removing from_angle field
- All backends updated: rotated_stops() -> stops()
  - Qt backend
  - Skia renderer
  - femtovg renderer
  - Software renderer

C++ API changes:
- Added FFI function slint_conic_gradient_new() for C++ to call Rust's new()
- Updated make_conic_gradient() to call FFI function instead of manually
  constructing SharedVector
- Ensures C++-created gradients get full rotation processing

Benefits:
- Eliminates per-frame rotation calculations
- Reduces memory usage (no from_angle field)
- Consistent with LinearGradientBrush design
- C++ and Rust APIs now produce identical results

* Change ConicGradientBrush::new() from_angle parameter to use degrees

- Changed from_angle parameter from normalized form (0.0-1.0) to degrees
- Matches LinearGradientBrush API convention (angle in degrees)
- Updated internal conversion: from_angle / 360.0 for normalization
- Stores angle as-is in degrees in the first dummy stop
- FFI function slint_conic_gradient_new() passes degrees directly

Example usage:
  ConicGradientBrush::new(90.0, stops)  // 90 degrees
  LinearGradientBrush::new(90.0, stops) // 90 degrees (consistent)

* Fix ConicGradient color transformation methods to preserve angle

Changed brighter(), darker(), transparentize(), and with_alpha() methods
to clone and modify the gradient in-place instead of calling new().

- Clones the existing gradient (preserves angle and rotation)
- Modifies only color stops (skips first stop which contains angle)
- Avoids re-running expensive rotation processing
- Maintains the original angle information

Before: ConicGradientBrush::new(0.0, ...) // Lost angle information
After:  Clone + modify colors in-place     // Preserves angle

* Use premultiplied alpha interpolation for conic gradient colors

- Changed interpolate_color() to use premultiplied RGBA interpolation
- Updated signature to match Color::mix convention (&Color, factor)
- Added documentation explaining why we can't use Color::mix() here
  (Sass algorithm vs CSS gradient color interpolation)
- Reference: https://www.w3.org/TR/css-images-4/#color-interpolation

This ensures correct visual interpolation of semi-transparent colors
in gradient boundaries, following CSS gradient specification.

* Run rustfmt on conic gradient code

* Fix ConicGradientBrush edge cases and add comprehensive tests

- Handle stops that are all below 0.0 or all above 1.0
- Add default transparent gradient when no valid stops remain
- Add 7 unit tests covering basic functionality and edge cases

* Apply clippy suggestion: use retain() instead of filter().collect()

* Fix radial-gradient parsing to allow empty gradients

Allow @radial-gradient(circle) without color stops, fixing syntax test
regression from commit 820ae2b04.

The previous logic required a comma after 'circle', but it should only
error if there's something that is NOT a comma.

* Fix conic-gradient syntax test error markers

Update error markers to match actual compiler error positions.
The 'from 2' case produces two errors:
- One at the @conic-gradient expression level
- One at the literal '2' position

Auto-updated using SLINT_SYNTAX_TEST_UPDATE=1.

* Refactor ConicGradientBrush epsilon adjustment and update tests

- Move epsilon adjustment for first stop into rotation block
  (only needed when rotation is applied)
- Update property_view test to reflect boundary stops added by
  ConicGradientBrush::new()

* Update conic-gradient screenshot reference image

Update the reference screenshot to match the current rendering output.
The small pixel differences (1% different pixels, max color diff 3.46)
are due to minor rounding differences in the conic gradient implementation.

* Fix ConicGradientBrush C++ FFI to avoid C-linkage return type error

Refactored ConicGradientBrush construction to match LinearGradientBrush
pattern, fixing macOS Clang error about returning C++ types from extern "C"
functions.

Changes:
- Rust: Split ConicGradientBrush::new into simple construction + separate
  normalize_stops() and apply_rotation() methods
- Rust: Added FFI functions slint_conic_gradient_normalize_stops() and
  slint_conic_gradient_apply_rotation() that take pointers (no return value)
- C++: Construct SharedVector directly in make_conic_gradient(), then call
  Rust functions via pointer (matching LinearGradientBrush pattern)
- Optimized both methods to only copy when changes are needed

This resolves the macOS Clang error:
"'slint_conic_gradient_new' has C-linkage specified, but returns incomplete
type 'ConicGradientBrush' which could be incompatible with C"

The new approach maintains ABI compatibility while keeping complex gradient
processing logic in Rust.

* Fix C++ header generation to avoid GradientStop redefinition error

Resolves the macOS CI compilation error where GradientStop and
ConicGradientBrush were being defined in multiple headers
(slint_color_internal.h, slint_image_internal.h, and slint_brush_internal.h).

Changes:
- cbindgen.rs: Add ConicGradientBrush and FFI functions to slint_brush_internal.h include list
- cbindgen.rs: Add GradientStop, ConicGradientBrush, and FFI functions to exclude list for other headers
- slint_color.h: Add forward declaration for ConicGradientBrush
- slint_color.h: Add friend declaration for ConicGradientBrush to allow access to Color::inner

Root cause: After adding extern "C" functions in graphics/brush.rs,
cbindgen automatically detects and tries to include them in all headers
that use graphics/brush.rs as a source. The exclude list + filter logic
ensures these types only appear in slint_brush_internal.h.

This fixes the C++ compilation errors:
- "redefinition of 'GradientStop'"
- "ConicGradientBrush does not name a type"
- "Color::inner is private within this context"

* Prepare ConicGradientBrush FFI for Rust 2024 edition

Update FFI functions to use the new `#[unsafe(no_mangle)]` attribute
syntax and safe function signatures in preparation for Rust 2024 edition.

- Add `#![allow(unsafe_code)]` to graphics module for `#[unsafe(no_mangle)]`
- Add `#[cfg(feature = "ffi")]` to conditionally compile FFI functions
- Change from raw pointers to safe references (&mut)
- Remove manual null checks and unsafe blocks
2025-11-13 16:05:16 +01:00
autofix-ci[bot]
be41b91c81 [autofix.ci] apply automated fixes 2025-11-13 14:35:56 +01:00
Tobias Hunger
4dd82bd27a live-preview: Fix context menu on SpreadSheet
It should only pop up when explicitly requested by a
(left) mouse click on the row header.
2025-11-13 14:35:56 +01:00
Tobias Hunger
f716fe2e6d live-preview: Do not uselessly import components 2025-11-13 14:35:56 +01:00
Tobias Hunger
7f4a7fbbeb live-preview: Fix handling of struct and values when setting a tables
Before we assumed that there are either values in an array or structs
with more than one field. Fix that. This is basically the inverse of #9889.
2025-11-13 14:35:56 +01:00
Tobias Hunger
9ac541e4d0 live-preview: Improve handling of structs and arrays in "Simulation Data"
Do not treat structs with one value as simple values in the "Simulation Data" tab.

Arrays of structs were considered too complex and forced into
"JSON mode". That is not necessary, so do not do that.

Closes: #9889
2025-11-13 14:35:56 +01:00
Ashley
5c6f07da64
Move named color & color literal parsing to slint common (#9981)
* Move color_parsing to common

* [autofix.ci] apply automated fixes

* Fixes

* Change how feature flags work

* Use std feature for common in compiler

* Add color-parsing feature instead

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-11-10 08:39:28 +00:00
dependabot[bot]
57b0f12e0f
build(deps): bump the npm-minor-updates group with 3 updates (#9993)
Some checks failed
autofix.ci / format_fix (push) Has been cancelled
autofix.ci / lint_typecheck (push) Has been cancelled
autofix.ci / ci (push) Has been cancelled
Bumps the npm-minor-updates group with 3 updates: [shiki](https://github.com/shikijs/shiki/tree/HEAD/packages/shiki), [cspell](https://github.com/streetsidesoftware/cspell/tree/HEAD/packages/cspell) and [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite).


Updates `shiki` from 3.14.0 to 3.15.0
- [Release notes](https://github.com/shikijs/shiki/releases)
- [Commits](https://github.com/shikijs/shiki/commits/v3.15.0/packages/shiki)

Updates `cspell` from 9.2.2 to 9.3.0
- [Release notes](https://github.com/streetsidesoftware/cspell/releases)
- [Changelog](https://github.com/streetsidesoftware/cspell/blob/main/packages/cspell/CHANGELOG.md)
- [Commits](https://github.com/streetsidesoftware/cspell/commits/v9.3.0/packages/cspell)

Updates `vite` from 7.1.12 to 7.2.2
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v7.2.2/packages/vite)

---
updated-dependencies:
- dependency-name: shiki
  dependency-version: 3.15.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: npm-minor-updates
- dependency-name: cspell
  dependency-version: 9.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: npm-minor-updates
- dependency-name: vite
  dependency-version: 7.2.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: npm-minor-updates
...


Dedupe

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-07 17:50:33 +00:00
dependabot[bot]
6e465911e5
build(deps): bump the npm-patch-updates group with 7 updates (#9994)
Some checks are pending
autofix.ci / format_fix (push) Waiting to run
autofix.ci / lint_typecheck (push) Waiting to run
autofix.ci / ci (push) Blocked by required conditions
* build(deps): bump the npm-patch-updates group with 7 updates

Bumps the npm-patch-updates group with 7 updates:

| Package | From | To |
| --- | --- | --- |
| [html-react-parser](https://github.com/remarkablemark/html-react-parser) | `5.2.7` | `5.2.8` |
| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `4.0.6` | `4.0.8` |
| [@astrojs/mdx](https://github.com/withastro/astro/tree/HEAD/packages/integrations/mdx) | `4.3.9` | `4.3.10` |
| [@biomejs/biome](https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome) | `2.3.2` | `2.3.4` |
| [astro](https://github.com/withastro/astro/tree/HEAD/packages/astro) | `5.15.3` | `5.15.4` |
| [sharp](https://github.com/lovell/sharp) | `0.34.4` | `0.34.5` |
| [starlight-links-validator](https://github.com/HiDeoo/starlight-links-validator/tree/HEAD/packages/starlight-links-validator) | `0.19.0` | `0.19.1` |


Updates `html-react-parser` from 5.2.7 to 5.2.8
- [Release notes](https://github.com/remarkablemark/html-react-parser/releases)
- [Changelog](https://github.com/remarkablemark/html-react-parser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/remarkablemark/html-react-parser/compare/v5.2.7...v5.2.8)

Updates `vitest` from 4.0.6 to 4.0.8
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.8/packages/vitest)

Updates `@astrojs/mdx` from 4.3.9 to 4.3.10
- [Release notes](https://github.com/withastro/astro/releases)
- [Changelog](https://github.com/withastro/astro/blob/main/packages/integrations/mdx/CHANGELOG.md)
- [Commits](https://github.com/withastro/astro/commits/@astrojs/mdx@4.3.10/packages/integrations/mdx)

Updates `@biomejs/biome` from 2.3.2 to 2.3.4
- [Release notes](https://github.com/biomejs/biome/releases)
- [Changelog](https://github.com/biomejs/biome/blob/main/packages/@biomejs/biome/CHANGELOG.md)
- [Commits](https://github.com/biomejs/biome/commits/@biomejs/biome@2.3.4/packages/@biomejs/biome)

Updates `astro` from 5.15.3 to 5.15.4
- [Release notes](https://github.com/withastro/astro/releases)
- [Changelog](https://github.com/withastro/astro/blob/main/packages/astro/CHANGELOG.md)
- [Commits](https://github.com/withastro/astro/commits/astro@5.15.4/packages/astro)

Updates `sharp` from 0.34.4 to 0.34.5
- [Release notes](https://github.com/lovell/sharp/releases)
- [Commits](https://github.com/lovell/sharp/compare/v0.34.4...v0.34.5)

Updates `starlight-links-validator` from 0.19.0 to 0.19.1
- [Release notes](https://github.com/HiDeoo/starlight-links-validator/releases)
- [Changelog](https://github.com/HiDeoo/starlight-links-validator/blob/main/packages/starlight-links-validator/CHANGELOG.md)
- [Commits](https://github.com/HiDeoo/starlight-links-validator/commits/starlight-links-validator@0.19.1/packages/starlight-links-validator)

---
updated-dependencies:
- dependency-name: html-react-parser
  dependency-version: 5.2.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: npm-patch-updates
- dependency-name: vitest
  dependency-version: 4.0.8
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-patch-updates
- dependency-name: "@astrojs/mdx"
  dependency-version: 4.3.10
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-patch-updates
- dependency-name: "@biomejs/biome"
  dependency-version: 2.3.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: npm-patch-updates
- dependency-name: astro
  dependency-version: 5.15.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: npm-patch-updates
- dependency-name: sharp
  dependency-version: 0.34.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: npm-patch-updates
- dependency-name: starlight-links-validator
  dependency-version: 0.19.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: npm-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>

* [autofix.ci] apply automated fixes

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-11-07 14:45:02 +00:00
Olivier Goffart
a8ef4a05e6
Saner codegen for debugging enum
The previous code would create many many lambda and if conditions which
would cause nesting to be way too high for big enums.

Also improve the C++ codegen for condition to use the ternary operator
when possible

Fixes #9954
2025-11-04 16:13:37 +01:00
Olivier Goffart
dbf9b2bb44 More optimization when the scale factor is constant
When compiled with a const scale factor, we don't want to register too
many dependencies to the scale factor.
2025-11-04 14:05:50 +01:00
dependabot[bot]
0726dce009
build(deps): bump @biomejs/biome from 2.2.6 to 2.3.2 (#9926)
* build(deps): bump @biomejs/biome from 2.2.6 to 2.3.2

Bumps [@biomejs/biome](https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome) from 2.2.6 to 2.3.2.
- [Release notes](https://github.com/biomejs/biome/releases)
- [Changelog](https://github.com/biomejs/biome/blob/main/packages/@biomejs/biome/CHANGELOG.md)
- [Commits](https://github.com/biomejs/biome/commits/@biomejs/biome@2.3.2/packages/@biomejs/biome)

---
updated-dependencies:
- dependency-name: "@biomejs/biome"
  dependency-version: 2.3.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Fix config

* Lint fixes

* Fix

* [autofix.ci] apply automated fixes

* Fix

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Nigel Breslaw <nigel.breslaw@slint.dev>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-11-03 10:47:12 +02:00
dependabot[bot]
b11bf7b175
build(deps-dev): bump rimraf from 6.0.1 to 6.1.0 (#9928)
Bumps [rimraf](https://github.com/isaacs/rimraf) from 6.0.1 to 6.1.0.
- [Changelog](https://github.com/isaacs/rimraf/blob/main/CHANGELOG.md)
- [Commits](https://github.com/isaacs/rimraf/compare/v6.0.1...v6.1.0)

---
updated-dependencies:
- dependency-name: rimraf
  dependency-version: 6.1.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-03 08:50:30 +02:00
dependabot[bot]
dbd740b757
build(deps-dev): bump vitest from 4.0.3 to 4.0.6 in the vite group (#9924)
Bumps the vite group with 1 update: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest).


Updates `vitest` from 4.0.3 to 4.0.6
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.6/packages/vitest)

---
updated-dependencies:
- dependency-name: vitest
  dependency-version: 4.0.6
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vite
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-03 08:49:53 +02:00
autofix-ci[bot]
0e13cd4cb3 [autofix.ci] apply automated fixes
Some checks are pending
CI / node_test (macos-14) (push) Blocked by required conditions
CI / node_test (ubuntu-22.04) (push) Blocked by required conditions
CI / node_test (windows-2022) (push) Blocked by required conditions
CI / python_test (macos-14) (push) Blocked by required conditions
CI / python_test (ubuntu-22.04) (push) Blocked by required conditions
CI / python_test (windows-2022) (push) Blocked by required conditions
CI / cpp_test_driver (macos-14) (push) Blocked by required conditions
CI / cpp_test_driver (ubuntu-22.04) (push) Blocked by required conditions
CI / cpp_test_driver (windows-2022) (push) Blocked by required conditions
CI / cpp_cmake (macos-14, 1.88) (push) Blocked by required conditions
CI / cpp_cmake (ubuntu-22.04, stable) (push) Blocked by required conditions
CI / cpp_cmake (windows-2022, nightly) (push) Blocked by required conditions
CI / cpp_package_test (push) Blocked by required conditions
CI / vsce_build_test (push) Blocked by required conditions
CI / mcu (pico-st7789, thumbv6m-none-eabi) (push) Blocked by required conditions
CI / mcu (pico2-st7789, thumbv8m.main-none-eabihf) (push) Blocked by required conditions
CI / mcu (stm32h735g, thumbv7em-none-eabihf) (push) Blocked by required conditions
CI / mcu-embassy (push) Blocked by required conditions
CI / ffi_32bit_build (push) Blocked by required conditions
CI / docs (push) Blocked by required conditions
CI / slintpad (push) Blocked by required conditions
CI / wasm_demo (push) Blocked by required conditions
CI / tree-sitter (push) Blocked by required conditions
CI / updater_test (0.3.0) (push) Blocked by required conditions
CI / fmt_test (push) Blocked by required conditions
CI / esp-idf-quick (push) Blocked by required conditions
CI / android (push) Blocked by required conditions
CI / miri (push) Blocked by required conditions
CI / test-figma-inspector (push) Blocked by required conditions
CI / material-components (push) Blocked by required conditions
2025-10-30 10:13:32 +08:00
Elaina
d4a1850182 chore: remove uvx_slint_compiler job from nightly tests; manually version (compat with sed) 2025-10-30 10:13:32 +08:00
autofix-ci[bot]
de13ccc9fb [autofix.ci] apply automated fixes 2025-10-30 10:13:32 +08:00
Elaina
4c4689d692 chore: update workflow to use specific Ubuntu versions and add project URLs in pyproject.toml 2025-10-30 10:13:32 +08:00
GreyElaina
b15f6e85e8 refactor: restructure slint-compiler workflow 2025-10-30 10:13:32 +08:00
dependabot[bot]
75eb779e9f
build(deps): bump the vite group with 3 updates (#9851)
* build(deps): bump the vite group with 3 updates

Bumps the vite group with 3 updates: [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react), [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) and [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite).


Updates `@vitejs/plugin-react` from 5.0.4 to 5.1.0
- [Release notes](https://github.com/vitejs/vite-plugin-react/releases)
- [Changelog](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite-plugin-react/commits/plugin-react@5.1.0/packages/plugin-react)

Updates `vitest` from 3.2.4 to 4.0.3
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.3/packages/vitest)

Updates `vite` from 7.1.11 to 7.1.12
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v7.1.12/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v7.1.12/packages/vite)

---
updated-dependencies:
- dependency-name: "@vitejs/plugin-react"
  dependency-version: 5.1.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: vite
- dependency-name: vitest
  dependency-version: 4.0.3
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: vite
- dependency-name: vite
  dependency-version: 7.1.12
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: vite
...

Signed-off-by: dependabot[bot] <support@github.com>

* [autofix.ci] apply automated fixes

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-10-27 14:42:09 +02:00
dependabot[bot]
af9c3b3efc
build(deps-dev): bump shiki from 3.13.0 to 3.14.0 (#9853)
Some checks are pending
CI / build_and_test (--exclude ffmpeg --exclude gstreamer-player, macos-14, stable) (push) Blocked by required conditions
CI / build_and_test (--exclude ffmpeg --exclude gstreamer-player, windows-2022, 1.88) (push) Blocked by required conditions
CI / build_and_test (--exclude ffmpeg --exclude gstreamer-player, windows-2022, stable) (push) Blocked by required conditions
CI / build_and_test (ubuntu-22.04, 1.88) (push) Blocked by required conditions
CI / build_and_test (ubuntu-22.04, nightly) (push) Blocked by required conditions
CI / node_test (macos-14) (push) Blocked by required conditions
CI / cpp_cmake (ubuntu-22.04, stable) (push) Blocked by required conditions
CI / cpp_package_test (push) Blocked by required conditions
CI / ffi_32bit_build (push) Blocked by required conditions
CI / vsce_build_test (push) Blocked by required conditions
CI / mcu (pico-st7789, thumbv6m-none-eabi) (push) Blocked by required conditions
CI / mcu (pico2-st7789, thumbv8m.main-none-eabihf) (push) Blocked by required conditions
CI / mcu (stm32h735g, thumbv7em-none-eabihf) (push) Blocked by required conditions
CI / mcu-embassy (push) Blocked by required conditions
CI / fmt_test (push) Blocked by required conditions
CI / esp-idf-quick (push) Blocked by required conditions
CI / android (push) Blocked by required conditions
CI / miri (push) Blocked by required conditions
CI / material-components (push) Blocked by required conditions
CI / build_and_test (--exclude ffmpeg --exclude gstreamer-player, windows-2022, beta) (push) Blocked by required conditions
CI / node_test (ubuntu-22.04) (push) Blocked by required conditions
CI / python_test (macos-14) (push) Blocked by required conditions
CI / python_test (ubuntu-22.04) (push) Blocked by required conditions
CI / python_test (windows-2022) (push) Blocked by required conditions
CI / cpp_test_driver (macos-14) (push) Blocked by required conditions
CI / cpp_test_driver (ubuntu-22.04) (push) Blocked by required conditions
CI / cpp_test_driver (windows-2022) (push) Blocked by required conditions
CI / cpp_cmake (macos-14, 1.88) (push) Blocked by required conditions
CI / cpp_cmake (windows-2022, nightly) (push) Blocked by required conditions
CI / test-figma-inspector (push) Blocked by required conditions
* build(deps-dev): bump shiki from 3.13.0 to 3.14.0

Bumps [shiki](https://github.com/shikijs/shiki/tree/HEAD/packages/shiki) from 3.13.0 to 3.14.0.
- [Release notes](https://github.com/shikijs/shiki/releases)
- [Commits](https://github.com/shikijs/shiki/commits/v3.14.0/packages/shiki)

---
updated-dependencies:
- dependency-name: shiki
  dependency-version: 3.14.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* [autofix.ci] apply automated fixes

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-10-27 09:31:57 +02:00
dependabot[bot]
d5f1e60629
build(deps-dev): bump @figma/plugin-typings from 1.118.0 to 1.119.0 (#9850)
Bumps [@figma/plugin-typings](https://github.com/figma/plugin-typings) from 1.118.0 to 1.119.0.
- [Commits](https://github.com/figma/plugin-typings/compare/v1.118.0...v1.119.0)

---
updated-dependencies:
- dependency-name: "@figma/plugin-typings"
  dependency-version: 1.119.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-27 09:31:24 +02:00
Olivier Goffart
b68d1ae6c4 LSP: update for support for two ways binding to struct fields
Some checks failed
CI / build_and_test (--exclude ffmpeg --exclude gstreamer-player, windows-2022, 1.88) (push) Has been cancelled
CI / build_and_test (--exclude ffmpeg --exclude gstreamer-player, windows-2022, beta) (push) Has been cancelled
CI / build_and_test (--exclude ffmpeg --exclude gstreamer-player, windows-2022, stable) (push) Has been cancelled
CI / build_and_test (ubuntu-22.04, nightly) (push) Has been cancelled
CI / node_test (macos-14) (push) Has been cancelled
CI / node_test (ubuntu-22.04) (push) Has been cancelled
CI / cpp_test_driver (ubuntu-22.04) (push) Has been cancelled
CI / cpp_test_driver (windows-2022) (push) Has been cancelled
CI / cpp_cmake (macos-14, 1.88) (push) Has been cancelled
CI / cpp_cmake (ubuntu-22.04, stable) (push) Has been cancelled
CI / cpp_cmake (windows-2022, nightly) (push) Has been cancelled
CI / cpp_package_test (push) Has been cancelled
CI / build_and_test (ubuntu-22.04, 1.88) (push) Has been cancelled
CI / python_test (macos-14) (push) Has been cancelled
CI / python_test (ubuntu-22.04) (push) Has been cancelled
CI / python_test (windows-2022) (push) Has been cancelled
CI / cpp_test_driver (macos-14) (push) Has been cancelled
CI / vsce_build_test (push) Has been cancelled
CI / mcu-embassy (push) Has been cancelled
CI / ffi_32bit_build (push) Has been cancelled
CI / mcu (pico-st7789, thumbv6m-none-eabi) (push) Has been cancelled
CI / mcu (pico2-st7789, thumbv8m.main-none-eabihf) (push) Has been cancelled
CI / mcu (stm32h735g, thumbv7em-none-eabihf) (push) Has been cancelled
CI / fmt_test (push) Has been cancelled
CI / esp-idf-quick (push) Has been cancelled
CI / android (push) Has been cancelled
CI / test-figma-inspector (push) Has been cancelled
CI / updater_test (0.3.0) (push) Has been cancelled
CI / miri (push) Has been cancelled
CI / material-components (push) Has been cancelled
2025-10-24 17:33:13 +02:00