diff --git a/docs/docs/zh/components/Alert.mdx b/docs/docs/zh/components/Alert.mdx new file mode 100644 index 00000000..8bf4b46d --- /dev/null +++ b/docs/docs/zh/components/Alert.mdx @@ -0,0 +1,39 @@ +--- +group: 'components' +category: 'state' +title: Alert +description: '警告提示' +order: 1 +--- + +## 基础用法 + +警告提示,展现需要关注的信息。当某个页面或页面局部表单需要向用户显示警告当信息时使用,非浮层当静态展现形式,始终展现,不会自动消失,用户可以点击关闭。 +代码演示 + +```js live=true + + Kubesphere.io is an upstream project of the KubeSphere container management platform. + +``` + +## 不同类型的警告 + +通过 type 属性设置警告类型。 + +```js live=true + + + Kubesphere.io is an upstream project of the KubeSphere container management platform. + + + Kubesphere.io is an upstream project of the KubeSphere container management platform. + + + Kubesphere.io is an upstream project of the KubeSphere container management platform. + + + Kubesphere.io is an upstream project of the KubeSphere container management platform. + + +``` diff --git a/docs/docs/zh/components/Badge.mdx b/docs/docs/zh/components/Badge.mdx new file mode 100644 index 00000000..4ab01970 --- /dev/null +++ b/docs/docs/zh/components/Badge.mdx @@ -0,0 +1,60 @@ +--- +group: 'components' +category: 'state' +title: Badge +description: 'Badge图标右上角的圆形徽标数字' +order: 1 +--- + +## 基础用法 + +状态提示,单纯的 count 值 + +```js live=true + + 3 + 12 + +``` + +## 不同颜色标记 + +徽标内容可以是文本,也可以是数字,通过设置 color 属性可以设置组件的颜色 + +```js live=true + + KubeSphere + #12 + KubeSphere + KubeSphere + 9 + +``` + +## 带阴影标记 + +可以设置 shadow,给徽标增加阴影效果。 + +```js live=true + + + KubeSphere + + + #12 + + + KubeSphere + + + KubeSphere + + + 9 + + +``` + + + + diff --git a/docs/docs/zh/components/Banner.mdx b/docs/docs/zh/components/Banner.mdx new file mode 100644 index 00000000..24938171 --- /dev/null +++ b/docs/docs/zh/components/Banner.mdx @@ -0,0 +1,55 @@ +--- +group: 'components' +category: 'state' +title: Banner +description: '横幅' +order: 1 +--- + +## 何时使用 + +Banner 是整个展示页面重要的组成部分,一般介绍产品的名称和简介。 + +## 代码演示 + +Banner 可以展示产品图标和简介,BannerTip 可以展示子条目。 + +```js live=true +() => { + const data = [ + { + label: 'KubeSphere', + value: 'KubeSphere', + }, + { + label: 'Jenkins', + value: 'Jenkins', + }, + { + label: 'Kubernetes', + value: 'Kubernetes', + }, + ]; + const { Cluster } = KubeIcon; + return ( +
+ } + title="集群节点" + description="集群节点提供了当前集群下节点的运行状态,以及可以编辑删除节点" + navs={data} + > + + + 节点分为主控 (Master) 节点和工作 (Worker) 节点 + + + 节点污点 (Taints) 可以阻止某些容器组 (Pod) 副本部署至该节点中, 与容忍度 (Tolerations) + 一起工作确保容器组不会被调度到不合适的节点上 + + +
+ ) +} +``` + diff --git a/docs/docs/zh/components/Button.mdx b/docs/docs/zh/components/Button.mdx new file mode 100644 index 00000000..415ef700 --- /dev/null +++ b/docs/docs/zh/components/Button.mdx @@ -0,0 +1,91 @@ +--- +group: 'components' +category: 'state' +title: Button +description: '常用操作按钮' +order: 1 +--- + +## 基础用法 + +标记一组操作命令,响应用户的点击行为,触发相应的业务逻辑。 + +```js live=true + + + + + + +``` + +## 按钮样式 + +可以设置 Variant 来改变 button 的视觉效果。您可以设置值为 filled,text,outline, 或者 link。 + +```js live=true + + + + + + +``` + +## 按钮颜色 + +通过 color 设置按钮的颜色,默认有四种按钮颜色,default,success,error,warning + +```js live=true + + + + + + +``` + +## 按钮尺寸 + +可以使用 size 和 radius 属性可以改变按钮的大小以及圆角。你可以设置值为 xs,sm,md,lg,xl. + +```js live=true + + + + + + +``` diff --git a/docs/docs/zh/components/Card.mdx b/docs/docs/zh/components/Card.mdx new file mode 100644 index 00000000..2b5f7c77 --- /dev/null +++ b/docs/docs/zh/components/Card.mdx @@ -0,0 +1,54 @@ +--- +group: 'components' +category: 'state' +title: Card +description: '卡片' +order: 1 +--- + +## 基础用法 + +将信息聚合在卡片容器中展示。 + +```js live=true +() => ( +
+ + Kubesphere.io is an upstream project of the KubeSphere container management platform. + +
+) +``` + +## 带章节标题 + +```js live=true +() => ( +
+ + Introduced in HTTP/1.0, HTTP headers make this protocol easy to extend and experiment with. +
+ New functionality can even be introduced by a simple agreement between a client and a server +
+ about a new header's semantics. +
+
+) +``` + + +## 带hover状态 + +```js live=true +() => ( +
+ + Introduced in HTTP/1.0, HTTP headers make this protocol easy to extend and experiment with. +
+ New functionality can even be introduced by a simple agreement between a client and a server +
+ about a new header's semantics. +
+
+) +``` diff --git a/docs/docs/zh/components/Center.mdx b/docs/docs/zh/components/Center.mdx new file mode 100644 index 00000000..0bc37613 --- /dev/null +++ b/docs/docs/zh/components/Center.mdx @@ -0,0 +1,16 @@ +--- +group: 'components' +category: 'state' +title: Center +description: '组件内子元素水平垂直居中' +order: 1 +--- + +## 基础用法 + +定义一个 center 盒子,盒子内子元素垂直水平居中 + +```js live=true +
+ Center组件的子元素水平垂直居中 +
diff --git a/docs/docs/zh/components/Checkbox.mdx b/docs/docs/zh/components/Checkbox.mdx new file mode 100644 index 00000000..b50a1fbc --- /dev/null +++ b/docs/docs/zh/components/Checkbox.mdx @@ -0,0 +1,130 @@ +--- +group: 'components' +category: 'state' +title: Checkbox +description: '多选框' +order: 1 +--- + +## 何时使用 + +单独使用可以表示两种状态之间的切换,checkbox 一般用于状态标记,需要和提交的操作配合; +用于在一组可选项中进行多项选择时。 + +## 基础用法 + +通过 defaultChecked 属性来设置默认勾选。 + +```js live=true +() => { + const onChange = (e) => { + console.log(e); + }; + return ( + + + + + ); +} +``` + +## 禁用状态 + +多选框不可用状态 + +```js live=true +() => { + const [disabled, setDisabled] = React.useState(false); + const toggle = () => { + setDisabled(!disabled); + }; + return ( + <> +
+ +
+
+ +
+ + ); +} +``` + +## Indeterminate状态 + +indeterminate 属性用来表示 checkbox 的不确定状态,一般用于实现全选的效果 + +```js live=true +() => { + const [indeterminate, setIndeterminate] = React.useState(false); + const toggle = () => { + setIndeterminate(!indeterminate); + }; + return ( + <> +
+ +
+
+ +
+ + ); +} +``` + +## 勾选控制 + +可以通过外部按钮控制勾选框的两种状态直接的切换。 + +```js live=true +() => { + const [checked, setChecked] = React.useState(false); + const toggle = () => { + setChecked(!checked); + }; + return ( + <> +
+ +
+
+ +
+ + ); +} +``` + +## 多选框组 + +适用于多个勾选框绑定到同一个数组的情景,通过是否勾选来表示这一组选项中选中的项 + +```js live=true +() => { + const [value, setValue] = React.useState(['China']); + const toggle = () => { + if (value.length > 1) { + setValue(['China']); + } else { + setValue(['USA', 'China']); + } + }; + const onChange = (val) => { + console.log(val); + }; + return ( + <> + + + + +
+ +
+ + ); +} +``` diff --git a/docs/docs/zh/components/Container.mdx b/docs/docs/zh/components/Container.mdx new file mode 100644 index 00000000..e42ebe19 --- /dev/null +++ b/docs/docs/zh/components/Container.mdx @@ -0,0 +1,42 @@ +--- +group: 'components' +category: 'state' +title: Container +description: '组件容器' +order: 1 +--- + +## 基础用法 + +容器组件的内容从左到右排列 + +```js live=true + + 容器 + +``` + +## 容器的大小和内边距 + +使用 size 和 padding 可以设置容器的大小和内边距 + +```js live=true +<> + + 容器 + + + 容器 + + +``` + +## 流式布局 + +使用 fluid 可以设置流式布局,从左到右排列最大宽度为 100%。 + +```js live=true + + 容器 + +``` diff --git a/docs/docs/zh/components/Descriptions.mdx b/docs/docs/zh/components/Descriptions.mdx new file mode 100644 index 00000000..40f80628 --- /dev/null +++ b/docs/docs/zh/components/Descriptions.mdx @@ -0,0 +1,63 @@ +--- +group: 'components' +category: 'state' +title: Descriptions +description: '描述列表' +order: 1 +--- + +## 基础用法 + +列表形式展示多个字段 + +## 代码演示 + +```js live=true +() => ( + 10.233.74.19/32 +) +``` + +## 无样式 + +通过 variant 属性可以设置列表无样式展示,通过 label 属性可以设置描述列表的名称 + +```js live=true +() => ( +
+ + + KubeSphere + + + default + + +
+) +``` + +## 批量列表展示 + +通过给 data 属性传递数组,可以批量展示描述列表,通过给 variant 设置 default 可以显示列表的默认样式。 + +```js live=true +() => { + const data = [ + { label: 'Cluster', value: 'default' }, + { label: 'Project', value: 'ifcloud' }, + { label: 'Instance Name', value: 'dev-node1' }, + { label: 'Instance IP', value: '10.233.74.19' }, + ]; + return ( +
+ + + + + + +
+ ) +} +``` diff --git a/docs/docs/zh/components/Divider.mdx b/docs/docs/zh/components/Divider.mdx new file mode 100644 index 00000000..1a602c4d --- /dev/null +++ b/docs/docs/zh/components/Divider.mdx @@ -0,0 +1,59 @@ +--- +group: 'components' +category: 'state' +title: Divider +description: '间隔内容的分割线' +order: 1 +--- + +## 基础用法 + +对不同章节对文本段落进行分割 + +对行内文字/链接进行分割 + + +```js live=true + + + +``` + +## 分割线的样式 +使用variant可以设置分割线的显示形式,默认为 solid (实线),dotted (点线),dashed (虚线) +当分割线为垂直方向时,使用margins设置分割线左右的外边距 +当分割线为水平方向时,使用margins设置分割线上下左右的外边距 + +```js live=true + + + + + +``` + +## 分割线的方向 + +direction 设置分割线的方向,vertical 为垂直方向,horizontal 为水平方向 + +```js live=true + + + + + + + +``` + +## 分割线的标签 + +label 设置分割线的标签名称,labelPosition 设置标签的位置,默认为左侧。 + +```js live=true + + + + + +``` diff --git a/docs/docs/zh/components/Dropdown.mdx b/docs/docs/zh/components/Dropdown.mdx new file mode 100644 index 00000000..b5573910 --- /dev/null +++ b/docs/docs/zh/components/Dropdown.mdx @@ -0,0 +1,39 @@ +--- +group: 'components' +category: 'state' +title: Dropdown +description: '下拉菜单' +order: 1 +--- + +## 何时使用 + +使用下拉菜单让用户从一系列选项中选择一个选项或操作。 + +## 基础用法 + +通过 content 属性设置下拉菜单,通过 trigger 属性设置触发方式,默认为 click + +```js live=true +() => { +const { Add, Stop, Pen, Trash, More } = KubeIcon; +const MenuComponent = ( + + menu label + }>创建 + }>停止调度 + }>Edit + }>Delete + +); +return ( +
+ + + +
+) +} +``` diff --git a/docs/docs/zh/components/Entity.mdx b/docs/docs/zh/components/Entity.mdx new file mode 100644 index 00000000..ff2e9611 --- /dev/null +++ b/docs/docs/zh/components/Entity.mdx @@ -0,0 +1,44 @@ +group: 'components' +category: 'state' +title: Entity +description: '实体' +order: 1 +--- + +## 基础用法 + +实体,可以用来表示一种资源的多种特征。 + +## 代码演示 + +实体的一种特征的显示区域。 + +```js live=true +() => +``` + +## 实体的多种特征显示区域 + +```js live=true +() => ( + + + + + + +) +``` + +## 带hover效果 + +```js live=true +() => ( + + + + + + +) +``` diff --git a/docs/docs/zh/components/Form.mdx b/docs/docs/zh/components/Form.mdx new file mode 100644 index 00000000..d9f0e5b1 --- /dev/null +++ b/docs/docs/zh/components/Form.mdx @@ -0,0 +1,121 @@ +--- +group: 'components' +category: 'state' +title: Form +description: '表单' +order: 1 +--- + +## 基础用法 + +表单控件,用于创建一个实体或收集信息,需要对输入对数据类型进行校验时。 + +## 代码演示 + +```js live=true +() => { + const onFinish = (values) => { + console.log(values); + }; + return ( +
+ + + + + + + + + + + + + + + + + + +
+ ) +} +``` + +## 动态表单 + +可以新增表单项格数,自定义表单项的输入内容 + +```js live=true +() => { + const [form] = useForm(); + const getFieldErrors = () => { + console.log(form.validateFields()); + }; + const onFinish = (values) => { + console.log(values); + }; + const { Add, Trash } = KubeIcon; + return ( +
+ + {(fields, { add, remove }) => ( + <> + {fields.map(({ key, name, ...restField }) => ( + + + + + + + + + + + + + + + + ))} + + + + + + + )} + + +
+ ); +} +``` diff --git a/docs/docs/zh/components/Grid.mdx b/docs/docs/zh/components/Grid.mdx new file mode 100644 index 00000000..1a2967c1 --- /dev/null +++ b/docs/docs/zh/components/Grid.mdx @@ -0,0 +1,121 @@ +--- +group: 'components' +category: 'state' +title: Grid 栅格 +description: '基于Flexbox的12栅格系统' +order: 1 +--- + +## 基础用法 + +布局的栅格化系统,是基于行(row)和列(col)来定义信息区块的外部框架,以保证页面的每个区域能够稳健地排布起来。 + +```js live=true + + +
col-4
+ + +
col-4
+ + +
col-4
+ +
+``` + +## 设置栅格间距 + +Gutter 用于设置栅格间距,使用数组形式同时设置[水平间距,垂直间距] + +```js live=true + + +
1
+ + +
2
+ + +
3
+ +
+``` + +## 多行 + +多行排列,栅格系统默认当栅格数是十二,当没有自定义栅格数且一行当栅格超过了十二,那么剩余当栅格将会换行排列。 + +```js live=true + + +
1
+ + +
2
+ + +
3
+ + +
4
+ +
+``` + +## Grow自适应 + +栅格自适应宽度,在一行中,栅格数超过12时,剩余栅格占满一行。 + +```js live=true + + +
col-4
+ + +
col-4
+ + +
col-4
+ + +
col-4
+ +
+``` + +## Offset偏移 + +通过给col组件设置 offset,可以控制栅格偏移的距离。 + +```js live=true + + +
col-3
+ + +
col-3
+ + +
col-3
+ +
+``` + +## Column大小 + +默认是十二栅格,通过给Row组件设置 columns,可以自定义栅格数。 + +```js live=true + + +
col-12
+ + +
col-6
+ + +
col-6
+ +
+``` diff --git a/docs/docs/zh/components/Group.mdx b/docs/docs/zh/components/Group.mdx new file mode 100644 index 00000000..e7eaecb7 --- /dev/null +++ b/docs/docs/zh/components/Group.mdx @@ -0,0 +1,85 @@ +--- +group: 'components' +category: 'state' +title: Group +description: '垂直居中的弹性盒子' +order: 1 +--- + +## 基础用法 + +基于 flexbox 的弹性盒布局,默认垂直方向居中,水平方向可以自定义对齐方式。 + +```js live=true + + + + + +``` + +## 设置水平方向对齐方式 + +使用 Position 设置水平方向上对齐方式,可以设置为 center,right,left,apart 四种参数。 + +```js live=true +<> + + + + + + + + + + + +``` + +## 设置元素间隔 + +使用 spacing 设置水平方向的元素之间的间隔, spacing参数可以设置为 "number", "xs" , "sm" , "md" , "lg" , "xl" + +```js live=true +<> + + + + + + + + + + + +``` + +## 设置元素排列方向 + +使用 direction 设置元素的排列方向,同flex-direction属性参数一致。 +- row(默认值):主轴为水平方向,起点在左端 +- column:主轴为垂直方向,起点在上方 +- row-reverse:主轴为水平方向,起点在上方 +- column-reverse: 主轴为垂直方向,起点在下方 + +```js live=true + + + + + +``` + +## Grow自适应宽度 + +grow设置元素占满整个行。 + +```js live=true + + + + + +``` diff --git a/docs/docs/zh/components/Input.mdx b/docs/docs/zh/components/Input.mdx new file mode 100644 index 00000000..8bba837d --- /dev/null +++ b/docs/docs/zh/components/Input.mdx @@ -0,0 +1,49 @@ +--- +group: 'components' +category: 'state' +title: Input +description: '文本输入框' +order: 1 +--- + +## 基础用法 + +通过鼠标或键盘输入字符 + +```js live=true +() => +``` + +## 搜索框 + +```js live=true +() => { +const { Magnifier, Appcenter } = KubeIcon; +return ( + + } suffix={} /> + } /> + +) +} +``` + +## 输入框禁用状态 + +```js live=true +() => +``` + +## 前置/后置标签 + +```js live=true +() => { + const { Appcenter } = KubeIcon; + return ( + + + } /> + + ) +} +``` diff --git a/docs/docs/zh/components/InputNumber.mdx b/docs/docs/zh/components/InputNumber.mdx new file mode 100644 index 00000000..191ff974 --- /dev/null +++ b/docs/docs/zh/components/InputNumber.mdx @@ -0,0 +1,21 @@ +--- +group: 'components' +category: 'state' +title: InputNumber +description: '数字输入框' +order: 1 +--- + +## 基础用法 + +通过鼠标或键盘输入范围内的数值 + +```js live=true +() => +``` + +## 禁用数字输入框 + +```js live=true +() => +``` diff --git a/docs/docs/zh/components/Loading.mdx b/docs/docs/zh/components/Loading.mdx new file mode 100644 index 00000000..3d626cc1 --- /dev/null +++ b/docs/docs/zh/components/Loading.mdx @@ -0,0 +1,21 @@ +--- +group: 'components' +category: 'state' +title: Loading +description: '加载中' +order: 1 +--- + +## 基础用法 + +加载数据时显示加载中动画效果。 + +```js live=true +() => ( + + + + + +) +``` diff --git a/docs/docs/zh/components/LoadingOverlay.mdx b/docs/docs/zh/components/LoadingOverlay.mdx new file mode 100644 index 00000000..70a22d9c --- /dev/null +++ b/docs/docs/zh/components/LoadingOverlay.mdx @@ -0,0 +1,21 @@ +--- +group: 'components' +category: 'state' +title: LoadingOverlay +description: '覆盖加载' +order: 1 +--- + +## 使用方法 + +加载中的状态显示在卡片的内容上面。 + +## 代码演示 +```js live=true +() => ( + + + 内容 + +) +``` diff --git a/docs/docs/zh/components/Menu.mdx b/docs/docs/zh/components/Menu.mdx new file mode 100644 index 00000000..555774dd --- /dev/null +++ b/docs/docs/zh/components/Menu.mdx @@ -0,0 +1,33 @@ +--- +group: 'components' +category: 'state' +title: Menu +description: '为页面和功能提供导航的菜单列表' +order: 1 +--- + +## 何时使用 + +菜单提供类目和功能,使用多级结构来收纳和排列网站架构。 + +## 基础用法 + +在Menu组件中嵌套MenuItem组件。 + +```js live=true +() => { + const { Add, Stop, Pen, Trash } = KubeIcon; + return ( + + + menu label + }>创建 + }>停止调度 + }>Edit + + }>Delete + + + ) +} +``` diff --git a/docs/docs/zh/components/Modal.mdx b/docs/docs/zh/components/Modal.mdx new file mode 100644 index 00000000..0b64f9bb --- /dev/null +++ b/docs/docs/zh/components/Modal.mdx @@ -0,0 +1,89 @@ +--- +group: 'components' +category: 'state' +title: Modal +description: '对话框' +order: 1 +--- + +## 基础用法 + +模态对话框,需要用户处理事务,又不希望跳转页面以致打断工作流程时,可以使用 Modal 在当前页面打开一个浮层,承载相应的操作。 + +```js live=true +() => { + const [visible, setVisible] = React.useState(false); + const { Cluster } = KubeIcon; + const ref = React.createRef(); + + const openModal = () => { + setVisible(true); + }; + + const closeModal = () => { + console.log(ref.current); + setVisible(false); + }; + + return ( + <> + + } + onCancel={closeModal} + > + Modal content + + + ); +} +``` + +## 重要模态框 + +```js live=true +() => { + const modal = useModal(); + + const openChildModal = () => { + modal.open({ + title: 'Imperative Modal', + description: 'description text', + content: 'modal content', + }); + }; + + const content = ; + + const openModal = () => { + modal.open({ + title: 'Imperative Modal', + description: 'description text', + content, + }); + }; + + return ; +} +``` + +## 确认模态框 + +```js live=true +() => { + const modal = useModal(); + return ( + + ); +} +``` diff --git a/docs/docs/zh/components/Navs.mdx b/docs/docs/zh/components/Navs.mdx new file mode 100644 index 00000000..d9a02d9b --- /dev/null +++ b/docs/docs/zh/components/Navs.mdx @@ -0,0 +1,22 @@ +--- +group: 'components' +category: 'state' +title: Navs +description: '导航菜单' +order: 1 +--- + +## 基础用法 + +```js live=true +() => { + const data = [ + { value: 'KubeSphere',label:'KubeSphere' }, + { value: 'Jenkins',label:'Jenkins' }, + { value: 'Kubernetes',label:'Kubernetes' } + ] + return ( + + )33 +} +``` diff --git a/docs/docs/zh/components/Notify.mdx b/docs/docs/zh/components/Notify.mdx new file mode 100644 index 00000000..740cb5b4 --- /dev/null +++ b/docs/docs/zh/components/Notify.mdx @@ -0,0 +1,73 @@ +--- +group: 'components' +category: 'state' +title: Notify +description: '通知提醒框' +order: 1 +--- + +## 基础用法 + +全局展示通知提醒信息 + +```js live=true +() => { + const trigger = () => notify('Here is your Info.'); + const triggerSuccess = () => notify.success('Here is your success message.'); + const triggerError = () => notify.error('Here is your error message.'); + const triggerLoading = () => notify.loading('Here is your error message.'); + return ( +
+ + + + + + + +
+ ); +} +``` + +## 长消息通知 + +```js live=true +() => { + const trigger = () => + notify.success( + 'Here is your toast.Here is your toast.Here is your toast.Here is your toast.Here is your toast.Here is your toast.Here is your toast.' + ); + return ( +
+ + +
+ ); +} +``` + +## 更新通知内容 + +```js live=true +() => { + let notifyId; + const trigger = () => { + notifyId = notify.loading('uploading...'); + }; + + const update = () => { + notify.success('upload success !', { id: notifyId }); + }; + + return ( +
+ + + + + +
+ ); +} +``` diff --git a/docs/docs/zh/components/Popover.mdx b/docs/docs/zh/components/Popover.mdx new file mode 100644 index 00000000..1e1c72ef --- /dev/null +++ b/docs/docs/zh/components/Popover.mdx @@ -0,0 +1,24 @@ +--- +group: 'components' +category: 'state' +title: Popover +description: '点击/鼠标移入元素,弹出气泡式的卡片浮层' +order: 1 +--- + +## 基础用法 + +当目标元素有进一步当描述和相关操作时,可以收纳到卡片中,根据用户到操作行为进行展现。和 Tooltip 的区别是,用户可以对浮层上对元素进行操作,因此它可以承载更复杂对内容,比如链接或按钮等。 + +## 代码演示 + +```js live=true +() => ( +
+ + + +
+) +``` + diff --git a/docs/docs/zh/components/Radio.mdx b/docs/docs/zh/components/Radio.mdx new file mode 100644 index 00000000..6509c413 --- /dev/null +++ b/docs/docs/zh/components/Radio.mdx @@ -0,0 +1,74 @@ +--- +group: 'components' +category: 'state' +title: Radio +description: '单选按钮' +order: 1 +--- + +## 何时使用 + +在一组备选项中进行单选 + +## 基础用法 + +通过value属性设置值,label属性设置按钮标签 + +```js live=true +() => +``` + +## 默认选中 + +设置初始值 + +```js live=true +() => +``` + +## 单选组合 + +```js live=true +() => { + const onChange = (val) => { + console.log(val); + }; + return ( + <> + + + + + + ); +} +``` + +## 控制单选组合 + +```js live=true +() => { + const [value, setValue] = React.useState('China'); + const toggle = () => { + if (value === 'USA') { + setValue('China'); + } else { + setValue('USA'); + } + }; + const onChange = (val) => { + console.log(val); + }; + return ( + <> + + + + +
+ +
+ + ); +} +``` diff --git a/docs/docs/zh/components/Select.mdx b/docs/docs/zh/components/Select.mdx new file mode 100644 index 00000000..b4b3ad92 --- /dev/null +++ b/docs/docs/zh/components/Select.mdx @@ -0,0 +1,54 @@ +--- +group: 'components' +category: 'state' +title: Select +description: '选择器' +order: 1 +--- + +## 何时使用 + +选择器常用在表单中,以帮助用户快速输入表单内容,选择器适合有固定选项的数据录入,或者大佬数据需要借助选择器筛选以输入表单内容。 + +## 基础用法 + +下拉选择器,弹出一个下拉菜单给用户进行操作。 + +```js live=true +() => ( + +) +``` + +## 带搜索框 + +展开后可对选项进行搜索。 + +```js live=true +() => ( + +) +``` + +## 多选 + +多选,从已有条目中选择。 + +```js live=true +() => ( + +) +``` diff --git a/docs/docs/zh/components/StatusDot.mdx b/docs/docs/zh/components/StatusDot.mdx new file mode 100644 index 00000000..4bc87208 --- /dev/null +++ b/docs/docs/zh/components/StatusDot.mdx @@ -0,0 +1,57 @@ +--- +group: 'components' +category: 'state' +title: StatusDot +description: '状态点' +order: 1 +--- + +## 基础用法 + +状态点,表示任务进行状态 + +## 代码演示 + +```js live=true +() => ( + + Ready + Warning + + + + +) +``` + +## 无标签状态点 + +以不同点颜色点状态点区分状态 + +```js live=true +() => ( + + + + + + +) +``` + +## 运动的状态点 + +```js live=true +() => ( + + + + + 启动中 + + + 重启中 + + +) +``` diff --git a/docs/docs/zh/components/Switch.mdx b/docs/docs/zh/components/Switch.mdx new file mode 100644 index 00000000..3f575d92 --- /dev/null +++ b/docs/docs/zh/components/Switch.mdx @@ -0,0 +1,35 @@ +--- +group: 'components' +category: 'state' +title: Switch +description: '开关选择器' +order: 1 +--- + +## 基础用法 + +用于需要表示开关状态或者两种状态直接的切换。 + +```js live=true +() => +``` + +## 文字 + +带有文字的开关选择器 + +```js live=true +() => +``` + +## 禁用状态 + +```js live=true +() => +``` + +## 按钮模式 + +```js live=true +() => +``` diff --git a/docs/docs/zh/components/Tabs.mdx b/docs/docs/zh/components/Tabs.mdx new file mode 100644 index 00000000..6602eca7 --- /dev/null +++ b/docs/docs/zh/components/Tabs.mdx @@ -0,0 +1,143 @@ +--- +group: 'components' +category: 'state' +title: Radio +description: '选项卡切换组件' +order: 1 +--- + +## 基础用法 + +提供平级的区域将大块内容进行收纳和展现,保持界面整洁。 + +## 代码演示 + +```js live=true +() => ( + + + one + + + Two + + + Three + + +) +``` + +## 卡片式页签 + +```js live=true +() => ( + <> + + + one + + + Two + + + Three + + + + + + one + + + Two + + + Three + + + +) +``` + +## 竖形页签 + +```js live=true +() => ( + <> + + + one + + + Two + + + Three + + + + + + one + + + Two + + + Three + + + +) +``` + +## 页签标题位置变换 + +```js live=true +() => ( + <> + + + one + + + Two + + + Three + + + + + + one + + + Two + + + Three + + + +) +``` + +## 放大页签 + +```js live=true +() => ( + + + one + + + Two + + + Three + + +) +``` diff --git a/docs/docs/zh/components/Tag.mdx b/docs/docs/zh/components/Tag.mdx new file mode 100644 index 00000000..cffbd50b --- /dev/null +++ b/docs/docs/zh/components/Tag.mdx @@ -0,0 +1,55 @@ +--- +group: 'components' +category: 'state' +title: Tag +description: '用于标记和给事物分类,也可用作独立内容的展示。' +order: 1 +--- + +## 何时使用 + +用于标记事物的属性和维度;进行分类;展示独立内容。 + +## 基本用法 + +```js live=true +() => ( + + KubeSphere + KubeSphere + +) +``` + +## 不同颜色标签 + +```js live=true +() => ( + + KubeSphere + KubeSphere + KubeSphere + KubeSphere + + KubeSphere + + +) +``` + +## 带图标标签 + +```js live=true +() => { + const { Add } = KubeIcon; + return ( + } + titleStyle={{ backgroundColor: 'transparent', margin: '0', padding: '0 3px' }} + > + Add + + ) +} +``` diff --git a/docs/docs/zh/components/Text.mdx b/docs/docs/zh/components/Text.mdx new file mode 100644 index 00000000..d01f2a62 --- /dev/null +++ b/docs/docs/zh/components/Text.mdx @@ -0,0 +1,56 @@ +--- +group: 'components' +category: 'state' +title: Text +description: '文本' +order: 1 +--- + +## 基础用法 + +用来设置不同状态的文本。 + +```js live=true +text normal +``` + +## 带颜色的文本 + +使用 color 可以设置不同颜色的文本,参数值有 warning,error, success。 + +```js live=true + + text warning + text error + text success + +``` + +## 不同样式的文本 + +可以给 text 文本设置样式。 + +```js live=true + + text underline + text delete + text italic + text weight + text weight + +``` + +## 不同大小字体的文本 + +可以使用 variant 设置文本的字体大小。 + +```js live=true + + h1 title + h2 title + h3 title + h4 title + h5 title + h6 title + +``` diff --git a/docs/docs/zh/components/Tooltip.mdx b/docs/docs/zh/components/Tooltip.mdx new file mode 100644 index 00000000..c4cf12cb --- /dev/null +++ b/docs/docs/zh/components/Tooltip.mdx @@ -0,0 +1,149 @@ +--- +group: 'components' +category: 'state' +title: Tooltip +description: '文字提示' +order: 1 +--- + + +## 基础用法 + +进行标记和分类带小标签 + +## 代码演示 + +```js live=true +() => ( + + + +) +``` + +## 位置 + +```js live=true +() => ( + <> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +) +``` + +## 触发事件 + +点击菜单项后会触发事件,用户可以通过相应的菜单项 key 进行不同的操作。 + +```js live=true +() => ( + + + + + + + + +) +``` + +## 箭头 + +可以设置是否显示一个箭头 + +```js live=true +() => ( + + + +) +``` diff --git a/docs/lib/menuData.ts b/docs/lib/menuData.ts index 13ba9ef9..7caeed9b 100644 --- a/docs/lib/menuData.ts +++ b/docs/lib/menuData.ts @@ -16,28 +16,47 @@ export default { }, { title: 'General', - menu: ['Button', 'Text', 'Icon'], + menu: [ + 'Button', + 'Text', + // 'Icon' + ], }, { title: 'Data Entry', menu: [ - 'AutoComplete', 'Checkbox', 'DatePicker', 'Input', + 'InputNumber', 'Radio', 'Select', - 'Slider', + // 'Slider', 'Switch', ], }, { title: 'Data Display', - menu: ['Avatar', 'Badge', 'Card', 'Collapse', 'Popover', 'Tabs', 'Tag', 'Tooltip'], + menu: [ + 'Badge', + 'Card', + 'Popover', + 'Tabs', + 'Tag', + 'Tooltip', + 'menu', + 'Navs', + 'Notify', + 'Banner', + 'Descriptions', + 'Entity', + 'Form', + 'Dropdown', + ], }, { title: 'Feedback', - menu: ['Alert', 'Drawer', 'Loading', 'LoadingOverlay', 'Modal', 'Progress'], + menu: ['Alert', 'Loading', 'LoadingOverlay', 'Modal', 'StatusDot'], }, ], hooks: [ diff --git a/docs/pages/[category]/[slug].tsx b/docs/pages/[category]/[slug].tsx index 06d953a2..edc722b0 100644 --- a/docs/pages/[category]/[slug].tsx +++ b/docs/pages/[category]/[slug].tsx @@ -4,6 +4,7 @@ import { MDXRemote } from 'next-mdx-remote'; import styled from 'styled-components'; import { Tabs, Tab } from '@kubed/components'; import * as Kubed from '@kubed/components'; +import * as KubeIcon from '@kubed/icons'; import { serverSideTranslations } from 'next-i18next/serverSideTranslations'; import { getMdxData } from '../../lib/getMdx'; import { DocLayout } from '../../lib/layouts/DocLayout'; @@ -16,6 +17,7 @@ const Pre = ({ children }: React.PropsWithChildren) => <>{children}; const components = { ...Kubed, + KubeIcon, pre: Pre, code: CodeBox, }; diff --git a/packages/components/src/index.ts b/packages/components/src/index.ts index c0367249..ad55dbfb 100644 --- a/packages/components/src/index.ts +++ b/packages/components/src/index.ts @@ -22,6 +22,7 @@ export { Descriptions, Description } from './Descriptions/Descriptions'; export { Entity, Field } from './Entity/Entity'; export { Dropdown } from './Dropdown/Dropdown'; export { Loading } from './Loading/Loading'; +export { LoadingOverlay } from './LoadingOverlay/LoadingOverlay'; export { Input } from './Input/Input'; export { Form, FormItem, FormList, useForm } from './Form/Form'; export { default as Select } from './Select/Select'; @@ -30,3 +31,6 @@ export { CheckboxGroup, Checkbox } from './Checkbox/Checkbox'; export { RadioGroup, Radio } from './Radio/Radio'; export { Switch } from './Switch/Switch'; export { InputNumber } from './InputNumber/InputNumber'; +export { Banner } from './Banner/Banner'; +export { BannerTip } from './Banner/BannerTip'; +export { Notify, notify } from './Notify/Notify';