fix(types): loosen icon prop type to any (#2095)

Fixes https://github.com/carbon-design-system/carbon-icons-svelte/issues/207

`carbon-icons-svelte@13` and `carbon-pictograms-svelte@13` now  
only support TypeScript for Svelte 4/5.

The new `Component` type is incompatible with the `icon` prop in  
`carbon-components-svelte`, causing a type error with Svelte 5, as  
`typeof SvelteComponent` doesn't match the new `Component` type.

Since `Component` isn't available in Svelte 3/4, this PR changes  
the `icon` prop type to `any` for compatibility across Svelte 3, 4, and 5.
This commit is contained in:
Eric Liu 2025-02-02 19:49:53 -08:00 committed by GitHub
commit 6bf72d4602
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
44 changed files with 273 additions and 251 deletions

View file

@ -29,7 +29,7 @@
* Specify the icon to render
* Alternatively, use the named slot "icon" (e.g., `<Icon slot="icon" size="{20}" />`)
*
* @type {typeof import("svelte").SvelteComponent<any>}
* @type {any}
*/
export let icon = undefined;

View file

@ -8,7 +8,7 @@
/**
* Specify the primary button icon
* @type {typeof import("svelte").SvelteComponent<any>}
* @type {any}
*/
export let primaryButtonIcon = undefined;

View file

@ -14,7 +14,7 @@
/**
* Specify the icon to render
* Icon is rendered to the left of the label text
* @type {typeof import("svelte").SvelteComponent<any>}
* @type {any}
*/
export let icon = undefined;

View file

@ -17,7 +17,7 @@
/**
* Specify the icon to render
* `inline` must be `false`
* @type {typeof import("svelte").SvelteComponent<any>}
* @type {any}
*/
export let icon = undefined;

View file

@ -57,7 +57,7 @@
/**
* Specify the primary button icon
* @type {typeof import("svelte").SvelteComponent<any>}
* @type {any}
*/
export let primaryButtonIcon = undefined;

View file

@ -7,7 +7,7 @@
/**
* Specify the icon to render
* @type {typeof import("svelte").SvelteComponent<any>}
* @type {any}
*/
export let icon = Close;

View file

@ -33,7 +33,7 @@
/**
* Specify the icon to render.
* Defaults to `<OverflowMenuVertical />`
* @type {typeof import("svelte").SvelteComponent<any>}
* @type {any}
*/
export let icon = OverflowMenuVertical;

View file

@ -56,7 +56,7 @@
/**
* Specify the icon to render.
* Defaults to `<Search />`
* @type {typeof import("svelte").SvelteComponent<any>}
* @type {any}
*/
export let icon = IconSearch;

View file

@ -27,7 +27,7 @@
/**
* Specify the icon to render
* @type {typeof import("svelte").SvelteComponent<any>}
* @type {any}
*/
export let icon = undefined;

View file

@ -31,7 +31,7 @@
/**
* Specify the icon to render for the tooltip button.
* Default to `<Information />`
* @type {typeof import("svelte").SvelteComponent<any>}
* @type {any}
*/
export let icon = Information;

View file

@ -7,7 +7,7 @@
/**
* Specify the icon to render
* @type {typeof import("svelte").SvelteComponent<any>}
* @type {any}
*/
export let icon = undefined;

View file

@ -29,7 +29,7 @@
<script>
/**
* @typedef {string | number} TreeNodeId
* @typedef {{ id: TreeNodeId; text: any; icon?: typeof import("svelte").SvelteComponent<any>; disabled?: boolean; nodes?: TreeNode[]; }} TreeNode
* @typedef {{ id: TreeNodeId; text: any; icon?: any; disabled?: boolean; nodes?: TreeNode[]; }} TreeNode
* @slot {{ node: { id: TreeNodeId; text: string; expanded: boolean, leaf: boolean; disabled: boolean; selected: boolean; } }}
* @event {TreeNode & { expanded: boolean; leaf: boolean; }} select
* @event {TreeNode & { expanded: boolean; leaf: boolean; }} toggle

View file

@ -46,7 +46,7 @@
/**
* Specify the icon to render
* @type {typeof import("svelte").SvelteComponent<any>}
* @type {any}
*/
export let icon = undefined;

View file

@ -16,7 +16,7 @@
/**
* Specify the icon to render
* @type {typeof import("svelte").SvelteComponent<any>}
* @type {any}
*/
export let icon = undefined;

View file

@ -11,14 +11,14 @@
/**
* Specify the icon to render for the closed state.
* Defaults to `<Menu size={20} />`
* @type {typeof import("svelte").SvelteComponent<any>}
* @type {any}
*/
export let iconMenu = Menu;
/**
* Specify the icon to render for the opened state.
* Defaults to `<Close size={20} />`
* @type {typeof import("svelte").SvelteComponent<any>}
* @type {any}
*/
export let iconClose = Close;

View file

@ -51,14 +51,14 @@
/**
* Specify the icon to render for the closed state.
* Defaults to `<Menu size={20} />`
* @type {typeof import("svelte").SvelteComponent<any>}
* @type {any}
*/
export let iconMenu = Menu;
/**
* Specify the icon to render for the opened state.
* Defaults to `<Close size={20} />`
* @type {typeof import("svelte").SvelteComponent<any>}
* @type {any}
*/
export let iconClose = Close;

View file

@ -10,14 +10,14 @@
/**
* Specify the icon to render when the action panel is closed.
* Defaults to `<Switcher size={20} />`
* @type {typeof import("svelte").SvelteComponent<any>}
* @type {any}
*/
export let icon = Switcher;
/**
* Specify the icon to render when the action panel is open.
* Defaults to `<Close size={20} />`
* @type {typeof import("svelte").SvelteComponent<any>}
* @type {any}
*/
export let closeIcon = Close;

View file

@ -10,7 +10,7 @@
/**
* Specify the icon to render
* @type {typeof import("svelte").SvelteComponent<any>}
* @type {any}
*/
export let icon = undefined;

View file

@ -8,7 +8,7 @@
/**
* Specify the icon to render
* @type {typeof import("svelte").SvelteComponent<any>}
* @type {any}
*/
export let icon = undefined;

View file

@ -16,7 +16,7 @@
/**
* Specify the icon to render
* @type {typeof import("svelte").SvelteComponent<any>}
* @type {any}
*/
export let icon = undefined;

View file

@ -10,7 +10,7 @@
/**
* Specify the icon to render
* @type {typeof import("svelte").SvelteComponent<any>}
* @type {any}
*/
export let icon = undefined;