weifuwu 0.85.0 → 0.87.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/README.md +56 -45
- package/content/apps/admin.md +55 -0
- package/content/apps/agent-platform.md +35 -0
- package/content/apps/auth.md +49 -0
- package/content/apps/multi.md +44 -0
- package/content/apps/todo.md +51 -0
- package/content/backend/ai.md +28 -0
- package/content/backend/auth.md +20 -0
- package/content/backend/email.md +23 -0
- package/content/backend/graphql.md +23 -0
- package/content/backend/http.md +23 -0
- package/content/backend/limit.md +23 -0
- package/content/backend/middleware.md +17 -0
- package/content/backend/queue.md +23 -0
- package/content/backend/redis.md +26 -0
- package/content/backend/router.md +23 -0
- package/content/backend/schedule.md +23 -0
- package/content/backend/sql.md +27 -0
- package/content/backend/sse.md +26 -0
- package/content/backend/ws.md +26 -0
- package/content/capabilities/app-node.md +21 -0
- package/content/capabilities/data.md +21 -0
- package/content/capabilities/events.md +21 -0
- package/content/capabilities/hooks.md +22 -0
- package/content/capabilities/i18n.md +21 -0
- package/content/capabilities/popup.md +21 -0
- package/content/capabilities/render-only.md +23 -0
- package/content/capabilities/router.md +22 -0
- package/content/capabilities/self-id.md +21 -0
- package/content/capabilities/store.md +21 -0
- package/content/capabilities/theme.md +21 -0
- package/content/capabilities/two-phase.md +21 -0
- package/content/components/accordion.md +50 -0
- package/content/components/actionsheet.md +46 -0
- package/content/components/affix.md +51 -0
- package/content/components/aichat.md +57 -0
- package/content/components/alert.md +52 -0
- package/content/components/alertgroup.md +45 -0
- package/content/components/anchor.md +52 -0
- package/content/components/app.md +37 -0
- package/content/components/approvalcard.md +56 -0
- package/content/components/appshell.md +50 -0
- package/content/components/aspectratio.md +47 -0
- package/content/components/authpage.md +61 -0
- package/content/components/autocomplete-v2.md +40 -0
- package/content/components/autocomplete.md +56 -0
- package/content/components/avatar.md +51 -0
- package/content/components/avatargroup.md +47 -0
- package/content/components/backtop.md +53 -0
- package/content/components/badge.md +55 -0
- package/content/components/breadcrumb.md +49 -0
- package/content/components/button.md +63 -0
- package/content/components/calendar-v2.md +40 -0
- package/content/components/calendar.md +50 -0
- package/content/components/card.md +58 -0
- package/content/components/carousel.md +52 -0
- package/content/components/cascader-v2.md +39 -0
- package/content/components/cascader.md +54 -0
- package/content/components/chart.md +53 -0
- package/content/components/chatinput.md +63 -0
- package/content/components/checkbox.md +51 -0
- package/content/components/checkboxgroup.md +52 -0
- package/content/components/citationcard.md +48 -0
- package/content/components/codeblock.md +48 -0
- package/content/components/codeeditor.md +47 -0
- package/content/components/collapse.md +49 -0
- package/content/components/colorpicker.md +50 -0
- package/content/components/command.md +50 -0
- package/content/components/confirm.md +57 -0
- package/content/components/contextmenu.md +48 -0
- package/content/components/copybutton.md +51 -0
- package/content/components/datepicker.md +52 -0
- package/content/components/descriptions-v2.md +39 -0
- package/content/components/descriptions.md +52 -0
- package/content/components/diffview-v2.md +39 -0
- package/content/components/diffview.md +50 -0
- package/content/components/divider.md +48 -0
- package/content/components/drawer.md +55 -0
- package/content/components/dropdown.md +53 -0
- package/content/components/editor.md +49 -0
- package/content/components/emptystate.md +51 -0
- package/content/components/exportcsv.md +38 -0
- package/content/components/field.md +54 -0
- package/content/components/filepreview-office.md +37 -0
- package/content/components/filepreview.md +49 -0
- package/content/components/filetree.md +56 -0
- package/content/components/fileupload-v2.md +39 -0
- package/content/components/fileupload.md +57 -0
- package/content/components/floatbutton.md +52 -0
- package/content/components/form-v2.md +41 -0
- package/content/components/form.md +60 -0
- package/content/components/grid.md +51 -0
- package/content/components/highlight-v2.md +39 -0
- package/content/components/highlight.md +46 -0
- package/content/components/hovercard.md +51 -0
- package/content/components/icon.md +50 -0
- package/content/components/imagecropper.md +45 -0
- package/content/components/img.md +56 -0
- package/content/components/infinitescroll-v2.md +40 -0
- package/content/components/infinitescroll.md +54 -0
- package/content/components/input.md +65 -0
- package/content/components/inputnumber.md +58 -0
- package/content/components/inview.md +56 -0
- package/content/components/jsonschemaform.md +53 -0
- package/content/components/jsonviewer-v2.md +39 -0
- package/content/components/jsonviewer.md +49 -0
- package/content/components/kanban.md +46 -0
- package/content/components/label.md +48 -0
- package/content/components/layout.md +54 -0
- package/content/components/layoutcontent.md +43 -0
- package/content/components/layoutheader.md +43 -0
- package/content/components/layoutsider.md +43 -0
- package/content/components/link.md +52 -0
- package/content/components/list.md +44 -0
- package/content/components/loading.md +45 -0
- package/content/components/logviewer-v2.md +39 -0
- package/content/components/logviewer.md +53 -0
- package/content/components/markdown.md +51 -0
- package/content/components/markdowneditor.md +47 -0
- package/content/components/math.md +42 -0
- package/content/components/mentions-v2.md +39 -0
- package/content/components/mentions.md +52 -0
- package/content/components/menu.md +56 -0
- package/content/components/menubar.md +44 -0
- package/content/components/messagebubble.md +50 -0
- package/content/components/modal.md +59 -0
- package/content/components/navmenu.md +47 -0
- package/content/components/notification.md +51 -0
- package/content/components/pageheader.md +53 -0
- package/content/components/pagination.md +49 -0
- package/content/components/paragraph.md +45 -0
- package/content/components/passwordinput.md +57 -0
- package/content/components/pininput-v2.md +39 -0
- package/content/components/pininput.md +50 -0
- package/content/components/pipeline.md +49 -0
- package/content/components/popconfirm.md +58 -0
- package/content/components/popover.md +61 -0
- package/content/components/progressbar.md +50 -0
- package/content/components/prompttemplate.md +49 -0
- package/content/components/qrcode.md +50 -0
- package/content/components/radiogroup.md +53 -0
- package/content/components/rate.md +53 -0
- package/content/components/reasoningblock.md +47 -0
- package/content/components/relationgraph.md +52 -0
- package/content/components/resizable.md +53 -0
- package/content/components/result.md +49 -0
- package/content/components/scrollbar.md +49 -0
- package/content/components/searchinput.md +51 -0
- package/content/components/segmentedcontrol.md +59 -0
- package/content/components/select-searchable.md +47 -0
- package/content/components/select.md +66 -0
- package/content/components/sessionlist.md +52 -0
- package/content/components/sheetgrid.md +44 -0
- package/content/components/skeleton.md +55 -0
- package/content/components/slidecanvas.md +44 -0
- package/content/components/slider.md +62 -0
- package/content/components/sortablelist.md +39 -0
- package/content/components/space.md +52 -0
- package/content/components/sparkline.md +52 -0
- package/content/components/statcard-countdown.md +39 -0
- package/content/components/statcard.md +56 -0
- package/content/components/steps.md +48 -0
- package/content/components/switch.md +50 -0
- package/content/components/tabbar.md +45 -0
- package/content/components/table-v2.md +40 -0
- package/content/components/table.md +66 -0
- package/content/components/tabs.md +56 -0
- package/content/components/tag.md +51 -0
- package/content/components/tagsinput-v2.md +39 -0
- package/content/components/tagsinput.md +54 -0
- package/content/components/text.md +45 -0
- package/content/components/textarea.md +57 -0
- package/content/components/themeswitch.md +69 -0
- package/content/components/timeline.md +50 -0
- package/content/components/title.md +45 -0
- package/content/components/toast.md +52 -0
- package/content/components/toggle-togglegroup.md +52 -0
- package/content/components/togglegroup.md +47 -0
- package/content/components/toolcallcard.md +51 -0
- package/content/components/tooltip.md +50 -0
- package/content/components/tour.md +50 -0
- package/content/components/transfer.md +52 -0
- package/content/components/tree-v2.md +39 -0
- package/content/components/tree.md +59 -0
- package/content/components/treeselect.md +54 -0
- package/content/components/typography.md +51 -0
- package/content/components/videoplayer.md +52 -0
- package/content/components/virtuallist.md +52 -0
- package/content/components/virtualtable-v2.md +39 -0
- package/content/components/virtualtable.md +55 -0
- package/content/components/watermark.md +53 -0
- package/content/components/wave.md +43 -0
- package/content/guides/ai-chat-family.md +24 -0
- package/content/guides/choose.md +67 -0
- package/content/guides/component-model.md +32 -0
- package/content/guides/component-standards.md +123 -0
- package/{docs/components.md → content/guides/components-guide.md} +153 -7
- package/{docs/custom-components.md → content/guides/custom-component.md} +70 -55
- package/{docs/data.md → content/guides/data-guide.md} +5 -2
- package/content/guides/file-preview-family.md +18 -0
- package/{docs → content/guides}/frontend.md +122 -52
- package/content/guides/layout-choice.md +64 -0
- package/{docs/layout.md → content/guides/layout-guide.md} +12 -8
- package/{docs/frontend-middleware.md → content/guides/middleware.md} +34 -3
- package/{docs/mobile.md → content/guides/mobile-guide.md} +20 -24
- package/content/guides/page-building.md +98 -0
- package/content/guides/production.md +37 -0
- package/content/guides/quality.md +60 -0
- package/{docs/realtime.md → content/guides/realtime-guide.md} +6 -3
- package/content/guides/render-only.md +44 -0
- package/{docs/saas.md → content/guides/saas-guide.md} +8 -5
- package/{docs/server.md → content/guides/server-guide.md} +5 -2
- package/content/guides/start.md +41 -0
- package/{docs → content/guides}/styling.md +5 -1
- package/{docs/frontend-ui-dom.md → content/guides/ui-dom-guide.md} +7 -1
- package/content/index.json +4344 -0
- package/content/index.md +181 -0
- package/content/layout/align.md +20 -0
- package/content/layout/anchor.md +19 -0
- package/content/layout/app-shell.md +23 -0
- package/content/layout/border.md +20 -0
- package/content/layout/center.md +19 -0
- package/content/layout/cluster.md +19 -0
- package/content/layout/container.md +19 -0
- package/content/layout/fill.md +19 -0
- package/content/layout/grid.md +19 -0
- package/content/layout/hidden.md +22 -0
- package/content/layout/layer.md +19 -0
- package/content/layout/position.md +22 -0
- package/content/layout/row.md +23 -0
- package/content/layout/safe-area.md +20 -0
- package/content/layout/scroll.md +21 -0
- package/content/layout/spacing.md +22 -0
- package/content/layout/split.md +19 -0
- package/content/layout/stack.md +19 -0
- package/content/layout/surface.md +23 -0
- package/content/layout/text.md +22 -0
- package/content/patterns/app-shell.md +34 -0
- package/content/patterns/dashboard.md +36 -0
- package/content/patterns/data-screen.md +30 -0
- package/content/patterns/detail-page.md +31 -0
- package/content/patterns/docs.md +34 -0
- package/content/patterns/focus-task.md +34 -0
- package/content/patterns/landing.md +35 -0
- package/content/patterns/list-page.md +32 -0
- package/content/patterns/mobile.md +31 -0
- package/content/patterns/settings-page.md +33 -0
- package/content/patterns/workspace.md +32 -0
- package/dist/cli/apps-typecheck.test.d.ts +11 -0
- package/dist/cli/docs.d.ts +2 -0
- package/dist/cli/docs.mjs +10961 -0
- package/dist/cli/home-flash.test.d.ts +1 -0
- package/dist/{components → client/components}/Accordion/Accordion.d.ts +1 -1
- package/dist/client/components/ActionSheet/ActionSheet.d.ts +37 -0
- package/dist/{components → client/components}/Affix/Affix.d.ts +1 -1
- package/dist/{components → client/components}/AiChat/AiChat.d.ts +3 -3
- package/dist/{components → client/components}/Alert/Alert.d.ts +1 -1
- package/dist/{components → client/components}/AlertGroup/AlertGroup.d.ts +1 -1
- package/dist/{components → client/components}/Anchor/Anchor.d.ts +1 -1
- package/dist/client/components/AppShell/AppShell.d.ts +55 -0
- package/dist/{components → client/components}/ApprovalCard/ApprovalCard.d.ts +2 -2
- package/dist/{components → client/components}/AspectRatio/AspectRatio.d.ts +1 -1
- package/dist/{components → client/components}/AuthPage/AuthPage.d.ts +2 -2
- package/dist/{components → client/components}/AutoComplete/AutoComplete.d.ts +1 -1
- package/dist/{components → client/components}/Avatar/Avatar.d.ts +1 -1
- package/dist/{components → client/components}/AvatarGroup/AvatarGroup.d.ts +1 -1
- package/dist/{components → client/components}/BackTop/BackTop.d.ts +1 -1
- package/dist/{components → client/components}/Badge/Badge.d.ts +1 -1
- package/dist/{components → client/components}/Breadcrumb/Breadcrumb.d.ts +1 -1
- package/dist/{components → client/components}/Button/Button.d.ts +1 -1
- package/dist/{components → client/components}/Calendar/Calendar.d.ts +1 -1
- package/dist/{components → client/components}/Card/Card.d.ts +1 -1
- package/dist/{components → client/components}/Carousel/Carousel.d.ts +1 -1
- package/dist/{components → client/components}/Cascader/Cascader.d.ts +1 -1
- package/dist/{components → client/components}/Chart/Chart.d.ts +1 -1
- package/dist/{components → client/components}/Chart/chart-utils.d.ts +5 -1
- package/dist/{components → client/components}/ChatInput/ChatInput.d.ts +7 -7
- package/dist/{components → client/components}/Checkbox/Checkbox.d.ts +1 -1
- package/dist/{components → client/components}/CheckboxGroup/CheckboxGroup.d.ts +1 -1
- package/dist/{components → client/components}/CitationCard/CitationCard.d.ts +3 -3
- package/dist/{components → client/components}/CodeBlock/CodeBlock.d.ts +1 -1
- package/dist/client/components/CodeEditor/CodeEditor.d.ts +18 -0
- package/dist/{components → client/components}/Collapse/Collapse.d.ts +1 -1
- package/dist/{components → client/components}/ColorPicker/ColorPicker.d.ts +1 -1
- package/dist/{components → client/components}/Command/Command.d.ts +1 -1
- package/dist/{components → client/components}/Confirm/Confirm.d.ts +2 -7
- package/dist/{components → client/components}/ContextMenu/ContextMenu.d.ts +1 -1
- package/dist/{components → client/components}/CopyButton/CopyButton.d.ts +1 -1
- package/dist/{components → client/components}/DatePicker/DatePicker.d.ts +2 -2
- package/dist/{components → client/components}/Descriptions/Descriptions.d.ts +1 -1
- package/dist/{components → client/components}/DiffView/DiffView.d.ts +1 -1
- package/dist/{components → client/components}/Divider/Divider.d.ts +1 -1
- package/dist/{components → client/components}/Drawer/Drawer.d.ts +1 -1
- package/dist/{components → client/components}/Dropdown/Dropdown.d.ts +1 -1
- package/dist/client/components/Editor/Editor.d.ts +14 -0
- package/dist/client/components/Editor/edit-events.d.ts +27 -0
- package/dist/client/components/Editor/model/apply.d.ts +23 -0
- package/dist/client/components/Editor/model/diff.d.ts +25 -0
- package/dist/client/components/Editor/model/dom.d.ts +27 -0
- package/dist/client/components/Editor/model/history.d.ts +21 -0
- package/dist/client/components/Editor/model/html.d.ts +16 -0
- package/dist/client/components/Editor/model/inverse.d.ts +20 -0
- package/dist/client/components/Editor/model/types.d.ts +116 -0
- package/dist/client/components/Editor/tools/table.d.ts +10 -0
- package/dist/{components → client/components}/Editor/tools/toolbar.d.ts +2 -2
- package/dist/client/components/Editor/tools/types.d.ts +40 -0
- package/dist/{components → client/components}/EmptyState/EmptyState.d.ts +1 -1
- package/dist/client/components/ExportCSV/ExportCSV.d.ts +30 -0
- package/dist/{components → client/components}/Field/Field.d.ts +1 -1
- package/dist/client/components/FilePreview/FilePreview.d.ts +42 -0
- package/dist/client/components/FilePreview/markdown.d.ts +23 -0
- package/dist/client/components/FileTree/FileTree.d.ts +57 -0
- package/dist/{components → client/components}/FileUpload/FileUpload.d.ts +1 -1
- package/dist/{components → client/components}/FloatButton/FloatButton.d.ts +1 -1
- package/dist/{components → client/components}/Form/Form.d.ts +1 -1
- package/dist/{components → client/components}/Grid/Grid.d.ts +1 -1
- package/dist/{components → client/components}/Highlight/Highlight.d.ts +1 -1
- package/dist/{components → client/components}/HoverCard/HoverCard.d.ts +5 -4
- package/dist/{components → client/components}/Icon/Icon.d.ts +2 -2
- package/dist/client/components/ImageCropper/ImageCropper.d.ts +17 -0
- package/dist/{components → client/components}/Img/Img.d.ts +1 -1
- package/dist/{components → client/components}/InView/InView.d.ts +1 -1
- package/dist/{components → client/components}/InfiniteScroll/InfiniteScroll.d.ts +1 -1
- package/dist/{components → client/components}/Input/Input.d.ts +1 -1
- package/dist/{components → client/components}/InputNumber/InputNumber.d.ts +1 -1
- package/dist/{components → client/components}/JSONViewer/JSONViewer.d.ts +1 -1
- package/dist/{components → client/components}/JsonSchemaForm/JsonSchemaForm.d.ts +3 -3
- package/dist/{components → client/components}/Kanban/Kanban.d.ts +1 -1
- package/dist/{components → client/components}/Label/Label.d.ts +1 -1
- package/dist/{components → client/components}/Layout/Layout.d.ts +1 -1
- package/dist/{components → client/components}/Link/Link.d.ts +1 -1
- package/dist/{components → client/components}/List/List.d.ts +1 -1
- package/dist/{components → client/components}/Loading/Loading.d.ts +1 -1
- package/dist/{components → client/components}/LogViewer/LogViewer.d.ts +1 -1
- package/dist/{components → client/components}/Markdown/Markdown.d.ts +1 -1
- package/dist/client/components/MarkdownEditor/MarkdownEditor.d.ts +18 -0
- package/dist/client/components/Math/Math.d.ts +15 -0
- package/dist/{components → client/components}/Mentions/Mentions.d.ts +1 -1
- package/dist/{components → client/components}/Menu/Menu.d.ts +1 -1
- package/dist/{components → client/components}/Menubar/Menubar.d.ts +1 -1
- package/dist/{components → client/components}/MessageBubble/MessageBubble.d.ts +1 -1
- package/dist/{components → client/components}/Modal/Modal.d.ts +1 -1
- package/dist/{components → client/components}/NavMenu/NavMenu.d.ts +2 -2
- package/dist/{components → client/components}/Notification/Notification.d.ts +7 -2
- package/dist/client/components/OfficeEditor/ai/ai-bridge.d.ts +39 -0
- package/dist/client/components/OfficeEditor/model/apply.d.ts +25 -0
- package/dist/client/components/OfficeEditor/model/types.d.ts +224 -0
- package/dist/{components → client/components}/PageHeader/PageHeader.d.ts +1 -1
- package/dist/{components → client/components}/Pagination/Pagination.d.ts +1 -1
- package/dist/{components → client/components}/PasswordInput/PasswordInput.d.ts +1 -1
- package/dist/{components → client/components}/PinInput/PinInput.d.ts +1 -1
- package/dist/{components → client/components}/Pipeline/Pipeline.d.ts +1 -1
- package/dist/{components → client/components}/Popconfirm/Popconfirm.d.ts +2 -2
- package/dist/{components → client/components}/Popover/Popover.d.ts +5 -4
- package/dist/{components → client/components}/ProgressBar/ProgressBar.d.ts +1 -1
- package/dist/client/components/PromptTemplate/PromptTemplate.d.ts +37 -0
- package/dist/{components → client/components}/QRCode/QRCode.d.ts +1 -1
- package/dist/{components → client/components}/RadioGroup/RadioGroup.d.ts +1 -1
- package/dist/{components → client/components}/Rate/Rate.d.ts +1 -1
- package/dist/{components → client/components}/ReasoningBlock/ReasoningBlock.d.ts +3 -3
- package/dist/client/components/RelationGraph/RelationGraph.d.ts +59 -0
- package/dist/{components → client/components}/Resizable/Resizable.d.ts +1 -1
- package/dist/{components → client/components}/Result/Result.d.ts +1 -1
- package/dist/{components → client/components}/Scrollbar/Scrollbar.d.ts +1 -1
- package/dist/{components → client/components}/SearchInput/SearchInput.d.ts +1 -1
- package/dist/{components → client/components}/SegmentedControl/SegmentedControl.d.ts +1 -1
- package/dist/{components → client/components}/Select/Select.d.ts +1 -1
- package/dist/{components → client/components}/SessionList/SessionList.d.ts +3 -3
- package/dist/client/components/SheetGrid/SheetGrid.d.ts +30 -0
- package/dist/{components → client/components}/Skeleton/Skeleton.d.ts +1 -1
- package/dist/client/components/SlideCanvas/SlideCanvas.d.ts +28 -0
- package/dist/client/components/Slider/Slider.d.ts +27 -0
- package/dist/client/components/SortableList/SortableList.d.ts +23 -0
- package/dist/{components → client/components}/Space/Space.d.ts +1 -1
- package/dist/{components → client/components}/Sparkline/Sparkline.d.ts +1 -1
- package/dist/{components → client/components}/StatCard/StatCard.d.ts +1 -1
- package/dist/{components → client/components}/Steps/Steps.d.ts +1 -1
- package/dist/{components → client/components}/Switch/Switch.d.ts +1 -1
- package/dist/client/components/TabBar/TabBar.d.ts +35 -0
- package/dist/{components → client/components}/Table/Table.d.ts +7 -1
- package/dist/client/components/Tabs/Tabs.d.ts +22 -0
- package/dist/{components → client/components}/Tag/Tag.d.ts +1 -1
- package/dist/{components → client/components}/TagsInput/TagsInput.d.ts +1 -1
- package/dist/{components → client/components}/Textarea/Textarea.d.ts +1 -1
- package/dist/{components → client/components}/ThemeSwitch/ThemeSwitch.d.ts +1 -1
- package/dist/{components → client/components}/Timeline/Timeline.d.ts +1 -1
- package/dist/{components → client/components}/Toast/Toast.d.ts +1 -1
- package/dist/{components → client/components}/ToggleGroup/ToggleGroup.d.ts +1 -1
- package/dist/{components → client/components}/ToolCallCard/ToolCallCard.d.ts +2 -2
- package/dist/{components → client/components}/Tooltip/Tooltip.d.ts +4 -3
- package/dist/{components → client/components}/Tour/Tour.d.ts +1 -1
- package/dist/{components → client/components}/Transfer/Transfer.d.ts +1 -1
- package/dist/{components → client/components}/Tree/Tree.d.ts +5 -1
- package/dist/{components → client/components}/TreeSelect/TreeSelect.d.ts +5 -1
- package/dist/{components → client/components}/Typography/Typography.d.ts +1 -1
- package/dist/client/components/VideoPlayer/VideoPlayer.d.ts +25 -0
- package/dist/{components → client/components}/VirtualList/VirtualList.d.ts +1 -1
- package/dist/{components → client/components}/VirtualTable/VirtualTable.d.ts +1 -1
- package/dist/{components → client/components}/Watermark/Watermark.d.ts +1 -1
- package/dist/client/components/Wave/Wave.d.ts +15 -0
- package/dist/{components → client/components}/index.d.ts +48 -2
- package/dist/client/components/index.js +57 -0
- package/dist/{components → client/components}/style.css +3554 -1896
- package/dist/{layout → client/layout}/weifuwu-layout.css +60 -6
- package/dist/client/office/docx.d.ts +33 -0
- package/dist/client/office/pptx.d.ts +24 -0
- package/dist/client/office/xlsx.d.ts +25 -0
- package/dist/client/office/xml-serialize.d.ts +18 -0
- package/dist/client/office/xml.d.ts +21 -0
- package/dist/client/office/zip.d.ts +21 -0
- package/dist/client/vdom/browser/Browser.d.ts +73 -0
- package/dist/client/vdom/browser/create-client-browser.d.ts +11 -0
- package/dist/client/vdom/commands.d.ts +19 -0
- package/dist/client/vdom/context/UIContext.d.ts +61 -0
- package/dist/client/vdom/context/data.d.ts +17 -0
- package/dist/client/vdom/core/async-guard.d.ts +20 -0
- package/dist/client/vdom/core/build.d.ts +36 -0
- package/dist/client/vdom/core/command/create.d.ts +25 -0
- package/dist/client/vdom/core/command/index.d.ts +15 -0
- package/dist/client/vdom/core/command/insert.d.ts +32 -0
- package/dist/client/vdom/core/command/lifecycle.d.ts +47 -0
- package/dist/client/vdom/core/command/props.d.ts +22 -0
- package/dist/client/vdom/core/diff/attrs.d.ts +10 -0
- package/dist/client/vdom/core/diff/children.d.ts +29 -0
- package/dist/client/vdom/core/diff/cleanup.d.ts +44 -0
- package/dist/client/vdom/core/diff/index.d.ts +22 -0
- package/dist/client/vdom/core/diff/output.d.ts +30 -0
- package/dist/client/vdom/core/diff/same.d.ts +22 -0
- package/dist/client/vdom/core/field/attributes.d.ts +15 -0
- package/dist/client/vdom/core/field/events.d.ts +54 -0
- package/dist/client/vdom/core/field/index.d.ts +19 -0
- package/dist/client/vdom/core/field/key.d.ts +16 -0
- package/dist/client/vdom/core/field/props.d.ts +15 -0
- package/dist/client/vdom/core/field/ref.d.ts +38 -0
- package/dist/client/vdom/core/field/style.d.ts +17 -0
- package/dist/client/vdom/core/node/children.d.ts +20 -0
- package/dist/client/vdom/core/node/component.d.ts +93 -0
- package/dist/client/vdom/core/node/fragment.d.ts +14 -0
- package/dist/client/vdom/core/node/hole.d.ts +22 -0
- package/dist/client/vdom/core/node/index.d.ts +35 -0
- package/dist/client/vdom/core/node/keyed.d.ts +64 -0
- package/dist/client/vdom/core/node/native.d.ts +20 -0
- package/dist/client/vdom/core/node/portal.d.ts +11 -0
- package/dist/client/vdom/core/patch/fields.d.ts +15 -0
- package/dist/client/vdom/core/patch/index.d.ts +51 -0
- package/dist/client/vdom/core/patch/processors.d.ts +75 -0
- package/dist/client/vdom/core/patch/state-machine.d.ts +38 -0
- package/dist/client/vdom/core/patch/verify.d.ts +17 -0
- package/dist/client/vdom/core/router.d.ts +31 -0
- package/dist/client/vdom/core/serve.d.ts +75 -0
- package/dist/client/vdom/core/ssr/absorb.d.ts +53 -0
- package/dist/client/vdom/core/ssr/html.d.ts +32 -0
- package/dist/client/vdom/core/ssr/index.d.ts +25 -0
- package/dist/client/vdom/core/transform/component.d.ts +23 -0
- package/dist/client/vdom/core/transform/element.d.ts +21 -0
- package/dist/client/vdom/core/transform/fragment.d.ts +21 -0
- package/dist/client/vdom/core/transform/hole.d.ts +13 -0
- package/dist/client/vdom/core/transform/index.d.ts +46 -0
- package/dist/client/vdom/core/transform/states.d.ts +22 -0
- package/dist/client/vdom/core/transform/table.d.ts +28 -0
- package/dist/client/vdom/core/transform/text.d.ts +10 -0
- package/dist/client/vdom/core/vnode.d.ts +45 -0
- package/dist/client/vdom/dev/effect-guard.d.ts +8 -0
- package/dist/client/vdom/hooks/ai-stream.d.ts +46 -0
- package/dist/client/vdom/hooks/basic.d.ts +42 -0
- package/dist/client/vdom/hooks/chat.d.ts +91 -0
- package/dist/client/vdom/hooks/controlled.d.ts +27 -0
- package/dist/client/vdom/hooks/drag-media.d.ts +52 -0
- package/dist/client/vdom/hooks/env.d.ts +119 -0
- package/dist/client/vdom/hooks/input.d.ts +43 -0
- package/dist/client/vdom/hooks/observe.d.ts +60 -0
- package/dist/client/vdom/hooks/popup-manager.d.ts +92 -0
- package/dist/client/vdom/hooks/popup.d.ts +52 -0
- package/dist/client/vdom/hooks/stable.d.ts +45 -0
- package/dist/client/vdom/index.d.ts +67 -0
- package/dist/client/vdom/index.js +8 -0
- package/dist/client/vdom/jsx-runtime.d.ts +28 -0
- package/dist/client/vdom/jsx-runtime.js +1 -0
- package/dist/client/vdom/middlewares/api.d.ts +38 -0
- package/dist/client/vdom/middlewares/auth-i18n.d.ts +66 -0
- package/dist/client/vdom/middlewares/ws.d.ts +37 -0
- package/dist/client/vdom/store.d.ts +49 -0
- package/dist/client/vdom/testing.d.ts +46 -0
- package/dist/client/vdom/testing.js +2 -0
- package/dist/dev/index.d.ts +12 -0
- package/dist/dev/index.js +4 -4
- package/dist/{ai → server/ai}/contracts.d.ts +1 -1
- package/dist/{ai → server/ai}/index.d.ts +2 -2
- package/dist/{ai → server/ai}/types.d.ts +1 -1
- package/dist/{core → server/core}/router.d.ts +2 -4
- package/dist/{db → server/db}/contracts.d.ts +1 -1
- package/dist/server/db/postgres-server.d.ts +37 -0
- package/dist/server/db/redis-server.d.ts +32 -0
- package/dist/server/db/server.d.ts +30 -0
- package/dist/server/db/test-servers.d.ts +21 -0
- package/dist/{email → server/email}/contracts.d.ts +1 -1
- package/dist/{index.js → server/index.js} +3147 -2462
- package/dist/{ui → server/ui}/index.d.ts +2 -2
- package/dist/{user → server/user}/token.d.ts +1 -1
- package/dist/shared/router/trie.d.ts +61 -0
- package/docs/components-map.md +16 -4
- package/docs/style-guide.md +14 -2
- package/examples/apps/admin/README.md +23 -0
- package/examples/apps/admin/api.ts +27 -0
- package/examples/apps/admin/app.tsx +144 -0
- package/examples/apps/admin/main.tsx +8 -0
- package/examples/apps/admin/server.ts +37 -0
- package/examples/apps/auth/README.md +23 -0
- package/examples/apps/auth/api.ts +49 -0
- package/examples/apps/auth/app.tsx +137 -0
- package/examples/apps/auth/main.tsx +8 -0
- package/examples/apps/auth/server.ts +37 -0
- package/examples/apps/multi/README.md +23 -0
- package/examples/apps/multi/app.tsx +83 -0
- package/examples/apps/multi/main.tsx +8 -0
- package/examples/apps/multi/server.ts +33 -0
- package/examples/apps/todo/README.md +23 -0
- package/examples/apps/todo/api.ts +26 -0
- package/examples/apps/todo/app.tsx +128 -0
- package/examples/apps/todo/main.tsx +9 -0
- package/examples/apps/todo/server.ts +39 -0
- package/examples/hello-world/README.md +9 -0
- package/examples/hello-world/client.ts +14 -0
- package/examples/hello-world/routes.tsx +26 -0
- package/examples/hello-world/server.ts +46 -0
- package/examples/patterns/AppShell.tsx +224 -0
- package/examples/patterns/Dashboard.tsx +153 -0
- package/examples/patterns/DataScreen.tsx +104 -0
- package/examples/patterns/DetailPage.tsx +79 -0
- package/examples/patterns/Docs.tsx +105 -0
- package/examples/patterns/FocusTask.tsx +67 -0
- package/examples/patterns/Landing.tsx +90 -0
- package/examples/patterns/ListPage.tsx +77 -0
- package/examples/patterns/Mobile.tsx +154 -0
- package/examples/patterns/SettingsPage.tsx +98 -0
- package/examples/patterns/SplitWorkspace.tsx +113 -0
- package/package.json +61 -29
- package/dist/components/Editor/Editor.d.ts +0 -13
- package/dist/components/Editor/tools/format.d.ts +0 -11
- package/dist/components/Editor/tools/table.d.ts +0 -7
- package/dist/components/Editor/tools/types.d.ts +0 -15
- package/dist/components/Slider/Slider.d.ts +0 -19
- package/dist/components/Tabs/Tabs.d.ts +0 -12
- package/dist/components/index.js +0 -15
- package/dist/ui-dom/Confirm.d.ts +0 -8
- package/dist/ui-dom/Notification.d.ts +0 -8
- package/dist/ui-dom/Toast.d.ts +0 -8
- package/dist/ui-dom/ai.d.ts +0 -59
- package/dist/ui-dom/browser.d.ts +0 -10
- package/dist/ui-dom/debug.d.ts +0 -21
- package/dist/ui-dom/hooks/chat.d.ts +0 -11
- package/dist/ui-dom/hooks/events.d.ts +0 -30
- package/dist/ui-dom/hooks/external.d.ts +0 -20
- package/dist/ui-dom/hooks/index.d.ts +0 -29
- package/dist/ui-dom/hooks/input.d.ts +0 -33
- package/dist/ui-dom/hooks/media.d.ts +0 -17
- package/dist/ui-dom/hooks/popup.d.ts +0 -30
- package/dist/ui-dom/hooks/stable.d.ts +0 -35
- package/dist/ui-dom/hooks/types.d.ts +0 -77
- package/dist/ui-dom/i18n.d.ts +0 -31
- package/dist/ui-dom/index.d.ts +0 -47
- package/dist/ui-dom/index.js +0 -41
- package/dist/ui-dom/jsx-runtime.d.ts +0 -4
- package/dist/ui-dom/jsx-runtime.js +0 -1
- package/dist/ui-dom/locale/en_US.d.ts +0 -55
- package/dist/ui-dom/locale/zh_CN.d.ts +0 -55
- package/dist/ui-dom/middleware/api.d.ts +0 -91
- package/dist/ui-dom/middleware/auth.d.ts +0 -30
- package/dist/ui-dom/middleware/ws.d.ts +0 -33
- package/dist/ui-dom/motion.d.ts +0 -8
- package/dist/ui-dom/popup-tracker.d.ts +0 -36
- package/dist/ui-dom/popup.d.ts +0 -42
- package/dist/ui-dom/store.d.ts +0 -24
- package/dist/ui-dom/testing.d.ts +0 -68
- package/dist/ui-dom/testing.js +0 -7
- package/dist/ui-dom/types.d.ts +0 -632
- package/dist/ui-dom/use-chat.d.ts +0 -95
- package/dist/ui-dom/vdom3/README.d.ts +0 -32
- package/dist/ui-dom/vdom3/app.d.ts +0 -20
- package/dist/ui-dom/vdom3/audit.d.ts +0 -29
- package/dist/ui-dom/vdom3/build.d.ts +0 -20
- package/dist/ui-dom/vdom3/commands.d.ts +0 -21
- package/dist/ui-dom/vdom3/comp-index.d.ts +0 -18
- package/dist/ui-dom/vdom3/delegate.d.ts +0 -48
- package/dist/ui-dom/vdom3/events.d.ts +0 -17
- package/dist/ui-dom/vdom3/index.d.ts +0 -42
- package/dist/ui-dom/vdom3/jsx.d.ts +0 -32
- package/dist/ui-dom/vdom3/record.d.ts +0 -16
- package/dist/ui-dom/vdom3/registry.d.ts +0 -30
- package/dist/ui-dom/vdom3/render.d.ts +0 -39
- package/dist/ui-dom/vdom3/replay.d.ts +0 -28
- package/dist/ui-dom/vdom3/root.d.ts +0 -24
- package/dist/ui-dom/vdom3/router.d.ts +0 -31
- package/dist/ui-dom/vdom3/scheduler.d.ts +0 -23
- package/dist/ui-dom/vdom3/ssr.d.ts +0 -27
- package/dist/ui-dom/vdom3/sync.d.ts +0 -22
- package/dist/ui-dom/vdom3/types.d.ts +0 -173
- package/dist/ui-dom/vdom3/ui.d.ts +0 -16
- package/dist/ui-dom/vdom3.js +0 -41
- package/dist/ui-dom/vnode.d.ts +0 -13
- /package/dist/{make-executable-schema.test.d.ts → cli/content-sync.test.d.ts} +0 -0
- /package/dist/{ui-dom/testing.test.d.ts → cli/docs-cli.test.d.ts} +0 -0
- /package/dist/{components → client/components}/CodeBlock/highlight.d.ts +0 -0
- /package/dist/{components → client/components}/DatePicker/calendar-utils.d.ts +0 -0
- /package/dist/{components → client/components}/DiffView/diff-utils.d.ts +0 -0
- /package/dist/{components → client/components}/Markdown/parser.d.ts +0 -0
- /package/dist/{components → client/components}/Pipeline/dag-utils.d.ts +0 -0
- /package/dist/{components → client/components}/QRCode/qr.d.ts +0 -0
- /package/dist/{components → client/components}/Sparkline/sparkline-utils.d.ts +0 -0
- /package/dist/{ai → server/ai}/agent.d.ts +0 -0
- /package/dist/{ai → server/ai}/client.d.ts +0 -0
- /package/dist/{ai → server/ai}/sse.d.ts +0 -0
- /package/dist/{core → server/core}/serve.d.ts +0 -0
- /package/dist/{core → server/core}/ws.d.ts +0 -0
- /package/dist/{db → server/db}/errors.d.ts +0 -0
- /package/dist/{db → server/db}/memory-redis.d.ts +0 -0
- /package/dist/{db → server/db}/memory-sql.d.ts +0 -0
- /package/dist/{db → server/db}/postgres/connection.d.ts +0 -0
- /package/dist/{db → server/db}/postgres/pool.d.ts +0 -0
- /package/dist/{db → server/db}/postgres/protocol.d.ts +0 -0
- /package/dist/{db → server/db}/postgres/schema.d.ts +0 -0
- /package/dist/{db → server/db}/query-builder.d.ts +0 -0
- /package/dist/{db → server/db}/query.d.ts +0 -0
- /package/dist/{db → server/db}/redis/client.d.ts +0 -0
- /package/dist/{db → server/db}/redis/commands.d.ts +0 -0
- /package/dist/{db → server/db}/redis/connection.d.ts +0 -0
- /package/dist/{db → server/db}/redis/pipeline.d.ts +0 -0
- /package/dist/{db → server/db}/redis/pool.d.ts +0 -0
- /package/dist/{db → server/db}/redis/resp.d.ts +0 -0
- /package/dist/{db → server/db}/redis/subscriber.d.ts +0 -0
- /package/dist/{db → server/db}/sql-parser.d.ts +0 -0
- /package/dist/{email → server/email}/index.d.ts +0 -0
- /package/dist/{email → server/email}/smtp.d.ts +0 -0
- /package/dist/{graphql.d.ts → server/graphql.d.ts} +0 -0
- /package/dist/{index.d.ts → server/index.d.ts} +0 -0
- /package/dist/{make-executable-schema.d.ts → server/make-executable-schema.d.ts} +0 -0
- /package/dist/{messager → server/messager}/index.d.ts +0 -0
- /package/dist/{middleware → server/middleware}/cors.d.ts +0 -0
- /package/dist/{middleware → server/middleware}/rate-limit.d.ts +0 -0
- /package/dist/{middleware → server/middleware}/static.d.ts +0 -0
- /package/dist/{postgres → server/postgres}/client.d.ts +0 -0
- /package/dist/{postgres → server/postgres}/index.d.ts +0 -0
- /package/dist/{postgres → server/postgres}/types.d.ts +0 -0
- /package/dist/{queue → server/queue}/index.d.ts +0 -0
- /package/dist/{redis → server/redis}/client.d.ts +0 -0
- /package/dist/{redis → server/redis}/index.d.ts +0 -0
- /package/dist/{redis → server/redis}/types.d.ts +0 -0
- /package/dist/{request.d.ts → server/request.d.ts} +0 -0
- /package/dist/{response.d.ts → server/response.d.ts} +0 -0
- /package/dist/{scheduler → server/scheduler}/cron.d.ts +0 -0
- /package/dist/{scheduler → server/scheduler}/index.d.ts +0 -0
- /package/dist/{types.d.ts → server/types.d.ts} +0 -0
- /package/dist/{ui → server/ui}/html-safe.d.ts +0 -0
- /package/dist/{user → server/user}/index.d.ts +0 -0
- /package/dist/{user → server/user}/password.d.ts +0 -0
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# Tree · components
|
|
2
|
+
|
|
3
|
+
## 概述
|
|
4
|
+
|
|
5
|
+
树形:递归模型 + 勾选父子联动 + indeterminate(antd/EP Tree)
|
|
6
|
+
|
|
7
|
+
## 典型场景
|
|
8
|
+
|
|
9
|
+
- 复杂数据交互——穿梭、树、级联、看板、流水线
|
|
10
|
+
|
|
11
|
+
## API
|
|
12
|
+
|
|
13
|
+
| prop | 类型 | 必填 | 说明 |
|
|
14
|
+
|------|------|------|------|
|
|
15
|
+
| `data` | `TreeNode[]` | 否 | |
|
|
16
|
+
| `selectedKeys` | `string[]` | 否 | 受控选中 keys |
|
|
17
|
+
| `onSelect` | `(keys: string[]) => void` | 否 | |
|
|
18
|
+
| `expandedKeys` | `string[]` | 否 | 受控展开 keys |
|
|
19
|
+
| `onExpand` | `(keys: string[]) => void` | 否 | |
|
|
20
|
+
| `checkable` | `boolean` | 否 | 勾选模式(父子联动,antd 非 strict 语义) |
|
|
21
|
+
| `expandOnClick` | `boolean` | 否 | 点击有子节点的行 = 展开/折叠(不触发选中)——TreeSelect 场景(点行展开比点箭头直观) |
|
|
22
|
+
| `checkedKeys` | `string[]` | 否 | |
|
|
23
|
+
| `onCheck` | `(keys: string[]) => void` | 否 | |
|
|
24
|
+
| `searchValue` | `string` | 否 | 搜索过滤(label 含 searchValue 的节点 + 祖先;自动展开匹配路径 + 高亮) |
|
|
25
|
+
| `virtual` | `boolean` | 否 | 虚拟滚动(大数据树——固定行高 28px,只渲染可见窗口) |
|
|
26
|
+
| `height` | `number` | 否 | 虚拟滚动视口高度(px) |
|
|
27
|
+
| `className` | `string` | 否 | |
|
|
28
|
+
|
|
29
|
+
## 用法示例
|
|
30
|
+
|
|
31
|
+
```tsx
|
|
32
|
+
<Tree data={treeData} checkable
|
|
33
|
+
checkedKeys={keys} onCheck={setKeys} />
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## 纪律/坑
|
|
37
|
+
|
|
38
|
+
- 受控纪律:selectedKeys/checkedKeys/expandedKeys 必须配回调(缺回调 console.warn)
|
|
39
|
+
- 小尺寸 button 固定 min/max-height(§5.6):checkbox 14x36 竖条事故
|
|
40
|
+
- 虚拟模式(virtual)键盘导航限于可见窗口(VirtualList 无 scrollTo——裁剪登记)
|
|
41
|
+
|
|
42
|
+
## 关系
|
|
43
|
+
|
|
44
|
+
- ↑ 用于页面模式:(暂无)
|
|
45
|
+
- ↑ 用于应用:(暂无)
|
|
46
|
+
- → 后端能力:(暂无)
|
|
47
|
+
|
|
48
|
+
## 文件位置
|
|
49
|
+
|
|
50
|
+
| 文件 | 路径 |
|
|
51
|
+
|------|------|
|
|
52
|
+
| 源码 | `src/client/components/Tree/Tree.ts` |
|
|
53
|
+
| 样式 | `src/client/components/Tree/Tree.css` |
|
|
54
|
+
| 测试 | `src/client/components/Tree/Tree.test.ts` |
|
|
55
|
+
| demo | `apps/showcase/src/demos/DemoToggleTree.tsx`(P1 拆分) |
|
|
56
|
+
|
|
57
|
+
## 验证
|
|
58
|
+
|
|
59
|
+
> agent-browser 走查:打开 `/components/advanced/tree` ——(P1 填充具体步骤)
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# TreeSelect · components
|
|
2
|
+
|
|
3
|
+
## 概述
|
|
4
|
+
|
|
5
|
+
树形选择:单选/多选(父子联动)+ 选中 label 回显 + 受控纪律
|
|
6
|
+
|
|
7
|
+
## 典型场景
|
|
8
|
+
|
|
9
|
+
- 复杂数据交互——穿梭、树、级联、看板、流水线
|
|
10
|
+
|
|
11
|
+
## API
|
|
12
|
+
|
|
13
|
+
| prop | 类型 | 必填 | 说明 |
|
|
14
|
+
|------|------|------|------|
|
|
15
|
+
| `options` | `TreeNode[]` | 是 | 树选项(复用 TreeNode 结构) |
|
|
16
|
+
| `value` | `string \| string[]` | 否 | 受控:单选 string / 多选 string[] |
|
|
17
|
+
| `onChange` | `(value: any) => void` | 否 | 受控回调:单选 key / 多选 keys[] |
|
|
18
|
+
| `multiple` | `boolean` | 否 | 多选(checkable 父子联动语义) |
|
|
19
|
+
| `placeholder` | `string` | 否 | |
|
|
20
|
+
| `disabled` | `boolean` | 否 | |
|
|
21
|
+
| `error` | `string` | 否 | |
|
|
22
|
+
| `virtual` | `boolean` | 否 | 虚拟滚动(大数据树——透传 Tree;固定行高 28) |
|
|
23
|
+
| `height` | `number` | 否 | 虚拟滚动视口高度(px) |
|
|
24
|
+
| `className` | `string` | 否 | |
|
|
25
|
+
|
|
26
|
+
## 用法示例
|
|
27
|
+
|
|
28
|
+
```tsx
|
|
29
|
+
<TreeSelect options={options} value={value} onChange={setValue} />
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## 纪律/坑
|
|
33
|
+
|
|
34
|
+
- 弹窗纪律(§5.4):曾遗漏 portal——absolute 在父容器 overflow/transform 下裁剪/错位——统一 usePopup
|
|
35
|
+
- 选项量小场景搜索过滤已裁剪(components-cuts.md 永久裁剪)
|
|
36
|
+
|
|
37
|
+
## 关系
|
|
38
|
+
|
|
39
|
+
- ↑ 用于页面模式:(暂无)
|
|
40
|
+
- ↑ 用于应用:(暂无)
|
|
41
|
+
- → 后端能力:(暂无)
|
|
42
|
+
|
|
43
|
+
## 文件位置
|
|
44
|
+
|
|
45
|
+
| 文件 | 路径 |
|
|
46
|
+
|------|------|
|
|
47
|
+
| 源码 | `src/client/components/TreeSelect/TreeSelect.ts` |
|
|
48
|
+
| 样式 | `src/client/components/TreeSelect/TreeSelect.css` |
|
|
49
|
+
| 测试 | `src/client/components/TreeSelect/TreeSelect.test.ts` |
|
|
50
|
+
| demo | `apps/showcase/src/demos/DemoTreeSelect.tsx`(P1 拆分) |
|
|
51
|
+
|
|
52
|
+
## 验证
|
|
53
|
+
|
|
54
|
+
> agent-browser 走查:打开 `/components/advanced/treeselect` ——(P1 填充具体步骤)
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Typography · components
|
|
2
|
+
|
|
3
|
+
## 概述
|
|
4
|
+
|
|
5
|
+
Title/Text/Paragraph:语义标签 + 语义色 -text 变体 + mark/code/删除线
|
|
6
|
+
|
|
7
|
+
## 典型场景
|
|
8
|
+
|
|
9
|
+
- 基础元素(按钮/图标/文本/卡片/标签)——任意页面的构成单元
|
|
10
|
+
|
|
11
|
+
## API
|
|
12
|
+
|
|
13
|
+
| prop | 类型 | 必填 | 说明 |
|
|
14
|
+
|------|------|------|------|
|
|
15
|
+
| `level` | `1 \| 2 \| 3 \| 4 \| 5` | 否 | 1-5,默认 1(h1-h5) |
|
|
16
|
+
| `children` | `any` | 否 | |
|
|
17
|
+
| `className` | `string` | 否 | |
|
|
18
|
+
| `style` | `Record<string, string>` | 否 | |
|
|
19
|
+
|
|
20
|
+
## 用法示例
|
|
21
|
+
|
|
22
|
+
```tsx
|
|
23
|
+
<Title level={1}>标题</Title>
|
|
24
|
+
<Text type="secondary">次要</Text>
|
|
25
|
+
<Text type="danger">危险</Text>
|
|
26
|
+
<Text code>code</Text>
|
|
27
|
+
<Paragraph ellipsis>长文本</Paragraph>
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## 纪律/坑
|
|
31
|
+
|
|
32
|
+
> 浏览器纪律(§5.5):组件能力经 ctx.browser / ctx.ui.useXXX——禁裸 window/document
|
|
33
|
+
|
|
34
|
+
## 关系
|
|
35
|
+
|
|
36
|
+
- ↑ 用于页面模式:(暂无)
|
|
37
|
+
- ↑ 用于应用:(暂无)
|
|
38
|
+
- → 后端能力:(暂无)
|
|
39
|
+
|
|
40
|
+
## 文件位置
|
|
41
|
+
|
|
42
|
+
| 文件 | 路径 |
|
|
43
|
+
|------|------|
|
|
44
|
+
| 源码 | `src/client/components/Typography/Typography.ts` |
|
|
45
|
+
| 样式 | `src/client/components/Typography/Typography.css` |
|
|
46
|
+
| 测试 | `src/client/components/Typography/Typography.test.ts` |
|
|
47
|
+
| demo | `apps/showcase/src/demos/DemoTypography.tsx`(P1 拆分) |
|
|
48
|
+
|
|
49
|
+
## 验证
|
|
50
|
+
|
|
51
|
+
> agent-browser 走查:打开 `/components/core/typography` ——(P1 填充具体步骤)
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# VideoPlayer · components
|
|
2
|
+
|
|
3
|
+
## 概述
|
|
4
|
+
|
|
5
|
+
视频播放器——原生 video 封装(controls/封面/宽高比/事件——零依赖)
|
|
6
|
+
|
|
7
|
+
## 典型场景
|
|
8
|
+
|
|
9
|
+
- 基础元素(按钮/图标/文本/卡片/标签)——任意页面的构成单元
|
|
10
|
+
|
|
11
|
+
## API
|
|
12
|
+
|
|
13
|
+
| prop | 类型 | 必填 | 说明 |
|
|
14
|
+
|------|------|------|------|
|
|
15
|
+
| `src` | `string` | 是 | |
|
|
16
|
+
| `poster` | `string` | 否 | |
|
|
17
|
+
| `aspect` | `number` | 否 | 宽高比(默认 16/9) |
|
|
18
|
+
| `controls` | `boolean` | 否 | |
|
|
19
|
+
| `autoPlay` | `boolean` | 否 | |
|
|
20
|
+
| `loop` | `boolean` | 否 | |
|
|
21
|
+
| `muted` | `boolean` | 否 | |
|
|
22
|
+
| `onPlay` | `() => void` | 否 | 事件回调 |
|
|
23
|
+
| `onPause` | `() => void` | 否 | |
|
|
24
|
+
| `onEnded` | `() => void` | 否 | |
|
|
25
|
+
| `onError` | `(err: Error) => void` | 否 | |
|
|
26
|
+
| `className` | `string` | 否 | |
|
|
27
|
+
|
|
28
|
+
## 用法示例
|
|
29
|
+
|
|
30
|
+
> (P1 迁移 CODE 字符串)
|
|
31
|
+
|
|
32
|
+
## 纪律/坑
|
|
33
|
+
|
|
34
|
+
> 浏览器纪律(§5.5):组件能力经 ctx.browser / ctx.ui.useXXX——禁裸 window/document
|
|
35
|
+
|
|
36
|
+
## 关系
|
|
37
|
+
|
|
38
|
+
- ↑ 用于页面模式:(暂无)
|
|
39
|
+
- ↑ 用于应用:(暂无)
|
|
40
|
+
- → 后端能力:(暂无)
|
|
41
|
+
|
|
42
|
+
## 文件位置
|
|
43
|
+
|
|
44
|
+
| 文件 | 路径 |
|
|
45
|
+
|------|------|
|
|
46
|
+
| 源码 | `src/client/components/VideoPlayer/VideoPlayer.ts` |
|
|
47
|
+
| 样式 | `src/client/components/VideoPlayer/VideoPlayer.css` |
|
|
48
|
+
| 测试 | `src/client/components/VideoPlayer/VideoPlayer.test.ts` |
|
|
49
|
+
|
|
50
|
+
## 验证
|
|
51
|
+
|
|
52
|
+
> agent-browser 走查:打开 `/components/core/videoplayer` ——(P1 填充具体步骤)
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# VirtualList · components
|
|
2
|
+
|
|
3
|
+
## 概述
|
|
4
|
+
|
|
5
|
+
虚拟列表:spacer + 可见窗口,200 条只渲染 ~12 个 DOM
|
|
6
|
+
|
|
7
|
+
## 典型场景
|
|
8
|
+
|
|
9
|
+
- 大数据列表/表格/树——千级+数据量的性能场景
|
|
10
|
+
|
|
11
|
+
## API
|
|
12
|
+
|
|
13
|
+
| prop | 类型 | 必填 | 说明 |
|
|
14
|
+
|------|------|------|------|
|
|
15
|
+
| `items` | `any[]` | 否 | |
|
|
16
|
+
| `height` | `number` | 否 | 视口高度(px) |
|
|
17
|
+
| `itemHeight` | `number` | 否 | 固定 item 高度(px)——虚拟滚动的基础 |
|
|
18
|
+
| `renderItem` | `(item: any, index: number) => any` | 否 | |
|
|
19
|
+
| `overscan` | `number` | 否 | 可见区外额外渲染数量 |
|
|
20
|
+
| `keyBy` | `(item: any, index: number) => string \| number` | 否 | |
|
|
21
|
+
| `emptyText` | `string` | 否 | 空数据占位(F2 状态矩阵——容器类基线) |
|
|
22
|
+
| `className` | `string` | 否 | |
|
|
23
|
+
|
|
24
|
+
## 用法示例
|
|
25
|
+
|
|
26
|
+
```tsx
|
|
27
|
+
<VirtualList height={400} itemHeight={36}
|
|
28
|
+
items={rows} renderItem={renderRow} />
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## 纪律/坑
|
|
32
|
+
|
|
33
|
+
> 大数据渲染:固定行高 + 窗口化(VirtualList)——动态高度裁剪登记
|
|
34
|
+
|
|
35
|
+
## 关系
|
|
36
|
+
|
|
37
|
+
- ↑ 用于页面模式:(暂无)
|
|
38
|
+
- ↑ 用于应用:(暂无)
|
|
39
|
+
- → 后端能力:(暂无)
|
|
40
|
+
|
|
41
|
+
## 文件位置
|
|
42
|
+
|
|
43
|
+
| 文件 | 路径 |
|
|
44
|
+
|------|------|
|
|
45
|
+
| 源码 | `src/client/components/VirtualList/VirtualList.ts` |
|
|
46
|
+
| 样式 | `src/client/components/VirtualList/VirtualList.css` |
|
|
47
|
+
| 测试 | `src/client/components/VirtualList/VirtualList.test.ts` |
|
|
48
|
+
| demo | `apps/showcase/src/demos/DemoVirtualList.tsx`(P1 拆分) |
|
|
49
|
+
|
|
50
|
+
## 验证
|
|
51
|
+
|
|
52
|
+
> agent-browser 走查:打开 `/components/virtual/virtuallist` ——(P1 填充具体步骤)
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# VirtualTable 大数据 · components
|
|
2
|
+
|
|
3
|
+
## 概述
|
|
4
|
+
|
|
5
|
+
10 万行虚拟滚动(只渲染可见窗口——性能展示)
|
|
6
|
+
|
|
7
|
+
## 典型场景
|
|
8
|
+
|
|
9
|
+
- 大数据列表/表格/树——千级+数据量的性能场景
|
|
10
|
+
|
|
11
|
+
## API
|
|
12
|
+
|
|
13
|
+
> props 提取降级(接口格式特殊)——见源码:`—`
|
|
14
|
+
|
|
15
|
+
## 用法示例
|
|
16
|
+
|
|
17
|
+
```tsx
|
|
18
|
+
<VirtualTable height={280} data={100000行大数据} columns={[{key:'id',label:'ID'}]} />
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## 纪律/坑
|
|
22
|
+
|
|
23
|
+
> 大数据渲染:固定行高 + 窗口化(VirtualList)——动态高度裁剪登记
|
|
24
|
+
|
|
25
|
+
## 关系
|
|
26
|
+
|
|
27
|
+
- ↑ 用于页面模式:(暂无)
|
|
28
|
+
- ↑ 用于应用:(暂无)
|
|
29
|
+
- → 后端能力:(暂无)
|
|
30
|
+
|
|
31
|
+
## 文件位置
|
|
32
|
+
|
|
33
|
+
| 文件 | 路径 |
|
|
34
|
+
|------|------|
|
|
35
|
+
| demo | `apps/showcase/src/demos/DemoVirtualTableBig.tsx`(P1 拆分) |
|
|
36
|
+
|
|
37
|
+
## 验证
|
|
38
|
+
|
|
39
|
+
> agent-browser 走查:打开 `/components/virtual/virtualtable-v2` ——(P1 填充具体步骤)
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# VirtualTable · components
|
|
2
|
+
|
|
3
|
+
## 概述
|
|
4
|
+
|
|
5
|
+
虚拟表格:10k 行固定表头 + 可见窗口渲染 + 排序
|
|
6
|
+
|
|
7
|
+
## 典型场景
|
|
8
|
+
|
|
9
|
+
- 大数据列表/表格/树——千级+数据量的性能场景
|
|
10
|
+
|
|
11
|
+
## API
|
|
12
|
+
|
|
13
|
+
| prop | 类型 | 必填 | 说明 |
|
|
14
|
+
|------|------|------|------|
|
|
15
|
+
| `columns` | `TableColumn[]` | 是 | |
|
|
16
|
+
| `data` | `any[]` | 否 | |
|
|
17
|
+
| `height` | `number` | 否 | 视口高度(px),默认 400 |
|
|
18
|
+
| `rowHeight` | `number` | 否 | 行高(px),默认 40 |
|
|
19
|
+
| `overscan` | `number` | 否 | 可见区外额外渲染行数 |
|
|
20
|
+
| `sortKey` | `string` | 否 | 当前排序列 key |
|
|
21
|
+
| `sortOrder` | `'asc' \| 'desc'` | 否 | 当前排序方向 |
|
|
22
|
+
| `onSort` | `(key: string, order: 'asc' \| 'desc') => void` | 否 | 排序变化回调 |
|
|
23
|
+
| `emptyText` | `string` | 否 | 数据为空时显示的文本 |
|
|
24
|
+
| `onRowClick` | `(row: any, index: number) => void` | 否 | 行点击 |
|
|
25
|
+
| `className` | `string` | 否 | 行 key 字段名,默认 'id';无该字段回退到索引 |
|
|
26
|
+
|
|
27
|
+
## 用法示例
|
|
28
|
+
|
|
29
|
+
```tsx
|
|
30
|
+
<VirtualTable columns={cols} data={rows} height={320}
|
|
31
|
+
sortKey={sortKey} sortOrder={sortOrder} onSort={handleSort} />
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## 纪律/坑
|
|
35
|
+
|
|
36
|
+
> 大数据渲染:固定行高 + 窗口化(VirtualList)——动态高度裁剪登记
|
|
37
|
+
|
|
38
|
+
## 关系
|
|
39
|
+
|
|
40
|
+
- ↑ 用于页面模式:(暂无)
|
|
41
|
+
- ↑ 用于应用:(暂无)
|
|
42
|
+
- → 后端能力:(暂无)
|
|
43
|
+
|
|
44
|
+
## 文件位置
|
|
45
|
+
|
|
46
|
+
| 文件 | 路径 |
|
|
47
|
+
|------|------|
|
|
48
|
+
| 源码 | `src/client/components/VirtualTable/VirtualTable.ts` |
|
|
49
|
+
| 样式 | `src/client/components/VirtualTable/VirtualTable.css` |
|
|
50
|
+
| 测试 | `src/client/components/VirtualTable/VirtualTable.test.ts` |
|
|
51
|
+
| demo | `apps/showcase/src/demos/DemoVirtualTable.tsx`(P1 拆分) |
|
|
52
|
+
|
|
53
|
+
## 验证
|
|
54
|
+
|
|
55
|
+
> agent-browser 走查:打开 `/components/virtual/virtualtable` ——(P1 填充具体步骤)
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Watermark · components
|
|
2
|
+
|
|
3
|
+
## 概述
|
|
4
|
+
|
|
5
|
+
水印:canvas 平铺绘制 + overlay(antd Watermark)
|
|
6
|
+
|
|
7
|
+
## 典型场景
|
|
8
|
+
|
|
9
|
+
- 数据展示——列表页、详情页、信息呈现
|
|
10
|
+
|
|
11
|
+
## API
|
|
12
|
+
|
|
13
|
+
| prop | 类型 | 必填 | 说明 |
|
|
14
|
+
|------|------|------|------|
|
|
15
|
+
| `text` | `string` | 否 | 水印文字 |
|
|
16
|
+
| `fontSize` | `number` | 否 | |
|
|
17
|
+
| `color` | `string` | 否 | 文字颜色(默认继承) |
|
|
18
|
+
| `opacity` | `number` | 否 | 透明度 0-1,默认 0.15 |
|
|
19
|
+
| `rotate` | `number` | 否 | 旋转角度(度),默认 -25 |
|
|
20
|
+
| `gap` | `number` | 否 | 平铺间距(px),默认 100 |
|
|
21
|
+
| `children` | `any` | 否 | |
|
|
22
|
+
| `className` | `string` | 否 | |
|
|
23
|
+
|
|
24
|
+
## 用法示例
|
|
25
|
+
|
|
26
|
+
```tsx
|
|
27
|
+
<Watermark text="内部资料">
|
|
28
|
+
<div>内容</div>
|
|
29
|
+
</Watermark>
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## 纪律/坑
|
|
33
|
+
|
|
34
|
+
> 三层一致(§6.3):条件渲染 false 是空洞占位——数组项 key 由业务声明
|
|
35
|
+
|
|
36
|
+
## 关系
|
|
37
|
+
|
|
38
|
+
- ↑ 用于页面模式:(暂无)
|
|
39
|
+
- ↑ 用于应用:(暂无)
|
|
40
|
+
- → 后端能力:(暂无)
|
|
41
|
+
|
|
42
|
+
## 文件位置
|
|
43
|
+
|
|
44
|
+
| 文件 | 路径 |
|
|
45
|
+
|------|------|
|
|
46
|
+
| 源码 | `src/client/components/Watermark/Watermark.ts` |
|
|
47
|
+
| 样式 | `src/client/components/Watermark/Watermark.css` |
|
|
48
|
+
| 测试 | `src/client/components/Watermark/Watermark.test.ts` |
|
|
49
|
+
| demo | `apps/showcase/src/demos/DemoWatermark.tsx`(P1 拆分) |
|
|
50
|
+
|
|
51
|
+
## 验证
|
|
52
|
+
|
|
53
|
+
> agent-browser 走查:打开 `/components/display/watermark` ——(P1 填充具体步骤)
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Wave · components
|
|
2
|
+
|
|
3
|
+
## 概述
|
|
4
|
+
|
|
5
|
+
点击水波纹动效——包装任意可点击元素(纯 CSS,reduced-motion 自动降级)
|
|
6
|
+
|
|
7
|
+
## 典型场景
|
|
8
|
+
|
|
9
|
+
- 基础元素(按钮/图标/文本/卡片/标签)——任意页面的构成单元
|
|
10
|
+
|
|
11
|
+
## API
|
|
12
|
+
|
|
13
|
+
| prop | 类型 | 必填 | 说明 |
|
|
14
|
+
|------|------|------|------|
|
|
15
|
+
| `children` | `any` | 否 | |
|
|
16
|
+
| `className` | `string` | 否 | |
|
|
17
|
+
| `color` | `string` | 否 | 波纹颜色(默认 currentColor 12% 透明) |
|
|
18
|
+
|
|
19
|
+
## 用法示例
|
|
20
|
+
|
|
21
|
+
> (P1 迁移 CODE 字符串)
|
|
22
|
+
|
|
23
|
+
## 纪律/坑
|
|
24
|
+
|
|
25
|
+
> 浏览器纪律(§5.5):组件能力经 ctx.browser / ctx.ui.useXXX——禁裸 window/document
|
|
26
|
+
|
|
27
|
+
## 关系
|
|
28
|
+
|
|
29
|
+
- ↑ 用于页面模式:(暂无)
|
|
30
|
+
- ↑ 用于应用:(暂无)
|
|
31
|
+
- → 后端能力:(暂无)
|
|
32
|
+
|
|
33
|
+
## 文件位置
|
|
34
|
+
|
|
35
|
+
| 文件 | 路径 |
|
|
36
|
+
|------|------|
|
|
37
|
+
| 源码 | `src/client/components/Wave/Wave.ts` |
|
|
38
|
+
| 样式 | `src/client/components/Wave/Wave.css` |
|
|
39
|
+
| 测试 | `src/client/components/Wave/Wave.test.ts` |
|
|
40
|
+
|
|
41
|
+
## 验证
|
|
42
|
+
|
|
43
|
+
> agent-browser 走查:打开 `/components/core/wave` ——(P1 填充具体步骤)
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# AI 会话家族 · components
|
|
2
|
+
|
|
3
|
+
> AI 会话场景组件族(07 命名治理:**不合并**——每个组件独立深度使用,统一归 ai 分类)。
|
|
4
|
+
> 组合方式:`useChat()` handle 是粘合剂——会话状态 + 流式事件。
|
|
5
|
+
|
|
6
|
+
| 组件 | 职责 | 组合 |
|
|
7
|
+
|------|------|------|
|
|
8
|
+
| AiChat | 标准对话界面(气泡+工具卡+审批卡+自动滚动) | 接收 useChat handle——最常用 |
|
|
9
|
+
| ChatInput | 独立聊天输入条(IME/多行/流式停止) | AiChat 内部抽取;业务自拼对话页时用 |
|
|
10
|
+
| MessageBubble | 单条消息气泡(role/status/actions) | 自拼对话页 |
|
|
11
|
+
| SessionList | 会话管理列表(分组/重命名/删除/搜索) | 侧栏 |
|
|
12
|
+
| ReasoningBlock | CoT 推理折叠展示 | AiChat renderMessage 内 |
|
|
13
|
+
| ToolCallCard | 工具调用三态卡片 | AiChat 内嵌 |
|
|
14
|
+
| CitationCard | RAG 引用来源展示 | AiChat renderMessage 内 |
|
|
15
|
+
| ApprovalCard | HITL 人工审批(允许/拒绝/修改参数) | AiChat 内嵌;agent 审批流 |
|
|
16
|
+
| PromptTemplate | 提示词模板编辑器(变量插入+预览) | 构建 agent 配置页 |
|
|
17
|
+
|
|
18
|
+
## 组合示例
|
|
19
|
+
|
|
20
|
+
```tsx
|
|
21
|
+
// 最小对话页 = ChatInput + MessageBubble + SessionList(业务布局自控)
|
|
22
|
+
// 标准对话 = AiChat(开箱即用)
|
|
23
|
+
// Agent 配置 = PromptTemplate(系统提示词)+ JsonSchemaForm(工具参数)
|
|
24
|
+
```
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# 选型决策树
|
|
2
|
+
|
|
3
|
+
> 核心原则:**先查框架再动手**——weifuwu 已提供的能力绝不重复造轮子。
|
|
4
|
+
> 检查顺序:components → layout 原语 → patterns → apps → capabilities。
|
|
5
|
+
|
|
6
|
+
## 决策树
|
|
7
|
+
|
|
8
|
+
```
|
|
9
|
+
要做一个界面元素?
|
|
10
|
+
├─ 已有组件(Button/Input/Table/Modal/Tabs/Tree…135 个)
|
|
11
|
+
│ └─ → content/components/<id>.md 查 API + 纪律,直接使用
|
|
12
|
+
├─ 是布局结构(容器/间距/对齐/导航壳/响应式显隐)
|
|
13
|
+
│ └─ → content/layout/*.md 用 wf-* 原语(零手写 CSS)
|
|
14
|
+
│ ├─ 页面骨架 → wf-app-shell / wf-stack / wf-container
|
|
15
|
+
│ ├─ 间距/排版 → wf-gap-* / wf-text-* / wf-p-* 工具
|
|
16
|
+
│ └─ 响应式 → wf-hidden@lg / wf-flex@lg 断点变体
|
|
17
|
+
└─ 是完整页面/应用
|
|
18
|
+
├─ 单页结构(后台壳/仪表盘/落地页/移动端)→ content/patterns/*.md 复制
|
|
19
|
+
├─ 多页应用(路由 + 状态 + 后端)→ content/apps/*.md 复制模板改
|
|
20
|
+
│ ├─ 任务管理 → todo
|
|
21
|
+
│ ├─ 登录/权限 → auth
|
|
22
|
+
│ ├─ 管理后台 → admin
|
|
23
|
+
│ └─ 应用编排 → multi
|
|
24
|
+
└─ 生产级参考 → apps/agent-platform/(真实产品架构)
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## 取码(选定后怎么拿源码)
|
|
28
|
+
|
|
29
|
+
| 选型结果 | 取码路径 |
|
|
30
|
+
|---------|---------|
|
|
31
|
+
| 组件片段 | 组件文档「用法示例」节复制(或 `examples/` 无独立文件——直接按 API 写) |
|
|
32
|
+
| 页面模式 | `examples/patterns/<file>.tsx` 复制文件 |
|
|
33
|
+
| 应用模板 | `examples/apps/<id>/` 整个目录复制(app.tsx + api.ts + server.ts + main.tsx) |
|
|
34
|
+
|
|
35
|
+
`examples/` 随 npm 包发布——`node_modules/weifuwu/examples/` 可离线取码。
|
|
36
|
+
|
|
37
|
+
## 组件 vs 原语(最常见混淆)
|
|
38
|
+
|
|
39
|
+
| 场景 | 用组件 | 用原语 |
|
|
40
|
+
|------|--------|--------|
|
|
41
|
+
| 布局容器/间距/显隐 | ❌ | ✅ wf-stack/wf-grid/wf-gap-* |
|
|
42
|
+
| 导航结构(侧栏/菜单项) | ❌ | ✅ wf-nav/wf-nav-item(或 Menu 组件) |
|
|
43
|
+
| 可交互元素(按钮/输入/选择) | ✅ 组件 | ❌ |
|
|
44
|
+
| 弹层(下拉/弹窗/tooltip) | ✅ 组件(openPopup 命令式) | ❌ |
|
|
45
|
+
| 纯视觉容器(卡片面/分隔) | 两者皆可 | ✅ wf-surface/wf-border |
|
|
46
|
+
|
|
47
|
+
## 近义组件选型(名字相近/功能重叠——一句话决策)
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
列表类:List(<500 条)→ VirtualList / VirtualTable(>500 条)
|
|
51
|
+
选择类:固定选项 → Select;自由输入联想 → AutoComplete;纯搜索 → SearchInput
|
|
52
|
+
编辑类:轻量 md → Editor;代码 → CodeEditor;分屏预览 → MarkdownEditor
|
|
53
|
+
树形类:展示/勾选 → Tree;下拉选择 → TreeSelect;路径级联 → Cascader
|
|
54
|
+
折叠类:多开 → Collapse;单开(互斥)→ Accordion
|
|
55
|
+
通知类:轻反馈 → Toast;持久通知 → Notification
|
|
56
|
+
主题类:pressed 语义 → ToggleGroup;选中态样式 → SegmentedControl
|
|
57
|
+
图片类:展示 → Img;裁剪 → ImageCropper;头像 → Avatar
|
|
58
|
+
Office 文档:预览/编辑 → FilePreview;xlsx → FilePreview.Sheet;pptx → FilePreview.Slide
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## 关键纪律(选型时就要知道)
|
|
62
|
+
|
|
63
|
+
1. **浮层必须组件 + openPopup**:dropdown/select/datepicker/menubar/cascader/mentions/contextmenu/tooltip/popover/hovercard/modal/drawer/toast/notification/confirm/tour/command——这些已有组件,直接复用;新弹层组件必须 `ctx.ui.openPopup`(anchor 必传)
|
|
64
|
+
2. **受控组件配回调**:传 active/value/checkedKeys 等受控 props 必须同时传 onChange——缺回调 = 静默不可点
|
|
65
|
+
3. **列表 key 纪律**:有内部状态的组件列表 + 动态增删重排 → 显式 key;纯元素列表 → 无 key(位置身份)
|
|
66
|
+
4. **浏览器能力走 ctx.browser**:禁裸 window/document/localStorage/matchMedia
|
|
67
|
+
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# 两阶段组件模型
|
|
2
|
+
|
|
3
|
+
```tsx
|
|
4
|
+
const MyComp: Component = async (initProps, ctx) => { // ── mount(只一次)
|
|
5
|
+
let count = initProps.initial ?? 0 // 状态初始化/订阅/定时器
|
|
6
|
+
return async (props) => { // ── render(每次渲染)
|
|
7
|
+
return h('button', { onClick: () => { count++; ctx.ui.render() } }, count)
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
## 职责表
|
|
13
|
+
|
|
14
|
+
| 阶段 | 职责 | 可访问 | 事件函数 |
|
|
15
|
+
|------|------|--------|---------|
|
|
16
|
+
| mount | 初始化状态/订阅/定时器/稳定引用回调 | initProps、ctx、mount let、稳定 handle | 只依赖稳定引用 → mount 定义(零重绑) |
|
|
17
|
+
| render | 读最新 props/派生数据/输出视图 | 最新 props、mount 闭包、ctx | 依赖最新 props → render 内定义(重绑是正确性要求) |
|
|
18
|
+
| ref | DOM 持有/第三方初始化/清理 | el 或 null | **必须 mount 作用域定义**(内联 ref 每渲染新函数 → ref(null) 反复触发) |
|
|
19
|
+
|
|
20
|
+
## 铁律
|
|
21
|
+
|
|
22
|
+
1. **renderFn 强制异步**(`async (props) => Promise<VNode>`)——两阶段都可 await
|
|
23
|
+
2. **渲染只发生在 render() 调用处**——状态是普通对象(let/createStore),无 $ Proxy
|
|
24
|
+
3. **工厂按实例执行**——数据必须走 ctx.data(自带缓存+并发合并)
|
|
25
|
+
4. mount 捕获的 initProps 不得用于渲染(必须用渲染期 props)
|
|
26
|
+
5. 初始状态必须确定性(禁 window.innerWidth 之类直接初始化 → SSR mismatch)
|
|
27
|
+
|
|
28
|
+
## 相关
|
|
29
|
+
|
|
30
|
+
- 状态存放:`let` + render()(内部)/ createStore + useExternal(共享)
|
|
31
|
+
- 完整纪律:AGENTS.md §3/§4
|
|
32
|
+
|