@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,152 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "CheckboxGroup",
|
|
3
|
+
"category": "Data Entry",
|
|
4
|
+
"description": "复选框组,管理一组 Checkbox,支持泛型约束选中值类型。**支持泛型**:`<CheckboxGroup<'apple' | 'banana'>>` 让 value / defaultValue / onChange 入参类型推断为业务字面量;默认 `T extends string | number = string | number`",
|
|
5
|
+
"semantic": {
|
|
6
|
+
"intent": [
|
|
7
|
+
"多选",
|
|
8
|
+
"批量选择",
|
|
9
|
+
"权限配置"
|
|
10
|
+
],
|
|
11
|
+
"useCases": [
|
|
12
|
+
"权限选择",
|
|
13
|
+
"标签选择",
|
|
14
|
+
"多选过滤"
|
|
15
|
+
],
|
|
16
|
+
"riskLevel": "low"
|
|
17
|
+
},
|
|
18
|
+
"variants": {
|
|
19
|
+
"default": {
|
|
20
|
+
"meaning": "默认横向布局"
|
|
21
|
+
},
|
|
22
|
+
"column": {
|
|
23
|
+
"meaning": "纵向布局(row=false)"
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
"states": [
|
|
27
|
+
"default",
|
|
28
|
+
"disabled",
|
|
29
|
+
"error"
|
|
30
|
+
],
|
|
31
|
+
"idealProps": {
|
|
32
|
+
"list": {
|
|
33
|
+
"type": "CheckboxListProps[] | CheckboxListProps[][]",
|
|
34
|
+
"required": true,
|
|
35
|
+
"description": "选项数据;CheckboxListProps extends CheckboxProps,必须含 `name: string | number`(唯一标识,选中后 onChange 收到的 value 数组中的元素即为各项的 name)。支持二维数组实现分行布局(每个子数组为一行)"
|
|
36
|
+
},
|
|
37
|
+
"value": {
|
|
38
|
+
"type": "T[]",
|
|
39
|
+
"description": "受控选中值数组;与 onChange 配合实现受控模式;不传时退化为非受控(由 defaultValue 初始化)"
|
|
40
|
+
},
|
|
41
|
+
"defaultValue": {
|
|
42
|
+
"type": "T[]",
|
|
43
|
+
"description": "非受控初始值(仅挂载时生效一次);src/CheckboxGroup/index.tsx:73-75 useEffect 实证:defaultValue 变化后不重新同步"
|
|
44
|
+
},
|
|
45
|
+
"onChange": {
|
|
46
|
+
"type": "(val: T[]) => void",
|
|
47
|
+
"description": "选中值变化回调;val 为当前全部选中项的 name 值数组;src/CheckboxGroup/index.tsx:98 实证,无 event 参数"
|
|
48
|
+
},
|
|
49
|
+
"id": {
|
|
50
|
+
"type": "string",
|
|
51
|
+
"default": "name",
|
|
52
|
+
"description": "**指定读取 list 子项哪个字段作为唯一标识**(src/CheckboxGroup/index.tsx:65 默认值实证);大多数情况无需修改,除非 list 每项用 id/key 等字段作为唯一标识"
|
|
53
|
+
},
|
|
54
|
+
"row": {
|
|
55
|
+
"type": "boolean",
|
|
56
|
+
"default": true,
|
|
57
|
+
"description": "布局方式;true=横向(checkbox 并排),false=纵向(每项独占一行)"
|
|
58
|
+
},
|
|
59
|
+
"disabled": {
|
|
60
|
+
"type": "boolean",
|
|
61
|
+
"default": false,
|
|
62
|
+
"description": "全局禁用(src/CheckboxGroup/index.tsx:175 实证:`disabled={Boolean(disabled || singleItem.disabled)}`);单项也可通过 CheckboxListProps.disabled 独立禁用"
|
|
63
|
+
},
|
|
64
|
+
"size": {
|
|
65
|
+
"type": "enum",
|
|
66
|
+
"values": ["small", "medium", "large"],
|
|
67
|
+
"default": "large",
|
|
68
|
+
"description": "尺寸;透传给内部每个 Checkbox"
|
|
69
|
+
},
|
|
70
|
+
"label": {
|
|
71
|
+
"type": "ReactNode",
|
|
72
|
+
"description": "组件标题(展示在 checkbox 列表上方)"
|
|
73
|
+
},
|
|
74
|
+
"required": {
|
|
75
|
+
"type": "boolean",
|
|
76
|
+
"description": "是否显示必填标记(在 label 旁展示星号)"
|
|
77
|
+
},
|
|
78
|
+
"error": {
|
|
79
|
+
"type": "boolean",
|
|
80
|
+
"description": "错误状态(来自 HelperTextDetailProps,配合 helperText 展示错误文案)"
|
|
81
|
+
},
|
|
82
|
+
"helperText": {
|
|
83
|
+
"type": "string",
|
|
84
|
+
"description": "辅助文本(error=true 时显示为红色错误文案)"
|
|
85
|
+
},
|
|
86
|
+
"spacing": {
|
|
87
|
+
"type": "string",
|
|
88
|
+
"default": "32px",
|
|
89
|
+
"description": "横向布局(row=true)时各 checkbox 间距"
|
|
90
|
+
},
|
|
91
|
+
"itemWidth": {
|
|
92
|
+
"type": "string",
|
|
93
|
+
"description": "每个 checkbox 的宽度"
|
|
94
|
+
},
|
|
95
|
+
"className": {
|
|
96
|
+
"type": "string",
|
|
97
|
+
"description": "根容器自定义类名"
|
|
98
|
+
},
|
|
99
|
+
"style": {
|
|
100
|
+
"type": "React.CSSProperties",
|
|
101
|
+
"description": "根容器自定义样式"
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
"do": [
|
|
105
|
+
"list 每项必须包含 `name` 字段(默认 id='name'),值将作为 onChange 返回数组中的元素;若用其他字段,需显式传 id 配置",
|
|
106
|
+
"受控模式:同时传 value + onChange,父组件维护 state;非受控模式:只传 defaultValue,不传 value",
|
|
107
|
+
"需要全选/反选功能:父组件维护 value state,全选时 onChange([all names]),反选时 onChange([])",
|
|
108
|
+
"禁用单项:在 list 子项里传 `disabled: true`;全局禁用:在 CheckboxGroup 顶层传 `disabled`"
|
|
109
|
+
],
|
|
110
|
+
"dont": [
|
|
111
|
+
"list 子项漏写 name 字段——CheckboxGroup 内部靠 list[i][id] 取值,缺失 name 导致 onChange 返回 undefined 元素",
|
|
112
|
+
"选项超多(>20项)不分行——改用二维数组 list(每个子数组为一行)或搭配 Select 多选",
|
|
113
|
+
"混用受控(value)和非受控(defaultValue)——value 存在时 defaultValue 被忽略,只用一种模式"
|
|
114
|
+
],
|
|
115
|
+
"events": {
|
|
116
|
+
"onChange": {
|
|
117
|
+
"signature": "(val: T[]) => void",
|
|
118
|
+
"asyncSupported": false,
|
|
119
|
+
"examples": [
|
|
120
|
+
"基本受控:const [selected, setSelected] = useState<string[]>([]); <CheckboxGroup value={selected} onChange={setSelected} />",
|
|
121
|
+
"onChange 回调返回当前全部选中项的 name 值数组,点击已选项则从数组中移除,点击未选项则追加",
|
|
122
|
+
"泛型约束:<CheckboxGroup<'read' | 'write'> value={perms} onChange={setPerms} /> 让 TS 精确推断 val 类型"
|
|
123
|
+
],
|
|
124
|
+
"commonMistakes": [
|
|
125
|
+
"假设 onChange 签名类似原生 checkbox 的 (e: ChangeEvent) => void——实际是 (val: T[]) => void,无 event 参数",
|
|
126
|
+
"假设 onChange 返回单个被点击的项——实际是全部选中项的数组",
|
|
127
|
+
"传了 value 但不传 onChange,导致 CheckboxGroup 变成只读(受控模式下 value 被外部锁死)"
|
|
128
|
+
]
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
"typescriptPitfalls": [
|
|
132
|
+
{
|
|
133
|
+
"issue": "list 子项缺少 name 字段时 TS 不报错但运行时 onChange 返回 undefined",
|
|
134
|
+
"wrong": "list={[{ label: '苹果', value: 'apple' }]} // value 字段不是 id,name 字段缺失",
|
|
135
|
+
"right": "list={[{ label: '苹果', name: 'apple' }]} // 默认 id='name',用 name 字段作为唯一标识"
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
"issue": "泛型参数缺失时 value/defaultValue 推断为 (string|number)[] 失去精确类型",
|
|
139
|
+
"wrong": "// 没有泛型,无法约束 val 只能是 'read' | 'write'\n<CheckboxGroup value={perms} onChange={(val) => setPerms(val)} />",
|
|
140
|
+
"right": "<CheckboxGroup<'read' | 'write'> value={perms} onChange={(val) => setPerms(val)} /> // val 类型精确推断为 ('read' | 'write')[]"
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
"issue": "defaultValue 只在组件挂载时读取一次,后续修改不会触发重新同步",
|
|
144
|
+
"wrong": "// 期望通过修改 defaultValue 重置 checkboxGroup\n<CheckboxGroup defaultValue={initialValues} /> // 后续 initialValues 变化不会更新 UI",
|
|
145
|
+
"right": "// 需要外部重置时改用受控模式:value + onChange + 父组件 setState\n<CheckboxGroup value={selectedValues} onChange={setSelectedValues} />"
|
|
146
|
+
}
|
|
147
|
+
],
|
|
148
|
+
"mapping": {
|
|
149
|
+
"realComponent": "CheckboxGroup",
|
|
150
|
+
"adapter": null
|
|
151
|
+
}
|
|
152
|
+
}
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "CodeEditor",
|
|
3
|
+
"category": "Data Display",
|
|
4
|
+
"description": "代码编辑器,基于 Monaco Editor。⚠️ 命名警告:**editorLanguage** 是真实代码语言 prop(如 'json'/'typescript'),**language** 是 i18n 字典对象(对象类型,非字符串)。两者极易混淆,务必确认你要的是 editorLanguage(代码高亮)而非 language(界面 i18n)。",
|
|
5
|
+
"semantic": {
|
|
6
|
+
"intent": [
|
|
7
|
+
"代码编辑",
|
|
8
|
+
"代码展示",
|
|
9
|
+
"高亮显示"
|
|
10
|
+
],
|
|
11
|
+
"useCases": [
|
|
12
|
+
"配置编辑",
|
|
13
|
+
"脚本编写",
|
|
14
|
+
"日志查看"
|
|
15
|
+
],
|
|
16
|
+
"riskLevel": "high"
|
|
17
|
+
},
|
|
18
|
+
"variants": {
|
|
19
|
+
"default": {
|
|
20
|
+
"meaning": "标准编辑器"
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"states": [
|
|
24
|
+
"default",
|
|
25
|
+
"disabled",
|
|
26
|
+
"readonly"
|
|
27
|
+
],
|
|
28
|
+
"idealProps": {
|
|
29
|
+
"value": {
|
|
30
|
+
"type": "string",
|
|
31
|
+
"default": "''",
|
|
32
|
+
"description": "编辑器代码内容(**既是初始值又是受控通道**);src/CodeEditor/index.tsx:253 useEffect 监听 value 变化 → snackClass.setValue 同步;**无独立 defaultValue prop** — 不受控写法:value={initialCode} 父不维护 state;受控写法:父维护 state + onChange 中 setState"
|
|
33
|
+
},
|
|
34
|
+
"editorLanguage": {
|
|
35
|
+
"type": "'html' | 'xml' | 'javascript' | 'css' | 'less' | 'scss' | 'json' | 'typescript' | 'java' | 'mysql' | 'go' | 'shell' | 'python' | 'c' | string",
|
|
36
|
+
"values": ["plaintext", "html", "xml", "javascript", "css", "less", "scss", "json", "typescript", "java", "mysql", "go", "shell", "python", "c"],
|
|
37
|
+
"default": "javascript",
|
|
38
|
+
"seeAlso": "language (i18n 字典 — 极易混淆,务必区分)",
|
|
39
|
+
"description": "编辑器语言(真实代码 mode);src/CodeEditor/index.tsx:127。注意:这是真实编辑器语言 prop,**不是** `language` — `language` 是 i18n 字典对象,二者勿混。**业务包装组件场景**:若包装层 Props 接口用 `language: string` 命名,内部必须 `<CodeEditor editorLanguage={props.language} />` 显式映射,禁止直接 `<CodeEditor language={props.language} />`(类型不匹配 + 运行时无高亮)"
|
|
40
|
+
},
|
|
41
|
+
"language": {
|
|
42
|
+
"type": "{ [name: string]: { [name: string]: any } }",
|
|
43
|
+
"seeAlso": "editorLanguage (代码语言 — 极易混淆,务必区分)",
|
|
44
|
+
"description": "国际化字典(i18n 多语 UI 文案);src/CodeEditor/index.tsx:153。R18 sub-agent 100% 把这个当 editorLanguage 用 → 已通过此条 desc 明确区分。类型为**对象**,若误传字符串(如 `language=\"typescript\"`)tsc 会报错"
|
|
45
|
+
},
|
|
46
|
+
"theme": {
|
|
47
|
+
"type": "enum",
|
|
48
|
+
"values": [
|
|
49
|
+
"vs-dark",
|
|
50
|
+
"vs-light"
|
|
51
|
+
],
|
|
52
|
+
"default": "vs-light",
|
|
53
|
+
"description": "主题"
|
|
54
|
+
},
|
|
55
|
+
"onChange": {
|
|
56
|
+
"type": "(val: string) => void",
|
|
57
|
+
"description": "代码内容改变回调(**单参签名,不暴露 Monaco event 第二参** — src/CodeEditor/index.tsx:343 onChangeCom 只透传 val)"
|
|
58
|
+
},
|
|
59
|
+
"onChangeLanguage": {
|
|
60
|
+
"type": "(val: string) => void",
|
|
61
|
+
"description": "编辑器语言切换回调"
|
|
62
|
+
},
|
|
63
|
+
"onMounted": {
|
|
64
|
+
"type": "(snackClass: CodeEditorSnackClassProps) => void",
|
|
65
|
+
"description": "编辑器加载完成回调(只触发一次);snackClass 暴露 editor / setValue / setDisabled / formatDocument / insertCode 等动态方法"
|
|
66
|
+
},
|
|
67
|
+
"monacoEditorProps": {
|
|
68
|
+
"type": "Record<string, any>",
|
|
69
|
+
"description": "Monaco Editor 原生 props 复写;**真实 prop 名是 monacoEditorProps 不是 options**;只读场景可用 monacoEditorProps={{options:{readOnly:true}}},但 disabled 已覆盖常见整体只读"
|
|
70
|
+
},
|
|
71
|
+
"width": {
|
|
72
|
+
"type": "string",
|
|
73
|
+
"default": "100%",
|
|
74
|
+
"description": "宽(默认 100% → 父容器无显式尺寸时编辑器渲染为 0 × 0 不可见;demo 必须 `<div style={{width,height}}>` 包裹)"
|
|
75
|
+
},
|
|
76
|
+
"height": {
|
|
77
|
+
"type": "string",
|
|
78
|
+
"default": "100%",
|
|
79
|
+
"description": "高(默认 100%;同 width 注意事项)"
|
|
80
|
+
},
|
|
81
|
+
"disabled": {
|
|
82
|
+
"type": "boolean",
|
|
83
|
+
"default": "false",
|
|
84
|
+
"description": "禁用 / 整体只读(**无独立 readOnly prop;disabled 即官方只读入口**);src/CodeEditor/index.tsx:257 useEffect setDisabled 同步。**onChange 在 disabled 场景**:TS 类型上 onChange 仍为可选(不传不会 tsc 报错),但为表达\"明确不期望变更\"建议显式 `onChange={() => undefined}` 占位"
|
|
85
|
+
},
|
|
86
|
+
"codeSnippet": {
|
|
87
|
+
"type": "CodeSnippetProps[]",
|
|
88
|
+
"itemSchema": {
|
|
89
|
+
"label": { "type": "string", "description": "片段显示名" },
|
|
90
|
+
"insertCode": { "type": "string", "description": "插入的代码文本" },
|
|
91
|
+
"codePos": { "type": "object", "description": "插入位置 { startLineNumber, startColumn, endLineNumber, endColumn }" }
|
|
92
|
+
},
|
|
93
|
+
"description": "代码片段列表;CodeSnippetProps = { label?: string; insertCode?: string; codePos?: CodeSnippetPosProps; [name: string]: any }"
|
|
94
|
+
},
|
|
95
|
+
"suggestions": {
|
|
96
|
+
"type": "SuggestionsPorps[]",
|
|
97
|
+
"itemSchema": {
|
|
98
|
+
"label": { "type": "string", "required": true, "description": "提示显示文本" },
|
|
99
|
+
"kind": { "type": "CompletionItemKind (enum number)", "description": "提示前图标类型(0=Method, 1=Function, 17=Keyword, 27=Snippet 等枚举数字)" },
|
|
100
|
+
"insertText": { "type": "string", "description": "选中后插入的文本(默认同 label)" },
|
|
101
|
+
"detail": { "type": "string", "description": "提示内容后的说明文字" }
|
|
102
|
+
},
|
|
103
|
+
"description": "代码补全提示项;SuggestionsPorps = { label: string; kind?: CompletionItemKind; insertText?: string; detail?: string }"
|
|
104
|
+
},
|
|
105
|
+
"topRightRender": {
|
|
106
|
+
"type": "ReactNode",
|
|
107
|
+
"description": "导航右边自定义渲染(可放按钮等)"
|
|
108
|
+
},
|
|
109
|
+
"help": {
|
|
110
|
+
"type": "ReactNode",
|
|
111
|
+
"description": "帮助内容"
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
"do": [
|
|
115
|
+
"用于复杂配置编辑或代码展示——轻量输入用 TextField,CodeEditor 有较重的 Monaco 加载成本",
|
|
116
|
+
"父容器必须设置明确的宽高(width/height 默认 100%,父容器无尺寸时编辑器渲染为 0×0 不可见)",
|
|
117
|
+
"需要命令式控制(插入代码/格式化/设值):通过 onMounted 获取 snackClass 实例(含 setValue/formatDocument/insertCode 等方法)",
|
|
118
|
+
"区分 editorLanguage(代码高亮语言,字符串如 'json')和 language(i18n 字典对象)——两者极易混淆"
|
|
119
|
+
],
|
|
120
|
+
"dont": [
|
|
121
|
+
"在简单文本输入中使用 CodeEditor(改用 TextField/TextArea)",
|
|
122
|
+
"把 language prop 当 editorLanguage 用——language 是 i18n 字典对象,传字符串会 tsc 报类型错误 + 无高亮",
|
|
123
|
+
"未给父容器设置固定尺寸就使用 100% 宽高——父容器塌陷时编辑器不可见",
|
|
124
|
+
"加载超大文件(>1MB)——Monaco 渲染性能下降明显"
|
|
125
|
+
],
|
|
126
|
+
"events": {
|
|
127
|
+
"onChange": {
|
|
128
|
+
"signature": "(val: string) => void",
|
|
129
|
+
"asyncSupported": false,
|
|
130
|
+
"examples": [
|
|
131
|
+
"实时同步编辑器内容:<CodeEditor onChange={(val) => setCode(val)} />",
|
|
132
|
+
"onChange 只传 val(字符串),不暴露 Monaco 原生 event 第二参数——src/CodeEditor/index.tsx:343 onChangeCom 只透传 val",
|
|
133
|
+
"disabled 模式下不触发 onChange(snackClass.setDisabled 后编辑器变只读)"
|
|
134
|
+
],
|
|
135
|
+
"commonMistakes": [
|
|
136
|
+
"假设 onChange 签名类似 Monaco 原生的 (value, event) => void——para-ui CodeEditor 只透传 val,无第二参数",
|
|
137
|
+
"disabled=true 时仍期望 onChange 触发——disabled 后编辑器整体只读,onChange 不会被调用",
|
|
138
|
+
"与 language 混淆:传 onChange 时以为可以用 language prop 设语言——language 是 i18n,代码语言用 editorLanguage"
|
|
139
|
+
]
|
|
140
|
+
},
|
|
141
|
+
"onChangeLanguage": {
|
|
142
|
+
"signature": "(val: string) => void",
|
|
143
|
+
"asyncSupported": false,
|
|
144
|
+
"examples": [
|
|
145
|
+
"监听用户切换语言:<CodeEditor onChangeLanguage={(lang) => console.log('切换到', lang)} />",
|
|
146
|
+
"与 onChange 独立触发,语言切换不触发 onChange",
|
|
147
|
+
"隐藏语言下拉时(hideSelectLanguage=true)此回调永不触发"
|
|
148
|
+
],
|
|
149
|
+
"commonMistakes": [
|
|
150
|
+
"期望 onChangeLanguage 在 editorLanguage prop 变化时触发——只在用户操作下拉框时触发,外部 prop 变化不触发",
|
|
151
|
+
"hideSelectLanguage=true 后仍期望 onChangeLanguage 能用——下拉框隐藏后用户无法触发语言切换"
|
|
152
|
+
]
|
|
153
|
+
},
|
|
154
|
+
"onMounted": {
|
|
155
|
+
"signature": "(snackClass: CodeEditorSnackClassProps) => void",
|
|
156
|
+
"asyncSupported": false,
|
|
157
|
+
"examples": [
|
|
158
|
+
"获取实例后命令式操作:onMounted={(snack) => { snackRef.current = snack; snack.setValue('// 初始代码'); }}",
|
|
159
|
+
"onMounted 只触发一次(组件挂载 + Monaco 初始化完毕后);ref 后续可调 setValue/formatDocument/insertCode",
|
|
160
|
+
"snackClass 暴露的方法:setValue(val)、setDisabled(bool)、formatDocument()、insertCode(text, pos?)、updateSnackModules(key, val)"
|
|
161
|
+
],
|
|
162
|
+
"commonMistakes": [
|
|
163
|
+
"在 onMounted 之前就调 snackRef.current.setValue——Monaco 未初始化完毕时 snackClass 为 undefined",
|
|
164
|
+
"每次 value prop 变化都调 snackClass.setValue——value prop 已自动同步,双写会导致光标跳回行首"
|
|
165
|
+
]
|
|
166
|
+
}
|
|
167
|
+
},
|
|
168
|
+
"typescriptPitfalls": [
|
|
169
|
+
{
|
|
170
|
+
"issue": "language prop 是 i18n 字典对象,不是代码语言字符串,传字符串会 tsc 报错",
|
|
171
|
+
"wrong": "<CodeEditor language=\"typescript\" /> // tsc 报 Type 'string' is not assignable to type 'object'",
|
|
172
|
+
"right": "<CodeEditor editorLanguage=\"typescript\" /> // editorLanguage 是代码高亮语言"
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
"issue": "monacoEditorProps 的真实 prop 名是 monacoEditorProps,不是 options 或 editorOptions",
|
|
176
|
+
"wrong": "<CodeEditor options={{ readOnly: true }} /> // 无效,options 不是 CodeEditorProps 字段",
|
|
177
|
+
"right": "<CodeEditor monacoEditorProps={{ readOnly: true }} /> // 复写 Monaco Editor 原生 props"
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
"issue": "父容器无明确尺寸时 width/height='100%' 导致编辑器不可见",
|
|
181
|
+
"wrong": "// 父容器无高度:\n<div><CodeEditor /></div> // 编辑器渲染为 0×0,页面看不到",
|
|
182
|
+
"right": "<div style={{ width: 800, height: 400 }}><CodeEditor /></div> // 父容器必须有明确尺寸"
|
|
183
|
+
}
|
|
184
|
+
],
|
|
185
|
+
"mapping": {
|
|
186
|
+
"realComponent": "CodeEditor",
|
|
187
|
+
"adapter": null
|
|
188
|
+
}
|
|
189
|
+
}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Collapse",
|
|
3
|
+
"category": "Data Display",
|
|
4
|
+
"description": "折叠面板,可以折叠/展开的内容区域",
|
|
5
|
+
"semantic": {
|
|
6
|
+
"intent": [
|
|
7
|
+
"收纳内容",
|
|
8
|
+
"分块展示",
|
|
9
|
+
"节省空间"
|
|
10
|
+
],
|
|
11
|
+
"useCases": [
|
|
12
|
+
"常见问题 (FAQ)",
|
|
13
|
+
"复杂表单分组",
|
|
14
|
+
"信息详情"
|
|
15
|
+
],
|
|
16
|
+
"riskLevel": "low"
|
|
17
|
+
},
|
|
18
|
+
"variants": {
|
|
19
|
+
"default": {
|
|
20
|
+
"meaning": "标准折叠面板"
|
|
21
|
+
},
|
|
22
|
+
"ghost": {
|
|
23
|
+
"meaning": "无边框模式"
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
"states": [
|
|
27
|
+
"active",
|
|
28
|
+
"disabled"
|
|
29
|
+
],
|
|
30
|
+
"idealProps": {
|
|
31
|
+
"activeKey": {
|
|
32
|
+
"type": "string | number | Array<string | number>",
|
|
33
|
+
"description": "当前激活面板的 key。accordion=true 时传 string/number;accordion=false(默认)时传数组(多面板同时展开)"
|
|
34
|
+
},
|
|
35
|
+
"defaultActiveKey": {
|
|
36
|
+
"type": "string | number | Array<string | number>",
|
|
37
|
+
"description": "非受控模式初始展开面板 key。同 activeKey 类型规则"
|
|
38
|
+
},
|
|
39
|
+
"accordion": {
|
|
40
|
+
"type": "boolean",
|
|
41
|
+
"default": false,
|
|
42
|
+
"description": "手风琴模式:true 时同时只展开一个面板,点击已展开面板会收起所有面板,onChange 收到空字符串"
|
|
43
|
+
},
|
|
44
|
+
"onChange": {
|
|
45
|
+
"type": "(key: string | string[]) => void",
|
|
46
|
+
"description": "切换回调:accordion=true 时传 string(被展开 key 或空字符串表示全收起);accordion=false 时传 string[](当前展开 key 集合)"
|
|
47
|
+
},
|
|
48
|
+
"expandIconPosition": {
|
|
49
|
+
"type": "'left' | 'right'",
|
|
50
|
+
"values": ["left", "right"],
|
|
51
|
+
"default": "left",
|
|
52
|
+
"description": "切换图标位置"
|
|
53
|
+
},
|
|
54
|
+
"expandIcon": {
|
|
55
|
+
"type": "(panelProps: PanelProps) => ReactNode",
|
|
56
|
+
"description": "自定义切换图标"
|
|
57
|
+
},
|
|
58
|
+
"children": {
|
|
59
|
+
"type": "Collapse.Panel[]",
|
|
60
|
+
"description": "Collapse 用 <Collapse><Collapse.Panel header key>content</Collapse.Panel></Collapse> 复合子组件风格(非 items 数组)。const { Panel } = Collapse 后写 Panel"
|
|
61
|
+
},
|
|
62
|
+
"collapsible": {
|
|
63
|
+
"type": "'header' | 'disabled'",
|
|
64
|
+
"description": "所有子面板的折叠触发方式(src/Collapse/index.tsx:30 interface 实证):'header' 点击 header 区域触发;'disabled' 禁用所有面板折叠(单个 Panel 可通过 Panel.collapsible 覆盖)"
|
|
65
|
+
},
|
|
66
|
+
"destroyInactivePanel": {
|
|
67
|
+
"type": "boolean",
|
|
68
|
+
"default": false,
|
|
69
|
+
"description": "销毁折叠隐藏的面板 DOM(src/Collapse/index.tsx:32 interface 实证)。true 时折叠的面板内容从 DOM 移除(节省内存);false 时保留 DOM(切换速度更快)。与 Panel.forceRender 互斥:forceRender=true 强制渲染优先级高于 destroyInactivePanel"
|
|
70
|
+
},
|
|
71
|
+
"className": {
|
|
72
|
+
"type": "string",
|
|
73
|
+
"description": "自定义类名(src/Collapse/index.tsx:20,68,101 实证,追加到根容器 className)"
|
|
74
|
+
},
|
|
75
|
+
"style": {
|
|
76
|
+
"type": "React.CSSProperties",
|
|
77
|
+
"description": "自定义样式(src/Collapse/index.tsx:22 interface 声明,透传到根容器)"
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
"subComponents": {
|
|
81
|
+
"Panel": {
|
|
82
|
+
"import": "const { Panel } = Collapse",
|
|
83
|
+
"props": {
|
|
84
|
+
"key": {
|
|
85
|
+
"type": "string | number",
|
|
86
|
+
"required": true,
|
|
87
|
+
"description": "对应 activeKey 的标识"
|
|
88
|
+
},
|
|
89
|
+
"header": {
|
|
90
|
+
"type": "ReactNode",
|
|
91
|
+
"required": true,
|
|
92
|
+
"description": "面板头文本/节点(不是 label 字段)"
|
|
93
|
+
},
|
|
94
|
+
"children": {
|
|
95
|
+
"type": "ReactNode",
|
|
96
|
+
"description": "展开后显示的内容(不是 content 字段)"
|
|
97
|
+
},
|
|
98
|
+
"collapsible": {
|
|
99
|
+
"type": "'header' | 'disabled'",
|
|
100
|
+
"description": "该面板的折叠触发方式(src/Collapse/index.tsx:31,60 实证):'disabled' 时该面板不可展开/收起。**推荐用此 prop 替代已 deprecated 的 `disabled` prop**(src 内部将 disabled=true 自动转换为 collapsible='disabled',见 src/Collapse/index.tsx:76-81)"
|
|
101
|
+
},
|
|
102
|
+
"disabled": {
|
|
103
|
+
"type": "boolean",
|
|
104
|
+
"description": "⚠️ **@deprecated — 改用 `collapsible='disabled'`(src/Collapse/index.tsx:55 注释实证:`@deprecated Use collapsible=\"disabled\" instead`)**。仍可用,src 内部自动转换为 collapsible='disabled'"
|
|
105
|
+
},
|
|
106
|
+
"extra": {
|
|
107
|
+
"type": "ReactNode",
|
|
108
|
+
"description": "面板头右上角自定义内容"
|
|
109
|
+
},
|
|
110
|
+
"forceRender": {
|
|
111
|
+
"type": "boolean",
|
|
112
|
+
"default": false,
|
|
113
|
+
"description": "true 时被折叠面板的内容也始终渲染(用于隐藏内容需保活)"
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
"do": [
|
|
119
|
+
"整理复杂或次要信息——主要场景用 FAQ / 表单分组 / 详情展开",
|
|
120
|
+
"Panel 的 key 建议用稳定的字符串 ID,避免用数组下标(下标变化会导致状态错乱)",
|
|
121
|
+
"需要禁用单个面板:用 Panel.collapsible='disabled' 而非 Panel.disabled(disabled 已标记 @deprecated)",
|
|
122
|
+
"手风琴模式(accordion=true):onChange 的参数是 string(展开项 key 或空字符串),非数组"
|
|
123
|
+
],
|
|
124
|
+
"dont": [
|
|
125
|
+
"Collapse 嵌套过深(2层以上会产生严重的视觉噪音,改用 Table 展开行或 Drawer)",
|
|
126
|
+
"核心关键信息隐藏在折叠内容中(除非空间极度受限)",
|
|
127
|
+
"混淆 accordion 模式下 onChange 返回类型——accordion=true 时是 string,accordion=false 时是 string[]"
|
|
128
|
+
],
|
|
129
|
+
"events": {
|
|
130
|
+
"onChange": {
|
|
131
|
+
"signature": "(key: string | string[]) => void",
|
|
132
|
+
"asyncSupported": false,
|
|
133
|
+
"examples": [
|
|
134
|
+
"受控模式:const [activeKey, setActiveKey] = useState<string[]>([]); <Collapse activeKey={activeKey} onChange={(k) => setActiveKey(k as string[])} />",
|
|
135
|
+
"手风琴模式:onChange 收到 string(被展开项的 key),全部收起时收到空字符串 ''",
|
|
136
|
+
"非手风琴模式:onChange 收到 string[](当前所有展开面板的 key 集合)"
|
|
137
|
+
],
|
|
138
|
+
"commonMistakes": [
|
|
139
|
+
"accordion=true 时把 onChange 的参数当 string[] 处理——手风琴模式下是 string,不是数组",
|
|
140
|
+
"非受控模式下(只传 defaultActiveKey)同时监听 onChange 期望能控制展开状态——defaultActiveKey 是非受控初始值,内部维护状态,受控需改传 activeKey",
|
|
141
|
+
"期望 onChange 在初始化时触发一次——只有用户操作时触发,挂载不触发"
|
|
142
|
+
]
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
"typescriptPitfalls": [
|
|
146
|
+
{
|
|
147
|
+
"issue": "accordion 模式下 onChange 参数类型是 string 不是 string[],混用会运行时报错",
|
|
148
|
+
"wrong": "// accordion=true 时:\nonChange={(keys) => setActiveKey(keys)} // keys 实际是 string,.join 等数组方法会报错",
|
|
149
|
+
"right": "// accordion 模式:\n<Collapse accordion onChange={(key) => setActiveKey(key as string)} />"
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
"issue": "Panel.disabled 已 @deprecated,严格 TS 配置下会产生警告,改用 collapsible='disabled'",
|
|
153
|
+
"wrong": "<Collapse.Panel key='1' header='标题' disabled>内容</Collapse.Panel>",
|
|
154
|
+
"right": "<Collapse.Panel key='1' header='标题' collapsible='disabled'>内容</Collapse.Panel>"
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
"issue": "activeKey 类型需要与 accordion 模式匹配,混用 string/string[] 会导致类型错误",
|
|
158
|
+
"wrong": "// accordion=true 时传数组:\n<Collapse accordion activeKey={['panel-1']} /> // TS 警告且行为不符合预期",
|
|
159
|
+
"right": "// accordion 时传 string,非 accordion 时传 string[]:\n<Collapse accordion activeKey={activeKeyStr} onChange={(k) => setActiveKeyStr(k as string)} />"
|
|
160
|
+
}
|
|
161
|
+
],
|
|
162
|
+
"mapping": {
|
|
163
|
+
"realComponent": "Collapse",
|
|
164
|
+
"adapter": null
|
|
165
|
+
}
|
|
166
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "CollapseBox",
|
|
3
|
+
"category": "Layout",
|
|
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
|
+
"expanded",
|
|
24
|
+
"collapsed"
|
|
25
|
+
],
|
|
26
|
+
"idealProps": {
|
|
27
|
+
"in": {
|
|
28
|
+
"type": "boolean",
|
|
29
|
+
"default": false,
|
|
30
|
+
"description": "【核心受控 prop】控制展开/收起状态;true=展开渲染 children,false=收起;父层需用 useState<boolean> 维护此状态(R21 §5.1 4 high 揭示此 prop 必须在 docs 显式列出)"
|
|
31
|
+
},
|
|
32
|
+
"children": {
|
|
33
|
+
"type": "React.ReactNode",
|
|
34
|
+
"description": "折叠区域内容;接受任意 ReactNode(多个并列元素亦可,内部已包 wrapper div 测高度)"
|
|
35
|
+
},
|
|
36
|
+
"collapsedHeight": {
|
|
37
|
+
"type": "string | number",
|
|
38
|
+
"default": "0px",
|
|
39
|
+
"description": "收起状态最小高度;默认 0px 等同完全隐藏;常用 '60px' 实现部分预览;与 unmountOnExit=true 同传时失效(子树被卸载)"
|
|
40
|
+
},
|
|
41
|
+
"unmountOnExit": {
|
|
42
|
+
"type": "boolean",
|
|
43
|
+
"default": false,
|
|
44
|
+
"description": "收起时是否卸载子节点(true=卸载,false=保留 DOM);与 collapsedHeight 互斥:true 时 collapsedHeight 无效"
|
|
45
|
+
},
|
|
46
|
+
"timeout": {
|
|
47
|
+
"type": "'auto' | number | { appear?: number; enter?: number; exit?: number }",
|
|
48
|
+
"default": "'auto'",
|
|
49
|
+
"description": "动画时长(ms);'auto' 按内容高度计算;number 时 enter/exit 共用;{enter, exit} 分别指定;不支持 'fast'/'slow' 字符串关键字"
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
"do": [
|
|
53
|
+
"用于需要平滑展开/收起动画的场景,通过 `in` prop 控制展开状态(父组件用 useState<boolean> 维护)",
|
|
54
|
+
"设置 collapsedHeight(如 '60px')实现内容预览折叠效果,同时保持收起时不完全消失",
|
|
55
|
+
"需要节省性能时设置 unmountOnExit=true,收起时卸载子树(但与 collapsedHeight 互斥——unmountOnExit=true 时 collapsedHeight 无效)"
|
|
56
|
+
],
|
|
57
|
+
"dont": [
|
|
58
|
+
"同时设置 unmountOnExit=true 和 collapsedHeight——两者互斥,unmountOnExit=true 时子树卸载,collapsedHeight 无效",
|
|
59
|
+
"频繁(>10次/秒)切换 in 状态——动画计时器不会被提前中断,快速切换会产生视觉抖动",
|
|
60
|
+
"在不需要动画的场景使用(直接用 CSS display:none 或 conditional render 性能更好)"
|
|
61
|
+
],
|
|
62
|
+
"events": {},
|
|
63
|
+
"typescriptPitfalls": [
|
|
64
|
+
{
|
|
65
|
+
"issue": "in prop 是关键字,需要用引号或通过变量传入;TypeScript 下直接写 in= 可能触发解析问题",
|
|
66
|
+
"wrong": "// 变量名与关键字冲突:\nconst in = true; // TS 语法错误,in 是保留关键字",
|
|
67
|
+
"right": "// 用非关键字变量名:\nconst isOpen = true; <CollapseBox in={isOpen}>"
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"issue": "timeout 的对象形式类型是 { appear?: number; enter?: number; exit?: number },不支持字符串关键字",
|
|
71
|
+
"wrong": "<CollapseBox timeout='fast' /> // TS 报错:'fast' 不在联合类型中",
|
|
72
|
+
"right": "<CollapseBox timeout='auto' /> // 只有 'auto' 是字符串关键字;具体毫秒用 number"
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"issue": "collapsedHeight 同时接受 string 和 number,number 类型会被转为带 px 后缀的字符串",
|
|
76
|
+
"wrong": "// 期望传百分比:\ncollapsedHeight={50} // 解析为 '50px' 而非 '50%'",
|
|
77
|
+
"right": "// 百分比需传字符串:\ncollapsedHeight='50%' // 或 collapsedHeight='60px'"
|
|
78
|
+
}
|
|
79
|
+
],
|
|
80
|
+
"mapping": {
|
|
81
|
+
"realComponent": "CollapseBox",
|
|
82
|
+
"adapter": null
|
|
83
|
+
}
|
|
84
|
+
}
|