diff --git a/docs/app/components/content/ComponentCode.vue b/docs/app/components/content/ComponentCode.vue index 414055cd..c5a5c578 100644 --- a/docs/app/components/content/ComponentCode.vue +++ b/docs/app/components/content/ComponentCode.vue @@ -22,6 +22,11 @@ const props = defineProps<{ * @defaultValue false */ prettier?: boolean + /** + * Whether to collapse the code block + * @defaultValue false + */ + collapse?: boolean }>() const route = useRoute() @@ -84,7 +89,14 @@ const options = computed(() => { }) const code = computed(() => { - let code = `\`\`\`vue` + let code = '' + + if (props.collapse) { + code += `::code-collapse +` + } + + code += `\`\`\`vue` if (props.external?.length) { code += ` @@ -157,6 +169,11 @@ const code = computed(() => { \`\`\` ` + if (props.collapse) { + code += ` +::` + } + return code }) @@ -243,6 +260,6 @@ const { data: ast } = await useAsyncData(`component-code-${name}-${JSON.stringif - + diff --git a/docs/app/components/content/ComponentExample.vue b/docs/app/components/content/ComponentExample.vue index 3e64f317..878590be 100644 --- a/docs/app/components/content/ComponentExample.vue +++ b/docs/app/components/content/ComponentExample.vue @@ -10,6 +10,11 @@ const props = defineProps<{ * @defaultValue false */ prettier?: boolean + /** + * Whether to collapse the code block + * @defaultValue false + */ + collapse?: boolean }>() const { $prettier } = useNuxtApp() @@ -20,7 +25,25 @@ const data = await fetchComponentExample(camelName) const componentProps = reactive({ ...(props.props || {}) }) -const code = computed(() => `\`\`\`vue\n${data?.code ?? ''}\n\`\`\``) +const code = computed(() => { + let code = '' + + if (props.collapse) { + code += `::code-collapse +` + } + + code += `\`\`\`vue +${data?.code ?? ''} +\`\`\`` + + if (props.collapse) { + code += ` +::` + } + + return code +}) const { data: ast } = await useAsyncData(`component-example-${camelName}`, async () => { if (!props.prettier) { @@ -50,6 +73,6 @@ const { data: ast } = await useAsyncData(`component-example-${camelName}`, async - + diff --git a/docs/app/components/content/ComponentTheme.vue b/docs/app/components/content/ComponentTheme.vue index e155beac..a6a875c9 100644 --- a/docs/app/components/content/ComponentTheme.vue +++ b/docs/app/components/content/ComponentTheme.vue @@ -44,6 +44,7 @@ const component = computed(() => { const { data: ast } = await useAsyncData(`component-theme-${name}`, async () => { const md = ` +::code-collapse \`\`\`ts [app.config.ts] export default defineAppConfig({ ui: { @@ -52,6 +53,8 @@ export default defineAppConfig({ }) \`\`\`\ +:: + ${strippedCompoundVariants.value ? ` ::callout{icon="i-simple-icons-github" to="https://github.com/benjamincanac/ui3/blob/dev/src/theme/${name}.ts"}