@rainbow-oh/yee-c 0.1.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/Alert/alert.js +10 -4
- package/dist/cjs/Alert/style/index.less +3 -0
- package/dist/cjs/Anchor/anchor-item.js +6 -4
- package/dist/cjs/Anchor/anchor.js +38 -22
- package/dist/cjs/Anchor/demo/auto.d.ts +11 -0
- package/dist/cjs/Anchor/demo/auto.js +85 -0
- package/dist/cjs/Anchor/demo/basic.js +7 -1
- package/dist/cjs/Anchor/demo/controlled.js +42 -30
- package/dist/cjs/Anchor/interface.d.ts +2 -0
- package/dist/cjs/Anchor/style/index.less +2 -2
- package/dist/cjs/Button/button.d.ts +1 -1
- package/dist/cjs/Button/button.js +2 -2
- package/dist/cjs/Button/style/index.less +23 -8
- package/dist/cjs/Card/demo/collapsible.js +2 -1
- package/dist/cjs/Carousel/demo/arrows.js +1 -1
- package/dist/cjs/Carousel/demo/autoplay.js +1 -1
- package/dist/cjs/Carousel/demo/effect.js +1 -1
- package/dist/cjs/Carousel/demo/position.js +1 -1
- package/dist/cjs/Checkbox/checkbox-group.js +4 -1
- package/dist/cjs/Checkbox/demo/group.js +1 -0
- package/dist/cjs/Checkbox/interface.d.ts +5 -0
- package/dist/cjs/Checkbox/style/index.less +21 -1
- package/dist/cjs/Config-Provider/interface.d.ts +4 -0
- package/dist/cjs/Dropdown/demo/placement.js +2 -1
- package/dist/cjs/Dropdown/dropdown.js +3 -0
- package/dist/cjs/Dropdown/style/index.less +6 -0
- package/dist/cjs/Form/Field.js +64 -12
- package/dist/cjs/Form/Group.js +3 -2
- package/dist/cjs/Form/demo/form-table.js +1 -8
- package/dist/cjs/Form/demo/tooltip.d.ts +3 -0
- package/dist/cjs/Form/demo/tooltip.js +84 -0
- package/dist/cjs/Form/interface.d.ts +51 -2
- package/dist/cjs/Form/style/index.less +22 -7
- package/dist/cjs/Menu/style/index.less +2 -2
- package/dist/cjs/Popconfirm/popconfirm.js +1 -1
- package/dist/cjs/Popconfirm/style/index.less +6 -0
- package/dist/cjs/Popover/popover.js +1 -1
- package/dist/cjs/Popover/style/index.less +6 -0
- package/dist/cjs/Progress/progress.js +2 -2
- package/dist/cjs/Radio/demo/button.js +1 -0
- package/dist/cjs/Radio/interface.d.ts +4 -0
- package/dist/cjs/Radio/radio-group.js +28 -14
- package/dist/cjs/Radio/radio.js +3 -1
- package/dist/cjs/Radio/style/index.less +26 -5
- package/dist/cjs/Segmented/demo/basic.d.ts +3 -0
- package/dist/cjs/Segmented/demo/basic.js +51 -0
- package/dist/cjs/Segmented/demo/block.d.ts +3 -0
- package/dist/cjs/Segmented/demo/block.js +49 -0
- package/dist/cjs/Segmented/demo/disabled.d.ts +3 -0
- package/dist/cjs/Segmented/demo/disabled.js +47 -0
- package/dist/cjs/Segmented/demo/size.d.ts +3 -0
- package/dist/cjs/Segmented/demo/size.js +37 -0
- package/dist/cjs/Segmented/index.d.ts +3 -0
- package/dist/cjs/Segmented/index.js +36 -0
- package/dist/cjs/Segmented/interface.d.ts +82 -0
- package/dist/cjs/Segmented/interface.js +17 -0
- package/dist/cjs/Segmented/segmented.d.ts +5 -0
- package/dist/cjs/Segmented/segmented.js +177 -0
- package/dist/cjs/Segmented/style/index.less +104 -0
- package/dist/cjs/Select/option.js +3 -2
- package/dist/cjs/Select/options.js +9 -1
- package/dist/cjs/Select/select.js +1 -0
- package/dist/cjs/Skeleton/demo/basic.js +1 -1
- package/dist/cjs/Space/interface.d.ts +4 -0
- package/dist/cjs/Space/space.js +36 -16
- package/dist/cjs/Spin/spin.js +2 -1
- package/dist/cjs/Splitter/demo/basic.js +1 -1
- package/dist/cjs/Splitter/demo/vertical.js +23 -1
- package/dist/cjs/Splitter/index.d.ts +1 -1
- package/dist/cjs/Splitter/interface.d.ts +9 -3
- package/dist/cjs/Splitter/splitter-handler.d.ts +1 -1
- package/dist/cjs/Splitter/splitter-handler.js +2 -1
- package/dist/cjs/Splitter/splitter.d.ts +2 -9
- package/dist/cjs/Splitter/splitter.js +53 -50
- package/dist/cjs/Splitter/style/index.less +21 -0
- package/dist/cjs/Steps/step.js +1 -1
- package/dist/cjs/Steps/style/index.less +8 -2
- package/dist/cjs/Switch/demo/content.js +22 -1
- package/dist/cjs/Switch/style/index.less +16 -0
- package/dist/cjs/Switch/switch.js +9 -2
- package/dist/cjs/Table/demo/size.js +1 -1
- package/dist/cjs/Table/interface.d.ts +5 -1
- package/dist/cjs/Table/theader/cell.js +4 -5
- package/dist/cjs/Tabs/hooks/useTabScroll.d.ts +1 -1
- package/dist/cjs/Tabs/interface.d.ts +1 -1
- package/dist/cjs/Tabs/style/index.less +4 -0
- package/dist/cjs/Tabs/tab-header/index.js +56 -25
- package/dist/cjs/Tag/demo/size.js +1 -1
- package/dist/cjs/Tag/style/index.less +1 -0
- package/dist/cjs/Tooltip/interface.d.ts +4 -0
- package/dist/cjs/Tooltip/style/index.less +8 -8
- package/dist/cjs/Tooltip/tooltip.js +11 -3
- package/dist/cjs/Tour/demo/basic.d.ts +3 -0
- package/dist/cjs/Tour/demo/basic.js +69 -0
- package/dist/cjs/Tour/demo/indicators.d.ts +3 -0
- package/dist/cjs/Tour/demo/indicators.js +76 -0
- package/dist/cjs/Tour/demo/placement.d.ts +3 -0
- package/dist/cjs/Tour/demo/placement.js +80 -0
- package/dist/cjs/Tour/demo/scroll.d.ts +3 -0
- package/dist/cjs/Tour/demo/scroll.js +72 -0
- package/dist/cjs/Tour/index.d.ts +3 -0
- package/dist/cjs/Tour/index.js +36 -0
- package/dist/cjs/Tour/interface.d.ts +118 -0
- package/dist/cjs/Tour/interface.js +17 -0
- package/dist/cjs/Tour/style/index.less +103 -0
- package/dist/cjs/Tour/tour.d.ts +5 -0
- package/dist/cjs/Tour/tour.js +403 -0
- package/dist/cjs/Tree/demo/checkable.js +6 -6
- package/dist/cjs/Tree/demo/draggable.d.ts +3 -0
- package/dist/cjs/Tree/demo/draggable.js +88 -0
- package/dist/cjs/Tree/demo/expanded.js +6 -6
- package/dist/cjs/Tree/index.d.ts +1 -0
- package/dist/cjs/Tree/index.js +3 -1
- package/dist/cjs/Tree/interface.d.ts +26 -0
- package/dist/cjs/Tree/style/index.less +25 -0
- package/dist/cjs/Tree/tree-node.js +38 -4
- package/dist/cjs/Tree/tree.d.ts +12 -1
- package/dist/cjs/Tree/tree.js +174 -18
- package/dist/cjs/Tree/utils/tree-tools.d.ts +21 -0
- package/dist/cjs/Tree/utils/tree-tools.js +88 -0
- package/dist/cjs/Trigger/style/index.less +17 -0
- package/dist/cjs/Trigger/trigger.js +3 -1
- package/dist/cjs/hooks/useDebounceFunction.d.ts +1 -1
- package/dist/cjs/hooks/useLayoutEffect.d.ts +1 -1
- package/dist/cjs/index.d.ts +4 -0
- package/dist/cjs/index.js +6 -0
- package/dist/cjs/locale/interface.d.ts +7 -0
- package/dist/cjs/locale/lang/en_US.js +6 -0
- package/dist/cjs/locale/lang/ja_JP.js +6 -0
- package/dist/cjs/locale/lang/zh_CN.js +6 -0
- package/dist/cjs/locale/lang/zh_TW.js +6 -0
- package/dist/cjs/style/color.blue.css +1 -1
- package/dist/cjs/style/color.crimson.css +1 -1
- package/dist/cjs/style/color.css +18 -1
- package/dist/cjs/style/size.css +51 -4
- package/dist/cjs/style/themes.css +3 -3
- package/dist/cjs/style/variables.css +70 -6
- package/dist/cjs/utils/debounce.d.ts +6 -1
- package/dist/cjs/utils/debounce.js +9 -1
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/esm/Alert/alert.js +24 -8
- package/dist/esm/Alert/style/index.less +3 -0
- package/dist/esm/Anchor/anchor-item.js +6 -3
- package/dist/esm/Anchor/anchor.js +38 -19
- package/dist/esm/Anchor/demo/auto.d.ts +11 -0
- package/dist/esm/Anchor/demo/auto.js +62 -0
- package/dist/esm/Anchor/demo/basic.js +3 -1
- package/dist/esm/Anchor/demo/controlled.js +14 -9
- package/dist/esm/Anchor/interface.d.ts +2 -0
- package/dist/esm/Anchor/style/index.less +2 -2
- package/dist/esm/Button/button.d.ts +1 -1
- package/dist/esm/Button/button.js +2 -2
- package/dist/esm/Button/style/index.less +23 -8
- package/dist/esm/Card/demo/collapsible.js +2 -1
- package/dist/esm/Carousel/demo/arrows.js +1 -1
- package/dist/esm/Carousel/demo/autoplay.js +1 -1
- package/dist/esm/Carousel/demo/effect.js +1 -1
- package/dist/esm/Carousel/demo/position.js +1 -1
- package/dist/esm/Checkbox/checkbox-group.js +4 -2
- package/dist/esm/Checkbox/demo/group.js +1 -0
- package/dist/esm/Checkbox/interface.d.ts +5 -0
- package/dist/esm/Checkbox/style/index.less +21 -1
- package/dist/esm/Config-Provider/interface.d.ts +4 -0
- package/dist/esm/Dropdown/demo/placement.js +2 -1
- package/dist/esm/Dropdown/dropdown.js +6 -1
- package/dist/esm/Dropdown/style/index.less +6 -0
- package/dist/esm/Form/Field.js +53 -8
- package/dist/esm/Form/Group.js +4 -2
- package/dist/esm/Form/demo/form-table.js +8 -6
- package/dist/esm/Form/demo/tooltip.d.ts +3 -0
- package/dist/esm/Form/demo/tooltip.js +59 -0
- package/dist/esm/Form/interface.d.ts +51 -2
- package/dist/esm/Form/style/index.less +22 -7
- package/dist/esm/Menu/style/index.less +2 -2
- package/dist/esm/Popconfirm/popconfirm.js +3 -1
- package/dist/esm/Popconfirm/style/index.less +6 -0
- package/dist/esm/Popover/popover.js +3 -1
- package/dist/esm/Popover/style/index.less +6 -0
- package/dist/esm/Progress/progress.js +5 -5
- package/dist/esm/Radio/demo/button.js +1 -0
- package/dist/esm/Radio/interface.d.ts +4 -0
- package/dist/esm/Radio/radio-group.js +9 -2
- package/dist/esm/Radio/radio.js +3 -1
- package/dist/esm/Radio/style/index.less +26 -5
- package/dist/esm/Segmented/demo/basic.d.ts +3 -0
- package/dist/esm/Segmented/demo/basic.js +33 -0
- package/dist/esm/Segmented/demo/block.d.ts +3 -0
- package/dist/esm/Segmented/demo/block.js +29 -0
- package/dist/esm/Segmented/demo/disabled.d.ts +3 -0
- package/dist/esm/Segmented/demo/disabled.js +22 -0
- package/dist/esm/Segmented/demo/size.d.ts +3 -0
- package/dist/esm/Segmented/demo/size.js +15 -0
- package/dist/esm/Segmented/index.d.ts +3 -0
- package/dist/esm/Segmented/index.js +2 -0
- package/dist/esm/Segmented/interface.d.ts +82 -0
- package/dist/esm/Segmented/interface.js +1 -0
- package/dist/esm/Segmented/segmented.d.ts +5 -0
- package/dist/esm/Segmented/segmented.js +110 -0
- package/dist/esm/Segmented/style/index.less +104 -0
- package/dist/esm/Select/option.js +4 -2
- package/dist/esm/Select/options.js +5 -3
- package/dist/esm/Select/select.js +1 -0
- package/dist/esm/Skeleton/demo/basic.js +2 -8
- package/dist/esm/Space/interface.d.ts +4 -0
- package/dist/esm/Space/space.js +24 -13
- package/dist/esm/Spin/spin.js +2 -1
- package/dist/esm/Splitter/demo/basic.js +2 -0
- package/dist/esm/Splitter/demo/vertical.js +13 -5
- package/dist/esm/Splitter/index.d.ts +1 -1
- package/dist/esm/Splitter/interface.d.ts +9 -3
- package/dist/esm/Splitter/splitter-handler.d.ts +1 -1
- package/dist/esm/Splitter/splitter-handler.js +3 -1
- package/dist/esm/Splitter/splitter.d.ts +2 -9
- package/dist/esm/Splitter/splitter.js +59 -56
- package/dist/esm/Splitter/style/index.less +21 -0
- package/dist/esm/Steps/step.js +4 -1
- package/dist/esm/Steps/style/index.less +8 -2
- package/dist/esm/Switch/demo/content.js +12 -3
- package/dist/esm/Switch/style/index.less +16 -0
- package/dist/esm/Switch/switch.js +7 -5
- package/dist/esm/Table/demo/size.js +2 -7
- package/dist/esm/Table/interface.d.ts +5 -1
- package/dist/esm/Table/theader/cell.js +2 -3
- package/dist/esm/Tabs/hooks/useTabScroll.d.ts +1 -1
- package/dist/esm/Tabs/interface.d.ts +1 -1
- package/dist/esm/Tabs/style/index.less +4 -0
- package/dist/esm/Tabs/tab-header/index.js +11 -5
- package/dist/esm/Tag/demo/size.js +6 -2
- package/dist/esm/Tag/style/index.less +1 -0
- package/dist/esm/Tooltip/interface.d.ts +4 -0
- package/dist/esm/Tooltip/style/index.less +8 -8
- package/dist/esm/Tooltip/tooltip.js +14 -2
- package/dist/esm/Tour/demo/basic.d.ts +3 -0
- package/dist/esm/Tour/demo/basic.js +69 -0
- package/dist/esm/Tour/demo/indicators.d.ts +3 -0
- package/dist/esm/Tour/demo/indicators.js +73 -0
- package/dist/esm/Tour/demo/placement.d.ts +3 -0
- package/dist/esm/Tour/demo/placement.js +53 -0
- package/dist/esm/Tour/demo/scroll.d.ts +3 -0
- package/dist/esm/Tour/demo/scroll.js +58 -0
- package/dist/esm/Tour/index.d.ts +3 -0
- package/dist/esm/Tour/index.js +2 -0
- package/dist/esm/Tour/interface.d.ts +118 -0
- package/dist/esm/Tour/interface.js +1 -0
- package/dist/esm/Tour/style/index.less +103 -0
- package/dist/esm/Tour/tour.d.ts +5 -0
- package/dist/esm/Tour/tour.js +383 -0
- package/dist/esm/Tree/demo/checkable.js +6 -6
- package/dist/esm/Tree/demo/draggable.d.ts +3 -0
- package/dist/esm/Tree/demo/draggable.js +61 -0
- package/dist/esm/Tree/demo/expanded.js +6 -6
- package/dist/esm/Tree/index.d.ts +1 -0
- package/dist/esm/Tree/index.js +1 -0
- package/dist/esm/Tree/interface.d.ts +26 -0
- package/dist/esm/Tree/style/index.less +25 -0
- package/dist/esm/Tree/tree-node.js +29 -4
- package/dist/esm/Tree/tree.d.ts +12 -1
- package/dist/esm/Tree/tree.js +135 -4
- package/dist/esm/Tree/utils/tree-tools.d.ts +21 -0
- package/dist/esm/Tree/utils/tree-tools.js +128 -1
- package/dist/esm/Trigger/style/index.less +17 -0
- package/dist/esm/Trigger/trigger.js +4 -3
- package/dist/esm/hooks/useDebounceFunction.d.ts +1 -1
- package/dist/esm/hooks/useLayoutEffect.d.ts +1 -1
- package/dist/esm/index.d.ts +4 -0
- package/dist/esm/index.js +4 -0
- package/dist/esm/locale/interface.d.ts +7 -0
- package/dist/esm/locale/lang/en_US.js +6 -0
- package/dist/esm/locale/lang/ja_JP.js +6 -0
- package/dist/esm/locale/lang/zh_CN.js +6 -0
- package/dist/esm/locale/lang/zh_TW.js +6 -0
- package/dist/esm/style/color.blue.css +1 -1
- package/dist/esm/style/color.crimson.css +1 -1
- package/dist/esm/style/color.css +18 -1
- package/dist/esm/style/size.css +51 -4
- package/dist/esm/style/themes.css +3 -3
- package/dist/esm/style/variables.css +70 -6
- package/dist/esm/utils/debounce.d.ts +6 -1
- package/dist/esm/utils/debounce.js +9 -2
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/umd/yee-c.min.css +3 -3
- package/dist/umd/yee-c.min.js +1 -1
- package/package.json +21 -23
- package/src/Alert/alert.tsx +10 -4
- package/src/Alert/style/index.less +3 -0
- package/src/Anchor/anchor-item.tsx +7 -2
- package/src/Anchor/anchor.tsx +49 -23
- package/src/Anchor/demo/auto.tsx +55 -0
- package/src/Anchor/demo/basic.tsx +7 -1
- package/src/Anchor/demo/controlled.tsx +18 -14
- package/src/Anchor/index.en-US.md +17 -0
- package/src/Anchor/index.zh-CN.md +17 -0
- package/src/Anchor/interface.ts +2 -0
- package/src/Anchor/style/index.less +2 -2
- package/src/Button/button.tsx +2 -2
- package/src/Button/style/index.less +23 -8
- package/src/Card/demo/collapsible.tsx +1 -0
- package/src/Carousel/demo/arrows.tsx +1 -1
- package/src/Carousel/demo/autoplay.tsx +1 -1
- package/src/Carousel/demo/effect.tsx +1 -1
- package/src/Carousel/demo/position.tsx +1 -1
- package/src/Checkbox/checkbox-group.tsx +5 -1
- package/src/Checkbox/demo/group.tsx +1 -0
- package/src/Checkbox/interface.ts +5 -0
- package/src/Checkbox/style/index.less +21 -1
- package/src/Config-Provider/index.en-US.md +2 -0
- package/src/Config-Provider/index.zh-CN.md +2 -0
- package/src/Config-Provider/interface.ts +4 -0
- package/src/Dropdown/demo/placement.tsx +1 -0
- package/src/Dropdown/dropdown.tsx +2 -0
- package/src/Dropdown/style/index.less +6 -0
- package/src/Form/Field.tsx +70 -9
- package/src/Form/Group.tsx +4 -1
- package/src/Form/demo/form-table.tsx +7 -7
- package/src/Form/demo/tooltip.tsx +72 -0
- package/src/Form/form-store.ts +1 -1
- package/src/Form/index.en-US.md +6 -0
- package/src/Form/index.zh-CN.md +87 -85
- package/src/Form/interface.ts +53 -2
- package/src/Form/style/index.less +22 -7
- package/src/Menu/style/index.less +2 -2
- package/src/Popconfirm/popconfirm.tsx +1 -1
- package/src/Popconfirm/style/index.less +6 -0
- package/src/Popover/popover.tsx +1 -1
- package/src/Popover/style/index.less +6 -0
- package/src/Progress/progress.tsx +2 -2
- package/src/Radio/demo/button.tsx +1 -0
- package/src/Radio/index.en-US.md +2 -0
- package/src/Radio/index.zh-CN.md +2 -0
- package/src/Radio/interface.ts +4 -0
- package/src/Radio/radio-group.tsx +9 -1
- package/src/Radio/radio.tsx +2 -1
- package/src/Radio/style/index.less +26 -5
- package/src/Segmented/demo/basic.tsx +24 -0
- package/src/Segmented/demo/block.tsx +17 -0
- package/src/Segmented/demo/disabled.tsx +18 -0
- package/src/Segmented/demo/size.tsx +10 -0
- package/src/Segmented/index.en-US.md +47 -0
- package/src/Segmented/index.ts +12 -0
- package/src/Segmented/index.zh-CN.md +47 -0
- package/src/Segmented/interface.ts +87 -0
- package/src/Segmented/segmented.tsx +134 -0
- package/src/Segmented/style/index.less +104 -0
- package/src/Select/option.tsx +2 -1
- package/src/Select/options.tsx +7 -2
- package/src/Select/select.tsx +1 -0
- package/src/Skeleton/demo/basic.tsx +3 -3
- package/src/Space/interface.ts +4 -0
- package/src/Space/space.tsx +40 -16
- package/src/Spin/spin.tsx +1 -0
- package/src/Splitter/demo/basic.tsx +2 -2
- package/src/Splitter/demo/vertical.tsx +19 -5
- package/src/Splitter/index.ts +5 -1
- package/src/Splitter/interface.ts +10 -3
- package/src/Splitter/splitter-handler.tsx +4 -2
- package/src/Splitter/splitter.tsx +55 -60
- package/src/Splitter/style/index.less +21 -0
- package/src/Steps/step.tsx +1 -1
- package/src/Steps/style/index.less +8 -2
- package/src/Switch/demo/content.tsx +15 -5
- package/src/Switch/style/index.less +16 -0
- package/src/Switch/switch.tsx +14 -6
- package/src/Table/demo/size.tsx +3 -3
- package/src/Table/index.en-US.md +1 -0
- package/src/Table/index.zh-CN.md +51 -50
- package/src/Table/interface.ts +5 -1
- package/src/Table/theader/cell.tsx +2 -9
- package/src/Tabs/interface.ts +1 -1
- package/src/Tabs/style/index.less +4 -0
- package/src/Tabs/tab-header/index.tsx +26 -5
- package/src/Tag/demo/size.tsx +2 -2
- package/src/Tag/style/index.less +1 -0
- package/src/Tooltip/index.en-US.md +1 -0
- package/src/Tooltip/index.zh-CN.md +1 -0
- package/src/Tooltip/interface.ts +4 -0
- package/src/Tooltip/style/index.less +8 -8
- package/src/Tooltip/tooltip.tsx +10 -1
- package/src/Tour/demo/basic.tsx +52 -0
- package/src/Tour/demo/indicators.tsx +63 -0
- package/src/Tour/demo/placement.tsx +55 -0
- package/src/Tour/demo/scroll.tsx +49 -0
- package/src/Tour/index.en-US.md +61 -0
- package/src/Tour/index.ts +10 -0
- package/src/Tour/index.zh-CN.md +61 -0
- package/src/Tour/interface.ts +126 -0
- package/src/Tour/style/index.less +103 -0
- package/src/Tour/tour.tsx +399 -0
- package/src/Tree/demo/checkable.tsx +6 -6
- package/src/Tree/demo/draggable.tsx +58 -0
- package/src/Tree/demo/expanded.tsx +7 -7
- package/src/Tree/index.en-US.md +3 -0
- package/src/Tree/index.ts +1 -0
- package/src/Tree/index.zh-CN.md +3 -0
- package/src/Tree/interface.ts +28 -0
- package/src/Tree/style/index.less +25 -0
- package/src/Tree/tree-node.tsx +26 -0
- package/src/Tree/tree.tsx +183 -2
- package/src/Tree/utils/tree-tools.ts +107 -0
- package/src/Trigger/style/index.less +17 -0
- package/src/Trigger/trigger.tsx +3 -1
- package/src/index.ts +6 -0
- package/src/locale/interface.ts +9 -0
- package/src/locale/lang/en_US.ts +7 -0
- package/src/locale/lang/ja_JP.ts +7 -0
- package/src/locale/lang/zh_CN.ts +7 -0
- package/src/locale/lang/zh_TW.ts +7 -0
- package/src/style/color.blue.css +1 -1
- package/src/style/color.crimson.css +1 -1
- package/src/style/color.css +18 -1
- package/src/style/size.css +51 -4
- package/src/utils/debounce.ts +22 -3
- package/src/version.ts +1 -1
- package/dist/cjs/utils/x.d.ts +0 -11
- package/dist/cjs/utils/x.js +0 -51
- package/dist/esm/utils/x.d.ts +0 -11
- package/dist/esm/utils/x.js +0 -49
- package/src/utils/x.ts +0 -33
package/src/Form/index.zh-CN.md
CHANGED
|
@@ -15,6 +15,7 @@ toc: 'content'
|
|
|
15
15
|
## 代码演示
|
|
16
16
|
|
|
17
17
|
<code src="./demo/basic.tsx" title="基础用法" description="Form的基础用法"></code>
|
|
18
|
+
<code src="./demo/tooltip.tsx" title="标签帮助提示" description="在标签旁展示帮助图标,支持自定义触发图标"></code>
|
|
18
19
|
<code src="./demo/group.tsx" title="字段分组" description="Field.Group 共享标签和组级别校验"></code>
|
|
19
20
|
<code src="./demo/watch.tsx" title="字段监听" description="useWatch 监听字段值变化实现联动"></code>
|
|
20
21
|
<code src="./demo/list.tsx" title="表单列表" description="Form的列表字段用法"></code>
|
|
@@ -22,110 +23,111 @@ toc: 'content'
|
|
|
22
23
|
<code src="./demo/layout.tsx" title="表单布局" description="不同的表单布局"></code>
|
|
23
24
|
<code src="./demo/validate.tsx" title="表单校验" description="表单校验功能"></code>
|
|
24
25
|
|
|
25
|
-
<!-- <code src="./demo/dynamic.tsx" title="动态表单" description="动态增减表单项"></code> -->
|
|
26
|
-
|
|
27
|
-
<!-- <code src="./demo/virtual.tsx" title="虚拟表单" description="虚拟表单"></code> -->
|
|
28
|
-
|
|
29
26
|
## API
|
|
30
27
|
|
|
31
28
|
### FormProps
|
|
32
29
|
|
|
33
|
-
| 属性名 | 类型
|
|
34
|
-
| -------------------- |
|
|
35
|
-
| prefixCls | `string`
|
|
36
|
-
| className | `string`
|
|
37
|
-
| style | `React.CSSProperties`
|
|
38
|
-
| children | `React.ReactNode`
|
|
39
|
-
| name | `string`
|
|
40
|
-
| form | [FormInstance](#forminstance)
|
|
41
|
-
| disabled | `boolean`
|
|
42
|
-
| initialValues | `Store`
|
|
43
|
-
| layout | `'vertical' \| 'horizontal'`
|
|
44
|
-
| onFinish | `(values: Values) => void`
|
|
45
|
-
| onFinishFailed | `(err: Values) => void`
|
|
46
|
-
| onValuesChange | `(changedValues: Record<string, any>, values: Values) => void`
|
|
47
|
-
| onValuesBeforeChange | `(changedValues: Record<string, any>, values: Values) => void \| any` | 表单字段值改变前触发事件 | -
|
|
48
|
-
| onReset | `() => void`
|
|
49
|
-
| data
|
|
30
|
+
| 属性名 | 类型 | 描述 | 默认值 |
|
|
31
|
+
| -------------------- | --------------------------------------------------------------------- | ------------------------ | -------------------------------------------- |
|
|
32
|
+
| prefixCls | `string` | 自定义类名前缀 | - |
|
|
33
|
+
| className | `string` | 自定义根类名 | - |
|
|
34
|
+
| style | `React.CSSProperties` | 自定义根样式 | - |
|
|
35
|
+
| children | `React.ReactNode` | 字段 | - |
|
|
36
|
+
| name | `string` | 表单名 | - |
|
|
37
|
+
| form | [FormInstance](#forminstance) | 表单实例 | - |
|
|
38
|
+
| disabled | `boolean` | 是否禁用 | - |
|
|
39
|
+
| initialValues | `Store` | 初始值 | - |
|
|
40
|
+
| layout | `'vertical' \| 'horizontal'` | 布局 | - |
|
|
41
|
+
| onFinish | `(values: Values) => void` | submit提交时触发事件 | - |
|
|
42
|
+
| onFinishFailed | `(err: Values) => void` | submit提交报错时触发事件 | - |
|
|
43
|
+
| onValuesChange | `(changedValues: Record<string, any>, values: Values) => void` | 表单字段值改变时触发事件 | - |
|
|
44
|
+
| onValuesBeforeChange | `(changedValues: Record<string, any>, values: Values) => void \| any` | 表单字段值改变前触发事件 | - |
|
|
45
|
+
| onReset | `() => void` | 表单重置时触发的事件 | - |
|
|
46
|
+
| data-\* | `string` | - | 支持所有 data-\* 属性,透传到组件根 DOM 元素 |
|
|
50
47
|
|
|
51
48
|
### FormInstance
|
|
52
49
|
|
|
53
|
-
| 属性名 | 类型 | 描述
|
|
54
|
-
| --------------------- | ------------------------------------------------------------------------------------------ |
|
|
55
|
-
| getFieldValidate | `(name: Name) => ValidateMessage \| null`
|
|
56
|
-
| getFieldValue | `(name: Name) => StoreValue`
|
|
57
|
-
| submit | `() => void` | 提交表单
|
|
58
|
-
| getFieldsValue | `() => Values` | 获取所有字段值
|
|
59
|
-
| setFieldsValue | `(newStore: Store, trigger?: TRIGGER) => void`
|
|
60
|
-
| setCallbacks | `(callbacks: Callbacks) => void` | 设置回调
|
|
61
|
-
| resetFields | `(name?: Name[]) => void`
|
|
62
|
-
| clearFields | `(name?: Name[]) => void`
|
|
63
|
-
| validateField | `(name: Name, trigger?: 'onChange' \| 'onBlur') => ValidateMessage[]`
|
|
64
|
-
| validateFields | `(names?: Name[], trigger?: TRIGGER) => ValidateMessage[]`
|
|
65
|
-
| getCallbacks | `() => Callbacks`
|
|
66
|
-
| registerFieldEntities | `(entity: FieldEntity) => void` | 注册字段实体
|
|
67
|
-
| initialize | `({ initialValues, callbacks }: { initialValues?: Store; callbacks?: Callbacks }) => void` | 初始化表单
|
|
68
|
-
| getListFields | `(name: NamePath) => FormListField[]` | 获取列表字段
|
|
69
|
-
| getListOperations | `(name: NamePath) => FormListOperation` | 获取列表操作
|
|
70
|
-
| subscribe | `(namePath?: NamePath, callback?: () => void) => () => void`
|
|
50
|
+
| 属性名 | 类型 | 描述 |
|
|
51
|
+
| --------------------- | ------------------------------------------------------------------------------------------ | ------------------------------------------ |
|
|
52
|
+
| getFieldValidate | `(name: Name) => ValidateMessage \| null` | 获取字段验证 |
|
|
53
|
+
| getFieldValue | `(name: Name) => StoreValue` | 获取字段值 |
|
|
54
|
+
| submit | `() => void` | 提交表单 |
|
|
55
|
+
| getFieldsValue | `() => Values` | 获取所有字段值 |
|
|
56
|
+
| setFieldsValue | `(newStore: Store, trigger?: TRIGGER) => void` | 设置字段值 |
|
|
57
|
+
| setCallbacks | `(callbacks: Callbacks) => void` | 设置回调 |
|
|
58
|
+
| resetFields | `(name?: Name[]) => void` | 重置字段 |
|
|
59
|
+
| clearFields | `(name?: Name[]) => void` | 清空字段 |
|
|
60
|
+
| validateField | `(name: Name, trigger?: 'onChange' \| 'onBlur') => ValidateMessage[]` | 校验单个字段 |
|
|
61
|
+
| validateFields | `(names?: Name[], trigger?: TRIGGER) => ValidateMessage[]` | 校验多个字段 |
|
|
62
|
+
| getCallbacks | `() => Callbacks` | 获取回调 |
|
|
63
|
+
| registerFieldEntities | `(entity: FieldEntity) => void` | 注册字段实体 |
|
|
64
|
+
| initialize | `({ initialValues, callbacks }: { initialValues?: Store; callbacks?: Callbacks }) => void` | 初始化表单 |
|
|
65
|
+
| getListFields | `(name: NamePath) => FormListField[]` | 获取列表字段 |
|
|
66
|
+
| getListOperations | `(name: NamePath) => FormListOperation` | 获取列表操作 |
|
|
67
|
+
| subscribe | `(namePath?: NamePath, callback?: () => void) => () => void` | 订阅字段值变化,不传 namePath 监听所有字段 |
|
|
71
68
|
|
|
72
69
|
### Form 静态方法
|
|
73
70
|
|
|
74
|
-
| 方法名
|
|
75
|
-
|
|
|
76
|
-
| Form.useWatch
|
|
71
|
+
| 方法名 | 类型 | 描述 |
|
|
72
|
+
| ------------- | -------------------------------------------------------------- | -------------------------------------------- |
|
|
73
|
+
| Form.useWatch | `(namePath?: NamePath, form?: FormInstance) => T \| undefined` | 监听表单字段值变化,不传 namePath 返回所有值 |
|
|
77
74
|
|
|
78
75
|
### Field.GroupProps
|
|
79
76
|
|
|
80
|
-
| 属性名
|
|
81
|
-
|
|
|
82
|
-
| children
|
|
83
|
-
| label
|
|
84
|
-
| required
|
|
85
|
-
| rules
|
|
86
|
-
| cols
|
|
87
|
-
| style
|
|
88
|
-
| className | `string`
|
|
77
|
+
| 属性名 | 类型 | 描述 | 默认值 |
|
|
78
|
+
| --------- | --------------------- | -------------------------------------------- | ------ |
|
|
79
|
+
| children | `React.ReactNode` | 子元素,通常为多个 Form.Field | - |
|
|
80
|
+
| label | `React.ReactNode` | 组标签 | - |
|
|
81
|
+
| required | `boolean` | 是否必填(显示必填标记) | - |
|
|
82
|
+
| rules | [Rule\[\]](#rule) | 组级别校验规则,validator 接收子字段值的对象 | - |
|
|
83
|
+
| cols | `number` | 子字段列数 | - |
|
|
84
|
+
| style | `React.CSSProperties` | 自定义样式 | - |
|
|
85
|
+
| className | `string` | 自定义类名 | - |
|
|
89
86
|
|
|
90
87
|
### FieldProps
|
|
91
88
|
|
|
92
|
-
| 属性名
|
|
93
|
-
|
|
|
94
|
-
|
|
|
95
|
-
|
|
|
96
|
-
|
|
|
97
|
-
|
|
|
98
|
-
|
|
|
99
|
-
|
|
|
100
|
-
|
|
|
101
|
-
|
|
|
89
|
+
| 属性名 | 类型 | 描述 | 默认值 |
|
|
90
|
+
| ------------- | -------------------- | -------------------- | --------- |
|
|
91
|
+
| className | `string` | 自定义字段根类名 | - |
|
|
92
|
+
| style | `React.CSSProperties` | 自定义字段根样式 | - |
|
|
93
|
+
| classNames | `Partial<Record<'label' \| 'control', string>>` | 语义化结构类名 | - |
|
|
94
|
+
| styles | `Partial<Record<'label' \| 'control', React.CSSProperties>>` | 语义化结构样式 | - |
|
|
95
|
+
| children | `React.ReactElement` | 子元素 | - |
|
|
96
|
+
| name | `NamePath` | 字段名 | - |
|
|
97
|
+
| rules | [Rule\[\]](#rule) | 校验规则 | - |
|
|
98
|
+
| label | `React.ReactNode` | 标签 | - |
|
|
99
|
+
| tooltip | `ReactNode \| (Omit<TooltipProps, 'children'> & { icon?: ReactNode })` | 标签旁的帮助提示。传字符串/节点使用默认图标;传对象时可自定义 `icon`,其余属性透传给 Tooltip(`title`、`color`、`placement` 等) | - |
|
|
100
|
+
| required | `boolean` | 是否必填 | - |
|
|
101
|
+
| disabled | `boolean` | 是否禁用 | - |
|
|
102
|
+
| initialValue | `unknown` | 初始值 | - |
|
|
103
|
+
| valuePropName | `string` | 设置子组件值的属性名 | `'value'` |
|
|
102
104
|
|
|
103
105
|
### Rule
|
|
104
106
|
|
|
105
|
-
| 属性名 | 类型
|
|
106
|
-
| --------------- |
|
|
107
|
-
| required | `boolean`
|
|
108
|
-
| type | `string`
|
|
109
|
-
| min | `number`
|
|
110
|
-
| max | `number`
|
|
111
|
-
| minLength | `number`
|
|
112
|
-
| maxLength | `number`
|
|
113
|
-
| regexp | `RegExp`
|
|
114
|
-
| message | `string`
|
|
115
|
-
| validator | `(value: unknown) => boolean`
|
|
116
|
-
| validateTrigger | `'onBlur' \| 'onChange' \| 'onSubmit' \| Array<'onBlur' \| 'onChange' \| 'onSubmit'>` | 校验触发时机
|
|
107
|
+
| 属性名 | 类型 | 描述 |
|
|
108
|
+
| --------------- | ------------------------------------------------------------------------------------- | -------------- |
|
|
109
|
+
| required | `boolean` | 是否必填 |
|
|
110
|
+
| type | `string` | 类型 |
|
|
111
|
+
| min | `number` | 最小值 |
|
|
112
|
+
| max | `number` | 最大值 |
|
|
113
|
+
| minLength | `number` | 最小长度 |
|
|
114
|
+
| maxLength | `number` | 最大长度 |
|
|
115
|
+
| regexp | `RegExp` | 正则表达式 |
|
|
116
|
+
| message | `string` | 错误信息 |
|
|
117
|
+
| validator | `(value: unknown) => boolean` | 自定义校验函数 |
|
|
118
|
+
| validateTrigger | `'onBlur' \| 'onChange' \| 'onSubmit' \| Array<'onBlur' \| 'onChange' \| 'onSubmit'>` | 校验触发时机 |
|
|
117
119
|
|
|
118
120
|
### Types
|
|
119
121
|
|
|
120
|
-
| 类型
|
|
121
|
-
|
|
|
122
|
-
| StoreValue
|
|
123
|
-
| Store
|
|
124
|
-
| Name
|
|
125
|
-
| NamePath
|
|
126
|
-
| ValidateMessage
|
|
127
|
-
| FieldEntity
|
|
128
|
-
| TRIGGER
|
|
129
|
-
| FormListField
|
|
130
|
-
| FormListOperation | `{ add: (defaultValue?: any, insertIndex?: number) => void; remove: (index: number \| number[]) => void; move: (from: number, to: number) => void }`
|
|
131
|
-
| FormListProps
|
|
122
|
+
| 类型 | 描述 |
|
|
123
|
+
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
124
|
+
| StoreValue | `any` |
|
|
125
|
+
| Store | `Record<string, StoreValue>` |
|
|
126
|
+
| Name | `string` |
|
|
127
|
+
| NamePath | `string \| string[] \| number \| (string \| number)[]` |
|
|
128
|
+
| ValidateMessage | `{ name: NamePath \| NamePath[] \| undefined; message: string; value: unknown; status: 'error' \| 'success' \| 'warning' \| 'info' }` |
|
|
129
|
+
| FieldEntity | `{ props: fieldProps & { name?: NamePath }; onStoreChange: () => void }` |
|
|
130
|
+
| TRIGGER | `'onChange' \| 'onBlur' \| 'onSubmit' \| 'reset' \| 'clear' \| 'update'` |
|
|
131
|
+
| FormListField | `{ key: React.Key; name: number; isListField?: boolean }` |
|
|
132
|
+
| FormListOperation | `{ add: (defaultValue?: any, insertIndex?: number) => void; remove: (index: number \| number[]) => void; move: (from: number, to: number) => void }` |
|
|
133
|
+
| FormListProps | `{ name: NamePath; children: (fields: FormListField[], operation: FormListOperation, meta: { errors: React.ReactNode[] }) => React.ReactNode; initialValue?: any[]; rules?: Rule[] }` |
|
package/src/Form/interface.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { TooltipProps } from '../Tooltip';
|
|
1
2
|
import type { DataAttributeProps } from '../utils/types';
|
|
2
3
|
|
|
3
4
|
export type StoreValue = any;
|
|
@@ -5,7 +6,7 @@ export type Store = Record<string, StoreValue>;
|
|
|
5
6
|
export type Name = string;
|
|
6
7
|
export type NamePath = string | string[] | number | (string | number)[];
|
|
7
8
|
|
|
8
|
-
export type
|
|
9
|
+
export type FieldSemanticDOM = 'label' | 'control';
|
|
9
10
|
|
|
10
11
|
// Internal name path type, always a string array
|
|
11
12
|
export type InternalNamePath = (string | number)[];
|
|
@@ -230,7 +231,7 @@ export type Rule = {
|
|
|
230
231
|
/**
|
|
231
232
|
* Error message
|
|
232
233
|
*/
|
|
233
|
-
message
|
|
234
|
+
message?: string;
|
|
234
235
|
/**
|
|
235
236
|
* Custom validation function, returns true for pass, false or throw for fail
|
|
236
237
|
*/
|
|
@@ -253,12 +254,62 @@ export type ValidateMessage = {
|
|
|
253
254
|
status: 'error' | 'success' | 'warning' | 'info';
|
|
254
255
|
};
|
|
255
256
|
|
|
257
|
+
export type FieldConfigurableTooltip = Omit<TooltipProps, 'children'> & {
|
|
258
|
+
/**
|
|
259
|
+
* Custom trigger icon (defaults to a built-in help icon)
|
|
260
|
+
*/
|
|
261
|
+
icon?: React.ReactNode;
|
|
262
|
+
};
|
|
263
|
+
|
|
264
|
+
export type FieldTooltip = React.ReactNode | FieldConfigurableTooltip;
|
|
265
|
+
|
|
256
266
|
export type FieldProps = {
|
|
267
|
+
/**
|
|
268
|
+
* custom field root className
|
|
269
|
+
* */
|
|
270
|
+
className?: string;
|
|
271
|
+
/**
|
|
272
|
+
* custom field root style
|
|
273
|
+
* */
|
|
274
|
+
style?: React.CSSProperties;
|
|
275
|
+
/**
|
|
276
|
+
* Semantic DOM className
|
|
277
|
+
* */
|
|
278
|
+
classNames?: Partial<Record<FieldSemanticDOM, string>>;
|
|
279
|
+
/**
|
|
280
|
+
* Semantic DOM style
|
|
281
|
+
* */
|
|
282
|
+
styles?: Partial<Record<FieldSemanticDOM, React.CSSProperties>>;
|
|
283
|
+
/**
|
|
284
|
+
* Child nodes
|
|
285
|
+
* */
|
|
257
286
|
children: React.ReactElement;
|
|
287
|
+
/**
|
|
288
|
+
* Field name
|
|
289
|
+
* */
|
|
258
290
|
name: NamePath;
|
|
291
|
+
/**
|
|
292
|
+
* Validation rules
|
|
293
|
+
* */
|
|
259
294
|
rules?: Rule[];
|
|
295
|
+
/***
|
|
296
|
+
* Field label
|
|
297
|
+
*/
|
|
260
298
|
label?: React.ReactNode;
|
|
299
|
+
/**
|
|
300
|
+
* Tooltip shown next to the label (a help icon).
|
|
301
|
+
* Pass a string/node to use the default icon, or an object to customize the icon.
|
|
302
|
+
* */
|
|
303
|
+
tooltip?: FieldTooltip;
|
|
304
|
+
/**
|
|
305
|
+
* Whether required (shows required mark)
|
|
306
|
+
* */
|
|
261
307
|
required?: boolean;
|
|
308
|
+
/**
|
|
309
|
+
* Layout of label and control
|
|
310
|
+
* @default 'vertical'
|
|
311
|
+
* */
|
|
312
|
+
layout?: 'vertical' | 'horizontal';
|
|
262
313
|
/**
|
|
263
314
|
* Format value before passing to children
|
|
264
315
|
* */
|
|
@@ -18,17 +18,32 @@
|
|
|
18
18
|
// padding-bottom: var(--yee-form-item-padding-bottom);
|
|
19
19
|
|
|
20
20
|
&-label {
|
|
21
|
-
display: inline-
|
|
21
|
+
display: inline-flex;
|
|
22
|
+
align-items: center;
|
|
23
|
+
gap: 2px;
|
|
22
24
|
margin-bottom: var(--yee-form-item-label-mb, 4px);
|
|
23
25
|
line-height: var(--yee-form-item-label-line-height);
|
|
24
26
|
}
|
|
25
27
|
|
|
26
|
-
&-required
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
28
|
+
// The required asterisk is rendered as a real node via &-required-mark so it
|
|
29
|
+
// stays glued to the label text regardless of what else sits inside the label.
|
|
30
|
+
// The `item-required` className is still applied to the label (see Field/Group)
|
|
31
|
+
// as an opt-in styling hook; the mark itself lives in &-required-mark below.
|
|
32
|
+
&-required-mark {
|
|
33
|
+
color: var(--yee-input-required-font-color);
|
|
34
|
+
margin-inline-start: var(--yee-form-item-required-margin-inline-start);
|
|
35
|
+
line-height: 1;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
&-tooltip-icon {
|
|
39
|
+
display: inline-flex;
|
|
40
|
+
align-items: center;
|
|
41
|
+
margin-inline-start: 4px;
|
|
42
|
+
color: var(
|
|
43
|
+
--yee-form-item-tooltip-icon-color,
|
|
44
|
+
var(--yee-text-color-secondary, #999)
|
|
45
|
+
);
|
|
46
|
+
cursor: pointer;
|
|
32
47
|
}
|
|
33
48
|
|
|
34
49
|
&-control {
|
|
@@ -82,7 +82,7 @@
|
|
|
82
82
|
list-style: none;
|
|
83
83
|
|
|
84
84
|
&-title {
|
|
85
|
-
padding: var(--yee-menu-item-group-title-padding,
|
|
85
|
+
padding: var(--yee-menu-item-group-title-padding, 4px 12px);
|
|
86
86
|
color: var(
|
|
87
87
|
--yee-menu-item-group-title-color,
|
|
88
88
|
var(--yee-color-text-secondary)
|
|
@@ -106,7 +106,7 @@
|
|
|
106
106
|
margin: var(--yee-menu-item-divider-margin, 4px 0);
|
|
107
107
|
border-top: var(
|
|
108
108
|
--yee-menu-item-divider-border,
|
|
109
|
-
1px solid var(--yee-color
|
|
109
|
+
1px solid var(--yee-border-color)
|
|
110
110
|
);
|
|
111
111
|
}
|
|
112
112
|
|
|
@@ -27,7 +27,7 @@ const Popconfirm: React.FC<PopconfirmProps> = (baseprops) => {
|
|
|
27
27
|
defaultOpen,
|
|
28
28
|
title,
|
|
29
29
|
description,
|
|
30
|
-
arrow =
|
|
30
|
+
arrow = { className: `${prefixCls}-arrow` },
|
|
31
31
|
placement = 'top',
|
|
32
32
|
confirmText = popconfirmLocale.okText,
|
|
33
33
|
cancelText = popconfirmLocale.cancelText,
|
package/src/Popover/popover.tsx
CHANGED
|
@@ -75,13 +75,13 @@ const Progress = React.forwardRef<HTMLDivElement, ProgressProps>(
|
|
|
75
75
|
let progress;
|
|
76
76
|
if (type === 'line') {
|
|
77
77
|
progress = (
|
|
78
|
-
<Line prefixCls={prefixCls} percent={percent}>
|
|
78
|
+
<Line {...rest} prefixCls={prefixCls} percent={percent}>
|
|
79
79
|
{progressInfo}
|
|
80
80
|
</Line>
|
|
81
81
|
);
|
|
82
82
|
} else {
|
|
83
83
|
progress = (
|
|
84
|
-
<Circle prefixCls={prefixCls} percent={percent}>
|
|
84
|
+
<Circle {...rest} prefixCls={prefixCls} percent={percent}>
|
|
85
85
|
{progressInfo}
|
|
86
86
|
</Circle>
|
|
87
87
|
);
|
package/src/Radio/index.en-US.md
CHANGED
|
@@ -54,4 +54,6 @@ Radio button for selecting one option from a set of options.
|
|
|
54
54
|
| disabled | `boolean` | Disable all options | - |
|
|
55
55
|
| buttonStyle | `'outline' \| 'solid' \| 'cornermark'` | Button style | - |
|
|
56
56
|
| options | `Array<RadioProps & { label: React.ReactNode }>` | Options in configuration form | - |
|
|
57
|
+
| toggleable | `boolean` | Whether selection can be toggled (click again to deselect) | - |
|
|
58
|
+
| gap | `number` | Set the interval between radios | - |
|
|
57
59
|
| onChange | `(value: string, event: React.ChangeEvent<HTMLInputElement>) => void` | Callback when value changes | - |
|
package/src/Radio/index.zh-CN.md
CHANGED
|
@@ -54,4 +54,6 @@ toc: 'content'
|
|
|
54
54
|
| disabled | `boolean` | 是否禁用所有选项 | - |
|
|
55
55
|
| buttonStyle | `'outline' \| 'solid' \| 'cornermark'` | 按钮风格 | - |
|
|
56
56
|
| options | `Array<RadioProps & { label: React.ReactNode }>` | 选项,以配置形式 | - |
|
|
57
|
+
| toggleable | `boolean` | 是否允许切换选中状态(再次点击取消选中) | - |
|
|
58
|
+
| gap | `number` | 设置单选框之间的间距 | - |
|
|
57
59
|
| onChange | `(value: string, event: React.ChangeEvent<HTMLInputElement>) => void` | 值改变时的回调 | - |
|
package/src/Radio/interface.ts
CHANGED
|
@@ -22,6 +22,7 @@ const RadioGroup = React.forwardRef<HTMLDivElement, RadioGroupProps>(
|
|
|
22
22
|
const {
|
|
23
23
|
prefixCls = 'yee-radio-group',
|
|
24
24
|
className,
|
|
25
|
+
style,
|
|
25
26
|
name = uid,
|
|
26
27
|
value,
|
|
27
28
|
defaultValue,
|
|
@@ -29,6 +30,7 @@ const RadioGroup = React.forwardRef<HTMLDivElement, RadioGroupProps>(
|
|
|
29
30
|
buttonStyle,
|
|
30
31
|
disabled,
|
|
31
32
|
size,
|
|
33
|
+
gap,
|
|
32
34
|
onChange,
|
|
33
35
|
...rest
|
|
34
36
|
} = props;
|
|
@@ -43,6 +45,7 @@ const RadioGroup = React.forwardRef<HTMLDivElement, RadioGroupProps>(
|
|
|
43
45
|
{
|
|
44
46
|
[`${prefixCls}-${buttonStyle}`]: buttonStyle,
|
|
45
47
|
[`${prefixCls}-${size}`]: size,
|
|
48
|
+
[`${prefixCls}-with-gap`]: gap,
|
|
46
49
|
},
|
|
47
50
|
className,
|
|
48
51
|
);
|
|
@@ -53,7 +56,12 @@ const RadioGroup = React.forwardRef<HTMLDivElement, RadioGroupProps>(
|
|
|
53
56
|
};
|
|
54
57
|
|
|
55
58
|
return (
|
|
56
|
-
<div
|
|
59
|
+
<div
|
|
60
|
+
className={cls}
|
|
61
|
+
style={{ ...style, gap: gap }}
|
|
62
|
+
ref={ref}
|
|
63
|
+
role="radiogroup"
|
|
64
|
+
>
|
|
57
65
|
<GroupCtx.Provider
|
|
58
66
|
value={{ name, buttonStyle, onChange: handleChange }}
|
|
59
67
|
>
|
package/src/Radio/radio.tsx
CHANGED
|
@@ -16,6 +16,7 @@ const Radio = React.forwardRef<HTMLInputElement, RadioProps>(
|
|
|
16
16
|
prefixCls = 'yee-radio',
|
|
17
17
|
className,
|
|
18
18
|
classNames,
|
|
19
|
+
style,
|
|
19
20
|
styles,
|
|
20
21
|
label,
|
|
21
22
|
children,
|
|
@@ -66,7 +67,7 @@ const Radio = React.forwardRef<HTMLInputElement, RadioProps>(
|
|
|
66
67
|
);
|
|
67
68
|
|
|
68
69
|
return (
|
|
69
|
-
<label className={cls} onClick={handleClick}>
|
|
70
|
+
<label className={cls} style={style} onClick={handleClick}>
|
|
70
71
|
<span
|
|
71
72
|
className={clsx(prefixCls, {
|
|
72
73
|
[`${prefixCls}-disabled`]: disabled,
|
|
@@ -9,14 +9,16 @@
|
|
|
9
9
|
gap: var(--yee-radio-group-gap);
|
|
10
10
|
|
|
11
11
|
&-small {
|
|
12
|
-
@{pls} {
|
|
13
|
-
|
|
12
|
+
@{pls}-button-wrapper {
|
|
13
|
+
font-size: var(--yee-radio-font-small-size);
|
|
14
|
+
padding: var(--yee-radio-small-padding);
|
|
14
15
|
}
|
|
15
16
|
}
|
|
16
17
|
|
|
17
18
|
&-large {
|
|
18
|
-
@{pls} {
|
|
19
|
-
|
|
19
|
+
@{pls}-button-wrapper {
|
|
20
|
+
font-size: var(--yee-radio-font-large-size);
|
|
21
|
+
padding: var(--yee-radio-large-padding);
|
|
20
22
|
}
|
|
21
23
|
}
|
|
22
24
|
|
|
@@ -61,12 +63,25 @@
|
|
|
61
63
|
bottom: 0;
|
|
62
64
|
border-color: transparent;
|
|
63
65
|
border-style: solid;
|
|
64
|
-
border-width: var(--yee-radio-cornermark-border-width);
|
|
66
|
+
border-width: calc(var(--yee-radio-cornermark-border-width) / 3 * 2);
|
|
65
67
|
border-right-color: var(--yee-radio-inner-checked-border-color);
|
|
66
68
|
border-bottom-color: var(--yee-radio-inner-checked-border-color);
|
|
67
69
|
content: '';
|
|
68
70
|
}
|
|
69
71
|
|
|
72
|
+
&::before {
|
|
73
|
+
position: absolute;
|
|
74
|
+
z-index: 1;
|
|
75
|
+
right: 3px;
|
|
76
|
+
top: 18px;
|
|
77
|
+
width: 3px;
|
|
78
|
+
height: 7px;
|
|
79
|
+
border: 2px solid #fff;
|
|
80
|
+
border-width: 0 2px 2px 0;
|
|
81
|
+
transform: rotate(45deg);
|
|
82
|
+
content: '';
|
|
83
|
+
}
|
|
84
|
+
|
|
70
85
|
z-index: 1;
|
|
71
86
|
}
|
|
72
87
|
|
|
@@ -74,6 +89,12 @@
|
|
|
74
89
|
margin-left: -1px;
|
|
75
90
|
}
|
|
76
91
|
}
|
|
92
|
+
|
|
93
|
+
&-with-gap {
|
|
94
|
+
@{pls}-button-wrapper {
|
|
95
|
+
border-radius: var(--yee-radio-button-wrapper-border-radius);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
77
98
|
}
|
|
78
99
|
|
|
79
100
|
&-wrapper {
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Segmented, Space } from '@rainbow-oh/yee-c';
|
|
2
|
+
import React, { useState } from 'react';
|
|
3
|
+
|
|
4
|
+
export default () => {
|
|
5
|
+
const [value, setValue] = useState<string | number>('daily');
|
|
6
|
+
|
|
7
|
+
return (
|
|
8
|
+
<Space direction="vertical">
|
|
9
|
+
<Segmented
|
|
10
|
+
options={[
|
|
11
|
+
{ label: 'Daily', value: 'daily' },
|
|
12
|
+
{ label: 'Weekly', value: 'weekly' },
|
|
13
|
+
{ label: 'Monthly', value: 'monthly' },
|
|
14
|
+
]}
|
|
15
|
+
value={value}
|
|
16
|
+
onChange={setValue}
|
|
17
|
+
/>
|
|
18
|
+
|
|
19
|
+
<Segmented options={['List', 'Table', 'Chart']} defaultValue="List" />
|
|
20
|
+
|
|
21
|
+
<div>Selected: {value}</div>
|
|
22
|
+
</Space>
|
|
23
|
+
);
|
|
24
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Segmented } from '@rainbow-oh/yee-c';
|
|
2
|
+
import { LayoutGrid, List } from 'lucide-react';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
|
|
5
|
+
export default () => (
|
|
6
|
+
<div style={{ width: 480 }}>
|
|
7
|
+
<Segmented
|
|
8
|
+
block
|
|
9
|
+
defaultValue="list"
|
|
10
|
+
options={[
|
|
11
|
+
{ label: 'List', value: 'list', icon: <List size={16} /> },
|
|
12
|
+
{ label: 'Grid', value: 'grid', icon: <LayoutGrid size={16} /> },
|
|
13
|
+
{ label: 'Detail', value: 'detail' },
|
|
14
|
+
]}
|
|
15
|
+
/>
|
|
16
|
+
</div>
|
|
17
|
+
);
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Segmented } from '@rainbow-oh/yee-c';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
|
|
4
|
+
export default () => (
|
|
5
|
+
<>
|
|
6
|
+
<Segmented
|
|
7
|
+
options={[
|
|
8
|
+
{ label: 'A', value: 'a' },
|
|
9
|
+
{ label: 'B', value: 'b', disabled: true },
|
|
10
|
+
{ label: 'C', value: 'c' },
|
|
11
|
+
]}
|
|
12
|
+
defaultValue="a"
|
|
13
|
+
/>
|
|
14
|
+
<br />
|
|
15
|
+
<br />
|
|
16
|
+
<Segmented disabled options={['A', 'B', 'C']} defaultValue="A" />
|
|
17
|
+
</>
|
|
18
|
+
);
|