File size: 648 Bytes
bc20498 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
<script>import { derived } from "svelte/store";
import { setSubMenuCtx } from "../ctx.js";
export let disabled = void 0;
export let open = void 0;
export let onOpenChange = void 0;
const {
updateOption,
ids,
states: { subOpen }
} = setSubMenuCtx({
disabled,
onOpenChange: ({ next }) => {
if (open !== next) {
onOpenChange?.(next);
open = next;
}
return next;
}
});
const idValues = derived([ids.menu, ids.trigger], ([$menuId, $triggerId]) => ({
menu: $menuId,
trigger: $triggerId
}));
$:
open !== void 0 && subOpen.set(open);
$:
updateOption("disabled", disabled);
</script>
<slot subIds={$idValues} />
|