Files
aurora-admin/site/examples/drawer.json
T

116 lines
9.6 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"slug": "drawer",
"mode": "scenarios",
"examples": [
{
"id": "drawer-ex-1",
"title": "默认与常用变体",
"titleSrc": "demo",
"desc": "",
"html": "<div class=\"demo-block\">\n <div class=\"row kole-drawer\">\n <button class=\"kole-drawer-button kole-drawer-primary\" type=\"button\" data-open>打开抽屉</button>\n <div class=\"kole-drawer-drawer-mask\" data-mask hidden></div>\n <aside class=\"kole-drawer-drawer\" role=\"dialog\" aria-labelledby=\"kole-drawer-title\" aria-modal=\"true\" hidden>\n <h3 class=\"kole-drawer-title\" id=\"kole-drawer-title\">编辑资料</h3>\n <p class=\"kole-drawer-desc\">在当前页面侧向编辑,不丢失列表上下文。</p>\n <div class=\"kole-drawer-drawer-footer\">\n <button class=\"kole-drawer-button\" type=\"button\" data-close>取消</button>\n <button class=\"kole-drawer-button kole-drawer-primary\" type=\"button\" data-confirm>确定</button>\n </div>\n </aside>\n </div>\n</div>",
"preview": {
"show": [
[
0,
2
]
],
"hide": [
[
1
],
[
0,
0
],
[
0,
1
],
[
0,
3
],
[
0,
2,
0
]
],
"mode": "scenarios"
},
"previewSafe": true,
"previewUnsafeReasons": [],
"source": "curated",
"code": {
"html": "<div class=\"kole-drawer\">\n <button class=\"kole-drawer-button kole-drawer-primary\" type=\"button\" data-open>打开抽屉</button>\n <div class=\"kole-drawer-drawer-mask\" hidden></div>\n <aside class=\"kole-drawer-drawer\" role=\"dialog\" aria-labelledby=\"kole-drawer-title\" aria-modal=\"true\" hidden>\n <h3 class=\"kole-drawer-title\" id=\"kole-drawer-title\">编辑资料</h3>\n <p class=\"kole-drawer-desc\">在当前页面侧向编辑,不丢失列表上下文。</p>\n <div class=\"kole-drawer-drawer-footer\">\n <button class=\"kole-drawer-button\" type=\"button\">取消</button>\n <button class=\"kole-drawer-button kole-drawer-primary\" type=\"button\">确定</button>\n </div>\n </aside>\n</div>",
"jsx": "import { useState } from 'react';\nimport { KoleDrawer } from 'kole-ui/react';\n\nexport default function Demo() {\n const [open, setOpen] = useState(false);\n\n // 组件自带「打开抽屉」触发器;取消/确定/遮罩点击都走 onClose\n return (\n <KoleDrawer\n open={open}\n title=\"编辑资料\"\n placement=\"right\"\n onClick={() => setOpen(true)}\n onClose={() => setOpen(false)}\n />\n );\n}",
"vue3": "<script setup>\nimport { ref } from 'vue';\nimport { KoleDrawer } from 'kole-ui/vue3';\n\nconst open = ref(false);\n</script>\n\n<template>\n <!-- 组件自带「打开抽屉」触发器:@open 展开,@close / @confirm 收起 -->\n <KoleDrawer\n :open=\"open\"\n title=\"编辑资料\"\n placement=\"right\"\n @open=\"open = true\"\n @close=\"open = false\"\n @confirm=\"open = false\"\n />\n</template>",
"vue2": "<template>\n <!-- 组件自带「打开抽屉」触发器:@open 展开,@close / @confirm 收起 -->\n <KoleDrawer\n :open=\"open\"\n title=\"编辑资料\"\n placement=\"right\"\n @open=\"open = true\"\n @close=\"open = false\"\n @confirm=\"open = false\"\n />\n</template>\n\n<script>\nimport { KoleDrawer } from 'kole-ui/vue2';\n\nexport default {\n name: 'DrawerDemo',\n components: { KoleDrawer },\n data() { return { open: false }; },\n};\n</script>",
"tsx": "import { useState } from 'react';\nimport { KoleDrawer } from 'kole-ui/react';\n\nexport default function Demo(): JSX.Element {\n const [open, setOpen] = useState<boolean>(false);\n\n // 组件自带「打开抽屉」触发器;取消/确定/遮罩点击都走 onClose\n return (\n <KoleDrawer\n open={open}\n title=\"编辑资料\"\n placement=\"right\"\n onClick={() => setOpen(true)}\n onClose={() => setOpen(false)}\n />\n );\n}",
"vue3ts": "<template>\n\n <!-- 组件自带「打开抽屉」触发器:@open 展开,@close / @confirm 收起 -->\n <KoleDrawer\n :open=\"open\"\n title=\"编辑资料\"\n placement=\"right\"\n @open=\"open = true\"\n @close=\"open = false\"\n @confirm=\"open = false\"\n />\n</template>\n\n<script setup lang=\"ts\">\nimport { KoleDrawer } from 'kole-ui/vue3';\n\nconst open = ref<boolean>(false);\n</script>",
"vue2ts": "<template>\n\n <!-- 组件自带「打开抽屉」触发器:@open 展开,@close / @confirm 收起 -->\n <KoleDrawer\n :open=\"open\"\n title=\"编辑资料\"\n placement=\"right\"\n @open=\"open = true\"\n @close=\"open = false\"\n @confirm=\"open = false\"\n />\n</template>\n\n<script lang=\"ts\">\nimport Vue from 'vue';\nimport { KoleDrawer } from 'kole-ui/vue2';\n\nexport default {\n name: 'DrawerDemo',\n components: { KoleDrawer },\n data(): Record<string, unknown> { return { open: false }; },\n};\n</script>"
},
"notes": [
"依据 frameworks/Drawer.html 首个 demo-block 的标记与脚本([data-open] 展开、[data-mask]/[data-close]/[data-confirm] 关闭)",
"title「编辑资料」/placement「right」取自该块标记与 site/details/drawer.json contract.dims placement;open/maskClosable 见 Drawer.vue3.vue defineProps"
]
},
{
"id": "drawer-ex-2",
"title": "状态与使用场景",
"titleSrc": "demo",
"desc": "",
"html": "<div class=\"demo-block\">\n <div class=\"row kole-drawer\">\n <div class=\"kole-drawer-surface\" style=\"padding:12px\">不离开列表页,侧向查看或编辑详情,默认从右侧滑出并带遮罩。</div>\n <span class=\"kole-drawer-desc\">支持键盘焦点、状态反馈和令牌化样式。</span>\n </div>\n <p class=\"demo-note\">零运行时依赖;数据请求、权限和国际化由宿主接入方决定。</p>\n</div>",
"preview": {
"show": [
[
0,
3
]
],
"hide": [
[
1
],
[
0,
0
],
[
0,
1
],
[
0,
2
],
[
0,
3,
0
]
],
"mode": "scenarios"
},
"previewSafe": true,
"previewUnsafeReasons": [],
"source": "curated",
"code": {
"html": "<div class=\"kole-drawer\">\n <div class=\"kole-drawer-surface\" style=\"padding:12px\">不离开列表页,侧向查看或编辑详情,默认从右侧滑出并带遮罩。</div>\n <span class=\"kole-drawer-desc\">支持键盘焦点、状态反馈和令牌化样式。</span>\n</div>\n<p>零运行时依赖;数据请求、权限和国际化由宿主接入方决定。</p>",
"jsx": "import { useState } from 'react';\nimport { KoleDrawer } from 'kole-ui/react';\n\n// 场景(frameworks/Drawer.html 第二个 demo-block):不离开列表页,侧向查看或编辑详情,默认从右侧滑出并带遮罩\nexport default function DetailDrawer() {\n const [open, setOpen] = useState(true);\n\n return (\n <KoleDrawer\n open={open}\n title=\"编辑资料\"\n placement=\"right\"\n maskClosable\n onClose={() => setOpen(false)}\n />\n );\n}",
"vue3": "<script setup>\nimport { ref } from 'vue';\nimport { KoleDrawer } from 'kole-ui/vue3';\n\n// 受控打开:默认从右侧滑出并带遮罩,mask-closable 允许点击遮罩关闭\nconst open = ref(true);\n</script>\n\n<template>\n <KoleDrawer\n :open=\"open\"\n title=\"编辑资料\"\n placement=\"right\"\n :mask-closable=\"true\"\n @close=\"open = false\"\n />\n</template>",
"vue2": "<template>\n <KoleDrawer\n :open=\"open\"\n title=\"编辑资料\"\n placement=\"right\"\n :mask-closable=\"true\"\n @close=\"open = false\"\n />\n</template>\n\n<script>\nimport { KoleDrawer } from 'kole-ui/vue2';\n\nexport default {\n name: 'DrawerDetailDemo',\n components: { KoleDrawer },\n data() { return { open: true }; },\n};\n</script>",
"tsx": "import { useState } from 'react';\nimport { KoleDrawer } from 'kole-ui/react';\n\n// 场景(frameworks/Drawer.html 第二个 demo-block):不离开列表页,侧向查看或编辑详情,默认从右侧滑出并带遮罩\nexport default function DetailDrawer(): JSX.Element {\n const [open, setOpen] = useState<boolean>(true);\n\n return (\n <KoleDrawer\n open={open}\n title=\"编辑资料\"\n placement=\"right\"\n maskClosable\n onClose={() => setOpen(false)}\n />\n );\n}",
"vue3ts": "<template>\n\n <KoleDrawer\n :open=\"open\"\n title=\"编辑资料\"\n placement=\"right\"\n :mask-closable=\"true\"\n @close=\"open = false\"\n />\n</template>\n\n<script setup lang=\"ts\">\nimport { KoleDrawer } from 'kole-ui/vue3';\n\n// 受控打开:默认从右侧滑出并带遮罩,mask-closable 允许点击遮罩关闭\nconst open = ref<boolean>(true);\n</script>",
"vue2ts": "<template>\n\n <KoleDrawer\n :open=\"open\"\n title=\"编辑资料\"\n placement=\"right\"\n :mask-closable=\"true\"\n @close=\"open = false\"\n />\n</template>\n\n<script lang=\"ts\">\nimport Vue from 'vue';\nimport { KoleDrawer } from 'kole-ui/vue2';\n\nexport default {\n name: 'DrawerDetailDemo',\n components: { KoleDrawer },\n data(): Record<string, unknown> { return { open: true }; },\n};\n</script>"
},
"notes": [
"该示例块为场景说明块(frameworks/Drawer.html 第二个 demo-block 只有 kole-drawer-surface 文案「不离开列表页,侧向查看或编辑详情,默认从右侧滑出并带遮罩」),片段按该文案给出受控打开调用",
"maskClosable/placement 取自 Drawer.jsx 与 Drawer.vue3.vue 的 defineProps;placement=right 与文案「默认从右侧滑出」一致"
]
}
],
"curated": true
}