114 lines
8.0 KiB
JSON
114 lines
8.0 KiB
JSON
{
|
||
"slug": "checkbox",
|
||
"mode": "scenarios",
|
||
"curated": true,
|
||
"examples": [
|
||
{
|
||
"id": "checkbox-ex-1",
|
||
"title": "默认与常用变体",
|
||
"titleSrc": "demo",
|
||
"desc": "",
|
||
"html": "<div class=\"demo-block\">\n <div class=\"row kole-checkbox\">\n <label class=\"kole-checkbox-option\">\n <input type=\"checkbox\" checked />\n 邮件通知\n </label>\n <label class=\"kole-checkbox-option\">\n <input type=\"checkbox\" />\n 短信通知\n </label>\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-checkbox\">\n <label class=\"kole-checkbox-option\">\n <input type=\"checkbox\" checked />\n 邮件通知\n </label>\n <label class=\"kole-checkbox-option\">\n <input type=\"checkbox\" />\n 短信通知\n </label>\n</div>",
|
||
"jsx": "import { useState } from 'react';\nimport { KoleCheckbox } from 'kole-ui/react';\n\nconst options = [\n { label: '邮件通知', value: 'email' },\n { label: '短信通知', value: 'sms' }\n];\n\nexport default function Demo() {\n const [value, setValue] = useState(['email']);\n\n function toggle(v) {\n setValue(value.includes(v) ? value.filter((x) => x !== v) : [...value, v]);\n }\n\n return <KoleCheckbox modelValue={value} options={options} onChange={toggle} />;\n}",
|
||
"vue3": "<template>\n <KoleCheckbox v-model=\"value\" :options=\"options\" />\n</template>\n\n<script setup>\nimport { ref } from 'vue';\nimport { KoleCheckbox } from 'kole-ui/vue3';\n\nconst options = [\n { label: '邮件通知', value: 'email' },\n { label: '短信通知', value: 'sms' }\n];\nconst value = ref(['email']);\n</script>",
|
||
"vue2": "<template>\n <KoleCheckbox v-model=\"value\" :options=\"options\" />\n</template>\n\n<script>\nimport { KoleCheckbox } from 'kole-ui/vue2';\n\nexport default {\n components: { KoleCheckbox },\n data() {\n return {\n options: [\n { label: '邮件通知', value: 'email' },\n { label: '短信通知', value: 'sms' }\n ],\n value: ['email']\n };\n }\n};\n</script>",
|
||
"tsx": "import { useState } from 'react';\nimport { KoleCheckbox } from 'kole-ui/react';\n\nconst options = [\n { label: '邮件通知', value: 'email' },\n { label: '短信通知', value: 'sms' }\n];\n\nexport default function Demo(): JSX.Element {\n const [value, setValue] = useState(['email']);\n\n function toggle(v): JSX.Element {\n setValue(value.includes(v) ? value.filter((x) => x !== v) : [...value, v]);\n }\n\n return <KoleCheckbox modelValue={value} options={options} onChange={toggle} />;\n}",
|
||
"vue3ts": "<template>\n\n <KoleCheckbox v-model=\"value\" :options=\"options\" />\n</template>\n\n<script setup lang=\"ts\">\nimport { KoleCheckbox } from 'kole-ui/vue3';\n\nconst demoTitle = ref<string>('默认与常用变体');\nconst options = [\n { label: '邮件通知', value: 'email' },\n { label: '短信通知', value: 'sms' }\n];\nconst value = ref(['email']);\n</script>",
|
||
"vue2ts": "<template>\n\n <KoleCheckbox v-model=\"value\" :options=\"options\" />\n</template>\n\n<script lang=\"ts\">\nimport Vue from 'vue';\nimport { KoleCheckbox } from 'kole-ui/vue2';\n\nexport default {\n components: { KoleCheckbox },\n data(): Record<string, unknown> {\n return {\n options: [\n { label: '邮件通知', value: 'email' },\n { label: '短信通知', value: 'sms' }\n ],\n value: ['email']\n };\n }\n};\n</script>"
|
||
},
|
||
"notes": [
|
||
"依据 frameworks/Checkbox.html:6 默认块两个 kole-checkbox-option「邮件通知(首个 checked)/短信通知」;prop 名取自 frameworks/Checkbox.jsx:4(modelValue/options)"
|
||
]
|
||
},
|
||
{
|
||
"id": "checkbox-ex-2",
|
||
"title": "状态与使用场景",
|
||
"titleSrc": "demo",
|
||
"desc": "",
|
||
"html": "<div class=\"demo-block\">\n <div class=\"row kole-checkbox\">\n <div class=\"kole-checkbox-surface\" style=\"padding:12px\">选择多个权限、筛选条件或数据记录,支持全选和半选状态。</div>\n <span class=\"kole-checkbox-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-checkbox\">\n <div class=\"kole-checkbox-surface\" style=\"padding:12px\">选择多个权限、筛选条件或数据记录,支持全选和半选状态。</div>\n <span class=\"kole-checkbox-desc\">支持键盘焦点、状态反馈和令牌化样式。</span>\n</div>\n<p>零运行时依赖;数据请求、权限和国际化由宿主接入方决定。</p>",
|
||
"jsx": "import { KoleCheckbox } from 'kole-ui/react';\n\nconst options = [\n { label: '邮件通知', value: 'email' },\n { label: '短信通知', value: 'sms' }\n];\n\n// 状态展示:整组禁用,保留已勾选值\n<KoleCheckbox modelValue={['email']} options={options} disabled />",
|
||
"vue3": "<template>\n <KoleCheckbox v-model=\"value\" :options=\"options\" disabled />\n</template>\n\n<script setup>\nimport { ref } from 'vue';\nimport { KoleCheckbox } from 'kole-ui/vue3';\n\nconst options = [\n { label: '邮件通知', value: 'email' },\n { label: '短信通知', value: 'sms' }\n];\n// 状态展示:整组禁用,保留已勾选值\nconst value = ref(['email']);\n</script>",
|
||
"vue2": "<template>\n <KoleCheckbox v-model=\"value\" :options=\"options\" disabled />\n</template>\n\n<script>\nimport { KoleCheckbox } from 'kole-ui/vue2';\n\nexport default {\n components: { KoleCheckbox },\n data() {\n return {\n options: [\n { label: '邮件通知', value: 'email' },\n { label: '短信通知', value: 'sms' }\n ],\n // 状态展示:整组禁用,保留已勾选值\n value: ['email']\n };\n }\n};\n</script>",
|
||
"tsx": "import { KoleCheckbox } from 'kole-ui/react';\n\nexport default function KoleCheckboxDemo(): JSX.Element {\n const options = [\n { label: '邮件通知', value: 'email' },\n { label: '短信通知', value: 'sms' }\n ];\n \n // 状态展示:整组禁用,保留已勾选值\n return (\n <KoleCheckbox modelValue={['email']} options={options} disabled />\n );\n}",
|
||
"vue3ts": "<template>\n\n <KoleCheckbox v-model=\"value\" :options=\"options\" disabled />\n</template>\n\n<script setup lang=\"ts\">\nimport { KoleCheckbox } from 'kole-ui/vue3';\n\nconst demoTitle = ref<string>('状态与使用场景');\nconst options = [\n { label: '邮件通知', value: 'email' },\n { label: '短信通知', value: 'sms' }\n];\n// 状态展示:整组禁用,保留已勾选值\nconst value = ref(['email']);\n</script>",
|
||
"vue2ts": "<template>\n\n <KoleCheckbox v-model=\"value\" :options=\"options\" disabled />\n</template>\n\n<script lang=\"ts\">\nimport Vue from 'vue';\nimport { KoleCheckbox } from 'kole-ui/vue2';\n\nexport default {\n components: { KoleCheckbox },\n data(): Record<string, unknown> {\n return {\n options: [\n { label: '邮件通知', value: 'email' },\n { label: '短信通知', value: 'sms' }\n ],\n // 状态展示:整组禁用,保留已勾选值\n value: ['email']\n };\n }\n};\n</script>"
|
||
},
|
||
"notes": [
|
||
"依据 frameworks/Checkbox.html:6 状态块(kole-checkbox-surface / kole-checkbox-desc 的只读展示场景)与 frameworks/Checkbox.jsx:4 的 disabled 态"
|
||
]
|
||
}
|
||
]
|
||
}
|