@para-ui/core 5.0.0-beta.12 → 5.0.0-beta.13
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/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/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 +23 -22
- 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 +73 -68
- package/es/ComboSelect/interface.d.ts +2 -2
- 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.js +10 -10
- package/es/DatePicker/generatePicker/generateSinglePicker.js +1 -1
- 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/component.json +277 -0
- package/es/Modal/index.d.ts +85 -5
- package/es/Modal/index.js +159 -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 +58 -53
- 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/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 +2 -2
- 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.js +1 -1
- package/lib/DatePicker/generatePicker/generateSinglePicker.js +1 -1
- 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/component.json +277 -0
- package/lib/Modal/index.d.ts +85 -5
- 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 +9 -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,161 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Progress",
|
|
3
|
+
"category": "Feedback",
|
|
4
|
+
"description": "展示操作的当前进度,支持线形/圆形/仪表盘三种形态",
|
|
5
|
+
"semantic": {
|
|
6
|
+
"intent": [
|
|
7
|
+
"展示进度",
|
|
8
|
+
"展示状态",
|
|
9
|
+
"减少焦虑"
|
|
10
|
+
],
|
|
11
|
+
"useCases": [
|
|
12
|
+
"文件上传",
|
|
13
|
+
"页面加载",
|
|
14
|
+
"任务处理"
|
|
15
|
+
],
|
|
16
|
+
"riskLevel": "low"
|
|
17
|
+
},
|
|
18
|
+
"variants": {
|
|
19
|
+
"line": {
|
|
20
|
+
"meaning": "线性进度条"
|
|
21
|
+
},
|
|
22
|
+
"circle": {
|
|
23
|
+
"meaning": "圆形进度条"
|
|
24
|
+
},
|
|
25
|
+
"dashboard": {
|
|
26
|
+
"meaning": "仪表盘"
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"states": [
|
|
30
|
+
"normal",
|
|
31
|
+
"active",
|
|
32
|
+
"success",
|
|
33
|
+
"exception"
|
|
34
|
+
],
|
|
35
|
+
"idealProps": {
|
|
36
|
+
"percent": {
|
|
37
|
+
"type": "number | number[]",
|
|
38
|
+
"default": 0,
|
|
39
|
+
"description": "进度百分比(0-100)。传 number[] 配合 success.percent 展示双段进度(成功段 + 普通段);type='line' 且传了 success 时内部自动拆分为两段"
|
|
40
|
+
},
|
|
41
|
+
"type": {
|
|
42
|
+
"type": "enum",
|
|
43
|
+
"values": [
|
|
44
|
+
"line",
|
|
45
|
+
"circle",
|
|
46
|
+
"dashboard"
|
|
47
|
+
],
|
|
48
|
+
"default": "line",
|
|
49
|
+
"description": "进度条类型。**line** = 横向线形;**circle** = 圆形(width 控制画布大小);**dashboard** = 仪表盘(底部缺口,gapDegree 控制缺口角度)"
|
|
50
|
+
},
|
|
51
|
+
"status": {
|
|
52
|
+
"type": "enum",
|
|
53
|
+
"values": [
|
|
54
|
+
"success",
|
|
55
|
+
"exception",
|
|
56
|
+
"normal",
|
|
57
|
+
"active"
|
|
58
|
+
],
|
|
59
|
+
"default": "normal",
|
|
60
|
+
"description": "状态。**active 仅 type='line' 时有动画效果**;percent=100 且不传 status 时自动变为 success 状态(显示对应图标)"
|
|
61
|
+
},
|
|
62
|
+
"showInfo": {
|
|
63
|
+
"type": "boolean",
|
|
64
|
+
"default": true,
|
|
65
|
+
"description": "是否显示进度数值或状态图标(中心文字或右侧文字)。false 时隐藏 format/百分比/状态图标"
|
|
66
|
+
},
|
|
67
|
+
"strokeColor": {
|
|
68
|
+
"type": "string | object",
|
|
69
|
+
"objectShape": {
|
|
70
|
+
"from": { "type": "string", "description": "渐变起始颜色(CSS 颜色值)" },
|
|
71
|
+
"to": { "type": "string", "description": "渐变终止颜色(CSS 颜色值)" },
|
|
72
|
+
"direction": { "type": "string", "description": "渐变方向,默认 'to right'" },
|
|
73
|
+
"[percent: string]": { "type": "string", "description": "分段颜色,例:{ '0%': '#108ee9', '100%': '#87d068' }" }
|
|
74
|
+
},
|
|
75
|
+
"completeExample": "'#1677ff' 或 { from: '#108ee9', to: '#87d068' } 或 { '0%': '#108ee9', '100%': '#87d068' }",
|
|
76
|
+
"description": "进度条颜色。传字符串为纯色;传对象可配置渐变色(from/to)或分段颜色(百分比 key)"
|
|
77
|
+
},
|
|
78
|
+
"strokeWidth": {
|
|
79
|
+
"type": "number",
|
|
80
|
+
"description": "进度条宽度(line 模式单位 px;circle/dashboard 模式是相对于 width 的百分比)"
|
|
81
|
+
},
|
|
82
|
+
"format": {
|
|
83
|
+
"type": "function",
|
|
84
|
+
"signature": "(percent?: number | number[], successPercent?: number) => React.ReactNode",
|
|
85
|
+
"description": "自定义进度内容的模板函数(src/Progress/index.tsx:62 interface 声明)。返回值为 ReactNode,可以是字符串、数字或 JSX。**不传时默认显示百分比数字**;status='success' 或 status='exception' 时默认显示对应图标"
|
|
86
|
+
},
|
|
87
|
+
"success": {
|
|
88
|
+
"type": "object",
|
|
89
|
+
"objectShape": {
|
|
90
|
+
"percent": { "type": "number", "description": "成功进度的百分比值(0-100)" },
|
|
91
|
+
"strokeColor": { "type": "string", "description": "成功段进度条颜色(CSS 颜色值)" }
|
|
92
|
+
},
|
|
93
|
+
"description": "成功进度条配置(src/Progress/index.tsx:78 SuccessProps 实证)。与 `percent` 配合使用:percent 表示整体进度,success.percent 表示其中成功部分的比例。**仅 `type='line'` 时有意义**(双段进度条)"
|
|
94
|
+
},
|
|
95
|
+
"steps": {
|
|
96
|
+
"type": "number",
|
|
97
|
+
"description": "进度条总分段数(src/Progress/index.tsx:84 实证)。传入后进度条渲染为等分的多个方块。⚠️ **仅 `type='line'` 时生效**;circle/dashboard 模式传 steps 无效果"
|
|
98
|
+
},
|
|
99
|
+
"width": {
|
|
100
|
+
"type": "number",
|
|
101
|
+
"description": "圆形/仪表盘进度条的画布宽度,单位 px(src/Progress/index.tsx:76 实证,默认 132)。⚠️ **仅 `type='circle'` 或 `type='dashboard'` 时生效**;line 模式宽度由容器决定,请用外层 style 控制"
|
|
102
|
+
},
|
|
103
|
+
"gapDegree": {
|
|
104
|
+
"type": "number",
|
|
105
|
+
"default": 75,
|
|
106
|
+
"description": "仪表盘缺口角度(0~295),**仅 type='dashboard' 时生效**(src/Progress/index.tsx:113 实证默认 75)"
|
|
107
|
+
},
|
|
108
|
+
"gapPosition": {
|
|
109
|
+
"type": "enum",
|
|
110
|
+
"values": ["top", "bottom", "left", "right"],
|
|
111
|
+
"description": "仪表盘缺口位置(src/Progress/index.tsx:80 interface 实证),**仅 type='dashboard' 时生效**"
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
"do": [
|
|
115
|
+
"在耗时操作中使用 Progress 反馈进度,避免用户等待焦虑",
|
|
116
|
+
"根据完成度切换 status(success/exception)——percent=100 时可不传 status,组件自动切 success",
|
|
117
|
+
"自定义中心文字用 format 函数返回 ReactNode,如显示上传速度/剩余时间"
|
|
118
|
+
],
|
|
119
|
+
"dont": [
|
|
120
|
+
"在瞬间完成的操作中使用 Progress(不必要的闪烁)",
|
|
121
|
+
"进度倒退——percent 值只应单调递增,回退会造成用户困惑",
|
|
122
|
+
"circle/dashboard 模式传 steps 或 active——这两个特性仅对 type='line' 有效"
|
|
123
|
+
],
|
|
124
|
+
"events": {
|
|
125
|
+
"format": {
|
|
126
|
+
"signature": "(percent?: number | number[], successPercent?: number) => React.ReactNode",
|
|
127
|
+
"asyncSupported": false,
|
|
128
|
+
"examples": [
|
|
129
|
+
"显示自定义文字:format={(p) => `${p}%`}",
|
|
130
|
+
"success 状态显示特定内容:format={(p) => p === 100 ? '完成' : `${p}%`}",
|
|
131
|
+
"双段进度(传 number[] 时):format={(p) => Array.isArray(p) ? `成功 ${p[0]}%` : `${p}%`}"
|
|
132
|
+
],
|
|
133
|
+
"commonMistakes": [
|
|
134
|
+
"showInfo=false 时 format 不生效——showInfo 控制整个信息区显隐,false 时 format 结果也不渲染",
|
|
135
|
+
"假设 percent 永远是 number——传了 success prop 时内部可能处理为 number[]",
|
|
136
|
+
"期望 status='exception' 时 format 自动显示错误图标——format 存在时始终使用 format 返回值,覆盖默认图标"
|
|
137
|
+
]
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
"typescriptPitfalls": [
|
|
141
|
+
{
|
|
142
|
+
"issue": "status='active' 仅对 type='line' 有动画效果,circle/dashboard 传 active 静默无效",
|
|
143
|
+
"wrong": "<Progress type='circle' percent={60} status='active' /> // 无动画,不报错",
|
|
144
|
+
"right": "<Progress type='line' percent={60} status='active' /> // active 动画仅 line 生效"
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
"issue": "width prop 仅控制 circle/dashboard 画布尺寸,line 模式传 width 无效",
|
|
148
|
+
"wrong": "<Progress type='line' percent={60} width={300} /> // line 宽度不受 width 控制",
|
|
149
|
+
"right": "<div style={{ width: 300 }}><Progress type='line' percent={60} /></div> // line 模式用容器控制宽度"
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
"issue": "strokeColor 对象形式 from/to 渐变与 '0%'/'100%' 分段不能混用",
|
|
153
|
+
"wrong": "strokeColor={{ from: '#108ee9', '50%': '#87d068', to: '#87d068' }} // 类型冲突",
|
|
154
|
+
"right": "// 渐变:strokeColor={{ from: '#108ee9', to: '#87d068' }}\n// 分段:strokeColor={{ '0%': '#108ee9', '100%': '#87d068' }}"
|
|
155
|
+
}
|
|
156
|
+
],
|
|
157
|
+
"mapping": {
|
|
158
|
+
"realComponent": "Progress",
|
|
159
|
+
"adapter": null
|
|
160
|
+
}
|
|
161
|
+
}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Prompt",
|
|
3
|
+
"category": "Feedback",
|
|
4
|
+
"description": "页面级信息提示条,支持 info/success/warn/error 四种类型及固定/反馈两种模式",
|
|
5
|
+
"semantic": {
|
|
6
|
+
"intent": [
|
|
7
|
+
"页面提示",
|
|
8
|
+
"信息通知"
|
|
9
|
+
],
|
|
10
|
+
"useCases": [
|
|
11
|
+
"操作结果",
|
|
12
|
+
"系统通知",
|
|
13
|
+
"警告信息"
|
|
14
|
+
],
|
|
15
|
+
"riskLevel": "low"
|
|
16
|
+
},
|
|
17
|
+
"variants": {
|
|
18
|
+
"error": {
|
|
19
|
+
"meaning": "错误提示"
|
|
20
|
+
},
|
|
21
|
+
"success": {
|
|
22
|
+
"meaning": "成功提示"
|
|
23
|
+
},
|
|
24
|
+
"warn": {
|
|
25
|
+
"meaning": "警告提示"
|
|
26
|
+
},
|
|
27
|
+
"info": {
|
|
28
|
+
"meaning": "信息提示"
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"states": [
|
|
32
|
+
"visible",
|
|
33
|
+
"hidden"
|
|
34
|
+
],
|
|
35
|
+
"idealProps": {
|
|
36
|
+
"type": {
|
|
37
|
+
"type": "enum",
|
|
38
|
+
"values": [
|
|
39
|
+
"error",
|
|
40
|
+
"success",
|
|
41
|
+
"warn",
|
|
42
|
+
"info"
|
|
43
|
+
],
|
|
44
|
+
"default": "info",
|
|
45
|
+
"description": "信息类型,决定左侧图标和配色。⚠️ 警告类型值为 `'warn'`,不是 `'warning'`(与 Notification 的 IconType 不同,混用会 fallback 到默认样式)"
|
|
46
|
+
},
|
|
47
|
+
"status": {
|
|
48
|
+
"type": "enum",
|
|
49
|
+
"values": ["fixed", "feedback"],
|
|
50
|
+
"default": "fixed",
|
|
51
|
+
"required": false,
|
|
52
|
+
"description": "显示模式。fixed=常驻不可关闭(用于强制通知/系统公告);feedback=用户可手动关闭(关闭按钮由 closeIcon 控制)。⚠️ 核心 prop:不传时默认 fixed,即不显示关闭按钮、不可消除"
|
|
53
|
+
},
|
|
54
|
+
"title": {
|
|
55
|
+
"type": "string",
|
|
56
|
+
"description": "标题,显示在内容上方的粗体文字"
|
|
57
|
+
},
|
|
58
|
+
"content": {
|
|
59
|
+
"type": "string | string[]",
|
|
60
|
+
"description": "内容正文。传 string 为单行;传 string[] 为多行列表(每项换行展示)。⚠️ 传了 customContent 时此字段失效"
|
|
61
|
+
},
|
|
62
|
+
"customContent": {
|
|
63
|
+
"type": "ReactNode",
|
|
64
|
+
"required": false,
|
|
65
|
+
"description": "完全自定义内容区。传入后 content 失效,由 customContent 完整接管渲染"
|
|
66
|
+
},
|
|
67
|
+
"show": {
|
|
68
|
+
"type": "boolean",
|
|
69
|
+
"description": "是否展示 Prompt,false 时完全不渲染(内部 isShow state 由 show prop 驱动,初始为 true)"
|
|
70
|
+
},
|
|
71
|
+
"closeIcon": {
|
|
72
|
+
"type": "boolean",
|
|
73
|
+
"required": false,
|
|
74
|
+
"description": "是否展示关闭按钮。⚠️ 仅 status='feedback' 时有效,status='fixed' 时即使传 true 也不显示关闭按钮(src/Prompt/index.tsx:108 实证:closeIcon 只在 prompt-status-feedback-close 类下渲染)"
|
|
75
|
+
},
|
|
76
|
+
"hideIcon": {
|
|
77
|
+
"type": "boolean",
|
|
78
|
+
"required": false,
|
|
79
|
+
"description": "是否隐藏左侧类型图标(info/success/warn/error 对应的图标)"
|
|
80
|
+
},
|
|
81
|
+
"outline": {
|
|
82
|
+
"type": "boolean",
|
|
83
|
+
"required": false,
|
|
84
|
+
"description": "是否显示外边框"
|
|
85
|
+
},
|
|
86
|
+
"icon": {
|
|
87
|
+
"type": "ReactNode",
|
|
88
|
+
"required": false,
|
|
89
|
+
"description": "自定义左侧图标,传入后覆盖 type 对应的默认图标"
|
|
90
|
+
},
|
|
91
|
+
"onClose": {
|
|
92
|
+
"type": "() => void",
|
|
93
|
+
"description": "关闭按钮点击回调,status='feedback' 且 closeIcon=true 时有效;触发后组件内部自动隐藏(isShow=false),父组件可在此同步 state"
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
"do": [
|
|
97
|
+
"在页面顶部或卡片顶部显示,告知用户当前系统状态或操作结果",
|
|
98
|
+
"可关闭提示使用 status='feedback' + closeIcon=true,onClose 同步父组件 show state",
|
|
99
|
+
"警告类型使用 type='warn'(不是 'warning')",
|
|
100
|
+
"多条提示内容使用 content 数组,组件会自动逐行渲染"
|
|
101
|
+
],
|
|
102
|
+
"dont": [
|
|
103
|
+
"同时显示多个 Prompt——多条提示应合并或用通知列表",
|
|
104
|
+
"内容过长——超长内容考虑 Modal 或独立页面,Prompt 适合单行到几行的简短提示",
|
|
105
|
+
"status='fixed' 时传 closeIcon=true 期望出现关闭按钮——fixed 模式下 closeIcon 静默失效"
|
|
106
|
+
],
|
|
107
|
+
"events": {
|
|
108
|
+
"onClose": {
|
|
109
|
+
"signature": "() => void",
|
|
110
|
+
"asyncSupported": false,
|
|
111
|
+
"examples": [
|
|
112
|
+
"同步父组件隐藏状态:onClose={() => setShowPrompt(false)}",
|
|
113
|
+
"关闭后执行操作:onClose={() => { setShowPrompt(false); trackDismiss(); }}",
|
|
114
|
+
"show 受控写法:show={showPrompt} onClose={() => setShowPrompt(false)}"
|
|
115
|
+
],
|
|
116
|
+
"commonMistakes": [
|
|
117
|
+
"只传 onClose 不传 status='feedback' + closeIcon=true——没有关闭按钮时 onClose 永远不会触发",
|
|
118
|
+
"期望 onClose 阻止 Prompt 自动隐藏——组件内部点击关闭后调 setIsShow(false) 然后再调 onClose,隐藏无法阻止",
|
|
119
|
+
"不传 show prop 而依赖 onClose 控制显示——初始渲染时 isShow=true,无法通过 onClose 来控制初始不显示;初始隐藏需 show=false"
|
|
120
|
+
]
|
|
121
|
+
}
|
|
122
|
+
},
|
|
123
|
+
"typescriptPitfalls": [
|
|
124
|
+
{
|
|
125
|
+
"issue": "type='warning' 不存在,警告类型枚举值是 'warn'",
|
|
126
|
+
"wrong": "<Prompt type='warning' content='请注意...' /> // TS 类型报错('warning' 不在联合类型)",
|
|
127
|
+
"right": "<Prompt type='warn' content='请注意...' />"
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
"issue": "onClose 的类型是 Function(宽泛),严格模式下建议标注为 () => void",
|
|
131
|
+
"wrong": "const handleClose: (e: MouseEvent) => void = () => setShow(false); // 参数类型不匹配",
|
|
132
|
+
"right": "const handleClose: () => void = () => setShow(false); // onClose 签名是无参无返回值"
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
"issue": "closeIcon 仅在 status='feedback' 时有效,status='fixed'(默认)传 closeIcon 无按钮渲染",
|
|
136
|
+
"wrong": "<Prompt type='info' closeIcon onClose={() => setShow(false)} /> // status 默认 fixed,closeIcon 不生效",
|
|
137
|
+
"right": "<Prompt type='info' status='feedback' closeIcon onClose={() => setShow(false)} />"
|
|
138
|
+
}
|
|
139
|
+
],
|
|
140
|
+
"mapping": {
|
|
141
|
+
"realComponent": "Prompt",
|
|
142
|
+
"adapter": null
|
|
143
|
+
}
|
|
144
|
+
}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Querying",
|
|
3
|
+
"category": "Feedback",
|
|
4
|
+
"description": "查询中状态组件,用于数据搜索/加载中的空态占位提示",
|
|
5
|
+
"semantic": {
|
|
6
|
+
"intent": [
|
|
7
|
+
"加载提示",
|
|
8
|
+
"查询中"
|
|
9
|
+
],
|
|
10
|
+
"useCases": [
|
|
11
|
+
"数据搜索",
|
|
12
|
+
"列表加载",
|
|
13
|
+
"初始化"
|
|
14
|
+
],
|
|
15
|
+
"riskLevel": "low"
|
|
16
|
+
},
|
|
17
|
+
"variants": {
|
|
18
|
+
"large": {
|
|
19
|
+
"meaning": "大尺寸"
|
|
20
|
+
},
|
|
21
|
+
"small": {
|
|
22
|
+
"meaning": "小尺寸"
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"states": [
|
|
26
|
+
"loading"
|
|
27
|
+
],
|
|
28
|
+
"idealProps": {
|
|
29
|
+
"size": {
|
|
30
|
+
"type": "enum",
|
|
31
|
+
"values": [
|
|
32
|
+
"small",
|
|
33
|
+
"medium",
|
|
34
|
+
"large"
|
|
35
|
+
],
|
|
36
|
+
"default": "large",
|
|
37
|
+
"description": "大小。三档统一为 small / medium / large(2026-05-08 跨组件命名 epic §3.1 选项 B 实施,medium 为新增视觉档,默认 large 不变,既有 small/large 调用零回归)"
|
|
38
|
+
},
|
|
39
|
+
"description": {
|
|
40
|
+
"type": "ReactNode",
|
|
41
|
+
"description": "描述文字;不传时使用 i18n 默认文案('查询中...'),传 null/'' 可隐藏"
|
|
42
|
+
},
|
|
43
|
+
"image": {
|
|
44
|
+
"type": "ReactNode",
|
|
45
|
+
"description": "图片/图标节点;传字符串时渲染为 <img src>;不传时使用内置 SVG 插图(large 用 LargeSearch,small 用 SmallSearch)"
|
|
46
|
+
},
|
|
47
|
+
"imageStyle": {
|
|
48
|
+
"type": "React.CSSProperties",
|
|
49
|
+
"description": "图片容器的内联样式(src/Querying/index.tsx:24 interface 实证)"
|
|
50
|
+
},
|
|
51
|
+
"customQuerying": {
|
|
52
|
+
"type": "React.ReactNode",
|
|
53
|
+
"description": "完全自定义整个 Querying 内容区;传入后 image / description / imageStyle 均被替换,组件只渲染此 ReactNode"
|
|
54
|
+
},
|
|
55
|
+
"className": {
|
|
56
|
+
"type": "string",
|
|
57
|
+
"description": "自定义类名"
|
|
58
|
+
},
|
|
59
|
+
"style": {
|
|
60
|
+
"type": "React.CSSProperties",
|
|
61
|
+
"description": "自定义样式"
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
"do": [
|
|
65
|
+
"在搜索或查询时显示,替换 Table/List 的空态区域",
|
|
66
|
+
"提供清晰的加载中提示——description 说明当前正在做什么(如「正在搜索...」)",
|
|
67
|
+
"使用 customQuerying 完全自定义布局,或通过 image + description 组合定制"
|
|
68
|
+
],
|
|
69
|
+
"dont": [
|
|
70
|
+
"加载时间过长不给提示——超过 300ms 的异步操作应展示 Querying",
|
|
71
|
+
"与其他加载状态(Spinner/Skeleton)混用——同一容器内选用统一加载态组件",
|
|
72
|
+
"把 Querying 用于非加载场景(如「暂无数据」)——空数据场景应用 Empty 组件"
|
|
73
|
+
],
|
|
74
|
+
"events": {},
|
|
75
|
+
"typescriptPitfalls": [
|
|
76
|
+
{
|
|
77
|
+
"issue": "description 不传 vs 传 undefined 行为一致,传空字符串会渲染空区块",
|
|
78
|
+
"wrong": "description='' // 空字符串被当作 truthy ReactNode 渲染,出现空白区域",
|
|
79
|
+
"right": "// 不传 description 或传 null/undefined 使用默认 i18n 文案\n<Querying /> // 显示默认 '查询中...'"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"issue": "image 传字符串时渲染为 <img src>,传 ReactNode 直接渲染——类型合法但行为不同",
|
|
83
|
+
"wrong": "image={svgComponent} // 若 svgComponent 是字符串路径则渲染 img,若是 JSX 则直接渲染",
|
|
84
|
+
"right": "image={<MySvgIcon />} // 明确传 ReactElement 直接渲染;传 URL 字符串时渲染 img"
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"issue": "customQuerying 传入后 image/description/imageStyle 全部失效,不要混传",
|
|
88
|
+
"wrong": "<Querying customQuerying={<MyComp />} description='加载中' /> // description 被忽略",
|
|
89
|
+
"right": "// 要么用 customQuerying 完全接管,要么用 image+description 局部定制,不要混用"
|
|
90
|
+
}
|
|
91
|
+
],
|
|
92
|
+
"mapping": {
|
|
93
|
+
"realComponent": "Querying",
|
|
94
|
+
"adapter": null
|
|
95
|
+
}
|
|
96
|
+
}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "QuickReply",
|
|
3
|
+
"category": "Data Entry",
|
|
4
|
+
"description": "快捷回复组件,集成预设内容选择浮层+文本编辑区,支持预设列表管理",
|
|
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
|
+
},
|
|
22
|
+
"states": [
|
|
23
|
+
"default"
|
|
24
|
+
],
|
|
25
|
+
"idealProps": {
|
|
26
|
+
"list": {
|
|
27
|
+
"type": "QuickReplyCodeListProps[]",
|
|
28
|
+
"description": "快捷回复预设列表(QuickReplyCodeListProps = { label?: string; value?: string; [name: string]: any });每项至少需要 rowKey 对应字段(默认 id)作为唯一标识,以及 labelKey 字段(默认 label)作为显示文案"
|
|
29
|
+
},
|
|
30
|
+
"value": {
|
|
31
|
+
"type": "string",
|
|
32
|
+
"description": "**输入框文本受控值**(textarea 受控,不是被选中预设项的标识!);与 onChange 配对;**点击预设项时此值会被内部 onSelect handler 自动同步**(src/QuickReply/index.tsx:139-144 取 item[valueKey] 后 setValueCom)"
|
|
33
|
+
},
|
|
34
|
+
"defaultValue": {
|
|
35
|
+
"type": "string",
|
|
36
|
+
"description": "输入框非受控初始值"
|
|
37
|
+
},
|
|
38
|
+
"rowKey": {
|
|
39
|
+
"type": "string",
|
|
40
|
+
"default": "id",
|
|
41
|
+
"description": "list 项唯一标识字段名(默认 'id',与 React key 无关)"
|
|
42
|
+
},
|
|
43
|
+
"labelKey": {
|
|
44
|
+
"type": "string",
|
|
45
|
+
"default": "label",
|
|
46
|
+
"description": "list 项展示文案字段名"
|
|
47
|
+
},
|
|
48
|
+
"valueKey": {
|
|
49
|
+
"type": "string",
|
|
50
|
+
"default": "label",
|
|
51
|
+
"description": "list 项实际值字段名;⚠️ **默认 'label' 不是 'value'**——反直觉!这决定了点击预设时 onChange 回参取 list[i] 的哪个字段;若 list 项有 value 字段且想让 onChange 收到业务 code,必须显式 `valueKey='value'`(通过 quickReplyCodeProps 工厂透传给内嵌浮层实例)"
|
|
52
|
+
},
|
|
53
|
+
"rows": {
|
|
54
|
+
"type": "number",
|
|
55
|
+
"description": "输入框行数(textarea rows 属性)"
|
|
56
|
+
},
|
|
57
|
+
"placeholder": {
|
|
58
|
+
"type": "string",
|
|
59
|
+
"description": "输入框占位文案(默认 i18n '请输入')"
|
|
60
|
+
},
|
|
61
|
+
"quickReplyCodeProps": {
|
|
62
|
+
"type": "function",
|
|
63
|
+
"signature": "(type: 'select' | 'setting') => QuickReplyCodeProps",
|
|
64
|
+
"description": "工厂函数,分别给选择浮层('select')/ 管理浮层('setting')透传子组件参数(如 valueKey / add / edit / del / sort 等)"
|
|
65
|
+
},
|
|
66
|
+
"renderQuickReplyBtn": {
|
|
67
|
+
"type": "ReactNode",
|
|
68
|
+
"description": "自定义触发按钮节点(默认为「快捷回复」文字按钮)"
|
|
69
|
+
},
|
|
70
|
+
"onChange": {
|
|
71
|
+
"type": "(val: string) => void",
|
|
72
|
+
"description": "**输入框文本变化回调**——两种触发场景共用一个回调:① 用户键入文字 ② **用户点击预设项**(内部 onSelect handler 取 item[valueKey] 后自动调 onChange);所以「点击预设填入输入框」是默认行为,**无需也不存在 QuickReply 顶层 onSelect prop**"
|
|
73
|
+
},
|
|
74
|
+
"onChangeList": {
|
|
75
|
+
"type": "(arr: QuickReplyCodeListProps[]) => void",
|
|
76
|
+
"description": "用户在管理浮层中增删改后触发(注意:QuickReplyCode 子组件自己的同语义回调叫 onChange,QuickReply 顶层叫 onChangeList——跨层级看 onChange 务必区分)"
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
"do": [
|
|
80
|
+
"在需要快速输入预设内容的场景使用,list 每项至少有 rowKey 字段(默认 id)和 labelKey 字段(默认 label)",
|
|
81
|
+
"支持编辑和管理预设内容——onChangeList 里持久化更新后的 list",
|
|
82
|
+
"valueKey 默认是 'label',若预设项有独立 value 字段(业务 code)且需要 onChange 收到此值,通过 quickReplyCodeProps 显式传 valueKey='value'",
|
|
83
|
+
"value 受控写法:value={text} onChange={(val) => setText(val)}——点击预设或手动输入都触发 onChange"
|
|
84
|
+
],
|
|
85
|
+
"dont": [
|
|
86
|
+
"预设内容过多不做分类——超过 20 条考虑搜索或分组",
|
|
87
|
+
"忽略用户自定义需求——提供管理浮层(onChangeList)让用户自己维护预设",
|
|
88
|
+
"期待 QuickReply 顶层有 onSelect prop(它已封装在内部——点击预设直接触发顶层 onChange,无需 onSelect)",
|
|
89
|
+
"把外部 string[] 直接传给 list(必须 map 成 QuickReplyCodeListProps[] 形状:每项至少有 id 和 label 字段)",
|
|
90
|
+
"假设 onChange 与 onChangeList 等价(onChange 是输入框文本回调 string,onChangeList 是 list 增删改后的数组回调——跨子层级 QuickReplyCode.onChange 又是 list 回调,易混)"
|
|
91
|
+
],
|
|
92
|
+
"events": {
|
|
93
|
+
"onChange": {
|
|
94
|
+
"signature": "(val: string) => void",
|
|
95
|
+
"asyncSupported": false,
|
|
96
|
+
"examples": [
|
|
97
|
+
"受控绑定:value={text} onChange={(val) => setText(val)}",
|
|
98
|
+
"点击预设自动填入:onChange 会在点击预设项时被调用,val = item[valueKey](默认取 item.label)",
|
|
99
|
+
"区分键入与预设选择:无法区分,两种场景均调同一 onChange;如需区分,用 quickReplyCodeProps 工厂中的 onSelect 替换逻辑"
|
|
100
|
+
],
|
|
101
|
+
"commonMistakes": [
|
|
102
|
+
"期望 QuickReply 顶层有 onSelect——点击预设触发的是 onChange,不存在独立的 onSelect",
|
|
103
|
+
"valueKey 默认 'label' 导致 onChange 收到 label 文案而非业务 id——需显式 valueKey='value'",
|
|
104
|
+
"onChange 和 onChangeList 混淆——onChange 是 string 回调(输入框文本),onChangeList 是 QuickReplyCodeListProps[] 回调(预设列表变化)"
|
|
105
|
+
]
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
"typescriptPitfalls": [
|
|
109
|
+
{
|
|
110
|
+
"issue": "valueKey 默认 'label' 不是 'value',点击预设后 onChange 收到的是 label 文案",
|
|
111
|
+
"wrong": "// list 有 value 字段但未配 valueKey:\nlist={[{ id: '1', label: '您好', value: 'hello' }]}\n// 点击后 onChange 回传 '您好'(label),不是 'hello'(value)",
|
|
112
|
+
"right": "quickReplyCodeProps={() => ({ valueKey: 'value' })} // 两个浮层实例都透传 valueKey='value'"
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"issue": "list 每项必须有 rowKey 对应字段(默认 id),缺少会导致删除/排序等操作异常",
|
|
116
|
+
"wrong": "list={[{ label: '您好' }, { label: '谢谢' }]} // 缺少 id 字段,rowKey 默认 'id'",
|
|
117
|
+
"right": "list={[{ id: '1', label: '您好' }, { id: '2', label: '谢谢' }]}"
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"issue": "quickReplyCodeProps 是工厂函数,不是对象,接受 'select'|'setting' 参数",
|
|
121
|
+
"wrong": "quickReplyCodeProps={{ add: false, edit: false }} // TS 报错,类型是函数",
|
|
122
|
+
"right": "quickReplyCodeProps={(type) => type === 'select' ? { add: false } : { add: true, edit: true }}"
|
|
123
|
+
}
|
|
124
|
+
],
|
|
125
|
+
"mapping": {
|
|
126
|
+
"realComponent": "QuickReply",
|
|
127
|
+
"adapter": null
|
|
128
|
+
}
|
|
129
|
+
}
|