diff --git a/packages/core/src/editor/bridges/components.ts b/packages/core/src/editor/bridges/components.ts index b434797d7..30a9b0bb1 100644 --- a/packages/core/src/editor/bridges/components.ts +++ b/packages/core/src/editor/bridges/components.ts @@ -28,6 +28,13 @@ export function createComponentBridge( createInstanceFromComponent: components.createInstanceFromComponent, detachInstance: () => components.detachInstance(selection.getSelectedNode()), goToMainComponent: () => - components.goToMainComponent(selection.getSelectedNode(), pages.switchPage) + components.goToMainComponent(selection.getSelectedNode(), pages.switchPage), + getComponentSetPropertyDefs: components.getComponentSetPropertyDefs, + addPropertyDefinition: components.addPropertyDefinition, + removePropertyDefinition: components.removePropertyDefinition, + renamePropertyDefinition: components.renamePropertyDefinition, + collectVariantOptions: components.collectVariantOptions, + findVariantByValues: components.findVariantByValues, + switchInstanceVariant: components.switchInstanceVariant } } diff --git a/packages/vue/src/i18n/messages.ts b/packages/vue/src/i18n/messages.ts index 4614da3b2..5c9e5fc52 100644 --- a/packages/vue/src/i18n/messages.ts +++ b/packages/vue/src/i18n/messages.ts @@ -130,6 +130,7 @@ export const panelMessages = i18n('panels', { export: 'Export', typography: 'Typography', variables: 'Variables', + variants: 'Variants', constraints: 'Constraints', addFill: 'Add fill', diff --git a/packages/vue/src/locales/ru.json b/packages/vue/src/locales/ru.json index 69f73e565..19d1e8057 100644 --- a/packages/vue/src/locales/ru.json +++ b/packages/vue/src/locales/ru.json @@ -175,7 +175,8 @@ "create": "Создать", "createNumberVariable": "Создать числовую переменную из {value}", "strokeDash": "Пунктирная обводка", - "add": "Добавить" + "add": "Добавить", + "variants": "Варианты" }, "pages": { "newPage": "Новая страница", diff --git a/packages/vue/src/locales/zh-CN.json b/packages/vue/src/locales/zh-CN.json index 709fc7849..d2149904c 100644 --- a/packages/vue/src/locales/zh-CN.json +++ b/packages/vue/src/locales/zh-CN.json @@ -175,7 +175,8 @@ "create": "创建", "createNumberVariable": "从 {value} 创建数字变量", "strokeDash": "虚线描边", - "add": "添加" + "add": "添加", + "variants": "变体" }, "pages": { "newPage": "新建页面", diff --git a/src/components/DesignPanel.vue b/src/components/DesignPanel.vue index df8c08d41..4275b8d03 100644 --- a/src/components/DesignPanel.vue +++ b/src/components/DesignPanel.vue @@ -14,6 +14,7 @@ import PositionSection from './properties/PositionSection.vue' import StrokeSection from './properties/StrokeSection.vue' import TypographySection from './properties/TypographySection.vue' import VariablesSection from './properties/VariablesSection.vue' +import VariantSection from './properties/VariantSection.vue' const variablesOpen = ref(false) const { selectedNode: node, selectedCount: multiCount } = useSelectionState() @@ -87,6 +88,8 @@ const { panels } = useI18n() + + diff --git a/src/components/properties/VariantSection.vue b/src/components/properties/VariantSection.vue new file mode 100644 index 000000000..c814b176c --- /dev/null +++ b/src/components/properties/VariantSection.vue @@ -0,0 +1,63 @@ + + +