NOTE: Introduced feature in
v0.4.13
.
click_inside
is a Svelte Action, which runs a on_click_inside(event: MouseEvent): void
callback whenever your attached element is clicked inside of.
<script>
import {
Box,
click_inside,
} from "@kahi-ui/framework";
let clicked = false;
</script>
<Box
palette={clicked ? "affirmative" : "negative"}
padding="small"
actions={[
[
click_inside,
{
on_click_inside: () =>
(clicked = true),
},
],
]}
>
{clicked
? "I was clicked inside!"
: "I am currently not clicked..."}
</Box>
Imports
import {click_inside} from "@kahi-ui/framework";
Compatibility
Svelte Actions are always ran on Javascript-enabled Browser. So should not be used for critical end-user functionality, only progressive enhancement.
Ignore
You can ignore elements that matches a given CSS Selector via the IClickInsideOptions.ignore: string
option.
<script>
import {
Box,
Button,
click_inside,
} from "@kahi-ui/framework";
let clicked = false;
</script>
<Box
palette={clicked ? "affirmative" : "negative"}
padding="small"
actions={[
[
click_inside,
{
ignore: "button",
on_click_inside: () =>
(clicked = true),
},
],
]}
>
{clicked
? "I was clicked inside!"
: "I am currently not clicked..."}
<Button>This will not trigger the action!</Button>
</Box>