mirror of
https://github.com/carbon-design-system/carbon-components-svelte.git
synced 2025-09-15 18:31:06 +00:00
chore: lift components folder
This commit is contained in:
parent
76df51674d
commit
2200b29b92
301 changed files with 57 additions and 76 deletions
12
src/Icon/Icon.Skeleton.svelte
Normal file
12
src/Icon/Icon.Skeleton.svelte
Normal file
|
@ -0,0 +1,12 @@
|
|||
<script>
|
||||
export let size = 16;
|
||||
</script>
|
||||
|
||||
<div
|
||||
class:bx--icon--skeleton={true}
|
||||
{...$$restProps}
|
||||
style="{$$restProps.style}; width: {size}px; height: {size}px"
|
||||
on:click
|
||||
on:mouseover
|
||||
on:mouseenter
|
||||
on:mouseleave />
|
21
src/Icon/Icon.Story.svelte
Normal file
21
src/Icon/Icon.Story.svelte
Normal file
|
@ -0,0 +1,21 @@
|
|||
<script>
|
||||
export let story = undefined;
|
||||
|
||||
import ChevronDown16 from "carbon-icons-svelte/lib/ChevronDown16";
|
||||
import ArrowLeft20 from "carbon-icons-svelte/lib/ArrowLeft20";
|
||||
import Add24 from "carbon-icons-svelte/lib/Add24";
|
||||
|
||||
import Icon from "./Icon.svelte";
|
||||
import IconSkeleton from "./Icon.Skeleton.svelte";
|
||||
|
||||
const icons = { ChevronDown16, ArrowLeft20, Add24 };
|
||||
</script>
|
||||
|
||||
{#if story === 'skeleton'}
|
||||
<div>
|
||||
<IconSkeleton size={16} style="margin: 2rem;" />
|
||||
<IconSkeleton size={32} style="margin: 2rem" />
|
||||
</div>
|
||||
{:else}
|
||||
<Icon {...$$props} render={icons[$$props.icon]} />
|
||||
{/if}
|
24
src/Icon/Icon.stories.js
Normal file
24
src/Icon/Icon.stories.js
Normal file
|
@ -0,0 +1,24 @@
|
|||
import { withKnobs, select, boolean } from "@storybook/addon-knobs";
|
||||
import Component from "./Icon.Story.svelte";
|
||||
|
||||
export default { title: "Icon", decorators: [withKnobs] };
|
||||
|
||||
const icons = {
|
||||
ChevronDown16: "ChevronDown16",
|
||||
ArrowLeft20: "ArrowLeft20",
|
||||
Add24: "Add24",
|
||||
};
|
||||
|
||||
export const Default = () => ({
|
||||
Component,
|
||||
props: {
|
||||
icon: select(
|
||||
"Render icon from `carbon-icons-svelte` (render)",
|
||||
icons,
|
||||
"ChevronDown16"
|
||||
),
|
||||
skeleton: boolean("Display icon skeleton (skeleton)", false),
|
||||
},
|
||||
});
|
||||
|
||||
export const Skeleton = () => ({ Component, props: { story: "skeleton" } });
|
27
src/Icon/Icon.svelte
Normal file
27
src/Icon/Icon.svelte
Normal file
|
@ -0,0 +1,27 @@
|
|||
<script>
|
||||
export let render = undefined;
|
||||
export let skeleton = false;
|
||||
|
||||
import IconSkeleton from "./Icon.Skeleton.svelte";
|
||||
|
||||
$: iconName = render.toString().split(" ")[1];
|
||||
$: size = parseInt(iconName.slice(-2), 10);
|
||||
</script>
|
||||
|
||||
{#if skeleton}
|
||||
<IconSkeleton
|
||||
{size}
|
||||
{...$$restProps}
|
||||
on:click
|
||||
on:mouseover
|
||||
on:mouseenter
|
||||
on:mouseleave />
|
||||
{:else}
|
||||
<svelte:component
|
||||
this={render}
|
||||
{...$$restProps}
|
||||
on:click
|
||||
on:mouseover
|
||||
on:mouseenter
|
||||
on:mouseleave />
|
||||
{/if}
|
2
src/Icon/index.js
Normal file
2
src/Icon/index.js
Normal file
|
@ -0,0 +1,2 @@
|
|||
export { default as Icon } from "./Icon.svelte";
|
||||
export { default as IconSkeleton } from "./Icon.Skeleton.svelte";
|
Loading…
Add table
Add a link
Reference in a new issue