UNPKG

melt

Version:

The next generation of Melt UI. Built for Svelte 5.

35 lines (34 loc) 907 B
import { keys } from "./object"; let id = 0; export function createId() { return `melt-${id++}`; } /** * @deprecated use `createBuilderMetaData` instead */ export function createDataIds(name, parts) { return parts.reduce((acc, part) => { acc[part] = `data-melt-${name}-${part}`; return acc; }, {}); } export function createIds(identifiers) { const id = createId(); return Object.keys(identifiers).reduce((acc, key) => { acc[key] = `${key}-${id}`; return acc; }, {}); } export function createBuilderMetadata(name, parts) { // TODO: clean this up const dataAttrs = createDataIds(name, parts); const dataSelectors = keys(dataAttrs).reduce((acc, key) => { acc[key] = `[${dataAttrs[key]}]`; return acc; }, {}); return { dataAttrs, dataSelectors, createIds: () => createIds(dataAttrs), }; }