carbon-design-system / carbon-components-svelte

Svelte implementation of the Carbon Design System
https://svelte.carbondesignsystem.com
Apache License 2.0
2.71k stars 261 forks source link

Compatibility with Svelte 5 #2012

Closed metonym closed 4 days ago

metonym commented 1 month ago

Svelte 5 achieved a stable release on October 19th, 2024.

In non-runes mode, Svelte 3/4 libraries are designed to be interoperable with Svelte 5. However, there will be required changes for carbon-components-svelte.

This is a parent issue to track issues with using this library with Svelte 5. The short term goal is to make this library compatible with Svelte 5 without introducing breaking changes that impact its current usability with Svelte 3 and 4.

metonym commented 4 days ago

These compatibility issues are addressed in v0.86.0.

This means that v0.86 is compatible with Svelte 3, 4, and 5 (non-runes mode).

If using Svelte in non-runes mode, the only change you need to make is to rename the children to nodes in the TreeView and RecursiveList components.

<TreeView
- children={[
+ nodes={[
    {
      nodes: [
        {
          id: 2,
          text: "IBM Analytics Engine",
-         children: [
+         nodes: [
            { id: 3, text: "Apache Spark" },
            { id: 4, text: "Hadoop" },
          ],
        },
      ],
    },
  ]}
/>

<RecursiveList
- children={[
+ nodes={[
    {
      nodes: [
        {
          text: "IBM Analytics Engine",
-         children: [
+         nodes: [
            { text: "Apache Spark" },
            { text: "Hadoop" },
          ],
        },
      ],
    },
  ]}
/>