weifuwu 0.87.0 → 0.89.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 +111 -135
- package/dist/client/components/ActionSheet/ActionSheet.d.ts +1 -1
- package/dist/client/components/AiChat/AiChat.d.ts +3 -4
- package/dist/client/components/ChatInput/ChatInput.d.ts +5 -0
- package/dist/client/components/CitationCard/CitationCard.d.ts +1 -1
- package/dist/client/components/Command/Command.d.ts +1 -1
- package/dist/client/components/ContextMenu/ContextMenu.d.ts +1 -1
- package/dist/client/components/DatePicker/DatePicker.d.ts +1 -1
- package/dist/client/components/Dropdown/Dropdown.d.ts +1 -1
- package/dist/client/components/Editor/model/html.d.ts +10 -0
- package/dist/client/components/ImageCropper/ImageCropper.d.ts +6 -2
- package/dist/client/components/Menu/Menu.d.ts +1 -1
- package/dist/client/components/NavMenu/NavMenu.d.ts +1 -1
- package/dist/client/components/Popconfirm/Popconfirm.d.ts +1 -1
- package/dist/client/components/SlideCanvas/SlideCanvas.d.ts +1 -1
- package/dist/client/components/Tour/Tour.d.ts +1 -1
- package/dist/client/components/TreeSelect/TreeSelect.d.ts +1 -1
- package/dist/client/components/index.js +41 -41
- package/dist/client/components/style.css +298 -644
- package/dist/client/layout/weifuwu-layout.css +286 -640
- package/dist/client/vdom/browser/Browser.d.ts +2 -0
- package/dist/client/vdom/commands.d.ts +4 -1
- package/dist/client/vdom/context/UIContext.d.ts +8 -0
- package/dist/client/vdom/core/diff/attrs.d.ts +10 -2
- package/dist/client/vdom/core/field/attributes.d.ts +12 -0
- package/dist/client/vdom/core/field/events.d.ts +8 -0
- package/dist/client/vdom/core/field/input-sync.d.ts +14 -0
- package/dist/client/vdom/core/field/key.d.ts +3 -0
- package/dist/client/vdom/core/field/props.d.ts +13 -1
- package/dist/client/vdom/core/field/ref.d.ts +6 -0
- package/dist/client/vdom/core/field/style.d.ts +7 -1
- package/dist/client/vdom/core/node/component.d.ts +3 -4
- package/dist/client/vdom/core/node/native.d.ts +6 -1
- package/dist/client/vdom/core/patch/index.d.ts +24 -1
- package/dist/client/vdom/core/patch/processors.d.ts +8 -1
- package/dist/client/vdom/core/protocol.d.ts +45 -0
- package/dist/client/vdom/core/router.d.ts +7 -0
- package/dist/client/vdom/core/ssr/absorb.d.ts +31 -4
- package/dist/client/vdom/core/transform/index.d.ts +6 -6
- package/dist/client/vdom/core/v2/cycle.d.ts +54 -0
- package/dist/client/vdom/core/v2/diff.d.ts +80 -0
- package/dist/client/vdom/core/v2/integrate.d.ts +24 -0
- package/dist/client/vdom/core/v2/render.d.ts +28 -0
- package/dist/client/vdom/core/v2/schedule.d.ts +33 -0
- package/dist/client/vdom/core/v2/serve.d.ts +4 -0
- package/dist/client/vdom/core/v2/spy.d.ts +21 -0
- package/dist/client/vdom/core/v2/ssr.d.ts +14 -0
- package/dist/client/vdom/core/vnode.d.ts +9 -6
- package/dist/client/vdom/dev/error-counter.d.ts +27 -0
- package/dist/client/vdom/dev/render-health.d.ts +60 -0
- package/dist/client/vdom/hooks/chat.d.ts +32 -5
- package/dist/client/vdom/hooks/drag-media.d.ts +3 -1
- package/dist/client/vdom/hooks/env.d.ts +32 -0
- package/dist/client/vdom/hooks/popup-manager.d.ts +21 -0
- package/dist/client/vdom/hooks/popup.d.ts +4 -1
- package/dist/client/vdom/hooks/stable.d.ts +4 -0
- package/dist/client/vdom/hooks/use-observable.d.ts +13 -0
- package/dist/client/vdom/index.d.ts +14 -6
- package/dist/client/vdom/index.js +4 -7
- package/dist/client/vdom/jsx-runtime.js +1 -1
- package/dist/client/vdom/middlewares/api.d.ts +8 -0
- package/dist/client/vdom/middlewares/auth-i18n.d.ts +7 -0
- package/dist/client/vdom/middlewares/ws.d.ts +41 -1
- package/dist/client/vdom/observable/index.d.ts +13 -0
- package/dist/client/vdom/observable/observable.d.ts +26 -0
- package/dist/client/vdom/observable/operators.d.ts +76 -0
- package/dist/client/vdom/observable/sources.d.ts +54 -0
- package/dist/client/vdom/observable/types.d.ts +45 -0
- package/dist/client/vdom/store.d.ts +17 -2
- package/dist/client/vdom/testing.js +2 -2
- package/dist/server/ai/agent.d.ts +18 -0
- package/dist/server/ai/client.d.ts +14 -2
- package/dist/server/ai/contracts.d.ts +2 -2
- package/dist/server/ai/sse.d.ts +6 -0
- package/dist/server/core/collect.d.ts +31 -0
- package/dist/server/core/error-counter.d.ts +11 -0
- package/dist/server/core/hub.d.ts +2 -0
- package/dist/server/core/router.d.ts +12 -9
- package/dist/server/db/contracts.d.ts +24 -0
- package/dist/server/db/memory-redis.d.ts +3 -4
- package/dist/server/db/memory-sql.d.ts +20 -4
- package/dist/server/db/postgres-server.d.ts +2 -0
- package/dist/server/db/query.d.ts +21 -0
- package/dist/server/db/redis-server.d.ts +4 -2
- package/dist/server/db/sql-parser.d.ts +2 -1
- package/dist/server/email/index.d.ts +2 -0
- package/dist/server/index.d.ts +4 -1
- package/dist/server/index.js +3927 -1982
- package/dist/server/messager/index.d.ts +21 -2
- package/dist/server/middleware/compress.d.ts +25 -0
- package/dist/server/ui/index.d.ts +8 -1
- package/dist/server/user/index.d.ts +4 -0
- package/dist/shared/router/chain.d.ts +9 -0
- package/dist/shared/router/context.d.ts +35 -0
- package/dist/shared/router/ctx-fields.d.ts +20 -0
- package/dist/shared/router/pipeline.d.ts +70 -0
- package/dist/shared/router/trie.d.ts +11 -3
- package/dist/shared/router/types.d.ts +23 -0
- package/docs/style-guide.md +44 -41
- package/package.json +13 -10
- package/content/apps/admin.md +0 -55
- package/content/apps/agent-platform.md +0 -35
- package/content/apps/auth.md +0 -49
- package/content/apps/multi.md +0 -44
- package/content/apps/todo.md +0 -51
- package/content/backend/ai.md +0 -28
- package/content/backend/auth.md +0 -20
- package/content/backend/email.md +0 -23
- package/content/backend/graphql.md +0 -23
- package/content/backend/http.md +0 -23
- package/content/backend/limit.md +0 -23
- package/content/backend/middleware.md +0 -17
- package/content/backend/queue.md +0 -23
- package/content/backend/redis.md +0 -26
- package/content/backend/router.md +0 -23
- package/content/backend/schedule.md +0 -23
- package/content/backend/sql.md +0 -27
- package/content/backend/sse.md +0 -26
- package/content/backend/ws.md +0 -26
- package/content/capabilities/app-node.md +0 -21
- package/content/capabilities/data.md +0 -21
- package/content/capabilities/events.md +0 -21
- package/content/capabilities/hooks.md +0 -22
- package/content/capabilities/i18n.md +0 -21
- package/content/capabilities/popup.md +0 -21
- package/content/capabilities/render-only.md +0 -23
- package/content/capabilities/router.md +0 -22
- package/content/capabilities/self-id.md +0 -21
- package/content/capabilities/store.md +0 -21
- package/content/capabilities/theme.md +0 -21
- package/content/capabilities/two-phase.md +0 -21
- package/content/components/accordion.md +0 -50
- package/content/components/actionsheet.md +0 -46
- package/content/components/affix.md +0 -51
- package/content/components/aichat.md +0 -57
- package/content/components/alert.md +0 -52
- package/content/components/alertgroup.md +0 -45
- package/content/components/anchor.md +0 -52
- package/content/components/app.md +0 -37
- package/content/components/approvalcard.md +0 -56
- package/content/components/appshell.md +0 -50
- package/content/components/aspectratio.md +0 -47
- package/content/components/authpage.md +0 -61
- package/content/components/autocomplete-v2.md +0 -40
- package/content/components/autocomplete.md +0 -56
- package/content/components/avatar.md +0 -51
- package/content/components/avatargroup.md +0 -47
- package/content/components/backtop.md +0 -53
- package/content/components/badge.md +0 -55
- package/content/components/breadcrumb.md +0 -49
- package/content/components/button.md +0 -63
- package/content/components/calendar-v2.md +0 -40
- package/content/components/calendar.md +0 -50
- package/content/components/card.md +0 -58
- package/content/components/carousel.md +0 -52
- package/content/components/cascader-v2.md +0 -39
- package/content/components/cascader.md +0 -54
- package/content/components/chart.md +0 -53
- package/content/components/chatinput.md +0 -63
- package/content/components/checkbox.md +0 -51
- package/content/components/checkboxgroup.md +0 -52
- package/content/components/citationcard.md +0 -48
- package/content/components/codeblock.md +0 -48
- package/content/components/codeeditor.md +0 -47
- package/content/components/collapse.md +0 -49
- package/content/components/colorpicker.md +0 -50
- package/content/components/command.md +0 -50
- package/content/components/confirm.md +0 -57
- package/content/components/contextmenu.md +0 -48
- package/content/components/copybutton.md +0 -51
- package/content/components/datepicker.md +0 -52
- package/content/components/descriptions-v2.md +0 -39
- package/content/components/descriptions.md +0 -52
- package/content/components/diffview-v2.md +0 -39
- package/content/components/diffview.md +0 -50
- package/content/components/divider.md +0 -48
- package/content/components/drawer.md +0 -55
- package/content/components/dropdown.md +0 -53
- package/content/components/editor.md +0 -49
- package/content/components/emptystate.md +0 -51
- package/content/components/exportcsv.md +0 -38
- package/content/components/field.md +0 -54
- package/content/components/filepreview-office.md +0 -37
- package/content/components/filepreview.md +0 -49
- package/content/components/filetree.md +0 -56
- package/content/components/fileupload-v2.md +0 -39
- package/content/components/fileupload.md +0 -57
- package/content/components/floatbutton.md +0 -52
- package/content/components/form-v2.md +0 -41
- package/content/components/form.md +0 -60
- package/content/components/grid.md +0 -51
- package/content/components/highlight-v2.md +0 -39
- package/content/components/highlight.md +0 -46
- package/content/components/hovercard.md +0 -51
- package/content/components/icon.md +0 -50
- package/content/components/imagecropper.md +0 -45
- package/content/components/img.md +0 -56
- package/content/components/infinitescroll-v2.md +0 -40
- package/content/components/infinitescroll.md +0 -54
- package/content/components/input.md +0 -65
- package/content/components/inputnumber.md +0 -58
- package/content/components/inview.md +0 -56
- package/content/components/jsonschemaform.md +0 -53
- package/content/components/jsonviewer-v2.md +0 -39
- package/content/components/jsonviewer.md +0 -49
- package/content/components/kanban.md +0 -46
- package/content/components/label.md +0 -48
- package/content/components/layout.md +0 -54
- package/content/components/layoutcontent.md +0 -43
- package/content/components/layoutheader.md +0 -43
- package/content/components/layoutsider.md +0 -43
- package/content/components/link.md +0 -52
- package/content/components/list.md +0 -44
- package/content/components/loading.md +0 -45
- package/content/components/logviewer-v2.md +0 -39
- package/content/components/logviewer.md +0 -53
- package/content/components/markdown.md +0 -51
- package/content/components/markdowneditor.md +0 -47
- package/content/components/math.md +0 -42
- package/content/components/mentions-v2.md +0 -39
- package/content/components/mentions.md +0 -52
- package/content/components/menu.md +0 -56
- package/content/components/menubar.md +0 -44
- package/content/components/messagebubble.md +0 -50
- package/content/components/modal.md +0 -59
- package/content/components/navmenu.md +0 -47
- package/content/components/notification.md +0 -51
- package/content/components/pageheader.md +0 -53
- package/content/components/pagination.md +0 -49
- package/content/components/paragraph.md +0 -45
- package/content/components/passwordinput.md +0 -57
- package/content/components/pininput-v2.md +0 -39
- package/content/components/pininput.md +0 -50
- package/content/components/pipeline.md +0 -49
- package/content/components/popconfirm.md +0 -58
- package/content/components/popover.md +0 -61
- package/content/components/progressbar.md +0 -50
- package/content/components/prompttemplate.md +0 -49
- package/content/components/qrcode.md +0 -50
- package/content/components/radiogroup.md +0 -53
- package/content/components/rate.md +0 -53
- package/content/components/reasoningblock.md +0 -47
- package/content/components/relationgraph.md +0 -52
- package/content/components/resizable.md +0 -53
- package/content/components/result.md +0 -49
- package/content/components/scrollbar.md +0 -49
- package/content/components/searchinput.md +0 -51
- package/content/components/segmentedcontrol.md +0 -59
- package/content/components/select-searchable.md +0 -47
- package/content/components/select.md +0 -66
- package/content/components/sessionlist.md +0 -52
- package/content/components/sheetgrid.md +0 -44
- package/content/components/skeleton.md +0 -55
- package/content/components/slidecanvas.md +0 -44
- package/content/components/slider.md +0 -62
- package/content/components/sortablelist.md +0 -39
- package/content/components/space.md +0 -52
- package/content/components/sparkline.md +0 -52
- package/content/components/statcard-countdown.md +0 -39
- package/content/components/statcard.md +0 -56
- package/content/components/steps.md +0 -48
- package/content/components/switch.md +0 -50
- package/content/components/tabbar.md +0 -45
- package/content/components/table-v2.md +0 -40
- package/content/components/table.md +0 -66
- package/content/components/tabs.md +0 -56
- package/content/components/tag.md +0 -51
- package/content/components/tagsinput-v2.md +0 -39
- package/content/components/tagsinput.md +0 -54
- package/content/components/text.md +0 -45
- package/content/components/textarea.md +0 -57
- package/content/components/themeswitch.md +0 -69
- package/content/components/timeline.md +0 -50
- package/content/components/title.md +0 -45
- package/content/components/toast.md +0 -52
- package/content/components/toggle-togglegroup.md +0 -52
- package/content/components/togglegroup.md +0 -47
- package/content/components/toolcallcard.md +0 -51
- package/content/components/tooltip.md +0 -50
- package/content/components/tour.md +0 -50
- package/content/components/transfer.md +0 -52
- package/content/components/tree-v2.md +0 -39
- package/content/components/tree.md +0 -59
- package/content/components/treeselect.md +0 -54
- package/content/components/typography.md +0 -51
- package/content/components/videoplayer.md +0 -52
- package/content/components/virtuallist.md +0 -52
- package/content/components/virtualtable-v2.md +0 -39
- package/content/components/virtualtable.md +0 -55
- package/content/components/watermark.md +0 -53
- package/content/components/wave.md +0 -43
- package/content/guides/ai-chat-family.md +0 -24
- package/content/guides/choose.md +0 -67
- package/content/guides/component-model.md +0 -32
- package/content/guides/component-standards.md +0 -123
- package/content/guides/components-guide.md +0 -813
- package/content/guides/custom-component.md +0 -321
- package/content/guides/data-guide.md +0 -281
- package/content/guides/file-preview-family.md +0 -18
- package/content/guides/frontend.md +0 -968
- package/content/guides/layout-choice.md +0 -64
- package/content/guides/layout-guide.md +0 -241
- package/content/guides/middleware.md +0 -459
- package/content/guides/mobile-guide.md +0 -105
- package/content/guides/page-building.md +0 -98
- package/content/guides/production.md +0 -37
- package/content/guides/quality.md +0 -60
- package/content/guides/realtime-guide.md +0 -296
- package/content/guides/render-only.md +0 -44
- package/content/guides/saas-guide.md +0 -253
- package/content/guides/server-guide.md +0 -359
- package/content/guides/start.md +0 -41
- package/content/guides/styling.md +0 -154
- package/content/guides/ui-dom-guide.md +0 -157
- package/content/index.json +0 -4344
- package/content/index.md +0 -181
- package/content/layout/align.md +0 -20
- package/content/layout/anchor.md +0 -19
- package/content/layout/app-shell.md +0 -23
- package/content/layout/border.md +0 -20
- package/content/layout/center.md +0 -19
- package/content/layout/cluster.md +0 -19
- package/content/layout/container.md +0 -19
- package/content/layout/fill.md +0 -19
- package/content/layout/grid.md +0 -19
- package/content/layout/hidden.md +0 -22
- package/content/layout/layer.md +0 -19
- package/content/layout/position.md +0 -22
- package/content/layout/row.md +0 -23
- package/content/layout/safe-area.md +0 -20
- package/content/layout/scroll.md +0 -21
- package/content/layout/spacing.md +0 -22
- package/content/layout/split.md +0 -19
- package/content/layout/stack.md +0 -19
- package/content/layout/surface.md +0 -23
- package/content/layout/text.md +0 -22
- package/content/patterns/app-shell.md +0 -34
- package/content/patterns/dashboard.md +0 -36
- package/content/patterns/data-screen.md +0 -30
- package/content/patterns/detail-page.md +0 -31
- package/content/patterns/docs.md +0 -34
- package/content/patterns/focus-task.md +0 -34
- package/content/patterns/landing.md +0 -35
- package/content/patterns/list-page.md +0 -32
- package/content/patterns/mobile.md +0 -31
- package/content/patterns/settings-page.md +0 -33
- package/content/patterns/workspace.md +0 -32
- package/dist/cli/content-sync.test.d.ts +0 -1
- package/dist/cli/docs-cli.test.d.ts +0 -1
- package/dist/cli/docs.d.ts +0 -2
- package/dist/cli/docs.mjs +0 -10961
- package/dist/client/vdom/core/build.d.ts +0 -36
- package/dist/client/vdom/core/diff/children.d.ts +0 -29
- package/dist/client/vdom/core/diff/index.d.ts +0 -22
- package/dist/client/vdom/core/diff/output.d.ts +0 -30
- package/dist/client/vdom/core/diff/same.d.ts +0 -22
- package/dist/client/vdom/core/serve.d.ts +0 -75
- package/dist/client/vdom/core/ssr/index.d.ts +0 -25
- package/examples/apps/admin/README.md +0 -23
- package/examples/apps/admin/api.ts +0 -27
- package/examples/apps/admin/app.tsx +0 -144
- package/examples/apps/admin/main.tsx +0 -8
- package/examples/apps/admin/server.ts +0 -37
- package/examples/apps/auth/README.md +0 -23
- package/examples/apps/auth/api.ts +0 -49
- package/examples/apps/auth/app.tsx +0 -137
- package/examples/apps/auth/main.tsx +0 -8
- package/examples/apps/auth/server.ts +0 -37
- package/examples/apps/multi/README.md +0 -23
- package/examples/apps/multi/app.tsx +0 -83
- package/examples/apps/multi/main.tsx +0 -8
- package/examples/apps/multi/server.ts +0 -33
- package/examples/apps/todo/README.md +0 -23
- package/examples/apps/todo/api.ts +0 -26
- package/examples/apps/todo/app.tsx +0 -128
- package/examples/apps/todo/main.tsx +0 -9
- package/examples/apps/todo/server.ts +0 -39
- package/examples/hello-world/README.md +0 -9
- package/examples/hello-world/client.ts +0 -14
- package/examples/hello-world/routes.tsx +0 -26
- package/examples/hello-world/server.ts +0 -46
- package/examples/patterns/AppShell.tsx +0 -224
- package/examples/patterns/Dashboard.tsx +0 -153
- package/examples/patterns/DataScreen.tsx +0 -104
- package/examples/patterns/DetailPage.tsx +0 -79
- package/examples/patterns/Docs.tsx +0 -105
- package/examples/patterns/FocusTask.tsx +0 -67
- package/examples/patterns/Landing.tsx +0 -90
- package/examples/patterns/ListPage.tsx +0 -77
- package/examples/patterns/Mobile.tsx +0 -154
- package/examples/patterns/SettingsPage.tsx +0 -98
- package/examples/patterns/SplitWorkspace.tsx +0 -113
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
# Table · components
|
|
2
|
-
|
|
3
|
-
## 概述
|
|
4
|
-
|
|
5
|
-
可排序 + 自定义 render + 空状态
|
|
6
|
-
|
|
7
|
-
## 典型场景
|
|
8
|
-
|
|
9
|
-
- 页面模式:app-shell、dashboard、list-page(复制即用蓝本——examples/patterns/)
|
|
10
|
-
- 应用模板:admin、agent-platform(examples/apps/ 完整可跑)
|
|
11
|
-
- 数据展示——列表页、详情页、信息呈现
|
|
12
|
-
|
|
13
|
-
## API
|
|
14
|
-
|
|
15
|
-
| prop | 类型 | 必填 | 说明 |
|
|
16
|
-
|------|------|------|------|
|
|
17
|
-
| `data` | `any[]` | 否 | |
|
|
18
|
-
| `columns` | `TableColumn[]` | 是 | |
|
|
19
|
-
| `onRowClick` | `(row: any, index: number) => void` | 否 | |
|
|
20
|
-
| `sortKey` | `string` | 否 | 当前排序列的 key |
|
|
21
|
-
| `sortOrder` | `'asc' \| 'desc'` | 否 | 当前排序方向 |
|
|
22
|
-
| `onSort` | `(key: string, order: 'asc' \| 'desc') => void` | 否 | 排序变化回调 |
|
|
23
|
-
| `rowSelection` | `TableRowSelection` | 否 | 行选择(受控) |
|
|
24
|
-
| `emptyText` | `string` | 否 | 数据为空时显示的文本 |
|
|
25
|
-
| `minWidth` | `string` | 否 | 表格最小宽度(窄屏横向滚动,如 '720px') |
|
|
26
|
-
| `onCellEdit` | `(key: string, rowIndex: number, value: string, row: any) => void` | 否 | 行内编辑提交回调(editable 列必配——受控纪律) |
|
|
27
|
-
| `loading` | `boolean` | 否 | 加载中:保留表头,渲染骨架行 |
|
|
28
|
-
| `loadingRows` | `number` | 否 | 骨架行数,默认 3 |
|
|
29
|
-
|
|
30
|
-
## 用法示例
|
|
31
|
-
|
|
32
|
-
```tsx
|
|
33
|
-
<Table data={items} columns={[
|
|
34
|
-
{key:'id', label:'ID'},
|
|
35
|
-
{key:'name', label:'姓名', sortable: true},
|
|
36
|
-
{key:'status', label:'状态',
|
|
37
|
-
render: v => <Badge>{v}</Badge>},
|
|
38
|
-
]}
|
|
39
|
-
sortKey="name" sortOrder="asc"
|
|
40
|
-
onSort={(k,o) => setSort(k,o)} />
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
## 纪律/坑
|
|
44
|
-
|
|
45
|
-
- 固定列必须显式 width(缺省 140 估算 + console.warn——sticky 偏移累计依赖)
|
|
46
|
-
- 数组空洞:children 里 {cond && <X/>} 是占位——不得误删下一个兄弟(提交按钮消失事故同源)
|
|
47
|
-
- 行内编辑(editable 列)必须配 onCellEdit(受控纪律)
|
|
48
|
-
|
|
49
|
-
## 关系
|
|
50
|
-
|
|
51
|
-
- ↑ 用于页面模式:[app-shell](../patterns/app-shell.md) · [dashboard](../patterns/dashboard.md) · [list-page](../patterns/list-page.md)
|
|
52
|
-
- ↑ 用于应用:[admin](../apps/admin.md) · [agent-platform](../apps/agent-platform.md)
|
|
53
|
-
- → 后端能力:[sql](../backend/sql.md) · [redis](../backend/redis.md)
|
|
54
|
-
|
|
55
|
-
## 文件位置
|
|
56
|
-
|
|
57
|
-
| 文件 | 路径 |
|
|
58
|
-
|------|------|
|
|
59
|
-
| 源码 | `src/client/components/Table/Table.ts` |
|
|
60
|
-
| 样式 | `src/client/components/Table/Table.css` |
|
|
61
|
-
| 测试 | `src/client/components/Table/Table.test.ts` |
|
|
62
|
-
| demo | `apps/showcase/src/demos/DemoTable.tsx`(P1 拆分) |
|
|
63
|
-
|
|
64
|
-
## 验证
|
|
65
|
-
|
|
66
|
-
> agent-browser 走查:打开 `/components/display/table` ——(P1 填充具体步骤)
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
# Tabs · components
|
|
2
|
-
|
|
3
|
-
## 概述
|
|
4
|
-
|
|
5
|
-
标签页切换,支持 active/onChange
|
|
6
|
-
|
|
7
|
-
## 典型场景
|
|
8
|
-
|
|
9
|
-
- 页面模式:workspace、settings-page(复制即用蓝本——examples/patterns/)
|
|
10
|
-
- 应用模板:multi(examples/apps/ 完整可跑)
|
|
11
|
-
- 页面导航——侧栏、页头、标签页、步骤、分页
|
|
12
|
-
|
|
13
|
-
## API
|
|
14
|
-
|
|
15
|
-
| prop | 类型 | 必填 | 说明 |
|
|
16
|
-
|------|------|------|------|
|
|
17
|
-
| `items` | `TabItem[]` | 否 | |
|
|
18
|
-
| `active` | `string` | 否 | |
|
|
19
|
-
| `onChange` | `(key: string) => void` | 否 | |
|
|
20
|
-
| `closable` | `boolean` | 否 | 可关闭 tab(浏览器标签类应用——关闭中间 tab 自动激活邻居) |
|
|
21
|
-
| `onClose` | `(key: string) => void` | 否 | 关闭回调(父负责从 items 移除;受控纪律:closable 必须配 onClose) |
|
|
22
|
-
| `addable` | `boolean` | 否 | 显示新增 + 按钮 |
|
|
23
|
-
| `onAdd` | `() => void` | 否 | 新增回调(父负责追加 items) |
|
|
24
|
-
|
|
25
|
-
## 用法示例
|
|
26
|
-
|
|
27
|
-
```tsx
|
|
28
|
-
<Tabs items={[
|
|
29
|
-
{key:'a',label:'详情',
|
|
30
|
-
content:<p>...</p>},
|
|
31
|
-
]} active="a" onChange={fn} />
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
## 纪律/坑
|
|
35
|
-
|
|
36
|
-
- 混合数组稳定 key:tabList+addBtn+ink 全 keyed——无 key 项退 unkeyed 位置配对(新增 tab 错位事故)
|
|
37
|
-
- closable 必须配 onClose / addable 必须配 onAdd(受控纪律——console.warn)
|
|
38
|
-
|
|
39
|
-
## 关系
|
|
40
|
-
|
|
41
|
-
- ↑ 用于页面模式:[workspace](../patterns/workspace.md) · [settings-page](../patterns/settings-page.md)
|
|
42
|
-
- ↑ 用于应用:[multi](../apps/multi.md)
|
|
43
|
-
- → 后端能力:(暂无)
|
|
44
|
-
|
|
45
|
-
## 文件位置
|
|
46
|
-
|
|
47
|
-
| 文件 | 路径 |
|
|
48
|
-
|------|------|
|
|
49
|
-
| 源码 | `src/client/components/Tabs/Tabs.ts` |
|
|
50
|
-
| 样式 | `src/client/components/Tabs/Tabs.css` |
|
|
51
|
-
| 测试 | `src/client/components/Tabs/Tabs.test.ts` |
|
|
52
|
-
| demo | `apps/showcase/src/demos/DemoTabs.tsx`(P1 拆分) |
|
|
53
|
-
|
|
54
|
-
## 验证
|
|
55
|
-
|
|
56
|
-
> agent-browser 走查:打开 `/components/navigation/tabs` ——(P1 填充具体步骤)
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
# Tag · components
|
|
2
|
-
|
|
3
|
-
## 概述
|
|
4
|
-
|
|
5
|
-
标签,支持 closable/onClose
|
|
6
|
-
|
|
7
|
-
## 典型场景
|
|
8
|
-
|
|
9
|
-
- 页面模式:docs、list-page、detail-page(复制即用蓝本——examples/patterns/)
|
|
10
|
-
- 应用模板:todo、admin、multi(examples/apps/ 完整可跑)
|
|
11
|
-
- 基础元素(按钮/图标/文本/卡片/标签)——任意页面的构成单元
|
|
12
|
-
|
|
13
|
-
## API
|
|
14
|
-
|
|
15
|
-
| prop | 类型 | 必填 | 说明 |
|
|
16
|
-
|------|------|------|------|
|
|
17
|
-
| `closable` | `boolean` | 否 | |
|
|
18
|
-
| `onClose` | `() => void` | 否 | |
|
|
19
|
-
| `variant` | `'default' \| 'primary' \| 'success' \| 'danger'` | 否 | |
|
|
20
|
-
| `children` | `any` | 否 | |
|
|
21
|
-
|
|
22
|
-
## 用法示例
|
|
23
|
-
|
|
24
|
-
```tsx
|
|
25
|
-
<Tag>标签</Tag>
|
|
26
|
-
<Tag variant="primary" />
|
|
27
|
-
<Tag closable>可关闭</Tag>
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
## 纪律/坑
|
|
31
|
-
|
|
32
|
-
> 浏览器纪律(§5.5):组件能力经 ctx.browser / ctx.ui.useXXX——禁裸 window/document
|
|
33
|
-
|
|
34
|
-
## 关系
|
|
35
|
-
|
|
36
|
-
- ↑ 用于页面模式:[docs](../patterns/docs.md) · [list-page](../patterns/list-page.md) · [detail-page](../patterns/detail-page.md)
|
|
37
|
-
- ↑ 用于应用:[todo](../apps/todo.md) · [admin](../apps/admin.md) · [multi](../apps/multi.md)
|
|
38
|
-
- → 后端能力:(暂无)
|
|
39
|
-
|
|
40
|
-
## 文件位置
|
|
41
|
-
|
|
42
|
-
| 文件 | 路径 |
|
|
43
|
-
|------|------|
|
|
44
|
-
| 源码 | `src/client/components/Tag/Tag.ts` |
|
|
45
|
-
| 样式 | `src/client/components/Tag/Tag.css` |
|
|
46
|
-
| 测试 | `src/client/components/Tag/Tag.test.ts` |
|
|
47
|
-
| demo | `apps/showcase/src/demos/DemoTag.tsx`(P1 拆分) |
|
|
48
|
-
|
|
49
|
-
## 验证
|
|
50
|
-
|
|
51
|
-
> agent-browser 走查:打开 `/components/core/tag` ——(P1 填充具体步骤)
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
# TagsInput 限制/错误 · components
|
|
2
|
-
|
|
3
|
-
## 概述
|
|
4
|
-
|
|
5
|
-
maxTags 限制 + error 校验态(状态矩阵覆盖)
|
|
6
|
-
|
|
7
|
-
## 典型场景
|
|
8
|
-
|
|
9
|
-
- 表单输入/搜索/筛选——查询区、编辑表单、设置页
|
|
10
|
-
|
|
11
|
-
## API
|
|
12
|
-
|
|
13
|
-
> props 提取降级(接口格式特殊)——见源码:`—`
|
|
14
|
-
|
|
15
|
-
## 用法示例
|
|
16
|
-
|
|
17
|
-
```tsx
|
|
18
|
-
<TagsInput value={tags} maxTags={3} error="标签超限" onChange={t => set(t)} />
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
## 纪律/坑
|
|
22
|
-
|
|
23
|
-
> 受控输入纪律(§5.3):输入期间 value 走内部态(useControlledInput)——依赖回流会重挂 input 丢焦点;IME composition 门控
|
|
24
|
-
|
|
25
|
-
## 关系
|
|
26
|
-
|
|
27
|
-
- ↑ 用于页面模式:(暂无)
|
|
28
|
-
- ↑ 用于应用:(暂无)
|
|
29
|
-
- → 后端能力:(暂无)
|
|
30
|
-
|
|
31
|
-
## 文件位置
|
|
32
|
-
|
|
33
|
-
| 文件 | 路径 |
|
|
34
|
-
|------|------|
|
|
35
|
-
| demo | `apps/showcase/src/demos/DemoTagsInputErr.tsx`(P1 拆分) |
|
|
36
|
-
|
|
37
|
-
## 验证
|
|
38
|
-
|
|
39
|
-
> agent-browser 走查:打开 `/components/input/tagsinput-v2` ——(P1 填充具体步骤)
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
# TagsInput · components
|
|
2
|
-
|
|
3
|
-
## 概述
|
|
4
|
-
|
|
5
|
-
标签输入:回车/逗号添加 + 中文输入法感知
|
|
6
|
-
|
|
7
|
-
## 典型场景
|
|
8
|
-
|
|
9
|
-
- 表单输入/搜索/筛选——查询区、编辑表单、设置页
|
|
10
|
-
|
|
11
|
-
## API
|
|
12
|
-
|
|
13
|
-
| prop | 类型 | 必填 | 说明 |
|
|
14
|
-
|------|------|------|------|
|
|
15
|
-
| `value` | `string[]` | 否 | |
|
|
16
|
-
| `onChange` | `(tags: string[]) => void` | 否 | |
|
|
17
|
-
| `placeholder` | `string` | 否 | |
|
|
18
|
-
| `maxTags` | `number` | 否 | |
|
|
19
|
-
| `allowDuplicates` | `boolean` | 否 | |
|
|
20
|
-
| `disabled` | `boolean` | 否 | |
|
|
21
|
-
| `label` | `string` | 否 | |
|
|
22
|
-
| `error` | `string` | 否 | |
|
|
23
|
-
| `hint` | `string` | 否 | |
|
|
24
|
-
| `className` | `string` | 否 | |
|
|
25
|
-
|
|
26
|
-
## 用法示例
|
|
27
|
-
|
|
28
|
-
```tsx
|
|
29
|
-
<TagsInput value={tags} placeholder="回车添加标签"
|
|
30
|
-
maxTags={10} onChange={setTags} />
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
## 纪律/坑
|
|
34
|
-
|
|
35
|
-
> 受控输入纪律(§5.3):输入期间 value 走内部态(useControlledInput)——依赖回流会重挂 input 丢焦点;IME composition 门控
|
|
36
|
-
|
|
37
|
-
## 关系
|
|
38
|
-
|
|
39
|
-
- ↑ 用于页面模式:(暂无)
|
|
40
|
-
- ↑ 用于应用:(暂无)
|
|
41
|
-
- → 后端能力:(暂无)
|
|
42
|
-
|
|
43
|
-
## 文件位置
|
|
44
|
-
|
|
45
|
-
| 文件 | 路径 |
|
|
46
|
-
|------|------|
|
|
47
|
-
| 源码 | `src/client/components/TagsInput/TagsInput.ts` |
|
|
48
|
-
| 样式 | `src/client/components/TagsInput/TagsInput.css` |
|
|
49
|
-
| 测试 | `src/client/components/TagsInput/TagsInput.test.ts` |
|
|
50
|
-
| demo | `apps/showcase/src/demos/DemoTagsInput.tsx`(P1 拆分) |
|
|
51
|
-
|
|
52
|
-
## 验证
|
|
53
|
-
|
|
54
|
-
> agent-browser 走查:打开 `/components/input/tagsinput` ——(P1 填充具体步骤)
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
# Text · components
|
|
2
|
-
|
|
3
|
-
## 概述
|
|
4
|
-
|
|
5
|
-
正文排版(语义色 -text 变体 + mark/code/删除线)——Typography 家族
|
|
6
|
-
|
|
7
|
-
## 典型场景
|
|
8
|
-
|
|
9
|
-
- 页面模式:app-shell、workspace、focus-task、dashboard、data-screen、landing、mobile(复制即用蓝本——examples/patterns/)
|
|
10
|
-
- 基础元素(按钮/图标/文本/卡片/标签)——任意页面的构成单元
|
|
11
|
-
|
|
12
|
-
## API
|
|
13
|
-
|
|
14
|
-
| prop | 类型 | 必填 | 说明 |
|
|
15
|
-
|------|------|------|------|
|
|
16
|
-
| `level` | `1 \| 2 \| 3 \| 4 \| 5` | 否 | 1-5,默认 1(h1-h5) |
|
|
17
|
-
| `children` | `any` | 否 | |
|
|
18
|
-
| `className` | `string` | 否 | |
|
|
19
|
-
| `style` | `Record<string, string>` | 否 | |
|
|
20
|
-
|
|
21
|
-
## 用法示例
|
|
22
|
-
|
|
23
|
-
> (P1 迁移 CODE 字符串)
|
|
24
|
-
|
|
25
|
-
## 纪律/坑
|
|
26
|
-
|
|
27
|
-
> 浏览器纪律(§5.5):组件能力经 ctx.browser / ctx.ui.useXXX——禁裸 window/document
|
|
28
|
-
|
|
29
|
-
## 关系
|
|
30
|
-
|
|
31
|
-
- ↑ 用于页面模式:[app-shell](../patterns/app-shell.md) · [workspace](../patterns/workspace.md) · [focus-task](../patterns/focus-task.md) · [dashboard](../patterns/dashboard.md) · [data-screen](../patterns/data-screen.md) · [landing](../patterns/landing.md) · [mobile](../patterns/mobile.md)
|
|
32
|
-
- ↑ 用于应用:(暂无)
|
|
33
|
-
- → 后端能力:(暂无)
|
|
34
|
-
|
|
35
|
-
## 文件位置
|
|
36
|
-
|
|
37
|
-
| 文件 | 路径 |
|
|
38
|
-
|------|------|
|
|
39
|
-
| 源码 | `src/client/components/Typography/Typography.ts` |
|
|
40
|
-
| 样式 | `src/client/components/Typography/Typography.css` |
|
|
41
|
-
| 测试 | `src/client/components/Typography/Typography.test.ts` |
|
|
42
|
-
|
|
43
|
-
## 验证
|
|
44
|
-
|
|
45
|
-
> agent-browser 走查:打开 `/components/core/text` ——(P1 填充具体步骤)
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
# Textarea · components
|
|
2
|
-
|
|
3
|
-
## 概述
|
|
4
|
-
|
|
5
|
-
多行文本,支持 rows/label/error/hint
|
|
6
|
-
|
|
7
|
-
## 典型场景
|
|
8
|
-
|
|
9
|
-
- 表单输入/搜索/筛选——查询区、编辑表单、设置页
|
|
10
|
-
|
|
11
|
-
## API
|
|
12
|
-
|
|
13
|
-
| prop | 类型 | 必填 | 说明 |
|
|
14
|
-
|------|------|------|------|
|
|
15
|
-
| `label` | `string` | 否 | |
|
|
16
|
-
| `value` | `string` | 否 | |
|
|
17
|
-
| `placeholder` | `string` | 否 | |
|
|
18
|
-
| `required` | `boolean` | 否 | |
|
|
19
|
-
| `disabled` | `boolean` | 否 | |
|
|
20
|
-
| `error` | `string` | 否 | |
|
|
21
|
-
| `hint` | `string` | 否 | |
|
|
22
|
-
| `rows` | `number` | 否 | |
|
|
23
|
-
| `maxLength` | `number` | 否 | 最大字符数(同时限制输入) |
|
|
24
|
-
| `showCount` | `boolean` | 否 | 显示字数统计(右下角;配合受控 value 实时更新) |
|
|
25
|
-
| `onInput` | `(e: Event) => void` | 否 | |
|
|
26
|
-
|
|
27
|
-
## 用法示例
|
|
28
|
-
|
|
29
|
-
```tsx
|
|
30
|
-
<Textarea label="简介" rows={3}
|
|
31
|
-
value={bio}
|
|
32
|
-
onInput={e => bio = e.target.value} />
|
|
33
|
-
<Textarea error="错误" />
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
## 纪律/坑
|
|
37
|
-
|
|
38
|
-
> 受控输入纪律(§5.3):输入期间 value 走内部态(useControlledInput)——依赖回流会重挂 input 丢焦点;IME composition 门控
|
|
39
|
-
|
|
40
|
-
## 关系
|
|
41
|
-
|
|
42
|
-
- ↑ 用于页面模式:(暂无)
|
|
43
|
-
- ↑ 用于应用:(暂无)
|
|
44
|
-
- → 后端能力:(暂无)
|
|
45
|
-
|
|
46
|
-
## 文件位置
|
|
47
|
-
|
|
48
|
-
| 文件 | 路径 |
|
|
49
|
-
|------|------|
|
|
50
|
-
| 源码 | `src/client/components/Textarea/Textarea.ts` |
|
|
51
|
-
| 样式 | `src/client/components/Textarea/Textarea.css` |
|
|
52
|
-
| 测试 | `src/client/components/Textarea/Textarea.test.ts` |
|
|
53
|
-
| demo | `apps/showcase/src/demos/DemoTextarea.tsx`(P1 拆分) |
|
|
54
|
-
|
|
55
|
-
## 验证
|
|
56
|
-
|
|
57
|
-
> agent-browser 走查:打开 `/components/input/textarea` ——(P1 填充具体步骤)
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
# ThemeSwitch · components
|
|
2
|
-
|
|
3
|
-
## 概述
|
|
4
|
-
|
|
5
|
-
主题切换:auto/light/dark,localStorage 持久化
|
|
6
|
-
|
|
7
|
-
## 典型场景
|
|
8
|
-
|
|
9
|
-
- 应用模板:admin、agent-platform(examples/apps/ 完整可跑)
|
|
10
|
-
- 基础元素(按钮/图标/文本/卡片/标签)——任意页面的构成单元
|
|
11
|
-
|
|
12
|
-
## API
|
|
13
|
-
|
|
14
|
-
| prop | 类型 | 必填 | 说明 |
|
|
15
|
-
|------|------|------|------|
|
|
16
|
-
| `mode` | `ThemeMode` | 否 | 初始模式(默认从 localStorage 读取,无记录时为 auto) |
|
|
17
|
-
| `onChange` | `(mode: ThemeMode) => void` | 否 | 切换回调 |
|
|
18
|
-
| `storageKey` | `string` | 否 | localStorage 存储 key |
|
|
19
|
-
| `preset` | `PresetName` | 否 | 预设主题(可选——传了才渲染预设行;对应 layout `data-preset`) |
|
|
20
|
-
| `onPresetChange` | `(preset: PresetName) => void` | 否 | 预设切换回调 |
|
|
21
|
-
|
|
22
|
-
## 用法示例
|
|
23
|
-
|
|
24
|
-
```tsx
|
|
25
|
-
<ThemeSwitch />
|
|
26
|
-
|
|
27
|
-
<ThemeSwitch onChange={mode =>
|
|
28
|
-
console.log(mode)} /> // auto | light | dark
|
|
29
|
-
|
|
30
|
-
{/* 预设主题行(可选):minimal/compact/rounded,与暗色正交 */}
|
|
31
|
-
<ThemeSwitch preset="compact"
|
|
32
|
-
onPresetChange={p =>
|
|
33
|
-
console.log(p)} />
|
|
34
|
-
|
|
35
|
-
// 单值换肤:改 seed 一个值,色阶自动派生
|
|
36
|
-
:root {
|
|
37
|
-
--wf-brand-seed: #7c3aed;
|
|
38
|
-
--wf-dark-brand-seed: #a78bfa; /* 暗色品牌(可选) */
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
// 命令式
|
|
42
|
-
import { applyTheme, getTheme } from 'weifuwu/components'
|
|
43
|
-
applyTheme('dark')
|
|
44
|
-
getTheme() // 'auto' | 'light' | 'dark'
|
|
45
|
-
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
## 纪律/坑
|
|
49
|
-
|
|
50
|
-
> 浏览器纪律(§5.5):组件能力经 ctx.browser / ctx.ui.useXXX——禁裸 window/document
|
|
51
|
-
|
|
52
|
-
## 关系
|
|
53
|
-
|
|
54
|
-
- ↑ 用于页面模式:(暂无)
|
|
55
|
-
- ↑ 用于应用:[admin](../apps/admin.md) · [agent-platform](../apps/agent-platform.md)
|
|
56
|
-
- → 后端能力:(暂无)
|
|
57
|
-
|
|
58
|
-
## 文件位置
|
|
59
|
-
|
|
60
|
-
| 文件 | 路径 |
|
|
61
|
-
|------|------|
|
|
62
|
-
| 源码 | `src/client/components/ThemeSwitch/ThemeSwitch.ts` |
|
|
63
|
-
| 样式 | `src/client/components/ThemeSwitch/ThemeSwitch.css` |
|
|
64
|
-
| 测试 | `src/client/components/ThemeSwitch/ThemeSwitch.test.ts` |
|
|
65
|
-
| demo | `apps/showcase/src/demos/DemoThemeSwitch.tsx`(P1 拆分) |
|
|
66
|
-
|
|
67
|
-
## 验证
|
|
68
|
-
|
|
69
|
-
> agent-browser 走查:打开 `/components/core/themeswitch` ——(P1 填充具体步骤)
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
# Timeline · components
|
|
2
|
-
|
|
3
|
-
## 概述
|
|
4
|
-
|
|
5
|
-
时间线:节点状态色 + 时间 + 内容(执行日志/审批历史)
|
|
6
|
-
|
|
7
|
-
## 典型场景
|
|
8
|
-
|
|
9
|
-
- 页面模式:detail-page(复制即用蓝本——examples/patterns/)
|
|
10
|
-
- 数据展示——列表页、详情页、信息呈现
|
|
11
|
-
|
|
12
|
-
## API
|
|
13
|
-
|
|
14
|
-
| prop | 类型 | 必填 | 说明 |
|
|
15
|
-
|------|------|------|------|
|
|
16
|
-
| `items` | `TimelineItem[]` | 是 | |
|
|
17
|
-
| `mode` | `'left' \| 'alternate' \| 'horizontal'` | 否 | |
|
|
18
|
-
| `reverse` | `boolean` | 否 | |
|
|
19
|
-
|
|
20
|
-
## 用法示例
|
|
21
|
-
|
|
22
|
-
```tsx
|
|
23
|
-
<Timeline items={[
|
|
24
|
-
{ key: '1', title: 'AI 回复', time: '10:00', status: 'success', content: '…' },
|
|
25
|
-
{ key: '2', title: '工具调用', time: '10:00', status: 'info' },
|
|
26
|
-
]} />
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
## 纪律/坑
|
|
30
|
-
|
|
31
|
-
> 三层一致(§6.3):条件渲染 false 是空洞占位——数组项 key 由业务声明
|
|
32
|
-
|
|
33
|
-
## 关系
|
|
34
|
-
|
|
35
|
-
- ↑ 用于页面模式:[detail-page](../patterns/detail-page.md)
|
|
36
|
-
- ↑ 用于应用:(暂无)
|
|
37
|
-
- → 后端能力:(暂无)
|
|
38
|
-
|
|
39
|
-
## 文件位置
|
|
40
|
-
|
|
41
|
-
| 文件 | 路径 |
|
|
42
|
-
|------|------|
|
|
43
|
-
| 源码 | `src/client/components/Timeline/Timeline.ts` |
|
|
44
|
-
| 样式 | `src/client/components/Timeline/Timeline.css` |
|
|
45
|
-
| 测试 | `src/client/components/Timeline/Timeline.test.ts` |
|
|
46
|
-
| demo | `apps/showcase/src/demos/DemoTimeline.tsx`(P1 拆分) |
|
|
47
|
-
|
|
48
|
-
## 验证
|
|
49
|
-
|
|
50
|
-
> agent-browser 走查:打开 `/components/display/timeline` ——(P1 填充具体步骤)
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
# Title · components
|
|
2
|
-
|
|
3
|
-
## 概述
|
|
4
|
-
|
|
5
|
-
标题排版(语义标签 + 语义色 -text 变体)——Typography 家族
|
|
6
|
-
|
|
7
|
-
## 典型场景
|
|
8
|
-
|
|
9
|
-
- 页面模式:docs、dashboard、landing(复制即用蓝本——examples/patterns/)
|
|
10
|
-
- 基础元素(按钮/图标/文本/卡片/标签)——任意页面的构成单元
|
|
11
|
-
|
|
12
|
-
## API
|
|
13
|
-
|
|
14
|
-
| prop | 类型 | 必填 | 说明 |
|
|
15
|
-
|------|------|------|------|
|
|
16
|
-
| `level` | `1 \| 2 \| 3 \| 4 \| 5` | 否 | 1-5,默认 1(h1-h5) |
|
|
17
|
-
| `children` | `any` | 否 | |
|
|
18
|
-
| `className` | `string` | 否 | |
|
|
19
|
-
| `style` | `Record<string, string>` | 否 | |
|
|
20
|
-
|
|
21
|
-
## 用法示例
|
|
22
|
-
|
|
23
|
-
> (P1 迁移 CODE 字符串)
|
|
24
|
-
|
|
25
|
-
## 纪律/坑
|
|
26
|
-
|
|
27
|
-
> 浏览器纪律(§5.5):组件能力经 ctx.browser / ctx.ui.useXXX——禁裸 window/document
|
|
28
|
-
|
|
29
|
-
## 关系
|
|
30
|
-
|
|
31
|
-
- ↑ 用于页面模式:[docs](../patterns/docs.md) · [dashboard](../patterns/dashboard.md) · [landing](../patterns/landing.md)
|
|
32
|
-
- ↑ 用于应用:(暂无)
|
|
33
|
-
- → 后端能力:(暂无)
|
|
34
|
-
|
|
35
|
-
## 文件位置
|
|
36
|
-
|
|
37
|
-
| 文件 | 路径 |
|
|
38
|
-
|------|------|
|
|
39
|
-
| 源码 | `src/client/components/Typography/Typography.ts` |
|
|
40
|
-
| 样式 | `src/client/components/Typography/Typography.css` |
|
|
41
|
-
| 测试 | `src/client/components/Typography/Typography.test.ts` |
|
|
42
|
-
|
|
43
|
-
## 验证
|
|
44
|
-
|
|
45
|
-
> agent-browser 走查:打开 `/components/core/title` ——(P1 填充具体步骤)
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
# Toast · components
|
|
2
|
-
|
|
3
|
-
## 概述
|
|
4
|
-
|
|
5
|
-
5 种位置 + 自动消失 + 数量限制
|
|
6
|
-
|
|
7
|
-
## 典型场景
|
|
8
|
-
|
|
9
|
-
- 操作反馈/结果页/确认——保存成功、删除确认、空态/加载态
|
|
10
|
-
|
|
11
|
-
## API
|
|
12
|
-
|
|
13
|
-
| prop | 类型 | 必填 | 说明 |
|
|
14
|
-
|------|------|------|------|
|
|
15
|
-
| `toasts` | `ToastItem[]` | 否 | |
|
|
16
|
-
| `onRemove` | `(id: string) => void` | 否 | |
|
|
17
|
-
| `position` | `ToastPosition` | 否 | 容器位置,默认 top-right |
|
|
18
|
-
| `duration` | `number` | 否 | 全局默认自动消失时间(ms),0 = 不自动消失,默认 0 |
|
|
19
|
-
| `max` | `number` | 否 | 最大显示条数,超出时移除最早条目,默认 0 = 不限制 |
|
|
20
|
-
|
|
21
|
-
## 用法示例
|
|
22
|
-
|
|
23
|
-
```tsx
|
|
24
|
-
// toasts: [{id, type, message}]
|
|
25
|
-
<Toast toasts={toasts}
|
|
26
|
-
position="top-right"
|
|
27
|
-
max={3}
|
|
28
|
-
onRemove={id => ...} />
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
## 纪律/坑
|
|
32
|
-
|
|
33
|
-
> 退场动画(§8):exit 类必须挂载(animationend 驱动)+ reduced-motion 降级
|
|
34
|
-
|
|
35
|
-
## 关系
|
|
36
|
-
|
|
37
|
-
- ↑ 用于页面模式:(暂无)
|
|
38
|
-
- ↑ 用于应用:(暂无)
|
|
39
|
-
- → 后端能力:(暂无)
|
|
40
|
-
|
|
41
|
-
## 文件位置
|
|
42
|
-
|
|
43
|
-
| 文件 | 路径 |
|
|
44
|
-
|------|------|
|
|
45
|
-
| 源码 | `src/client/components/Toast/Toast.ts` |
|
|
46
|
-
| 样式 | `src/client/components/Toast/Toast.css` |
|
|
47
|
-
| 测试 | `src/client/components/Toast/Toast.test.ts` |
|
|
48
|
-
| demo | `apps/showcase/src/demos/DemoToast.tsx`(P1 拆分) |
|
|
49
|
-
|
|
50
|
-
## 验证
|
|
51
|
-
|
|
52
|
-
> agent-browser 走查:打开 `/components/feedback/toast` ——(P1 填充具体步骤)
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
# Toggle / ToggleGroup · components
|
|
2
|
-
|
|
3
|
-
## 概述
|
|
4
|
-
|
|
5
|
-
切换按钮:single/multiple 双模式(shadcn 对齐)
|
|
6
|
-
|
|
7
|
-
## 典型场景
|
|
8
|
-
|
|
9
|
-
- 表单输入/搜索/筛选——查询区、编辑表单、设置页
|
|
10
|
-
|
|
11
|
-
## API
|
|
12
|
-
|
|
13
|
-
| prop | 类型 | 必填 | 说明 |
|
|
14
|
-
|------|------|------|------|
|
|
15
|
-
| `pressed` | `boolean` | 否 | 按下状态(受控) |
|
|
16
|
-
| `onPressedChange` | `(pressed: boolean) => void` | 否 | |
|
|
17
|
-
| `variant` | `'default' \| 'outline'` | 否 | |
|
|
18
|
-
| `size` | `'sm' \| 'md' \| 'lg'` | 否 | |
|
|
19
|
-
| `disabled` | `boolean` | 否 | |
|
|
20
|
-
| `children` | `any` | 否 | |
|
|
21
|
-
| `className` | `string` | 否 | |
|
|
22
|
-
|
|
23
|
-
## 用法示例
|
|
24
|
-
|
|
25
|
-
```tsx
|
|
26
|
-
<ToggleGroup type="single" options={[{value:'b',label:'B'}]} />
|
|
27
|
-
<ToggleGroup type="multiple" />
|
|
28
|
-
<Toggle pressed>单个</Toggle>
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
## 纪律/坑
|
|
32
|
-
|
|
33
|
-
> 受控输入纪律(§5.3):输入期间 value 走内部态(useControlledInput)——依赖回流会重挂 input 丢焦点;IME composition 门控
|
|
34
|
-
|
|
35
|
-
## 关系
|
|
36
|
-
|
|
37
|
-
- ↑ 用于页面模式:(暂无)
|
|
38
|
-
- ↑ 用于应用:(暂无)
|
|
39
|
-
- → 后端能力:(暂无)
|
|
40
|
-
|
|
41
|
-
## 文件位置
|
|
42
|
-
|
|
43
|
-
| 文件 | 路径 |
|
|
44
|
-
|------|------|
|
|
45
|
-
| 源码 | `src/client/components/ToggleGroup/ToggleGroup.ts` |
|
|
46
|
-
| 样式 | `src/client/components/ToggleGroup/ToggleGroup.css` |
|
|
47
|
-
| 测试 | `src/client/components/ToggleGroup/ToggleGroup.test.ts` |
|
|
48
|
-
| demo | `apps/showcase/src/demos/DemoToggleGroup.tsx`(P1 拆分) |
|
|
49
|
-
|
|
50
|
-
## 验证
|
|
51
|
-
|
|
52
|
-
> agent-browser 走查:打开 `/components/input/toggle-togglegroup` ——(P1 填充具体步骤)
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
# ToggleGroup · components
|
|
2
|
-
|
|
3
|
-
## 概述
|
|
4
|
-
|
|
5
|
-
(无 demo 卡片——组件目录存在)
|
|
6
|
-
|
|
7
|
-
## 典型场景
|
|
8
|
-
|
|
9
|
-
- 表单输入/搜索/筛选——查询区、编辑表单、设置页
|
|
10
|
-
|
|
11
|
-
## API
|
|
12
|
-
|
|
13
|
-
| prop | 类型 | 必填 | 说明 |
|
|
14
|
-
|------|------|------|------|
|
|
15
|
-
| `pressed` | `boolean` | 否 | 按下状态(受控) |
|
|
16
|
-
| `onPressedChange` | `(pressed: boolean) => void` | 否 | |
|
|
17
|
-
| `variant` | `'default' \| 'outline'` | 否 | |
|
|
18
|
-
| `size` | `'sm' \| 'md' \| 'lg'` | 否 | |
|
|
19
|
-
| `disabled` | `boolean` | 否 | |
|
|
20
|
-
| `children` | `any` | 否 | |
|
|
21
|
-
| `className` | `string` | 否 | |
|
|
22
|
-
|
|
23
|
-
## 用法示例
|
|
24
|
-
|
|
25
|
-
> (P1 迁移 CODE 字符串)
|
|
26
|
-
|
|
27
|
-
## 纪律/坑
|
|
28
|
-
|
|
29
|
-
> 受控输入纪律(§5.3):输入期间 value 走内部态(useControlledInput)——依赖回流会重挂 input 丢焦点;IME composition 门控
|
|
30
|
-
|
|
31
|
-
## 关系
|
|
32
|
-
|
|
33
|
-
- ↑ 用于页面模式:(暂无)
|
|
34
|
-
- ↑ 用于应用:(暂无)
|
|
35
|
-
- → 后端能力:(暂无)
|
|
36
|
-
|
|
37
|
-
## 文件位置
|
|
38
|
-
|
|
39
|
-
| 文件 | 路径 |
|
|
40
|
-
|------|------|
|
|
41
|
-
| 源码 | `src/client/components/ToggleGroup/ToggleGroup.ts` |
|
|
42
|
-
| 样式 | `src/client/components/ToggleGroup/ToggleGroup.css` |
|
|
43
|
-
| 测试 | `src/client/components/ToggleGroup/ToggleGroup.test.ts` |
|
|
44
|
-
|
|
45
|
-
## 验证
|
|
46
|
-
|
|
47
|
-
> agent-browser 走查:打开 `/components/input/togglegroup` ——(P1 填充具体步骤)
|