@para-ui/core 5.0.0-beta.9 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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/ExpressionInput/component.json +79 -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/batchEdit/index.js +1 -1
- 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 +25 -25
- 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/ExpressionInput/HighlightOverlay.d.ts +8 -0
- package/es/ExpressionInput/HighlightOverlay.js +27 -0
- package/es/ExpressionInput/Popup.d.ts +19 -0
- package/es/ExpressionInput/Popup.js +93 -0
- package/es/ExpressionInput/component.json +79 -0
- package/es/ExpressionInput/detectChainAtCursor.d.ts +17 -0
- package/es/ExpressionInput/detectChainAtCursor.js +31 -0
- package/es/ExpressionInput/filterCandidatesByPartial.d.ts +2 -0
- package/es/ExpressionInput/filterCandidatesByPartial.js +15 -0
- package/es/ExpressionInput/highlightSegments.d.ts +9 -0
- package/es/ExpressionInput/highlightSegments.js +14 -0
- package/es/ExpressionInput/index.css +1 -0
- package/es/ExpressionInput/index.d.ts +5 -0
- package/es/ExpressionInput/index.js +178 -0
- package/es/ExpressionInput/interface.d.ts +52 -0
- package/es/ExpressionInput/isExpressionValue.d.ts +5 -0
- package/es/ExpressionInput/isExpressionValue.js +18 -0
- package/es/ExpressionInput/lang/en_US.d.ts +4 -0
- package/es/ExpressionInput/lang/en_US.js +7 -0
- package/es/ExpressionInput/lang/index.d.ts +9 -0
- package/es/ExpressionInput/lang/index.js +10 -0
- package/es/ExpressionInput/lang/zh_CN.d.ts +4 -0
- package/es/ExpressionInput/lang/zh_CN.js +7 -0
- package/es/ExpressionInput/style/css.js +1 -0
- package/es/ExpressionInput/style/index.css +1 -0
- package/es/ExpressionInput/style/index.js +1 -0
- package/es/ExpressionInput/useExpressionInput.d.ts +26 -0
- package/es/ExpressionInput/useExpressionInput.js +59 -0
- 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/InputCode/index.js +1 -1
- package/es/InputLang/component.json +205 -0
- package/es/InputLang/index.js +2 -2
- package/es/InputNumber/component.json +162 -0
- package/es/InputNumber/index.d.ts +13 -7
- package/es/InputNumber/index.js +152 -144
- 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 +19 -19
- 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.d.ts +15 -7
- package/es/RangeInput/index.js +120 -103
- 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.d.ts +11 -8
- package/es/Select/index.js +441 -438
- package/es/SelectInput/component.json +184 -0
- package/es/SelectInput/index.d.ts +4 -4
- package/es/SelectInput/index.js +8 -8
- 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 -6
- package/es/_virtual/index.js +5 -3
- package/es/_virtual/index2.js +2 -5
- package/es/index.d.ts +4 -0
- package/es/index.js +152 -150
- package/es/locale/en-US.d.ts +3 -0
- package/es/locale/en-US.js +3 -0
- 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 +3 -0
- package/es/locale/zh-CN.js +3 -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/ExpressionInput/HighlightOverlay.d.ts +8 -0
- package/lib/ExpressionInput/HighlightOverlay.js +2 -0
- package/lib/ExpressionInput/Popup.d.ts +19 -0
- package/lib/ExpressionInput/Popup.js +2 -0
- package/lib/ExpressionInput/component.json +79 -0
- package/lib/ExpressionInput/detectChainAtCursor.d.ts +17 -0
- package/lib/ExpressionInput/detectChainAtCursor.js +2 -0
- package/lib/ExpressionInput/filterCandidatesByPartial.d.ts +2 -0
- package/lib/ExpressionInput/filterCandidatesByPartial.js +2 -0
- package/lib/ExpressionInput/highlightSegments.d.ts +9 -0
- package/lib/ExpressionInput/highlightSegments.js +2 -0
- package/lib/ExpressionInput/index.css +1 -0
- package/lib/ExpressionInput/index.d.ts +5 -0
- package/lib/ExpressionInput/index.js +2 -0
- package/lib/ExpressionInput/interface.d.ts +52 -0
- package/lib/ExpressionInput/isExpressionValue.d.ts +5 -0
- package/lib/ExpressionInput/isExpressionValue.js +2 -0
- package/lib/ExpressionInput/lang/en_US.d.ts +4 -0
- package/lib/ExpressionInput/lang/en_US.js +2 -0
- package/lib/ExpressionInput/lang/index.d.ts +9 -0
- package/lib/ExpressionInput/lang/index.js +2 -0
- package/lib/ExpressionInput/lang/zh_CN.d.ts +4 -0
- package/lib/ExpressionInput/lang/zh_CN.js +2 -0
- package/lib/ExpressionInput/style/css.js +1 -0
- package/lib/ExpressionInput/style/index.css +1 -0
- package/lib/ExpressionInput/style/index.js +1 -0
- package/lib/ExpressionInput/useExpressionInput.d.ts +26 -0
- package/lib/ExpressionInput/useExpressionInput.js +2 -0
- 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/InputNumber/index.d.ts +13 -7
- package/lib/InputNumber/index.js +1 -1
- 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.d.ts +15 -7
- 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.d.ts +11 -8
- package/lib/Select/index.js +1 -1
- package/lib/SelectInput/component.json +184 -0
- package/lib/SelectInput/index.d.ts +4 -4
- package/lib/SelectInput/index.js +1 -1
- 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 -6
- package/lib/_virtual/index.js +1 -1
- package/lib/_virtual/index2.js +1 -1
- package/lib/index.d.ts +4 -0
- package/lib/index.js +1 -1
- package/lib/locale/en-US.d.ts +3 -0
- package/lib/locale/en-US.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 +3 -0
- package/lib/locale/zh-CN.js +1 -1
- 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 +24 -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/{InputCode → CodeEditor}/index.css +0 -0
- /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,126 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Label",
|
|
3
|
+
"category": "Data Display",
|
|
4
|
+
"description": "表单标签,显示字段标题,支持必填红星、帮助提示(icon 或下划线两种样式)、自定义标题后缀",
|
|
5
|
+
"semantic": {
|
|
6
|
+
"intent": [
|
|
7
|
+
"字段标题",
|
|
8
|
+
"表单标签"
|
|
9
|
+
],
|
|
10
|
+
"useCases": [
|
|
11
|
+
"表单字段",
|
|
12
|
+
"配置项",
|
|
13
|
+
"详情展示"
|
|
14
|
+
],
|
|
15
|
+
"riskLevel": "low"
|
|
16
|
+
},
|
|
17
|
+
"variants": {
|
|
18
|
+
"icon": {
|
|
19
|
+
"meaning": "tooltipType='icon' — label 后渲染问号图标,hover 显示 tooltip"
|
|
20
|
+
},
|
|
21
|
+
"line": {
|
|
22
|
+
"meaning": "tooltipType='line' — label 文字加下划线,hover 整个 label 显示 tooltip"
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"states": [
|
|
26
|
+
"default",
|
|
27
|
+
"required"
|
|
28
|
+
],
|
|
29
|
+
"idealProps": {
|
|
30
|
+
"label": {
|
|
31
|
+
"type": "ReactNode",
|
|
32
|
+
"description": "标题文案;可传字符串或 ReactNode;不传时只渲染必填红星/tooltip 区域"
|
|
33
|
+
},
|
|
34
|
+
"required": {
|
|
35
|
+
"type": "boolean",
|
|
36
|
+
"default": false,
|
|
37
|
+
"description": "是否必填;true 时在 label 后渲染 `<span class='label-required'>*</span>` 红星"
|
|
38
|
+
},
|
|
39
|
+
"tooltip": {
|
|
40
|
+
"type": "ReactNode",
|
|
41
|
+
"description": "帮助提示内容;tooltipType='icon' 时渲染 Help 图标;tooltipType='line' 时整个 label 加下划线触发。**不传时不渲染 tooltip 区域**"
|
|
42
|
+
},
|
|
43
|
+
"tooltipType": {
|
|
44
|
+
"type": "enum",
|
|
45
|
+
"values": [
|
|
46
|
+
"icon",
|
|
47
|
+
"line"
|
|
48
|
+
],
|
|
49
|
+
"default": "icon",
|
|
50
|
+
"description": "提示类型:icon=问号图标(默认),line=label 文字下划线"
|
|
51
|
+
},
|
|
52
|
+
"tooltipIcon": {
|
|
53
|
+
"type": "ReactNode",
|
|
54
|
+
"description": "自定义 tooltip 触发图标(tooltipType='icon' 时生效);不传时使用 Help 组件默认问号图标"
|
|
55
|
+
},
|
|
56
|
+
"labelSign": {
|
|
57
|
+
"type": "ReactNode",
|
|
58
|
+
"description": "标题旁的次级标记,渲染在必填红星之后(如 '(可选)' '(Beta)' 等短文本)"
|
|
59
|
+
},
|
|
60
|
+
"placement": {
|
|
61
|
+
"type": "enum",
|
|
62
|
+
"values": ["top", "top-start", "top-end", "bottom", "bottom-start", "bottom-end", "left", "left-start", "left-end", "right", "right-start", "right-end"],
|
|
63
|
+
"default": "top-start",
|
|
64
|
+
"description": "tooltip 弹出方向(透传给底层 Help 组件)"
|
|
65
|
+
},
|
|
66
|
+
"arrow": {
|
|
67
|
+
"type": "boolean",
|
|
68
|
+
"default": true,
|
|
69
|
+
"description": "tooltip 箭头"
|
|
70
|
+
},
|
|
71
|
+
"onClick": {
|
|
72
|
+
"type": "(e: React.MouseEvent<HTMLLabelElement>) => void",
|
|
73
|
+
"description": "点击 label 元素时触发"
|
|
74
|
+
},
|
|
75
|
+
"className": {
|
|
76
|
+
"type": "string",
|
|
77
|
+
"description": "label 容器类名"
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
"do": [
|
|
81
|
+
"为每个表单字段提供清晰的 Label,文案简洁(< 10 字)",
|
|
82
|
+
"必填字段传 required={true} 显示红星",
|
|
83
|
+
"需要字段说明时用 tooltip prop + 选择合适的 tooltipType(icon 更常用,line 适合较长 label)"
|
|
84
|
+
],
|
|
85
|
+
"dont": [
|
|
86
|
+
"Label 过长(> 15 字)——会撑宽表单布局,截断或换行",
|
|
87
|
+
"忽略 Label 的可访问性——for/htmlFor 关联逻辑由外层 FormItem 管理,Label 本身不自动关联"
|
|
88
|
+
],
|
|
89
|
+
"events": {
|
|
90
|
+
"onClick": {
|
|
91
|
+
"signature": "(e: React.MouseEvent<HTMLLabelElement>) => void",
|
|
92
|
+
"asyncSupported": false,
|
|
93
|
+
"examples": [
|
|
94
|
+
"onClick={(e) => console.log('clicked', e.currentTarget.textContent)} — 点击 label 时触发",
|
|
95
|
+
"通常不需要监听 label click——表单字段聚焦由 <label for> 或 FormItem 关联处理",
|
|
96
|
+
"自定义行为:onClick={(e) => { e.preventDefault(); openHelperModal(); }} — 阻止默认并打开详细说明"
|
|
97
|
+
],
|
|
98
|
+
"commonMistakes": [
|
|
99
|
+
"期望 onClick 触发对应输入框聚焦——Label 组件的 <label> 没有 htmlFor 属性,聚焦关联由外层 FormItem 控制",
|
|
100
|
+
"传 onClick 期望阻止 tooltip 弹出——onClick 和 tooltip(hover)是独立行为,onClick 不影响 Tooltip 的 hover 逻辑",
|
|
101
|
+
"期望 label text 点击和 tooltipIcon 点击都触发同一 onClick——tooltipIcon 的点击事件由 Help 组件内部处理(hover),不冒泡到 Label onClick"
|
|
102
|
+
]
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
"typescriptPitfalls": [
|
|
106
|
+
{
|
|
107
|
+
"issue": "tooltip 类型是 ReactNode,但底层 Help 组件要求 NonNullable<ReactNode>,直接传可选字段可能报 TS2322",
|
|
108
|
+
"wrong": "const tip: ReactNode | undefined = getTooltip(); <Label tooltip={tip} /> // 若 tip 推断含 undefined 分支,Help 内部 title 报 TS2322",
|
|
109
|
+
"right": "const tip = getTooltip(); <Label tooltip={tip ?? ''} /> // 用空字符串兜底(空字符串不显示 Tooltip 弹层)"
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
"issue": "LabelProps 通过 extends LabelTooltipProps 继承了 [name: string]: any 索引签名,导致所有额外 prop 被 TS 接受但无效",
|
|
113
|
+
"wrong": "<Label label='姓名' onFocus={handler} /> // TS 不报错(索引签名兜底),但 onFocus 不会触发任何行为",
|
|
114
|
+
"right": "<Label label='姓名' onClick={handler} /> // 只用 LabelProps 实际声明的 onClick prop"
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
"issue": "labelSign 是 ReactNode,不会被 required 的 * 替换——两者独立渲染",
|
|
118
|
+
"wrong": "// 期望 required=true 时 labelSign 文本替换红星\n<Label required label='邮箱' labelSign='(必填)' /> // 实际渲染:邮箱 * (必填)——两者都显示",
|
|
119
|
+
"right": "// 只传 required 控制红星;labelSign 是额外后缀,不替换\n<Label required label='邮箱' /> // 只显示 邮箱 *"
|
|
120
|
+
}
|
|
121
|
+
],
|
|
122
|
+
"mapping": {
|
|
123
|
+
"realComponent": "Label",
|
|
124
|
+
"adapter": null
|
|
125
|
+
}
|
|
126
|
+
}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Loading",
|
|
3
|
+
"category": "Feedback",
|
|
4
|
+
"description": "局部加载遮罩——挂载到父容器内自动覆盖,**不接受 visible / spinning / show 等显隐控制 prop**(由父组件条件渲染决定)",
|
|
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
|
+
},
|
|
23
|
+
"states": [
|
|
24
|
+
"default"
|
|
25
|
+
],
|
|
26
|
+
"idealProps": {
|
|
27
|
+
"opacity": {
|
|
28
|
+
"type": "number",
|
|
29
|
+
"default": 0.7,
|
|
30
|
+
"description": "遮罩半透明度(0–1),值越小遮罩越淡"
|
|
31
|
+
},
|
|
32
|
+
"className": {
|
|
33
|
+
"type": "string",
|
|
34
|
+
"description": "外层类名(DEFECT-001 已实现,src/Loading/index.tsx:13);可用于额外样式覆盖(如 pointer-events 拦截、自定义 z-index)"
|
|
35
|
+
},
|
|
36
|
+
"style": {
|
|
37
|
+
"type": "React.CSSProperties",
|
|
38
|
+
"description": "外层内联样式(DEFECT-001 已实现)"
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"do": [
|
|
42
|
+
"用条件渲染控制是否显示:`{isLoading && <Loading />}`,组件本身不接受显隐 prop",
|
|
43
|
+
"Loading 会**在父容器 inline `style.position` 为空时**自动设为 relative(DEFECT-002,src/Loading/index.tsx:23-29 useEffect 实证);**若父元素已有任何非空 inline position(含 static),useEffect 不会改写**——建议父容器仍显式声明 `position: relative` 避免边界情况",
|
|
44
|
+
"调整 opacity 控制遮罩透明度(默认 0.7)",
|
|
45
|
+
"**需要『拦截父容器内部点击』时**,请额外给 Loading 传 className + CSS pointer-events: auto——src/Loading/index.scss 默认未设置 pointer-events,仅视觉上覆盖白色背景 + z-index:100,**不会主动屏蔽下方元素的点击**。需阻止表单交互场景请在父容器上配合 disabled/pointer-events:none 处理",
|
|
46
|
+
"图片占位场景:**必须同时处理 onLoad 和 onError 两个事件**,否则加载失败时遮罩永留(DEFECT-006:src/Loading 自身不感知图片加载状态,业务侧 isLoading 必须双事件回调清零)"
|
|
47
|
+
],
|
|
48
|
+
"dont": [
|
|
49
|
+
"传 visible / spinning / show / loading 等 prop 试图控制——这些 prop 不存在",
|
|
50
|
+
"试图给 Loading 传 children 来包裹内容——它是兄弟节点定位的纯遮罩,不是 wrap-style",
|
|
51
|
+
"试图传 tip / size / indicator 等 antd 风格 prop——也不存在",
|
|
52
|
+
"假设 Loading 自动拦截下方元素点击/键盘——src 未设 pointer-events,仅视觉遮罩;交互拦截需调用方自行处理"
|
|
53
|
+
],
|
|
54
|
+
"events": {
|
|
55
|
+
"noEvents": {
|
|
56
|
+
"signature": "Loading 是纯展示组件,无事件 prop",
|
|
57
|
+
"asyncSupported": false,
|
|
58
|
+
"examples": [
|
|
59
|
+
"Loading 无自身事件——显隐完全由父组件条件渲染控制: {isLoading && <Loading />}",
|
|
60
|
+
"需要『加载完成』回调:在父组件的 fetch().finally(() => setIsLoading(false)) 里处理,不在 Loading 组件内",
|
|
61
|
+
"需要点击遮罩取消:父组件套一层 onClick div,Loading 用 className 覆盖同区域: <div onClick={cancel} style={{position:'relative'}}><Loading /></div>"
|
|
62
|
+
],
|
|
63
|
+
"commonMistakes": [
|
|
64
|
+
"给 Loading 传 onLoaded/onComplete 期望加载完成回调——Loading 组件无任何事件 prop,所有状态由父组件管理",
|
|
65
|
+
"传 visible={isLoading} 期望控制显隐——prop 不存在,使用条件渲染代替",
|
|
66
|
+
"传 onClick 期望点击遮罩关闭——onClick 会通过 [name: string]: any 索引被接受但不触发任何行为"
|
|
67
|
+
]
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
"typescriptPitfalls": [
|
|
71
|
+
{
|
|
72
|
+
"issue": "Loading 的 LoadingProps 只有 className / style / opacity 三个 prop,传其他 prop 会触发 TS 多余属性检查",
|
|
73
|
+
"wrong": "<Loading visible={isLoading} /> // TS2322: 'visible' does not exist in type LoadingProps",
|
|
74
|
+
"right": "{isLoading && <Loading />} // 用条件渲染而不是 prop 控制显隐"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"issue": "opacity 类型是 number(0-1),传字符串会触发 TS2322",
|
|
78
|
+
"wrong": "<Loading opacity='0.5' /> // TS2322: string not assignable to number",
|
|
79
|
+
"right": "<Loading opacity={0.5} /> // 数字字面量"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"issue": "父容器 position 为 static 时 Loading 定位可能溢出——useEffect 只在 inline style.position 为空时设为 relative,不修改 CSS 类",
|
|
83
|
+
"wrong": "// 父容器通过 CSS 类设置了 position: static(不是 inline style),Loading useEffect 读 inline style 为空,强设 relative\n<div className='static-positioned'><Loading /></div> // 结果 inline style 被设为 relative,可能覆盖意图",
|
|
84
|
+
"right": "<div style={{position: 'relative'}}><Loading /></div> // 显式 inline style position: relative 最保险"
|
|
85
|
+
}
|
|
86
|
+
],
|
|
87
|
+
"mapping": {
|
|
88
|
+
"realComponent": "Loading",
|
|
89
|
+
"adapter": null
|
|
90
|
+
}
|
|
91
|
+
}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Menu",
|
|
3
|
+
"category": "Navigation",
|
|
4
|
+
"description": "为页面和功能提供导航的菜单列表",
|
|
5
|
+
"semantic": {
|
|
6
|
+
"intent": [
|
|
7
|
+
"页面导航",
|
|
8
|
+
"功能索引",
|
|
9
|
+
"模块切换"
|
|
10
|
+
],
|
|
11
|
+
"useCases": [
|
|
12
|
+
"侧边栏导航",
|
|
13
|
+
"顶部菜单",
|
|
14
|
+
"系统功能入口"
|
|
15
|
+
],
|
|
16
|
+
"riskLevel": "normal"
|
|
17
|
+
},
|
|
18
|
+
"variants": {
|
|
19
|
+
"vertical": {
|
|
20
|
+
"meaning": "垂直菜单(侧边)"
|
|
21
|
+
},
|
|
22
|
+
"horizontal": {
|
|
23
|
+
"meaning": "水平菜单(顶部)"
|
|
24
|
+
},
|
|
25
|
+
"inline": {
|
|
26
|
+
"meaning": "内嵌菜单"
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"states": [
|
|
30
|
+
"expanded",
|
|
31
|
+
"collapsed",
|
|
32
|
+
"selected"
|
|
33
|
+
],
|
|
34
|
+
"idealProps": {
|
|
35
|
+
"menuListProps": {
|
|
36
|
+
"type": "MenuListProps",
|
|
37
|
+
"description": "**菜单列表核心配置(src/Menu/index.tsx:19,71-82 实证,src/Menu/interface.ts:67-90 MenuListProps 定义)**。⚠️ **菜单数据源通过此 prop 的 `list` 字段传入,而非顶层 `list` prop**(顶层无 list prop)。MenuListProps 主要字段:`list: MenuChildrenProps[]`(菜单项数组)、`jumpIcon: ReactNode`(菜单分享图标)、`onClickJump: (item) => void`(分享点击回调)、`size`/`color`/`expansion`/`selectMenu`/`onClickMenu`/`shrinkOthers`(由 Menu 顶层 prop 自动下透,一般不需要在此重复传)",
|
|
38
|
+
"objectShape": {
|
|
39
|
+
"list": { "type": "MenuChildrenProps[]", "description": "菜单项数组(MenuChildrenProps 核心字段见下方 subComponents)" },
|
|
40
|
+
"jumpIcon": { "type": "ReactNode", "description": "菜单项右侧分享/跳转图标" },
|
|
41
|
+
"onClickJump": { "type": "(item: MenuChildrenProps) => void", "description": "点击分享图标回调" }
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
"selectMenu": {
|
|
45
|
+
"type": "string",
|
|
46
|
+
"description": "当前选中的菜单 key/path(src/Menu/index.tsx:21,77 实证:向下透传给 VerticalMenuList,与 MenuChildrenProps 的 path 字段比对高亮)"
|
|
47
|
+
},
|
|
48
|
+
"expansion": {
|
|
49
|
+
"type": "boolean",
|
|
50
|
+
"default": true,
|
|
51
|
+
"description": "是否展开菜单(src/Menu/index.tsx:20,31-33 实证:受控,变化后同步到内部 expansionCom state)"
|
|
52
|
+
},
|
|
53
|
+
"color": {
|
|
54
|
+
"type": "enum",
|
|
55
|
+
"values": ["deep", "light"],
|
|
56
|
+
"default": "deep",
|
|
57
|
+
"description": "菜单主题色(src/Menu/interface.ts:12 ColorType 实证:'deep'=深色主题,'light'=浅色主题;透传 CSS 类 paraui-v4-vertical-menu-{color})"
|
|
58
|
+
},
|
|
59
|
+
"size": {
|
|
60
|
+
"type": "enum",
|
|
61
|
+
"values": ["small", "large"],
|
|
62
|
+
"default": "large",
|
|
63
|
+
"description": "菜单尺寸(src/Menu/index.tsx:17,50 实证:控制 CSS 类 paraui-v4-vertical-menu-{size})"
|
|
64
|
+
},
|
|
65
|
+
"onClickMenu": {
|
|
66
|
+
"type": "function",
|
|
67
|
+
"signature": "(item: MenuChildrenProps | false) => void",
|
|
68
|
+
"description": "点击菜单项回调(src/Menu/interface.ts:173-174 MenuProps 实证:参数为点击的 MenuChildrenProps 对象或 false;false 表示点击了非叶子节点的折叠操作)"
|
|
69
|
+
},
|
|
70
|
+
"shrinkOthers": {
|
|
71
|
+
"type": "boolean",
|
|
72
|
+
"default": true,
|
|
73
|
+
"description": "展开一个菜单时自动收起其他展开的同级菜单(src/Menu/index.tsx:26,78 实证,透传给 VerticalMenuList)"
|
|
74
|
+
},
|
|
75
|
+
"logoProps": {
|
|
76
|
+
"type": "LogoProps",
|
|
77
|
+
"objectShape": {
|
|
78
|
+
"expansion": { "type": "boolean", "description": "Logo 展开/收起状态(由 Menu 自动传入,一般不手动传)" },
|
|
79
|
+
"render": { "type": "ReactNode", "description": "自定义 Logo 内容区域" },
|
|
80
|
+
"className": { "type": "string", "description": "Logo 区域自定义 class" }
|
|
81
|
+
},
|
|
82
|
+
"description": "Logo 区域配置(src/Menu/interface.ts:15-22 LogoProps 实证,src/Menu/index.tsx:18,57-66 实证:logoProps 存在时渲染 Logo 子组件)"
|
|
83
|
+
},
|
|
84
|
+
"footerExpansionProps": {
|
|
85
|
+
"type": "FooterExpansionProps",
|
|
86
|
+
"description": "底部展开/收起按钮区域配置(src/Menu/index.tsx:27,87-94 实证,src/Menu/interface.ts:127-145 FooterExpansionProps 定义)。主要字段:`expandIcon: ReactNode`(展开图标)、`shrinkIcon: ReactNode`(收起图标)、`render: ReactNode`(完全自定义底部内容替换默认按钮)、`version: ReactNode`(版本号显示)、`className: string`(底部区域 class)",
|
|
87
|
+
"objectShape": {
|
|
88
|
+
"expandIcon": { "type": "ReactNode", "description": "展开状态图标" },
|
|
89
|
+
"shrinkIcon": { "type": "ReactNode", "description": "收起状态图标" },
|
|
90
|
+
"render": { "type": "ReactNode", "description": "完全自定义底部内容" },
|
|
91
|
+
"version": { "type": "ReactNode", "description": "版本号展示" },
|
|
92
|
+
"className": { "type": "string", "description": "底部区域自定义 class" }
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
"showExpansion": {
|
|
96
|
+
"type": "boolean",
|
|
97
|
+
"default": true,
|
|
98
|
+
"description": "是否显示底部展开/收起按钮(src/Menu/index.tsx:28,87 实证:false 时 FooterExpansion 不渲染)"
|
|
99
|
+
},
|
|
100
|
+
"onClickExpansion": {
|
|
101
|
+
"type": "function",
|
|
102
|
+
"signature": "(expansion: boolean) => void",
|
|
103
|
+
"description": "点击底部展开/收起按钮回调(src/Menu/index.tsx:22,39-41 实证:参数为点击后新的展开状态 boolean)"
|
|
104
|
+
},
|
|
105
|
+
"className": {
|
|
106
|
+
"type": "string",
|
|
107
|
+
"description": "自定义类名(src/Menu/index.tsx:24,49 实证,追加到根容器 div)"
|
|
108
|
+
},
|
|
109
|
+
"style": {
|
|
110
|
+
"type": "React.CSSProperties",
|
|
111
|
+
"description": "自定义样式(src/Menu/index.tsx:25,100 实证,透传到根容器 div)"
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
"do": [
|
|
115
|
+
"保持菜单层级不要过深(建议不超过 3 级)",
|
|
116
|
+
"配置 shrinkOthers 以提升用户查找效率",
|
|
117
|
+
"使用 icon 辅助识别菜单项",
|
|
118
|
+
"**菜单数据通过 menuListProps.list 传入**(不是顶层 list prop):`<Menu menuListProps={{ list: menuData }} />`,menuData 是 MenuChildrenProps[] 数组",
|
|
119
|
+
"MenuChildrenProps 核心字段(src/Menu/interface.ts:25-63):`label: ReactNode`(菜单名),`path: string`(路径,与 selectMenu 比对高亮),`icon: ReactNode`(图标),`children: MenuChildrenProps[]`(子菜单),`type: 'redirect'|'router'|'iframe'|'snack'|'snackPage'`(菜单类型),`href: string`(a 标签地址),`badge: ReactNode`(标记)"
|
|
120
|
+
],
|
|
121
|
+
"dont": [
|
|
122
|
+
"在菜单项中放置非导航类的复杂交互组件",
|
|
123
|
+
"过度使用动态生成的菜单导致性能问题",
|
|
124
|
+
"把菜单数据传给顶层 list prop——Menu 没有顶层 list prop,数据必须通过 menuListProps.list 传入"
|
|
125
|
+
],
|
|
126
|
+
"events": {
|
|
127
|
+
"onClickMenu": {
|
|
128
|
+
"signature": "(item: MenuChildrenProps | false) => void",
|
|
129
|
+
"asyncSupported": false,
|
|
130
|
+
"examples": [
|
|
131
|
+
"点击叶子菜单项时 item 是该菜单项的 MenuChildrenProps 对象,包含 label/path/type 等字段",
|
|
132
|
+
"点击非叶子节点(有 children 的菜单项)展开/收起时,item 可能为 false",
|
|
133
|
+
"用 path 字段实现路由跳转:onClickMenu={(item) => item && item.path && navigate(item.path)}"
|
|
134
|
+
],
|
|
135
|
+
"commonMistakes": [
|
|
136
|
+
"假设参数是字符串 key 或 path——实际是整个 MenuChildrenProps 对象或 false,需要取 item.path 或 item.label",
|
|
137
|
+
"不处理 item 为 false 的情况——点击有子菜单的父节点时 item 是 false,直接访问 item.path 会报错",
|
|
138
|
+
"假设 onClickMenu 只在叶子节点触发——父节点展开/收起时也会触发(item=false)"
|
|
139
|
+
]
|
|
140
|
+
},
|
|
141
|
+
"onClickExpansion": {
|
|
142
|
+
"signature": "(expansion: boolean) => void",
|
|
143
|
+
"asyncSupported": false,
|
|
144
|
+
"examples": [
|
|
145
|
+
"点击底部展开/收起按钮时触发:expansion 是点击后新的展开状态",
|
|
146
|
+
"与 expansion prop 配合实现受控:onClickExpansion={(v) => setExpanded(v)}"
|
|
147
|
+
],
|
|
148
|
+
"commonMistakes": [
|
|
149
|
+
"假设参数是事件对象 → 实际只有 boolean 一个参数(新的展开状态)",
|
|
150
|
+
"只传 expansion 不传 onClickExpansion → 底部按钮点击无响应(受控模式下 expansion 不更新)"
|
|
151
|
+
]
|
|
152
|
+
}
|
|
153
|
+
},
|
|
154
|
+
"typescriptPitfalls": [
|
|
155
|
+
{
|
|
156
|
+
"issue": "onClickMenu 参数类型是 MenuChildrenProps | false,必须判空后才能访问其属性",
|
|
157
|
+
"wrong": "onClickMenu={(item) => navigate(item.path)} // item 可能是 false,直接访问 item.path 运行时报错",
|
|
158
|
+
"right": "onClickMenu={(item) => { if (item && item.path) navigate(item.path); }}"
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
"issue": "菜单数据通过 menuListProps.list 传入,顶层没有 list prop",
|
|
162
|
+
"wrong": "<Menu list={menuData} /> // TS 报错:list 不在 MenuProps 中",
|
|
163
|
+
"right": "<Menu menuListProps={{ list: menuData }} /> // menuData 是 MenuChildrenProps[] 类型"
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
"issue": "MenuChildrenProps 的 [name: string]: unknown 索引签名允许任意字段,但核心字段类型有约束",
|
|
167
|
+
"wrong": "const item: MenuChildrenProps = { label: '首页', type: 'page' } // 'page' 不在 MenuListTypeType 枚举中",
|
|
168
|
+
"right": "const item: MenuChildrenProps = { label: '首页', type: 'router', path: '/home' } // type: 'redirect'|'router'|'iframe'|'snack'|'snackPage'"
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
"issue": "color prop 只有 'deep' 和 'light' 两个有效值(ColorType),传其他字符串 TS 报错",
|
|
172
|
+
"wrong": "color='dark' // TS2322: Type '\"dark\"' is not assignable to type 'ColorType'",
|
|
173
|
+
"right": "color='deep' // 合法值: 'deep'(深色主题) | 'light'(浅色主题)"
|
|
174
|
+
}
|
|
175
|
+
],
|
|
176
|
+
"mapping": {
|
|
177
|
+
"realComponent": "Menu",
|
|
178
|
+
"adapter": null
|
|
179
|
+
}
|
|
180
|
+
}
|