@para-ui/core 5.0.0-beta.12 → 5.0.0-beta.14
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/AGENTS.md +315 -0
- package/AlignBox/component.json +89 -0
- package/Anchor/component.json +130 -0
- package/Argv/component.json +216 -0
- package/AutoBox/component.json +133 -0
- package/AutoButton/component.json +109 -0
- package/AutoTips/component.json +121 -0
- package/Badge/component.json +92 -0
- package/Breadcrumbs/component.json +142 -0
- package/Button/component.json +168 -0
- package/ButtonGroup/component.json +132 -0
- package/Card/component.json +162 -0
- package/Carousel/component.json +142 -0
- package/Cascader/component.json +196 -0
- package/Checkbox/component.json +138 -0
- package/CheckboxGroup/component.json +152 -0
- package/CodeEditor/component.json +189 -0
- package/Collapse/component.json +166 -0
- package/CollapseBox/component.json +84 -0
- package/CollapseLayout/component.json +155 -0
- package/ColorPicker/component.json +142 -0
- package/ComboSelect/component.json +181 -0
- package/Container/component.json +111 -0
- package/ContentBox/component.json +81 -0
- package/CopyText/component.json +118 -0
- package/CycleSelector/component.json +98 -0
- package/DatePicker/component.json +192 -0
- package/Descriptions/component.json +142 -0
- package/Desktop/component.json +171 -0
- package/DragVerify/component.json +114 -0
- package/Drawer/component.json +200 -0
- package/Dropdown/component.json +147 -0
- package/DynamicMultiBox/component.json +278 -0
- package/Empty/component.json +123 -0
- package/FieldForm/component.json +196 -0
- package/Form/component.json +161 -0
- package/FormItem/component.json +171 -0
- package/FunctionModal/component.json +197 -0
- package/Help/component.json +118 -0
- package/HelperText/component.json +126 -0
- package/Image/component.json +165 -0
- package/InputCode/component.json +191 -0
- package/InputLang/component.json +205 -0
- package/InputNumber/component.json +162 -0
- package/Label/component.json +126 -0
- package/Loading/component.json +91 -0
- package/Menu/component.json +180 -0
- package/Message/component.json +246 -0
- package/Modal/component.json +277 -0
- package/MultiBox/component.json +216 -0
- package/Notification/component.json +184 -0
- package/OperateBtn/component.json +134 -0
- package/PageHeader/component.json +112 -0
- package/Pagination/component.json +181 -0
- package/PasswordRules/component.json +105 -0
- package/PopConfirm/component.json +227 -0
- package/PopMenu/component.json +131 -0
- package/Popover/component.json +165 -0
- package/Progress/component.json +161 -0
- package/Prompt/component.json +144 -0
- package/Querying/component.json +96 -0
- package/QuickReply/component.json +129 -0
- package/Radio/component.json +136 -0
- package/RadioGroup/component.json +149 -0
- package/RangeInput/component.json +198 -0
- package/Result/component.json +104 -0
- package/ScrollBar/component.json +115 -0
- package/Search/component.json +177 -0
- package/Select/component.json +244 -0
- package/SelectInput/component.json +184 -0
- package/Selector/component.json +203 -0
- package/SelectorPicker/component.json +179 -0
- package/SingleBox/component.json +151 -0
- package/Slider/component.json +181 -0
- package/SortBox/component.json +108 -0
- package/Status/component.json +104 -0
- package/Stepper/component.json +129 -0
- package/Switch/component.json +207 -0
- package/Table/component.json +547 -0
- package/Tabs/component.json +227 -0
- package/Tag/component.json +221 -0
- package/TextEditor/component.json +186 -0
- package/TextField/component.json +290 -0
- package/TimePicker/component.json +176 -0
- package/Timeline/component.json +110 -0
- package/Title/component.json +156 -0
- package/ToggleButton/component.json +153 -0
- package/Tooltip/component.json +176 -0
- package/Transfer/component.json +157 -0
- package/Tree/component.json +512 -0
- package/Upload/component.json +450 -0
- package/ai-workflows/01-crud-list-multi-drawer.md +278 -0
- package/ai-workflows/02-rbac-operation-buttons.md +290 -0
- package/ai-workflows/03-complex-form-async-cascade.md +350 -0
- package/ai-workflows/04-array-field-form.md +281 -0
- package/ai-workflows/05-popconfirm-async-message-queue.md +333 -0
- package/ai-workflows/06-modal-drawer-form-workflow.md +385 -0
- package/ai-workflows/07-search-filter-table-trio.md +387 -0
- package/ai-workflows/08-table-advanced-features.md +365 -0
- package/ai-workflows/09-batch-operation-export-progress.md +367 -0
- package/ai-workflows/10-cross-component-state-coordination.md +412 -0
- package/codemods/modal-onCancel-to-onDismiss.js +69 -0
- package/es/AlignBox/component.json +89 -0
- package/es/AlignBox/index.css +1 -1
- package/es/AlignBox/index.d.ts +6 -2
- package/es/AlignBox/index.js +1 -1
- package/es/AlignBox/style/index.css +1 -1
- package/es/Anchor/anchorMenu/index.d.ts +2 -1
- package/es/Anchor/anchorMenu/index.js +36 -33
- package/es/Anchor/component.json +130 -0
- package/es/Anchor/index.js +50 -47
- package/es/Anchor/type.d.ts +8 -4
- package/es/Argv/component.json +216 -0
- package/es/Argv/index.d.ts +5 -6
- package/es/AutoBox/component.json +133 -0
- package/es/AutoBox/index.d.ts +3 -3
- package/es/AutoBox/index.js +1 -1
- package/es/AutoBox/protal.d.ts +2 -2
- package/es/AutoBox/protal.js +32 -29
- package/es/AutoButton/component.json +109 -0
- package/es/AutoButton/index.js +1 -1
- package/es/AutoTips/autoTipsMultiline/index.d.ts +1 -1
- package/es/AutoTips/autoTipsMultiline/index.js +1 -1
- package/es/AutoTips/component.json +121 -0
- package/es/Badge/component.json +92 -0
- package/es/Breadcrumbs/component.json +142 -0
- package/es/Breadcrumbs/index.js +1 -1
- package/es/Button/SplitButton.d.ts +2 -2
- package/es/Button/component.json +168 -0
- package/es/Button/index.js +44 -44
- package/es/ButtonGroup/component.json +132 -0
- package/es/ButtonGroup/index.d.ts +1 -1
- package/es/Card/component.json +162 -0
- package/es/Card/index.d.ts +2 -2
- package/es/Card/index.js +2 -2
- package/es/Carousel/component.json +142 -0
- package/es/Carousel/index.d.ts +1 -1
- package/es/Cascader/Cascader.js +188 -180
- package/es/Cascader/component.json +196 -0
- package/es/Cascader/hooks/useEntities.js +7 -7
- package/es/Cascader/interface.d.ts +1 -0
- package/es/Cascader/utils/commonUtil.d.ts +1 -1
- package/es/Cascader/utils/commonUtil.js +16 -16
- package/es/Cascader/utils/treeUtil.d.ts +14 -5
- package/es/Cascader/utils/treeUtil.js +1 -1
- package/es/Checkbox/component.json +138 -0
- package/es/CheckboxGroup/component.json +152 -0
- package/es/CodeEditor/component.json +189 -0
- package/es/CodeEditor/index.d.ts +10 -9
- package/es/Collapse/component.json +166 -0
- package/es/Collapse/index.d.ts +1 -1
- package/es/Collapse/index.js +41 -33
- package/es/CollapseBox/component.json +84 -0
- package/es/CollapseLayout/component.json +155 -0
- package/es/ColorPicker/component.json +142 -0
- package/es/ComboSelect/component.json +181 -0
- package/es/ComboSelect/index.js +299 -287
- package/es/ComboSelect/interface.d.ts +6 -3
- package/es/ComboSelect/utils.d.ts +3 -3
- package/es/ComboSelect/utils.js +1 -1
- package/es/Container/component.json +111 -0
- package/es/ContentBox/component.json +81 -0
- package/es/CopyText/component.json +118 -0
- package/es/CycleSelector/component.json +98 -0
- package/es/CycleSelector/index.js +14 -13
- package/es/DatePicker/component.json +192 -0
- package/es/DatePicker/generatePicker/generateRangePicker.d.ts +0 -8
- package/es/DatePicker/generatePicker/generateRangePicker.js +73 -65
- package/es/DatePicker/generatePicker/generateSinglePicker.js +1 -1
- package/es/DatePicker/generatePicker/index.d.ts +11 -4
- package/es/Descriptions/component.json +142 -0
- package/es/Descriptions/index.d.ts +1 -1
- package/es/Desktop/component.json +171 -0
- package/es/DragVerify/component.json +114 -0
- package/es/DragVerify/index.js +19 -19
- package/es/Drawer/component.json +200 -0
- package/es/Drawer/index.js +86 -86
- package/es/Drawer/interface.d.ts +1 -1
- package/es/Drawer/util.d.ts +1 -6
- package/es/Drawer/util.js +9 -6
- package/es/Dropdown/component.json +147 -0
- package/es/DynamicMultiBox/component.json +278 -0
- package/es/DynamicMultiBox/formItem.d.ts +1 -1
- package/es/DynamicMultiBox/rowForm.d.ts +2 -2
- package/es/Empty/component.json +123 -0
- package/es/Empty/index.css +1 -1
- package/es/Empty/index.d.ts +2 -2
- package/es/Empty/index.js +27 -26
- package/es/Empty/style/index.css +1 -1
- package/es/FieldForm/FieldFormItem/MemoInput.d.ts +2 -2
- package/es/FieldForm/FieldFormItem/index.d.ts +6 -6
- package/es/FieldForm/Form.d.ts +2 -2
- package/es/FieldForm/FormList.d.ts +2 -2
- package/es/FieldForm/component.json +196 -0
- package/es/FieldForm/context.d.ts +5 -1
- package/es/FieldForm/context.js +2 -2
- package/es/FieldForm/hooks/useForm.d.ts +4 -3
- package/es/FieldForm/hooks/useFormInstance.d.ts +1 -1
- package/es/FieldForm/hooks/useFormItemStatus.d.ts +9 -5
- package/es/FieldForm/hooks/useFormItemStatus.js +2 -2
- package/es/FieldForm/hooks/useItemRef.d.ts +1 -1
- package/es/FieldForm/hooks/useItemRef.js +6 -6
- package/es/Form/component.json +161 -0
- package/es/Form/index.d.ts +52 -49
- package/es/FormItem/compoments/defaultCompoments/index.d.ts +5 -5
- package/es/FormItem/compoments/defaultCompoments/index.js +12 -11
- package/es/FormItem/compoments/formCheckboxGroup/index.d.ts +2 -2
- package/es/FormItem/compoments/formFile/index.js +8 -8
- package/es/FormItem/compoments/formRadioGroup/index.d.ts +1 -1
- package/es/FormItem/compoments/formSelect/index.d.ts +1 -1
- package/es/FormItem/component.json +171 -0
- package/es/FormItem/index.d.ts +5 -5
- package/es/FormItem/index.js +23 -23
- package/es/FormItem/itemType.js +1 -1
- package/es/FunctionModal/component.json +197 -0
- package/es/FunctionModal/dialog.d.ts +1 -1
- package/es/FunctionModal/modalContext.d.ts +4 -1
- package/es/Help/component.json +118 -0
- package/es/HelperText/component.json +126 -0
- package/es/Image/component.json +165 -0
- package/es/InputCode/component.json +191 -0
- package/es/InputCode/index.d.ts +2 -2
- package/es/InputLang/component.json +205 -0
- package/es/InputLang/index.js +1 -1
- package/es/InputNumber/component.json +162 -0
- package/es/Label/component.json +126 -0
- package/es/Label/index.d.ts +2 -2
- package/es/Loading/component.json +91 -0
- package/es/Menu/component.json +180 -0
- package/es/Message/component.json +246 -0
- package/es/Message/index.d.ts +2 -2
- package/es/Message/index.js +2 -2
- package/es/Modal/Confirm/index.d.ts +1 -1
- package/es/Modal/Confirm/index.js +81 -75
- package/es/Modal/component.json +277 -0
- package/es/Modal/index.d.ts +97 -6
- package/es/Modal/index.js +174 -122
- package/es/Modal/interface.d.ts +1 -0
- package/es/MultiBox/component.json +216 -0
- package/es/MultiBox/index.js +19 -14
- package/es/Notification/component.json +184 -0
- package/es/OperateBtn/component.json +134 -0
- package/es/OperateBtn/index.d.ts +3 -3
- package/es/PageHeader/component.json +112 -0
- package/es/Pagination/component.json +181 -0
- package/es/Pagination/index.js +15 -15
- package/es/PasswordRules/component.json +105 -0
- package/es/PasswordRules/index.d.ts +4 -4
- package/es/PopConfirm/component.json +227 -0
- package/es/PopConfirm/index.d.ts +1 -1
- package/es/PopConfirm/index.js +1 -1
- package/es/PopMenu/component.json +131 -0
- package/es/PopMenu/hooks.d.ts +1 -1
- package/es/PopMenu/index.js +8 -8
- package/es/Popover/component.json +165 -0
- package/es/Popover/index.js +1 -1
- package/es/Progress/component.json +161 -0
- package/es/Prompt/component.json +144 -0
- package/es/Querying/component.json +96 -0
- package/es/Querying/index.css +1 -1
- package/es/Querying/index.d.ts +2 -2
- package/es/Querying/index.js +20 -19
- package/es/Querying/style/index.css +1 -1
- package/es/QuickReply/component.json +129 -0
- package/es/QuickReply/index.d.ts +1 -1
- package/es/Radio/component.json +136 -0
- package/es/RadioGroup/component.json +149 -0
- package/es/RangeInput/component.json +198 -0
- package/es/RangeInput/index.js +1 -1
- package/es/Result/component.json +104 -0
- package/es/ScrollBar/component.json +115 -0
- package/es/Search/component.json +177 -0
- package/es/Search/index.d.ts +1 -1
- package/es/Select/component.json +244 -0
- package/es/Select/index.js +113 -113
- package/es/SelectInput/component.json +184 -0
- package/es/Selector/component.json +203 -0
- package/es/Selector/index.js +28 -27
- package/es/Selector/interface.d.ts +1 -1
- package/es/Selector/selectorMain/index.js +2 -2
- package/es/Selector/selectorNode/index.js +1 -1
- package/es/Selector/util.d.ts +2 -2
- package/es/SelectorPicker/component.json +179 -0
- package/es/SelectorPicker/index.d.ts +5 -5
- package/es/SelectorPicker/index.js +15 -15
- package/es/SingleBox/component.json +151 -0
- package/es/SingleBox/index.d.ts +2 -2
- package/es/Slider/component.json +181 -0
- package/es/SortBox/component.json +108 -0
- package/es/Status/component.json +104 -0
- package/es/Stepper/component.json +129 -0
- package/es/Stepper/index.d.ts +2 -2
- package/es/Switch/component.json +207 -0
- package/es/Switch/index.css +1 -1
- package/es/Switch/index.d.ts +3 -2
- package/es/Switch/index.js +60 -59
- package/es/Switch/style/index.css +1 -1
- package/es/Table/component.json +547 -0
- package/es/Table/index.d.ts +2 -2
- package/es/Table/index.js +414 -414
- package/es/Table/interface.d.ts +6 -0
- package/es/Tabs/component.json +227 -0
- package/es/Tag/component.json +221 -0
- package/es/Tag/index.css +1 -1
- package/es/Tag/index.d.ts +1 -1
- package/es/Tag/index.js +20 -20
- package/es/Tag/style/index.css +1 -1
- package/es/TextEditor/component.json +186 -0
- package/es/TextEditor/index.d.ts +5 -5
- package/es/TextField/component.json +290 -0
- package/es/TextField/index.d.ts +2 -2
- package/es/TimePicker/component.json +176 -0
- package/es/Timeline/component.json +110 -0
- package/es/Title/component.json +156 -0
- package/es/ToggleButton/component.json +153 -0
- package/es/Tooltip/component.json +176 -0
- package/es/Tooltip/index.js +74 -63
- package/es/Tooltip/interface.d.ts +14 -1
- package/es/Tooltip/utils.js +6 -6
- package/es/Transfer/component.json +157 -0
- package/es/Tree/component.json +512 -0
- package/es/Upload/component.json +450 -0
- package/es/Utils/type.d.ts +0 -2
- package/es/index.d.ts +2 -0
- package/es/index.js +1 -1
- package/es/locale/en_US.d.ts +361 -0
- package/es/locale/en_US.js +364 -0
- package/es/locale/index.d.ts +1 -723
- package/es/locale/index2.js +10 -0
- package/es/locale/zh_CN.d.ts +361 -0
- package/es/locale/zh_CN.js +364 -0
- package/lib/AlignBox/component.json +89 -0
- package/lib/AlignBox/index.css +1 -1
- package/lib/AlignBox/index.d.ts +6 -2
- package/lib/AlignBox/index.js +1 -1
- package/lib/AlignBox/style/index.css +1 -1
- package/lib/Anchor/anchorMenu/index.d.ts +2 -1
- package/lib/Anchor/anchorMenu/index.js +1 -1
- package/lib/Anchor/component.json +130 -0
- package/lib/Anchor/index.js +1 -1
- package/lib/Anchor/type.d.ts +8 -4
- package/lib/Argv/component.json +216 -0
- package/lib/Argv/index.d.ts +5 -6
- package/lib/AutoBox/component.json +133 -0
- package/lib/AutoBox/index.d.ts +3 -3
- package/lib/AutoBox/index.js +1 -1
- package/lib/AutoBox/protal.d.ts +2 -2
- package/lib/AutoBox/protal.js +1 -1
- package/lib/AutoButton/component.json +109 -0
- package/lib/AutoButton/index.js +1 -1
- package/lib/AutoTips/autoTipsMultiline/index.d.ts +1 -1
- package/lib/AutoTips/autoTipsMultiline/index.js +1 -1
- package/lib/AutoTips/component.json +121 -0
- package/lib/Badge/component.json +92 -0
- package/lib/Breadcrumbs/component.json +142 -0
- package/lib/Breadcrumbs/index.js +1 -1
- package/lib/Button/SplitButton.d.ts +2 -2
- package/lib/Button/component.json +168 -0
- package/lib/Button/index.js +1 -1
- package/lib/ButtonGroup/component.json +132 -0
- package/lib/ButtonGroup/index.d.ts +1 -1
- package/lib/Card/component.json +162 -0
- package/lib/Card/index.d.ts +2 -2
- package/lib/Card/index.js +1 -1
- package/lib/Carousel/component.json +142 -0
- package/lib/Carousel/index.d.ts +1 -1
- package/lib/Cascader/Cascader.js +1 -1
- package/lib/Cascader/component.json +196 -0
- package/lib/Cascader/hooks/useEntities.js +1 -1
- package/lib/Cascader/interface.d.ts +1 -0
- package/lib/Cascader/utils/commonUtil.d.ts +1 -1
- package/lib/Cascader/utils/commonUtil.js +1 -1
- package/lib/Cascader/utils/treeUtil.d.ts +14 -5
- package/lib/Cascader/utils/treeUtil.js +1 -1
- package/lib/Checkbox/component.json +138 -0
- package/lib/CheckboxGroup/component.json +152 -0
- package/lib/CodeEditor/component.json +189 -0
- package/lib/CodeEditor/index.d.ts +10 -9
- package/lib/Collapse/component.json +166 -0
- package/lib/Collapse/index.d.ts +1 -1
- package/lib/Collapse/index.js +1 -1
- package/lib/CollapseBox/component.json +84 -0
- package/lib/CollapseLayout/component.json +155 -0
- package/lib/ColorPicker/component.json +142 -0
- package/lib/ComboSelect/component.json +181 -0
- package/lib/ComboSelect/index.js +1 -1
- package/lib/ComboSelect/interface.d.ts +6 -3
- package/lib/ComboSelect/utils.d.ts +3 -3
- package/lib/ComboSelect/utils.js +1 -1
- package/lib/Container/component.json +111 -0
- package/lib/ContentBox/component.json +81 -0
- package/lib/CopyText/component.json +118 -0
- package/lib/CycleSelector/component.json +98 -0
- package/lib/CycleSelector/index.js +1 -1
- package/lib/DatePicker/component.json +192 -0
- package/lib/DatePicker/generatePicker/generateRangePicker.d.ts +0 -8
- package/lib/DatePicker/generatePicker/generateRangePicker.js +1 -1
- package/lib/DatePicker/generatePicker/generateSinglePicker.js +1 -1
- package/lib/DatePicker/generatePicker/index.d.ts +11 -4
- package/lib/Descriptions/component.json +142 -0
- package/lib/Descriptions/index.d.ts +1 -1
- package/lib/Desktop/component.json +171 -0
- package/lib/DragVerify/component.json +114 -0
- package/lib/DragVerify/index.js +1 -1
- package/lib/Drawer/component.json +200 -0
- package/lib/Drawer/index.js +1 -1
- package/lib/Drawer/interface.d.ts +1 -1
- package/lib/Drawer/util.d.ts +1 -6
- package/lib/Drawer/util.js +1 -1
- package/lib/Dropdown/component.json +147 -0
- package/lib/DynamicMultiBox/component.json +278 -0
- package/lib/DynamicMultiBox/formItem.d.ts +1 -1
- package/lib/DynamicMultiBox/rowForm.d.ts +2 -2
- package/lib/Empty/component.json +123 -0
- package/lib/Empty/index.css +1 -1
- package/lib/Empty/index.d.ts +2 -2
- package/lib/Empty/index.js +1 -1
- package/lib/Empty/style/index.css +1 -1
- package/lib/FieldForm/FieldFormItem/MemoInput.d.ts +2 -2
- package/lib/FieldForm/FieldFormItem/index.d.ts +6 -6
- package/lib/FieldForm/Form.d.ts +2 -2
- package/lib/FieldForm/FormList.d.ts +2 -2
- package/lib/FieldForm/component.json +196 -0
- package/lib/FieldForm/context.d.ts +5 -1
- package/lib/FieldForm/context.js +1 -1
- package/lib/FieldForm/hooks/useForm.d.ts +4 -3
- package/lib/FieldForm/hooks/useFormInstance.d.ts +1 -1
- package/lib/FieldForm/hooks/useFormItemStatus.d.ts +9 -5
- package/lib/FieldForm/hooks/useFormItemStatus.js +1 -1
- package/lib/FieldForm/hooks/useItemRef.d.ts +1 -1
- package/lib/FieldForm/hooks/useItemRef.js +1 -1
- package/lib/Form/component.json +161 -0
- package/lib/Form/index.d.ts +52 -49
- package/lib/FormItem/compoments/defaultCompoments/index.d.ts +5 -5
- package/lib/FormItem/compoments/defaultCompoments/index.js +1 -1
- package/lib/FormItem/compoments/formCheckboxGroup/index.d.ts +2 -2
- package/lib/FormItem/compoments/formFile/index.js +1 -1
- package/lib/FormItem/compoments/formRadioGroup/index.d.ts +1 -1
- package/lib/FormItem/compoments/formSelect/index.d.ts +1 -1
- package/lib/FormItem/component.json +171 -0
- package/lib/FormItem/index.d.ts +5 -5
- package/lib/FormItem/index.js +1 -1
- package/lib/FormItem/itemType.js +1 -1
- package/lib/FunctionModal/component.json +197 -0
- package/lib/FunctionModal/dialog.d.ts +1 -1
- package/lib/FunctionModal/modalContext.d.ts +4 -1
- package/lib/Help/component.json +118 -0
- package/lib/HelperText/component.json +126 -0
- package/lib/Image/component.json +165 -0
- package/lib/InputCode/component.json +191 -0
- package/lib/InputCode/index.d.ts +2 -2
- package/lib/InputLang/component.json +205 -0
- package/lib/InputLang/index.js +1 -1
- package/lib/InputNumber/component.json +162 -0
- package/lib/Label/component.json +126 -0
- package/lib/Label/index.d.ts +2 -2
- package/lib/Loading/component.json +91 -0
- package/lib/Menu/component.json +180 -0
- package/lib/Message/component.json +246 -0
- package/lib/Message/index.d.ts +2 -2
- package/lib/Message/index.js +1 -1
- package/lib/Modal/Confirm/index.d.ts +1 -1
- package/lib/Modal/Confirm/index.js +1 -1
- package/lib/Modal/component.json +277 -0
- package/lib/Modal/index.d.ts +97 -6
- package/lib/Modal/index.js +1 -1
- package/lib/Modal/interface.d.ts +1 -0
- package/lib/MultiBox/component.json +216 -0
- package/lib/MultiBox/index.js +1 -1
- package/lib/Notification/component.json +184 -0
- package/lib/OperateBtn/component.json +134 -0
- package/lib/OperateBtn/index.d.ts +3 -3
- package/lib/PageHeader/component.json +112 -0
- package/lib/Pagination/component.json +181 -0
- package/lib/Pagination/index.js +1 -1
- package/lib/PasswordRules/component.json +105 -0
- package/lib/PasswordRules/index.d.ts +4 -4
- package/lib/PopConfirm/component.json +227 -0
- package/lib/PopConfirm/index.d.ts +1 -1
- package/lib/PopConfirm/index.js +1 -1
- package/lib/PopMenu/component.json +131 -0
- package/lib/PopMenu/hooks.d.ts +1 -1
- package/lib/PopMenu/index.js +1 -1
- package/lib/Popover/component.json +165 -0
- package/lib/Popover/index.js +1 -1
- package/lib/Progress/component.json +161 -0
- package/lib/Prompt/component.json +144 -0
- package/lib/Querying/component.json +96 -0
- package/lib/Querying/index.css +1 -1
- package/lib/Querying/index.d.ts +2 -2
- package/lib/Querying/index.js +1 -1
- package/lib/Querying/style/index.css +1 -1
- package/lib/QuickReply/component.json +129 -0
- package/lib/QuickReply/index.d.ts +1 -1
- package/lib/Radio/component.json +136 -0
- package/lib/RadioGroup/component.json +149 -0
- package/lib/RangeInput/component.json +198 -0
- package/lib/RangeInput/index.js +1 -1
- package/lib/Result/component.json +104 -0
- package/lib/ScrollBar/component.json +115 -0
- package/lib/Search/component.json +177 -0
- package/lib/Search/index.d.ts +1 -1
- package/lib/Select/component.json +244 -0
- package/lib/Select/index.js +1 -1
- package/lib/SelectInput/component.json +184 -0
- package/lib/Selector/component.json +203 -0
- package/lib/Selector/index.js +1 -1
- package/lib/Selector/interface.d.ts +1 -1
- package/lib/Selector/selectorMain/index.js +1 -1
- package/lib/Selector/selectorNode/index.js +1 -1
- package/lib/Selector/util.d.ts +2 -2
- package/lib/SelectorPicker/component.json +179 -0
- package/lib/SelectorPicker/index.d.ts +5 -5
- package/lib/SelectorPicker/index.js +1 -1
- package/lib/SingleBox/component.json +151 -0
- package/lib/SingleBox/index.d.ts +2 -2
- package/lib/Slider/component.json +181 -0
- package/lib/SortBox/component.json +108 -0
- package/lib/Status/component.json +104 -0
- package/lib/Stepper/component.json +129 -0
- package/lib/Stepper/index.d.ts +2 -2
- package/lib/Switch/component.json +207 -0
- package/lib/Switch/index.css +1 -1
- package/lib/Switch/index.d.ts +3 -2
- package/lib/Switch/index.js +1 -1
- package/lib/Switch/style/index.css +1 -1
- package/lib/Table/component.json +547 -0
- package/lib/Table/index.d.ts +2 -2
- package/lib/Table/index.js +1 -1
- package/lib/Table/interface.d.ts +6 -0
- package/lib/Tabs/component.json +227 -0
- package/lib/Tag/component.json +221 -0
- package/lib/Tag/index.css +1 -1
- package/lib/Tag/index.d.ts +1 -1
- package/lib/Tag/index.js +1 -1
- package/lib/Tag/style/index.css +1 -1
- package/lib/TextEditor/component.json +186 -0
- package/lib/TextEditor/index.d.ts +5 -5
- package/lib/TextField/component.json +290 -0
- package/lib/TextField/index.d.ts +2 -2
- package/lib/TimePicker/component.json +176 -0
- package/lib/Timeline/component.json +110 -0
- package/lib/Title/component.json +156 -0
- package/lib/ToggleButton/component.json +153 -0
- package/lib/Tooltip/component.json +176 -0
- package/lib/Tooltip/index.js +1 -1
- package/lib/Tooltip/interface.d.ts +14 -1
- package/lib/Tooltip/utils.js +1 -1
- package/lib/Transfer/component.json +157 -0
- package/lib/Tree/component.json +512 -0
- package/lib/Upload/component.json +450 -0
- package/lib/Utils/type.d.ts +0 -2
- package/lib/index.d.ts +2 -0
- package/lib/index.js +1 -1
- package/lib/locale/en_US.d.ts +361 -0
- package/lib/locale/en_US.js +2 -0
- package/lib/locale/index.d.ts +1 -723
- package/lib/locale/index2.js +2 -0
- package/lib/locale/zh_CN.d.ts +361 -0
- package/lib/locale/zh_CN.js +2 -0
- package/package.json +10 -3
- /package/es/{Utils/Hooks → Hooks}/useResizeObserver.d.ts +0 -0
- /package/es/{Utils/Hooks → Hooks}/useResizeObserver.js +0 -0
- /package/lib/{Utils/Hooks → Hooks}/useResizeObserver.d.ts +0 -0
- /package/lib/{Utils/Hooks → Hooks}/useResizeObserver.js +0 -0
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "TimePicker",
|
|
3
|
+
"category": "Data Entry",
|
|
4
|
+
"description": "时间选择器,基于 DatePicker 封装,支持单时间选择与范围选择(RangePicker)",
|
|
5
|
+
"semantic": {
|
|
6
|
+
"intent": [
|
|
7
|
+
"时间选择",
|
|
8
|
+
"日程安排"
|
|
9
|
+
],
|
|
10
|
+
"useCases": [
|
|
11
|
+
"会议时间",
|
|
12
|
+
"闹钟设置",
|
|
13
|
+
"预约时间"
|
|
14
|
+
],
|
|
15
|
+
"riskLevel": "low"
|
|
16
|
+
},
|
|
17
|
+
"variants": {
|
|
18
|
+
"default": {
|
|
19
|
+
"meaning": "标准时间选择"
|
|
20
|
+
},
|
|
21
|
+
"range": {
|
|
22
|
+
"meaning": "时间范围选择——用 TimePicker.RangePicker 或 TimePicker.TimeRangePicker(两者等价)"
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"states": [
|
|
26
|
+
"default",
|
|
27
|
+
"disabled",
|
|
28
|
+
"error"
|
|
29
|
+
],
|
|
30
|
+
"idealProps": {
|
|
31
|
+
"value": {
|
|
32
|
+
"type": "Dayjs | null",
|
|
33
|
+
"description": "受控时间值(Dayjs 对象);清空时传 null;与 onChange 配套使用"
|
|
34
|
+
},
|
|
35
|
+
"defaultValue": {
|
|
36
|
+
"type": "Dayjs",
|
|
37
|
+
"description": "非受控默认时间值;受控模式只传 value + onChange"
|
|
38
|
+
},
|
|
39
|
+
"format": {
|
|
40
|
+
"type": "string",
|
|
41
|
+
"default": "HH:mm:ss",
|
|
42
|
+
"description": "展示的时间格式,支持 'HH:mm' / 'HH:mm:ss' / 'hh:mm a'(12小时制)等"
|
|
43
|
+
},
|
|
44
|
+
"onChange": {
|
|
45
|
+
"type": "function",
|
|
46
|
+
"signature": "(time: Dayjs | null, timeString: string) => void",
|
|
47
|
+
"description": "时间发生变化的回调;清空时 time=null,timeString='';来自 rc-picker 继承"
|
|
48
|
+
},
|
|
49
|
+
"disabled": {
|
|
50
|
+
"type": "boolean",
|
|
51
|
+
"default": false,
|
|
52
|
+
"description": "是否禁用"
|
|
53
|
+
},
|
|
54
|
+
"disabledTooltip": {
|
|
55
|
+
"type": "TooltipProps",
|
|
56
|
+
"description": "禁用状态下的 Tooltip 配置(src/TimePicker/index.tsx:35);disabled=true 时触发 Tooltip 包裹",
|
|
57
|
+
"required": false
|
|
58
|
+
},
|
|
59
|
+
"placeholder": {
|
|
60
|
+
"type": "string",
|
|
61
|
+
"description": "输入框占位提示"
|
|
62
|
+
},
|
|
63
|
+
"use12Hours": {
|
|
64
|
+
"type": "boolean",
|
|
65
|
+
"default": false,
|
|
66
|
+
"description": "使用 12 小时制,开启时 format 建议配置为 'hh:mm a'"
|
|
67
|
+
},
|
|
68
|
+
"allowClear": {
|
|
69
|
+
"type": "boolean",
|
|
70
|
+
"default": true,
|
|
71
|
+
"description": "是否展示清除按钮(与 DatePicker 共享同一实现,默认 true)",
|
|
72
|
+
"required": false
|
|
73
|
+
},
|
|
74
|
+
"open": {
|
|
75
|
+
"type": "boolean",
|
|
76
|
+
"description": "受控控制面板是否打开",
|
|
77
|
+
"required": false
|
|
78
|
+
},
|
|
79
|
+
"onOpenChange": {
|
|
80
|
+
"type": "function",
|
|
81
|
+
"signature": "(open: boolean) => void",
|
|
82
|
+
"description": "面板打开/关闭回调",
|
|
83
|
+
"required": false
|
|
84
|
+
},
|
|
85
|
+
"disabledHours": {
|
|
86
|
+
"type": "function",
|
|
87
|
+
"signature": "() => number[]",
|
|
88
|
+
"description": "返回禁止选择的小时数组,例:() => [0,1,2,3] 禁止凌晨时段",
|
|
89
|
+
"required": false
|
|
90
|
+
},
|
|
91
|
+
"disabledMinutes": {
|
|
92
|
+
"type": "function",
|
|
93
|
+
"signature": "(selectedHour: number) => number[]",
|
|
94
|
+
"description": "返回禁止选择的分钟数组(依赖已选小时动态计算)",
|
|
95
|
+
"required": false
|
|
96
|
+
},
|
|
97
|
+
"disabledSeconds": {
|
|
98
|
+
"type": "function",
|
|
99
|
+
"signature": "(selectedHour: number, selectedMinute: number) => number[]",
|
|
100
|
+
"description": "返回禁止选择的秒数组",
|
|
101
|
+
"required": false
|
|
102
|
+
},
|
|
103
|
+
"showNow": {
|
|
104
|
+
"type": "boolean",
|
|
105
|
+
"description": "是否显示「此刻」快捷按钮",
|
|
106
|
+
"required": false
|
|
107
|
+
},
|
|
108
|
+
"addon": {
|
|
109
|
+
"type": "function",
|
|
110
|
+
"signature": "() => React.ReactNode",
|
|
111
|
+
"description": "面板底部额外内容(等价于 renderExtraFooter,优先级低于 renderExtraFooter);src/TimePicker/index.tsx:41-48",
|
|
112
|
+
"required": false
|
|
113
|
+
}
|
|
114
|
+
},
|
|
115
|
+
"do": [
|
|
116
|
+
"受控模式:传 value(Dayjs | null)+ onChange;清空时用 null 而不是空字符串",
|
|
117
|
+
"范围选择用 TimePicker.RangePicker(与 TimePicker.TimeRangePicker 等价)",
|
|
118
|
+
"禁用特定时间段用 disabledHours / disabledMinutes / disabledSeconds 组合",
|
|
119
|
+
"use12Hours=true 时同步设置 format='hh:mm a' 以保持展示一致",
|
|
120
|
+
"disabled=true 时可配合 disabledTooltip 提供操作权限提示"
|
|
121
|
+
],
|
|
122
|
+
"dont": [
|
|
123
|
+
"在需要选时间段的场景使用两个 TimePicker——应用 TimePicker.RangePicker",
|
|
124
|
+
"传字符串给 value——value 必须是 Dayjs 对象或 null(非字符串)",
|
|
125
|
+
"忽略清空场景:onChange(null, '') 表示清空,直接存 time 会把 null 存入 state",
|
|
126
|
+
"rc-* 库 strict 校验可能报告额外 prop(已知边缘情况,非 metadata 错误)"
|
|
127
|
+
],
|
|
128
|
+
"events": {
|
|
129
|
+
"onChange": {
|
|
130
|
+
"signature": "(time: Dayjs | null, timeString: string) => void",
|
|
131
|
+
"asyncSupported": false,
|
|
132
|
+
"examples": [
|
|
133
|
+
"时间选中时:time 为 Dayjs 对象,timeString 为 format 格式化字符串(如 '14:30:00')",
|
|
134
|
+
"清空时:time=null,timeString=''——需判断 null 避免存入 state",
|
|
135
|
+
"受控模式更新:onChange={(t) => setValue(t)} 同步更新 state"
|
|
136
|
+
],
|
|
137
|
+
"commonMistakes": [
|
|
138
|
+
"只用 timeString 而忽略 time——timeString 是字符串,跨时区转换需用 Dayjs 对象",
|
|
139
|
+
"不处理 null:allowClear=true 用户点叉触发 onChange(null, ''),直接 setValue(time) 会存入 null",
|
|
140
|
+
"RangePicker 的 onChange 签名不同:(times: [Dayjs,Dayjs]|null, timeStrings:[string,string]) => void"
|
|
141
|
+
]
|
|
142
|
+
},
|
|
143
|
+
"onOpenChange": {
|
|
144
|
+
"signature": "(open: boolean) => void",
|
|
145
|
+
"asyncSupported": false,
|
|
146
|
+
"examples": [
|
|
147
|
+
"面板弹出时触发 onOpenChange(true),关闭时触发 onOpenChange(false)",
|
|
148
|
+
"搭配 open 受控 prop 实现弹层自定义开关"
|
|
149
|
+
],
|
|
150
|
+
"commonMistakes": [
|
|
151
|
+
"在 onOpenChange(false) 中提交表单——面板关闭不代表值已更新(需用 onChange 确认)"
|
|
152
|
+
]
|
|
153
|
+
}
|
|
154
|
+
},
|
|
155
|
+
"typescriptPitfalls": [
|
|
156
|
+
{
|
|
157
|
+
"issue": "TimePicker value 必须是 Dayjs 对象,传字符串会导致展示异常",
|
|
158
|
+
"wrong": "value={'14:30:00'} // 字符串不是 Dayjs,内部格式化失败",
|
|
159
|
+
"right": "value={dayjs('14:30:00', 'HH:mm:ss')} // 用 dayjs() 转换;清空用 null"
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
"issue": "RangePicker 与 TimePicker 的 onChange 签名不同,混用导致类型错误",
|
|
163
|
+
"wrong": "// TimePicker.RangePicker 中用单时间签名\n<TimePicker.RangePicker onChange={(time: Dayjs) => ...} />",
|
|
164
|
+
"right": "<TimePicker.RangePicker onChange={(times: [Dayjs,Dayjs]|null, strs: [string,string]) => ...} />"
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
"issue": "rc-* 继承 prop(PickerTimeProps)在 strict 模式下可能报告未对齐,属已知边缘情况",
|
|
168
|
+
"wrong": "// 假设 strict 校验失败说明 metadata 写错——TimePicker/Tree 的 rc-* 继承是已知例外",
|
|
169
|
+
"right": "// strict 失败是已知情况;确认源码 prop 存在即可,不需要删除真实 prop"
|
|
170
|
+
}
|
|
171
|
+
],
|
|
172
|
+
"mapping": {
|
|
173
|
+
"realComponent": "TimePicker",
|
|
174
|
+
"adapter": null
|
|
175
|
+
}
|
|
176
|
+
}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Timeline",
|
|
3
|
+
"category": "Data Display",
|
|
4
|
+
"description": "时间轴,垂直展示的时间流信息,支持正序/倒序与多种节点样式",
|
|
5
|
+
"semantic": {
|
|
6
|
+
"intent": [
|
|
7
|
+
"展示历史",
|
|
8
|
+
"流程跟踪",
|
|
9
|
+
"时间顺序"
|
|
10
|
+
],
|
|
11
|
+
"useCases": [
|
|
12
|
+
"版本日志",
|
|
13
|
+
"物流详情",
|
|
14
|
+
"审批流程"
|
|
15
|
+
],
|
|
16
|
+
"riskLevel": "low"
|
|
17
|
+
},
|
|
18
|
+
"variants": {
|
|
19
|
+
"default": {
|
|
20
|
+
"meaning": "左侧时间轴"
|
|
21
|
+
},
|
|
22
|
+
"right": {
|
|
23
|
+
"meaning": "右侧时间轴"
|
|
24
|
+
},
|
|
25
|
+
"alternate": {
|
|
26
|
+
"meaning": "交替时间轴"
|
|
27
|
+
},
|
|
28
|
+
"double": {
|
|
29
|
+
"meaning": "双侧时间轴(label 在左侧,内容在右侧)"
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"states": [
|
|
33
|
+
"default",
|
|
34
|
+
"pending",
|
|
35
|
+
"disabled"
|
|
36
|
+
],
|
|
37
|
+
"idealProps": {
|
|
38
|
+
"data": {
|
|
39
|
+
"type": "TimelineItemProps[]",
|
|
40
|
+
"description": "数据驱动模式(推荐):传入节点数组,组件内部自动渲染所有 TimelineItem;与 children JSX 方式二选一,data 优先(src/Timeline/index.tsx:118 renderItems 先判断 data?.length)",
|
|
41
|
+
"itemSchema": {
|
|
42
|
+
"content": { "type": "ReactNode", "description": "节点主体内容" },
|
|
43
|
+
"dotIcon": { "type": "ReactNode", "description": "自定义节点图标(对应 Timeline.Item 的 dot prop)" },
|
|
44
|
+
"label": { "type": "ReactNode", "description": "节点标签(仅 mode='double' 时在左侧显示)" },
|
|
45
|
+
"disabled": { "type": "boolean", "description": "是否禁用该节点(灰色样式)" },
|
|
46
|
+
"className": { "type": "string", "description": "自定义节点 className" }
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"mode": {
|
|
50
|
+
"type": "enum",
|
|
51
|
+
"values": ["left", "alternate", "right", "double"],
|
|
52
|
+
"default": "left",
|
|
53
|
+
"description": "时间轴和内容的相对位置。⚠️ align prop 与 mode 同义(alias),同时传时 align 优先(src:50 `innerMode = align ?? mode`)"
|
|
54
|
+
},
|
|
55
|
+
"align": {
|
|
56
|
+
"type": "enum",
|
|
57
|
+
"values": ["left", "alternate", "right", "double"],
|
|
58
|
+
"description": "与 mode 同义,优先级高于 mode(src/Timeline/index.tsx:50);不建议同时传 mode 和 align"
|
|
59
|
+
},
|
|
60
|
+
"reverse": {
|
|
61
|
+
"type": "boolean",
|
|
62
|
+
"default": false,
|
|
63
|
+
"description": "节点排序取反(最新节点排最后变最前)"
|
|
64
|
+
},
|
|
65
|
+
"pending": {
|
|
66
|
+
"type": "ReactNode | boolean",
|
|
67
|
+
"default": null,
|
|
68
|
+
"description": "最后一个幽灵节点内容,传 true 显示空幽灵节点,传 ReactNode 显示自定义内容(物流'配送中'等场景)"
|
|
69
|
+
},
|
|
70
|
+
"pendingDot": {
|
|
71
|
+
"type": "ReactNode",
|
|
72
|
+
"description": "幽灵节点的时间轴点图标,配合 pending 使用"
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
"do": [
|
|
76
|
+
"优先使用 data 数组 prop(而非 JSX children)批量渲染节点,减少模板代码",
|
|
77
|
+
"使用 dotIcon / color 区分节点状态(绿色=成功、红色=失败、蓝色=进行中)",
|
|
78
|
+
"正在进行中的事项用 pending 幽灵节点展示(末尾加载动画语义)",
|
|
79
|
+
"需要展示日期标签时使用 mode='double' + item.label",
|
|
80
|
+
"最近的时间点通常排在最前面(配合 reverse=true 或数据倒序)"
|
|
81
|
+
],
|
|
82
|
+
"dont": [
|
|
83
|
+
"在水平空间受限的区域使用 mode='alternate'——两侧都有内容需要足够宽度",
|
|
84
|
+
"不要同时传 mode 和 align——align 会覆盖 mode(src 实证)",
|
|
85
|
+
"节点内容过于复杂(嵌套 Table/Form 等)——Timeline 适合轻量文本+状态展示",
|
|
86
|
+
"不要依赖 items prop(当前 idealProps 是 data 不是 items——antd 命名差异)"
|
|
87
|
+
],
|
|
88
|
+
"events": {},
|
|
89
|
+
"typescriptPitfalls": [
|
|
90
|
+
{
|
|
91
|
+
"issue": "data 数组中 dot/icon 字段名是 dotIcon 不是 dot",
|
|
92
|
+
"wrong": "data={[{ content: '已发货', dot: <Icon /> }]} // dot 在 data 数组中无效",
|
|
93
|
+
"right": "data={[{ content: '已发货', dotIcon: <Icon /> }]} // data 模式用 dotIcon;JSX 模式 <Timeline.Item dot={...}>"
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"issue": "mode 和 align 同时传时 align 优先,mode 被忽略",
|
|
97
|
+
"wrong": "<Timeline mode='alternate' align='left'> // align='left' 覆盖 mode='alternate'",
|
|
98
|
+
"right": "// 只传其中一个\n<Timeline mode='alternate'> // 或 <Timeline align='left'>"
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"issue": "TimelineItemProps 的 label 只在 mode='double' 时显示,其他模式传了也不渲染",
|
|
102
|
+
"wrong": "// mode='left' 下传 label 期望显示时间\ndata={[{ content: '审批通过', label: '2024-01-01' }]} // label 不会渲染",
|
|
103
|
+
"right": "// 需要显示 label 必须同时设置 mode='double'\n<Timeline mode='double' data={[{ content: '审批通过', label: '2024-01-01' }]} />"
|
|
104
|
+
}
|
|
105
|
+
],
|
|
106
|
+
"mapping": {
|
|
107
|
+
"realComponent": "Timeline",
|
|
108
|
+
"adapter": null
|
|
109
|
+
}
|
|
110
|
+
}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Title",
|
|
3
|
+
"category": "Data Display",
|
|
4
|
+
"description": "区块标题组件,支持图标、副标题、帮助提示、链接和可折叠内容区",
|
|
5
|
+
"semantic": {
|
|
6
|
+
"intent": [
|
|
7
|
+
"标题展示",
|
|
8
|
+
"区块标识",
|
|
9
|
+
"内容折叠"
|
|
10
|
+
],
|
|
11
|
+
"useCases": [
|
|
12
|
+
"卡片标题",
|
|
13
|
+
"模块标题",
|
|
14
|
+
"页面标题",
|
|
15
|
+
"带折叠的配置区"
|
|
16
|
+
],
|
|
17
|
+
"riskLevel": "low"
|
|
18
|
+
},
|
|
19
|
+
"variants": {
|
|
20
|
+
"default": {
|
|
21
|
+
"meaning": "默认无图标样式(显示左侧竖线 ink 装饰)"
|
|
22
|
+
},
|
|
23
|
+
"withIcon": {
|
|
24
|
+
"meaning": "带图标样式(传 icon prop 后替换左侧竖线,size 生效)"
|
|
25
|
+
},
|
|
26
|
+
"collapsible": {
|
|
27
|
+
"meaning": "可折叠样式(传 collapseContent 或 children 后变为可展开/折叠区)"
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
"states": [
|
|
31
|
+
"default",
|
|
32
|
+
"collapsed",
|
|
33
|
+
"expanded"
|
|
34
|
+
],
|
|
35
|
+
"idealProps": {
|
|
36
|
+
"title": {
|
|
37
|
+
"type": "ReactNode",
|
|
38
|
+
"description": "主标题文字,必须传",
|
|
39
|
+
"required": true
|
|
40
|
+
},
|
|
41
|
+
"subTitle": {
|
|
42
|
+
"type": "ReactNode",
|
|
43
|
+
"description": "副标题(显示在主标题右侧,支持超长 AutoTips 截断)"
|
|
44
|
+
},
|
|
45
|
+
"icon": {
|
|
46
|
+
"type": "ReactNode",
|
|
47
|
+
"description": "自定义图标(显示在标题左侧,替换默认竖线装饰;传入时 size prop 生效)"
|
|
48
|
+
},
|
|
49
|
+
"collapseContent": {
|
|
50
|
+
"type": "ReactNode",
|
|
51
|
+
"description": "可折叠内容区,传入后标题右侧显示展开/折叠箭头;与 children 二选一(children 优先级高于 collapseContent)"
|
|
52
|
+
},
|
|
53
|
+
"titleTooltip": {
|
|
54
|
+
"type": "ReactNode",
|
|
55
|
+
"description": "标题旁的帮助提示内容,显示 ? 图标,hover 展示内容",
|
|
56
|
+
"required": false
|
|
57
|
+
},
|
|
58
|
+
"titoleTooltipIcon": {
|
|
59
|
+
"type": "ReactNode",
|
|
60
|
+
"description": "⚠️ typo:prop 名是 titoleTooltipIcon(原码如此),自定义帮助提示图标节点",
|
|
61
|
+
"required": false
|
|
62
|
+
},
|
|
63
|
+
"link": {
|
|
64
|
+
"type": "{ href: string; text: ReactNode; target?: string; onClick?: React.MouseEventHandler<HTMLElement> }",
|
|
65
|
+
"description": "渲染在标题旁的链接",
|
|
66
|
+
"objectShape": {
|
|
67
|
+
"href": { "type": "string", "description": "链接地址", "required": true },
|
|
68
|
+
"text": { "type": "ReactNode", "description": "链接文字", "required": true },
|
|
69
|
+
"target": { "type": "string", "description": "同 <a> target 属性,如 '_blank'", "required": false },
|
|
70
|
+
"onClick": { "type": "React.MouseEventHandler<HTMLElement>", "description": "点击链接回调", "required": false }
|
|
71
|
+
},
|
|
72
|
+
"required": false
|
|
73
|
+
},
|
|
74
|
+
"defaultCollapse": {
|
|
75
|
+
"type": "boolean",
|
|
76
|
+
"description": "折叠内容默认是否展开;⚠️ 只有传了 collapseContent 或 children 时才有效",
|
|
77
|
+
"default": false,
|
|
78
|
+
"required": false
|
|
79
|
+
},
|
|
80
|
+
"placement": {
|
|
81
|
+
"type": "enum",
|
|
82
|
+
"values": [
|
|
83
|
+
"bottom-end", "bottom-start", "bottom",
|
|
84
|
+
"left-end", "left-start", "left",
|
|
85
|
+
"right-end", "right-start", "right",
|
|
86
|
+
"top-end", "top-start", "top"
|
|
87
|
+
],
|
|
88
|
+
"description": "帮助提示方向(titleTooltip 的 Tooltip 弹出方向)",
|
|
89
|
+
"required": false
|
|
90
|
+
},
|
|
91
|
+
"arrow": {
|
|
92
|
+
"type": "boolean",
|
|
93
|
+
"description": "帮助提示 Tooltip 是否显示箭头",
|
|
94
|
+
"required": false
|
|
95
|
+
},
|
|
96
|
+
"size": {
|
|
97
|
+
"type": "enum",
|
|
98
|
+
"values": ["small", "medium", "large"],
|
|
99
|
+
"description": "尺寸,仅在传了 icon 时有效(控制图标容器大小)",
|
|
100
|
+
"default": "medium",
|
|
101
|
+
"required": false
|
|
102
|
+
},
|
|
103
|
+
"collapseClassName": {
|
|
104
|
+
"type": "string",
|
|
105
|
+
"description": "折叠容器自定义 className",
|
|
106
|
+
"required": false
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
"do": [
|
|
110
|
+
"保持标题文字简洁,复杂说明放入 titleTooltip",
|
|
111
|
+
"有折叠内容区时传 collapseContent 或 children 而非手动实现展开逻辑",
|
|
112
|
+
"defaultCollapse=true 可让初始态展开(需同时传 collapseContent 或 children)",
|
|
113
|
+
"link 对象的 target 默认 '_blank',如需当前页跳转传 target='_self'"
|
|
114
|
+
],
|
|
115
|
+
"dont": [
|
|
116
|
+
"不要同时传 collapseContent 和 children——组件优先渲染 children(src/Title/index.tsx:164 `children || collapseContent`)",
|
|
117
|
+
"不要把 size 当通用字体大小控制——size 仅在 icon 存在时控制图标容器,不影响文字大小",
|
|
118
|
+
"标题文字过长——subTitle 有 AutoTips 截断,但 title 本身不截断,应保持简洁",
|
|
119
|
+
"层级混乱——嵌套 Title 时保持标题层级与视觉层级一致"
|
|
120
|
+
],
|
|
121
|
+
"events": {
|
|
122
|
+
"link.onClick": {
|
|
123
|
+
"signature": "React.MouseEventHandler<HTMLElement>",
|
|
124
|
+
"asyncSupported": false,
|
|
125
|
+
"examples": [
|
|
126
|
+
"link={{ href: '#', text: '查看详情', onClick: (e) => { e.preventDefault(); navigate('/detail'); } }}",
|
|
127
|
+
"点击链接后进行埋点统计:onClick: (e) => { track('title_link_click'); }"
|
|
128
|
+
],
|
|
129
|
+
"commonMistakes": [
|
|
130
|
+
"既传 href 又在 onClick 中做跳转——会导致跳转两次,需在 onClick 中 e.preventDefault()",
|
|
131
|
+
"link.target 不传默认 '_blank',如需当前页跳转忘记传 target='_self'"
|
|
132
|
+
]
|
|
133
|
+
}
|
|
134
|
+
},
|
|
135
|
+
"typescriptPitfalls": [
|
|
136
|
+
{
|
|
137
|
+
"issue": "prop 名 titoleTooltipIcon 有 typo(不是 titleTooltipIcon)",
|
|
138
|
+
"wrong": "<Title title='设置' titleTooltip='配置说明' titleTooltipIcon={<HelpIcon />} />",
|
|
139
|
+
"right": "<Title title='设置' titleTooltip='配置说明' titoleTooltipIcon={<HelpIcon />} /> // 注意 titole 而非 title"
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
"issue": "defaultCollapse 没传 collapseContent/children 时无效",
|
|
143
|
+
"wrong": "// 只传 defaultCollapse 没传内容\n<Title title='配置' defaultCollapse={true} /> // 不会显示折叠箭头",
|
|
144
|
+
"right": "<Title title='配置' defaultCollapse={true} collapseContent={<Form />} />"
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
"issue": "children 和 collapseContent 同时传时 children 优先,collapseContent 被忽略",
|
|
148
|
+
"wrong": "<Title title='配置' collapseContent={<A />}><B /></Title> // A 组件不会渲染",
|
|
149
|
+
"right": "// 只传其中一个\n<Title title='配置' collapseContent={<A />} /> // 或 <Title title='配置'><B /></Title>"
|
|
150
|
+
}
|
|
151
|
+
],
|
|
152
|
+
"mapping": {
|
|
153
|
+
"realComponent": "Title",
|
|
154
|
+
"adapter": null
|
|
155
|
+
}
|
|
156
|
+
}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ToggleButton",
|
|
3
|
+
"category": "Data Entry",
|
|
4
|
+
"description": "切换按钮,用于单个选中/取消选中操作;ToggleButtonGroup 用于多按钮单选/多选场景",
|
|
5
|
+
"semantic": {
|
|
6
|
+
"intent": [
|
|
7
|
+
"切换选择",
|
|
8
|
+
"开关",
|
|
9
|
+
"视图模式切换"
|
|
10
|
+
],
|
|
11
|
+
"useCases": [
|
|
12
|
+
"视图切换(列表/网格)",
|
|
13
|
+
"模式选择",
|
|
14
|
+
"选项卡"
|
|
15
|
+
],
|
|
16
|
+
"riskLevel": "low"
|
|
17
|
+
},
|
|
18
|
+
"variants": {
|
|
19
|
+
"outlined": {
|
|
20
|
+
"meaning": "边框样式(默认),有边框的描边按钮"
|
|
21
|
+
},
|
|
22
|
+
"text": {
|
|
23
|
+
"meaning": "文字按钮(无边框),ToggleButtonGroup 中 type='text' 时自动 exclusive=true"
|
|
24
|
+
},
|
|
25
|
+
"icon": {
|
|
26
|
+
"meaning": "纯图标按钮,使用 Button.IconButton 渲染"
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"states": [
|
|
30
|
+
"selected",
|
|
31
|
+
"unselected",
|
|
32
|
+
"disabled"
|
|
33
|
+
],
|
|
34
|
+
"idealProps": {
|
|
35
|
+
"value": {
|
|
36
|
+
"type": "T",
|
|
37
|
+
"description": "按钮绑定的值,点击时通过 onClick 第二参回传;ToggleButtonGroup 通过对比 value 与 group.value 决定 selected 状态"
|
|
38
|
+
},
|
|
39
|
+
"selected": {
|
|
40
|
+
"type": "boolean",
|
|
41
|
+
"default": false,
|
|
42
|
+
"description": "是否选中(单独使用时受控);在 ToggleButtonGroup 内部由 Group 自动计算,不需要手动传"
|
|
43
|
+
},
|
|
44
|
+
"disabled": {
|
|
45
|
+
"type": "boolean",
|
|
46
|
+
"default": false,
|
|
47
|
+
"description": "不可用状态,阻止点击触发 onClick",
|
|
48
|
+
"required": false
|
|
49
|
+
},
|
|
50
|
+
"width": {
|
|
51
|
+
"type": "number | string",
|
|
52
|
+
"description": "按钮宽度",
|
|
53
|
+
"required": false
|
|
54
|
+
},
|
|
55
|
+
"onClick": {
|
|
56
|
+
"type": "function",
|
|
57
|
+
"signature": "(event: React.MouseEvent, value: T) => void",
|
|
58
|
+
"description": "点击回调;⚠️ 第二参 value 是该按钮绑定的 value prop,不是 event.target.value;ToggleButtonGroup 内部会拦截此 prop 替换为 group 逻辑",
|
|
59
|
+
"required": false
|
|
60
|
+
},
|
|
61
|
+
"type": {
|
|
62
|
+
"type": "enum",
|
|
63
|
+
"values": ["text", "outlined", "icon"],
|
|
64
|
+
"default": "outlined",
|
|
65
|
+
"description": "按钮类型:text=文字按钮(无边框)/ outlined=描边按钮(默认)/ icon=纯图标按钮"
|
|
66
|
+
},
|
|
67
|
+
"toolTipTitle": {
|
|
68
|
+
"type": "ReactNode",
|
|
69
|
+
"description": "按钮提示文字(hover Tooltip),透传给内部 Button/IconButton",
|
|
70
|
+
"required": false
|
|
71
|
+
},
|
|
72
|
+
"exclusive": {
|
|
73
|
+
"type": "boolean",
|
|
74
|
+
"description": "是否单选语义(仅在 ToggleButtonGroup 场景使用;单独使用 ToggleButton 时此 prop 只影响 outlined 样式类名区分)",
|
|
75
|
+
"required": false
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
"subComponents": {
|
|
79
|
+
"ToggleButtonGroup": {
|
|
80
|
+
"description": "切换按钮组,管理多个 ToggleButton 的选中状态(单选/多选)",
|
|
81
|
+
"props": {
|
|
82
|
+
"data": { "type": "ToggleButtonItemProps<T>[]", "description": "按钮组数据源,每项 { label, value, icon?, selected?, disabled?, toolTipTitle? }" },
|
|
83
|
+
"value": { "type": "T | T[]", "description": "当前选中值;exclusive=true 时为单值 T,多选时为 T[]" },
|
|
84
|
+
"exclusive": { "type": "boolean", "default": false, "description": "true=单选模式(选中新项后旧项取消),false=多选模式;⚠️ type='text' 时默认强制 exclusive=true(src/ToggleButton/ToggleButtonGroup.tsx:62)" },
|
|
85
|
+
"toggleable": { "type": "boolean", "default": true, "description": "exclusive=true 时是否允许取消选中(再次点击已选项恢复未选状态);toggleable=false 时选中后不能取消" },
|
|
86
|
+
"onChange": { "type": "(event: React.MouseEvent, value: T | T[] | null) => void", "description": "选中值变化回调;单选取消选中时 value=null(toggleable=true)" },
|
|
87
|
+
"type": { "type": "enum", "values": ["text", "outlined", "icon"], "default": "outlined", "description": "统一所有子按钮的 type" }
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
"do": [
|
|
92
|
+
"单选场景使用 ToggleButtonGroup + exclusive=true(或 type='text')",
|
|
93
|
+
"多选场景使用 ToggleButtonGroup + value 传数组 + onChange 更新数组",
|
|
94
|
+
"ToggleButtonGroup 中 data 每项的 value 类型需一致(统一泛型 T)",
|
|
95
|
+
"type='icon' 时每项 data 需传 icon 字段,label 依然可传(作为 tooltip)"
|
|
96
|
+
],
|
|
97
|
+
"dont": [
|
|
98
|
+
"选项超过 6 个时避免 ToggleButton 横排——改用 Select 或 RadioGroup",
|
|
99
|
+
"ToggleButtonGroup 内不要手动传每个 ToggleButton 的 selected——由 Group 自动计算",
|
|
100
|
+
"不要把 onClick 用于表单提交逻辑——ToggleButton 是展示状态切换的,提交应在父层处理",
|
|
101
|
+
"不要忽略 exclusive=false(多选)时 value 是数组——onChange 的第二参也是 T[]"
|
|
102
|
+
],
|
|
103
|
+
"events": {
|
|
104
|
+
"onClick": {
|
|
105
|
+
"signature": "(event: React.MouseEvent, value: T) => void",
|
|
106
|
+
"asyncSupported": false,
|
|
107
|
+
"examples": [
|
|
108
|
+
"单独使用 ToggleButton:onClick={(e, val) => setSelected(!selected)}",
|
|
109
|
+
"在 ToggleButtonGroup 内部 onClick 被 Group 拦截,改用 Group 的 onChange",
|
|
110
|
+
"value 是绑定的 value prop 值(不是 event.target.value):onClick={(e, val) => console.log(val)}"
|
|
111
|
+
],
|
|
112
|
+
"commonMistakes": [
|
|
113
|
+
"假设 onClick 第二参是 event.target.value(字符串)——实际是 ToggleButton 的 value prop 值",
|
|
114
|
+
"在 ToggleButtonGroup 中给子 ToggleButton 传 onClick——Group 内部会覆盖此 prop",
|
|
115
|
+
"忘记传 selected prop 时单独使用——不传 selected 按钮不显示选中态(默认 false)"
|
|
116
|
+
]
|
|
117
|
+
},
|
|
118
|
+
"onChange": {
|
|
119
|
+
"signature": "(event: React.MouseEvent, value: T | T[] | null) => void",
|
|
120
|
+
"asyncSupported": false,
|
|
121
|
+
"examples": [
|
|
122
|
+
"单选模式(exclusive=true):onChange={(e, val) => setValue(val as T)}",
|
|
123
|
+
"多选模式:onChange={(e, val) => setValue(val as T[])}",
|
|
124
|
+
"toggleable=true 且单选时取消选中:value=null,需要 if (val !== null) 判断"
|
|
125
|
+
],
|
|
126
|
+
"commonMistakes": [
|
|
127
|
+
"单选模式下不处理 value=null——toggleable=true 时点击已选项会传 null",
|
|
128
|
+
"多选模式下把 value 当 T 而非 T[]——exclusive=false 时 onChange 的 value 是 T[]"
|
|
129
|
+
]
|
|
130
|
+
}
|
|
131
|
+
},
|
|
132
|
+
"typescriptPitfalls": [
|
|
133
|
+
{
|
|
134
|
+
"issue": "ToggleButtonGroup 泛型推断问题——value 和 data[].value 类型需一致",
|
|
135
|
+
"wrong": "// data 的 value 是 string,但 Group.value 传了 number\n<ToggleButtonGroup<string> data={[{label:'A', value:'a'}]} value={1} />",
|
|
136
|
+
"right": "<ToggleButtonGroup<string> data={[{label:'A', value:'a'}]} value={'a'} onChange={(e,v) => setValue(v as string)} />"
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
"issue": "多选模式下 onChange value 类型是 T | T[] | null,需要根据 exclusive 断言",
|
|
140
|
+
"wrong": "// exclusive=false 但当作单值处理\nonChange={(e, val) => setValue(val as string)} // val 实际是 string[]",
|
|
141
|
+
"right": "// exclusive=false 多选\nonChange={(e, val) => setValue(val as string[])} // 多选时是数组"
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
"issue": "type='text' 的 ToggleButtonGroup 默认强制 exclusive=true(src 实证)",
|
|
145
|
+
"wrong": "// 期望 type='text' + exclusive=false 实现多选文字按钮\n<ToggleButtonGroup type='text' exclusive={false} /> // exclusive 被内部改为 true",
|
|
146
|
+
"right": "// type='text' 固定单选,多选文字按钮改用 type='outlined' + exclusive={false}"
|
|
147
|
+
}
|
|
148
|
+
],
|
|
149
|
+
"mapping": {
|
|
150
|
+
"realComponent": "ToggleButton",
|
|
151
|
+
"adapter": null
|
|
152
|
+
}
|
|
153
|
+
}
|