mirror of
https://github.com/carbon-design-system/carbon-components-svelte.git
synced 2025-09-16 19:01:05 +00:00
parent
0ea318046a
commit
180f33b907
9 changed files with 164 additions and 2 deletions
37
src/Layer/Layer.svelte
Normal file
37
src/Layer/Layer.svelte
Normal file
|
@ -0,0 +1,37 @@
|
|||
<script>
|
||||
import { getContext, setContext } from "svelte";
|
||||
|
||||
/**
|
||||
* Specify the layer level to override any existing levels based on hierarchy.
|
||||
* @type {0 | 1 | 2 }
|
||||
*/
|
||||
export let level = undefined;
|
||||
|
||||
/** Specify the HTML element to render. */
|
||||
export let as = "div";
|
||||
|
||||
/**
|
||||
* Specify the Layer HTML element props
|
||||
* @type {import('svelte/elements').HTMLElementAttributes}
|
||||
*/
|
||||
export let layerProps = {};
|
||||
|
||||
// If there is no level override, determine the Level based on the hierarchy
|
||||
const parentLevel = getContext("LAYER_CONTEXT");
|
||||
|
||||
if (level === undefined) {
|
||||
level = typeof parentLevel === "number" ? parentLevel + 1 : 0;
|
||||
}
|
||||
|
||||
setContext("LAYER_CONTEXT", level);
|
||||
</script>
|
||||
|
||||
<svelte:element
|
||||
this="{as}"
|
||||
class:bx--layer-one="{level === 0}"
|
||||
class:bx--layer-two="{level === 1}"
|
||||
class:bx--layer-three="{level === 2}"
|
||||
{...layerProps}
|
||||
>
|
||||
<slot />
|
||||
</svelte:element>
|
1
src/Layer/index.js
Normal file
1
src/Layer/index.js
Normal file
|
@ -0,0 +1 @@
|
|||
export { default as Layer } from "./Layer.svelte";
|
|
@ -58,6 +58,7 @@ export { FormLabel } from "./FormLabel";
|
|||
export { Grid, Row, Column } from "./Grid";
|
||||
export { ImageLoader } from "./ImageLoader";
|
||||
export { InlineLoading } from "./InlineLoading";
|
||||
export { Layer } from "./Layer";
|
||||
export { Link, OutboundLink } from "./Link";
|
||||
export {
|
||||
ListBox,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue