AGUI - @advjs/gui
GUI for Engine Editor.
Usage
Todo
bash
pnpm add @advjs/gui
pnpm add @advjs/gui
Checkbox
Checkbox Demo
vue
<template>
<AGUIDemoBlock title="Checkbox Demo">
<AGUIForm>
<AGUIFormItem label="Default">
<AGUICheckbox />
</AGUIFormItem>
<AGUIFormItem label="Checked" description="Checked Checkbox">
<AGUICheckbox checked />
</AGUIFormItem>
<AGUIFormItem label="Disabled">
<AGUICheckbox disabled />
</AGUIFormItem>
</AGUIForm>
</AGUIDemoBlock>
</template>
<template>
<AGUIDemoBlock title="Checkbox Demo">
<AGUIForm>
<AGUIFormItem label="Default">
<AGUICheckbox />
</AGUIFormItem>
<AGUIFormItem label="Checked" description="Checked Checkbox">
<AGUICheckbox checked />
</AGUIFormItem>
<AGUIFormItem label="Disabled">
<AGUICheckbox disabled />
</AGUIFormItem>
</AGUIForm>
</AGUIDemoBlock>
</template>
Input
Input Demo
vue
<script lang="ts" setup>
import { ref } from 'vue'
const text = ref('Hello, World!')
</script>
<template>
<AGUIDemoBlock title="Input Demo">
<AGUIForm>
<AGUIFormItem label="Default">
<AGUIInput v-model="text" />
</AGUIFormItem>
<AGUIFormItem label="Disabled">
<AGUIInput v-model="text" disabled />
</AGUIFormItem>
</AGUIForm>
</AGUIDemoBlock>
</template>
<script lang="ts" setup>
import { ref } from 'vue'
const text = ref('Hello, World!')
</script>
<template>
<AGUIDemoBlock title="Input Demo">
<AGUIForm>
<AGUIFormItem label="Default">
<AGUIInput v-model="text" />
</AGUIFormItem>
<AGUIFormItem label="Disabled">
<AGUIInput v-model="text" disabled />
</AGUIFormItem>
</AGUIForm>
</AGUIDemoBlock>
</template>
InputNumber
Input Demo
vue
<script lang="ts" setup>
import { ref } from 'vue'
import type { Vector2, Vector3 } from '../../../../packages/gui/src'
const num = ref(6)
const vector2 = ref<Vector2>({
x: 0,
y: 0,
})
const vector3 = ref<Vector3>({
x: 0,
y: 0,
z: 0,
})
</script>
<template>
<AGUIDemoBlock title="Input Demo">
<AGUIForm>
<AGUIFormItem label="Number">
<AGUIInputNumber v-model="num" />
</AGUIFormItem>
<AGUIFormItem label="Min 0 Max 180">
<AGUIInputNumber v-model="num" :min="0" :max="180" />
</AGUIFormItem>
<AGUIFormItem label="Vector2">
<AGUIInputVector v-model="vector2" />
</AGUIFormItem>
<AGUIFormItem label="Vector3">
<AGUIInputVector v-model="vector3" />
</AGUIFormItem>
<AGUIFormItem label="Custom Label">
<AGUIInputVector />
<AGUIInputVector />
</AGUIFormItem>
</AGUIForm>
</AGUIDemoBlock>
</template>
<script lang="ts" setup>
import { ref } from 'vue'
import type { Vector2, Vector3 } from '../../../../packages/gui/src'
const num = ref(6)
const vector2 = ref<Vector2>({
x: 0,
y: 0,
})
const vector3 = ref<Vector3>({
x: 0,
y: 0,
z: 0,
})
</script>
<template>
<AGUIDemoBlock title="Input Demo">
<AGUIForm>
<AGUIFormItem label="Number">
<AGUIInputNumber v-model="num" />
</AGUIFormItem>
<AGUIFormItem label="Min 0 Max 180">
<AGUIInputNumber v-model="num" :min="0" :max="180" />
</AGUIFormItem>
<AGUIFormItem label="Vector2">
<AGUIInputVector v-model="vector2" />
</AGUIFormItem>
<AGUIFormItem label="Vector3">
<AGUIInputVector v-model="vector3" />
</AGUIFormItem>
<AGUIFormItem label="Custom Label">
<AGUIInputVector />
<AGUIInputVector />
</AGUIFormItem>
</AGUIForm>
</AGUIDemoBlock>
</template>
Slider
Slider Demo
vue
<script lang="ts" setup>
import { ref } from 'vue'
const num = ref(0)
</script>
<template>
<AGUIDemoBlock title="Slider Demo">
<AGUIForm>
<AGUIFormItem label="Default">
<AGUISlider v-model="num" />
</AGUIFormItem>
<AGUIFormItem label="With Input (Todo)" description="Slider + Input">
<AGUISlider v-model="num" show-input disabled />
</AGUIFormItem>
</AGUIForm>
</AGUIDemoBlock>
</template>
<script lang="ts" setup>
import { ref } from 'vue'
const num = ref(0)
</script>
<template>
<AGUIDemoBlock title="Slider Demo">
<AGUIForm>
<AGUIFormItem label="Default">
<AGUISlider v-model="num" />
</AGUIFormItem>
<AGUIFormItem label="With Input (Todo)" description="Slider + Input">
<AGUISlider v-model="num" show-input disabled />
</AGUIFormItem>
</AGUIForm>
</AGUIDemoBlock>
</template>
Select
Slider Demo
vue
<template>
<AGUIDemoBlock title="Slider Demo">
<AGUIForm>
<AGUIFormItem label="Default">
<AGUISelect />
</AGUIFormItem>
</AGUIForm>
</AGUIDemoBlock>
</template>
<template>
<AGUIDemoBlock title="Slider Demo">
<AGUIForm>
<AGUIFormItem label="Default">
<AGUISelect />
</AGUIFormItem>
</AGUIForm>
</AGUIDemoBlock>
</template>
Tabs
Project
vue
<script lang="ts" setup>
import { ref } from 'vue'
const tabList = ref([
{ title: 'Project', key: 'project', icon: 'i-ri-folder-line' },
{ title: 'Console', key: 'console', icon: 'i-ri-terminal-box-line' },
])
</script>
<template>
<AGUIDemoBlock :in-panel="false">
<AGUITabs :list="tabList">
<AGUITabPanel>
<div p="4">
Project
</div>
</AGUITabPanel>
<AGUITabPanel>
<div p="4">
Console
</div>
</AGUITabPanel>
<slot />
</AGUITabs>
</AGUIDemoBlock>
</template>
<script lang="ts" setup>
import { ref } from 'vue'
const tabList = ref([
{ title: 'Project', key: 'project', icon: 'i-ri-folder-line' },
{ title: 'Console', key: 'console', icon: 'i-ri-terminal-box-line' },
])
</script>
<template>
<AGUIDemoBlock :in-panel="false">
<AGUITabs :list="tabList">
<AGUITabPanel>
<div p="4">
Project
</div>
</AGUITabPanel>
<AGUITabPanel>
<div p="4">
Console
</div>
</AGUITabPanel>
<slot />
</AGUITabs>
</AGUIDemoBlock>
</template>