import { createScrollArea } from "@melt-ui/svelte"; import { getContext, setContext } from "svelte"; import { removeUndefined, getOptionUpdater, createBitAttrs } from "../../internal/index.js"; function getScrollAreaData() { const NAME = "scroll-area"; const SCROLLBAR_NAME = "scrollbar"; const PARTS = [ "scrollbar-x", "scrollbar-y", "thumb-x", "thumb-y", "viewport", "content", "root", "corner", ]; return { NAME, PARTS, SCROLLBAR_NAME }; } export function setCtx(props) { const { NAME, PARTS } = getScrollAreaData(); const getAttrs = createBitAttrs(NAME, PARTS); const scrollArea = { ...createScrollArea(removeUndefined(props)), getAttrs }; setContext(NAME, scrollArea); return { ...scrollArea, updateOption: getOptionUpdater(scrollArea.options), }; } export function getCtx() { const { NAME } = getScrollAreaData(); return getContext(NAME); } export function setScrollbarOrientation(orientation) { const { SCROLLBAR_NAME } = getScrollAreaData(); return setContext(SCROLLBAR_NAME, orientation); } export function getScrollbarOrientation() { const { SCROLLBAR_NAME } = getScrollAreaData(); return getContext(SCROLLBAR_NAME); }