Compare commits

...

7 Commits

Author SHA1 Message Date
roymondchen
26efa75ff2 feat(editor): update 支持 selectedAfterUpdate 参数控制是否更新 nodes
Made-with: Cursor
2026-04-28 15:50:03 +08:00
roymondchen
59716e909b chore(vue-runtime-help): release v2.0.3
useEditorDsl 返回 root 以便外部访问根节点

Made-with: Cursor
2026-04-24 16:23:11 +08:00
roymondchen
4a102c1277 chore: update lockfile v1.7.12 2026-04-24 15:50:13 +08:00
roymondchen
94e58342e5 chore: release v1.7.12 2026-04-24 15:48:55 +08:00
roymondchen
3c41091f96 refactor(form): 重构 table/group-list 目录结构与新增行逻辑
- 将 table 相关文件迁移至 containers/table 与 containers/table-group-list 目录
- 将新增行处理统一上移至 TableGroupList,通过 add 事件触发
- 抽取 TableGroupListCommonConfig 公共配置类型
- useFullscreen 内聚管理 zIndex
- TableColumnConfig 支持 text 作为 label 别名

Made-with: Cursor
2026-04-24 15:45:15 +08:00
roymondchen
b5af91f86c chore: update lock 2026-04-23 20:52:39 +08:00
roymondchen
540d9cd5bb chore(vue-runtime-help): release v2.0.2 2026-04-23 20:50:21 +08:00
41 changed files with 333 additions and 359 deletions

View File

@ -1,3 +1,7 @@
## [1.7.12](https://github.com/Tencent/tmagic-editor/compare/v1.7.11...v1.7.12) (2026-04-24)
## [1.7.11](https://github.com/Tencent/tmagic-editor/compare/v1.7.10...v1.7.11) (2026-04-23)

View File

@ -1,5 +1,5 @@
{
"version": "1.7.11",
"version": "1.7.12",
"name": "tmagic",
"private": true,
"type": "module",

View File

@ -1,5 +1,5 @@
{
"version": "1.7.11",
"version": "1.7.12",
"name": "@tmagic/cli",
"main": "lib/index.js",
"types": "lib/index.d.ts",

View File

@ -1,5 +1,5 @@
{
"version": "1.7.11",
"version": "1.7.12",
"name": "@tmagic/core",
"type": "module",
"sideEffects": false,

View File

@ -1,5 +1,5 @@
{
"version": "1.7.11",
"version": "1.7.12",
"name": "@tmagic/data-source",
"type": "module",
"sideEffects": false,

View File

@ -1,5 +1,5 @@
{
"version": "1.7.11",
"version": "1.7.12",
"name": "@tmagic/dep",
"type": "module",
"sideEffects": false,

View File

@ -1,5 +1,5 @@
{
"version": "1.7.11",
"version": "1.7.12",
"name": "@tmagic/design",
"type": "module",
"sideEffects": [

View File

@ -1,5 +1,5 @@
{
"version": "1.7.11",
"version": "1.7.12",
"name": "@tmagic/editor",
"type": "module",
"sideEffects": [

View File

@ -509,7 +509,10 @@ class Editor extends BaseService {
public async doUpdate(
config: MNode,
{ changeRecords = [] }: { changeRecords?: ChangeRecord[] } = {},
{
changeRecords = [],
selectedAfterUpdate = true,
}: { changeRecords?: ChangeRecord[]; selectedAfterUpdate?: boolean } = {},
): Promise<{ newNode: MNode; oldNode: MNode; changeRecords?: ChangeRecord[] }> {
const root = this.get('root');
if (!root) throw new Error('root为空');
@ -554,10 +557,12 @@ class Editor extends BaseService {
parentNodeItems[index] = newConfig;
// 将update后的配置更新到nodes中
const nodes = this.get('nodes');
const targetIndex = nodes.findIndex((nodeItem: MNode) => `${nodeItem.id}` === `${newConfig.id}`);
nodes.splice(targetIndex, 1, newConfig);
this.set('nodes', [...nodes]);
if (selectedAfterUpdate) {
const nodes = this.get('nodes');
const targetIndex = nodes.findIndex((nodeItem: MNode) => `${nodeItem.id}` === `${newConfig.id}`);
nodes.splice(targetIndex, 1, newConfig);
this.set('nodes', [...nodes]);
}
if (isPage(newConfig) || isPageFragment(newConfig)) {
this.set('page', newConfig as MPage | MPageFragment);
@ -580,7 +585,7 @@ class Editor extends BaseService {
*/
public async update(
config: MNode | MNode[],
data: { changeRecords?: ChangeRecord[] } = {},
data: { changeRecords?: ChangeRecord[]; selectedAfterUpdate?: boolean } = {},
): Promise<MNode | MNode[]> {
this.captureSelectionBeforeOp();

View File

@ -1,11 +1,11 @@
import type { DataSchema, DataSourceFieldType, DataSourceSchema } from '@tmagic/core';
import { type CascaderOption, defineFormItem, type FormConfig } from '@tmagic/form';
import { type CascaderOption, type FormConfig, type TabConfig } from '@tmagic/form';
import { dataSourceTemplateRegExp, getKeysArray, isNumber } from '@tmagic/utils';
import BaseFormConfig from './formConfigs/base';
import HttpFormConfig from './formConfigs/http';
const dataSourceFormConfig = defineFormItem({
const dataSourceFormConfig: TabConfig = {
type: 'tab',
items: [
{
@ -73,9 +73,13 @@ const dataSourceFormConfig = defineFormItem({
],
},
],
});
};
const fillConfig = (config: FormConfig): FormConfig => [...BaseFormConfig(), ...config, dataSourceFormConfig];
const fillConfig = <T = never>(config: FormConfig<T>): FormConfig<T> => [
...BaseFormConfig(),
...config,
dataSourceFormConfig,
];
export const getFormConfig = (type: string, configs: Record<string, FormConfig>): FormConfig => {
switch (type) {

View File

@ -1,5 +1,5 @@
{
"version": "1.7.11",
"version": "1.7.12",
"name": "@tmagic/element-plus-adapter",
"type": "module",
"sideEffects": false,

View File

@ -1,5 +1,5 @@
{
"version": "1.7.11",
"version": "1.7.12",
"name": "@tmagic/form-schema",
"type": "module",
"sideEffects": false,

View File

@ -701,28 +701,43 @@ export interface PanelConfig<T = never> extends FormItem, ContainerCommonConfig<
schematic?: string;
}
export interface TableColumnConfig extends FormItem {
export interface TableGroupListCommonConfig extends FormItem {
type: 'table' | 'groupList' | 'group-list';
enableToggleMode?: boolean;
/** 最大行数 */
max?: number;
enum?: any[];
/** 是否显示添加按钮 */
addable?: (mForm: FormState | undefined, data: any) => boolean | 'undefined' | boolean;
/** 新增的默认行,可以是函数动态生成或静态对象 */
defaultAdd?: ((mForm: FormState | undefined, data: any) => any) | Record<string, any>;
/** table 新增行时前置回调 */
beforeAddRow?: (mForm: FormState | undefined, data: any) => boolean | Promise<boolean>;
}
export interface TableColumnConfig<T = never> extends FormItem {
name?: string;
label: string;
label?: string;
text?: string;
width?: string | number;
sortable?: boolean;
items?: FormConfig;
itemsFunction?: (row: any) => FormConfig;
items?: FormConfig<T>;
itemsFunction?: (row: any) => FormConfig<T>;
titleTip?: FilterFunction<string>;
type?: string;
addButtonConfig?: {
props?: Record<string, any>;
text?: string;
};
}
/**
*
*/
export interface TableConfig extends FormItem {
type: 'table' | 'groupList' | 'group-list';
items: TableColumnConfig[];
tableItems?: TableColumnConfig[];
groupItems?: TableColumnConfig[];
enableToggleMode?: boolean;
/** 最大行数 */
max?: number;
export interface TableConfig<T = never> extends TableGroupListCommonConfig {
items: TableColumnConfig<T>[];
tableItems?: TableColumnConfig<T>[];
groupItems?: TableColumnConfig<T>[];
/** 最大高度 */
maxHeight?: number | string;
border?: boolean;
@ -731,9 +746,6 @@ export interface TableConfig extends FormItem {
/** 操作栏宽度 */
operateColWidth?: number | string;
pagination?: boolean;
enum?: any[];
/** 是否显示添加按钮 */
addable?: (mForm: FormState | undefined, data: any) => boolean | 'undefined' | boolean;
/** 是否显示删除按钮 */
delete?: (model: any, index: number, values: any) => boolean | boolean;
copyable?: (model: any, data: any) => boolean | boolean;
@ -741,8 +753,6 @@ export interface TableConfig extends FormItem {
importable?: (mForm: FormState | undefined, data: any) => boolean | 'undefined' | boolean;
/** 是否显示checkbox */
selection?: (mForm: FormState | undefined, data: any) => boolean | boolean | 'single';
/** 新增的默认行,可以是函数动态生成或静态对象 */
defaultAdd?: ((mForm: FormState | undefined, data: any) => any) | Record<string, any>;
copyHandler?: (mForm: FormState | undefined, data: any) => any;
onSelect?: (mForm: FormState | undefined, data: any) => any;
/** @deprecated 请使用 defaultSort */
@ -760,20 +770,12 @@ export interface TableConfig extends FormItem {
itemExtra?: string | FilterFunction<string>;
titleTip?: FilterFunction<string>;
rowKey?: string;
/** table 新增行时前置回调 */
beforeAddRow?: (mForm: FormState | undefined, data: any) => boolean | Promise<boolean>;
addButtonConfig?: {
props?: Record<string, any>;
text?: string;
};
sort?: boolean;
sortKey?: string;
}
export interface GroupListConfig<T = never> extends FormItem {
type: 'table' | 'groupList' | 'group-list';
export interface GroupListConfig<T = never> extends TableGroupListCommonConfig {
span?: number;
enableToggleMode?: boolean;
items: FormConfig<T>;
groupItems?: FormConfig<T>;
tableItems?: FormConfig<T>;
@ -788,9 +790,6 @@ export interface GroupListConfig<T = never> extends FormItem {
*
*/
defaultExpandQuantity?: number;
addable?: (mForm: FormState | undefined, data: any) => boolean | 'undefined' | boolean;
/** 新增的默认值,可以是函数动态生成或静态对象 */
defaultAdd?: ((mForm: FormState | undefined, data: any) => any) | Record<string, any>;
delete?: (model: any, index: number | string | symbol, values: any) => boolean | boolean;
copyable?: FilterFunction<boolean>;
movable?: (
@ -800,13 +799,6 @@ export interface GroupListConfig<T = never> extends FormItem {
groupModel: any,
) => boolean | boolean;
moveSpecifyLocation?: boolean;
addButtonConfig?: {
props?: Record<string, any>;
text?: string;
};
/** 最大行数 */
max?: number;
beforeAddRow?: (mForm: FormState | undefined, data: any) => boolean;
}
interface StepItemConfig<T = never> extends FormItem, ContainerCommonConfig<T> {

View File

@ -1,5 +1,5 @@
{
"version": "1.7.11",
"version": "1.7.12",
"name": "@tmagic/form",
"type": "module",
"sideEffects": [

View File

@ -29,20 +29,16 @@
<div class="m-fields-group-list-footer">
<slot name="toggle-button"></slot>
<div style="display: flex; justify-content: flex-end; flex: 1">
<slot name="add-button" :trigger="addHandler"></slot>
<slot name="add-button"></slot>
</div>
</div>
</div>
</template>
<script setup lang="ts">
import { inject } from 'vue';
import { cloneDeep } from 'lodash-es';
import { tMagicMessage } from '@tmagic/design';
import type { ContainerChangeEventData, FormState, GroupListConfig } from '../schema';
import { initValue } from '../utils/form';
import type { ContainerChangeEventData, GroupListConfig } from '../schema';
import MFieldsGroupListItem from './GroupListItem.vue';
@ -68,59 +64,10 @@ const emit = defineEmits<{
addDiffCount: [];
}>();
const mForm = inject<FormState | undefined>('mForm');
const changeHandler = (v: any, eventData: ContainerChangeEventData) => {
emit('change', props.model, eventData);
};
const addHandler = async () => {
if (!props.name) return false;
if (props.config.max && props.model[props.name].length >= props.config.max) {
tMagicMessage.error(`最多新增配置不能超过${props.config.max}`);
return;
}
if (typeof props.config.beforeAddRow === 'function') {
const beforeCheckRes = await props.config.beforeAddRow(mForm, {
model: props.model[props.name],
formValue: mForm?.values,
prop: props.prop,
});
if (!beforeCheckRes) return;
}
let initValues = {};
if (typeof props.config.defaultAdd === 'function') {
initValues = await props.config.defaultAdd(mForm, {
model: props.model[props.name],
formValue: mForm?.values,
prop: props.prop,
config: props.config,
});
} else if (props.config.defaultAdd) {
initValues = props.config.defaultAdd;
}
const groupValue = await initValue(mForm, {
config: props.config.items,
initValues,
});
props.model[props.name].push(groupValue);
emit('change', props.model[props.name], {
changeRecords: [
{
propPath: `${props.prop}.${props.model[props.name].length - 1}`,
value: groupValue,
},
],
});
};
const removeHandler = (index: number) => {
if (!props.name) return false;

View File

@ -1,6 +1,7 @@
<template>
<component
:is="displayMode === 'table' ? MFormTable : MFormGroupList"
ref="tableGroupList"
v-bind="$attrs"
:model="model"
:name="`${name}`"
@ -17,6 +18,7 @@
@change="onChange"
@select="onSelect"
@addDiffCount="onAddDiffCount"
@add="onAdd"
>
<template #toggle-button>
<TMagicButton
@ -29,16 +31,15 @@
</TMagicButton>
</template>
<template #add-button="{ trigger }">
<template #add-button v-if="addable">
<TMagicButton
v-if="addable"
:class="displayMode === 'table' ? 'm-form-table-add-button' : ''"
:size="addButtonSize"
:plain="displayMode === 'table'"
:icon="Plus"
:disabled="disabled"
v-bind="currentConfig.addButtonConfig?.props || { type: 'primary' }"
@click="trigger"
@click="newHandler"
>
{{ currentConfig.addButtonConfig?.text || (displayMode === 'table' ? '新增一行' : '新增') }}
</TMagicButton>
@ -47,16 +48,17 @@
</template>
<script setup lang="ts">
import { computed, inject, ref } from 'vue';
import { computed, ref, useTemplateRef } from 'vue';
import { Grid, Plus } from '@element-plus/icons-vue';
import { TMagicButton } from '@tmagic/design';
import type { FormState, GroupListConfig, TableConfig } from '@tmagic/form-schema';
import type { GroupListConfig, TableConfig } from '@tmagic/form-schema';
import type { ContainerChangeEventData } from '../schema';
import type { ContainerChangeEventData } from '../../schema';
import MFormGroupList from '../GroupList.vue';
import MFormTable from '../table/Table.vue';
import MFormGroupList from './GroupList.vue';
import { useAdd } from './useAdd';
defineOptions({
name: 'MFormTableGroupList',
@ -81,28 +83,7 @@ const props = defineProps<{
const emit = defineEmits(['change', 'select', 'addDiffCount']);
const mForm = inject<FormState | undefined>('mForm');
const addable = computed(() => {
const modelName = props.name || props.config.name || '';
if (!modelName) return false;
if (!props.model[modelName].length) {
return true;
}
if (typeof props.config.addable === 'function') {
return props.config.addable(mForm, {
model: props.model[modelName],
formValue: mForm?.values,
prop: props.prop,
config: props.config,
});
}
return typeof props.config.addable === 'undefined' ? true : props.config.addable;
});
const { addable, newHandler } = useAdd(props, emit);
const isGroupListType = (type: string | undefined) => type === 'groupList' || type === 'group-list';
@ -178,4 +159,15 @@ const toggleDisplayMode = () => {
const onChange = (v: any, eventData?: ContainerChangeEventData) => emit('change', v, eventData);
const onSelect = (...args: any[]) => emit('select', ...args);
const onAddDiffCount = () => emit('addDiffCount');
const onAdd = (rows: any[]) => {
rows.forEach((row: any) => {
newHandler(row);
});
};
const tableGroupListRef = useTemplateRef<InstanceType<typeof MFormTable>>('tableGroupList');
defineExpose({
toggleRowSelection: (row: any, selected: boolean) => tableGroupListRef.value?.toggleRowSelection?.(row, selected),
});
</script>

View File

@ -1,18 +1,43 @@
import { inject } from 'vue';
import { computed, inject } from 'vue';
import { tMagicMessage } from '@tmagic/design';
import type { FormConfig, FormState } from '@tmagic/form-schema';
import type { FormConfig, FormState, TableConfig, TableGroupListCommonConfig } from '@tmagic/form-schema';
import { initValue } from '../utils/form';
import type { TableProps } from './type';
import { initValue } from '../../utils/form';
import type { TableProps } from '../table/type';
export const useAdd = (
props: TableProps,
emit: (event: 'select' | 'change' | 'addDiffCount', ...args: any[]) => void,
props: Pick<TableProps, 'name' | 'model' | 'prop' | 'sortKey'> & {
config: Pick<TableGroupListCommonConfig, 'addable' | 'max' | 'beforeAddRow' | 'defaultAdd' | 'enum'> &
Pick<TableConfig, 'key' | 'name'> & {
items: { name?: string | number }[];
};
},
emit: (event: 'change', ...args: any[]) => void,
) => {
const mForm = inject<FormState | undefined>('mForm');
const addable = computed(() => {
const modelName = props.name || props.config.name || '';
if (!modelName) return false;
if (!props.model[modelName].length) {
return true;
}
if (typeof props.config.addable === 'function') {
return props.config.addable(mForm, {
model: props.model[modelName],
formValue: mForm?.values,
prop: props.prop,
config: props.config,
});
}
return typeof props.config.addable === 'undefined' ? true : props.config.addable;
});
const newHandler = async (row?: any) => {
const modelName = props.name || props.config.name || '';
@ -91,6 +116,7 @@ export const useAdd = (
};
return {
addable,
newHandler,
};
};

View File

@ -38,7 +38,7 @@ import { cloneDeep } from 'lodash-es';
import { TMagicButton, TMagicTooltip } from '@tmagic/design';
import type { FormState, TableConfig } from '../schema';
import type { FormState, TableConfig } from '../../schema';
const emit = defineEmits(['change']);

View File

@ -58,7 +58,7 @@
>清空</TMagicButton
>
</div>
<slot name="add-button" :trigger="newHandler"></slot>
<slot name="add-button"></slot>
</div>
<div class="bottom" style="text-align: right" v-if="config.pagination">
@ -80,16 +80,15 @@
</template>
<script setup lang="ts">
import { computed, ref, useTemplateRef, watch } from 'vue';
import { computed, ref, useTemplateRef } from 'vue';
import { FullScreen } from '@element-plus/icons-vue';
import { TMagicButton, TMagicPagination, TMagicTable, TMagicTooltip, TMagicUpload, useZIndex } from '@tmagic/design';
import { TMagicButton, TMagicPagination, TMagicTable, TMagicTooltip, TMagicUpload } from '@tmagic/design';
import type { SortProp } from '../schema';
import { sortChange } from '../utils/form';
import type { SortProp } from '../../schema';
import { sortChange } from '../../utils/form';
import type { TableProps } from './type';
import { useAdd } from './useAdd';
import { useFullscreen } from './useFullscreen';
import { useImport } from './useImport';
import { usePagination } from './usePagination';
@ -109,7 +108,7 @@ const props = withDefaults(defineProps<TableProps>(), {
isCompare: false,
});
const emit = defineEmits(['change', 'select', 'addDiffCount']);
const emit = defineEmits(['change', 'select', 'addDiffCount', 'add']);
const modelName = computed(() => props.name || props.config.name || '');
const tMagicTableRef = useTemplateRef<InstanceType<typeof TMagicTable>>('tMagicTable');
@ -119,22 +118,13 @@ const { pageSize, currentPage, paginationData, handleSizeChange, handleCurrentCh
modelName,
);
const { nextZIndex } = useZIndex();
const updateKey = ref(1);
const fullscreenZIndex = ref(nextZIndex());
const { newHandler } = useAdd(props, emit);
const { columns } = useTableColumns(props, emit, currentPage, pageSize, modelName);
useSortable(props, emit, tMagicTableRef, modelName, updateKey);
const { isFullscreen, toggleFullscreen } = useFullscreen();
const { isFullscreen, fullscreenZIndex, toggleFullscreen } = useFullscreen();
watch(isFullscreen, (value) => {
if (value) {
fullscreenZIndex.value = nextZIndex();
}
});
const { importable, excelHandler, clearHandler } = useImport(props, emit, newHandler);
const { importable, excelHandler, clearHandler } = useImport(props, emit);
const { selectHandle, toggleRowSelection } = useSelection(props, emit, tMagicTableRef);
const data = computed(() => (props.config.pagination ? paginationData.value : props.model[modelName.value]));

View File

@ -0,0 +1,31 @@
import { ref, watch } from 'vue';
import { useZIndex } from '@tmagic/design';
export const useFullscreen = () => {
const { nextZIndex } = useZIndex();
const fullscreenZIndex = ref(nextZIndex());
const isFullscreen = ref(false);
const toggleFullscreen = () => {
if (isFullscreen.value) {
isFullscreen.value = false;
} else {
isFullscreen.value = true;
}
};
watch(isFullscreen, (value) => {
if (value) {
fullscreenZIndex.value = nextZIndex();
}
});
return {
isFullscreen,
fullscreenZIndex,
toggleFullscreen,
};
};

View File

@ -8,8 +8,7 @@ import type { TableProps } from './type';
export const useImport = (
props: TableProps,
emit: (event: 'select' | 'change' | 'addDiffCount', ...args: any[]) => void,
newHandler: (row: any) => void,
emit: (event: 'select' | 'change' | 'addDiffCount' | 'add', ...args: any[]) => void,
) => {
const mForm = inject<FormState | undefined>('mForm');
const modelName = computed(() => props.name || props.config.name || '');
@ -41,9 +40,7 @@ export const useImport = (
pdata.SheetNames.forEach((sheetName: string) => {
const arr = (globalThis as any).XLSX.utils.sheet_to_json(pdata.Sheets[sheetName], { header: 1 });
if (arr?.[0]) {
arr.forEach((row: any) => {
newHandler(row);
});
emit('add', arr);
}
setTimeout(() => {
excelBtn.value?.clearFiles();

View File

@ -1,6 +1,6 @@
import { computed, type Ref, ref } from 'vue';
import { getDataByPage } from '../utils/form';
import { getDataByPage } from '../../utils/form';
import type { TableProps } from './type';

View File

@ -4,7 +4,7 @@ import type { default as SortableType, SortableEvent } from 'sortablejs';
import { type TMagicTable } from '@tmagic/design';
import type { FormState } from '@tmagic/form-schema';
import { sortArray } from '../utils/form';
import { sortArray } from '../../utils/form';
import type { TableProps } from './type';

View File

@ -5,9 +5,9 @@ import { cloneDeep } from 'lodash-es';
import { type TableColumnOptions, TMagicIcon, TMagicTooltip } from '@tmagic/design';
import type { FormItemConfig, FormState, TableColumnConfig } from '@tmagic/form-schema';
import Container from '../containers/Container.vue';
import type { ContainerChangeEventData } from '../schema';
import { display as displayFunc, getDataByPage, sortArray } from '../utils/form';
import type { ContainerChangeEventData } from '../../schema';
import { display as displayFunc, getDataByPage, sortArray } from '../../utils/form';
import Container from '../Container.vue';
import ActionsColumn from './ActionsColumn.vue';
import SortColumn from './SortColumn.vue';
@ -187,7 +187,7 @@ export const useTableColumns = (
columns.push({
props: {
prop: column.name,
label: column.label,
label: column.label || column.text,
width: column.width,
sortable: column.sortable,
sortOrders: ['ascending', 'descending'],
@ -223,7 +223,10 @@ export const useTableColumns = (
gap: '5px',
},
},
[h('span', column.label), h(TMagicIcon, {}, { default: () => h(WarningFilled) })],
[
h('span', column.label || column.text),
h(TMagicIcon, {}, { default: () => h(WarningFilled) }),
],
),
content: () =>
h('div', {

View File

@ -32,9 +32,9 @@ export { default as MFlexLayout } from './containers/FlexLayout.vue';
export { default as MPanel } from './containers/Panel.vue';
export { default as MRow } from './containers/Row.vue';
export { default as MTabs } from './containers/Tabs.vue';
export { default as MTable } from './containers/TableGroupList.vue';
export { default as MGroupList } from './containers/TableGroupList.vue';
export { default as MTableGroupList } from './containers/TableGroupList.vue';
export { default as MTable } from './containers/table-group-list/TableGroupList.vue';
export { default as MGroupList } from './containers/table-group-list/TableGroupList.vue';
export { default as MTableGroupList } from './containers/table-group-list/TableGroupList.vue';
export { default as MText } from './fields/Text.vue';
export { default as MNumber } from './fields/Number.vue';
export { default as MNumberRange } from './fields/NumberRange.vue';

View File

@ -24,7 +24,7 @@ import FlexLayout from './containers/FlexLayout.vue';
import Panel from './containers/Panel.vue';
import Row from './containers/Row.vue';
import MStep from './containers/Step.vue';
import TableGroupList from './containers/TableGroupList.vue';
import TableGroupList from './containers/table-group-list/TableGroupList.vue';
import Tabs from './containers/Tabs.vue';
import Cascader from './fields/Cascader.vue';
import Checkbox from './fields/Checkbox.vue';

View File

@ -1,18 +0,0 @@
import { ref } from 'vue';
export const useFullscreen = () => {
const isFullscreen = ref(false);
const toggleFullscreen = () => {
if (isFullscreen.value) {
isFullscreen.value = false;
} else {
isFullscreen.value = true;
}
};
return {
isFullscreen,
toggleFullscreen,
};
};

View File

@ -1,5 +1,5 @@
{
"version": "1.7.11",
"version": "1.7.12",
"name": "@tmagic/schema",
"type": "module",
"sideEffects": false,

View File

@ -1,5 +1,5 @@
{
"version": "1.7.11",
"version": "1.7.12",
"name": "@tmagic/stage",
"type": "module",
"sideEffects": false,

View File

@ -1,5 +1,5 @@
{
"version": "1.7.11",
"version": "1.7.12",
"name": "@tmagic/table",
"type": "module",
"sideEffects": [

View File

@ -1,5 +1,5 @@
{
"version": "1.7.11",
"version": "1.7.12",
"name": "@tmagic/tdesign-vue-next-adapter",
"type": "module",
"sideEffects": false,

View File

@ -1,5 +1,5 @@
{
"version": "1.7.11",
"version": "1.7.12",
"name": "@tmagic/utils",
"type": "module",
"sideEffects": false,

View File

@ -1,6 +1,6 @@
{
"name": "tmagic-playground",
"version": "1.7.11",
"version": "1.7.12",
"type": "module",
"private": true,
"scripts": {
@ -12,11 +12,11 @@
},
"dependencies": {
"@element-plus/icons-vue": "^2.3.2",
"@tmagic/core": "1.7.11",
"@tmagic/design": "1.7.11",
"@tmagic/editor": "1.7.11",
"@tmagic/element-plus-adapter": "1.7.11",
"@tmagic/tdesign-vue-next-adapter": "1.7.11",
"@tmagic/core": "1.7.12",
"@tmagic/design": "1.7.12",
"@tmagic/editor": "1.7.12",
"@tmagic/element-plus-adapter": "1.7.12",
"@tmagic/tdesign-vue-next-adapter": "1.7.12",
"@tmagic/tmagic-form-runtime": "1.1.3",
"element-plus": "^2.11.8",
"lodash-es": "^4.17.21",

276
pnpm-lock.yaml generated
View File

@ -554,23 +554,23 @@ importers:
specifier: ^2.3.2
version: 2.3.2(vue@3.5.33(typescript@6.0.3))
'@tmagic/core':
specifier: 1.7.10
version: 1.7.10(typescript@6.0.3)
specifier: 1.7.12
version: 1.7.12(typescript@6.0.3)
'@tmagic/design':
specifier: 1.7.10
version: 1.7.10(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))
specifier: 1.7.12
version: 1.7.12(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))
'@tmagic/editor':
specifier: 1.7.10
version: 1.7.10(@tmagic/core@1.7.10(typescript@6.0.3))(@tmagic/form-schema@1.7.10(typescript@6.0.3))(@tmagic/schema@1.7.10(typescript@6.0.3))(monaco-editor@0.55.1)(type-fest@5.2.0)(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))
specifier: 1.7.12
version: 1.7.12(@tmagic/core@1.7.12(typescript@6.0.3))(@tmagic/form-schema@1.7.12(typescript@6.0.3))(@tmagic/schema@1.7.12(typescript@6.0.3))(monaco-editor@0.55.1)(type-fest@5.2.0)(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))
'@tmagic/element-plus-adapter':
specifier: 1.7.10
version: 1.7.10(@tmagic/design@1.7.10(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(element-plus@2.11.8(@vue/composition-api@1.7.2(vue@3.5.33(typescript@6.0.3)))(vue@3.5.33(typescript@6.0.3)))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))
specifier: 1.7.12
version: 1.7.12(@tmagic/design@1.7.12(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(element-plus@2.11.8(@vue/composition-api@1.7.2(vue@3.5.33(typescript@6.0.3)))(vue@3.5.33(typescript@6.0.3)))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))
'@tmagic/tdesign-vue-next-adapter':
specifier: 1.7.10
version: 1.7.10(@tmagic/design@1.7.10(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(tdesign-vue-next@1.17.3(vue@3.5.33(typescript@6.0.3)))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))
specifier: 1.7.12
version: 1.7.12(@tmagic/design@1.7.12(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(tdesign-vue-next@1.17.3(vue@3.5.33(typescript@6.0.3)))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))
'@tmagic/tmagic-form-runtime':
specifier: 1.1.3
version: 1.1.3(@tmagic/core@1.7.10(typescript@6.0.3))(@tmagic/editor@1.7.10(@tmagic/core@1.7.10(typescript@6.0.3))(@tmagic/form-schema@1.7.10(typescript@6.0.3))(@tmagic/schema@1.7.10(typescript@6.0.3))(monaco-editor@0.55.1)(type-fest@5.2.0)(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(element-plus@2.11.8(@vue/composition-api@1.7.2(vue@3.5.33(typescript@6.0.3)))(vue@3.5.33(typescript@6.0.3)))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))
version: 1.1.3(@tmagic/core@1.7.12(typescript@6.0.3))(@tmagic/editor@1.7.12(@tmagic/core@1.7.12(typescript@6.0.3))(@tmagic/form-schema@1.7.12(typescript@6.0.3))(@tmagic/schema@1.7.12(typescript@6.0.3))(monaco-editor@0.55.1)(type-fest@5.2.0)(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(element-plus@2.11.8(@vue/composition-api@1.7.2(vue@3.5.33(typescript@6.0.3)))(vue@3.5.33(typescript@6.0.3)))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))
element-plus:
specifier: ^2.11.8
version: 2.11.8(@vue/composition-api@1.7.2(vue@3.5.33(typescript@6.0.3)))(vue@3.5.33(typescript@6.0.3))
@ -910,14 +910,14 @@ importers:
runtime/react:
dependencies:
'@tmagic/core':
specifier: 1.7.10
version: 1.7.10(typescript@6.0.3)
specifier: 1.7.12
version: 1.7.12(typescript@6.0.3)
'@tmagic/react-runtime-help':
specifier: 0.2.2
version: 0.2.2(@tmagic/core@1.7.10(typescript@6.0.3))(@tmagic/stage@1.7.10(@tmagic/core@1.7.10(typescript@6.0.3))(typescript@6.0.3))(lodash-es@4.17.21)(react@18.3.1)(typescript@6.0.3)
version: 0.2.2(@tmagic/core@1.7.12(typescript@6.0.3))(@tmagic/stage@1.7.12(@tmagic/core@1.7.12(typescript@6.0.3))(typescript@6.0.3))(lodash-es@4.17.21)(react@18.3.1)(typescript@6.0.3)
'@tmagic/stage':
specifier: 1.7.10
version: 1.7.10(@tmagic/core@1.7.10(typescript@6.0.3))(typescript@6.0.3)
specifier: 1.7.12
version: 1.7.12(@tmagic/core@1.7.12(typescript@6.0.3))(typescript@6.0.3)
axios:
specifier: ^1.13.2
version: 1.13.2
@ -932,8 +932,8 @@ importers:
version: 18.3.1(react@18.3.1)
devDependencies:
'@tmagic/cli':
specifier: 1.7.10
version: 1.7.10(typescript@6.0.3)
specifier: 1.7.12
version: 1.7.12(typescript@6.0.3)
'@types/fs-extra':
specifier: ^11.0.4
version: 11.0.4
@ -1008,14 +1008,14 @@ importers:
runtime/vue:
dependencies:
'@tmagic/core':
specifier: 1.7.10
version: 1.7.10(typescript@6.0.3)
specifier: 1.7.12
version: 1.7.12(typescript@6.0.3)
'@tmagic/stage':
specifier: 1.7.10
version: 1.7.10(@tmagic/core@1.7.10(typescript@6.0.3))(typescript@6.0.3)
specifier: 1.7.12
version: 1.7.12(@tmagic/core@1.7.12(typescript@6.0.3))(typescript@6.0.3)
'@tmagic/vue-runtime-help':
specifier: ^2.0.0
version: 2.0.0(@tmagic/core@1.7.10(typescript@6.0.3))(@tmagic/stage@1.7.10(@tmagic/core@1.7.10(typescript@6.0.3))(typescript@6.0.3))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))
specifier: ^2.0.1
version: 2.0.2(@tmagic/core@1.7.12(typescript@6.0.3))(@tmagic/stage@1.7.12(@tmagic/core@1.7.12(typescript@6.0.3))(typescript@6.0.3))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))
axios:
specifier: ^1.13.2
version: 1.13.2
@ -1024,8 +1024,8 @@ importers:
version: 3.5.33(typescript@6.0.3)
devDependencies:
'@tmagic/cli':
specifier: 1.7.10
version: 1.7.10(typescript@6.0.3)
specifier: 1.7.12
version: 1.7.12(typescript@6.0.3)
'@types/fs-extra':
specifier: ^11.0.4
version: 11.0.4
@ -2825,12 +2825,12 @@ packages:
'@sxzz/popperjs-es@2.11.7':
resolution: {integrity: sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==}
'@tmagic/cli@1.7.10':
resolution: {integrity: sha512-GsFUgkfqd8NDSBvXAvTmD/mT+bNVChgv4FbhIJ5ZOkR8QgXuPxHu9Nb1PX9Nur0/4PHdZmkRAkD9SdirCP69dg==}
'@tmagic/cli@1.7.12':
resolution: {integrity: sha512-BBh8+FIjCqIWGGXdvc+/4e0ubB58pMWb1C51bfxxIH03x4OWx7jT7Z+c9HSwne5P+j26/g/bv589yLuvdsZv4g==}
engines: {node: '>=18'}
hasBin: true
peerDependencies:
typescript: ^6.0.2
typescript: ^6.0.3
peerDependenciesMeta:
typescript:
optional: true
@ -2844,11 +2844,11 @@ packages:
typescript:
optional: true
'@tmagic/core@1.7.10':
resolution: {integrity: sha512-7E8IFGJqdOArWuAnTb464GbAQWJtqCu3uPF0fXRGGLQ+NZbd4EG8HaLw/JsmKC+YxA4g1yr7sPYjPrP8YIPhwQ==}
'@tmagic/core@1.7.12':
resolution: {integrity: sha512-pKW9b23ViplhO5OydtvMCGms+qnfqKWHXBb/JxSk7SJxiCN2WgaD8e04OzGskVryg8+ZxA9B0mKIYMD3T3rDWQ==}
engines: {node: '>=18'}
peerDependencies:
typescript: ^6.0.2
typescript: ^6.0.3
peerDependenciesMeta:
typescript:
optional: true
@ -2872,12 +2872,12 @@ packages:
typescript:
optional: true
'@tmagic/data-source@1.7.10':
resolution: {integrity: sha512-Lq+I+jPq/lAxQtBCp0gF/oKJU5canZhxPqzspiZPE/pZSuP9amgQD766yFdSR6b21UcYCma1FS2KWHZXUO3EsA==}
'@tmagic/data-source@1.7.12':
resolution: {integrity: sha512-+2RMDuwxzmEutMq1H6fiRRC1pdegkgxHw4m4HOq8PerfG2ikklGZvgbmWPcDWpEya9lbNCPdmmtcGtSM72HZHw==}
engines: {node: '>=18'}
peerDependencies:
'@tmagic/core': 1.7.10
typescript: ^6.0.2
'@tmagic/core': 1.7.12
typescript: ^6.0.3
peerDependenciesMeta:
typescript:
optional: true
@ -2903,13 +2903,13 @@ packages:
typescript:
optional: true
'@tmagic/dep@1.7.10':
resolution: {integrity: sha512-PRiBHduxoofFVBLDKHuKnXrAbfO+JryVp9xujIfPT0E0ifXs24dkjF1DKJIUjoa24Ae79tLMFuwLXvQg4eXpsA==}
'@tmagic/dep@1.7.12':
resolution: {integrity: sha512-BQKlynajTTbcWylNDXrKkvXPXmomkSaDcDK/BBQANPt6tmwDNyBfKNMmvHajOQ9T8HFZ7MK1zX5EDadZDIz3AA==}
engines: {node: '>=18'}
peerDependencies:
'@tmagic/schema': 1.7.10
'@tmagic/utils': 1.7.10
typescript: ^6.0.2
'@tmagic/schema': 1.7.12
'@tmagic/utils': 1.7.12
typescript: ^6.0.3
peerDependenciesMeta:
typescript:
optional: true
@ -2925,12 +2925,12 @@ packages:
typescript:
optional: true
'@tmagic/design@1.7.10':
resolution: {integrity: sha512-DeGwca39biyyhdQ3uz1b8W5BXy2mJnfC2YhsuWLzOKlIjNYmMih1agNosJwtgMJMZeqZh1rBjPycQ4O87qi47A==}
'@tmagic/design@1.7.12':
resolution: {integrity: sha512-LSTocxwtN+iIPZRBrAO5DZuERcL0WhzZnJGAVAadi5oB80sYZOrfon/7jX1NIQ6RaHpi3uMGKe0Y1YGvFjQKjw==}
engines: {node: '>=18'}
peerDependencies:
typescript: ^6.0.2
vue: ^3.5.24
typescript: ^6.0.3
vue: ^3.5.33
peerDependenciesMeta:
typescript:
optional: true
@ -2945,15 +2945,15 @@ packages:
typescript:
optional: true
'@tmagic/editor@1.7.10':
resolution: {integrity: sha512-CuYBroXZuBx0L91ZsmpKuDrFaWpg+nRme1oxZwytCMjNqF8XBDa29tSolrTQVQbxAYfRrL9T2jT00WuskCELHA==}
'@tmagic/editor@1.7.12':
resolution: {integrity: sha512-Xte6DgzbNXr5PlcHZpjIfj9gMGnlyitKFfZ//xV/qX/z5UfdmpOZ6wAN7LfQSHJ8iVGys6msdnWlQrIeiEMcAQ==}
engines: {node: '>=18'}
peerDependencies:
'@tmagic/core': 1.7.10
'@tmagic/core': 1.7.12
monaco-editor: '^0.55.1 '
type-fest: ^5.2.0
typescript: ^6.0.2
vue: ^3.5.24
typescript: ^6.0.3
vue: ^3.5.33
peerDependenciesMeta:
type-fest:
optional: true
@ -2972,23 +2972,23 @@ packages:
typescript:
optional: true
'@tmagic/element-plus-adapter@1.7.10':
resolution: {integrity: sha512-wG6nvZ2BVgzoaH3DLXEG+ANe+a8shbejWMmaR2+FrMB7a5Rx2+ReL2uslorDw+CXQessSHH0BhoIBNjodXGBBw==}
'@tmagic/element-plus-adapter@1.7.12':
resolution: {integrity: sha512-KpErVO1w2zVKzJfeNPkaSHFWVzaWps+MFTBZp73Cj5omPYm4bvgHJCpa0Abu718eAA+gIiLW/v1RpN47jT+E+A==}
engines: {node: '>=18'}
peerDependencies:
'@tmagic/design': 1.7.10
'@tmagic/design': 1.7.12
element-plus: '>=2.9.0'
typescript: ^6.0.2
vue: ^3.5.24
typescript: ^6.0.3
vue: ^3.5.33
peerDependenciesMeta:
typescript:
optional: true
'@tmagic/form-schema@1.7.10':
resolution: {integrity: sha512-HvIE+B93twPEma056L1ngvRr0Gk6TjzW1enEYHksQm8tri3bKjv66xy8Jk6ubHK1xL/oAR35HVrJeEIDY5/adQ==}
'@tmagic/form-schema@1.7.12':
resolution: {integrity: sha512-QgxYKoKeNyeP4IlVezD4yrRjSUTd9UZCFfTQR4hKg+wU6mzwuU1yDkCE3FAaz4u4Z/+OME/IgwsKxDyXZUha+w==}
engines: {node: '>=18'}
peerDependencies:
typescript: ^6.0.2
typescript: ^6.0.3
peerDependenciesMeta:
typescript:
optional: true
@ -3002,15 +3002,15 @@ packages:
typescript:
optional: true
'@tmagic/form@1.7.10':
resolution: {integrity: sha512-A0fXkwhCOFCXW6wtzRIgOMAUww0+shPOwOfKDAKkv6OI2Vm45OzO/DyVf4sz9lwyZ7LOkpUNI85r+HYLgli+oQ==}
'@tmagic/form@1.7.12':
resolution: {integrity: sha512-B0rB9cEjWCQuA/v+AdPZfctGhJ6FXjGXzPXVIMKgE7ivwz36dOs6LQkSQCMaNFdBX6PmulEvYfXPh41POLSoTA==}
engines: {node: '>=18'}
peerDependencies:
'@tmagic/design': 1.7.10
'@tmagic/form-schema': 1.7.10
'@tmagic/utils': 1.7.10
typescript: ^6.0.2
vue: ^3.5.24
'@tmagic/design': 1.7.12
'@tmagic/form-schema': 1.7.12
'@tmagic/utils': 1.7.12
typescript: ^6.0.3
vue: ^3.5.33
peerDependenciesMeta:
typescript:
optional: true
@ -3054,11 +3054,11 @@ packages:
typescript:
optional: true
'@tmagic/schema@1.7.10':
resolution: {integrity: sha512-oBFcC/sCJOGTlBCH01bSW73WVIcXcv3nefJwE/JdEsg5fstAIwTre2WBRNuksGjOYS2GGTxMJA1/JeK0h2pIaA==}
'@tmagic/schema@1.7.12':
resolution: {integrity: sha512-hEdYELcau4yodi3jVf7dX8c3aA5Bisyw5yXp+NoHF4yDxQeS3PNMxAOc57wPwjQViEEO60YWpfVL+w0tl8Tkiw==}
engines: {node: '>=18'}
peerDependencies:
typescript: ^6.0.2
typescript: ^6.0.3
peerDependenciesMeta:
typescript:
optional: true
@ -3082,12 +3082,12 @@ packages:
typescript:
optional: true
'@tmagic/stage@1.7.10':
resolution: {integrity: sha512-DyzVCg3DB48vs2WKbXOwWvL1XhxbUe010HkQJKZDzg89SCgitCx3TCbaiBC3v6ZN+0yp7hIKC8wpMxvCVqPkhQ==}
'@tmagic/stage@1.7.12':
resolution: {integrity: sha512-XHlnLGywchQor7BuxQYBt7E+WpQ/dEWRMIyNoKG6NE3XqfUFyqrAlz2pxdp8esz3rUz/tKZUFP0FfH5/F8N3Ig==}
engines: {node: '>=18'}
peerDependencies:
'@tmagic/core': 1.7.10
typescript: ^6.0.2
'@tmagic/core': 1.7.12
typescript: ^6.0.3
peerDependenciesMeta:
typescript:
optional: true
@ -3102,15 +3102,15 @@ packages:
typescript:
optional: true
'@tmagic/table@1.7.10':
resolution: {integrity: sha512-lEQltKMyREFYuW6NPzJP2ok2b3DTmbgBKz+qpRBZw74Bk4YNyk2Q0uxBxYlwJ/3HLgGXXcX1/MWV6G52LK4EYQ==}
'@tmagic/table@1.7.12':
resolution: {integrity: sha512-qWX3WR/QmVJpJ8RB1WmW+2Uh1wdDd0el8hBv8J8+Z8kxkVQneZZmCUx+E3i0RQ7fjMQ3SKJHARA54SWeSxtOsw==}
engines: {node: '>=18'}
peerDependencies:
'@tmagic/design': 1.7.10
'@tmagic/form': 1.7.10
'@tmagic/utils': 1.7.10
typescript: ^6.0.2
vue: ^3.5.24
'@tmagic/design': 1.7.12
'@tmagic/form': 1.7.12
'@tmagic/utils': 1.7.12
typescript: ^6.0.3
vue: ^3.5.33
peerDependenciesMeta:
typescript:
optional: true
@ -3127,14 +3127,14 @@ packages:
typescript:
optional: true
'@tmagic/tdesign-vue-next-adapter@1.7.10':
resolution: {integrity: sha512-LCrswteeEnJVB1VtQ/lTIK2TnioF0/33dexOLRayKB5MLeNfofkEVzfz5mvC7QlB0/b94eXYSLcTudsleBZV9A==}
'@tmagic/tdesign-vue-next-adapter@1.7.12':
resolution: {integrity: sha512-EobPwBA6zW/DmnLcZZs3l/jyYV6xd+ajI5dYw+QO9RTERfKoqzwy8h0jEfDouVjXLJiM3lldaNOEuZ2nTglNQA==}
engines: {node: '>=18'}
peerDependencies:
'@tmagic/design': 1.7.10
'@tmagic/design': 1.7.12
tdesign-vue-next: ^1.17.1
typescript: ^6.0.2
vue: ^3.5.24
typescript: ^6.0.3
vue: ^3.5.33
peerDependenciesMeta:
typescript:
optional: true
@ -3164,12 +3164,12 @@ packages:
typescript:
optional: true
'@tmagic/utils@1.7.10':
resolution: {integrity: sha512-Smnls39Iyj9nNBNRerU7WnztNg6GRStbXzeU8/yUpyanHdCfsG3c+lpy6OyAdOWSVaYvvjin60e3ntc5jvflnQ==}
'@tmagic/utils@1.7.12':
resolution: {integrity: sha512-D30E9XYWeB48ph0nQJQkHT8KMMZ08X56lzgK6bXX3/+hGnAvpv6dTpp6BUMj8EAJqWtgKOJYlI02dH4TIJw1cw==}
engines: {node: '>=18'}
peerDependencies:
'@tmagic/schema': 1.7.10
typescript: ^6.0.2
'@tmagic/schema': 1.7.12
typescript: ^6.0.3
peerDependenciesMeta:
typescript:
optional: true
@ -3184,13 +3184,13 @@ packages:
typescript:
optional: true
'@tmagic/vue-runtime-help@2.0.0':
resolution: {integrity: sha512-JKz7V1ikY43FIFHoiwisyAo+L/V4C/h30hI10aPSmCgUSXU/ViUhW5SdAv7wHZWBZaEgTy0CmseB7IzNLEkGUQ==}
'@tmagic/vue-runtime-help@2.0.2':
resolution: {integrity: sha512-CIS9d4w/YwBb7BDGubdMuN7scrODw52GuLcKtu+4oxcLzrF0usaS9s6F849qKlxAU65E+kjpHWMEa673KvcwOw==}
engines: {node: '>=18'}
peerDependencies:
'@tmagic/core': '>=1.7.0'
'@tmagic/stage': '>=1.7.0'
typescript: ^5.9.3
typescript: ^6.0.3
vue: '>=3.5.0'
peerDependenciesMeta:
'@tmagic/core':
@ -8638,7 +8638,7 @@ snapshots:
'@sxzz/popperjs-es@2.11.7': {}
'@tmagic/cli@1.7.10(typescript@6.0.3)':
'@tmagic/cli@1.7.12(typescript@6.0.3)':
dependencies:
cac: 6.7.14
chokidar: 3.6.0
@ -8662,12 +8662,12 @@ snapshots:
optionalDependencies:
typescript: 6.0.3
'@tmagic/core@1.7.10(typescript@6.0.3)':
'@tmagic/core@1.7.12(typescript@6.0.3)':
dependencies:
'@tmagic/data-source': 1.7.10(@tmagic/core@1.7.10(typescript@6.0.3))(typescript@6.0.3)
'@tmagic/dep': 1.7.10(@tmagic/schema@1.7.10(typescript@6.0.3))(@tmagic/utils@1.7.10(@tmagic/schema@1.7.10(typescript@6.0.3))(typescript@6.0.3))(typescript@6.0.3)
'@tmagic/schema': 1.7.10(typescript@6.0.3)
'@tmagic/utils': 1.7.10(@tmagic/schema@1.7.10(typescript@6.0.3))(typescript@6.0.3)
'@tmagic/data-source': 1.7.12(@tmagic/core@1.7.12(typescript@6.0.3))(typescript@6.0.3)
'@tmagic/dep': 1.7.12(@tmagic/schema@1.7.12(typescript@6.0.3))(@tmagic/utils@1.7.12(@tmagic/schema@1.7.12(typescript@6.0.3))(typescript@6.0.3))(typescript@6.0.3)
'@tmagic/schema': 1.7.12(typescript@6.0.3)
'@tmagic/utils': 1.7.12(@tmagic/schema@1.7.12(typescript@6.0.3))(typescript@6.0.3)
events: 3.3.0
lodash-es: 4.17.21
optionalDependencies:
@ -8693,9 +8693,9 @@ snapshots:
optionalDependencies:
typescript: 6.0.3
'@tmagic/data-source@1.7.10(@tmagic/core@1.7.10(typescript@6.0.3))(typescript@6.0.3)':
'@tmagic/data-source@1.7.12(@tmagic/core@1.7.12(typescript@6.0.3))(typescript@6.0.3)':
dependencies:
'@tmagic/core': 1.7.10(typescript@6.0.3)
'@tmagic/core': 1.7.12(typescript@6.0.3)
deep-state-observer: 5.5.14
events: 3.3.0
lodash-es: 4.17.21
@ -8718,10 +8718,10 @@ snapshots:
optionalDependencies:
typescript: 6.0.3
'@tmagic/dep@1.7.10(@tmagic/schema@1.7.10(typescript@6.0.3))(@tmagic/utils@1.7.10(@tmagic/schema@1.7.10(typescript@6.0.3))(typescript@6.0.3))(typescript@6.0.3)':
'@tmagic/dep@1.7.12(@tmagic/schema@1.7.12(typescript@6.0.3))(@tmagic/utils@1.7.12(@tmagic/schema@1.7.12(typescript@6.0.3))(typescript@6.0.3))(typescript@6.0.3)':
dependencies:
'@tmagic/schema': 1.7.10(typescript@6.0.3)
'@tmagic/utils': 1.7.10(@tmagic/schema@1.7.10(typescript@6.0.3))(typescript@6.0.3)
'@tmagic/schema': 1.7.12(typescript@6.0.3)
'@tmagic/utils': 1.7.12(@tmagic/schema@1.7.12(typescript@6.0.3))(typescript@6.0.3)
optionalDependencies:
typescript: 6.0.3
@ -8732,7 +8732,7 @@ snapshots:
optionalDependencies:
typescript: 6.0.3
'@tmagic/design@1.7.10(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))':
'@tmagic/design@1.7.12(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))':
dependencies:
'@popperjs/core': 2.11.8
vue: 3.5.33(typescript@6.0.3)
@ -8746,15 +8746,15 @@ snapshots:
optionalDependencies:
typescript: 6.0.3
'@tmagic/editor@1.7.10(@tmagic/core@1.7.10(typescript@6.0.3))(@tmagic/form-schema@1.7.10(typescript@6.0.3))(@tmagic/schema@1.7.10(typescript@6.0.3))(monaco-editor@0.55.1)(type-fest@5.2.0)(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))':
'@tmagic/editor@1.7.12(@tmagic/core@1.7.12(typescript@6.0.3))(@tmagic/form-schema@1.7.12(typescript@6.0.3))(@tmagic/schema@1.7.12(typescript@6.0.3))(monaco-editor@0.55.1)(type-fest@5.2.0)(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))':
dependencies:
'@element-plus/icons-vue': 2.3.2(vue@3.5.33(typescript@6.0.3))
'@tmagic/core': 1.7.10(typescript@6.0.3)
'@tmagic/design': 1.7.10(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))
'@tmagic/form': 1.7.10(@tmagic/design@1.7.10(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(@tmagic/form-schema@1.7.10(typescript@6.0.3))(@tmagic/utils@1.7.10(@tmagic/schema@1.7.10(typescript@6.0.3))(typescript@6.0.3))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))
'@tmagic/stage': 1.7.10(@tmagic/core@1.7.10(typescript@6.0.3))(typescript@6.0.3)
'@tmagic/table': 1.7.10(@tmagic/design@1.7.10(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(@tmagic/form@1.7.10(@tmagic/design@1.7.10(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(@tmagic/form-schema@1.7.10(typescript@6.0.3))(@tmagic/utils@1.7.10(@tmagic/schema@1.7.10(typescript@6.0.3))(typescript@6.0.3))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(@tmagic/utils@1.7.10(@tmagic/schema@1.7.10(typescript@6.0.3))(typescript@6.0.3))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))
'@tmagic/utils': 1.7.10(@tmagic/schema@1.7.10(typescript@6.0.3))(typescript@6.0.3)
'@tmagic/core': 1.7.12(typescript@6.0.3)
'@tmagic/design': 1.7.12(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))
'@tmagic/form': 1.7.12(@tmagic/design@1.7.12(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(@tmagic/form-schema@1.7.12(typescript@6.0.3))(@tmagic/utils@1.7.12(@tmagic/schema@1.7.12(typescript@6.0.3))(typescript@6.0.3))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))
'@tmagic/stage': 1.7.12(@tmagic/core@1.7.12(typescript@6.0.3))(typescript@6.0.3)
'@tmagic/table': 1.7.12(@tmagic/design@1.7.12(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(@tmagic/form@1.7.12(@tmagic/design@1.7.12(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(@tmagic/form-schema@1.7.12(typescript@6.0.3))(@tmagic/utils@1.7.12(@tmagic/schema@1.7.12(typescript@6.0.3))(typescript@6.0.3))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(@tmagic/utils@1.7.12(@tmagic/schema@1.7.12(typescript@6.0.3))(typescript@6.0.3))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))
'@tmagic/utils': 1.7.12(@tmagic/schema@1.7.12(typescript@6.0.3))(typescript@6.0.3)
buffer: 6.0.3
deep-object-diff: 1.1.9
emmet-monaco-es: 5.7.0(monaco-editor@0.55.1)
@ -8801,17 +8801,17 @@ snapshots:
- '@tmagic/form-schema'
- '@tmagic/schema'
'@tmagic/element-plus-adapter@1.7.10(@tmagic/design@1.7.10(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(element-plus@2.11.8(@vue/composition-api@1.7.2(vue@3.5.33(typescript@6.0.3)))(vue@3.5.33(typescript@6.0.3)))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))':
'@tmagic/element-plus-adapter@1.7.12(@tmagic/design@1.7.12(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(element-plus@2.11.8(@vue/composition-api@1.7.2(vue@3.5.33(typescript@6.0.3)))(vue@3.5.33(typescript@6.0.3)))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))':
dependencies:
'@tmagic/design': 1.7.10(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))
'@tmagic/design': 1.7.12(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))
element-plus: 2.11.8(@vue/composition-api@1.7.2(vue@3.5.33(typescript@6.0.3)))(vue@3.5.33(typescript@6.0.3))
vue: 3.5.33(typescript@6.0.3)
optionalDependencies:
typescript: 6.0.3
'@tmagic/form-schema@1.7.10(typescript@6.0.3)':
'@tmagic/form-schema@1.7.12(typescript@6.0.3)':
dependencies:
'@tmagic/schema': 1.7.10(typescript@6.0.3)
'@tmagic/schema': 1.7.12(typescript@6.0.3)
optionalDependencies:
typescript: 6.0.3
@ -8821,13 +8821,13 @@ snapshots:
optionalDependencies:
typescript: 6.0.3
'@tmagic/form@1.7.10(@tmagic/design@1.7.10(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(@tmagic/form-schema@1.7.10(typescript@6.0.3))(@tmagic/utils@1.7.10(@tmagic/schema@1.7.10(typescript@6.0.3))(typescript@6.0.3))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))':
'@tmagic/form@1.7.12(@tmagic/design@1.7.12(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(@tmagic/form-schema@1.7.12(typescript@6.0.3))(@tmagic/utils@1.7.12(@tmagic/schema@1.7.12(typescript@6.0.3))(typescript@6.0.3))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))':
dependencies:
'@element-plus/icons-vue': 2.3.2(vue@3.5.33(typescript@6.0.3))
'@popperjs/core': 2.11.8
'@tmagic/design': 1.7.10(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))
'@tmagic/form-schema': 1.7.10(typescript@6.0.3)
'@tmagic/utils': 1.7.10(@tmagic/schema@1.7.10(typescript@6.0.3))(typescript@6.0.3)
'@tmagic/design': 1.7.12(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))
'@tmagic/form-schema': 1.7.12(typescript@6.0.3)
'@tmagic/utils': 1.7.12(@tmagic/schema@1.7.12(typescript@6.0.3))(typescript@6.0.3)
dayjs: 1.11.19
lodash-es: 4.17.21
sortablejs: 1.15.6
@ -8849,20 +8849,20 @@ snapshots:
optionalDependencies:
typescript: 6.0.3
'@tmagic/react-runtime-help@0.2.2(@tmagic/core@1.7.10(typescript@6.0.3))(@tmagic/stage@1.7.10(@tmagic/core@1.7.10(typescript@6.0.3))(typescript@6.0.3))(lodash-es@4.17.21)(react@18.3.1)(typescript@6.0.3)':
'@tmagic/react-runtime-help@0.2.2(@tmagic/core@1.7.12(typescript@6.0.3))(@tmagic/stage@1.7.12(@tmagic/core@1.7.12(typescript@6.0.3))(typescript@6.0.3))(lodash-es@4.17.21)(react@18.3.1)(typescript@6.0.3)':
dependencies:
lodash-es: 4.17.21
react: 18.3.1
optionalDependencies:
'@tmagic/core': 1.7.10(typescript@6.0.3)
'@tmagic/stage': 1.7.10(@tmagic/core@1.7.10(typescript@6.0.3))(typescript@6.0.3)
'@tmagic/core': 1.7.12(typescript@6.0.3)
'@tmagic/stage': 1.7.12(@tmagic/core@1.7.12(typescript@6.0.3))(typescript@6.0.3)
typescript: 6.0.3
'@tmagic/schema@1.7.0(typescript@6.0.3)':
optionalDependencies:
typescript: 6.0.3
'@tmagic/schema@1.7.10(typescript@6.0.3)':
'@tmagic/schema@1.7.12(typescript@6.0.3)':
optionalDependencies:
typescript: 6.0.3
@ -8883,10 +8883,10 @@ snapshots:
optionalDependencies:
typescript: 6.0.3
'@tmagic/stage@1.7.10(@tmagic/core@1.7.10(typescript@6.0.3))(typescript@6.0.3)':
'@tmagic/stage@1.7.12(@tmagic/core@1.7.12(typescript@6.0.3))(typescript@6.0.3)':
dependencies:
'@scena/guides': 0.29.2
'@tmagic/core': 1.7.10(typescript@6.0.3)
'@tmagic/core': 1.7.12(typescript@6.0.3)
'@zumer/snapdom': 2.8.0
events: 3.3.0
keycon: 1.4.0
@ -8910,11 +8910,11 @@ snapshots:
optionalDependencies:
typescript: 6.0.3
'@tmagic/table@1.7.10(@tmagic/design@1.7.10(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(@tmagic/form@1.7.10(@tmagic/design@1.7.10(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(@tmagic/form-schema@1.7.10(typescript@6.0.3))(@tmagic/utils@1.7.10(@tmagic/schema@1.7.10(typescript@6.0.3))(typescript@6.0.3))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(@tmagic/utils@1.7.10(@tmagic/schema@1.7.10(typescript@6.0.3))(typescript@6.0.3))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))':
'@tmagic/table@1.7.12(@tmagic/design@1.7.12(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(@tmagic/form@1.7.12(@tmagic/design@1.7.12(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(@tmagic/form-schema@1.7.12(typescript@6.0.3))(@tmagic/utils@1.7.12(@tmagic/schema@1.7.12(typescript@6.0.3))(typescript@6.0.3))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(@tmagic/utils@1.7.12(@tmagic/schema@1.7.12(typescript@6.0.3))(typescript@6.0.3))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))':
dependencies:
'@tmagic/design': 1.7.10(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))
'@tmagic/form': 1.7.10(@tmagic/design@1.7.10(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(@tmagic/form-schema@1.7.10(typescript@6.0.3))(@tmagic/utils@1.7.10(@tmagic/schema@1.7.10(typescript@6.0.3))(typescript@6.0.3))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))
'@tmagic/utils': 1.7.10(@tmagic/schema@1.7.10(typescript@6.0.3))(typescript@6.0.3)
'@tmagic/design': 1.7.12(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))
'@tmagic/form': 1.7.12(@tmagic/design@1.7.12(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(@tmagic/form-schema@1.7.12(typescript@6.0.3))(@tmagic/utils@1.7.12(@tmagic/schema@1.7.12(typescript@6.0.3))(typescript@6.0.3))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))
'@tmagic/utils': 1.7.12(@tmagic/schema@1.7.12(typescript@6.0.3))(typescript@6.0.3)
lodash-es: 4.17.21
vue: 3.5.33(typescript@6.0.3)
optionalDependencies:
@ -8929,21 +8929,21 @@ snapshots:
optionalDependencies:
typescript: 6.0.3
'@tmagic/tdesign-vue-next-adapter@1.7.10(@tmagic/design@1.7.10(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(tdesign-vue-next@1.17.3(vue@3.5.33(typescript@6.0.3)))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))':
'@tmagic/tdesign-vue-next-adapter@1.7.12(@tmagic/design@1.7.12(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(tdesign-vue-next@1.17.3(vue@3.5.33(typescript@6.0.3)))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))':
dependencies:
'@tmagic/design': 1.7.10(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))
'@tmagic/design': 1.7.12(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))
tdesign-vue-next: 1.17.3(vue@3.5.33(typescript@6.0.3))
vue: 3.5.33(typescript@6.0.3)
optionalDependencies:
typescript: 6.0.3
'@tmagic/tmagic-form-runtime@1.1.3(@tmagic/core@1.7.10(typescript@6.0.3))(@tmagic/editor@1.7.10(@tmagic/core@1.7.10(typescript@6.0.3))(@tmagic/form-schema@1.7.10(typescript@6.0.3))(@tmagic/schema@1.7.10(typescript@6.0.3))(monaco-editor@0.55.1)(type-fest@5.2.0)(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(element-plus@2.11.8(@vue/composition-api@1.7.2(vue@3.5.33(typescript@6.0.3)))(vue@3.5.33(typescript@6.0.3)))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))':
'@tmagic/tmagic-form-runtime@1.1.3(@tmagic/core@1.7.12(typescript@6.0.3))(@tmagic/editor@1.7.12(@tmagic/core@1.7.12(typescript@6.0.3))(@tmagic/form-schema@1.7.12(typescript@6.0.3))(@tmagic/schema@1.7.12(typescript@6.0.3))(monaco-editor@0.55.1)(type-fest@5.2.0)(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(element-plus@2.11.8(@vue/composition-api@1.7.2(vue@3.5.33(typescript@6.0.3)))(vue@3.5.33(typescript@6.0.3)))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))':
dependencies:
'@tmagic/editor': 1.7.10(@tmagic/core@1.7.10(typescript@6.0.3))(@tmagic/form-schema@1.7.10(typescript@6.0.3))(@tmagic/schema@1.7.10(typescript@6.0.3))(monaco-editor@0.55.1)(type-fest@5.2.0)(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))
'@tmagic/editor': 1.7.12(@tmagic/core@1.7.12(typescript@6.0.3))(@tmagic/form-schema@1.7.12(typescript@6.0.3))(@tmagic/schema@1.7.12(typescript@6.0.3))(monaco-editor@0.55.1)(type-fest@5.2.0)(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))
element-plus: 2.11.8(@vue/composition-api@1.7.2(vue@3.5.33(typescript@6.0.3)))(vue@3.5.33(typescript@6.0.3))
vue: 3.5.33(typescript@6.0.3)
optionalDependencies:
'@tmagic/core': 1.7.10(typescript@6.0.3)
'@tmagic/core': 1.7.12(typescript@6.0.3)
typescript: 6.0.3
'@tmagic/utils@1.7.0(@tmagic/schema@1.7.0(typescript@6.0.3))(typescript@6.0.3)':
@ -8953,9 +8953,9 @@ snapshots:
optionalDependencies:
typescript: 6.0.3
'@tmagic/utils@1.7.10(@tmagic/schema@1.7.10(typescript@6.0.3))(typescript@6.0.3)':
'@tmagic/utils@1.7.12(@tmagic/schema@1.7.12(typescript@6.0.3))(typescript@6.0.3)':
dependencies:
'@tmagic/schema': 1.7.10(typescript@6.0.3)
'@tmagic/schema': 1.7.12(typescript@6.0.3)
lodash-es: 4.17.21
optionalDependencies:
typescript: 6.0.3
@ -8967,12 +8967,12 @@ snapshots:
optionalDependencies:
typescript: 6.0.3
'@tmagic/vue-runtime-help@2.0.0(@tmagic/core@1.7.10(typescript@6.0.3))(@tmagic/stage@1.7.10(@tmagic/core@1.7.10(typescript@6.0.3))(typescript@6.0.3))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))':
'@tmagic/vue-runtime-help@2.0.2(@tmagic/core@1.7.12(typescript@6.0.3))(@tmagic/stage@1.7.12(@tmagic/core@1.7.12(typescript@6.0.3))(typescript@6.0.3))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))':
dependencies:
vue: 3.5.33(typescript@6.0.3)
optionalDependencies:
'@tmagic/core': 1.7.10(typescript@6.0.3)
'@tmagic/stage': 1.7.10(@tmagic/core@1.7.10(typescript@6.0.3))(typescript@6.0.3)
'@tmagic/core': 1.7.12(typescript@6.0.3)
'@tmagic/stage': 1.7.12(@tmagic/core@1.7.12(typescript@6.0.3))(typescript@6.0.3)
typescript: 6.0.3
'@tybys/wasm-util@0.10.1':

View File

@ -1,6 +1,6 @@
{
"name": "runtime-react",
"version": "1.7.11",
"version": "1.7.12",
"type": "module",
"private": true,
"engines": {
@ -16,16 +16,16 @@
"build:playground": "node scripts/build.mjs --type=playground"
},
"dependencies": {
"@tmagic/core": "1.7.11",
"@tmagic/core": "1.7.12",
"@tmagic/react-runtime-help": "0.2.2",
"@tmagic/stage": "1.7.11",
"@tmagic/stage": "1.7.12",
"axios": "^1.13.2",
"qrcode": "^1.5.0",
"react": "^18.3.1",
"react-dom": "^18.3.1"
},
"devDependencies": {
"@tmagic/cli": "1.7.11",
"@tmagic/cli": "1.7.12",
"@types/fs-extra": "^11.0.4",
"@types/react": "^18.3.3",
"@types/react-dom": "^18.3.0",

View File

@ -1,5 +1,5 @@
{
"version": "2.0.1",
"version": "2.0.3",
"name": "@tmagic/vue-runtime-help",
"type": "module",
"sideEffects": false,

View File

@ -161,6 +161,7 @@ export const useEditorDsl = (app = inject<TMagicApp>('app'), runtimeApi: Runtime
});
return {
root,
pageConfig,
app,
};

View File

@ -1,6 +1,6 @@
{
"name": "runtime-vue",
"version": "1.7.11",
"version": "1.7.12",
"type": "module",
"private": true,
"engines": {
@ -16,14 +16,14 @@
"build:playground": "node scripts/build.mjs --type=playground"
},
"dependencies": {
"@tmagic/core": "1.7.11",
"@tmagic/stage": "1.7.11",
"@tmagic/vue-runtime-help": "^2.0.0",
"@tmagic/core": "1.7.12",
"@tmagic/stage": "1.7.12",
"@tmagic/vue-runtime-help": "^2.0.1",
"axios": "^1.13.2",
"vue": "catalog:"
},
"devDependencies": {
"@tmagic/cli": "1.7.11",
"@tmagic/cli": "1.7.12",
"@types/fs-extra": "^11.0.4",
"@types/node": "^24.0.10",
"@vitejs/plugin-legacy": "^8.0.1",