mirror of
https://github.com/HoshinoSuzumi/rayine-ui.git
synced 2025-04-07 11:38:50 +08:00
✨ docs: add props
This commit is contained in:
parent
a8e47c6bff
commit
8fefe70937
50
docs/components/content/ComponentProps.vue
Normal file
50
docs/components/content/ComponentProps.vue
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
<script lang="ts" setup>
|
||||||
|
import type { ComponentMeta } from 'vue-component-meta'
|
||||||
|
import { camelCase, upperFirst } from 'scule'
|
||||||
|
|
||||||
|
const route = useRoute()
|
||||||
|
|
||||||
|
const props = defineProps({
|
||||||
|
slug: {
|
||||||
|
type: String,
|
||||||
|
default: null,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
const slug = props.slug || route.params.slug[route.params.slug.length - 1]
|
||||||
|
const componentCamelName = camelCase(slug)
|
||||||
|
const componentName = `Ray${upperFirst(componentCamelName)}`
|
||||||
|
|
||||||
|
const meta = await fetchComponentMeta(componentName)
|
||||||
|
const metaProps: ComputedRef<ComponentMeta['props']> = computed(() => meta?.meta?.props || [])
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<ProseTable>
|
||||||
|
<ProseThead>
|
||||||
|
<ProseTr>
|
||||||
|
<ProseTh>Prop</ProseTh>
|
||||||
|
<ProseTh>Default</ProseTh>
|
||||||
|
<ProseTh>Type</ProseTh>
|
||||||
|
</ProseTr>
|
||||||
|
</ProseThead>
|
||||||
|
<ProseTbody>
|
||||||
|
<ProseTr v-for="prop in metaProps" :key="prop.name">
|
||||||
|
<ProseTd>
|
||||||
|
{{ prop.name }}
|
||||||
|
</ProseTd>
|
||||||
|
<ProseTd>
|
||||||
|
<ProseCodeInline v-if="prop.default">
|
||||||
|
{{ prop.default }}
|
||||||
|
</ProseCodeInline>
|
||||||
|
</ProseTd>
|
||||||
|
<ProseTd>
|
||||||
|
<ProseCodeInline v-if="prop.type">
|
||||||
|
{{ prop.type }}
|
||||||
|
</ProseCodeInline>
|
||||||
|
<MDC v-if="prop.description" :value="prop.description" class="mt-1" />
|
||||||
|
</ProseTd>
|
||||||
|
</ProseTr>
|
||||||
|
</ProseTbody>
|
||||||
|
</ProseTable>
|
||||||
|
</template>
|
26
docs/components/content/ComponentSlots.vue
Normal file
26
docs/components/content/ComponentSlots.vue
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
<script lang="ts" setup>
|
||||||
|
import { camelCase, upperFirst } from 'scule'
|
||||||
|
|
||||||
|
const route = useRoute()
|
||||||
|
|
||||||
|
const props = defineProps({
|
||||||
|
slug: {
|
||||||
|
type: String,
|
||||||
|
default: null,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
const slug = props.slug || route.params.slug[route.params.slug.length - 1]
|
||||||
|
const componentCamelName = camelCase(slug)
|
||||||
|
const componentName = `Ray${upperFirst(componentCamelName)}`
|
||||||
|
|
||||||
|
const meta = await fetchComponentMeta(componentName)
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div class="flex flex-col not-prose font-mono divide-y divide-gray-100 dark:divide-gray-800">
|
||||||
|
<div v-for="(slot, k) in meta?.meta?.slots" :key="k" class="py-2">
|
||||||
|
<pre>{{ slot }}</pre>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
@ -114,7 +114,14 @@ props:
|
|||||||
Button
|
Button
|
||||||
::
|
::
|
||||||
|
|
||||||
## Config
|
## API
|
||||||
|
|
||||||
|
### Props
|
||||||
|
|
||||||
|
::ComponentProps
|
||||||
|
::
|
||||||
|
|
||||||
|
### Config
|
||||||
|
|
||||||
::ComponentDefaults
|
::ComponentDefaults
|
||||||
::
|
::
|
||||||
|
@ -142,7 +142,14 @@ const modal = ref<string>("");
|
|||||||
</template>
|
</template>
|
||||||
```
|
```
|
||||||
|
|
||||||
## Config
|
## API
|
||||||
|
|
||||||
|
### Props
|
||||||
|
|
||||||
|
::ComponentProps
|
||||||
|
::
|
||||||
|
|
||||||
|
### Config
|
||||||
|
|
||||||
::ComponentDefaults
|
::ComponentDefaults
|
||||||
::
|
::
|
||||||
|
@ -44,7 +44,14 @@ props:
|
|||||||
K
|
K
|
||||||
::
|
::
|
||||||
|
|
||||||
## Config
|
## API
|
||||||
|
|
||||||
|
### Props
|
||||||
|
|
||||||
|
::ComponentProps
|
||||||
|
::
|
||||||
|
|
||||||
|
### Config
|
||||||
|
|
||||||
::ComponentDefaults
|
::ComponentDefaults
|
||||||
::
|
::
|
||||||
|
@ -82,7 +82,14 @@ slots:
|
|||||||
:RayButton{icon="tabler:message" label="messages" color="invert"}
|
:RayButton{icon="tabler:message" label="messages" color="invert"}
|
||||||
::
|
::
|
||||||
|
|
||||||
## Config
|
## API
|
||||||
|
|
||||||
|
### Props
|
||||||
|
|
||||||
|
::ComponentProps
|
||||||
|
::
|
||||||
|
|
||||||
|
### Config
|
||||||
|
|
||||||
::ComponentDefaults
|
::ComponentDefaults
|
||||||
::
|
::
|
||||||
|
@ -60,7 +60,14 @@ props:
|
|||||||
---
|
---
|
||||||
::
|
::
|
||||||
|
|
||||||
## Config
|
## API
|
||||||
|
|
||||||
|
### Props
|
||||||
|
|
||||||
|
::ComponentProps
|
||||||
|
::
|
||||||
|
|
||||||
|
### Config
|
||||||
|
|
||||||
::ComponentDefaults
|
::ComponentDefaults
|
||||||
::
|
::
|
||||||
|
@ -176,7 +176,14 @@ const modal = ref<string>("");
|
|||||||
</template>
|
</template>
|
||||||
```
|
```
|
||||||
|
|
||||||
## Config
|
## API
|
||||||
|
|
||||||
|
### Props
|
||||||
|
|
||||||
|
::ComponentProps
|
||||||
|
::
|
||||||
|
|
||||||
|
### Config
|
||||||
|
|
||||||
::ComponentDefaults
|
::ComponentDefaults
|
||||||
::
|
::
|
||||||
|
@ -63,7 +63,14 @@ props:
|
|||||||
---
|
---
|
||||||
::
|
::
|
||||||
|
|
||||||
## Config
|
## API
|
||||||
|
|
||||||
|
### Props
|
||||||
|
|
||||||
|
::ComponentProps
|
||||||
|
::
|
||||||
|
|
||||||
|
### Config
|
||||||
|
|
||||||
::ComponentDefaults
|
::ComponentDefaults
|
||||||
::
|
::
|
||||||
|
@ -60,7 +60,7 @@ export default defineNuxtConfig({
|
|||||||
type: false,
|
type: false,
|
||||||
props: true,
|
props: true,
|
||||||
slots: true,
|
slots: true,
|
||||||
events: false,
|
events: true,
|
||||||
exposed: false,
|
exposed: false,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
Loading…
Reference in New Issue
Block a user