mirror of
https://github.com/carbon-design-system/carbon-components-svelte.git
synced 2025-09-16 10:51:06 +00:00
* refactor(search): resolve svelte file paths * docs(Search): add reactive example * refactor(tag): use class name directive for tag types, resolve svelte icon path * chore(button-skeleton): deprecate small prop * fix(breadcrumb-item): type default slot * refactor(breadcrumb-skeleton): omit unused index * refactor(aspect-ratio): use class name directive * refactor(accordion): use the class name directive, resolve svelte icon paths * refactor(code-snippet): use class name directive, resolve svelte icon paths * fix(code-snippet-skeleton): CodeSnippetSkeleton can only be single or multi * refactor(content-switcher): use class name directive * docs(content-switcher): add reactive example * docs(content-switcher): remove unused import * docs(toggle): add reactive example * refactor(tooltip-definition): use class name directive * refactor(tooltip-icon): use class name directive * refactor(tooltip): resolve svelte icon import * fix(select): type dispatched change event * refactor(select): resolve svelte icon import * feat(select-item): spread rest props, avoid $ variable name * fix(pagination-nav): type dispatched events * refactor(pagination): resolve svelte imports * fix(pagination): type dispatched update event * fix(overflow-menu): type dispatched close event * fix(number-input): type dispatched change event * refactor(modal): use class name directive, resolve svelte imports * refactor(inline-loading): use class name directive, resolve svelte imports * refactor(composed-modal): resolve svelte icon imports * refactor(combo-box): resolve svelte imports * fix(fluid-form): rest props should not override Form class * refactor(progress-step): resolve svelte icon imports
58 lines
1.2 KiB
Svelte
58 lines
1.2 KiB
Svelte
<script>
|
|
/** @extends {"./AccordionSkeleton"} AccordionSkeletonProps */
|
|
|
|
/**
|
|
* Specify alignment of accordion item chevron icon
|
|
* @type {"start" | "end"}
|
|
*/
|
|
export let align = "end";
|
|
|
|
/**
|
|
* Specify the size of the accordion
|
|
* @type {"sm" | "xl"}
|
|
*/
|
|
export let size = undefined;
|
|
|
|
/** Set to `true` to disable the accordion */
|
|
export let disabled = false;
|
|
|
|
/** Set to `true` to display the skeleton state */
|
|
export let skeleton = false;
|
|
|
|
import { setContext } from "svelte";
|
|
import { writable } from "svelte/store";
|
|
import AccordionSkeleton from "./AccordionSkeleton.svelte";
|
|
|
|
const disableItems = writable(disabled);
|
|
|
|
$: disableItems.set(disabled);
|
|
|
|
setContext("Accordion", { disableItems });
|
|
</script>
|
|
|
|
{#if skeleton}
|
|
<AccordionSkeleton
|
|
{...$$restProps}
|
|
align="{align}"
|
|
size="{size}"
|
|
on:click
|
|
on:mouseover
|
|
on:mouseenter
|
|
on:mouseleave
|
|
/>
|
|
{:else}
|
|
<ul
|
|
class:bx--accordion="{true}"
|
|
class:bx--accordion--start="{align === 'start'}"
|
|
class:bx--accordion--end="{align === 'end'}"
|
|
class:bx--accordion--sm="{size === 'sm'}"
|
|
class:bx--accordion--xl="{size === 'xl'}"
|
|
{...$$restProps}
|
|
on:click
|
|
on:mouseover
|
|
on:mouseenter
|
|
on:mouseleave
|
|
>
|
|
<slot />
|
|
</ul>
|
|
{/if}
|