@para-ui/core 5.0.0-beta.12 → 5.0.0-beta.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +315 -0
- package/AlignBox/component.json +89 -0
- package/Anchor/component.json +130 -0
- package/Argv/component.json +216 -0
- package/AutoBox/component.json +133 -0
- package/AutoButton/component.json +109 -0
- package/AutoTips/component.json +121 -0
- package/Badge/component.json +92 -0
- package/Breadcrumbs/component.json +142 -0
- package/Button/component.json +168 -0
- package/ButtonGroup/component.json +132 -0
- package/Card/component.json +162 -0
- package/Carousel/component.json +142 -0
- package/Cascader/component.json +196 -0
- package/Checkbox/component.json +138 -0
- package/CheckboxGroup/component.json +152 -0
- package/CodeEditor/component.json +189 -0
- package/Collapse/component.json +166 -0
- package/CollapseBox/component.json +84 -0
- package/CollapseLayout/component.json +155 -0
- package/ColorPicker/component.json +142 -0
- package/ComboSelect/component.json +181 -0
- package/Container/component.json +111 -0
- package/ContentBox/component.json +81 -0
- package/CopyText/component.json +118 -0
- package/CycleSelector/component.json +98 -0
- package/DatePicker/component.json +192 -0
- package/Descriptions/component.json +142 -0
- package/Desktop/component.json +171 -0
- package/DragVerify/component.json +114 -0
- package/Drawer/component.json +200 -0
- package/Dropdown/component.json +147 -0
- package/DynamicMultiBox/component.json +278 -0
- package/Empty/component.json +123 -0
- package/FieldForm/component.json +196 -0
- package/Form/component.json +161 -0
- package/FormItem/component.json +171 -0
- package/FunctionModal/component.json +197 -0
- package/Help/component.json +118 -0
- package/HelperText/component.json +126 -0
- package/Image/component.json +165 -0
- package/InputCode/component.json +191 -0
- package/InputLang/component.json +205 -0
- package/InputNumber/component.json +162 -0
- package/Label/component.json +126 -0
- package/Loading/component.json +91 -0
- package/Menu/component.json +180 -0
- package/Message/component.json +246 -0
- package/Modal/component.json +277 -0
- package/MultiBox/component.json +216 -0
- package/Notification/component.json +184 -0
- package/OperateBtn/component.json +134 -0
- package/PageHeader/component.json +112 -0
- package/Pagination/component.json +181 -0
- package/PasswordRules/component.json +105 -0
- package/PopConfirm/component.json +227 -0
- package/PopMenu/component.json +131 -0
- package/Popover/component.json +165 -0
- package/Progress/component.json +161 -0
- package/Prompt/component.json +144 -0
- package/Querying/component.json +96 -0
- package/QuickReply/component.json +129 -0
- package/Radio/component.json +136 -0
- package/RadioGroup/component.json +149 -0
- package/RangeInput/component.json +198 -0
- package/Result/component.json +104 -0
- package/ScrollBar/component.json +115 -0
- package/Search/component.json +177 -0
- package/Select/component.json +244 -0
- package/SelectInput/component.json +184 -0
- package/Selector/component.json +203 -0
- package/SelectorPicker/component.json +179 -0
- package/SingleBox/component.json +151 -0
- package/Slider/component.json +181 -0
- package/SortBox/component.json +108 -0
- package/Status/component.json +104 -0
- package/Stepper/component.json +129 -0
- package/Switch/component.json +207 -0
- package/Table/component.json +547 -0
- package/Tabs/component.json +227 -0
- package/Tag/component.json +221 -0
- package/TextEditor/component.json +186 -0
- package/TextField/component.json +290 -0
- package/TimePicker/component.json +176 -0
- package/Timeline/component.json +110 -0
- package/Title/component.json +156 -0
- package/ToggleButton/component.json +153 -0
- package/Tooltip/component.json +176 -0
- package/Transfer/component.json +157 -0
- package/Tree/component.json +512 -0
- package/Upload/component.json +450 -0
- package/ai-workflows/01-crud-list-multi-drawer.md +278 -0
- package/ai-workflows/02-rbac-operation-buttons.md +290 -0
- package/ai-workflows/03-complex-form-async-cascade.md +350 -0
- package/ai-workflows/04-array-field-form.md +281 -0
- package/ai-workflows/05-popconfirm-async-message-queue.md +333 -0
- package/ai-workflows/06-modal-drawer-form-workflow.md +385 -0
- package/ai-workflows/07-search-filter-table-trio.md +387 -0
- package/ai-workflows/08-table-advanced-features.md +365 -0
- package/ai-workflows/09-batch-operation-export-progress.md +367 -0
- package/ai-workflows/10-cross-component-state-coordination.md +412 -0
- package/es/AlignBox/component.json +89 -0
- package/es/AlignBox/index.css +1 -1
- package/es/AlignBox/index.d.ts +6 -2
- package/es/AlignBox/index.js +1 -1
- package/es/AlignBox/style/index.css +1 -1
- package/es/Anchor/anchorMenu/index.d.ts +2 -1
- package/es/Anchor/anchorMenu/index.js +36 -33
- package/es/Anchor/component.json +130 -0
- package/es/Anchor/index.js +50 -47
- package/es/Anchor/type.d.ts +8 -4
- package/es/Argv/component.json +216 -0
- package/es/Argv/index.d.ts +5 -6
- package/es/AutoBox/component.json +133 -0
- package/es/AutoBox/index.d.ts +3 -3
- package/es/AutoBox/index.js +1 -1
- package/es/AutoBox/protal.d.ts +2 -2
- package/es/AutoBox/protal.js +32 -29
- package/es/AutoButton/component.json +109 -0
- package/es/AutoButton/index.js +1 -1
- package/es/AutoTips/autoTipsMultiline/index.d.ts +1 -1
- package/es/AutoTips/autoTipsMultiline/index.js +1 -1
- package/es/AutoTips/component.json +121 -0
- package/es/Badge/component.json +92 -0
- package/es/Breadcrumbs/component.json +142 -0
- package/es/Breadcrumbs/index.js +1 -1
- package/es/Button/SplitButton.d.ts +2 -2
- package/es/Button/component.json +168 -0
- package/es/Button/index.js +44 -44
- package/es/ButtonGroup/component.json +132 -0
- package/es/ButtonGroup/index.d.ts +1 -1
- package/es/Card/component.json +162 -0
- package/es/Card/index.d.ts +2 -2
- package/es/Card/index.js +2 -2
- package/es/Carousel/component.json +142 -0
- package/es/Carousel/index.d.ts +1 -1
- package/es/Cascader/component.json +196 -0
- package/es/Cascader/hooks/useEntities.js +7 -7
- package/es/Cascader/interface.d.ts +1 -0
- package/es/Cascader/utils/commonUtil.d.ts +1 -1
- package/es/Cascader/utils/commonUtil.js +16 -16
- package/es/Cascader/utils/treeUtil.d.ts +14 -5
- package/es/Cascader/utils/treeUtil.js +1 -1
- package/es/Checkbox/component.json +138 -0
- package/es/CheckboxGroup/component.json +152 -0
- package/es/CodeEditor/component.json +189 -0
- package/es/CodeEditor/index.d.ts +10 -9
- package/es/Collapse/component.json +166 -0
- package/es/Collapse/index.d.ts +1 -1
- package/es/Collapse/index.js +23 -22
- package/es/CollapseBox/component.json +84 -0
- package/es/CollapseLayout/component.json +155 -0
- package/es/ColorPicker/component.json +142 -0
- package/es/ComboSelect/component.json +181 -0
- package/es/ComboSelect/index.js +73 -68
- package/es/ComboSelect/interface.d.ts +2 -2
- package/es/ComboSelect/utils.d.ts +3 -3
- package/es/ComboSelect/utils.js +1 -1
- package/es/Container/component.json +111 -0
- package/es/ContentBox/component.json +81 -0
- package/es/CopyText/component.json +118 -0
- package/es/CycleSelector/component.json +98 -0
- package/es/CycleSelector/index.js +14 -13
- package/es/DatePicker/component.json +192 -0
- package/es/DatePicker/generatePicker/generateRangePicker.js +10 -10
- package/es/DatePicker/generatePicker/generateSinglePicker.js +1 -1
- package/es/Descriptions/component.json +142 -0
- package/es/Descriptions/index.d.ts +1 -1
- package/es/Desktop/component.json +171 -0
- package/es/DragVerify/component.json +114 -0
- package/es/DragVerify/index.js +19 -19
- package/es/Drawer/component.json +200 -0
- package/es/Drawer/index.js +86 -86
- package/es/Drawer/interface.d.ts +1 -1
- package/es/Drawer/util.d.ts +1 -6
- package/es/Drawer/util.js +9 -6
- package/es/Dropdown/component.json +147 -0
- package/es/DynamicMultiBox/component.json +278 -0
- package/es/DynamicMultiBox/formItem.d.ts +1 -1
- package/es/DynamicMultiBox/rowForm.d.ts +2 -2
- package/es/Empty/component.json +123 -0
- package/es/Empty/index.css +1 -1
- package/es/Empty/index.d.ts +2 -2
- package/es/Empty/index.js +27 -26
- package/es/Empty/style/index.css +1 -1
- package/es/FieldForm/FieldFormItem/MemoInput.d.ts +2 -2
- package/es/FieldForm/FieldFormItem/index.d.ts +6 -6
- package/es/FieldForm/Form.d.ts +2 -2
- package/es/FieldForm/FormList.d.ts +2 -2
- package/es/FieldForm/component.json +196 -0
- package/es/FieldForm/context.d.ts +5 -1
- package/es/FieldForm/context.js +2 -2
- package/es/FieldForm/hooks/useForm.d.ts +4 -3
- package/es/FieldForm/hooks/useFormInstance.d.ts +1 -1
- package/es/FieldForm/hooks/useFormItemStatus.d.ts +9 -5
- package/es/FieldForm/hooks/useFormItemStatus.js +2 -2
- package/es/FieldForm/hooks/useItemRef.d.ts +1 -1
- package/es/FieldForm/hooks/useItemRef.js +6 -6
- package/es/Form/component.json +161 -0
- package/es/Form/index.d.ts +52 -49
- package/es/FormItem/compoments/defaultCompoments/index.d.ts +5 -5
- package/es/FormItem/compoments/defaultCompoments/index.js +12 -11
- package/es/FormItem/compoments/formCheckboxGroup/index.d.ts +2 -2
- package/es/FormItem/compoments/formFile/index.js +8 -8
- package/es/FormItem/compoments/formRadioGroup/index.d.ts +1 -1
- package/es/FormItem/compoments/formSelect/index.d.ts +1 -1
- package/es/FormItem/component.json +171 -0
- package/es/FormItem/index.d.ts +5 -5
- package/es/FormItem/index.js +23 -23
- package/es/FormItem/itemType.js +1 -1
- package/es/FunctionModal/component.json +197 -0
- package/es/FunctionModal/dialog.d.ts +1 -1
- package/es/FunctionModal/modalContext.d.ts +4 -1
- package/es/Help/component.json +118 -0
- package/es/HelperText/component.json +126 -0
- package/es/Image/component.json +165 -0
- package/es/InputCode/component.json +191 -0
- package/es/InputCode/index.d.ts +2 -2
- package/es/InputLang/component.json +205 -0
- package/es/InputLang/index.js +1 -1
- package/es/InputNumber/component.json +162 -0
- package/es/Label/component.json +126 -0
- package/es/Label/index.d.ts +2 -2
- package/es/Loading/component.json +91 -0
- package/es/Menu/component.json +180 -0
- package/es/Message/component.json +246 -0
- package/es/Message/index.d.ts +2 -2
- package/es/Message/index.js +2 -2
- package/es/Modal/Confirm/index.d.ts +1 -1
- package/es/Modal/component.json +277 -0
- package/es/Modal/index.d.ts +85 -5
- package/es/Modal/index.js +159 -122
- package/es/Modal/interface.d.ts +1 -0
- package/es/MultiBox/component.json +216 -0
- package/es/MultiBox/index.js +19 -14
- package/es/Notification/component.json +184 -0
- package/es/OperateBtn/component.json +134 -0
- package/es/OperateBtn/index.d.ts +3 -3
- package/es/PageHeader/component.json +112 -0
- package/es/Pagination/component.json +181 -0
- package/es/Pagination/index.js +15 -15
- package/es/PasswordRules/component.json +105 -0
- package/es/PasswordRules/index.d.ts +4 -4
- package/es/PopConfirm/component.json +227 -0
- package/es/PopConfirm/index.d.ts +1 -1
- package/es/PopConfirm/index.js +1 -1
- package/es/PopMenu/component.json +131 -0
- package/es/PopMenu/hooks.d.ts +1 -1
- package/es/PopMenu/index.js +8 -8
- package/es/Popover/component.json +165 -0
- package/es/Popover/index.js +1 -1
- package/es/Progress/component.json +161 -0
- package/es/Prompt/component.json +144 -0
- package/es/Querying/component.json +96 -0
- package/es/Querying/index.css +1 -1
- package/es/Querying/index.d.ts +2 -2
- package/es/Querying/index.js +20 -19
- package/es/Querying/style/index.css +1 -1
- package/es/QuickReply/component.json +129 -0
- package/es/QuickReply/index.d.ts +1 -1
- package/es/Radio/component.json +136 -0
- package/es/RadioGroup/component.json +149 -0
- package/es/RangeInput/component.json +198 -0
- package/es/RangeInput/index.js +1 -1
- package/es/Result/component.json +104 -0
- package/es/ScrollBar/component.json +115 -0
- package/es/Search/component.json +177 -0
- package/es/Search/index.d.ts +1 -1
- package/es/Select/component.json +244 -0
- package/es/Select/index.js +113 -113
- package/es/SelectInput/component.json +184 -0
- package/es/Selector/component.json +203 -0
- package/es/Selector/index.js +28 -27
- package/es/Selector/interface.d.ts +1 -1
- package/es/Selector/selectorMain/index.js +2 -2
- package/es/Selector/selectorNode/index.js +1 -1
- package/es/Selector/util.d.ts +2 -2
- package/es/SelectorPicker/component.json +179 -0
- package/es/SelectorPicker/index.d.ts +5 -5
- package/es/SelectorPicker/index.js +15 -15
- package/es/SingleBox/component.json +151 -0
- package/es/SingleBox/index.d.ts +2 -2
- package/es/Slider/component.json +181 -0
- package/es/SortBox/component.json +108 -0
- package/es/Status/component.json +104 -0
- package/es/Stepper/component.json +129 -0
- package/es/Stepper/index.d.ts +2 -2
- package/es/Switch/component.json +207 -0
- package/es/Switch/index.css +1 -1
- package/es/Switch/index.d.ts +3 -2
- package/es/Switch/index.js +60 -59
- package/es/Switch/style/index.css +1 -1
- package/es/Table/component.json +547 -0
- package/es/Table/index.d.ts +2 -2
- package/es/Table/index.js +414 -414
- package/es/Table/interface.d.ts +6 -0
- package/es/Tabs/component.json +227 -0
- package/es/Tag/component.json +221 -0
- package/es/Tag/index.css +1 -1
- package/es/Tag/index.d.ts +1 -1
- package/es/Tag/index.js +20 -20
- package/es/Tag/style/index.css +1 -1
- package/es/TextEditor/component.json +186 -0
- package/es/TextEditor/index.d.ts +5 -5
- package/es/TextField/component.json +290 -0
- package/es/TextField/index.d.ts +2 -2
- package/es/TimePicker/component.json +176 -0
- package/es/Timeline/component.json +110 -0
- package/es/Title/component.json +156 -0
- package/es/ToggleButton/component.json +153 -0
- package/es/Tooltip/component.json +176 -0
- package/es/Tooltip/index.js +58 -53
- package/es/Tooltip/interface.d.ts +14 -1
- package/es/Tooltip/utils.js +6 -6
- package/es/Transfer/component.json +157 -0
- package/es/Tree/component.json +512 -0
- package/es/Upload/component.json +450 -0
- package/es/Utils/type.d.ts +0 -2
- package/es/index.d.ts +2 -0
- package/es/index.js +1 -1
- package/es/locale/en_US.d.ts +361 -0
- package/es/locale/en_US.js +364 -0
- package/es/locale/index.d.ts +1 -723
- package/es/locale/index2.js +10 -0
- package/es/locale/zh_CN.d.ts +361 -0
- package/es/locale/zh_CN.js +364 -0
- package/lib/AlignBox/component.json +89 -0
- package/lib/AlignBox/index.css +1 -1
- package/lib/AlignBox/index.d.ts +6 -2
- package/lib/AlignBox/index.js +1 -1
- package/lib/AlignBox/style/index.css +1 -1
- package/lib/Anchor/anchorMenu/index.d.ts +2 -1
- package/lib/Anchor/anchorMenu/index.js +1 -1
- package/lib/Anchor/component.json +130 -0
- package/lib/Anchor/index.js +1 -1
- package/lib/Anchor/type.d.ts +8 -4
- package/lib/Argv/component.json +216 -0
- package/lib/Argv/index.d.ts +5 -6
- package/lib/AutoBox/component.json +133 -0
- package/lib/AutoBox/index.d.ts +3 -3
- package/lib/AutoBox/index.js +1 -1
- package/lib/AutoBox/protal.d.ts +2 -2
- package/lib/AutoBox/protal.js +1 -1
- package/lib/AutoButton/component.json +109 -0
- package/lib/AutoButton/index.js +1 -1
- package/lib/AutoTips/autoTipsMultiline/index.d.ts +1 -1
- package/lib/AutoTips/autoTipsMultiline/index.js +1 -1
- package/lib/AutoTips/component.json +121 -0
- package/lib/Badge/component.json +92 -0
- package/lib/Breadcrumbs/component.json +142 -0
- package/lib/Breadcrumbs/index.js +1 -1
- package/lib/Button/SplitButton.d.ts +2 -2
- package/lib/Button/component.json +168 -0
- package/lib/Button/index.js +1 -1
- package/lib/ButtonGroup/component.json +132 -0
- package/lib/ButtonGroup/index.d.ts +1 -1
- package/lib/Card/component.json +162 -0
- package/lib/Card/index.d.ts +2 -2
- package/lib/Card/index.js +1 -1
- package/lib/Carousel/component.json +142 -0
- package/lib/Carousel/index.d.ts +1 -1
- package/lib/Cascader/component.json +196 -0
- package/lib/Cascader/hooks/useEntities.js +1 -1
- package/lib/Cascader/interface.d.ts +1 -0
- package/lib/Cascader/utils/commonUtil.d.ts +1 -1
- package/lib/Cascader/utils/commonUtil.js +1 -1
- package/lib/Cascader/utils/treeUtil.d.ts +14 -5
- package/lib/Cascader/utils/treeUtil.js +1 -1
- package/lib/Checkbox/component.json +138 -0
- package/lib/CheckboxGroup/component.json +152 -0
- package/lib/CodeEditor/component.json +189 -0
- package/lib/CodeEditor/index.d.ts +10 -9
- package/lib/Collapse/component.json +166 -0
- package/lib/Collapse/index.d.ts +1 -1
- package/lib/Collapse/index.js +1 -1
- package/lib/CollapseBox/component.json +84 -0
- package/lib/CollapseLayout/component.json +155 -0
- package/lib/ColorPicker/component.json +142 -0
- package/lib/ComboSelect/component.json +181 -0
- package/lib/ComboSelect/index.js +1 -1
- package/lib/ComboSelect/interface.d.ts +2 -2
- package/lib/ComboSelect/utils.d.ts +3 -3
- package/lib/ComboSelect/utils.js +1 -1
- package/lib/Container/component.json +111 -0
- package/lib/ContentBox/component.json +81 -0
- package/lib/CopyText/component.json +118 -0
- package/lib/CycleSelector/component.json +98 -0
- package/lib/CycleSelector/index.js +1 -1
- package/lib/DatePicker/component.json +192 -0
- package/lib/DatePicker/generatePicker/generateRangePicker.js +1 -1
- package/lib/DatePicker/generatePicker/generateSinglePicker.js +1 -1
- package/lib/Descriptions/component.json +142 -0
- package/lib/Descriptions/index.d.ts +1 -1
- package/lib/Desktop/component.json +171 -0
- package/lib/DragVerify/component.json +114 -0
- package/lib/DragVerify/index.js +1 -1
- package/lib/Drawer/component.json +200 -0
- package/lib/Drawer/index.js +1 -1
- package/lib/Drawer/interface.d.ts +1 -1
- package/lib/Drawer/util.d.ts +1 -6
- package/lib/Drawer/util.js +1 -1
- package/lib/Dropdown/component.json +147 -0
- package/lib/DynamicMultiBox/component.json +278 -0
- package/lib/DynamicMultiBox/formItem.d.ts +1 -1
- package/lib/DynamicMultiBox/rowForm.d.ts +2 -2
- package/lib/Empty/component.json +123 -0
- package/lib/Empty/index.css +1 -1
- package/lib/Empty/index.d.ts +2 -2
- package/lib/Empty/index.js +1 -1
- package/lib/Empty/style/index.css +1 -1
- package/lib/FieldForm/FieldFormItem/MemoInput.d.ts +2 -2
- package/lib/FieldForm/FieldFormItem/index.d.ts +6 -6
- package/lib/FieldForm/Form.d.ts +2 -2
- package/lib/FieldForm/FormList.d.ts +2 -2
- package/lib/FieldForm/component.json +196 -0
- package/lib/FieldForm/context.d.ts +5 -1
- package/lib/FieldForm/context.js +1 -1
- package/lib/FieldForm/hooks/useForm.d.ts +4 -3
- package/lib/FieldForm/hooks/useFormInstance.d.ts +1 -1
- package/lib/FieldForm/hooks/useFormItemStatus.d.ts +9 -5
- package/lib/FieldForm/hooks/useFormItemStatus.js +1 -1
- package/lib/FieldForm/hooks/useItemRef.d.ts +1 -1
- package/lib/FieldForm/hooks/useItemRef.js +1 -1
- package/lib/Form/component.json +161 -0
- package/lib/Form/index.d.ts +52 -49
- package/lib/FormItem/compoments/defaultCompoments/index.d.ts +5 -5
- package/lib/FormItem/compoments/defaultCompoments/index.js +1 -1
- package/lib/FormItem/compoments/formCheckboxGroup/index.d.ts +2 -2
- package/lib/FormItem/compoments/formFile/index.js +1 -1
- package/lib/FormItem/compoments/formRadioGroup/index.d.ts +1 -1
- package/lib/FormItem/compoments/formSelect/index.d.ts +1 -1
- package/lib/FormItem/component.json +171 -0
- package/lib/FormItem/index.d.ts +5 -5
- package/lib/FormItem/index.js +1 -1
- package/lib/FormItem/itemType.js +1 -1
- package/lib/FunctionModal/component.json +197 -0
- package/lib/FunctionModal/dialog.d.ts +1 -1
- package/lib/FunctionModal/modalContext.d.ts +4 -1
- package/lib/Help/component.json +118 -0
- package/lib/HelperText/component.json +126 -0
- package/lib/Image/component.json +165 -0
- package/lib/InputCode/component.json +191 -0
- package/lib/InputCode/index.d.ts +2 -2
- package/lib/InputLang/component.json +205 -0
- package/lib/InputLang/index.js +1 -1
- package/lib/InputNumber/component.json +162 -0
- package/lib/Label/component.json +126 -0
- package/lib/Label/index.d.ts +2 -2
- package/lib/Loading/component.json +91 -0
- package/lib/Menu/component.json +180 -0
- package/lib/Message/component.json +246 -0
- package/lib/Message/index.d.ts +2 -2
- package/lib/Message/index.js +1 -1
- package/lib/Modal/Confirm/index.d.ts +1 -1
- package/lib/Modal/component.json +277 -0
- package/lib/Modal/index.d.ts +85 -5
- package/lib/Modal/index.js +1 -1
- package/lib/Modal/interface.d.ts +1 -0
- package/lib/MultiBox/component.json +216 -0
- package/lib/MultiBox/index.js +1 -1
- package/lib/Notification/component.json +184 -0
- package/lib/OperateBtn/component.json +134 -0
- package/lib/OperateBtn/index.d.ts +3 -3
- package/lib/PageHeader/component.json +112 -0
- package/lib/Pagination/component.json +181 -0
- package/lib/Pagination/index.js +1 -1
- package/lib/PasswordRules/component.json +105 -0
- package/lib/PasswordRules/index.d.ts +4 -4
- package/lib/PopConfirm/component.json +227 -0
- package/lib/PopConfirm/index.d.ts +1 -1
- package/lib/PopConfirm/index.js +1 -1
- package/lib/PopMenu/component.json +131 -0
- package/lib/PopMenu/hooks.d.ts +1 -1
- package/lib/PopMenu/index.js +1 -1
- package/lib/Popover/component.json +165 -0
- package/lib/Popover/index.js +1 -1
- package/lib/Progress/component.json +161 -0
- package/lib/Prompt/component.json +144 -0
- package/lib/Querying/component.json +96 -0
- package/lib/Querying/index.css +1 -1
- package/lib/Querying/index.d.ts +2 -2
- package/lib/Querying/index.js +1 -1
- package/lib/Querying/style/index.css +1 -1
- package/lib/QuickReply/component.json +129 -0
- package/lib/QuickReply/index.d.ts +1 -1
- package/lib/Radio/component.json +136 -0
- package/lib/RadioGroup/component.json +149 -0
- package/lib/RangeInput/component.json +198 -0
- package/lib/RangeInput/index.js +1 -1
- package/lib/Result/component.json +104 -0
- package/lib/ScrollBar/component.json +115 -0
- package/lib/Search/component.json +177 -0
- package/lib/Search/index.d.ts +1 -1
- package/lib/Select/component.json +244 -0
- package/lib/Select/index.js +1 -1
- package/lib/SelectInput/component.json +184 -0
- package/lib/Selector/component.json +203 -0
- package/lib/Selector/index.js +1 -1
- package/lib/Selector/interface.d.ts +1 -1
- package/lib/Selector/selectorMain/index.js +1 -1
- package/lib/Selector/selectorNode/index.js +1 -1
- package/lib/Selector/util.d.ts +2 -2
- package/lib/SelectorPicker/component.json +179 -0
- package/lib/SelectorPicker/index.d.ts +5 -5
- package/lib/SelectorPicker/index.js +1 -1
- package/lib/SingleBox/component.json +151 -0
- package/lib/SingleBox/index.d.ts +2 -2
- package/lib/Slider/component.json +181 -0
- package/lib/SortBox/component.json +108 -0
- package/lib/Status/component.json +104 -0
- package/lib/Stepper/component.json +129 -0
- package/lib/Stepper/index.d.ts +2 -2
- package/lib/Switch/component.json +207 -0
- package/lib/Switch/index.css +1 -1
- package/lib/Switch/index.d.ts +3 -2
- package/lib/Switch/index.js +1 -1
- package/lib/Switch/style/index.css +1 -1
- package/lib/Table/component.json +547 -0
- package/lib/Table/index.d.ts +2 -2
- package/lib/Table/index.js +1 -1
- package/lib/Table/interface.d.ts +6 -0
- package/lib/Tabs/component.json +227 -0
- package/lib/Tag/component.json +221 -0
- package/lib/Tag/index.css +1 -1
- package/lib/Tag/index.d.ts +1 -1
- package/lib/Tag/index.js +1 -1
- package/lib/Tag/style/index.css +1 -1
- package/lib/TextEditor/component.json +186 -0
- package/lib/TextEditor/index.d.ts +5 -5
- package/lib/TextField/component.json +290 -0
- package/lib/TextField/index.d.ts +2 -2
- package/lib/TimePicker/component.json +176 -0
- package/lib/Timeline/component.json +110 -0
- package/lib/Title/component.json +156 -0
- package/lib/ToggleButton/component.json +153 -0
- package/lib/Tooltip/component.json +176 -0
- package/lib/Tooltip/index.js +1 -1
- package/lib/Tooltip/interface.d.ts +14 -1
- package/lib/Tooltip/utils.js +1 -1
- package/lib/Transfer/component.json +157 -0
- package/lib/Tree/component.json +512 -0
- package/lib/Upload/component.json +450 -0
- package/lib/Utils/type.d.ts +0 -2
- package/lib/index.d.ts +2 -0
- package/lib/index.js +1 -1
- package/lib/locale/en_US.d.ts +361 -0
- package/lib/locale/en_US.js +2 -0
- package/lib/locale/index.d.ts +1 -723
- package/lib/locale/index2.js +2 -0
- package/lib/locale/zh_CN.d.ts +361 -0
- package/lib/locale/zh_CN.js +2 -0
- package/package.json +9 -3
- /package/es/{Utils/Hooks → Hooks}/useResizeObserver.d.ts +0 -0
- /package/es/{Utils/Hooks → Hooks}/useResizeObserver.js +0 -0
- /package/lib/{Utils/Hooks → Hooks}/useResizeObserver.d.ts +0 -0
- /package/lib/{Utils/Hooks → Hooks}/useResizeObserver.js +0 -0
|
@@ -1,54 +1,57 @@
|
|
|
1
1
|
import { j as e } from "../../_virtual/jsx-runtime.js";
|
|
2
|
-
import { useEffect as k, useMemo as
|
|
2
|
+
import { useEffect as k, useMemo as u, createElement as A } from "react";
|
|
3
3
|
import C from "clsx";
|
|
4
4
|
import { Down as E } from "../../node_modules/@para-ui/icons/Down/index.js";
|
|
5
5
|
import './index.css';/* empty css */
|
|
6
6
|
import w from "../../AutoTips/index.js";
|
|
7
|
-
const
|
|
7
|
+
const y = (l) => {
|
|
8
8
|
const {
|
|
9
|
-
data:
|
|
10
|
-
currentAnchorId:
|
|
11
|
-
handleClick:
|
|
12
|
-
level:
|
|
13
|
-
isTree:
|
|
14
|
-
anchorMap:
|
|
15
|
-
setAnchorMap:
|
|
16
|
-
customPrefixIcon:
|
|
17
|
-
onlyOneLevel:
|
|
18
|
-
} =
|
|
9
|
+
data: s,
|
|
10
|
+
currentAnchorId: j,
|
|
11
|
+
handleClick: m,
|
|
12
|
+
level: r = 0,
|
|
13
|
+
isTree: x = !1,
|
|
14
|
+
anchorMap: c = {},
|
|
15
|
+
setAnchorMap: v,
|
|
16
|
+
customPrefixIcon: i,
|
|
17
|
+
onlyOneLevel: f
|
|
18
|
+
} = l, { id: d } = s, a = String(d) === String(j);
|
|
19
19
|
k(() => {
|
|
20
20
|
}, []);
|
|
21
|
-
const N =
|
|
21
|
+
const N = u(() => {
|
|
22
22
|
const n = [];
|
|
23
|
-
for (let
|
|
23
|
+
for (let t = 0; t < r; t++)
|
|
24
24
|
n.push(
|
|
25
25
|
/* @__PURE__ */ e.jsx(
|
|
26
26
|
"div",
|
|
27
27
|
{
|
|
28
28
|
className: "indent"
|
|
29
29
|
},
|
|
30
|
-
|
|
30
|
+
t
|
|
31
31
|
)
|
|
32
32
|
);
|
|
33
33
|
return n;
|
|
34
|
-
}, [
|
|
34
|
+
}, [r]), h = (n, t) => {
|
|
35
35
|
n.stopPropagation();
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
-
}, M =
|
|
39
|
-
const { name: n, id:
|
|
36
|
+
const o = c[t];
|
|
37
|
+
o.expanded = !o.expanded, v?.({ ...c });
|
|
38
|
+
}, M = u(() => {
|
|
39
|
+
const { name: n, id: t } = s, o = s.children && s.children.length > 0, g = x ? o ? /* @__PURE__ */ e.jsx(
|
|
40
40
|
"div",
|
|
41
41
|
{
|
|
42
42
|
className: "btn-down",
|
|
43
|
-
onClick: (
|
|
43
|
+
onClick: (p) => h(p, t),
|
|
44
44
|
children: /* @__PURE__ */ e.jsx("div", { className: "icon icon-down", children: /* @__PURE__ */ e.jsx(E, {}) })
|
|
45
45
|
}
|
|
46
|
-
) : /* @__PURE__ */ e.jsx("div", { className: "icon mr-6" }) :
|
|
46
|
+
) : /* @__PURE__ */ e.jsx("div", { className: "icon mr-6" }) : i ? (
|
|
47
|
+
// R6 §6 类型放宽:函数形式按 isActive 返回不同 ReactNode(墨水点指示器等激活态联动);静态 ReactNode 直接渲染
|
|
48
|
+
typeof i == "function" ? i(s, a) : i
|
|
49
|
+
) : /* @__PURE__ */ e.jsx(P, {});
|
|
47
50
|
return /* @__PURE__ */ e.jsxs(
|
|
48
51
|
"div",
|
|
49
52
|
{
|
|
50
53
|
className: "item-content",
|
|
51
|
-
onClick: (
|
|
54
|
+
onClick: (p) => {
|
|
52
55
|
},
|
|
53
56
|
children: [
|
|
54
57
|
g,
|
|
@@ -56,21 +59,21 @@ const P = (a) => {
|
|
|
56
59
|
"div",
|
|
57
60
|
{
|
|
58
61
|
className: "title",
|
|
59
|
-
onClick: () =>
|
|
62
|
+
onClick: () => m?.(t),
|
|
60
63
|
children: /* @__PURE__ */ e.jsx(w, { children: n || "" })
|
|
61
64
|
}
|
|
62
65
|
)
|
|
63
66
|
]
|
|
64
67
|
}
|
|
65
68
|
);
|
|
66
|
-
}, [c,
|
|
69
|
+
}, [s, c, h, m, i, x, a]);
|
|
67
70
|
return /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
|
|
68
71
|
/* @__PURE__ */ e.jsxs(
|
|
69
72
|
"div",
|
|
70
73
|
{
|
|
71
74
|
className: C("anchor-menu-item", {
|
|
72
|
-
active:
|
|
73
|
-
expanded:
|
|
75
|
+
active: a,
|
|
76
|
+
expanded: c?.[d]?.expanded
|
|
74
77
|
}),
|
|
75
78
|
children: [
|
|
76
79
|
N,
|
|
@@ -78,18 +81,18 @@ const P = (a) => {
|
|
|
78
81
|
]
|
|
79
82
|
}
|
|
80
83
|
),
|
|
81
|
-
|
|
82
|
-
|
|
84
|
+
s.children && c?.[d]?.expanded && !f && s.children.map((n) => /* @__PURE__ */ A(
|
|
85
|
+
y,
|
|
83
86
|
{
|
|
84
|
-
...
|
|
87
|
+
...l,
|
|
85
88
|
data: n,
|
|
86
89
|
key: n?.id,
|
|
87
|
-
level:
|
|
90
|
+
level: r + 1
|
|
88
91
|
}
|
|
89
92
|
))
|
|
90
93
|
] });
|
|
91
|
-
},
|
|
94
|
+
}, P = () => /* @__PURE__ */ e.jsx("div", { className: "icon mr-6", children: /* @__PURE__ */ e.jsx("div", { className: "icon-point" }) });
|
|
92
95
|
export {
|
|
93
|
-
|
|
96
|
+
y as default
|
|
94
97
|
};
|
|
95
98
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Anchor",
|
|
3
|
+
"category": "Navigation",
|
|
4
|
+
"description": "页面内锚点导航——自动生成目录侧栏并监听内容区滚动高亮目录项,点击目录项内置滚动定位行为。高度约束写在 Anchor 直接父 div 上,无限高度时内部不产生滚动。",
|
|
5
|
+
"semantic": {
|
|
6
|
+
"intent": [
|
|
7
|
+
"快速定位",
|
|
8
|
+
"内容索引"
|
|
9
|
+
],
|
|
10
|
+
"useCases": [
|
|
11
|
+
"长文档",
|
|
12
|
+
"API 文档",
|
|
13
|
+
"单页应用"
|
|
14
|
+
],
|
|
15
|
+
"riskLevel": "low"
|
|
16
|
+
},
|
|
17
|
+
"variants": {
|
|
18
|
+
"default": {
|
|
19
|
+
"meaning": "标准锚点"
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
"states": [
|
|
23
|
+
"active",
|
|
24
|
+
"default"
|
|
25
|
+
],
|
|
26
|
+
"idealProps": {
|
|
27
|
+
"children": {
|
|
28
|
+
"type": "ReactNode",
|
|
29
|
+
"description": "内容区,放置带 `id` 属性的各章节 div;Anchor 通过监听滚动位置高亮左侧目录。⚠️ children 是必需的,缺少会导致锚点无法定位",
|
|
30
|
+
"required": true
|
|
31
|
+
},
|
|
32
|
+
"list": {
|
|
33
|
+
"type": "AnchorItem[]",
|
|
34
|
+
"typeDefinition": "interface AnchorItem { name: string; id: string; children?: AnchorItem[]; expanded?: boolean }",
|
|
35
|
+
"description": "目录数据源。**AnchorItem 字段一览(仅 name + id 必填)**:① name: string — 侧栏显示文案;② id: string — 对应 children 内章节 `<div id={item.id}>` 的 DOM id(Anchor 内部用 id 定位高亮,大小写必须精确一致;建议仅用字母/数字/-/_,避免 CSS 选择器特殊字符;若业务数据字段是 href='#intro',映射时去掉 # 前缀:`id: s.href.replace(/^#/, '')`);③ children?: AnchorItem[] — 多级嵌套(自动渲染为缩进树,建议 ≤3 级;递归时复用同一映射函数);④ expanded?: boolean — 该项初始展开态(default false;⚠️ 与 allExpanded prop 完全独立:allExpanded 控制顶部「全部展开」按钮可见性,不等于初始全展开;初始全展开需对每个含 children 的 AnchorItem 设 expanded:true)。完整 TS 定义:interface AnchorItem { name: string; id: string; children?: AnchorItem[]; expanded?: boolean }(parentId 是 Anchor 内部字段,业务传 list 时无需提供)。"
|
|
36
|
+
},
|
|
37
|
+
"scrollId": {
|
|
38
|
+
"type": "string",
|
|
39
|
+
"default": "\"paraui-v4-anchor-scroll-id\"",
|
|
40
|
+
"description": "**Anchor 内部自动创建的滚动容器 DOM id**——业务方只需传一个全局唯一字符串,Anchor 会在渲染时自动创建 `<div id={scrollId}>` 并把 children 放入其中;**不需要在 children 外部或内部手动创建该 div**。Anchor 对此 div 监听 scroll 事件 + 用 `[id]` 选择器定位高亮目录项。单页只有一个 Anchor 时可省略(默认 'paraui-v4-anchor-scroll-id');同页多个 Anchor 实例必须各自传不同的 scrollId 以隔离滚动监听。scrollId 查找:Anchor 内部用 `document.getElementById(scrollId)` 获取滚动容器——正常渲染后此 div 必然存在,无需业务方手动创建。"
|
|
41
|
+
},
|
|
42
|
+
"title": {
|
|
43
|
+
"type": "ReactNode",
|
|
44
|
+
"description": "目录标题;只有传 title 才显示折叠按钮 / 全部展开按钮 / search 搜索框。**(R6 §6 类型放宽:从 string → ReactNode)**——支持嵌入徽标 / 计数 / 动态状态文本(如 `<span>目录<Tag>当前: intro</Tag></span>`)。string 是 ReactNode 子集,完全向后兼容旧 string 用法。详见 BREAKING-CHANGES §维护规则边界(类型 widening 不入档)+ discussions/Anchor-title-reactnode.md"
|
|
45
|
+
},
|
|
46
|
+
"placement": {
|
|
47
|
+
"type": "'left' | 'right'",
|
|
48
|
+
"values": ["left", "right"],
|
|
49
|
+
"default": "'right'",
|
|
50
|
+
"description": "目录位于内容的左侧还是右侧。⚠️ 默认 'right'(目录在右侧);要实现左侧目录须显式传 placement='left'"
|
|
51
|
+
},
|
|
52
|
+
"search": {
|
|
53
|
+
"type": "boolean",
|
|
54
|
+
"default": false,
|
|
55
|
+
"description": "目录是否带搜索框(按 name 模糊匹配)。需配合 title 使用。"
|
|
56
|
+
},
|
|
57
|
+
"allExpanded": {
|
|
58
|
+
"type": "boolean",
|
|
59
|
+
"default": true,
|
|
60
|
+
"description": "顶部『全部展开』按钮是否启用(控制按钮可见性,不影响 `list[].expanded` 的初始值)。仅在 list 含 children 且传了 title 时生效。\n\n**⚠️ 命名歧义警告(R15+R16 双轮再现 · 3/6 sub-agent 混淆)**:allExpanded 命名容易被理解为「初始全展开」(类似 defaultExpandAll),但实际含义是「全部展开」**按钮**的可见性控制开关:\n- `allExpanded=true`(默认)→ 顶部出现「全部展开」按钮,用户**点击按钮后**才展开全部目录项\n- `allExpanded=false` → 隐藏「全部展开」按钮\n- **若要初始全展开(组件挂载即全展开)**:对 list[] 中每个含 children 的 AnchorItem 设置 `expanded: true`,与 allExpanded prop 无关\n\n**R17 路线图**:正在评审 src rename `allExpanded → expandedAll`(BREAKING,更准确地表达「控制展开按钮」含义),详见 `discussions/Anchor-allExpanded-naming-epic.md`;R17 拍板前 allExpanded 继续有效,0 BREAKING。"
|
|
61
|
+
},
|
|
62
|
+
"listWidth": {
|
|
63
|
+
"type": "number",
|
|
64
|
+
"description": "目录列表宽度(px);不传时默认 140px。"
|
|
65
|
+
},
|
|
66
|
+
"customPrefixIcon": {
|
|
67
|
+
"type": "ReactNode | ((item: AnchorItem, isActive: boolean) => ReactNode)",
|
|
68
|
+
"description": "自定义目录每项的前缀图标。**(R6 §6 类型放宽:从 ReactNode → ReactNode | function)**:<br>- **静态 ReactNode** — 所有目录项共用同一前缀图标(原行为,完全向后兼容)<br>- **函数形式 `(item, isActive) => ReactNode`** — 按当前激活态返回不同 ReactNode(墨水点指示器 / 激活态指示符 / 复选框联动等);函数版每次激活变化触发 list 重渲染,内部 AnchorListMemo 已优化。<br>**初始激活态说明**:页面 mount 时 Anchor 不主动激活任何目录项——需要用户滚动(或点击)触发第一次 scroll 事件后才会激活;初始激活项由滚动位置决定(内部算法:找第一个 offsetTop >= scrollTop 的 [id] 元素)。若需要初始激活特定项,可在 mount 后手动调用 `document.getElementById(SCROLL_ID)?.dispatchEvent(new Event('scroll'))` 触发一次。<br>**业务方仍可走激活态 CSS 联动**(向后兼容):Anchor 内部对激活目录项加 className `.anchor-menu-item.active`(无 prefixCls 前缀,见 src/Anchor/anchorMenu/index.scss:14);可在外层 style 选择器 `:global(.anchor-menu-item.active) [data-ink-dot] { visibility: visible }` 联动。但函数形式更直接、类型安全。详见 discussions/Anchor-customPrefixIcon-function.md(R6 实施选项 B 类型 widening)"
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
"do": [
|
|
72
|
+
"在长页面(如文档)右侧提供 Anchor",
|
|
73
|
+
"Anchor 标题应简洁",
|
|
74
|
+
"把章节 DOM 作为 children 直接传入:`<Anchor list={list} scrollId='xxx'>{sections.map(s => <div id={s.id}>...</div>)}</Anchor>`",
|
|
75
|
+
"list[].id 必须与 children 中对应章节 div 的 id 完全一致(含大小写);建议仅使用 CSS selector 安全字符",
|
|
76
|
+
"业务侧 `{ href, title }` 数据派生 list 时使用 `sections.map(s => ({ name: s.title, id: s.href.replace(/^#/, '') }))` 映射;多级数据写递归映射函数(参见 docs/view/anchor/codeString.ts hrefMappingDemo / nestedMappingDemo)",
|
|
77
|
+
"Anchor 内部滚动容器需要由父级提供有限高度(如 `style={{ height: 400 }}` 或外层 wrapper 设 `height: 100vh`)才能产生滚动;外层高度无限时内容不会滚动,stickyDemo 也无法体现『内容滚动而目录吸顶』效果",
|
|
78
|
+
"需要把激活 id 还原成业务 href 时:用 useEffect 监听 activeId 变化 + 业务侧维护 id->href 反向 map(参见 codeString.ts notifyParentDemo)",
|
|
79
|
+
"需要『吸顶 / 滚动偏移头部 / 激活回调』时:用外层 div 包 `position: sticky; top: 0` 实现吸顶(**前置条件:外层必须有滚动祖先——body 高度 > 视口、或某 wrapper 设了 `overflow:auto/scroll`;⚠️ `overflow:auto/scroll` 是合法滚动祖先,不会导致 sticky 失效——仅 `overflow:hidden` 的祖先会使 sticky 退化为 relative;flex 容器中配合 `alignSelf: flex-start` 避免 stretch 拉满高度**;缺少任一条件则 sticky 退化为 relative);用 `<section style={{ scrollMarginTop: headerOffset }}>` **写在每个章节元素自身** 实现偏移;用容器自定义 `addEventListener('scroll', ...)` 计算激活章节并 onChange 通知父组件——这些不是 Anchor 内置能力"
|
|
80
|
+
],
|
|
81
|
+
"dont": [
|
|
82
|
+
"Anchor 嵌套层级过深 (>3级) —— 设计/视觉建议;src 实现层 formatList 递归无硬限制,违反仅触发缩进过深视觉异常",
|
|
83
|
+
"内容过少的页面使用 Anchor",
|
|
84
|
+
"不要传 `targetOffset` / `affix` / `showInkInFixed` / `onChange` / `items` / `onClick` 等 prop——这些 prop 在 AnchorProps 中不存在,传入会被 React 忽略且能力不会生效",
|
|
85
|
+
"不要在 children 内再包一层 `<div id={scrollId}>` 自管理滚动——Anchor 已内部包了 `<div id={scrollId}>`",
|
|
86
|
+
"不要把 `scrollPaddingTop` 写在 children 内的 wrapper 上——`scrollPaddingTop` 仅对滚动容器生效(即 Anchor 内部 `<div id={scrollId}>`,外部无法直接访问);偏移请用 `scrollMarginTop` 写在**每个章节元素自身**上"
|
|
87
|
+
],
|
|
88
|
+
"events": {
|
|
89
|
+
"onClickItem (via AnchorMenu internal)": {
|
|
90
|
+
"signature": "内部点击目录项时调用 handleClick(id: string),无外部事件 prop",
|
|
91
|
+
"asyncSupported": false,
|
|
92
|
+
"examples": [
|
|
93
|
+
"点击目录项时 Anchor 内部调用 scrollTo 滚动到对应章节,无需业务方处理",
|
|
94
|
+
"需要监听激活变化时,用外层 wrapper 的 addEventListener('scroll', ...) 计算当前 id",
|
|
95
|
+
"需要把 activeId 回传父组件:用 useEffect 监听 scrollId 容器的 scroll 事件 + 业务侧 id→href 反向 map"
|
|
96
|
+
],
|
|
97
|
+
"commonMistakes": [
|
|
98
|
+
"传 onChange prop 期望激活目录项变化时被回调——Anchor 不存在 onChange prop",
|
|
99
|
+
"传 onClick prop 期望拦截目录项点击——AnchorProps 无此 prop,传入会被 React 忽略",
|
|
100
|
+
"期望 customPrefixIcon 在点击瞬间触发回调——它只是渲染函数,激活态变化驱动重渲染"
|
|
101
|
+
]
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
"typescriptPitfalls": [
|
|
105
|
+
{
|
|
106
|
+
"issue": "AnchorItem 无法从 @para-ui/core/Anchor 直接命名导出——Anchor/index.tsx 只有默认导出,AnchorItem 定义在 Anchor/type.ts",
|
|
107
|
+
"wrong": "import type { AnchorItem } from '@para-ui/core/Anchor'; // TS2614: 无此命名导出",
|
|
108
|
+
"right": "import type { AnchorItem } from '@para-ui/core/Anchor/type'; // 从 type.ts 子路径导入"
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
"issue": "AnchorItem 的 id 必须与 children 内章节 div 的 DOM id 完全一致(大小写敏感)",
|
|
112
|
+
"wrong": "// list: [{ name: '介绍', id: 'Introduction' }]\n// children: <div id='introduction'> // 大小写不同,无法高亮",
|
|
113
|
+
"right": "// 保持一致且使用 CSS selector 安全字符\n// list: [{ name: '介绍', id: 'introduction' }]\n// children: <div id='introduction'>..."
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"issue": "title prop 从 string 扩宽到 ReactNode,但 allExpanded 是控制按钮可见性,不是初始全展开",
|
|
117
|
+
"wrong": "// 以为 allExpanded=true 会初始展开所有目录项\n<Anchor allExpanded={true} list={tree} /> // 实际只是显示'全部展开'按钮",
|
|
118
|
+
"right": "// 初始全展开需要对每个含 children 的 AnchorItem 设 expanded: true\nconst tree = data.map(item => ({ ...item, expanded: true, children: item.children?.map(c => ({ ...c, expanded: true })) }))"
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"issue": "customPrefixIcon 函数形式的参数类型必须显式标注,避免 noImplicitAny 报错",
|
|
122
|
+
"wrong": "// 内联函数不标注类型\n<Anchor customPrefixIcon={(item, isActive) => <span />} /> // TS7006: item 隐式 any",
|
|
123
|
+
"right": "import type { AnchorItem } from '@para-ui/core/Anchor';\n<Anchor customPrefixIcon={(item: AnchorItem, isActive: boolean) => <span style={{ color: isActive ? 'blue' : 'gray' }}>•</span>} />"
|
|
124
|
+
}
|
|
125
|
+
],
|
|
126
|
+
"mapping": {
|
|
127
|
+
"realComponent": "Anchor",
|
|
128
|
+
"adapter": null
|
|
129
|
+
}
|
|
130
|
+
}
|
package/es/Anchor/index.js
CHANGED
|
@@ -1,59 +1,62 @@
|
|
|
1
1
|
import { j as r } from "../_virtual/jsx-runtime.js";
|
|
2
|
-
import { useState as f, useRef as
|
|
2
|
+
import { useState as f, useRef as Y, useEffect as D, useMemo as E } from "react";
|
|
3
3
|
import L from "clsx";
|
|
4
4
|
import { $prefixCls as C } from "../GlobalContext/constant.js";
|
|
5
|
-
import
|
|
6
|
-
import { ToRight as
|
|
7
|
-
import { ToLeft as
|
|
8
|
-
import { PreviewOpen as
|
|
9
|
-
import { Search as
|
|
10
|
-
import
|
|
11
|
-
import
|
|
12
|
-
import { Throttle as
|
|
5
|
+
import Z from "./anchorMenu/index.js";
|
|
6
|
+
import { ToRight as W } from "../node_modules/@para-ui/icons/ToRight/index.js";
|
|
7
|
+
import { ToLeft as z } from "../node_modules/@para-ui/icons/ToLeft/index.js";
|
|
8
|
+
import { PreviewOpen as _ } from "../node_modules/@para-ui/icons/PreviewOpen/index.js";
|
|
9
|
+
import { Search as ee } from "../Search/index.js";
|
|
10
|
+
import re from "../GlobalContext/useFormatMessage.js";
|
|
11
|
+
import ne from "./lang/index.js";
|
|
12
|
+
import { Throttle as se, Debounce as oe } from "@snack-kit/lib";
|
|
13
13
|
import './index.css';/* empty css */
|
|
14
|
-
const
|
|
14
|
+
const Te = (N) => {
|
|
15
15
|
const {
|
|
16
|
-
style:
|
|
17
|
-
className:
|
|
16
|
+
style: J,
|
|
17
|
+
className: G,
|
|
18
18
|
title: T = "",
|
|
19
19
|
scrollId: j = `${C}-anchor-scroll-id`,
|
|
20
20
|
list: d = [],
|
|
21
21
|
listClassName: M,
|
|
22
|
-
scrollClassName:
|
|
22
|
+
scrollClassName: H,
|
|
23
23
|
placement: a = "right",
|
|
24
|
-
allExpanded:
|
|
25
|
-
search:
|
|
24
|
+
allExpanded: K = !0,
|
|
25
|
+
search: Q = !1,
|
|
26
26
|
customPrefixIcon: S,
|
|
27
27
|
listWidth: m
|
|
28
|
-
} = N,
|
|
28
|
+
} = N, U = re("Anchor", ne), [V, O] = f(""), [x, X] = f(!1), [u, A] = f({}), [v, R] = f(!1), [$, k] = f(""), [p, y] = f(null), o = Y({
|
|
29
29
|
currentAnchorId: "",
|
|
30
30
|
anchorList: d,
|
|
31
31
|
anchorMap: {},
|
|
32
32
|
searchValue: "",
|
|
33
33
|
scrolling: !1
|
|
34
34
|
}), w = v ? "50px" : m ? `${m + 20}px` : "160px";
|
|
35
|
-
|
|
35
|
+
D(() => {
|
|
36
36
|
o.current.anchorList = d;
|
|
37
37
|
const e = {};
|
|
38
38
|
let n = !1;
|
|
39
|
-
const t = (h,
|
|
39
|
+
const t = (h, c = "") => {
|
|
40
40
|
h.forEach((s) => {
|
|
41
|
-
(s?.expanded === void 0 || s?.expanded === null) && (s.expanded = !1),
|
|
41
|
+
(s?.expanded === void 0 || s?.expanded === null) && (s.expanded = !1), c && (s.parentId = c), e[s.id] = s, s.children && (n = !0, t(s.children, s.id));
|
|
42
42
|
});
|
|
43
43
|
};
|
|
44
|
-
t(d),
|
|
45
|
-
}, [d]),
|
|
46
|
-
const e = document.getElementById(j), n =
|
|
44
|
+
t(d), X(n), o.current.anchorMap = e, A(e);
|
|
45
|
+
}, [d]), D(() => {
|
|
46
|
+
const e = document.getElementById(j), n = se(async () => {
|
|
47
47
|
if (o.current.scrolling) return;
|
|
48
|
-
const t = e?.querySelectorAll("[id]") || [],
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
48
|
+
const t = e?.querySelectorAll("[id]") || [], c = Array.from(t).map((l) => {
|
|
49
|
+
const q = l;
|
|
50
|
+
return {
|
|
51
|
+
id: q.id,
|
|
52
|
+
offsetTop: q.offsetTop - (e?.offsetTop || 0)
|
|
53
|
+
};
|
|
54
|
+
});
|
|
52
55
|
let s = 0, i = "";
|
|
53
|
-
const I =
|
|
56
|
+
const I = c.find((l) => (s < l.offsetTop && (s = l.offsetTop, i = l.id), l.offsetTop >= (e?.scrollTop || 0)));
|
|
54
57
|
if (I?.id !== o.current.currentAnchorId) {
|
|
55
|
-
let
|
|
56
|
-
e?.scrollTop && !I?.id && (
|
|
58
|
+
let l = I?.id || "";
|
|
59
|
+
e?.scrollTop && !I?.id && (l = i), O(l);
|
|
57
60
|
}
|
|
58
61
|
}, 300);
|
|
59
62
|
return n(), e?.addEventListener("scroll", n, { passive: !0 }), () => {
|
|
@@ -61,11 +64,11 @@ const ge = (N) => {
|
|
|
61
64
|
};
|
|
62
65
|
}, []);
|
|
63
66
|
const b = (e) => {
|
|
64
|
-
const n = document.getElementById(j), t = n?.querySelectorAll("[id]") || [], h = Array.from(t).findIndex((s) => String(s.id) === String(e)),
|
|
65
|
-
|
|
67
|
+
const n = document.getElementById(j), t = n?.querySelectorAll("[id]") || [], h = Array.from(t).findIndex((s) => String(s.id) === String(e)), c = t[h];
|
|
68
|
+
c && (O(e), o.current.currentAnchorId = e, o.current.scrolling = !0, setTimeout(() => {
|
|
66
69
|
o.current.scrolling = !1;
|
|
67
70
|
}, 1e3), n?.scrollTo({
|
|
68
|
-
top:
|
|
71
|
+
top: c?.offsetTop || 0 - (n?.offsetTop || 0),
|
|
69
72
|
behavior: "smooth"
|
|
70
73
|
}));
|
|
71
74
|
}, B = () => {
|
|
@@ -73,14 +76,14 @@ const ge = (N) => {
|
|
|
73
76
|
u[e].expanded = !0;
|
|
74
77
|
}), A({ ...u });
|
|
75
78
|
}, g = E(
|
|
76
|
-
() =>
|
|
79
|
+
() => oe(async () => {
|
|
77
80
|
const e = o.current.searchValue;
|
|
78
81
|
if (!e) {
|
|
79
82
|
y(null);
|
|
80
83
|
return;
|
|
81
84
|
}
|
|
82
|
-
const n = o.current.anchorList || [], t = [], h = (
|
|
83
|
-
|
|
85
|
+
const n = o.current.anchorList || [], t = [], h = (c, s = "") => {
|
|
86
|
+
c.forEach((i) => {
|
|
84
87
|
i?.name?.indexOf(e) > -1 && t.push(i), i.children && h(i.children, i.id);
|
|
85
88
|
});
|
|
86
89
|
};
|
|
@@ -91,15 +94,15 @@ const ge = (N) => {
|
|
|
91
94
|
/* @__PURE__ */ r.jsxs("div", { className: "anchor-menu-title", children: [
|
|
92
95
|
/* @__PURE__ */ r.jsx("div", { className: "title", children: T }),
|
|
93
96
|
/* @__PURE__ */ r.jsxs("div", { className: "opera-area", children: [
|
|
94
|
-
x &&
|
|
95
|
-
/* @__PURE__ */ r.jsx(
|
|
97
|
+
x && K && /* @__PURE__ */ r.jsxs(r.Fragment, { children: [
|
|
98
|
+
/* @__PURE__ */ r.jsx(_, { onClick: B }),
|
|
96
99
|
/* @__PURE__ */ r.jsx("div", { className: "split-line" })
|
|
97
100
|
] }),
|
|
98
|
-
/* @__PURE__ */ r.jsx("div", { onClick: () => R(!0), children: a === "left" ? /* @__PURE__ */ r.jsx(
|
|
101
|
+
/* @__PURE__ */ r.jsx("div", { onClick: () => R(!0), children: a === "left" ? /* @__PURE__ */ r.jsx(z, {}) : /* @__PURE__ */ r.jsx(W, {}) })
|
|
99
102
|
] })
|
|
100
103
|
] }),
|
|
101
|
-
|
|
102
|
-
|
|
104
|
+
Q && /* @__PURE__ */ r.jsx(
|
|
105
|
+
ee,
|
|
103
106
|
{
|
|
104
107
|
size: "small",
|
|
105
108
|
value: $,
|
|
@@ -111,7 +114,7 @@ const ge = (N) => {
|
|
|
111
114
|
onClear: () => {
|
|
112
115
|
k(""), o.current.searchValue = "", y(null);
|
|
113
116
|
},
|
|
114
|
-
placeholder:
|
|
117
|
+
placeholder: U("pleaseEnter"),
|
|
115
118
|
style: { padding: "0 4px", marginBottom: "6px" }
|
|
116
119
|
}
|
|
117
120
|
)
|
|
@@ -123,7 +126,7 @@ const ge = (N) => {
|
|
|
123
126
|
{
|
|
124
127
|
className: "collapse-icon-area",
|
|
125
128
|
onClick: () => R(!1),
|
|
126
|
-
children: a === "left" ? /* @__PURE__ */ r.jsx(
|
|
129
|
+
children: a === "left" ? /* @__PURE__ */ r.jsx(W, {}) : /* @__PURE__ */ r.jsx(z, {})
|
|
127
130
|
}
|
|
128
131
|
);
|
|
129
132
|
const e = p || d;
|
|
@@ -137,7 +140,7 @@ const ge = (N) => {
|
|
|
137
140
|
children: [
|
|
138
141
|
F,
|
|
139
142
|
e.map((n, t) => /* @__PURE__ */ r.jsx(
|
|
140
|
-
|
|
143
|
+
Z,
|
|
141
144
|
{
|
|
142
145
|
data: n,
|
|
143
146
|
currentAnchorId: V,
|
|
@@ -168,17 +171,17 @@ const ge = (N) => {
|
|
|
168
171
|
return /* @__PURE__ */ r.jsxs(
|
|
169
172
|
"div",
|
|
170
173
|
{
|
|
171
|
-
className: L(`${C}-anchor`,
|
|
174
|
+
className: L(`${C}-anchor`, G, {
|
|
172
175
|
[`${C}-anchor-${a}`]: a
|
|
173
176
|
}),
|
|
174
|
-
style:
|
|
177
|
+
style: J,
|
|
175
178
|
children: [
|
|
176
179
|
a === "left" && P,
|
|
177
180
|
/* @__PURE__ */ r.jsx(
|
|
178
181
|
"div",
|
|
179
182
|
{
|
|
180
183
|
id: j,
|
|
181
|
-
className: L("anchor-scroll",
|
|
184
|
+
className: L("anchor-scroll", H),
|
|
182
185
|
style: {
|
|
183
186
|
paddingLeft: a === "left" ? w : "0",
|
|
184
187
|
paddingRight: a === "right" ? w : "0"
|
|
@@ -192,6 +195,6 @@ const ge = (N) => {
|
|
|
192
195
|
);
|
|
193
196
|
};
|
|
194
197
|
export {
|
|
195
|
-
|
|
198
|
+
Te as default
|
|
196
199
|
};
|
|
197
200
|
//# sourceMappingURL=index.js.map
|
package/es/Anchor/type.d.ts
CHANGED
|
@@ -18,8 +18,8 @@ export interface AnchorProps {
|
|
|
18
18
|
style?: React.CSSProperties;
|
|
19
19
|
/** 类名 */
|
|
20
20
|
className?: string;
|
|
21
|
-
/** 标题 */
|
|
22
|
-
title?:
|
|
21
|
+
/** 标题(R6 §6 类型放宽:string → ReactNode,支持嵌入徽标/计数/动态状态文本;string 是 ReactNode 子集,完全向后兼容) */
|
|
22
|
+
title?: ReactNode;
|
|
23
23
|
/** 滚动盒子Id */
|
|
24
24
|
scrollId?: string;
|
|
25
25
|
/** 子元素 */
|
|
@@ -31,8 +31,12 @@ export interface AnchorProps {
|
|
|
31
31
|
/** 位置 */
|
|
32
32
|
placement?: 'left' | 'right';
|
|
33
33
|
/** 默认展示的锚点 */
|
|
34
|
-
/**
|
|
35
|
-
|
|
34
|
+
/**
|
|
35
|
+
* 自定义前缀符号(R6 §6 类型放宽):
|
|
36
|
+
* - 静态 ReactNode — 所有目录项共用同一前缀图标(原行为)
|
|
37
|
+
* - 函数形式 `(item, isActive) => ReactNode` — 按当前激活态返回不同 ReactNode(墨水点指示器等激活态联动场景);函数版本每次激活变化触发 list 重渲染,内部 AnchorListMemo 已优化
|
|
38
|
+
*/
|
|
39
|
+
customPrefixIcon?: ReactNode | ((item: AnchorItem, isActive: boolean) => ReactNode);
|
|
36
40
|
/** 全部展开功能是否开启 */
|
|
37
41
|
allExpanded?: boolean;
|
|
38
42
|
/** 是否带目录搜索 */
|