import { UI_NAME, UI_VERSION } from "./utils";
import { ThemeKey, createTheme } from "./composables/theme";
import { HighlighterKey, createHighlighter } from "./composables/highlighter";
import { IconsKey, createIcons } from "./composables/icons";
import { DisplayKey, createDisplay } from "./composables/display";
import { DefaultsKey, createDefaults } from "./composables/defaults";
import { DraggableSortableGroupKey, createDraggableSortableGroup } from "./composables/draggable-sortable-group";
import { ProvidersKey, createProviders } from "./composables/providers";
export * from "./composables";
export * from "./resolver";
const name = UI_NAME;
const version = UI_VERSION;
const createVeno = (options = {}) => {
  const install = (app) => {
    const {
      componentPrefix = "Ve",
      components = {},
      directives = {}
    } = options;
    for (const key in components) {
      app.component(`${componentPrefix}${key}`, components[key]);
    }
    for (const key in directives) {
      app.directive(key, directives[key]);
    }
    app.provide(DisplayKey, createDisplay(options.display));
    app.provide(DefaultsKey, createDefaults(options.defaults));
    app.provide(DraggableSortableGroupKey, createDraggableSortableGroup());
    app.provide(ThemeKey, createTheme(app, options.theme));
    app.provide(HighlighterKey, createHighlighter(options.highlighter));
    app.provide(IconsKey, createIcons(options.icons));
    app.provide(ProvidersKey, createProviders(app, options.providers));
  };
  return { install, version };
};
export {
  createVeno,
  name,
  version
};
//# sourceMappingURL=framework.mjs.map
