import { createVNode as _createVNode } from "vue";
import "./styles/app.css";
import { useRender } from "@veno-ui/utils";
import { defineComponent } from "../../utils";
import { makeThemeProps, provideTheme } from "../../composables/theme";
import { makeLayoutProps, provideLayout } from "../../composables/layout";
import { useProviders } from "../../composables/providers";
const App = defineComponent({
  name: "VeApp",
  props: {
    ...makeThemeProps(),
    ...makeLayoutProps({
      fullHeight: true
    })
  },
  setup(props, {
    slots
  }) {
    const theme = provideTheme(props);
    const {
      getLayoutItem,
      items,
      layoutClasses
    } = provideLayout(props);
    const {
      createRootProvider
    } = useProviders();
    useRender(() => {
      const RootProvider = createRootProvider();
      return _createVNode("div", {
        "class": ["ve-app", theme.themeClasses.value, layoutClasses.value],
        "data-app": "true"
      }, [_createVNode("div", {
        "class": "ve-app__wrapper"
      }, [_createVNode(RootProvider, null, {
        default: () => [slots.default?.()]
      })])]);
    });
    return {
      theme,
      getLayoutItem,
      items
    };
  }
});
export {
  App
};
//# sourceMappingURL=app.mjs.map
