@para-ui/core 5.0.0-beta.11 → 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 +52 -49
- package/es/Anchor/type.d.ts +8 -4
- package/es/Argv/component.json +216 -0
- package/es/Argv/dataGenerator/index.js +1 -1
- package/es/Argv/index.d.ts +5 -6
- package/es/Argv/index.js +1 -1
- 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 +33 -30
- 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/AutoTips/index.js +1 -1
- 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 +1 -1
- package/es/Cascader/OptionList/Column.js +1 -1
- package/es/Cascader/OptionList/index.js +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/CheckboxGroup/index.js +1 -1
- package/es/CodeEditor/component.json +189 -0
- package/es/CodeEditor/index.d.ts +11 -10
- package/es/CodeEditor/index.js +19 -19
- 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 +115 -109
- 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 +11 -11
- package/es/DatePicker/generatePicker/generateSinglePicker.js +2 -2
- package/es/Descriptions/component.json +142 -0
- package/es/Descriptions/index.d.ts +1 -1
- package/es/Desktop/component.json +171 -0
- package/es/Desktop/index.js +1 -1
- 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/Dropdown/index.js +1 -1
- package/es/DynamicMultiBox/component.json +278 -0
- package/es/DynamicMultiBox/formItem.d.ts +1 -1
- package/es/DynamicMultiBox/index.js +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/ItemHolder.js +1 -1
- package/es/FieldForm/FieldFormItem/MemoInput.d.ts +2 -2
- package/es/FieldForm/FieldFormItem/StatusProvider.js +1 -1
- package/es/FieldForm/FieldFormItem/index.d.ts +6 -6
- package/es/FieldForm/Form.d.ts +2 -2
- package/es/FieldForm/Form.js +1 -1
- package/es/FieldForm/FormItemInput.js +1 -1
- package/es/FieldForm/FormItemLabel.js +1 -1
- 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/Form/index.js +1 -1
- 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/GlobalContext/confirmLocale.js +1 -1
- package/es/GlobalContext/index.js +1 -1
- package/es/Help/component.json +118 -0
- package/es/HelperText/component.json +126 -0
- package/es/Image/PreviewGroup.js +1 -1
- package/es/Image/component.json +165 -0
- package/es/Image/index.js +1 -1
- 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 +2 -2
- 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/Menu/verticalMenuList.js +1 -1
- 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 +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/PageHeader/horizontalMeun.js +1 -1
- package/es/PageHeader/horizontalMeunRight.js +1 -1
- package/es/Pagination/component.json +181 -0
- package/es/Pagination/index.js +15 -15
- package/es/ParauiProvider/index.js +1 -1
- 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/QuickReplyCode/index.js +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 +20 -20
- 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 +114 -114
- package/es/SelectInput/component.json +184 -0
- package/es/Selector/component.json +203 -0
- package/es/Selector/index.js +56 -50
- package/es/Selector/interface.d.ts +2 -2
- package/es/Selector/selectorData/index.js +1 -1
- package/es/Selector/selectorMain/index.js +3 -3
- package/es/Selector/selectorNode/index.js +1 -1
- package/es/Selector/util.d.ts +3 -3
- package/es/Selector/util.js +6 -12
- 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 +385 -382
- package/es/Table/interface.d.ts +30 -0
- package/es/Table/tableHead.js +1 -1
- package/es/Table/util.d.ts +1 -1
- package/es/Table/util.js +3 -12
- 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/TextEditor/index.js +1 -1
- package/es/TextField/component.json +290 -0
- package/es/TextField/index.d.ts +2 -2
- package/es/TextField/index.js +1 -1
- 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/ToggleButton/index.js +1 -1
- 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/OperateBar/index.js +1 -1
- package/es/Tree/Tree.js +3 -3
- package/es/Tree/component.json +512 -0
- package/es/Tree/interface.d.ts +1 -1
- package/es/Upload/component.json +450 -0
- package/es/Upload/util.js +1 -1
- package/es/Utils/snack-kit-shims.d.ts +18 -0
- package/es/Utils/snack-kit-shims.js +19 -0
- package/es/Utils/type.d.ts +0 -2
- package/es/_virtual/index.js +5 -3
- package/es/_virtual/index2.js +2 -5
- 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/es/node_modules/classnames/index.js +1 -1
- 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/dataGenerator/index.js +1 -1
- package/lib/Argv/index.d.ts +5 -6
- package/lib/Argv/index.js +1 -1
- 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/AutoTips/index.js +1 -1
- 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/OptionList/Column.js +1 -1
- package/lib/Cascader/OptionList/index.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/CheckboxGroup/index.js +1 -1
- package/lib/CodeEditor/component.json +189 -0
- package/lib/CodeEditor/index.d.ts +11 -10
- package/lib/CodeEditor/index.js +1 -1
- 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/Desktop/index.js +1 -1
- 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/Dropdown/index.js +1 -1
- package/lib/DynamicMultiBox/component.json +278 -0
- package/lib/DynamicMultiBox/formItem.d.ts +1 -1
- package/lib/DynamicMultiBox/index.js +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/ItemHolder.js +1 -1
- package/lib/FieldForm/FieldFormItem/MemoInput.d.ts +2 -2
- package/lib/FieldForm/FieldFormItem/StatusProvider.js +1 -1
- package/lib/FieldForm/FieldFormItem/index.d.ts +6 -6
- package/lib/FieldForm/Form.d.ts +2 -2
- package/lib/FieldForm/Form.js +1 -1
- package/lib/FieldForm/FormItemInput.js +1 -1
- package/lib/FieldForm/FormItemLabel.js +1 -1
- 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/Form/index.js +1 -1
- 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/GlobalContext/confirmLocale.js +1 -1
- package/lib/GlobalContext/index.js +1 -1
- package/lib/Help/component.json +118 -0
- package/lib/HelperText/component.json +126 -0
- package/lib/Image/PreviewGroup.js +1 -1
- package/lib/Image/component.json +165 -0
- package/lib/Image/index.js +1 -1
- 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/Menu/verticalMenuList.js +1 -1
- 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 +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/PageHeader/horizontalMeun.js +1 -1
- package/lib/PageHeader/horizontalMeunRight.js +1 -1
- package/lib/Pagination/component.json +181 -0
- package/lib/Pagination/index.js +1 -1
- package/lib/ParauiProvider/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/QuickReplyCode/index.js +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 +2 -2
- package/lib/Selector/selectorData/index.js +1 -1
- package/lib/Selector/selectorMain/index.js +1 -1
- package/lib/Selector/selectorNode/index.js +1 -1
- package/lib/Selector/util.d.ts +3 -3
- package/lib/Selector/util.js +1 -1
- 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 +30 -0
- package/lib/Table/tableHead.js +1 -1
- package/lib/Table/util.d.ts +1 -1
- package/lib/Table/util.js +1 -1
- 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/TextEditor/index.js +1 -1
- package/lib/TextField/component.json +290 -0
- package/lib/TextField/index.d.ts +2 -2
- package/lib/TextField/index.js +1 -1
- 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/ToggleButton/index.js +1 -1
- 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/OperateBar/index.js +2 -2
- package/lib/Tree/Tree.js +1 -1
- package/lib/Tree/component.json +512 -0
- package/lib/Tree/interface.d.ts +1 -1
- package/lib/Upload/component.json +450 -0
- package/lib/Upload/util.js +1 -1
- package/lib/Utils/snack-kit-shims.d.ts +18 -0
- package/lib/Utils/snack-kit-shims.js +2 -0
- package/lib/Utils/type.d.ts +0 -2
- package/lib/_virtual/index.js +1 -1
- package/lib/_virtual/index2.js +1 -1
- 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/lib/node_modules/classnames/index.js +1 -1
- package/package.json +11 -4
- package/es/_virtual/index3.js +0 -5
- package/es/_virtual/index4.js +0 -5
- package/es/node_modules/@para-snack/core/dist/index.js +0 -5231
- package/lib/_virtual/index3.js +0 -2
- package/lib/_virtual/index4.js +0 -2
- package/lib/node_modules/@para-snack/core/dist/index.js +0 -20
- /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,168 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Button",
|
|
3
|
+
"category": "Basic",
|
|
4
|
+
"description": "用于触发用户操作的按钮组件",
|
|
5
|
+
"semantic": {
|
|
6
|
+
"intent": [
|
|
7
|
+
"提交",
|
|
8
|
+
"确认",
|
|
9
|
+
"触发操作",
|
|
10
|
+
"导航"
|
|
11
|
+
],
|
|
12
|
+
"useCases": [
|
|
13
|
+
"表单提交",
|
|
14
|
+
"弹窗确认",
|
|
15
|
+
"页面主操作",
|
|
16
|
+
"表格操作栏"
|
|
17
|
+
],
|
|
18
|
+
"riskLevel": "normal"
|
|
19
|
+
},
|
|
20
|
+
"variants": {
|
|
21
|
+
"contained": {
|
|
22
|
+
"meaning": "主要操作,强调引导用户点击",
|
|
23
|
+
"constraints": [
|
|
24
|
+
"一个操作区域通常只放置一个 contained 按钮"
|
|
25
|
+
]
|
|
26
|
+
},
|
|
27
|
+
"outlined": {
|
|
28
|
+
"meaning": "次要操作,作为一个替代选择"
|
|
29
|
+
},
|
|
30
|
+
"text": {
|
|
31
|
+
"meaning": "最轻量级的操作,通常用于表格行内或辅助位置"
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"modifiers": {
|
|
35
|
+
"danger": {
|
|
36
|
+
"meaning": "高风险操作标识(如删除、重置),与 variant 正交——可与 contained/outlined/text 任一组合",
|
|
37
|
+
"constraints": [
|
|
38
|
+
"建议配合二次确认(如 PopConfirm)使用,但非强制"
|
|
39
|
+
]
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
"states": [
|
|
43
|
+
"default",
|
|
44
|
+
"disabled",
|
|
45
|
+
"loading"
|
|
46
|
+
],
|
|
47
|
+
"idealProps": {
|
|
48
|
+
"variant": {
|
|
49
|
+
"type": "enum",
|
|
50
|
+
"values": [
|
|
51
|
+
"contained",
|
|
52
|
+
"outlined",
|
|
53
|
+
"text"
|
|
54
|
+
],
|
|
55
|
+
"default": "contained"
|
|
56
|
+
},
|
|
57
|
+
"size": {
|
|
58
|
+
"type": "enum",
|
|
59
|
+
"values": [
|
|
60
|
+
"small",
|
|
61
|
+
"medium",
|
|
62
|
+
"large"
|
|
63
|
+
],
|
|
64
|
+
"default": "large",
|
|
65
|
+
"description": "按钮尺寸。**注意:默认 large**(与 antd/MUI 业界惯例 medium 不同——这是 para-ui 的设计选择,DEFECT-003 wont-fix 留设计评审)。如需业界默认尺寸请显式传 size='medium'"
|
|
66
|
+
},
|
|
67
|
+
"loading": {
|
|
68
|
+
"type": "boolean | { delay: number }",
|
|
69
|
+
"default": false,
|
|
70
|
+
"description": "载入状态。loading=true 时按钮显示 loading 图标 + 自动加 disabled 属性(**隐含 disabled,onClick 不触发**)——与 antd/MUI 惯例一致。`loading={delay: ms}`:loading spinner 最短可见时长(delay 毫秒),防止快速请求场景闪烁",
|
|
71
|
+
"behaviorNote": "v5.x DEFECT-001 修复:之前需要 `disabled={loading}` 双写防御,**现在 loading=true 已自动隐含 disabled(onClick 不触发),无需再写 disabled={loading}**——双写不造成 bug 但属于冗余代码。零破坏:src 业务 0 引用此 prop;docs 仅 1 处示例不受影响"
|
|
72
|
+
},
|
|
73
|
+
"disabled": {
|
|
74
|
+
"type": "boolean",
|
|
75
|
+
"default": false
|
|
76
|
+
},
|
|
77
|
+
"danger": {
|
|
78
|
+
"type": "boolean",
|
|
79
|
+
"default": false,
|
|
80
|
+
"description": "危险操作修饰符;与 variant 正交(可与 contained/outlined/text 任一组合)。详见顶层 modifiers.danger"
|
|
81
|
+
},
|
|
82
|
+
"startIcon": {
|
|
83
|
+
"type": "ReactNode",
|
|
84
|
+
"description": "前置图标"
|
|
85
|
+
},
|
|
86
|
+
"endIcon": {
|
|
87
|
+
"type": "ReactNode",
|
|
88
|
+
"description": "后置图标"
|
|
89
|
+
},
|
|
90
|
+
"href": {
|
|
91
|
+
"type": "string",
|
|
92
|
+
"description": "跳转链接,传入此属性时行为类似 a 标签"
|
|
93
|
+
},
|
|
94
|
+
"target": {
|
|
95
|
+
"type": "string",
|
|
96
|
+
"description": "链接打开方式"
|
|
97
|
+
},
|
|
98
|
+
"toolTipTitle": {
|
|
99
|
+
"type": "ReactNode",
|
|
100
|
+
"description": "**hover 悬停提示(最简快捷写法)——仅 disabled=false 时生效**。src 内 toolTipTitle 路径把 Tooltip `disabled={disabled}` 透传,因此按钮禁用时 Tooltip 同时被禁用(tooltip 不显示)。⚠️ Tooltip 相关共有 3 个 prop(toolTipTitle / TooltipProps / disabledTooltip),命名风格不一致 + 职责重叠是已知问题(DEFECT-002,独立 epic 评审中——src 内 134+ 处使用)。**优先级(src 实证)**:① disabled=true + disabledTooltip 有值 → 走 disabledTooltip 路径;② toolTipTitle 非空 → 显示 Tooltip(disabled=false 时);③ TooltipProps 覆盖 toolTipTitle 的 arrow/placement 等样式参数。**结论:disabled 状态的悬停提示必须用 disabledTooltip,toolTipTitle 在 disabled=true 时不显示**。**传 undefined / null / false 时等价于不传,不渲染 Tooltip wrapper,不影响点击区域**"
|
|
101
|
+
},
|
|
102
|
+
"disabledTooltip": {
|
|
103
|
+
"type": "{ title: ReactNode; placement?: string; arrow?: boolean; [key: string]: any }",
|
|
104
|
+
"description": "**disabled=true 时的悬停提示**(toolTipTitle 在 disabled=true 时不生效,需用此 prop)。TooltipProps 核心字段:`title: ReactNode`(必填)/ `placement?`(弹出方向,默认 'top')/ `arrow?: boolean`(箭头)。**最简写法**:`disabledTooltip={{ title: '不可操作原因' }}`"
|
|
105
|
+
},
|
|
106
|
+
"children": {
|
|
107
|
+
"type": "ReactNode",
|
|
108
|
+
"description": "**按钮文案或内容(正式 prop)**。通过 React 标准 children 传入;可传字符串或 ReactNode,与 startIcon/endIcon 可同时使用。ButtonProps extends ButtonOrAnchorAttributes(继承自 React.ButtonHTMLAttributes),children 是标准 React prop——不单独在此处列出不代表不支持"
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
"do": [
|
|
112
|
+
"主要操作使用 contained",
|
|
113
|
+
"重要但非主要操作使用 outlined",
|
|
114
|
+
"危险操作必须明确标识(danger 属性)",
|
|
115
|
+
"表单提交场景传 `type='submit'`(默认 `type='button'` 防意外表单提交;Button 通过 restProps 透传 HTML 原生 button 属性,`type='submit'` 会覆盖默认值生效)。⚠️ **type 是 HTML native attribute · 只接受 'button' / 'submit' / 'reset'。若你想用 antd 风格 `type='primary'` · paraui 对应是 `variant='contained'`;若你想 antd `type='default'` · paraui 用 `variant='outlined'`;若 antd `type='danger'` · paraui 用 `danger={true}`(modifier · 与 variant 正交)**",
|
|
116
|
+
"disabled 状态需要悬停提示时用 disabledTooltip(toolTipTitle 在 disabled=true 时不显示)",
|
|
117
|
+
"loading 状态无需额外写 disabled={loading}——loading=true 已自动隐含 disabled(DEFECT-001 修复)",
|
|
118
|
+
"**ButtonProps extends ButtonOrAnchorAttributes**(src/Button/index.tsx:21):所有原生 button/a 属性均可安全透传,TypeScript 严格模式下不会类型报错——`type='submit'` / `name` / `form`(关联 form id)/ `disabled` / `aria-*` 等均可用"
|
|
119
|
+
],
|
|
120
|
+
"dont": [
|
|
121
|
+
"在同一区域放置过多 contained 按钮",
|
|
122
|
+
"使用 disabled 按钮作为唯一的禁用反馈(应配合 Tooltip 解释原因)",
|
|
123
|
+
"❌ 不要用 `type='primary'` / `type='default'` / `type='danger'`(antd 风格)· paraui 用 `variant='contained'` / `variant='outlined'` / `danger={true}`(modifier 与 variant 正交)",
|
|
124
|
+
"❌ 不要用 `color='primary'`(MUI 风格)· paraui 用 variant + danger 拆分语义"
|
|
125
|
+
],
|
|
126
|
+
"events": {
|
|
127
|
+
"onClick": {
|
|
128
|
+
"signature": "(event: React.MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => void",
|
|
129
|
+
"asyncSupported": false,
|
|
130
|
+
"examples": [
|
|
131
|
+
"基本点击处理:onClick={() => handleSubmit()}",
|
|
132
|
+
"需要阻止冒泡:onClick={(e) => { e.stopPropagation(); doAction(); }}",
|
|
133
|
+
"loading 状态下 onClick 不触发(已自动隐含 disabled):无需 onClick 里手动判断 isLoading"
|
|
134
|
+
],
|
|
135
|
+
"commonMistakes": [
|
|
136
|
+
"loading=true 时期望 onClick 还触发——loading 自动隐含 disabled,onClick 被屏蔽;无需再写 disabled={loading}",
|
|
137
|
+
"disabled=true 时用 toolTipTitle 做禁用提示——disabled 状态下 toolTipTitle 不显示;需改用 disabledTooltip prop",
|
|
138
|
+
"在 href 模式(传了 href)下期望 onClick 阻止跳转——渲染为 <a>,onClick 里需 e.preventDefault() 才能阻止"
|
|
139
|
+
]
|
|
140
|
+
}
|
|
141
|
+
},
|
|
142
|
+
"typescriptPitfalls": [
|
|
143
|
+
{
|
|
144
|
+
"issue": "variant 不是 antd 的 type,不接受 'primary'/'default'/'danger',只接受 'contained'/'outlined'/'text'",
|
|
145
|
+
"wrong": "// antd 风格:\n<Button type='primary'>提交</Button> // 这里 type 是 HTML button type,不是样式!",
|
|
146
|
+
"right": "// para-ui 风格:\n<Button variant='contained'>提交</Button> // 主要操作用 contained\n<Button variant='outlined'>取消</Button> // 次要操作用 outlined\n<Button danger>删除</Button> // 危险操作加 danger modifier"
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
"issue": "type prop 是 HTML 原生 button type('button'|'submit'|'reset'),不是样式 variant",
|
|
150
|
+
"wrong": "<Button type='primary'>提交</Button> // TypeScript 报错:'primary' 不在 'button'|'submit'|'reset' 联合类型",
|
|
151
|
+
"right": "<Button variant='contained' type='submit'>提交</Button> // type 只管 form 提交行为,默认 'button'"
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
"issue": "loading 的对象形式需要传 { delay: number },不能传其他结构",
|
|
155
|
+
"wrong": "loading={{ duration: 300 }} // TS 类型报错:对象形式只接受 { delay: number }",
|
|
156
|
+
"right": "loading={{ delay: 300 }} // delay 是 loading spinner 最短可见毫秒数"
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
"issue": "disabledTooltip 的 title 字段必填,TooltipProps 的 disabled 字段含义是'禁用 tooltip 本身'——不要传 disabled",
|
|
160
|
+
"wrong": "disabledTooltip={{ disabled: true, title: '...' }} // disabled 是 Tooltip 的开关,传 true 反而不显示",
|
|
161
|
+
"right": "disabledTooltip={{ title: '不可操作原因' }} // 只需 title,Button disabled=true 时自动触发"
|
|
162
|
+
}
|
|
163
|
+
],
|
|
164
|
+
"mapping": {
|
|
165
|
+
"realComponent": "Button",
|
|
166
|
+
"adapter": null
|
|
167
|
+
}
|
|
168
|
+
}
|
package/es/Button/index.js
CHANGED
|
@@ -11,32 +11,32 @@ const z = (b) => {
|
|
|
11
11
|
variant: N = "contained",
|
|
12
12
|
size: T = "large",
|
|
13
13
|
className: p,
|
|
14
|
-
disabled:
|
|
15
|
-
children:
|
|
14
|
+
disabled: s = !1,
|
|
15
|
+
children: l,
|
|
16
16
|
startIcon: e,
|
|
17
|
-
endIcon:
|
|
18
|
-
loading:
|
|
17
|
+
endIcon: o,
|
|
18
|
+
loading: c = !1,
|
|
19
19
|
toolTipTitle: x = "",
|
|
20
20
|
TooltipProps: B,
|
|
21
21
|
danger: L = !1,
|
|
22
22
|
href: h,
|
|
23
23
|
target: j,
|
|
24
|
-
disabledTooltip:
|
|
24
|
+
disabledTooltip: a,
|
|
25
25
|
...f
|
|
26
|
-
} = b, [
|
|
26
|
+
} = b, [r, m] = y(!1), d = "href" in b, i = () => P(
|
|
27
27
|
`${n}-button`,
|
|
28
28
|
p,
|
|
29
29
|
`${n}-button-${N}`,
|
|
30
30
|
`${n}-button-${T}`,
|
|
31
|
-
|
|
32
|
-
L && !
|
|
31
|
+
r && `${n}-button-loading`,
|
|
32
|
+
L && !s && `${n}-button-dangerous`,
|
|
33
33
|
d && `${n}-button-link`,
|
|
34
|
-
d &&
|
|
34
|
+
d && s && `${n}-button-link-disabled`
|
|
35
35
|
), u = (k) => {
|
|
36
|
-
if (!
|
|
37
|
-
return k === "start" && e ? /* @__PURE__ */ t.jsx("span", { className: "button-icon", children: e }) : k === "end" &&
|
|
38
|
-
if (typeof
|
|
39
|
-
const v =
|
|
36
|
+
if (!r)
|
|
37
|
+
return k === "start" && e ? /* @__PURE__ */ t.jsx("span", { className: "button-icon", children: e }) : k === "end" && o ? /* @__PURE__ */ t.jsx("span", { className: "button-icon button-icon-end", children: o }) : null;
|
|
38
|
+
if (typeof c == "object") {
|
|
39
|
+
const v = c.delay || 0;
|
|
40
40
|
setTimeout(() => m(!1), v);
|
|
41
41
|
}
|
|
42
42
|
return k === "start" ? /* @__PURE__ */ t.jsx("span", { className: "button-icon button-icon-loading", children: /* @__PURE__ */ t.jsx(C, {}) }) : null;
|
|
@@ -46,34 +46,34 @@ const z = (b) => {
|
|
|
46
46
|
...f,
|
|
47
47
|
href: h,
|
|
48
48
|
target: j,
|
|
49
|
-
className:
|
|
49
|
+
className: i(),
|
|
50
50
|
children: [
|
|
51
51
|
u("start"),
|
|
52
|
-
|
|
52
|
+
l && /* @__PURE__ */ t.jsx("span", { className: "button-label", children: l }),
|
|
53
53
|
u("end")
|
|
54
54
|
]
|
|
55
55
|
}
|
|
56
56
|
) : /* @__PURE__ */ t.jsxs(
|
|
57
57
|
"button",
|
|
58
58
|
{
|
|
59
|
-
disabled:
|
|
59
|
+
disabled: s || r,
|
|
60
60
|
type: "button",
|
|
61
|
-
className:
|
|
61
|
+
className: i(),
|
|
62
62
|
...f,
|
|
63
63
|
children: [
|
|
64
64
|
u("start"),
|
|
65
|
-
|
|
65
|
+
l && /* @__PURE__ */ t.jsx("span", { className: "button-label", children: l }),
|
|
66
66
|
u("end")
|
|
67
67
|
]
|
|
68
68
|
}
|
|
69
69
|
);
|
|
70
70
|
return I(() => {
|
|
71
|
-
m(!!
|
|
72
|
-
}, [
|
|
71
|
+
m(!!c);
|
|
72
|
+
}, [c]), s && a ? /* @__PURE__ */ t.jsx(
|
|
73
73
|
g,
|
|
74
74
|
{
|
|
75
75
|
disabled: !0,
|
|
76
|
-
...
|
|
76
|
+
...a,
|
|
77
77
|
children: /* @__PURE__ */ t.jsx("span", { className: `${n}-button--disabled`, children: $() })
|
|
78
78
|
}
|
|
79
79
|
) : x ? /* @__PURE__ */ t.jsx(
|
|
@@ -82,9 +82,9 @@ const z = (b) => {
|
|
|
82
82
|
arrow: !1,
|
|
83
83
|
placement: "bottomLeft",
|
|
84
84
|
...B,
|
|
85
|
-
disabled:
|
|
85
|
+
disabled: s,
|
|
86
86
|
title: x,
|
|
87
|
-
children:
|
|
87
|
+
children: s ? /* @__PURE__ */ t.jsx("span", { className: `${n}-button--disabled`, children: $() }) : $()
|
|
88
88
|
}
|
|
89
89
|
) : $();
|
|
90
90
|
}, E = (b) => {
|
|
@@ -92,33 +92,33 @@ const z = (b) => {
|
|
|
92
92
|
variant: N = "contained",
|
|
93
93
|
size: T = "large",
|
|
94
94
|
toolTipTitle: p = "",
|
|
95
|
-
children:
|
|
96
|
-
className:
|
|
95
|
+
children: s,
|
|
96
|
+
className: l,
|
|
97
97
|
disabled: e = !1,
|
|
98
|
-
loading:
|
|
99
|
-
TooltipProps:
|
|
98
|
+
loading: o = !1,
|
|
99
|
+
TooltipProps: c,
|
|
100
100
|
danger: x = !1,
|
|
101
101
|
href: B,
|
|
102
102
|
target: L,
|
|
103
103
|
disabledTooltip: h,
|
|
104
104
|
...j
|
|
105
|
-
} = b, [
|
|
105
|
+
} = b, [a, f] = y(!1), r = "href" in b, m = () => P(
|
|
106
106
|
`${n}-button ${n}-icon-button`,
|
|
107
|
-
|
|
107
|
+
l,
|
|
108
108
|
`${n}-icon-button-${N}`,
|
|
109
109
|
`${n}-icon-button-${T}`,
|
|
110
|
-
|
|
110
|
+
a && `${n}-icon-button-loading`,
|
|
111
111
|
x && !e && `${n}-icon-button-dangerous`,
|
|
112
|
-
|
|
113
|
-
|
|
112
|
+
r && `${n}-button-link`,
|
|
113
|
+
r && e && `${n}-button-link-disabled`
|
|
114
114
|
), d = () => {
|
|
115
|
-
if (!
|
|
116
|
-
if (typeof
|
|
117
|
-
const u =
|
|
115
|
+
if (!a) return s;
|
|
116
|
+
if (typeof o == "object") {
|
|
117
|
+
const u = o.delay || 0;
|
|
118
118
|
setTimeout(() => f(!1), u);
|
|
119
119
|
}
|
|
120
120
|
return /* @__PURE__ */ t.jsx("span", { className: "button-loading-icon", children: /* @__PURE__ */ t.jsx(C, {}) });
|
|
121
|
-
},
|
|
121
|
+
}, i = () => r ? /* @__PURE__ */ t.jsx(
|
|
122
122
|
"a",
|
|
123
123
|
{
|
|
124
124
|
...j,
|
|
@@ -131,33 +131,33 @@ const z = (b) => {
|
|
|
131
131
|
"button",
|
|
132
132
|
{
|
|
133
133
|
...j,
|
|
134
|
-
disabled: e,
|
|
134
|
+
disabled: e || a,
|
|
135
135
|
type: "button",
|
|
136
136
|
className: m(),
|
|
137
137
|
children: d()
|
|
138
138
|
}
|
|
139
139
|
);
|
|
140
140
|
return I(() => {
|
|
141
|
-
f(!!
|
|
142
|
-
}, [
|
|
141
|
+
f(!!o);
|
|
142
|
+
}, [o]), e && h ? /* @__PURE__ */ t.jsx(
|
|
143
143
|
g,
|
|
144
144
|
{
|
|
145
145
|
disabled: !0,
|
|
146
146
|
...h,
|
|
147
|
-
children: /* @__PURE__ */ t.jsx("span", { className: `${n}-button--disabled`, children:
|
|
147
|
+
children: /* @__PURE__ */ t.jsx("span", { className: `${n}-button--disabled`, children: i() })
|
|
148
148
|
}
|
|
149
149
|
) : p ? /* @__PURE__ */ t.jsx(
|
|
150
150
|
g,
|
|
151
151
|
{
|
|
152
152
|
arrow: !1,
|
|
153
153
|
placement: "bottomLeft",
|
|
154
|
-
...
|
|
154
|
+
...c,
|
|
155
155
|
disabled: e,
|
|
156
156
|
title: p,
|
|
157
|
-
children: e ? /* @__PURE__ */ t.jsx("span", { className: `${n}-button--disabled`, children:
|
|
157
|
+
children: e ? /* @__PURE__ */ t.jsx("span", { className: `${n}-button--disabled`, children: i() }) : i()
|
|
158
158
|
},
|
|
159
|
-
+
|
|
160
|
-
) :
|
|
159
|
+
+a
|
|
160
|
+
) : i();
|
|
161
161
|
}, S = z;
|
|
162
162
|
S.IconButton = E;
|
|
163
163
|
S.SplitButton = w;
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ButtonGroup",
|
|
3
|
+
"category": "General",
|
|
4
|
+
"description": "按钮组,将多个按钮组合在一起",
|
|
5
|
+
"semantic": {
|
|
6
|
+
"intent": [
|
|
7
|
+
"操作分组",
|
|
8
|
+
"互斥选择"
|
|
9
|
+
],
|
|
10
|
+
"useCases": [
|
|
11
|
+
"视图切换",
|
|
12
|
+
"格式化工具栏",
|
|
13
|
+
"分段控制"
|
|
14
|
+
],
|
|
15
|
+
"riskLevel": "low"
|
|
16
|
+
},
|
|
17
|
+
"variants": {
|
|
18
|
+
"icon": {
|
|
19
|
+
"meaning": "图标模式"
|
|
20
|
+
},
|
|
21
|
+
"iconSplit": {
|
|
22
|
+
"meaning": "图标分割模式"
|
|
23
|
+
},
|
|
24
|
+
"text": {
|
|
25
|
+
"meaning": "文本模式"
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"states": [
|
|
29
|
+
"default",
|
|
30
|
+
"disabled"
|
|
31
|
+
],
|
|
32
|
+
"idealProps": {
|
|
33
|
+
"data": {
|
|
34
|
+
"type": "ButtonItem[]",
|
|
35
|
+
"itemSchema": {
|
|
36
|
+
"icon": { "type": "ReactNode", "description": "按钮图标" },
|
|
37
|
+
"text": { "type": "ReactNode", "description": "按钮文本(icon/iconSplit 模式下仅作 tooltip 默认值;text 模式下为显示文字)" },
|
|
38
|
+
"disabled": { "type": "boolean", "description": "单项禁用(覆盖组件级 disabled)" },
|
|
39
|
+
"toolTipTitle": { "type": "ReactNode", "description": "该项 tooltip 文案(优先级高于 text)" },
|
|
40
|
+
"variant": { "type": "'contained' | 'outlined' | 'text'", "description": "继承自 ButtonProps,text 模式下用于标识激活态" }
|
|
41
|
+
},
|
|
42
|
+
"description": "按钮组数据数组,每项 ButtonItem extends ButtonProps(来自 src/Button — 可用 variant / size / loading / type 等全部 Button 字段),额外含 ButtonGroup 专用字段 icon? / text? / toolTipTitle? + 索引签名透传业务字段;src/ButtonGroup/index.tsx:15。**text 字段双语义**:icon/iconSplit 模式下 text 仅作 tooltip 默认值(不显示为按钮文字),text 模式下 text 才是按钮显示文字。**ButtonItem.value 字段冲突**:继承自 Button 类型为 `string | number | readonly string[] | undefined`,**不是单纯 string** — 业务标识请用 viewId / actionKey / menuKey 等独有名避免 tsc 报错(R22 ButtonGroup-004 实证)。**data[].disabled** 是单项独立覆盖字段(boolean,非字符串)"
|
|
43
|
+
},
|
|
44
|
+
"mode": {
|
|
45
|
+
"type": "enum",
|
|
46
|
+
"values": [
|
|
47
|
+
"icon",
|
|
48
|
+
"iconSplit",
|
|
49
|
+
"text"
|
|
50
|
+
],
|
|
51
|
+
"default": "icon",
|
|
52
|
+
"description": "按钮组模式(icon=纯图标 / iconSplit=分割可见 / text=纯文字)。**text 模式下 variant 切换有效**:variant='contained' 实心高亮 / variant='outlined' 描边弱化 — 配合外部 activeKey state 实现 tabs 视觉切换(组件无内置 active 状态)"
|
|
53
|
+
},
|
|
54
|
+
"layout": {
|
|
55
|
+
"type": "enum",
|
|
56
|
+
"values": [
|
|
57
|
+
"horizontal",
|
|
58
|
+
"vertical"
|
|
59
|
+
],
|
|
60
|
+
"default": "horizontal",
|
|
61
|
+
"description": "布局方向"
|
|
62
|
+
},
|
|
63
|
+
"showToolTip": {
|
|
64
|
+
"type": "boolean",
|
|
65
|
+
"default": "false",
|
|
66
|
+
"description": "对每按钮显示 tooltip,未设 toolTipTitle 时自动用 text 作为提示;单项 toolTipTitle 优先级高于此自动逻辑"
|
|
67
|
+
},
|
|
68
|
+
"showIcon": {
|
|
69
|
+
"type": "boolean",
|
|
70
|
+
"default": "false",
|
|
71
|
+
"description": "text 模式下文字前显示 icon(icon/iconSplit 模式无效)"
|
|
72
|
+
},
|
|
73
|
+
"disabled": {
|
|
74
|
+
"type": "boolean",
|
|
75
|
+
"default": "false",
|
|
76
|
+
"description": "整组禁用;单项可通过 data[].disabled(**boolean,不是字符串 'true'**)单独覆盖;src/ButtonGroup/index.tsx:88 单项若未设则继承顶层"
|
|
77
|
+
},
|
|
78
|
+
"onClick": {
|
|
79
|
+
"type": "(item: ButtonItem, event?: React.MouseEvent) => void",
|
|
80
|
+
"description": "点击回调;**item 是被点击的整个 ButtonItem 对象**(含 data 项里的所有自定义字段,如业务 id / viewId 等)— 推荐做法:在 data 每项上挂 value / viewId 等业务字段,onClick 内 item.viewId 直取(不必维护 index → 业务 id 的映射)"
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
"do": [
|
|
84
|
+
"用于互斥或相关操作的分组",
|
|
85
|
+
"保持按钮数量适中(2-5)",
|
|
86
|
+
"在 data 每项透传业务字段(如 value / viewId / actionKey),onClick 内 item.业务字段 取值"
|
|
87
|
+
],
|
|
88
|
+
"dont": [
|
|
89
|
+
"ButtonGroup 内放置不相关的操作",
|
|
90
|
+
"按钮过多导致布局拥挤",
|
|
91
|
+
"把 data[].disabled 传字符串 'true'(必须 boolean — runtime 行为不可信)",
|
|
92
|
+
"假设 ButtonGroup 有内置 active/selected 状态(无此 prop — tabs 切换需外部 state 维护 activeKey,根据 activeKey 在 data 项里切 variant: 'contained' | 'outlined')",
|
|
93
|
+
"把业务标识透传到 ButtonItem.value 字段(value 继承自 Button 是宽类型 `string | number | readonly string[] | undefined` — tsc 会报错;业务标识用 viewId / actionKey / menuKey 等独有名)"
|
|
94
|
+
],
|
|
95
|
+
"events": {
|
|
96
|
+
"onClick": {
|
|
97
|
+
"signature": "(item: ButtonItem, event?: React.MouseEvent) => void",
|
|
98
|
+
"asyncSupported": false,
|
|
99
|
+
"examples": [
|
|
100
|
+
"通用点击入口:onClick={(item) => dispatch({ type: item.actionKey })}",
|
|
101
|
+
"获取被点击项的业务标识:onClick={(item) => navigate(item.viewId)}",
|
|
102
|
+
"需要事件对象:onClick={(item, event) => { event?.stopPropagation(); handleItem(item); }}"
|
|
103
|
+
],
|
|
104
|
+
"commonMistakes": [
|
|
105
|
+
"期望 item 只是 index 或 key——item 是被点击的完整 ButtonItem 对象,含 data[] 中该项的所有字段",
|
|
106
|
+
"在 data 里用 ButtonItem.value 存业务 id——value 继承自 Button 是宽类型 string|number|readonly string[]|undefined,建议用 viewId/actionKey 等独有字段名",
|
|
107
|
+
"event 参数是可选的(签名 event?),回调内直接访问 event.target 前需检查 event 非 undefined"
|
|
108
|
+
]
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
"typescriptPitfalls": [
|
|
112
|
+
{
|
|
113
|
+
"issue": "ButtonItem 继承自 ButtonProps,value 字段类型是 string|number|readonly string[]|undefined,不是单纯 string",
|
|
114
|
+
"wrong": "const items: ButtonItem[] = [{ icon: <Icon/>, text: '编辑', value: 'edit' }];\n// onClick 中:const id: string = item.value; // TS 报错:不可分配给 string",
|
|
115
|
+
"right": "// 使用自定义字段名避免冲突\nconst items: ButtonItem[] = [{ icon: <Icon/>, text: '编辑', actionKey: 'edit' }];\n// onClick 中:const key = (item as any).actionKey;"
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
"issue": "ButtonGroup 没有内置 active/selected 状态,需要外部 state 维护并通过 variant 切换视觉",
|
|
119
|
+
"wrong": "// 期望有 activeKey prop 自动高亮\n<ButtonGroup data={tabs} activeKey='tab1' /> // activeKey 不在 ButtonGroupProps,静默失效",
|
|
120
|
+
"right": "// 外部维护 activeKey,按需设置 variant\nconst [active, setActive] = useState('tab1');\n<ButtonGroup\n mode='text'\n data={tabs.map(t => ({ ...t, variant: t.id === active ? 'contained' : 'outlined' }))}\n onClick={(item) => setActive((item as any).id)}\n/>"
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"issue": "data[].disabled 必须是 boolean,不能是字符串 'true',因为 ButtonGroup src 用 typeof _disabled === 'undefined' 做判断",
|
|
124
|
+
"wrong": "const items: ButtonItem[] = [{ text: '删除', disabled: 'true' as any }]; // 字符串 'true' 是 truthy,不是 boolean true",
|
|
125
|
+
"right": "const items: ButtonItem[] = [{ text: '删除', disabled: true }]; // 明确传 boolean"
|
|
126
|
+
}
|
|
127
|
+
],
|
|
128
|
+
"mapping": {
|
|
129
|
+
"realComponent": "ButtonGroup",
|
|
130
|
+
"adapter": null
|
|
131
|
+
}
|
|
132
|
+
}
|