= {
+ args: {
+ size: "scale-size-24",
+ },
+};
diff --git a/packages/component-library/src/components/layout/mt-vertical-stack/mt-vertical-stack.mdx b/packages/component-library/src/components/layout/mt-vertical-stack/mt-vertical-stack.mdx
new file mode 100644
index 000000000..a835942b1
--- /dev/null
+++ b/packages/component-library/src/components/layout/mt-vertical-stack/mt-vertical-stack.mdx
@@ -0,0 +1,39 @@
+# Vertical Stack
+
+The `mt-vertical-stack` component can be used to align and add spacing
+between elements. Common use cases are adding multiple cards below each other
+or adding multiple rows of input fields.
+
+## Usage
+
+```vue
+
+
+
+
+
+
+
+
+
+```
+
+## Controlling the spacing
+
+To control the spacing between the elements, you can use the `size`
+property.
+
+To control the spacing you need to use a spacing tokens.
+The always start with `scale-size-` followed by a number. You can see
+a list of all available tokens in the [spacing documentation](https://github.com/shopware/meteor/blob/main/packages/tokens/deliverables/foundation/primitives.css#L149).
+
+```vue
+
+
+ Element 1
+ Element 2
+
+
+```
diff --git a/packages/component-library/src/components/layout/mt-vertical-stack/mt-vertical-stack.vue b/packages/component-library/src/components/layout/mt-vertical-stack/mt-vertical-stack.vue
new file mode 100644
index 000000000..1d7d49d5c
--- /dev/null
+++ b/packages/component-library/src/components/layout/mt-vertical-stack/mt-vertical-stack.vue
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
diff --git a/packages/component-library/src/components/theme/mt-future-flag.spec.ts b/packages/component-library/src/components/theme/mt-future-flag.spec.ts
new file mode 100644
index 000000000..5e1f1e791
--- /dev/null
+++ b/packages/component-library/src/components/theme/mt-future-flag.spec.ts
@@ -0,0 +1,51 @@
+import { describe, it, expect } from "vitest";
+import { render, screen } from "@testing-library/vue";
+import MtFutureFlag from "./mt-future-flag.vue";
+import { defineComponent } from "vue";
+import { useFutureFlags } from "@/composables/useFutureFlags";
+
+describe("mt-future-flag", () => {
+ it("can enable a future flag", () => {
+ // ARRANGE
+ const Child = defineComponent({
+ template: "No default margin: {{futureFlags.removeDefaultMargin.toString()}}
",
+ setup() {
+ const futureFlags = useFutureFlags();
+
+ return { futureFlags };
+ },
+ });
+
+ const Component = defineComponent({
+ components: { MtFutureFlag, Child },
+ template: "",
+ });
+
+ render(Component);
+
+ // ASSERT
+ expect(screen.getByText("No default margin: true")).toBeVisible();
+ });
+
+ it("future flag is disabled by default", () => {
+ // ARRANGE
+ const Child = defineComponent({
+ template: "No default margin: {{futureFlags.removeDefaultMargin.toString()}}
",
+ setup() {
+ const futureFlags = useFutureFlags();
+
+ return { futureFlags };
+ },
+ });
+
+ const Component = defineComponent({
+ components: { MtFutureFlag, Child },
+ template: "",
+ });
+
+ render(Component);
+
+ // ASSERT
+ expect(screen.getByText("No default margin: false")).toBeVisible();
+ });
+});
diff --git a/packages/component-library/src/components/theme/mt-future-flag.vue b/packages/component-library/src/components/theme/mt-future-flag.vue
new file mode 100644
index 000000000..eed74ac9e
--- /dev/null
+++ b/packages/component-library/src/components/theme/mt-future-flag.vue
@@ -0,0 +1,25 @@
+
+
+
+
+
diff --git a/packages/component-library/src/index.ts b/packages/component-library/src/index.ts
index f4956d4b2..6cede892f 100644
--- a/packages/component-library/src/index.ts
+++ b/packages/component-library/src/index.ts
@@ -41,6 +41,9 @@ import MtTextEditor from "./components/form/mt-text-editor/mt-text-editor.vue";
import MtTextEditorToolbarButton from "./components/form/mt-text-editor/_internal/mt-text-editor-toolbar-button.vue";
import MtSearch from "./components/navigation/mt-search/mt-search.vue";
import MtUrlField from "./components/form/mt-url-field/mt-url-field.vue";
+import MtFutureFlag from "./components/theme/mt-future-flag.vue";
+import MtGrid from "./components/layout/mt-grid/mt-grid.vue";
+import MtVerticalStack from "./components/layout/mt-vertical-stack/mt-vertical-stack.vue";
// Import SCSS for styling
import "./components/assets/scss/all.scss";
@@ -93,6 +96,9 @@ export {
MtSearch,
MtUrlField,
MtThemeProvider,
+ MtFutureFlag,
+ MtGrid,
+ MtVerticalStack,
TooltipDirective,
DeviceHelperPlugin,
// @deprecated