@aithe/aithe-ui 26.2.3 → 26.3.2
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 +19 -11
- package/dist/apps/admin/app.js +12 -0
- package/dist/apps/admin/components/admin-app.js +83 -0
- package/dist/apps/admin/components/admin-layout.d.ts +0 -1
- package/dist/apps/admin/components/admin-layout.d.ts.map +1 -1
- package/dist/apps/admin/components/admin-layout.js +250 -0
- package/dist/apps/admin/datahub/auth.js +24 -0
- package/dist/apps/admin/datahub/dashboard.js +16 -0
- package/dist/apps/admin/datahub/index.js +42 -0
- package/dist/apps/admin/datahub/menu.js +16 -0
- package/dist/apps/admin/datahub/mock/auth.js +11 -0
- package/dist/apps/admin/datahub/mock/dashboard.js +10 -0
- package/dist/apps/admin/datahub/mock/menu.js +42 -0
- package/dist/apps/admin/i18n/de-DE.js +37 -0
- package/dist/apps/admin/i18n/en-US.js +37 -0
- package/dist/apps/admin/i18n/es-ES.js +38 -0
- package/dist/apps/admin/i18n/fr-FR.js +37 -0
- package/dist/apps/admin/i18n/index.js +27 -0
- package/dist/apps/admin/i18n/ja-JP.js +38 -0
- package/dist/apps/admin/i18n/ko-KR.js +37 -0
- package/dist/apps/admin/i18n/pt-BR.js +37 -0
- package/dist/apps/admin/i18n/zh-CN.js +37 -0
- package/dist/apps/admin/i18n/zh-HK.js +37 -0
- package/dist/apps/admin/i18n/zh-TW.js +37 -0
- package/dist/apps/admin/pages/dashboard-page.d.ts +1 -0
- package/dist/apps/admin/pages/dashboard-page.d.ts.map +1 -1
- package/dist/apps/admin/pages/dashboard-page.js +199 -0
- package/dist/apps/admin/pages/login-page.js +278 -0
- package/dist/apps/admin/pages/not-found-page.js +57 -0
- package/dist/apps/admin/pages/role-page.js +76 -0
- package/dist/apps/admin/pages/settings-page.js +95 -0
- package/dist/apps/admin/pages/user-page.js +76 -0
- package/dist/apps/admin/router/index.js +43 -0
- package/dist/apps/admin/standalone.js +1 -0
- package/dist/apps/admin/store/auth.js +42 -0
- package/dist/apps/api/app.js +82 -0
- package/dist/apps/api/demo-data.d.ts.map +1 -1
- package/dist/apps/api/demo-data.js +965 -0
- package/dist/apps/api/docs-viewer.js +684 -0
- package/dist/apps/api/i18n/de-DE.d.ts.map +1 -1
- package/dist/apps/api/i18n/de-DE.js +131 -0
- package/dist/apps/api/i18n/en-US.d.ts.map +1 -1
- package/dist/apps/api/i18n/en-US.js +141 -0
- package/dist/apps/api/i18n/es-ES.d.ts.map +1 -1
- package/dist/apps/api/i18n/es-ES.js +131 -0
- package/dist/apps/api/i18n/fr-FR.d.ts.map +1 -1
- package/dist/apps/api/i18n/fr-FR.js +131 -0
- package/dist/apps/api/i18n/index.js +27 -0
- package/dist/apps/api/i18n/ja-JP.d.ts.map +1 -1
- package/dist/apps/api/i18n/ja-JP.js +131 -0
- package/dist/apps/api/i18n/ko-KR.d.ts.map +1 -1
- package/dist/apps/api/i18n/ko-KR.js +131 -0
- package/dist/apps/api/i18n/pt-BR.d.ts.map +1 -1
- package/dist/apps/api/i18n/pt-BR.js +131 -0
- package/dist/apps/api/i18n/zh-CN.d.ts.map +1 -1
- package/dist/apps/api/i18n/zh-CN.js +141 -0
- package/dist/apps/api/i18n/zh-HK.d.ts.map +1 -1
- package/dist/apps/api/i18n/zh-HK.js +131 -0
- package/dist/apps/api/i18n/zh-TW.d.ts.map +1 -1
- package/dist/apps/api/i18n/zh-TW.js +131 -0
- package/dist/apps/api/pages/docs.d.ts.map +1 -1
- package/dist/apps/api/pages/docs.js +369 -0
- package/dist/apps/api/standalone.js +1 -0
- package/dist/apps/demo/app.d.ts.map +1 -1
- package/dist/apps/demo/app.js +275 -0
- package/dist/apps/demo/editor.d.ts.map +1 -1
- package/dist/apps/demo/editor.js +270 -0
- package/dist/apps/demo/helpers.js +7 -0
- package/dist/apps/demo/i18n/de-DE.d.ts.map +1 -1
- package/dist/apps/demo/i18n/de-DE.js +289 -0
- package/dist/apps/demo/i18n/en-US.d.ts.map +1 -1
- package/dist/apps/demo/i18n/en-US.js +301 -0
- package/dist/apps/demo/i18n/es-ES.d.ts.map +1 -1
- package/dist/apps/demo/i18n/es-ES.js +289 -0
- package/dist/apps/demo/i18n/fr-FR.d.ts.map +1 -1
- package/dist/apps/demo/i18n/fr-FR.js +289 -0
- package/dist/apps/demo/i18n/index.js +27 -0
- package/dist/apps/demo/i18n/ja-JP.d.ts.map +1 -1
- package/dist/apps/demo/i18n/ja-JP.js +289 -0
- package/dist/apps/demo/i18n/ko-KR.d.ts.map +1 -1
- package/dist/apps/demo/i18n/ko-KR.js +289 -0
- package/dist/apps/demo/i18n/pt-BR.d.ts.map +1 -1
- package/dist/apps/demo/i18n/pt-BR.js +289 -0
- package/dist/apps/demo/i18n/zh-CN.d.ts.map +1 -1
- package/dist/apps/demo/i18n/zh-CN.js +301 -0
- package/dist/apps/demo/i18n/zh-HK.d.ts.map +1 -1
- package/dist/apps/demo/i18n/zh-HK.js +289 -0
- package/dist/apps/demo/i18n/zh-TW.d.ts.map +1 -1
- package/dist/apps/demo/i18n/zh-TW.js +289 -0
- package/dist/apps/demo/pages/autoform.d.ts.map +1 -1
- package/dist/apps/demo/pages/autoform.js +422 -0
- package/dist/apps/demo/pages/autoview.d.ts +3 -0
- package/dist/apps/demo/pages/autoview.d.ts.map +1 -0
- package/dist/apps/demo/pages/autoview.js +310 -0
- package/dist/apps/demo/pages/basic.js +157 -0
- package/dist/apps/demo/pages/code.js +1088 -0
- package/dist/apps/demo/pages/container.js +42 -0
- package/dist/apps/demo/pages/dashboard.js +159 -0
- package/dist/apps/demo/pages/data.d.ts.map +1 -1
- package/dist/apps/demo/pages/data.js +327 -0
- package/dist/apps/demo/pages/display.d.ts.map +1 -1
- package/dist/apps/demo/pages/display.js +295 -0
- package/dist/apps/demo/pages/feedback.js +94 -0
- package/dist/apps/demo/pages/form.d.ts.map +1 -1
- package/dist/apps/demo/pages/form.js +119 -0
- package/dist/apps/demo/pages/layout.js +74 -0
- package/dist/apps/demo/pages/navigation.js +54 -0
- package/dist/apps/demo/pages/progress.js +42 -0
- package/dist/apps/demo/pages/theme.js +126 -0
- package/dist/apps/demo/standalone.js +1 -0
- package/dist/components/basic/AGENTS.md +1 -0
- package/dist/components/basic/avatar.js +168 -0
- package/dist/components/basic/badge.js +157 -0
- package/dist/components/basic/button-group.js +70 -0
- package/dist/components/basic/button.d.ts +2 -4
- package/dist/components/basic/button.d.ts.map +1 -1
- package/dist/components/basic/button.js +315 -0
- package/dist/components/basic/card.js +186 -0
- package/dist/components/basic/chip.js +103 -0
- package/dist/components/basic/divider.js +127 -0
- package/dist/components/basic/empty.js +72 -0
- package/dist/components/basic/icon.js +129 -0
- package/dist/components/basic/input.d.ts.map +1 -1
- package/dist/components/basic/input.js +314 -0
- package/dist/components/basic/tag.d.ts +7 -2
- package/dist/components/basic/tag.d.ts.map +1 -1
- package/dist/components/basic/tag.js +248 -0
- package/dist/components/basic/textarea.d.ts +0 -1
- package/dist/components/basic/textarea.d.ts.map +1 -1
- package/dist/components/basic/textarea.js +130 -0
- package/dist/components/container/callout.js +108 -0
- package/dist/components/container/details.js +117 -0
- package/dist/components/container/scroller.js +144 -0
- package/dist/components/container/split-panel.js +150 -0
- package/dist/components/data/AGENTS.md +1 -1
- package/dist/components/data/box-table.d.ts +53 -0
- package/dist/components/data/box-table.d.ts.map +1 -0
- package/dist/components/data/box-table.js +220 -0
- package/dist/components/data/dropdown.d.ts +8 -5
- package/dist/components/data/dropdown.d.ts.map +1 -1
- package/dist/components/data/dropdown.js +219 -0
- package/dist/components/data/metrics-group.js +180 -0
- package/dist/components/data/metrics.d.ts +11 -0
- package/dist/components/data/metrics.d.ts.map +1 -1
- package/dist/components/data/metrics.js +309 -0
- package/dist/components/data/pagination.js +119 -0
- package/dist/components/data/tab-pane.d.ts +58 -12
- package/dist/components/data/tab-pane.d.ts.map +1 -1
- package/dist/components/data/tab-pane.js +130 -0
- package/dist/components/data/table-column.d.ts +29 -5
- package/dist/components/data/table-column.d.ts.map +1 -1
- package/dist/components/data/table-column.js +123 -0
- package/dist/components/data/table.d.ts +134 -54
- package/dist/components/data/table.d.ts.map +1 -1
- package/dist/components/data/table.js +1210 -0
- package/dist/components/data/tabs.d.ts +60 -3
- package/dist/components/data/tabs.d.ts.map +1 -1
- package/dist/components/data/tabs.js +416 -0
- package/dist/components/data/timeline-item.js +127 -0
- package/dist/components/data/timeline.js +204 -0
- package/dist/components/data/tree-menu.d.ts +12 -2
- package/dist/components/data/tree-menu.d.ts.map +1 -1
- package/dist/components/data/tree-menu.js +482 -0
- package/dist/components/data/tree.js +269 -0
- package/dist/components/display/AGENTS.md +5 -2
- package/dist/components/display/animated-image.js +98 -0
- package/dist/components/display/autoview.d.ts +139 -0
- package/dist/components/display/autoview.d.ts.map +1 -0
- package/dist/components/display/autoview.js +460 -0
- package/dist/components/display/brief-box.d.ts +42 -0
- package/dist/components/display/brief-box.d.ts.map +1 -0
- package/dist/components/display/brief-box.js +117 -0
- package/dist/components/display/carousel.js +223 -0
- package/dist/components/display/code-editor.d.ts.map +1 -1
- package/dist/components/display/code-editor.js +976 -0
- package/dist/components/display/comparison.js +132 -0
- package/dist/components/display/desc-item.d.ts +48 -0
- package/dist/components/display/desc-item.d.ts.map +1 -0
- package/dist/components/display/desc-item.js +150 -0
- package/dist/components/display/desc.d.ts +68 -0
- package/dist/components/display/desc.d.ts.map +1 -0
- package/dist/components/display/desc.js +405 -0
- package/dist/components/display/detail-box.d.ts +51 -0
- package/dist/components/display/detail-box.d.ts.map +1 -0
- package/dist/components/display/detail-box.js +157 -0
- package/dist/components/display/label.js +166 -0
- package/dist/components/display/markdown-editor.js +319 -0
- package/dist/components/display/markdown.d.ts.map +1 -1
- package/dist/components/display/markdown.js +193 -0
- package/dist/components/display/mini-box.d.ts +31 -0
- package/dist/components/display/mini-box.d.ts.map +1 -0
- package/dist/components/display/mini-box.js +137 -0
- package/dist/components/display/profile.d.ts +18 -0
- package/dist/components/display/profile.d.ts.map +1 -0
- package/dist/components/display/profile.js +164 -0
- package/dist/components/feedback/AGENTS.md +1 -0
- package/dist/components/feedback/alert.js +150 -0
- package/dist/components/feedback/dialog.js +228 -0
- package/dist/components/feedback/drawer.d.ts.map +1 -1
- package/dist/components/feedback/drawer.js +338 -0
- package/dist/components/feedback/loading.js +130 -0
- package/dist/components/feedback/modal.d.ts.map +1 -1
- package/dist/components/feedback/modal.js +303 -0
- package/dist/components/feedback/notification.js +170 -0
- package/dist/components/feedback/popover.d.ts +1 -1
- package/dist/components/feedback/popover.js +124 -0
- package/dist/components/feedback/toast.js +142 -0
- package/dist/components/feedback/tooltip.d.ts +1 -1
- package/dist/components/feedback/tooltip.js +153 -0
- package/dist/components/form/AGENTS.md +4 -0
- package/dist/components/form/autoform-item.d.ts +6 -0
- package/dist/components/form/autoform-item.d.ts.map +1 -1
- package/dist/components/form/autoform-item.js +791 -0
- package/dist/components/form/autoform.d.ts +15 -5
- package/dist/components/form/autoform.d.ts.map +1 -1
- package/dist/components/form/autoform.js +303 -0
- package/dist/components/form/checkbox-group.js +118 -0
- package/dist/components/form/checkbox.js +123 -0
- package/dist/components/form/color-picker.js +148 -0
- package/dist/components/form/combobox.d.ts +4 -0
- package/dist/components/form/combobox.d.ts.map +1 -1
- package/dist/components/form/combobox.js +325 -0
- package/dist/components/form/date-picker.js +123 -0
- package/dist/components/form/form-item.d.ts.map +1 -1
- package/dist/components/form/form-item.js +141 -0
- package/dist/components/form/form.js +94 -0
- package/dist/components/form/radio-group.js +106 -0
- package/dist/components/form/radio.js +110 -0
- package/dist/components/form/rate.js +116 -0
- package/dist/components/form/select.d.ts +5 -1
- package/dist/components/form/select.d.ts.map +1 -1
- package/dist/components/form/select.js +539 -0
- package/dist/components/form/slider.js +134 -0
- package/dist/components/form/switch.js +146 -0
- package/dist/components/form/time-picker.js +92 -0
- package/dist/components/form/transfer.js +273 -0
- package/dist/components/form/upload.js +138 -0
- package/dist/components/framework/body.js +333 -0
- package/dist/components/framework/dashboard-panel.js +519 -0
- package/dist/components/framework/dashboard.d.ts.map +1 -1
- package/dist/components/framework/dashboard.js +1084 -0
- package/dist/components/framework/header.js +237 -0
- package/dist/components/framework/log-panel.js +637 -0
- package/dist/components/framework/page.js +151 -0
- package/dist/components/framework/sidebar.d.ts +4 -10
- package/dist/components/framework/sidebar.d.ts.map +1 -1
- package/dist/components/framework/sidebar.js +477 -0
- package/dist/components/layout/affix.js +137 -0
- package/dist/components/layout/col.js +103 -0
- package/dist/components/layout/collapse-item.js +165 -0
- package/dist/components/layout/collapse.js +108 -0
- package/dist/components/layout/container.js +92 -0
- package/dist/components/layout/flex.js +100 -0
- package/dist/components/layout/row.js +103 -0
- package/dist/components/layout/space.js +85 -0
- package/dist/components/navigation/back-top.js +127 -0
- package/dist/components/navigation/breadcrumb-item.js +108 -0
- package/dist/components/navigation/breadcrumb.js +70 -0
- package/dist/components/navigation/menu-item.js +181 -0
- package/dist/components/navigation/menu.js +126 -0
- package/dist/components/navigation/steps.js +183 -0
- package/dist/components/navigation/sub-menu.d.ts.map +1 -1
- package/dist/components/navigation/sub-menu.js +252 -0
- package/dist/components/progress/progress-bar.js +97 -0
- package/dist/components/progress/progress-ring.js +111 -0
- package/dist/components/progress/skeleton.js +108 -0
- package/dist/components/progress/spinner.js +129 -0
- package/dist/components/theme/locale-switch.js +241 -0
- package/dist/components/theme/shadow-picker.js +233 -0
- package/dist/components/theme/shape-picker.js +232 -0
- package/dist/components/theme/theme-picker.js +236 -0
- package/dist/components/theme/theme-preview.d.ts +1 -2
- package/dist/components/theme/theme-preview.d.ts.map +1 -1
- package/dist/components/theme/theme-preview.js +376 -0
- package/dist/components/theme/theme-switch.d.ts.map +1 -1
- package/dist/components/theme/theme-switch.js +318 -0
- package/dist/components/theme/typo-picker.js +219 -0
- package/dist/core/AGENTS.md +6 -1
- package/dist/core/aithe-element.d.ts +2 -2
- package/dist/core/aithe-element.js +135 -0
- package/dist/core/aithe-widget.js +30 -0
- package/dist/core/anchored-overlay.d.ts +3 -0
- package/dist/core/anchored-overlay.d.ts.map +1 -1
- package/dist/core/anchored-overlay.js +111 -0
- package/dist/core/autoform/autoform.js +79 -0
- package/dist/core/autoform/autoview.d.ts +86 -0
- package/dist/core/autoform/autoview.d.ts.map +1 -0
- package/dist/core/autoform/autoview.js +37 -0
- package/dist/core/autoform/condition.js +170 -0
- package/dist/core/autoform/index.d.ts +2 -0
- package/dist/core/autoform/index.d.ts.map +1 -1
- package/dist/core/autoform/index.js +9 -0
- package/dist/core/autoform/types.js +7 -0
- package/dist/core/datahub/__tests__/force-options.test.d.ts +8 -0
- package/dist/core/datahub/__tests__/force-options.test.d.ts.map +1 -0
- package/dist/core/datahub/__tests__/force-options.test.js +161 -0
- package/dist/core/datahub/config/strategy.d.ts +1 -1
- package/dist/core/datahub/config/strategy.d.ts.map +1 -1
- package/dist/core/datahub/config/strategy.js +50 -0
- package/dist/core/datahub/core/adapter/fetch-adapter.d.ts +1 -1
- package/dist/core/datahub/core/adapter/fetch-adapter.d.ts.map +1 -1
- package/dist/core/datahub/core/adapter/fetch-adapter.js +118 -0
- package/dist/core/datahub/core/adapter/index.js +7 -0
- package/dist/core/datahub/core/adapter/mock-adapter.d.ts +1 -1
- package/dist/core/datahub/core/adapter/mock-adapter.d.ts.map +1 -1
- package/dist/core/datahub/core/adapter/mock-adapter.js +58 -0
- package/dist/core/datahub/core/api-styles.d.ts +1 -1
- package/dist/core/datahub/core/api-styles.d.ts.map +1 -1
- package/dist/core/datahub/core/api-styles.js +136 -0
- package/dist/core/datahub/core/datahub-core.d.ts +53 -3
- package/dist/core/datahub/core/datahub-core.d.ts.map +1 -1
- package/dist/core/datahub/core/datahub-core.js +520 -0
- package/dist/core/datahub/core/index.js +7 -0
- package/dist/core/datahub/index.js +50 -0
- package/dist/core/datahub/types.d.ts +24 -0
- package/dist/core/datahub/types.d.ts.map +1 -1
- package/dist/core/datahub/types.js +31 -0
- package/dist/core/datahub/utils/cache.js +55 -0
- package/dist/core/datahub/utils/common.js +23 -0
- package/dist/core/datahub/utils/dedup.d.ts +1 -1
- package/dist/core/datahub/utils/dedup.d.ts.map +1 -1
- package/dist/core/datahub/utils/dedup.js +52 -0
- package/dist/core/datahub/utils/idempotent.js +61 -0
- package/dist/core/datahub/utils/is-query.js +53 -0
- package/dist/core/datahub/utils/loading.js +78 -0
- package/dist/core/filter/__tests__/index.test.d.ts +2 -0
- package/dist/core/filter/__tests__/index.test.d.ts.map +1 -0
- package/dist/core/filter/__tests__/index.test.js +230 -0
- package/dist/core/filter/builtins.d.ts +60 -0
- package/dist/core/filter/builtins.d.ts.map +1 -0
- package/dist/core/filter/builtins.js +172 -0
- package/dist/core/filter/factory.d.ts +54 -0
- package/dist/core/filter/factory.d.ts.map +1 -0
- package/dist/core/filter/factory.js +96 -0
- package/dist/core/filter/index.d.ts +11 -0
- package/dist/core/filter/index.d.ts.map +1 -0
- package/dist/core/filter/index.js +9 -0
- package/dist/core/filter/types.d.ts +12 -0
- package/dist/core/filter/types.d.ts.map +1 -0
- package/dist/core/filter/types.js +1 -0
- package/dist/core/floating.js +132 -0
- package/dist/core/highlight/index.js +43 -0
- package/dist/core/highlight/lang-bash.js +27 -0
- package/dist/core/highlight/lang-c.js +27 -0
- package/dist/core/highlight/lang-cmake.js +27 -0
- package/dist/core/highlight/lang-cpp.js +27 -0
- package/dist/core/highlight/lang-css.js +24 -0
- package/dist/core/highlight/lang-dart.js +27 -0
- package/dist/core/highlight/lang-dockerfile.js +16 -0
- package/dist/core/highlight/lang-fsharp.js +23 -0
- package/dist/core/highlight/lang-go.js +22 -0
- package/dist/core/highlight/lang-html.js +12 -0
- package/dist/core/highlight/lang-java.js +22 -0
- package/dist/core/highlight/lang-javascript.js +26 -0
- package/dist/core/highlight/lang-json.js +13 -0
- package/dist/core/highlight/lang-jsonline.js +13 -0
- package/dist/core/highlight/lang-jsx.js +30 -0
- package/dist/core/highlight/lang-kotlin.js +27 -0
- package/dist/core/highlight/lang-latex.js +22 -0
- package/dist/core/highlight/lang-lua.js +26 -0
- package/dist/core/highlight/lang-makefile.js +22 -0
- package/dist/core/highlight/lang-markdown.js +18 -0
- package/dist/core/highlight/lang-objectivec.js +24 -0
- package/dist/core/highlight/lang-perl.js +30 -0
- package/dist/core/highlight/lang-powershell.js +23 -0
- package/dist/core/highlight/lang-python.js +27 -0
- package/dist/core/highlight/lang-r.js +21 -0
- package/dist/core/highlight/lang-ruby.js +29 -0
- package/dist/core/highlight/lang-rust.js +24 -0
- package/dist/core/highlight/lang-scala.js +26 -0
- package/dist/core/highlight/lang-sql.js +21 -0
- package/dist/core/highlight/lang-svelte.js +27 -0
- package/dist/core/highlight/lang-swift.js +28 -0
- package/dist/core/highlight/lang-tsx.js +35 -0
- package/dist/core/highlight/lang-typescript.js +31 -0
- package/dist/core/highlight/lang-vue.js +29 -0
- package/dist/core/highlight/lang-wasm.js +22 -0
- package/dist/core/highlight/lang-xml.js +12 -0
- package/dist/core/highlight/lang-yaml.js +14 -0
- package/dist/core/highlight/registry.js +99 -0
- package/dist/core/logger/LoggerCore.js +626 -0
- package/dist/core/logger/index.js +10 -0
- package/dist/core/logger/types.js +29 -0
- package/dist/core/markdown/index.js +20 -0
- package/dist/core/markdown/parser.d.ts +2 -0
- package/dist/core/markdown/parser.d.ts.map +1 -1
- package/dist/core/markdown/parser.js +376 -0
- package/dist/core/markdown/plugins.d.ts +2 -1
- package/dist/core/markdown/plugins.d.ts.map +1 -1
- package/dist/core/markdown/plugins.js +755 -0
- package/dist/core/markdown/types.d.ts +5 -0
- package/dist/core/markdown/types.d.ts.map +1 -1
- package/dist/core/markdown/types.js +7 -0
- package/dist/core/router/index.js +244 -0
- package/dist/core/styles.js +44 -0
- package/dist/core/types.d.ts +52 -3
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3695 -1622
- package/dist/index.js.map +1 -1
- package/dist/index.umd.js +1844 -758
- package/dist/index.umd.js.map +1 -1
- package/dist/styles/aithe-ui.d.ts +23 -0
- package/dist/styles/aithe-ui.d.ts.map +1 -1
- package/dist/styles/aithe-ui.js +185 -0
- package/dist/styles/global.css.d.ts +1 -1
- package/dist/styles/global.css.d.ts.map +1 -1
- package/dist/styles/global.css.js +119 -0
- package/dist/styles/i18n/index.js +206 -0
- package/dist/styles/i18n/locales/de-DE.d.ts.map +1 -1
- package/dist/styles/i18n/locales/de-DE.js +151 -0
- package/dist/styles/i18n/locales/en-US.d.ts.map +1 -1
- package/dist/styles/i18n/locales/en-US.js +160 -0
- package/dist/styles/i18n/locales/es-ES.d.ts.map +1 -1
- package/dist/styles/i18n/locales/es-ES.js +151 -0
- package/dist/styles/i18n/locales/fr-FR.d.ts.map +1 -1
- package/dist/styles/i18n/locales/fr-FR.js +151 -0
- package/dist/styles/i18n/locales/index.js +14 -0
- package/dist/styles/i18n/locales/ja-JP.d.ts.map +1 -1
- package/dist/styles/i18n/locales/ja-JP.js +151 -0
- package/dist/styles/i18n/locales/ko-KR.d.ts.map +1 -1
- package/dist/styles/i18n/locales/ko-KR.js +151 -0
- package/dist/styles/i18n/locales/pt-BR.d.ts.map +1 -1
- package/dist/styles/i18n/locales/pt-BR.js +151 -0
- package/dist/styles/i18n/locales/zh-CN.d.ts.map +1 -1
- package/dist/styles/i18n/locales/zh-CN.js +160 -0
- package/dist/styles/i18n/locales/zh-HK.d.ts.map +1 -1
- package/dist/styles/i18n/locales/zh-HK.js +151 -0
- package/dist/styles/i18n/locales/zh-TW.d.ts.map +1 -1
- package/dist/styles/i18n/locales/zh-TW.js +151 -0
- package/dist/styles/layout/index.js +88 -0
- package/dist/styles/mixins.js +43 -0
- package/dist/styles/shadow/cyber.js +19 -0
- package/dist/styles/shadow/deep.js +19 -0
- package/dist/styles/shadow/diffuse.js +19 -0
- package/dist/styles/shadow/flat.js +19 -0
- package/dist/styles/shadow/glassmorphism.js +19 -0
- package/dist/styles/shadow/index.js +129 -0
- package/dist/styles/shadow/neumorphism.js +21 -0
- package/dist/styles/shadow/retro.js +19 -0
- package/dist/styles/shadow/sharp-business.js +19 -0
- package/dist/styles/shadow/skeuomorphic.js +21 -0
- package/dist/styles/shape/chamfer.js +19 -0
- package/dist/styles/shape/circle.js +19 -0
- package/dist/styles/shape/index.js +174 -0
- package/dist/styles/shape/organic.js +19 -0
- package/dist/styles/shape/pill.js +19 -0
- package/dist/styles/shape/rounded.js +21 -0
- package/dist/styles/shape/rounder.js +19 -0
- package/dist/styles/shape/sharp.js +19 -0
- package/dist/styles/shape/smooth.js +19 -0
- package/dist/styles/theme/aliyun.d.ts +1 -1
- package/dist/styles/theme/aliyun.d.ts.map +1 -1
- package/dist/styles/theme/aliyun.js +102 -0
- package/dist/styles/theme/amber.d.ts +1 -1
- package/dist/styles/theme/amber.d.ts.map +1 -1
- package/dist/styles/theme/amber.js +101 -0
- package/dist/styles/theme/blue.d.ts +1 -1
- package/dist/styles/theme/blue.d.ts.map +1 -1
- package/dist/styles/theme/blue.js +101 -0
- package/dist/styles/theme/charcoal.d.ts +1 -1
- package/dist/styles/theme/charcoal.d.ts.map +1 -1
- package/dist/styles/theme/charcoal.js +106 -0
- package/dist/styles/theme/cyan.d.ts +1 -1
- package/dist/styles/theme/cyan.d.ts.map +1 -1
- package/dist/styles/theme/cyan.js +96 -0
- package/dist/styles/theme/dark.d.ts +1 -1
- package/dist/styles/theme/dark.d.ts.map +1 -1
- package/dist/styles/theme/dark.js +106 -0
- package/dist/styles/theme/ebony.d.ts +1 -1
- package/dist/styles/theme/ebony.d.ts.map +1 -1
- package/dist/styles/theme/ebony.js +106 -0
- package/dist/styles/theme/festive.d.ts +1 -1
- package/dist/styles/theme/festive.d.ts.map +1 -1
- package/dist/styles/theme/festive.js +101 -0
- package/dist/styles/theme/graphite.d.ts +1 -1
- package/dist/styles/theme/graphite.d.ts.map +1 -1
- package/dist/styles/theme/graphite.js +106 -0
- package/dist/styles/theme/gray.d.ts +1 -1
- package/dist/styles/theme/gray.d.ts.map +1 -1
- package/dist/styles/theme/gray.js +101 -0
- package/dist/styles/theme/huawei.d.ts +1 -1
- package/dist/styles/theme/huawei.d.ts.map +1 -1
- package/dist/styles/theme/huawei.js +102 -0
- package/dist/styles/theme/index.d.ts +1 -1
- package/dist/styles/theme/index.d.ts.map +1 -1
- package/dist/styles/theme/index.js +276 -0
- package/dist/styles/theme/indigo.d.ts +1 -1
- package/dist/styles/theme/indigo.d.ts.map +1 -1
- package/dist/styles/theme/indigo.js +101 -0
- package/dist/styles/theme/ink.d.ts +1 -1
- package/dist/styles/theme/ink.d.ts.map +1 -1
- package/dist/styles/theme/ink.js +106 -0
- package/dist/styles/theme/light.d.ts +1 -1
- package/dist/styles/theme/light.d.ts.map +1 -1
- package/dist/styles/theme/light.js +102 -0
- package/dist/styles/theme/midnight.d.ts +1 -1
- package/dist/styles/theme/midnight.d.ts.map +1 -1
- package/dist/styles/theme/midnight.js +106 -0
- package/dist/styles/theme/navy.d.ts +1 -1
- package/dist/styles/theme/navy.d.ts.map +1 -1
- package/dist/styles/theme/navy.js +106 -0
- package/dist/styles/theme/obsidian.d.ts +1 -1
- package/dist/styles/theme/obsidian.d.ts.map +1 -1
- package/dist/styles/theme/obsidian.js +106 -0
- package/dist/styles/theme/onyx.d.ts +1 -1
- package/dist/styles/theme/onyx.d.ts.map +1 -1
- package/dist/styles/theme/onyx.js +106 -0
- package/dist/styles/theme/orange.d.ts +1 -1
- package/dist/styles/theme/orange.d.ts.map +1 -1
- package/dist/styles/theme/orange.js +101 -0
- package/dist/styles/theme/pink.d.ts +1 -1
- package/dist/styles/theme/pink.d.ts.map +1 -1
- package/dist/styles/theme/pink.js +101 -0
- package/dist/styles/theme/purple.d.ts +1 -1
- package/dist/styles/theme/purple.d.ts.map +1 -1
- package/dist/styles/theme/purple.js +101 -0
- package/dist/styles/theme/raisin.d.ts +1 -1
- package/dist/styles/theme/raisin.d.ts.map +1 -1
- package/dist/styles/theme/raisin.js +106 -0
- package/dist/styles/theme/slate.d.ts +1 -1
- package/dist/styles/theme/slate.d.ts.map +1 -1
- package/dist/styles/theme/slate.js +106 -0
- package/dist/styles/theme/teal.d.ts +1 -1
- package/dist/styles/theme/teal.d.ts.map +1 -1
- package/dist/styles/theme/teal.js +101 -0
- package/dist/styles/theme/tianyi.d.ts +1 -1
- package/dist/styles/theme/tianyi.d.ts.map +1 -1
- package/dist/styles/theme/tianyi.js +102 -0
- package/dist/styles/types.js +1 -0
- package/dist/styles/typo/business.js +34 -0
- package/dist/styles/typo/compact.js +34 -0
- package/dist/styles/typo/index.js +99 -0
- package/dist/styles/typo/luxury.js +34 -0
- package/dist/styles/typo/minimal.js +34 -0
- package/dist/types/index.js +2 -0
- package/dist/utils/dom.js +51 -0
- package/dist/utils/events.js +32 -0
- package/dist/utils/icon.js +176 -0
- package/dist/utils/index.js +4 -0
- package/dist/utils/utils.d.ts +5 -5
- package/dist/utils/utils.js +89 -0
- package/dist/utils/validation.js +52 -0
- package/docs/api/basic/button.md +9 -6
- package/docs/api/basic/tag.md +24 -17
- package/docs/api/data/box-table.md +73 -0
- package/docs/api/data/dropdown.md +3 -2
- package/docs/api/data/metrics.md +2 -0
- package/docs/api/data/table-column.md +37 -23
- package/docs/api/data/table.md +158 -44
- package/docs/api/data/tabs.md +46 -1
- package/docs/api/data/tree-menu.md +55 -2
- package/docs/api/display/autoview.md +277 -0
- package/docs/api/display/box.md +66 -0
- package/docs/api/display/brief-box.md +73 -0
- package/docs/api/display/desc-item.md +57 -0
- package/docs/api/display/desc.md +246 -0
- package/docs/api/display/detail-box.md +75 -0
- package/docs/api/display/mini-box.md +100 -0
- package/docs/api/display/profile.md +92 -0
- package/docs/api/feedback/popover.md +10 -10
- package/docs/api/feedback/tooltip.md +14 -14
- package/docs/api/form/autoform-item.md +115 -0
- package/docs/api/form/autoform.md +7 -3
- package/docs/api/form/combobox.md +27 -7
- package/docs/api/form/select.md +50 -28
- package/docs/api/framework/log-panel.md +46 -0
- package/docs/api/framework/sidebar.md +3 -2
- package/docs/api/summary.md +46 -35
- package/docs/api/theme/theme-switch.md +1 -1
- package/docs/autoform.md +14 -33
- package/docs/changelog/CHANGELOG.md +155 -0
- package/docs/changelog/VERSION_26.3.1.md +966 -0
- package/docs/changelog/VERSION_26.3.2.md +852 -0
- package/docs/datahub.md +4 -1
- package/docs/filter.md +332 -0
- package/docs/framework-integration.md +2 -2
- package/docs/guide.md +72 -6
- package/docs/i18n.md +2 -4
- package/docs/issue/26.3.1/issue_26.3.1.0.md +84 -0
- package/docs/issue/26.3.1/issue_26.3.1.1.md +72 -0
- package/docs/issue/26.3.1/issue_26.3.1.2.md +75 -0
- package/docs/issue/26.3.1/issue_26.3.1.3.md +78 -0
- package/docs/issue/26.3.1/issue_26.3.1.4.md +113 -0
- package/docs/issue/26.3.1/issue_26.3.1.5.md +142 -0
- package/docs/issue/26.3.1/issue_26.3.1.6.md +100 -0
- package/docs/issue/26.3.1/issue_26.3.1.7.md +78 -0
- package/docs/issue/26.3.2/issue_26.3.2.1.md +46 -0
- package/docs/issue/26.3.2/issue_26.3.2.2.md +82 -0
- package/docs/issue/26.3.2/issue_26.3.2.3.md +57 -0
- package/docs/issue/26.3.2/issue_26.3.2.4.md +43 -0
- package/docs/issue/AGENTS.md +24 -3
- package/docs/markdown.md +2 -2
- package/docs/quickstart.md +5 -5
- package/docs/theming.md +5 -4
- package/package.json +5 -2
- package/dist/components/navigation/dropdown.d.ts +0 -56
- package/dist/components/navigation/dropdown.d.ts.map +0 -1
- /package/docs/issue/{issue_26.2.2.1.md → 26.2.2/issue_26.2.2.1.md} +0 -0
- /package/docs/issue/{issue_26.2.2.2.md → 26.2.2/issue_26.2.2.2.md} +0 -0
- /package/docs/issue/{issue_26.2.2.3.md → 26.2.2/issue_26.2.2.3.md} +0 -0
- /package/docs/issue/{issue_26.2.2.4.md → 26.2.2/issue_26.2.2.4.md} +0 -0
- /package/docs/issue/{issue_26.2.3.1.md → 26.2.3/issue_26.2.3.1.md} +0 -0
- /package/docs/issue/{issue_26.2.3.10.md → 26.2.3/issue_26.2.3.10.md} +0 -0
- /package/docs/issue/{issue_26.2.3.11.md → 26.2.3/issue_26.2.3.11.md} +0 -0
- /package/docs/issue/{issue_26.2.3.12.md → 26.2.3/issue_26.2.3.12.md} +0 -0
- /package/docs/issue/{issue_26.2.3.13.md → 26.2.3/issue_26.2.3.13.md} +0 -0
- /package/docs/issue/{issue_26.2.3.14.md → 26.2.3/issue_26.2.3.14.md} +0 -0
- /package/docs/issue/{issue_26.2.3.15.md → 26.2.3/issue_26.2.3.15.md} +0 -0
- /package/docs/issue/{issue_26.2.3.16.md → 26.2.3/issue_26.2.3.16.md} +0 -0
- /package/docs/issue/{issue_26.2.3.2.md → 26.2.3/issue_26.2.3.2.md} +0 -0
- /package/docs/issue/{issue_26.2.3.3.md → 26.2.3/issue_26.2.3.3.md} +0 -0
- /package/docs/issue/{issue_26.2.3.4.md → 26.2.3/issue_26.2.3.4.md} +0 -0
- /package/docs/issue/{issue_26.2.3.5.md → 26.2.3/issue_26.2.3.5.md} +0 -0
- /package/docs/issue/{issue_26.2.3.6.md → 26.2.3/issue_26.2.3.6.md} +0 -0
- /package/docs/issue/{issue_26.2.3.7.md → 26.2.3/issue_26.2.3.7.md} +0 -0
- /package/docs/issue/{issue_26.2.3.8.md → 26.2.3/issue_26.2.3.8.md} +0 -0
- /package/docs/issue/{issue_26.2.3.9.md → 26.2.3/issue_26.2.3.9.md} +0 -0
|
@@ -0,0 +1,852 @@
|
|
|
1
|
+
# Aithe UI 26.3.2 版本详细说明
|
|
2
|
+
|
|
3
|
+
## 版本信息
|
|
4
|
+
|
|
5
|
+
- **版本号**: 26.3.2
|
|
6
|
+
- **发布日期**: 2026-09-11
|
|
7
|
+
- **最新子版本**: 26.3.2.4
|
|
8
|
+
- **版本类型**: 功能版本
|
|
9
|
+
- **版本描述**: 2026年第3季度第2个月版本 — 只读视图组件、选项分组、DataHub force 选项与文档质量提升
|
|
10
|
+
|
|
11
|
+
## 版本变更记录
|
|
12
|
+
|
|
13
|
+
### Issue 26.3.2.4 — Quality / Bug Fix (2026-09-11)
|
|
14
|
+
|
|
15
|
+
1. **`listPlugin` 列表解析器新增嵌套子列表与缩进续行支持** — 原 `listPlugin.block` 仅能解析扁平单行列表项,无法识别缩进子列表和跨行续行。重写解析逻辑:以首行确定列表类型与 `baseIndent`,逐项收集同级列表项并归集其后续缩进行,通过递归调用 `listPlugin.block` 生成嵌套 `list` AST 节点;空行后通过前瞻判断是否仍属当前列表项的缩进续行
|
|
16
|
+
2. **`listPlugin.block` 认知复杂度治理** — 原实现认知复杂度 52(超过 sonarjs 上限 15),通过抽取 `collectItemSubLines`、`buildListItemChildren`、`blankLineBelongsToItem`、`lineEndsItem`、`parseSubLines` 五个独立函数分层拆解,主循环复杂度降至阈值以内,修复 ESLint `sonarjs/cognitive-complexity` 错误
|
|
17
|
+
3. **`parseSubLines` 剩余行递归处理修正** — 原实现将嵌套列表解析后的 `remaining` 行直接 `join` 拍平为单一段落,导致更深一层的嵌套列表被错误扁平化;改为递归调用 `parseSubLines(remaining, parentIndent)` 正确处理多层嵌套
|
|
18
|
+
4. **清理死代码与非空断言** — 删除被 `parseListItemIndented` 完全替代且无任何引用的 `parseListItem` 函数;`listPlugin.block` 内大量 `line!` 非空断言改为 `undefined` 显式判断与类型收窄
|
|
19
|
+
|
|
20
|
+
### Issue 26.3.2.3 — Feature (2026-09-08)
|
|
21
|
+
|
|
22
|
+
1. **`<aithe-select>` / `<aithe-combobox>` 新增选项分组能力** — 选项对象新增 `group` 字段,渲染时若任一选项携带 `group` 则自动按分组聚合输出,每组前置 `.group-header` 标题并缩进组内选项;无 `group` 字段时保持原扁平渲染,向后兼容。两个组件对称实现,select 用 `groupedOptions` getter,combobox 用 `groupedOptions()` 方法
|
|
23
|
+
2. **`<aithe-autoform>` 密码字段支持明文切换** — `autoform-item` 在 `inputType="password"` 时于输入框 `slot="suffix"` 渲染 `eye`/`eyeOff` 图标按钮,点击切换 `type` 在 `password` 与 `text` 之间切换;新增 `_passwordVisible` state 与 `togglePasswordVisible()` 方法
|
|
24
|
+
3. **Demo 页面同步补充示例** — `form.ts` 新增「Grouped Select & Combobox」示例(中文城市按华东/华北/华南分组、预设搜索按 Analytics/Automation 分组);`autoform.ts` 新增 `password` 字段示例
|
|
25
|
+
|
|
26
|
+
### Issue 26.3.2.2 — Feature (2026-09-03)
|
|
27
|
+
|
|
28
|
+
1. **新增 `<aithe-autoview>` 只读视图组件** — 基于 `<aithe-desc>` 的轻量适配器,与 `<aithe-autoform>` 共用同一份 `FormFieldConfig` 模型,将字段值渲染为结构化描述列表。内置类型感知的只读渲染器(input/textarea 纯文本、select/radio label 反查、checkbox 标签组、switch 是/否徽章、date-picker/time-picker 格式化日期、color-picker 色块+色值、rate/slider 纯数值),支持依赖联动显隐(仅 `show`/`hide` 生效),支持通过 `ViewRegistry` 注册自定义渲染器
|
|
29
|
+
2. **新增 `ViewRegistry` 只读视图注册表** — `src/core/autoform/autoview.ts` 新增与 `FormRegistry` 对称的静态注册表,定义 `ViewFieldConfig`/`ViewRenderContext`/`ViewRenderer`/`ViewControlDefinition` 类型,允许注册自定义只读渲染器扩展 autoview
|
|
30
|
+
3. **`<aithe-desc>` 描述列表增强** — 新增 `border-style` 属性(`none`/`full`/`row` 三种边框样式)和 `label-background` 属性(`filled`/`none` 标签背景);修复 `border-radius` CSS 变量名 `--aithe-radius-md` → `--aithe-container-radius-md`;`labelWidth` 默认值由 `''` 改为 `'150px'`
|
|
31
|
+
4. **DataHub 新增 `forceDedup` / `forceCache` 请求选项** — 允许无视 URL 命名约定强制启用去重和缓存,适用于 URL 不以 `query`/`list`/`get` 结尾但语义为查询的 GET 请求;当 `forceDedup` 或 `forceCache` 为 true 时自动跳过幂等防护,避免并发查询请求被误判为重复提交
|
|
32
|
+
5. **DataHub `request` 方法重构** — 将内联 `execute` 函数和 HTTP 错误构造逻辑抽成 `executeRequest`/`buildHttpError`/`applyResponseInterceptor` 三个独立方法,force 选项判断抽成 `isCacheable`/`isDedupable`/`shouldGuardIdempotent` 三个辅助方法,降低认知复杂度
|
|
33
|
+
6. **文档与演示同步更新** — 新增 `docs/api/display/autoview.md` API 文档;`docs/api/display/desc.md` 补充 `border-style`/`label-background` 属性文档和示例;`docs/api/summary.md` 新增 autoview 条目;新增 `src/apps/demo/pages/autoview.ts` 演示页(9 个示例覆盖基础/选择/高级/联动/完整档案/空值/三种边框样式);11 种语言 i18n 文件同步更新
|
|
34
|
+
|
|
35
|
+
### Issue 26.3.2.1 — Quality / Bug Fix (2026-08-25)
|
|
36
|
+
|
|
37
|
+
1. **DataHub 缓存命中响应处理修复** — 缓存命中时原本直接返回缓存对象,跳过 `APIStyle.onResponse` 转换、`isSuccess` 业务校验、全局 `config.onResponse` 拦截器三道处理,导致缓存返回的 `data` 仍是原始业务包(未解包)、业务错误被静默吞掉、全局拦截器失效。抽取统一响应处理方法 `handleResponse`,让缓存命中路径与实际请求路径走完全一致的响应处理逻辑
|
|
38
|
+
2. **`<aithe-tree-menu>` 激活态样式调整** — 移除分组切换按钮 `.group-toggle.active` 的灰底背景(`--aithe-color-surface-muted`),激活态仅靠文字颜色区分;子级容器 `.children` 新增顶部内边距 `--aithe-space-2`
|
|
39
|
+
3. **`<aithe-sub-menu>` 激活态样式调整** — 移除切换按钮 `.toggle.active` 的灰底背景(`--aithe-color-surface-muted`),与 `<aithe-tree-menu>` 激活态视觉风格保持一致
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## 概述
|
|
44
|
+
|
|
45
|
+
Aithe UI 26.3.2 是 2026 年第 3 季度第 2 个月版本,聚焦于只读视图组件新增、表单组件功能增强、DataHub 请求调度能力扩展与文档质量提升。本版本在 26.3.1 基线版本的基础上,完成了 `<aithe-autoview>` 只读视图组件、`<aithe-select>`/`<aithe-combobox>` 选项分组、`<aithe-autoform>` 密码明文切换、DataHub `forceDedup`/`forceCache` 请求选项、DataHub 缓存命中响应处理修复、`listPlugin` 嵌套子列表支持等核心改进,并新增了 1 个 display 组件。组件数量从 100 个扩展至 103 个(含 `aithe-desc-item`、`aithe-autoview`、`aithe-box-table` 纳入 README 统计)。
|
|
46
|
+
|
|
47
|
+
**26.3.2.4 子版本** 聚焦于 `listPlugin` 列表解析器重写(嵌套子列表与缩进续行支持)、认知复杂度治理(抽取 5 个独立函数)、死代码清理(删除 `parseListItem`)。
|
|
48
|
+
|
|
49
|
+
**26.3.2.3 子版本** 聚焦于 `<aithe-select>`/`<aithe-combobox>` 选项分组(`group` 字段自动聚合)、`<aithe-autoform>` 密码字段明文切换(`eye`/`eyeOff` 图标按钮)。
|
|
50
|
+
|
|
51
|
+
**26.3.2.2 子版本** 聚焦于 `<aithe-autoview>` 只读视图组件新增(基于 `<aithe-desc>` 的轻量适配器,与 autoform 共用 FormFieldConfig 模型)、`ViewRegistry` 自定义渲染器注册表、`<aithe-desc>` 边框样式与标签背景增强、DataHub `forceDedup`/`forceCache` 请求选项、DataHub `request` 方法重构。
|
|
52
|
+
|
|
53
|
+
**26.3.2.1 子版本** 聚焦于 DataHub 缓存命中响应处理修复(缓存命中路径与实际请求路径走完全一致的响应处理逻辑)、`<aithe-tree-menu>`/`<aithe-sub-menu>` 激活态样式调整(移除灰底背景)。
|
|
54
|
+
|
|
55
|
+
## 核心特性
|
|
56
|
+
|
|
57
|
+
### 1. `<aithe-autoview>` 只读视图组件
|
|
58
|
+
|
|
59
|
+
- **JSON 驱动只读详情视图**: 与 `<aithe-autoform>` 共用同一份 `FormFieldConfig` 模型,将字段值渲染为结构化描述列表
|
|
60
|
+
- **内置 8 类只读渲染器**: input/textarea(纯文本)、select/radio(label 反查)、checkbox(标签组)、switch(是/否徽章)、date-picker/time-picker(格式化日期)、color-picker(色块+色值)、rate/slider(纯数值)
|
|
61
|
+
- **依赖联动显隐**: 只读模式下仅生效 `show`/`hide` 规则,`disable`/`enable`/`clear`/`update` 被忽略
|
|
62
|
+
- **`ViewRegistry` 自定义渲染器**: 与 `FormRegistry` 对称的静态注册表,支持 `register`/`unregister`/`get`/`has`/`types` 方法
|
|
63
|
+
- **`ViewFieldConfig` 扩展类型**: 在 `FormFieldConfig` 基础上追加 `filter`/`emptyText`/`span`/`rowspan`/`align`/`hideLabel` 可选展示属性
|
|
64
|
+
- **`aithe-view-ready` 事件**: 初始渲染完成后触发,携带当前可见字段值
|
|
65
|
+
- **`getValues()` 方法**: 返回所有可见字段在 `data` 中的值
|
|
66
|
+
|
|
67
|
+
### 2. `<aithe-select>` / `<aithe-combobox>` 选项分组
|
|
68
|
+
|
|
69
|
+
- **`group` 字段**: 选项对象新增可选 `group?: string` 字段,用于分组聚合
|
|
70
|
+
- **自动分组渲染**: 任一选项携带 `group` 字段时,所有选项按 `group` 聚合(保留插入顺序),每组前置 `.group-header` 标题,组内选项缩进显示
|
|
71
|
+
- **向后兼容**: 无任何 `group` 字段时回退为扁平列表渲染
|
|
72
|
+
- **键盘导航兼容**: select 分组模式下用 `flatIndex++` 维护 `activeIndex` 与原键盘导航逻辑兼容
|
|
73
|
+
- **对称实现**: select 用 `groupedOptions` getter,combobox 用 `groupedOptions()` 方法
|
|
74
|
+
|
|
75
|
+
### 3. `<aithe-autoform>` 密码明文切换
|
|
76
|
+
|
|
77
|
+
- **`inputType="password"` 支持**: `autoform-item` 在 `inputType="password"` 时于输入框 `slot="suffix"` 渲染 `eye`/`eyeOff` 图标按钮
|
|
78
|
+
- **明文切换**: 点击图标按钮切换 `type` 在 `password` 与 `text` 之间,`_passwordVisible` state 记录当前状态
|
|
79
|
+
- **`togglePasswordVisible()` 方法**: 切换 `_passwordVisible` 状态
|
|
80
|
+
- **`resolvePasswordType()` 方法**: 根据可见状态返回 `text` 或 `password`
|
|
81
|
+
|
|
82
|
+
### 4. `<aithe-desc>` 描述列表增强
|
|
83
|
+
|
|
84
|
+
- **`border-style` 属性**: `none`(无边框)、`full`(外框+所有单元格分隔线)、`row`(仅行分隔线,无外框和列分隔线),默认 `none`
|
|
85
|
+
- **`label-background` 属性**: `filled`(默认灰底)或 `none`(透明),配合 `border-style="row"` 可实现简洁风格
|
|
86
|
+
- **`border-radius` CSS 变量修正**: `--aithe-radius-md` → `--aithe-container-radius-md`(2 处)
|
|
87
|
+
- **`labelWidth` 默认值变更**: 由 `''` 改为 `'150px'`
|
|
88
|
+
- **`isBordered` 判定更新**: `border || borderStyle !== 'none'`
|
|
89
|
+
|
|
90
|
+
### 5. DataHub `forceDedup` / `forceCache` 请求选项
|
|
91
|
+
|
|
92
|
+
- **`forceDedup` 选项**: 为 true 时无视 URL 命名约定强制启用并发去重,适用于 URL 不以 `query`/`list`/`get` 结尾但语义为查询的 GET 请求
|
|
93
|
+
- **`forceCache` 选项**: 为 true 时无视 URL 命名约定强制启用结果缓存,配合 `cacheTTL` 控制有效期
|
|
94
|
+
- **跳过幂等防护**: `forceDedup` 或 `forceCache` 为 true 时自动跳过幂等防护,避免并发查询请求被误判为重复提交
|
|
95
|
+
- **测试覆盖**: 新增 `force-options.test.ts`,8 个用例覆盖 forceDedup 去重、forceCache 缓存命中、force 选项跳过幂等守卫等场景
|
|
96
|
+
|
|
97
|
+
### 6. DataHub 缓存命中响应处理修复
|
|
98
|
+
|
|
99
|
+
- **统一响应处理方法 `handleResponse`**: 封装「APIStyle `onResponse` 转换 + `isSuccess` 业务校验 + 返回业务数据」三步逻辑
|
|
100
|
+
- **缓存命中路径修复**: 缓存命中时先执行全局 `config.onResponse` 拦截器,再调用 `handleResponse` 完成 APIStyle 转换与 `isSuccess` 校验
|
|
101
|
+
- **消除代码重复**: 实际请求路径也替换为调用 `handleResponse`,两条路径行为完全一致
|
|
102
|
+
|
|
103
|
+
### 7. DataHub `request` 方法重构
|
|
104
|
+
|
|
105
|
+
- **`executeRequest<T>()`**: 从内联 `execute` 函数抽成独立方法,封装适配器调用 + 响应拦截 + HTTP 错误处理 + 统一响应处理 + 缓存写入
|
|
106
|
+
- **`buildHttpError()`**: HTTP 非 2xx 错误构造逻辑抽成独立方法
|
|
107
|
+
- **`applyResponseInterceptor()`**: 全局响应拦截器应用抽成独立方法(缓存命中与实际请求路径共用)
|
|
108
|
+
- **`isCacheable()` / `isDedupable()` / `shouldGuardIdempotent()`**: force 选项判断抽成三个辅助方法
|
|
109
|
+
|
|
110
|
+
### 8. `listPlugin` 嵌套子列表支持
|
|
111
|
+
|
|
112
|
+
- **嵌套子列表解析**: 通过递归调用 `listPlugin.block` 生成嵌套 `list` AST 节点,支持多层嵌套
|
|
113
|
+
- **缩进续行支持**: 列表项标记行之后的缩进行被归集为续行或子列表,空行后通过前瞻判断是否仍属当前列表项
|
|
114
|
+
- **认知复杂度治理**: 抽取 `collectItemSubLines`/`buildListItemChildren`/`blankLineBelongsToItem`/`lineEndsItem`/`parseSubLines` 五个独立函数,主循环复杂度降至 sonarjs 阈值以内
|
|
115
|
+
- **死代码清理**: 删除被 `parseListItemIndented` 完全替代的 `parseListItem` 函数
|
|
116
|
+
|
|
117
|
+
### 9. 组件样式调整
|
|
118
|
+
|
|
119
|
+
- **`<aithe-tree-menu>` 激活态**: 移除 `.group-toggle.active` 的灰底背景(`--aithe-color-surface-muted`),激活态仅靠文字颜色区分;`.children` 新增顶部内边距 `--aithe-space-2`
|
|
120
|
+
- **`<aithe-sub-menu>` 激活态**: 移除 `.toggle.active` 的灰底背景,与 `<aithe-tree-menu>` 激活态视觉风格统一
|
|
121
|
+
|
|
122
|
+
### 10. DataHub GET 请求 body 修复
|
|
123
|
+
|
|
124
|
+
- **`defaultStyle.onRequest`**: GET 请求不发送 body,跳过 `data` 包装,避免触发 "GET request with body is unusual" 警告
|
|
125
|
+
|
|
126
|
+
### 11. 文档质量提升
|
|
127
|
+
|
|
128
|
+
- **组件数量修正**: `quickstart.md`/`guide.md`/`i18n.md`/`framework-integration.md`/`theming.md`/`README.md` 中 "100 个组件" 修正为 "103 个组件"
|
|
129
|
+
- **`docs/autoform.md`**: 删除重复的 `### 顶层结构` 和 `FormFieldConfig` 定义;`input` 类型说明补充 `password` 明文切换
|
|
130
|
+
- **`docs/datahub.md`**: `DataHubRequestOptions` 补充 `forceDedup`/`forceCache`/`mockPath` 字段
|
|
131
|
+
- **`docs/markdown.md`**: `listPlugin` 描述更新为"支持嵌套子列表和缩进续行"
|
|
132
|
+
- **`docs/i18n.md`**: 删除错误的"翻译值也兼容函数类型"描述
|
|
133
|
+
- **`docs/guide.md`**: 修复 `<select.options` 语法错误;删除多余闭合标记;4 反引号闭合改为 3 反引号;`AitheSelectOption` 补充 `variant`/`group` 字段说明
|
|
134
|
+
- **`docs/theming.md`**: 代码块闭合标记统一为 3 反引号;"83 个组件"修正为"103 个组件"
|
|
135
|
+
- **issue 文件目录重组**: `docs/issue/` 下 32 个 issue 文件按基线版本拆分到 `26.2.2/`/`26.2.3/`/`26.3.1/`/`26.3.2/` 四个子目录
|
|
136
|
+
|
|
137
|
+
## 破坏性变更汇总
|
|
138
|
+
|
|
139
|
+
| 变更项 | 旧值 | 新值 | Issue |
|
|
140
|
+
|--------|------|------|-------|
|
|
141
|
+
| `aithe-desc` 的 `labelWidth` 默认值 | `''`(auto) | `'150px'` | 26.3.2.2 |
|
|
142
|
+
| `aithe-desc` 的 `border-radius` CSS 变量 | `--aithe-radius-md` | `--aithe-container-radius-md` | 26.3.2.2 |
|
|
143
|
+
| `aithe-desc` 的 `isBordered` 判定 | `this.border` | `this.border \|\| this.borderStyle !== 'none'` | 26.3.2.2 |
|
|
144
|
+
| `listPlugin` 的 `parseListItem` 函数 | 存在 | 删除(被 `parseListItemIndented` 替代) | 26.3.2.4 |
|
|
145
|
+
| `listPlugin` 的 `list-item` AST `children` | 单一 `paragraph` | `paragraph` + 嵌套节点 | 26.3.2.4 |
|
|
146
|
+
| `listPlugin` 的 `list-item` AST `checked` | 透传 `item.checked` | 显式 `null` | 26.3.2.4 |
|
|
147
|
+
|
|
148
|
+
## 组件详细列表
|
|
149
|
+
|
|
150
|
+
### 基础组件 (12个)
|
|
151
|
+
|
|
152
|
+
#### 1. `<aithe-button>` - 按钮
|
|
153
|
+
|
|
154
|
+
- **类型**: primary、default、dashed、text、link
|
|
155
|
+
- **尺寸**: small、medium、large
|
|
156
|
+
- **状态**: loading、disabled
|
|
157
|
+
- **特性**: 图标支持、块级显示、自定义事件
|
|
158
|
+
|
|
159
|
+
#### 2. `<aithe-button-group>` - 按钮组
|
|
160
|
+
|
|
161
|
+
- **功能**: 按钮组合布局
|
|
162
|
+
- **特性**: 统一间距、对齐方式
|
|
163
|
+
|
|
164
|
+
#### 3. `<aithe-icon>` - 图标
|
|
165
|
+
|
|
166
|
+
- **功能**: 矢量图标显示
|
|
167
|
+
- **特性**: 内置图标库、自定义图标、尺寸控制
|
|
168
|
+
|
|
169
|
+
#### 4. `<aithe-input>` - 输入框
|
|
170
|
+
|
|
171
|
+
- **类型**: text、password、number、email 等
|
|
172
|
+
- **特性**: 验证状态、前缀后缀、清除按钮
|
|
173
|
+
|
|
174
|
+
#### 5. `<aithe-textarea>` - 文本域
|
|
175
|
+
|
|
176
|
+
- **功能**: 多行文本输入
|
|
177
|
+
- **特性**: 自动高度调整、字数统计
|
|
178
|
+
|
|
179
|
+
#### 6. `<aithe-card>` - 卡片
|
|
180
|
+
|
|
181
|
+
- **结构**: 标题、内容、操作区域
|
|
182
|
+
- **特性**: 阴影、边框、悬停效果
|
|
183
|
+
|
|
184
|
+
#### 7. `<aithe-tag>` - 标签
|
|
185
|
+
|
|
186
|
+
- **类型**: 默认、可关闭、可选择
|
|
187
|
+
- **特性**: 多种颜色、圆角样式
|
|
188
|
+
|
|
189
|
+
#### 8. `<aithe-badge>` - 徽章
|
|
190
|
+
|
|
191
|
+
- **类型**: 数字、圆点、状态
|
|
192
|
+
- **特性**: 最大值显示、自定义内容
|
|
193
|
+
|
|
194
|
+
#### 9. `<aithe-avatar>` - 头像
|
|
195
|
+
|
|
196
|
+
- **类型**: 图片、文字、图标
|
|
197
|
+
- **特性**: 尺寸控制、形状、组头像
|
|
198
|
+
|
|
199
|
+
#### 10. `<aithe-divider>` - 分割线
|
|
200
|
+
|
|
201
|
+
- **方向**: 水平、垂直
|
|
202
|
+
- **特性**: 文字位置、虚线样式
|
|
203
|
+
|
|
204
|
+
#### 11. `<aithe-empty>` - 空状态
|
|
205
|
+
|
|
206
|
+
- **功能**: 数据为空时的占位显示
|
|
207
|
+
- **特性**: 自定义图标、描述、操作按钮
|
|
208
|
+
|
|
209
|
+
#### 12. `<aithe-chip>` - 芯片
|
|
210
|
+
|
|
211
|
+
- **功能**: 紧凑的可选择标签
|
|
212
|
+
- **特性**: 可关闭、可选择、多种颜色
|
|
213
|
+
|
|
214
|
+
### 布局组件 (8个)
|
|
215
|
+
|
|
216
|
+
#### 13. `<aithe-container>` - 容器
|
|
217
|
+
|
|
218
|
+
- **类型**: fluid、fixed、full
|
|
219
|
+
- **特性**: 响应式断点、内边距控制
|
|
220
|
+
|
|
221
|
+
#### 14. `<aithe-row>` - 行
|
|
222
|
+
|
|
223
|
+
- **功能**: 24 栅格系统的行容器
|
|
224
|
+
- **特性**: 栅格间隔、对齐方式、换行控制
|
|
225
|
+
|
|
226
|
+
#### 15. `<aithe-col>` - 列
|
|
227
|
+
|
|
228
|
+
- **功能**: 24 栅格系统的列
|
|
229
|
+
- **特性**: 响应式断点、偏移、排序
|
|
230
|
+
|
|
231
|
+
#### 16. `<aithe-flex>` - 弹性布局
|
|
232
|
+
|
|
233
|
+
- **功能**: 快速弹性布局容器
|
|
234
|
+
- **特性**: 方向、对齐、换行、间距
|
|
235
|
+
|
|
236
|
+
#### 17. `<aithe-space>` - 间距
|
|
237
|
+
|
|
238
|
+
- **功能**: 子元素等间距布局
|
|
239
|
+
- **特性**: 方向、大小、对齐
|
|
240
|
+
|
|
241
|
+
#### 18. `<aithe-collapse>` - 折叠面板
|
|
242
|
+
|
|
243
|
+
- **类型**: 手风琴、多展开
|
|
244
|
+
- **特性**: 边框样式、图标位置
|
|
245
|
+
|
|
246
|
+
#### 19. `<aithe-collapse-item>` - 折叠项
|
|
247
|
+
|
|
248
|
+
- **功能**: 单个可折叠面板
|
|
249
|
+
- **特性**: 标题、内容、禁用状态
|
|
250
|
+
|
|
251
|
+
#### 20. `<aithe-affix>` - 固钉
|
|
252
|
+
|
|
253
|
+
- **功能**: 滚动时固定元素
|
|
254
|
+
- **特性**: 偏移量、目标容器、回调事件
|
|
255
|
+
|
|
256
|
+
### 导航组件 (7个)
|
|
257
|
+
|
|
258
|
+
#### 21. `<aithe-menu>` - 菜单
|
|
259
|
+
|
|
260
|
+
- **模式**: 垂直、水平、内联
|
|
261
|
+
- **特性**: 主题、选中状态、展开控制
|
|
262
|
+
|
|
263
|
+
#### 22. `<aithe-menu-item>` - 菜单项
|
|
264
|
+
|
|
265
|
+
- **功能**: 单个菜单项
|
|
266
|
+
- **特性**: 图标、禁用状态、选中状态
|
|
267
|
+
|
|
268
|
+
#### 23. `<aithe-sub-menu>` - 子菜单
|
|
269
|
+
|
|
270
|
+
- **功能**: 可展开的子菜单
|
|
271
|
+
- **特性**: 标题、图标、展开状态
|
|
272
|
+
- **备注**: 26.3.2.1 移除 `.toggle.active` 灰底背景
|
|
273
|
+
|
|
274
|
+
#### 24. `<aithe-breadcrumb>` - 面包屑
|
|
275
|
+
|
|
276
|
+
- **功能**: 页面层级导航
|
|
277
|
+
- **特性**: 分隔符、最大显示数量
|
|
278
|
+
|
|
279
|
+
#### 25. `<aithe-breadcrumb-item>` - 面包屑项
|
|
280
|
+
|
|
281
|
+
- **功能**: 单个面包屑项
|
|
282
|
+
- **特性**: 链接、分隔符、当前项
|
|
283
|
+
|
|
284
|
+
#### 26. `<aithe-steps>` - 步骤条
|
|
285
|
+
|
|
286
|
+
- **方向**: 水平、垂直
|
|
287
|
+
- **特性**: 当前步骤、状态、自定义图标
|
|
288
|
+
|
|
289
|
+
#### 27. `<aithe-back-top>` - 回到顶部
|
|
290
|
+
|
|
291
|
+
- **功能**: 滚动到页面顶部
|
|
292
|
+
- **特性**: 可见阈值、自定义位置、动画
|
|
293
|
+
|
|
294
|
+
### 表单组件 (18个)
|
|
295
|
+
|
|
296
|
+
#### 28. `<aithe-checkbox>` - 复选框
|
|
297
|
+
|
|
298
|
+
- **功能**: 单个复选框
|
|
299
|
+
- **特性**: 中间状态、禁用、自定义标签
|
|
300
|
+
|
|
301
|
+
#### 29. `<aithe-checkbox-group>` - 复选框组
|
|
302
|
+
|
|
303
|
+
- **功能**: 多个复选框组合
|
|
304
|
+
- **特性**: 方向、最大选择数、全选
|
|
305
|
+
|
|
306
|
+
#### 30. `<aithe-radio>` - 单选框
|
|
307
|
+
|
|
308
|
+
- **功能**: 单个单选框
|
|
309
|
+
- **特性**: 禁用状态、自定义标签
|
|
310
|
+
|
|
311
|
+
#### 31. `<aithe-radio-group>` - 单选框组
|
|
312
|
+
|
|
313
|
+
- **功能**: 多个单选框组合
|
|
314
|
+
- **特性**: 方向、按钮样式、禁用状态
|
|
315
|
+
|
|
316
|
+
#### 32. `<aithe-select>` - 选择器
|
|
317
|
+
|
|
318
|
+
- **模式**: 单选、多选、标签模式
|
|
319
|
+
- **特性**: 搜索、过滤、远程数据、分组
|
|
320
|
+
- **备注**: 26.3.2.3 新增 `group` 字段选项分组渲染,`groupedOptions` getter + `renderOption()` 方法
|
|
321
|
+
|
|
322
|
+
#### 33. `<aithe-switch>` - 开关
|
|
323
|
+
|
|
324
|
+
- **功能**: 开关切换
|
|
325
|
+
- **特性**: 大小、加载状态、自定义内容
|
|
326
|
+
|
|
327
|
+
#### 34. `<aithe-color-picker>` - 颜色选择器
|
|
328
|
+
|
|
329
|
+
- **模式**: 简单、高级
|
|
330
|
+
- **特性**: 预设颜色、透明度、格式输出
|
|
331
|
+
|
|
332
|
+
#### 35. `<aithe-combobox>` - 组合框
|
|
333
|
+
|
|
334
|
+
- **功能**: 可搜索的下拉框
|
|
335
|
+
- **特性**: 自动完成、远程搜索、多选
|
|
336
|
+
- **备注**: 26.3.2.3 新增 `group` 字段选项分组渲染,`groupedOptions()` 方法 + `renderOption()` 方法
|
|
337
|
+
|
|
338
|
+
#### 36. `<aithe-date-picker>` - 日期选择器
|
|
339
|
+
|
|
340
|
+
- **类型**: 日期、周、月、年、范围
|
|
341
|
+
- **特性**: 快捷选择、禁用日期、自定义格式
|
|
342
|
+
|
|
343
|
+
#### 37. `<aithe-time-picker>` - 时间选择器
|
|
344
|
+
|
|
345
|
+
- **功能**: 时间选择
|
|
346
|
+
- **特性**: 步长、格式、禁用时间
|
|
347
|
+
|
|
348
|
+
#### 38. `<aithe-slider>` - 滑块
|
|
349
|
+
|
|
350
|
+
- **类型**: 单滑块、范围滑块
|
|
351
|
+
- **特性**: 步长、标记点、垂直模式
|
|
352
|
+
|
|
353
|
+
#### 39. `<aithe-rate>` - 评分
|
|
354
|
+
|
|
355
|
+
- **功能**: 星级评分
|
|
356
|
+
- **特性**: 半星、自定义图标、只读
|
|
357
|
+
|
|
358
|
+
#### 40. `<aithe-form>` - 表单
|
|
359
|
+
|
|
360
|
+
- **功能**: 表单容器
|
|
361
|
+
- **特性**: 验证、布局、提交处理
|
|
362
|
+
|
|
363
|
+
#### 41. `<aithe-form-item>` - 表单项
|
|
364
|
+
|
|
365
|
+
- **功能**: 表单字段包装器
|
|
366
|
+
- **特性**: 标签、验证信息、布局
|
|
367
|
+
|
|
368
|
+
#### 42. `<aithe-upload>` - 上传
|
|
369
|
+
|
|
370
|
+
- **模式**: 点击上传、拖拽上传
|
|
371
|
+
- **特性**: 多文件、限制、预览、自定义请求
|
|
372
|
+
|
|
373
|
+
#### 43. `<aithe-transfer>` - 穿梭框
|
|
374
|
+
|
|
375
|
+
- **功能**: 双列表数据转移
|
|
376
|
+
- **特性**: 搜索、分页、自定义渲染
|
|
377
|
+
|
|
378
|
+
#### 44. `<aithe-autoform>` - 自动表单
|
|
379
|
+
|
|
380
|
+
- **功能**: JSON 配置驱动的自动渲染表单组件
|
|
381
|
+
- **特性**: 13 种内置控件类型、自定义控件注册表、实时校验和提交校验
|
|
382
|
+
- **备注**: 26.3.2.3 `inputType="password"` 新增明文切换(`eye`/`eyeOff` 图标按钮)
|
|
383
|
+
|
|
384
|
+
#### 45. `<aithe-autoform-item>` - 自动表单项
|
|
385
|
+
|
|
386
|
+
- **功能**: 表单项容器组件,三段式布局(header + control + footer)
|
|
387
|
+
- **备注**: 26.3.2.3 新增 `_passwordVisible` state、`togglePasswordVisible()`/`resolvePasswordType()` 方法
|
|
388
|
+
|
|
389
|
+
### 反馈组件 (9个)
|
|
390
|
+
|
|
391
|
+
#### 46. `<aithe-dialog>` - 对话框
|
|
392
|
+
|
|
393
|
+
- **功能**: 模态对话框
|
|
394
|
+
- **特性**: 标题、内容、操作按钮、关闭控制
|
|
395
|
+
|
|
396
|
+
#### 47. `<aithe-modal>` - 模态框
|
|
397
|
+
|
|
398
|
+
- **功能**: 轻量级模态框
|
|
399
|
+
- **特性**: 多种尺寸、全屏、自定义内容
|
|
400
|
+
|
|
401
|
+
#### 48. `<aithe-drawer>` - 抽屉
|
|
402
|
+
|
|
403
|
+
- **位置**: 上、下、左、右
|
|
404
|
+
- **特性**: 大小、标题、遮罩、关闭控制
|
|
405
|
+
|
|
406
|
+
#### 49. `<aithe-tooltip>` - 工具提示
|
|
407
|
+
|
|
408
|
+
- **位置**: 12 个方向
|
|
409
|
+
- **特性**: 延迟显示、主题、自定义内容
|
|
410
|
+
|
|
411
|
+
#### 50. `<aithe-popover>` - 弹出框
|
|
412
|
+
|
|
413
|
+
- **功能**: 点击触发的弹出内容
|
|
414
|
+
- **特性**: 触发方式、位置、箭头
|
|
415
|
+
|
|
416
|
+
#### 51. `<aithe-toast>` - 轻提示
|
|
417
|
+
|
|
418
|
+
- **类型**: 成功、警告、错误、信息
|
|
419
|
+
- **特性**: 自动关闭、位置、自定义持续时间
|
|
420
|
+
|
|
421
|
+
#### 52. `<aithe-alert>` - 警告提示
|
|
422
|
+
|
|
423
|
+
- **类型**: 成功、信息、警告、错误
|
|
424
|
+
- **特性**: 可关闭、图标、描述
|
|
425
|
+
|
|
426
|
+
#### 53. `<aithe-notification>` - 通知提醒框
|
|
427
|
+
|
|
428
|
+
- **功能**: 全局通知
|
|
429
|
+
- **特性**: 位置、持续时间、自定义按钮
|
|
430
|
+
|
|
431
|
+
#### 54. `<aithe-loading>` - 加载中
|
|
432
|
+
|
|
433
|
+
- **类型**: 全屏、容器、内联
|
|
434
|
+
- **特性**: 自定义文本、延迟显示
|
|
435
|
+
|
|
436
|
+
### 数据展示组件 (13个)
|
|
437
|
+
|
|
438
|
+
#### 55. `<aithe-table>` - 表格
|
|
439
|
+
|
|
440
|
+
- **功能**: 数据表格
|
|
441
|
+
- **特性**: 排序、筛选、分页、选择、虚拟滚动
|
|
442
|
+
|
|
443
|
+
#### 56. `<aithe-table-column>` - 表格列
|
|
444
|
+
|
|
445
|
+
- **功能**: 声明式表格列定义
|
|
446
|
+
- **特性**: 字段映射、排序、对齐、宽度
|
|
447
|
+
|
|
448
|
+
#### 57. `<aithe-tabs>` - 标签页
|
|
449
|
+
|
|
450
|
+
- **类型**: 线型、卡片型
|
|
451
|
+
- **特性**: 位置、大小、可关闭、懒加载
|
|
452
|
+
|
|
453
|
+
#### 58. `<aithe-tab-pane>` - 标签页面板
|
|
454
|
+
|
|
455
|
+
- **功能**: 单个标签页内容
|
|
456
|
+
- **特性**: 禁用、懒加载、图标
|
|
457
|
+
|
|
458
|
+
#### 59. `<aithe-tree>` - 树形控件
|
|
459
|
+
|
|
460
|
+
- **功能**: 层级数据展示
|
|
461
|
+
- **特性**: 选择、展开、搜索、拖拽
|
|
462
|
+
|
|
463
|
+
#### 60. `<aithe-tree-menu>` - 树形菜单
|
|
464
|
+
|
|
465
|
+
- **功能**: 基于 Tree 数据的菜单导航
|
|
466
|
+
- **特性**: 递归渲染、意图着色、垂直/水平布局
|
|
467
|
+
- **备注**: 26.3.2.1 移除 `.group-toggle.active` 灰底背景;`.children` 新增顶部内边距
|
|
468
|
+
|
|
469
|
+
#### 61. `<aithe-timeline>` - 时间线
|
|
470
|
+
|
|
471
|
+
- **模式**: 垂直、水平
|
|
472
|
+
- **特性**: 自定义节点、颜色、图标、数据驱动模式
|
|
473
|
+
|
|
474
|
+
#### 62. `<aithe-timeline-item>` - 时间线项
|
|
475
|
+
|
|
476
|
+
- **功能**: 单个时间线节点
|
|
477
|
+
- **特性**: 时间、内容、状态
|
|
478
|
+
|
|
479
|
+
#### 63. `<aithe-pagination>` - 分页
|
|
480
|
+
|
|
481
|
+
- **功能**: 数据分页
|
|
482
|
+
- **特性**: 大小选择、快速跳转、简洁模式
|
|
483
|
+
|
|
484
|
+
#### 64. `<aithe-dropdown>` - 下拉菜单
|
|
485
|
+
|
|
486
|
+
- **功能**: 下拉菜单容器
|
|
487
|
+
- **特性**: 触发方式、位置、禁用状态
|
|
488
|
+
|
|
489
|
+
#### 65. `<aithe-metrics>` - 指标
|
|
490
|
+
|
|
491
|
+
- **功能**: 指标展示组件,支持标签和数值展示
|
|
492
|
+
- **特性**: 自定义标签、数值、趋势指示
|
|
493
|
+
|
|
494
|
+
#### 66. `<aithe-metrics-group>` - 指标组
|
|
495
|
+
|
|
496
|
+
- **功能**: 分组指标容器
|
|
497
|
+
- **特性**: 水平/垂直排列、分组展示
|
|
498
|
+
|
|
499
|
+
#### 67. `<aithe-box-table>` - 卡片表格
|
|
500
|
+
|
|
501
|
+
- **功能**: 卡片式表格组件
|
|
502
|
+
- **特性**: 卡片布局、选择模式
|
|
503
|
+
|
|
504
|
+
### 展示组件 (14个)
|
|
505
|
+
|
|
506
|
+
#### 68. `<aithe-carousel>` - 走马灯
|
|
507
|
+
|
|
508
|
+
- **功能**: 轮播图
|
|
509
|
+
- **特性**: 自动播放、指示器、箭头、切换效果
|
|
510
|
+
|
|
511
|
+
#### 69. `<aithe-comparison>` - 对比
|
|
512
|
+
|
|
513
|
+
- **功能**: 前后对比滑块
|
|
514
|
+
- **特性**: 方向、手柄样式、标签
|
|
515
|
+
|
|
516
|
+
#### 70. `<aithe-animated-image>` - 动画图片
|
|
517
|
+
|
|
518
|
+
- **功能**: 带动画的图片显示
|
|
519
|
+
- **特性**: 缩放、平移、加载动画
|
|
520
|
+
|
|
521
|
+
#### 71. `<aithe-markdown>` - Markdown 渲染
|
|
522
|
+
|
|
523
|
+
- **功能**: Markdown 内容渲染
|
|
524
|
+
- **特性**: 语法高亮、自定义渲染器
|
|
525
|
+
- **备注**: 26.3.2.4 `listPlugin` 新增嵌套子列表与缩进续行支持
|
|
526
|
+
|
|
527
|
+
#### 72. `<aithe-code-editor>` - 代码编辑器
|
|
528
|
+
|
|
529
|
+
- **功能**: 代码显示与编辑组件
|
|
530
|
+
- **特性**: 语法高亮(38 种语言)、行号显示、一键复制、代码折叠
|
|
531
|
+
|
|
532
|
+
#### 73. `<aithe-markdown-editor>` - Markdown 编辑器
|
|
533
|
+
|
|
534
|
+
- **功能**: Markdown 编辑与实时预览
|
|
535
|
+
- **特性**: 分屏模式、实时预览
|
|
536
|
+
|
|
537
|
+
#### 74. `<aithe-label>` - 标签
|
|
538
|
+
|
|
539
|
+
- **功能**: 标签展示组件
|
|
540
|
+
- **特性**: filled/outlined 变体、多种颜色、可移除、图标支持
|
|
541
|
+
|
|
542
|
+
#### 75. `<aithe-mini-box>` - 迷你卡片
|
|
543
|
+
|
|
544
|
+
- **功能**: 迷你卡片组件
|
|
545
|
+
- **特性**: 紧凑布局、选择模式
|
|
546
|
+
|
|
547
|
+
#### 76. `<aithe-brief-box>` - 简要卡片
|
|
548
|
+
|
|
549
|
+
- **功能**: 简要卡片组件
|
|
550
|
+
- **特性**: name/status/tags/actions slot、选择模式
|
|
551
|
+
|
|
552
|
+
#### 77. `<aithe-detail-box>` - 详情卡片
|
|
553
|
+
|
|
554
|
+
- **功能**: 详情卡片组件
|
|
555
|
+
- **特性**: content/actions slot、空插槽自动隐藏
|
|
556
|
+
|
|
557
|
+
#### 78. `<aithe-profile>` - 个人资料
|
|
558
|
+
|
|
559
|
+
- **功能**: 个人资料组件
|
|
560
|
+
- **特性**: 头像、信息展示
|
|
561
|
+
|
|
562
|
+
#### 79. `<aithe-desc>` - 描述列表
|
|
563
|
+
|
|
564
|
+
- **功能**: 描述列表组件
|
|
565
|
+
- **特性**: 水平/垂直布局、独立 grid 列、`content`/`filter` 属性
|
|
566
|
+
- **备注**: 26.3.2.2 新增 `border-style`(`none`/`full`/`row`)和 `label-background`(`filled`/`none`)属性;`border-radius` CSS 变量修正;`labelWidth` 默认值改为 `'150px'`
|
|
567
|
+
|
|
568
|
+
#### 80. `<aithe-desc-item>` - 描述列表项
|
|
569
|
+
|
|
570
|
+
- **功能**: 描述列表项组件
|
|
571
|
+
- **特性**: `content`/`filter` 属性
|
|
572
|
+
|
|
573
|
+
#### 81. `<aithe-autoview>` - 自动视图 *(26.3.2.2 新增)*
|
|
574
|
+
|
|
575
|
+
- **功能**: JSON 驱动的只读详情视图,`<aithe-autoform>` 的只读镜像
|
|
576
|
+
- **特性**: 与 autoform 共用 `FormFieldConfig` 模型、内置 8 类只读渲染器、依赖联动显隐、`ViewRegistry` 自定义渲染器
|
|
577
|
+
- **事件**: `aithe-view-ready`(初始渲染完成后触发,携带可见字段值)
|
|
578
|
+
- **方法**: `getValues()`(返回所有可见字段值)
|
|
579
|
+
|
|
580
|
+
### 进度组件 (4个)
|
|
581
|
+
|
|
582
|
+
#### 82. `<aithe-progress-bar>` - 进度条
|
|
583
|
+
|
|
584
|
+
- **类型**: 线型、环形、仪表盘
|
|
585
|
+
- **特性**: 颜色、条纹动画、自定义文本
|
|
586
|
+
|
|
587
|
+
#### 83. `<aithe-progress-ring>` - 环形进度条
|
|
588
|
+
|
|
589
|
+
- **功能**: 环形进度显示
|
|
590
|
+
- **特性**: 大小、宽度、颜色渐变
|
|
591
|
+
|
|
592
|
+
#### 84. `<aithe-spinner>` - 加载旋转器
|
|
593
|
+
|
|
594
|
+
- **类型**: 旋转、脉冲、波浪
|
|
595
|
+
- **特性**: 大小、颜色、速度
|
|
596
|
+
|
|
597
|
+
#### 85. `<aithe-skeleton>` - 骨架屏
|
|
598
|
+
|
|
599
|
+
### 容器组件 (4个)
|
|
600
|
+
|
|
601
|
+
#### 86. `<aithe-callout>` - 提示框
|
|
602
|
+
|
|
603
|
+
- **类型**: 信息、成功、警告、错误
|
|
604
|
+
- **特性**: 图标、标题、可关闭
|
|
605
|
+
|
|
606
|
+
#### 87. `<aithe-details>` - 详情
|
|
607
|
+
|
|
608
|
+
- **功能**: 可展开的详情区域
|
|
609
|
+
- **特性**: 摘要、展开状态、禁用
|
|
610
|
+
|
|
611
|
+
#### 88. `<aithe-scroller>` - 滚动容器
|
|
612
|
+
|
|
613
|
+
- **功能**: 自定义滚动区域
|
|
614
|
+
- **特性**: 虚拟滚动、懒加载、滚动事件
|
|
615
|
+
|
|
616
|
+
#### 89. `<aithe-split-panel>` - 分割面板
|
|
617
|
+
|
|
618
|
+
### 主题组件 (7个)
|
|
619
|
+
|
|
620
|
+
#### 90. `<aithe-theme-picker>` - 主题选择器
|
|
621
|
+
|
|
622
|
+
- **功能**: 主题选择器,支持 Light/Dark 分组展示
|
|
623
|
+
- **特性**: 色点预览、键盘导航、`aithe-theme-change` 事件
|
|
624
|
+
|
|
625
|
+
#### 91. `<aithe-theme-preview>` - 主题预览
|
|
626
|
+
|
|
627
|
+
- **功能**: 主题预览面板,支持局部预览 + 确认应用全局主题
|
|
628
|
+
- **特性**: 工具栏、预览区、`aithe-theme-apply` 事件
|
|
629
|
+
|
|
630
|
+
#### 92. `<aithe-locale-switch>` - 语言切换
|
|
631
|
+
|
|
632
|
+
- **功能**: 语言切换器,支持 en-US / zh-CN / zh-TW / zh-HK / ja-JP / ko-KR / es-ES / pt-BR / fr-FR / de-DE 切换
|
|
633
|
+
- **特性**: 浮层下拉、键盘导航、`locales` 属性限定显示语言、`aithe-locale-change` 事件
|
|
634
|
+
|
|
635
|
+
#### 93. `<aithe-shadow-picker>` - 阴影选择器
|
|
636
|
+
|
|
637
|
+
- **功能**: 阴影风格选择器,支持 9 种内置阴影风格切换
|
|
638
|
+
- **特性**: 浮层下拉、图标预览、i18n 支持、`placement` 属性控制弹出方向
|
|
639
|
+
|
|
640
|
+
#### 94. `<aithe-typo-picker>` - 排版风格选择器
|
|
641
|
+
|
|
642
|
+
- **功能**: 排版风格选择器,支持 4 种内置排版风格切换(minimal/business/luxury/compact)
|
|
643
|
+
- **特性**: 浮层下拉、图标预览、i18n 支持、`placement` 属性控制弹出方向
|
|
644
|
+
|
|
645
|
+
#### 95. `<aithe-shape-picker>` - 形状风格选择器
|
|
646
|
+
|
|
647
|
+
- **功能**: 形状风格选择器,支持 8 种内置形状风格切换
|
|
648
|
+
- **特性**: 委托 `<aithe-tree-menu>` 渲染、预览缩略图、键盘导航
|
|
649
|
+
|
|
650
|
+
#### 96. `<aithe-theme-switch>` - 统一外观切换器
|
|
651
|
+
|
|
652
|
+
- **功能**: 统一外观切换器组件,一键切换主题/形状/阴影/排版
|
|
653
|
+
- **特性**: 整合 theme-picker、shape-picker、shadow-picker、typo-picker 为一体
|
|
654
|
+
|
|
655
|
+
### 框架组件 (7个)
|
|
656
|
+
|
|
657
|
+
#### 97. `<aithe-page>` - 页面
|
|
658
|
+
|
|
659
|
+
- **功能**: 完整页面布局
|
|
660
|
+
- **特性**: 头部、侧边栏、内容区、页脚
|
|
661
|
+
|
|
662
|
+
#### 98. `<aithe-body>` - 页面主体
|
|
663
|
+
|
|
664
|
+
- **功能**: 页面主体容器
|
|
665
|
+
- **特性**: 布局结构、内容区域
|
|
666
|
+
|
|
667
|
+
#### 99. `<aithe-header>` - 页面头部
|
|
668
|
+
|
|
669
|
+
- **功能**: 页面头部组件
|
|
670
|
+
- **特性**: 标题、导航、操作区域
|
|
671
|
+
|
|
672
|
+
#### 100. `<aithe-sidebar>` - 侧边栏
|
|
673
|
+
|
|
674
|
+
- **功能**: 侧边栏组件
|
|
675
|
+
- **特性**: 菜单导航、伸缩模式
|
|
676
|
+
|
|
677
|
+
#### 101. `<aithe-dashboard>` - 仪表盘
|
|
678
|
+
|
|
679
|
+
- **功能**: 拖拽式仪表盘组件
|
|
680
|
+
- **特性**: CSS Grid 布局、面板拖拽交换、面板调整大小、状态持久化
|
|
681
|
+
|
|
682
|
+
#### 102. `<aithe-dashboard-panel>` - 仪表盘面板
|
|
683
|
+
|
|
684
|
+
- **功能**: 仪表盘面板组件
|
|
685
|
+
- **特性**: 面板内容、拖拽、调整大小
|
|
686
|
+
|
|
687
|
+
#### 103. `<aithe-log-panel>` - 日志面板
|
|
688
|
+
|
|
689
|
+
- **功能**: 日志可视化面板
|
|
690
|
+
- **特性**: overlay/inline 布局、级别过滤、搜索、复制
|
|
691
|
+
|
|
692
|
+
## 技术架构
|
|
693
|
+
|
|
694
|
+
### 核心基类
|
|
695
|
+
|
|
696
|
+
- **AitheElement**: 所有组件的基类,提供统一的属性、事件和样式管理
|
|
697
|
+
- **主题系统**: 基于 CSS 自定义属性的主题切换机制
|
|
698
|
+
- **工具函数**: DOM 操作、事件处理、验证工具
|
|
699
|
+
|
|
700
|
+
### 样式系统
|
|
701
|
+
|
|
702
|
+
- **设计令牌**: 统一的颜色、间距、字体、阴影等设计变量
|
|
703
|
+
- **响应式**: 基于 CSS 媒体查询的响应式设计
|
|
704
|
+
- **主题切换**: 通过 CSS 类名切换主题
|
|
705
|
+
|
|
706
|
+
### Autoform / AutoView 模块
|
|
707
|
+
|
|
708
|
+
- **`FormRegistry`**: 表单控件注册表,支持 13 种内置控件类型
|
|
709
|
+
- **`ViewRegistry`**: 只读视图控件注册表,与 `FormRegistry` 对称(26.3.2.2 新增)
|
|
710
|
+
- **`ViewFieldConfig`**: 扩展 `FormFieldConfig`,追加 `filter`/`emptyText`/`span`/`rowspan`/`align`/`hideLabel` 属性(26.3.2.2 新增)
|
|
711
|
+
- **`FormRuleEngine`**: 表单规则引擎,支持 `show`/`hide`/`disable`/`enable`/`clear`/`update` 规则类型
|
|
712
|
+
|
|
713
|
+
### DataHub 数据中间层
|
|
714
|
+
|
|
715
|
+
- **`forceDedup` 选项**: 无视 URL 命名约定强制启用并发去重(26.3.2.2 新增)
|
|
716
|
+
- **`forceCache` 选项**: 无视 URL 命名约定强制启用结果缓存(26.3.2.2 新增)
|
|
717
|
+
- **缓存命中响应处理修复**: 缓存命中路径与实际请求路径走完全一致的响应处理逻辑(26.3.2.1 修复)
|
|
718
|
+
- **`handleResponse` 统一方法**: 封装 APIStyle 转换 + isSuccess 校验 + 返回业务数据(26.3.2.1 新增)
|
|
719
|
+
- **`executeRequest`/`buildHttpError`/`applyResponseInterceptor`**: request 方法重构拆分(26.3.2.2 新增)
|
|
720
|
+
- **`isCacheable`/`isDedupable`/`shouldGuardIdempotent`**: force 选项判断辅助方法(26.3.2.2 新增)
|
|
721
|
+
- **GET 请求 body 修复**: `defaultStyle.onRequest` GET 请求跳过 `data` 包装(26.3.2.2 修复)
|
|
722
|
+
|
|
723
|
+
### Markdown 解析引擎
|
|
724
|
+
|
|
725
|
+
- **`listPlugin` 嵌套子列表支持**: 通过递归调用 `listPlugin.block` 生成嵌套 `list` AST 节点(26.3.2.4 新增)
|
|
726
|
+
- **缩进续行支持**: 列表项标记行之后的缩进行被归集为续行或子列表(26.3.2.4 新增)
|
|
727
|
+
- **认知复杂度治理**: 抽取 5 个独立函数分层拆解(26.3.2.4)
|
|
728
|
+
|
|
729
|
+
### 构建系统
|
|
730
|
+
|
|
731
|
+
- **Vite**: 快速的开发服务器和构建工具
|
|
732
|
+
- **TypeScript**: 完整的类型定义支持
|
|
733
|
+
- **Lit 3.x**: 现代 Web Components 开发框架
|
|
734
|
+
- **tsc-alias**: 构建后自动替换 `.d.ts` 中的别名为相对路径
|
|
735
|
+
- **litExternalPlugin**: Vite 插件将 lit 标记为外部依赖
|
|
736
|
+
- **Vitest**: 测试框架
|
|
737
|
+
|
|
738
|
+
### 路径别名体系
|
|
739
|
+
|
|
740
|
+
- **`@base/*`** → `src/base/*`
|
|
741
|
+
- **`@components/*`** → `src/components/*`
|
|
742
|
+
- **`@core/*`** → `src/core/*`
|
|
743
|
+
- **`@styles/*`** → `src/styles/*`
|
|
744
|
+
- **`@types/*`** → `src/types/*`(含裸引用 `@types`)
|
|
745
|
+
- **`@utils/*`** → `src/utils/*`(含裸引用 `@utils`)
|
|
746
|
+
|
|
747
|
+
### 代码质量工具链
|
|
748
|
+
|
|
749
|
+
- **ESLint**: 代码静态分析,集成 `typescript-eslint`、`eslint-plugin-lit`、`eslint-plugin-wc`、`eslint-plugin-sonarjs`、`eslint-config-prettier`,使用 flat config 格式
|
|
750
|
+
- **Prettier**: 代码格式化,统一缩进、引号、行宽等风格
|
|
751
|
+
- **Vitest**: 单元测试框架
|
|
752
|
+
- **npm 脚本**: `lint` / `lint:fix` / `format` / `format:fix` / `test` / `test:watch`
|
|
753
|
+
|
|
754
|
+
## 安装和使用
|
|
755
|
+
|
|
756
|
+
### 安装
|
|
757
|
+
|
|
758
|
+
```bash
|
|
759
|
+
npm install aithe-ui
|
|
760
|
+
```
|
|
761
|
+
|
|
762
|
+
### 基本使用
|
|
763
|
+
|
|
764
|
+
```javascript
|
|
765
|
+
import 'aithe-ui';
|
|
766
|
+
|
|
767
|
+
// 在 HTML 中使用
|
|
768
|
+
<aithe-button type="primary" size="medium">
|
|
769
|
+
点击我
|
|
770
|
+
</aithe-button>;
|
|
771
|
+
```
|
|
772
|
+
|
|
773
|
+
### AutoView 只读视图
|
|
774
|
+
|
|
775
|
+
```javascript
|
|
776
|
+
import '@aithe/aithe-ui/components/display/autoview';
|
|
777
|
+
|
|
778
|
+
// JSON 驱动的只读详情视图
|
|
779
|
+
const fields = JSON.stringify([
|
|
780
|
+
{ name: 'username', type: 'input', label: '用户名' },
|
|
781
|
+
{ name: 'role', type: 'select', label: '角色',
|
|
782
|
+
options: [{ label: '管理员', id: 'admin' }] },
|
|
783
|
+
{ name: 'active', type: 'switch', label: '状态' }
|
|
784
|
+
]);
|
|
785
|
+
const data = { username: '张三', role: 'admin', active: true };
|
|
786
|
+
```
|
|
787
|
+
|
|
788
|
+
```html
|
|
789
|
+
<aithe-autoview .fields=${fields} .data=${data} column="2" border></aithe-autoview>
|
|
790
|
+
```
|
|
791
|
+
|
|
792
|
+
### Select / Combobox 选项分组
|
|
793
|
+
|
|
794
|
+
```html
|
|
795
|
+
<aithe-select
|
|
796
|
+
options='[{"label":"上海","id":"sh","group":"华东"},{"label":"杭州","id":"hz","group":"华东"},{"label":"北京","id":"bj","group":"华北"}]'
|
|
797
|
+
></aithe-select>
|
|
798
|
+
```
|
|
799
|
+
|
|
800
|
+
### DataHub force 选项
|
|
801
|
+
|
|
802
|
+
```javascript
|
|
803
|
+
import { dataHub } from 'aithe-ui';
|
|
804
|
+
|
|
805
|
+
// 强制启用去重(URL 不以 query/list/get 结尾但语义为查询)
|
|
806
|
+
await dataHub.request('/system/roles/viewer', undefined, {
|
|
807
|
+
method: 'GET',
|
|
808
|
+
forceDedup: true,
|
|
809
|
+
});
|
|
810
|
+
|
|
811
|
+
// 强制启用缓存
|
|
812
|
+
await dataHub.request('/system/config', undefined, {
|
|
813
|
+
method: 'GET',
|
|
814
|
+
forceCache: true,
|
|
815
|
+
cacheTTL: 60000,
|
|
816
|
+
});
|
|
817
|
+
```
|
|
818
|
+
|
|
819
|
+
## 浏览器支持
|
|
820
|
+
|
|
821
|
+
- Chrome 61+
|
|
822
|
+
- Firefox 63+
|
|
823
|
+
- Safari 10.1+
|
|
824
|
+
- Edge 79+
|
|
825
|
+
- iOS Safari 10.3+
|
|
826
|
+
- Android Chrome 61+
|
|
827
|
+
|
|
828
|
+
## 性能特点
|
|
829
|
+
|
|
830
|
+
- **Tree-shaking 支持**: 支持按需导入
|
|
831
|
+
- **零运行时依赖**: 仅依赖 Lit 库
|
|
832
|
+
- **轻量级**: 组件按需加载
|
|
833
|
+
- **服务端渲染友好**: 支持 SSR/SSG
|
|
834
|
+
|
|
835
|
+
## 后续版本规划
|
|
836
|
+
|
|
837
|
+
### 26.3.x (2026年第3季度)
|
|
838
|
+
|
|
839
|
+
- 组件性能优化
|
|
840
|
+
- 新增高级表单组件
|
|
841
|
+
- 单元测试覆盖率提升
|
|
842
|
+
|
|
843
|
+
### 26.4.x (2026年第4季度)
|
|
844
|
+
|
|
845
|
+
- 响应式布局增强
|
|
846
|
+
- 动画系统改进
|
|
847
|
+
- 开发者工具集成
|
|
848
|
+
- 主题定制工具
|
|
849
|
+
|
|
850
|
+
## 许可证
|
|
851
|
+
|
|
852
|
+
MIT License - Archest 团队
|