refactor: 把 system/ui 改为 monorepo

This commit is contained in:
unanmed 2025-03-04 22:50:53 +08:00
parent b3d5ad2ca9
commit a5e6f5b5f6
21 changed files with 118 additions and 168 deletions

View File

@ -14,11 +14,7 @@
"lines": "tsx script/lines.ts"
},
"dependencies": {
"@motajs/render": "workspace:*",
"@motajs/common": "workspace:*",
"@motajs/client": "workspace:*",
"@ant-design/icons-vue": "^6.1.0",
"@emotion/css": "^11.13.0",
"@vueuse/core": "^10.11.1",
"@wasm-audio-decoders/ogg-vorbis": "^0.1.16",
"anon-tokyo": "0.0.0-alpha.0",
@ -28,7 +24,6 @@
"codec-parser": "^2.5.0",
"eventemitter3": "^5.0.1",
"gl-matrix": "^3.4.3",
"gsap": "^3.12.5",
"jszip": "^3.10.1",
"lodash-es": "^4.17.21",
"lz-string": "^1.5.0",

View File

@ -1,5 +1,5 @@
{
"name": "@motajs/render",
"name": "@motajs/client",
"dependencies": {
"@motajs/render": "workspace:*"
}

View File

@ -0,0 +1,7 @@
{
"name": "@motajs/system-ui",
"dependencies": {
"@motajs/common": "workspace:*",
"@motajs/render": "workspace:*"
}
}

View File

@ -1,6 +1,6 @@
import { defineComponent, VNode } from 'vue';
import { IUIMountable } from './shared';
import { SetupComponentOptions } from '@/module';
import { SetupComponentOptions } from './types';
export interface UIContainerProps {
controller: IUIMountable;

View File

@ -1,5 +1,6 @@
export * from './controller';
export * from './ui';
export * from './shared';
export * from './instance';
export * from './container';
export * from './controller';
export * from './instance';
export * from './shared';
export * from './types';
export * from './ui';

View File

@ -0,0 +1,12 @@
import { ComponentOptions, EmitsOptions, SlotsType } from 'vue';
export type SetupComponentOptions<
Props extends Record<string, any>,
E extends EmitsOptions = {},
EE extends string = string,
S extends SlotsType = {}
> = Pick<ComponentOptions, 'name' | 'inheritAttrs'> & {
props?: (keyof Props)[];
emits?: E | EE[];
slots?: S;
};

View File

@ -0,0 +1,6 @@
{
"name": "@motajs/system",
"dependencies": {
"@motajs/system-ui": "workspace:*"
}
}

View File

@ -0,0 +1 @@
export * as UI from '@motajs/system-ui';

View File

@ -11,9 +11,6 @@ importers:
'@ant-design/icons-vue':
specifier: ^6.1.0
version: 6.1.0(vue@3.5.13(typescript@5.5.4))
'@emotion/css':
specifier: ^11.13.0
version: 11.13.0
'@vueuse/core':
specifier: ^10.11.1
version: 10.11.1(vue@3.5.13(typescript@5.5.4))
@ -41,9 +38,6 @@ importers:
gl-matrix:
specifier: ^3.4.3
version: 3.4.3
gsap:
specifier: ^3.12.5
version: 3.12.5
jszip:
specifier: ^3.10.1
version: 3.10.1
@ -193,14 +187,83 @@ importers:
specifier: ^8.18.0
version: 8.18.0
packages/client:
dependencies:
'@motajs/render':
specifier: workspace:*
version: link:../render
packages/common: {}
packages/render:
dependencies:
'@motajs/render-core':
specifier: workspace:*
version: link:../render-core
'@motajs/render-elements':
specifier: workspace:*
version: link:../render-elements
'@motajs/render-style':
specifier: workspace:*
version: link:../render-style
'@motajs/render-vue':
specifier: workspace:*
version: link:../render-vue
packages/render-core:
dependencies:
'@motajs/common':
specifier: workspace:*
version: link:../common
packages/render-elements:
dependencies:
'@motajs/common':
specifier: workspace:*
version: link:../common
'@motajs/render-core':
specifier: workspace:*
version: link:../render-core
'@motajs/render-style':
specifier: workspace:*
version: link:../render-style
packages/render-style:
dependencies:
'@motajs/common':
specifier: workspace:*
version: link:../common
packages/render-vue:
dependencies:
'@motajs/common':
specifier: workspace:*
version: link:../common
'@motajs/render-core':
specifier: workspace:*
version: link:../render-core
'@motajs/render-elements':
specifier: workspace:*
version: link:../render-elements
'@motajs/render-style':
specifier: workspace:*
version: link:../render-style
packages/system:
dependencies:
'@motajs/system-ui':
specifier: workspace:*
version: link:../system-ui
packages/system-ui:
dependencies:
'@motajs/common':
specifier: workspace:*
version: link:../common
'@motajs/render':
specifier: workspace:*
version: link:../render
packages:
'@algolia/autocomplete-core@1.17.7':
@ -1190,36 +1253,6 @@ packages:
'@eggjs/yauzl@2.11.0':
resolution: {integrity: sha512-Jq+k2fCZJ3i3HShb0nxLUiAgq5pwo8JTT1TrH22JoehZQ0Nm2dvByGIja1NYfNyuE4Tx5/Dns5nVsBN/mlC8yg==}
'@emotion/babel-plugin@11.12.0':
resolution: {integrity: sha512-y2WQb+oP8Jqvvclh8Q55gLUyb7UFvgv7eJfsj7td5TToBrIUtPay2kMrZi4xjq9qw2vD0ZR5fSho0yqoFgX7Rw==}
'@emotion/cache@11.13.1':
resolution: {integrity: sha512-iqouYkuEblRcXmylXIwwOodiEK5Ifl7JcX7o6V4jI3iW4mLXX3dmt5xwBtIkJiQEXFAI+pC8X0i67yiPkH9Ucw==}
'@emotion/css@11.13.0':
resolution: {integrity: sha512-BUk99ylT+YHl+W/HN7nv1RCTkDYmKKqa1qbvM/qLSQEg61gipuBF5Hptk/2/ERmX2DCv0ccuFGhz9i0KSZOqPg==}
'@emotion/hash@0.9.2':
resolution: {integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==}
'@emotion/memoize@0.9.0':
resolution: {integrity: sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==}
'@emotion/serialize@1.3.0':
resolution: {integrity: sha512-jACuBa9SlYajnpIVXB+XOXnfJHyckDfe6fOpORIM6yhBDlqGuExvDdZYHDQGoDf3bZXGv7tNr+LpLjJqiEQ6EA==}
'@emotion/sheet@1.4.0':
resolution: {integrity: sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==}
'@emotion/unitless@0.9.0':
resolution: {integrity: sha512-TP6GgNZtmtFaFcsOgExdnfxLLpRDla4Q66tnenA9CktvVSdNKDvMVuUah4QvWPIpNjrWsGg3qeGo9a43QooGZQ==}
'@emotion/utils@1.4.0':
resolution: {integrity: sha512-spEnrA1b6hDR/C68lC2M7m6ALPUHZC0lIY7jAS/B/9DuuO1ZP04eov8SMv/6fwRd8pzmsn2AuJEznRREWlQrlQ==}
'@emotion/weak-memoize@0.4.0':
resolution: {integrity: sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==}
'@esbuild/aix-ppc64@0.21.5':
resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==}
engines: {node: '>=12'}
@ -2076,9 +2109,6 @@ packages:
'@types/normalize-package-data@2.4.4':
resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==}
'@types/parse-json@4.0.2':
resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==}
'@types/resolve@1.20.2':
resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==}
@ -2468,10 +2498,6 @@ packages:
b3b@0.0.1:
resolution: {integrity: sha512-wWUK79hNEsHN1PTHwHsGYpTNupgaovM39g6374uoIL1gfVSwK2q9flM1DFyvSEYkELRWf5aMGSf7bkGGNSl0Jw==}
babel-plugin-macros@3.1.0:
resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==}
engines: {node: '>=10', npm: '>=6'}
babel-plugin-polyfill-corejs2@0.4.11:
resolution: {integrity: sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==}
peerDependencies:
@ -2720,10 +2746,6 @@ packages:
core-util-is@1.0.3:
resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
cosmiconfig@7.1.0:
resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==}
engines: {node: '>=10'}
cross-spawn@7.0.6:
resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
engines: {node: '>= 8'}
@ -3037,9 +3059,6 @@ packages:
resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
engines: {node: '>=8'}
find-root@1.1.0:
resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==}
find-up@5.0.0:
resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
engines: {node: '>=10'}
@ -3201,9 +3220,6 @@ packages:
graphemer@1.4.0:
resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
gsap@3.12.5:
resolution: {integrity: sha512-srBfnk4n+Oe/ZnMIOXt3gT605BX9x5+rh/prT2F1SsNJsU1XuMiP0E2aptW481OnonOGACZWBqseH5Z7csHxhQ==}
hard-rejection@2.1.0:
resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==}
engines: {node: '>=6'}
@ -3889,10 +3905,6 @@ packages:
resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==}
engines: {node: 20 || >=22}
path-type@4.0.0:
resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
engines: {node: '>=8'}
pathe@1.1.2:
resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==}
@ -4383,10 +4395,6 @@ packages:
source-map-support@0.5.21:
resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
source-map@0.5.7:
resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==}
engines: {node: '>=0.10.0'}
source-map@0.6.1:
resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
engines: {node: '>=0.10.0'}
@ -4470,9 +4478,6 @@ packages:
strnum@1.0.5:
resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==}
stylis@4.2.0:
resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==}
superjson@2.2.2:
resolution: {integrity: sha512-5JRxVqC8I8NuOUjzBbvVJAKNM8qoVuH0O77h4WInc/qC2q5IreqKxYwgkga3PfA22OayK2ikceb/B26dztPl+Q==}
engines: {node: '>=16'}
@ -4907,10 +4912,6 @@ packages:
yallist@4.0.0:
resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
yaml@1.10.2:
resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==}
engines: {node: '>= 6'}
yargs-parser@20.2.9:
resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==}
engines: {node: '>=10'}
@ -6143,60 +6144,6 @@ snapshots:
buffer-crc32: 0.2.13
fd-slicer2: 1.2.0
'@emotion/babel-plugin@11.12.0':
dependencies:
'@babel/helper-module-imports': 7.24.7
'@babel/runtime': 7.25.0
'@emotion/hash': 0.9.2
'@emotion/memoize': 0.9.0
'@emotion/serialize': 1.3.0
babel-plugin-macros: 3.1.0
convert-source-map: 1.9.0
escape-string-regexp: 4.0.0
find-root: 1.1.0
source-map: 0.5.7
stylis: 4.2.0
transitivePeerDependencies:
- supports-color
'@emotion/cache@11.13.1':
dependencies:
'@emotion/memoize': 0.9.0
'@emotion/sheet': 1.4.0
'@emotion/utils': 1.4.0
'@emotion/weak-memoize': 0.4.0
stylis: 4.2.0
'@emotion/css@11.13.0':
dependencies:
'@emotion/babel-plugin': 11.12.0
'@emotion/cache': 11.13.1
'@emotion/serialize': 1.3.0
'@emotion/sheet': 1.4.0
'@emotion/utils': 1.4.0
transitivePeerDependencies:
- supports-color
'@emotion/hash@0.9.2': {}
'@emotion/memoize@0.9.0': {}
'@emotion/serialize@1.3.0':
dependencies:
'@emotion/hash': 0.9.2
'@emotion/memoize': 0.9.0
'@emotion/unitless': 0.9.0
'@emotion/utils': 1.4.0
csstype: 3.1.3
'@emotion/sheet@1.4.0': {}
'@emotion/unitless@0.9.0': {}
'@emotion/utils@1.4.0': {}
'@emotion/weak-memoize@0.4.0': {}
'@esbuild/aix-ppc64@0.21.5':
optional: true
@ -6847,8 +6794,6 @@ snapshots:
'@types/normalize-package-data@2.4.4': {}
'@types/parse-json@4.0.2': {}
'@types/resolve@1.20.2': {}
'@types/unist@3.0.3': {}
@ -7352,12 +7297,6 @@ snapshots:
b3b@0.0.1: {}
babel-plugin-macros@3.1.0:
dependencies:
'@babel/runtime': 7.25.0
cosmiconfig: 7.1.0
resolve: 1.22.8
babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.25.2):
dependencies:
'@babel/compat-data': 7.25.2
@ -7629,14 +7568,6 @@ snapshots:
core-util-is@1.0.3: {}
cosmiconfig@7.1.0:
dependencies:
'@types/parse-json': 4.0.2
import-fresh: 3.3.0
parse-json: 5.2.0
path-type: 4.0.0
yaml: 1.10.2
cross-spawn@7.0.6:
dependencies:
path-key: 3.1.1
@ -8002,8 +7933,6 @@ snapshots:
dependencies:
to-regex-range: 5.0.1
find-root@1.1.0: {}
find-up@5.0.0:
dependencies:
locate-path: 6.0.0
@ -8202,8 +8131,6 @@ snapshots:
graphemer@1.4.0: {}
gsap@3.12.5: {}
hard-rejection@2.1.0: {}
has-flag@3.0.0: {}
@ -8884,8 +8811,6 @@ snapshots:
lru-cache: 11.0.2
minipass: 7.1.2
path-type@4.0.0: {}
pathe@1.1.2: {}
pend@1.2.0: {}
@ -9438,8 +9363,6 @@ snapshots:
buffer-from: 1.1.2
source-map: 0.6.1
source-map@0.5.7: {}
source-map@0.6.1: {}
space-separated-tokens@2.0.2: {}
@ -9520,8 +9443,6 @@ snapshots:
strnum@1.0.5: {}
stylis@4.2.0: {}
superjson@2.2.2:
dependencies:
copy-anything: 3.0.5
@ -9994,8 +9915,6 @@ snapshots:
yallist@4.0.0: {}
yaml@1.10.2: {}
yargs-parser@20.2.9: {}
yazl@2.5.1:

View File

@ -1 +0,0 @@
export * from './ui';

View File

@ -5,7 +5,7 @@ import { TextContent, TextContentExpose, TextContentProps } from './textbox';
import { SetupComponentOptions } from './types';
import { TextAlign } from './textboxTyper';
import { Page, PageExpose } from './page';
import { GameUI, IUIMountable } from '@/core/system';
import { GameUI, IUIMountable } from '@motajs/system-ui';
export interface ConfirmBoxProps extends DefaultProps, TextContentProps {
text: string;

View File

@ -13,7 +13,7 @@ import { Scroll, ScrollExpose, ScrollProps } from './scroll';
import { transitioned } from '../use';
import { hyper } from 'mutate-animate';
import { logger } from '@motajs/common';
import { GameUI, IUIMountable } from '@/core/system';
import { GameUI, IUIMountable } from '@motajs/system-ui';
interface ProgressProps extends DefaultProps {
/** 进度条的位置 */

View File

@ -1,6 +1,6 @@
import { MotaRenderer, createApp } from '@motajs/render';
import { defineComponent } from 'vue';
import { UIController } from '@/core/system';
import { UIController } from '@motajs/system-ui';
import { mainSceneUI } from './ui/main';
import { MAIN_HEIGHT, MAIN_WIDTH } from './shared';
import { TextboxStore } from './components';

View File

@ -20,7 +20,7 @@ import { PopText } from '@/plugin/fx/pop';
import { LayerGroupPortal } from '@/plugin/fx/portal';
import { defineComponent, onMounted, reactive, ref } from 'vue';
import { Textbox, Tip } from '../components';
import { GameUI, UIController } from '@/core/system';
import { GameUI, UIController } from '@motajs/system-ui';
import {
MAIN_HEIGHT,
MAIN_WIDTH,

View File

@ -1,5 +1,5 @@
import { ElementLocator } from '@motajs/render';
import { GameUI, UIComponentProps } from '@/core/system';
import { GameUI, UIComponentProps } from '@motajs/system-ui';
import { defineComponent } from 'vue';
import {
ChoiceItem,

View File

@ -1,4 +1,4 @@
import { GameUI, UIComponentProps } from '@/core/system';
import { GameUI, UIComponentProps } from '@motajs/system-ui';
import { computed, defineComponent, ref, watch } from 'vue';
import { SetupComponentOptions, TextContent } from '../components';
import {

10
src/package.json Normal file
View File

@ -0,0 +1,10 @@
{
"name": "@motajs/user",
"dependencies": {
"@motajs/client": "workspace:*",
"@motajs/common": "workspace:*",
"@motajs/render": "workspace:*",
"@motajs/system": "workspace:*",
"@motajs/system-ui": "workspace:*"
}
}