openpencil/packages/vue/src/primitives/LayoutControls/LayoutControlsRoot.vue
2026-05-01 10:50:25 +03:00

52 lines
1.8 KiB
Vue

<script setup lang="ts">
import { useLayout } from '#vue/controls/layout/use'
import { provideLayoutControls } from '#vue/primitives/LayoutControls/context'
import { proxyRefs } from 'vue'
const ctx = useLayout()
provideLayoutControls(
proxyRefs(ctx) as ReturnType<typeof proxyRefs<typeof ctx>> & {
node: NonNullable<typeof ctx.node.value>
}
)
</script>
<template>
<slot
:editor="ctx.editor"
:node="ctx.node.value"
:layout-direction="ctx.layoutDirection.value"
:gap-auto="ctx.gapAuto.value"
:is-in-auto-layout="ctx.isInAutoLayout.value"
:is-grid="ctx.isGrid.value"
:is-flex="ctx.isFlex.value"
:width-sizing="ctx.widthSizing.value"
:height-sizing="ctx.heightSizing.value"
:width-sizing-options="ctx.widthSizingOptions.value"
:height-sizing-options="ctx.heightSizingOptions.value"
:align-grid="ctx.alignGrid.value"
:show-individual-padding="ctx.showIndividualPadding.value"
:has-uniform-padding="ctx.hasUniformPadding.value"
:track-sizing-options="ctx.trackSizingOptions"
:update-prop="ctx.updateProp"
:update-size-limit="ctx.updateSizeLimit"
:set-size-limit-to-current="ctx.setSizeLimitToCurrent"
:commit-size-limit="ctx.commitSizeLimit"
:add-size-limit="ctx.addSizeLimit"
:remove-size-limit="ctx.removeSizeLimit"
:commit-prop="ctx.commitProp"
:set-width-sizing="ctx.setWidthSizing"
:set-height-sizing="ctx.setHeightSizing"
:set-uniform-padding="ctx.setUniformPadding"
:commit-uniform-padding="ctx.commitUniformPadding"
:set-alignment="ctx.setAlignment"
:set-gap-auto="ctx.setGapAuto"
:set-layout-direction="ctx.setLayoutDirection"
:update-grid-track="ctx.updateGridTrack"
:add-track="ctx.addTrack"
:remove-track="ctx.removeTrack"
:track-label="ctx.trackLabel"
:toggle-individual-padding="ctx.toggleIndividualPadding"
/>
</template>