diff --git a/packages/frontend/.storybook/generate.tsx b/packages/frontend/.storybook/generate.tsx
index b446d30fb154827aaa5abb280742d59a279a46d5..cc39ef68e7191ea7c59ca12028e43570116539d7 100644
--- a/packages/frontend/.storybook/generate.tsx
+++ b/packages/frontend/.storybook/generate.tsx
@@ -1,4 +1,5 @@
-import * as fs from 'node:fs/promises';
+import { existsSync, readFileSync } from 'node:fs';
+import { writeFile } from 'node:fs/promises';
 import { basename, dirname } from 'node:path/posix';
 import { promisify } from 'node:util';
 import { generate } from 'astring';
@@ -12,6 +13,10 @@ function h<T extends estree.Node>(component: T['type'], props: Omit<T, 'type'>):
 }
 
 function toStories(component: string): string {
+	const msw = `${component.slice(0, -'.vue'.length)}.msw`;
+	const implStories = `${component.slice(0, -'.vue'.length)}.stories.impl`;
+	const hasMsw = existsSync(`${msw}.ts`);
+	const hasImplStories = existsSync(`${implStories}.ts`);
 	const base = basename(component);
 	const dir = dirname(component);
 	const literal = (
@@ -27,7 +32,17 @@ function toStories(component: string): string {
 					key={<identifier name="layout" />}
 					value={<literal value={`${dir}/`.startsWith('src/pages/') || base === 'MkAnalogClock.vue' ? 'fullscreen' : 'centered'} />}
 					kind="init"
-				/>
+				/>,
+				...hasMsw
+					? [
+							<property
+								key={<identifier name="msw" />}
+								value={<identifier name="msw" />}
+								kind="init"
+								shorthand
+							/>,
+						]
+					: [],
 			]}
 		/>
 	);
@@ -47,6 +62,18 @@ function toStories(component: string): string {
 						/>,
 					]}
 				/>,
+				...hasMsw
+					? [
+							<import-declaration
+								source={<literal value={`./${basename(msw)}`} />}
+								specifiers={[
+									<import-namespace-specifier
+										local={<identifier name="msw" />}
+									/>,
+								]}
+							/>,
+						]
+					: [],
 				<import-declaration
 					source={<literal value={`./${base}`} />}
 					specifiers={[
@@ -80,50 +107,109 @@ function toStories(component: string): string {
 						/>,
 					]}
 				/>,
-				<export-named-declaration
-					declaration={
-						<variable-declaration
-							kind="const"
-							declarations={[
-								<variable-declarator
-									id={<identifier name="Default" />}
-									init={
-										<object-expression
-											properties={[
-												<property
-													key={<identifier name="components" />}
-													value={
-														<object-expression
-															properties={[
-																<property
-																	key={identifier}
-																	value={identifier}
-																	kind="init"
-																	shorthand
-																/>,
-															]}
-														/>
-													}
-													kind="init"
-												/>,
-												<property
-													key={<identifier name="template" />}
-													value={<literal value={`<${identifier.name} />`} />}
-													kind="init"
-												/>,
-												<property
-													key={<identifier name="parameters" />}
-													value={parameters}
-													kind="init"
-												/>,
-											]}
-										/>
-									}
-								/>,
-							]}
-						/>
-					}
-				/>,
+				...hasImplStories
+					? [
+						]
+					: [
+							<export-named-declaration
+								declaration={
+									<variable-declaration
+										kind="const"
+										declarations={[
+											<variable-declarator
+												id={<identifier name="Default" />}
+												init={
+													<object-expression
+														properties={[
+															<property
+																key={<identifier name="render" />}
+																value={
+																	<function-expression
+																		id={<identifier name="render" />}
+																		params={[
+																			<identifier name="args" />,
+																			<object-pattern
+																				properties={[
+																					<property
+																						key={<identifier name="argTypes" />}
+																						value={<identifier name="argTypes" />}
+																						kind="init"
+																						shorthand
+																					/>,
+																				]}
+																			/>,
+																		]}
+																		body={
+																			<block-statement
+																				body={[
+																					<return-statement
+																						argument={
+																							<object-expression
+																								properties={[
+																									<property
+																										key={<identifier name="components" />}
+																										value={
+																											<object-expression
+																												properties={[
+																													<property
+																														key={identifier}
+																														value={identifier}
+																														kind="init"
+																														shorthand
+																													/>,
+																												]}
+																											/>
+																										}
+																										kind="init"
+																									/>,
+																									<property
+																										key={<identifier name="props" />}
+																										value={
+																											<call-expression
+																												callee={
+																													<member-expression
+																														object={<identifier name="Object" />}
+																														property={<identifier name="keys" />}
+																													/>
+																												}
+																												arguments={[
+																													<identifier name="argTypes" />,
+																												]}
+																											/>
+																										}
+																										kind="init"
+																									/>,
+																									<property
+																										key={<identifier name="template" />}
+																										value={<literal value={`<${identifier.name} v-bind="$props" />`} />}
+																										kind="init"
+																									/>,
+																								]}
+																							/>
+																						}
+																					/>,
+																				]}
+																			/>
+																		}
+																	/>
+																}
+																method
+																kind="init"
+															/>,
+															<property
+																key={<identifier name="parameters" />}
+																value={parameters}
+																kind="init"
+															/>,
+														]}
+													/>
+												}
+											/>,
+										]}
+									/>
+								}
+							/>,
+						],
 				<export-default-declaration
 					declaration={<identifier name="meta" />}
 				/>,
@@ -131,7 +217,7 @@ function toStories(component: string): string {
 		/>
 	) as unknown as estree.Program;
 	return format(
-		generate(program),
+		generate(program) + (hasImplStories ? readFileSync(`${implStories}.ts`, 'utf-8') : ''),
 		{
 			parser: 'babel-ts',
 			singleQuote: true,
@@ -143,11 +229,6 @@ function toStories(component: string): string {
 promisify(glob)('src/{components,pages,ui,widgets}/**/*.vue').then((components) => Promise.all(
 	components.map((component) => {
 		const stories = component.replace(/\.vue$/, '.stories.ts');
-		fs.stat(stories).then(
-			() => {},
-			() => {
-				fs.writeFile(stories, toStories(component));
-			}
-		);
+		return writeFile(stories, toStories(component));
 	})
 ));
diff --git a/packages/frontend/.storybook/manager.ts b/packages/frontend/.storybook/manager.ts
new file mode 100644
index 0000000000000000000000000000000000000000..33213bffa94b387c97f0f937b4451b7af756d63d
--- /dev/null
+++ b/packages/frontend/.storybook/manager.ts
@@ -0,0 +1,12 @@
+import { addons } from '@storybook/manager-api';
+import { create } from '@storybook/theming/create';
+
+addons.setConfig({
+	theme: create({
+		base: 'dark',
+		brandTitle: 'Misskey Storybook',
+		brandUrl: 'https://misskey-hub.net',
+		brandImage: 'https://github.com/misskey-dev/assets/blob/main/misskey.svg?raw=true',
+		brandTarget: '_blank',
+	}),
+});
diff --git a/packages/frontend/.storybook/preview.ts b/packages/frontend/.storybook/preview.ts
index 40b6ea0fb03c60e0a7e6ee82f1692d92bd1b9ca3..1e9bcca09fe76ea41d2e0a209e055b74b981d0fb 100644
--- a/packages/frontend/.storybook/preview.ts
+++ b/packages/frontend/.storybook/preview.ts
@@ -1,8 +1,10 @@
 import { type Preview, setup } from '@storybook/vue3';
+import { initialize, mswDecorator } from 'msw-storybook-addon';
 import locale from './locale';
 import theme from './theme';
 import '../src/style.scss';
 
+initialize();
 localStorage.setItem("locale", JSON.stringify(locale));
 Promise.all([
 	import('../src/components'),
@@ -15,12 +17,22 @@ Promise.all([
 		directives(app);
 		widgets(app);
 	});
-})
+});
 
 const preview = {
+	decorators: [
+		mswDecorator,
+	],
 	parameters: {
 		layout: 'centered',
 	},
+	argTypes: {
+		default: {
+			control: {
+				type: 'text',
+			},
+		},
+	},
 } satisfies Preview;
 
 export default preview;
diff --git a/packages/frontend/package.json b/packages/frontend/package.json
index 0a7e6b50bb34b9c7e8892d4d3995971d99fc745c..03f7e5d2bb5689531f0f3ac5e526805360f84317 100644
--- a/packages/frontend/package.json
+++ b/packages/frontend/package.json
@@ -76,7 +76,9 @@
 		"@storybook/addon-interactions": "^7.0.0-rc.4",
 		"@storybook/addon-links": "^7.0.0-rc.4",
 		"@storybook/blocks": "^7.0.0-rc.4",
+		"@storybook/manager-api": "7.0.0-rc.4",
 		"@storybook/testing-library": "^0.0.14-next.1",
+		"@storybook/theming": "7.0.0-rc.4",
 		"@storybook/vue3": "^7.0.0-rc.4",
 		"@storybook/vue3-vite": "^7.0.0-rc.4",
 		"@testing-library/vue": "^6.6.1",
@@ -105,6 +107,8 @@
 		"eslint-plugin-import": "2.27.5",
 		"eslint-plugin-vue": "9.9.0",
 		"happy-dom": "8.9.0",
+		"msw": "^1.1.0",
+		"msw-storybook-addon": "^1.8.0",
 		"prettier": "^2.8.4",
 		"react": "^18.2.0",
 		"react-dom": "^18.2.0",
diff --git a/packages/frontend/src/components/MkAbuseReport.stories.ts b/packages/frontend/src/components/MkAbuseReport.stories.ts
index 4b02967692ef50d6cf0c6c6b7cdf1ca1127d1f0a..e3a87b80fd59aa505ac8540f47b22f0e704b0da7 100644
--- a/packages/frontend/src/components/MkAbuseReport.stories.ts
+++ b/packages/frontend/src/components/MkAbuseReport.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkAbuseReport,
 };
 export const Default = {
-	components: {
-		MkAbuseReport,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkAbuseReport,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkAbuseReport v-bind="$props" />',
+		};
 	},
-	template: '<MkAbuseReport />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkAbuseReportWindow.stories.ts b/packages/frontend/src/components/MkAbuseReportWindow.stories.ts
index e8f90339f1bb53bc421fd29c70ac6e4683326077..47b0923e9a45b6b4964f12b159aedb9c5d287b87 100644
--- a/packages/frontend/src/components/MkAbuseReportWindow.stories.ts
+++ b/packages/frontend/src/components/MkAbuseReportWindow.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkAbuseReportWindow,
 };
 export const Default = {
-	components: {
-		MkAbuseReportWindow,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkAbuseReportWindow,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkAbuseReportWindow v-bind="$props" />',
+		};
 	},
-	template: '<MkAbuseReportWindow />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkAchievements.stories.ts b/packages/frontend/src/components/MkAchievements.stories.ts
index a62fadc5cfb83617360eb4927368d85f509c78d3..9c0b1aec8ddbf6917ecb1faa977669b4bc6d863d 100644
--- a/packages/frontend/src/components/MkAchievements.stories.ts
+++ b/packages/frontend/src/components/MkAchievements.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkAchievements,
 };
 export const Default = {
-	components: {
-		MkAchievements,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkAchievements,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkAchievements v-bind="$props" />',
+		};
 	},
-	template: '<MkAchievements />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkAnalogClock.stories.ts b/packages/frontend/src/components/MkAnalogClock.stories.ts
index 7f3e51128ef1b828e78361dfe3b20531c66d1125..f81e997cfb20bd168023e617bceb64e3841a6c32 100644
--- a/packages/frontend/src/components/MkAnalogClock.stories.ts
+++ b/packages/frontend/src/components/MkAnalogClock.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkAnalogClock,
 };
 export const Default = {
-	components: {
-		MkAnalogClock,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkAnalogClock,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkAnalogClock v-bind="$props" />',
+		};
 	},
-	template: '<MkAnalogClock />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/components/MkAsUi.stories.ts b/packages/frontend/src/components/MkAsUi.stories.ts
index 82bc3c05cc5df7b960c1b7857e6a6c3601f295ff..7ad72bef430b918e1b9218d3dd863a2b1e46cfeb 100644
--- a/packages/frontend/src/components/MkAsUi.stories.ts
+++ b/packages/frontend/src/components/MkAsUi.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkAsUi,
 };
 export const Default = {
-	components: {
-		MkAsUi,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkAsUi,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkAsUi v-bind="$props" />',
+		};
 	},
-	template: '<MkAsUi />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkAutocomplete.stories.ts b/packages/frontend/src/components/MkAutocomplete.stories.ts
index 6a1be12e08112d3e580f7e87e267a9b286f21648..c6a0f6be6383636a7d26f616fed4a62c1aee121b 100644
--- a/packages/frontend/src/components/MkAutocomplete.stories.ts
+++ b/packages/frontend/src/components/MkAutocomplete.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkAutocomplete,
 };
 export const Default = {
-	components: {
-		MkAutocomplete,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkAutocomplete,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkAutocomplete v-bind="$props" />',
+		};
 	},
-	template: '<MkAutocomplete />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkAvatars.stories.ts b/packages/frontend/src/components/MkAvatars.stories.ts
index 26b7fab544a799404d1fbe90647c5d52cbf343f1..bc2a82c842f43582e4c7434b914ffd1e26a53511 100644
--- a/packages/frontend/src/components/MkAvatars.stories.ts
+++ b/packages/frontend/src/components/MkAvatars.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkAvatars,
 };
 export const Default = {
-	components: {
-		MkAvatars,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkAvatars,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkAvatars v-bind="$props" />',
+		};
 	},
-	template: '<MkAvatars />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkButton.stories.impl.ts b/packages/frontend/src/components/MkButton.stories.impl.ts
new file mode 100644
index 0000000000000000000000000000000000000000..5f73ca71bc1934fd8476cc0ba67fc1af0d55ed27
--- /dev/null
+++ b/packages/frontend/src/components/MkButton.stories.impl.ts
@@ -0,0 +1,14 @@
+export const Default = {
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkButton,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkButton v-bind="$props">Text</MkButton>',
+		};
+	},
+	parameters: {
+		layout: 'centered',
+	},
+};
diff --git a/packages/frontend/src/components/MkButton.stories.ts b/packages/frontend/src/components/MkButton.stories.ts
index 26ce51bcaf539ad0373f5dfb8b4e1125f2806184..57dacb8f189dded8125b91ead3e2407bd1abdca1 100644
--- a/packages/frontend/src/components/MkButton.stories.ts
+++ b/packages/frontend/src/components/MkButton.stories.ts
@@ -4,13 +4,18 @@ const meta = {
 	title: 'components/MkButton',
 	component: MkButton,
 };
+export default meta;
 export const Default = {
-	components: {
-		MkButton,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkButton,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkButton v-bind="$props">Text</MkButton>',
+		};
 	},
-	template: '<MkButton />',
 	parameters: {
 		layout: 'centered',
 	},
 };
-export default meta;
diff --git a/packages/frontend/src/components/MkCaptcha.stories.ts b/packages/frontend/src/components/MkCaptcha.stories.ts
index 23d8b562447b58f6f61d22e0b39a75962620fac9..e58f36ccfff7222afe983db1ea4e02635881facf 100644
--- a/packages/frontend/src/components/MkCaptcha.stories.ts
+++ b/packages/frontend/src/components/MkCaptcha.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkCaptcha,
 };
 export const Default = {
-	components: {
-		MkCaptcha,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkCaptcha,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkCaptcha v-bind="$props" />',
+		};
 	},
-	template: '<MkCaptcha />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkChannelFollowButton.stories.ts b/packages/frontend/src/components/MkChannelFollowButton.stories.ts
index 6ce5d52d9ca921c16da7679000fab2c7c2842eb3..889b9a7f096caa14f632d230edffdcca4afbefc0 100644
--- a/packages/frontend/src/components/MkChannelFollowButton.stories.ts
+++ b/packages/frontend/src/components/MkChannelFollowButton.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkChannelFollowButton,
 };
 export const Default = {
-	components: {
-		MkChannelFollowButton,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkChannelFollowButton,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkChannelFollowButton v-bind="$props" />',
+		};
 	},
-	template: '<MkChannelFollowButton />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkChannelPreview.stories.ts b/packages/frontend/src/components/MkChannelPreview.stories.ts
index 45f380873833ca3870b297348f960aaaa125facc..a4537bee52323efda7c11f08fea8b7e07b2dc0d6 100644
--- a/packages/frontend/src/components/MkChannelPreview.stories.ts
+++ b/packages/frontend/src/components/MkChannelPreview.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkChannelPreview,
 };
 export const Default = {
-	components: {
-		MkChannelPreview,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkChannelPreview,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkChannelPreview v-bind="$props" />',
+		};
 	},
-	template: '<MkChannelPreview />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkChart.stories.ts b/packages/frontend/src/components/MkChart.stories.ts
index cf607d77032b402fdb281a2bea340b1133862357..8d4b633edf27b77f6162675ad1135a24f10bf1e1 100644
--- a/packages/frontend/src/components/MkChart.stories.ts
+++ b/packages/frontend/src/components/MkChart.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkChart,
 };
 export const Default = {
-	components: {
-		MkChart,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkChart,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkChart v-bind="$props" />',
+		};
 	},
-	template: '<MkChart />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkChartLegend.stories.ts b/packages/frontend/src/components/MkChartLegend.stories.ts
index 8e6a449b591c34fc607b4317c178217fb32bbbf9..fcc39a6a46da1eee0851988f11d60a741e4ec20c 100644
--- a/packages/frontend/src/components/MkChartLegend.stories.ts
+++ b/packages/frontend/src/components/MkChartLegend.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkChartLegend,
 };
 export const Default = {
-	components: {
-		MkChartLegend,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkChartLegend,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkChartLegend v-bind="$props" />',
+		};
 	},
-	template: '<MkChartLegend />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkChartTooltip.stories.ts b/packages/frontend/src/components/MkChartTooltip.stories.ts
index 71095ce79e05ad2c022bd82cb0880fbeec8995bc..d0ab98b975ae1737fd377253cfb73234b50ce6ca 100644
--- a/packages/frontend/src/components/MkChartTooltip.stories.ts
+++ b/packages/frontend/src/components/MkChartTooltip.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkChartTooltip,
 };
 export const Default = {
-	components: {
-		MkChartTooltip,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkChartTooltip,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkChartTooltip v-bind="$props" />',
+		};
 	},
-	template: '<MkChartTooltip />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkCheckbox.stories.ts b/packages/frontend/src/components/MkCheckbox.stories.ts
index 1aaa03ba0c0ab3d3ecd761a2d6de87a82006ed64..177b8a64027e454d7ca105e772bbedf04ede1faa 100644
--- a/packages/frontend/src/components/MkCheckbox.stories.ts
+++ b/packages/frontend/src/components/MkCheckbox.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkCheckbox,
 };
 export const Default = {
-	components: {
-		MkCheckbox,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkCheckbox,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkCheckbox v-bind="$props" />',
+		};
 	},
-	template: '<MkCheckbox />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkClickerGame.stories.ts b/packages/frontend/src/components/MkClickerGame.stories.ts
index 39dad4e676f12e364db2e0e1cfee9cca2a67550c..c56ec9bd1a89e1a5b70215da6bb4b14fa77832e3 100644
--- a/packages/frontend/src/components/MkClickerGame.stories.ts
+++ b/packages/frontend/src/components/MkClickerGame.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkClickerGame,
 };
 export const Default = {
-	components: {
-		MkClickerGame,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkClickerGame,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkClickerGame v-bind="$props" />',
+		};
 	},
-	template: '<MkClickerGame />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkClipPreview.stories.ts b/packages/frontend/src/components/MkClipPreview.stories.ts
index b512c34e4a2748e34c44a8f0062a4fe51064ec67..422d12fab1d57624e5eb7217dd18f048f21c84f7 100644
--- a/packages/frontend/src/components/MkClipPreview.stories.ts
+++ b/packages/frontend/src/components/MkClipPreview.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkClipPreview,
 };
 export const Default = {
-	components: {
-		MkClipPreview,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkClipPreview,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkClipPreview v-bind="$props" />',
+		};
 	},
-	template: '<MkClipPreview />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkCode.core.stories.ts b/packages/frontend/src/components/MkCode.core.stories.ts
index dcc7d6f46d2b00b5f32bbcf7110fdb2b12a51035..53b41eb0c9e1f3e73402d99883febc7e013bd704 100644
--- a/packages/frontend/src/components/MkCode.core.stories.ts
+++ b/packages/frontend/src/components/MkCode.core.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkCode_core,
 };
 export const Default = {
-	components: {
-		MkCode_core,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkCode_core,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkCode_core v-bind="$props" />',
+		};
 	},
-	template: '<MkCode_core />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkCode.stories.ts b/packages/frontend/src/components/MkCode.stories.ts
index 625d6f3d22f91be5d277fdbff81cae049fe18730..1f6d4daff0fdb76286c94b5eae08d01d06d71fd2 100644
--- a/packages/frontend/src/components/MkCode.stories.ts
+++ b/packages/frontend/src/components/MkCode.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkCode,
 };
 export const Default = {
-	components: {
-		MkCode,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkCode,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkCode v-bind="$props" />',
+		};
 	},
-	template: '<MkCode />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkContainer.stories.ts b/packages/frontend/src/components/MkContainer.stories.ts
index 73aa520ba41c26facb1be6cb1dc2d53254f0619f..cd07161ce918dd120459a36d1472d87d617e3c4f 100644
--- a/packages/frontend/src/components/MkContainer.stories.ts
+++ b/packages/frontend/src/components/MkContainer.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkContainer,
 };
 export const Default = {
-	components: {
-		MkContainer,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkContainer,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkContainer v-bind="$props" />',
+		};
 	},
-	template: '<MkContainer />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkContextMenu.stories.ts b/packages/frontend/src/components/MkContextMenu.stories.ts
index 78885a57ae9701a4d108aba750d5f65d027cdb08..927e51c8a1bab38e73a0e9a689ca6d1a734cae42 100644
--- a/packages/frontend/src/components/MkContextMenu.stories.ts
+++ b/packages/frontend/src/components/MkContextMenu.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkContextMenu,
 };
 export const Default = {
-	components: {
-		MkContextMenu,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkContextMenu,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkContextMenu v-bind="$props" />',
+		};
 	},
-	template: '<MkContextMenu />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkCropperDialog.stories.ts b/packages/frontend/src/components/MkCropperDialog.stories.ts
index 38c665d770ec272ce3a78ba5251075ca62bb06fb..3896c88404c90c9ab51d826482f26bbb9558bcbb 100644
--- a/packages/frontend/src/components/MkCropperDialog.stories.ts
+++ b/packages/frontend/src/components/MkCropperDialog.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkCropperDialog,
 };
 export const Default = {
-	components: {
-		MkCropperDialog,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkCropperDialog,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkCropperDialog v-bind="$props" />',
+		};
 	},
-	template: '<MkCropperDialog />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkCwButton.stories.ts b/packages/frontend/src/components/MkCwButton.stories.ts
index 35451211907255b23ffc27f28cdcd137fb63260a..1a7398a95125a904f839745cb0ebaf9a02c52343 100644
--- a/packages/frontend/src/components/MkCwButton.stories.ts
+++ b/packages/frontend/src/components/MkCwButton.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkCwButton,
 };
 export const Default = {
-	components: {
-		MkCwButton,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkCwButton,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkCwButton v-bind="$props" />',
+		};
 	},
-	template: '<MkCwButton />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkDateSeparatedList.stories.ts b/packages/frontend/src/components/MkDateSeparatedList.stories.ts
index ea319c12eb1d80b72dae8a40afdaa8683e1bfb09..719734a08f75e0f29ad394efed9088277f5d77a9 100644
--- a/packages/frontend/src/components/MkDateSeparatedList.stories.ts
+++ b/packages/frontend/src/components/MkDateSeparatedList.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkDateSeparatedList,
 };
 export const Default = {
-	components: {
-		MkDateSeparatedList,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkDateSeparatedList,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkDateSeparatedList v-bind="$props" />',
+		};
 	},
-	template: '<MkDateSeparatedList />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkDialog.stories.ts b/packages/frontend/src/components/MkDialog.stories.ts
index 2996b180bac7da757481e9aec02f1276139997ac..939cc9a571f400e3bf0fa089136d66c83548f1bb 100644
--- a/packages/frontend/src/components/MkDialog.stories.ts
+++ b/packages/frontend/src/components/MkDialog.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkDialog,
 };
 export const Default = {
-	components: {
-		MkDialog,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkDialog,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkDialog v-bind="$props" />',
+		};
 	},
-	template: '<MkDialog />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkDigitalClock.stories.ts b/packages/frontend/src/components/MkDigitalClock.stories.ts
index 6a6299d5cb1c719391832c85dcad39dd2ef1dc55..86706bde1ed0bf693b52187370b6afcb054148cd 100644
--- a/packages/frontend/src/components/MkDigitalClock.stories.ts
+++ b/packages/frontend/src/components/MkDigitalClock.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkDigitalClock,
 };
 export const Default = {
-	components: {
-		MkDigitalClock,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkDigitalClock,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkDigitalClock v-bind="$props" />',
+		};
 	},
-	template: '<MkDigitalClock />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkDonation.stories.ts b/packages/frontend/src/components/MkDonation.stories.ts
index afee626577cc1974dc5a851f2f89a01683cf3ed3..ae57ad2502d1ed854b3f3cd9804b311560cd2b52 100644
--- a/packages/frontend/src/components/MkDonation.stories.ts
+++ b/packages/frontend/src/components/MkDonation.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkDonation,
 };
 export const Default = {
-	components: {
-		MkDonation,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkDonation,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkDonation v-bind="$props" />',
+		};
 	},
-	template: '<MkDonation />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkDrive.file.stories.ts b/packages/frontend/src/components/MkDrive.file.stories.ts
index 0730b78a695254e4a10d4e23018fb3e25b8169b0..c873285b4f55c36959908a47a015694af6ed83b6 100644
--- a/packages/frontend/src/components/MkDrive.file.stories.ts
+++ b/packages/frontend/src/components/MkDrive.file.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkDrive_file,
 };
 export const Default = {
-	components: {
-		MkDrive_file,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkDrive_file,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkDrive_file v-bind="$props" />',
+		};
 	},
-	template: '<MkDrive_file />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkDrive.folder.stories.ts b/packages/frontend/src/components/MkDrive.folder.stories.ts
index 4b5f5b9ac32ff93843ef01a177abf21c5edae40d..3d70a81bb4a2c0b47140dd4e73826bd092cf4480 100644
--- a/packages/frontend/src/components/MkDrive.folder.stories.ts
+++ b/packages/frontend/src/components/MkDrive.folder.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkDrive_folder,
 };
 export const Default = {
-	components: {
-		MkDrive_folder,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkDrive_folder,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkDrive_folder v-bind="$props" />',
+		};
 	},
-	template: '<MkDrive_folder />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkDrive.navFolder.stories.ts b/packages/frontend/src/components/MkDrive.navFolder.stories.ts
index f38016e320b665d41ab110ed7c5fdae686f4df77..1279d9eae154934def2a8ae70a8b66eb2356dd01 100644
--- a/packages/frontend/src/components/MkDrive.navFolder.stories.ts
+++ b/packages/frontend/src/components/MkDrive.navFolder.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkDrive_navFolder,
 };
 export const Default = {
-	components: {
-		MkDrive_navFolder,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkDrive_navFolder,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkDrive_navFolder v-bind="$props" />',
+		};
 	},
-	template: '<MkDrive_navFolder />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkDrive.stories.ts b/packages/frontend/src/components/MkDrive.stories.ts
index 2d4afc95da5ea877492800840f8d3041d5ca80b3..f581ddabeb87106bb7d4a3e035f01234862638ff 100644
--- a/packages/frontend/src/components/MkDrive.stories.ts
+++ b/packages/frontend/src/components/MkDrive.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkDrive,
 };
 export const Default = {
-	components: {
-		MkDrive,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkDrive,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkDrive v-bind="$props" />',
+		};
 	},
-	template: '<MkDrive />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkDriveFileThumbnail.stories.ts b/packages/frontend/src/components/MkDriveFileThumbnail.stories.ts
index 4b3565cf2d2ccf39186a8054d8ab37f7488c6ae5..9e6e078c06e4580f71483c6f43860da994622e66 100644
--- a/packages/frontend/src/components/MkDriveFileThumbnail.stories.ts
+++ b/packages/frontend/src/components/MkDriveFileThumbnail.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkDriveFileThumbnail,
 };
 export const Default = {
-	components: {
-		MkDriveFileThumbnail,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkDriveFileThumbnail,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkDriveFileThumbnail v-bind="$props" />',
+		};
 	},
-	template: '<MkDriveFileThumbnail />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkDriveSelectDialog.stories.ts b/packages/frontend/src/components/MkDriveSelectDialog.stories.ts
index 0ac06ba2fe32a6d82aefb175290cc6f78312da66..39a7828b4f72427e5c729457aa21376ddc711946 100644
--- a/packages/frontend/src/components/MkDriveSelectDialog.stories.ts
+++ b/packages/frontend/src/components/MkDriveSelectDialog.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkDriveSelectDialog,
 };
 export const Default = {
-	components: {
-		MkDriveSelectDialog,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkDriveSelectDialog,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkDriveSelectDialog v-bind="$props" />',
+		};
 	},
-	template: '<MkDriveSelectDialog />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkDriveWindow.stories.ts b/packages/frontend/src/components/MkDriveWindow.stories.ts
index 44d46b19d7a32e54c7f3f56b230091dfb827d2bd..29cdd5228e45c5756f606f05d008bfdae4fba2d7 100644
--- a/packages/frontend/src/components/MkDriveWindow.stories.ts
+++ b/packages/frontend/src/components/MkDriveWindow.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkDriveWindow,
 };
 export const Default = {
-	components: {
-		MkDriveWindow,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkDriveWindow,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkDriveWindow v-bind="$props" />',
+		};
 	},
-	template: '<MkDriveWindow />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkEmojiPicker.section.stories.ts b/packages/frontend/src/components/MkEmojiPicker.section.stories.ts
index 1a19f4fb3d78df5e719b977fbb67b21000869fcf..60ea8fac0065452436cbbd91d0377a12403a9edc 100644
--- a/packages/frontend/src/components/MkEmojiPicker.section.stories.ts
+++ b/packages/frontend/src/components/MkEmojiPicker.section.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkEmojiPicker_section,
 };
 export const Default = {
-	components: {
-		MkEmojiPicker_section,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkEmojiPicker_section,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkEmojiPicker_section v-bind="$props" />',
+		};
 	},
-	template: '<MkEmojiPicker_section />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkEmojiPicker.stories.ts b/packages/frontend/src/components/MkEmojiPicker.stories.ts
index 977be11bc779cf1cab5d0b9e612f717de1a212c1..06b41d28d7180f64e90cb4b3410fd8b1dc5f83ae 100644
--- a/packages/frontend/src/components/MkEmojiPicker.stories.ts
+++ b/packages/frontend/src/components/MkEmojiPicker.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkEmojiPicker,
 };
 export const Default = {
-	components: {
-		MkEmojiPicker,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkEmojiPicker,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkEmojiPicker v-bind="$props" />',
+		};
 	},
-	template: '<MkEmojiPicker />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkEmojiPickerDialog.stories.ts b/packages/frontend/src/components/MkEmojiPickerDialog.stories.ts
index ec6972bac378b79e7473031d1e81c739ff146533..56ab6ac013b42a16c2d4e9e56003eb608e8e8423 100644
--- a/packages/frontend/src/components/MkEmojiPickerDialog.stories.ts
+++ b/packages/frontend/src/components/MkEmojiPickerDialog.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkEmojiPickerDialog,
 };
 export const Default = {
-	components: {
-		MkEmojiPickerDialog,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkEmojiPickerDialog,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkEmojiPickerDialog v-bind="$props" />',
+		};
 	},
-	template: '<MkEmojiPickerDialog />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkEmojiPickerWindow.stories.ts b/packages/frontend/src/components/MkEmojiPickerWindow.stories.ts
index d3393d8f97b33808587c4d2db3cde035f081a72c..470bacaf2c2da73df0039e9d49abaaa194749415 100644
--- a/packages/frontend/src/components/MkEmojiPickerWindow.stories.ts
+++ b/packages/frontend/src/components/MkEmojiPickerWindow.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkEmojiPickerWindow,
 };
 export const Default = {
-	components: {
-		MkEmojiPickerWindow,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkEmojiPickerWindow,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkEmojiPickerWindow v-bind="$props" />',
+		};
 	},
-	template: '<MkEmojiPickerWindow />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkFeaturedPhotos.stories.ts b/packages/frontend/src/components/MkFeaturedPhotos.stories.ts
index 613723d08d0524eaecdad246f0aa0a005ead435d..0da9787c9c300f9622df9c6297710569f9a7b2ea 100644
--- a/packages/frontend/src/components/MkFeaturedPhotos.stories.ts
+++ b/packages/frontend/src/components/MkFeaturedPhotos.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkFeaturedPhotos,
 };
 export const Default = {
-	components: {
-		MkFeaturedPhotos,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkFeaturedPhotos,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkFeaturedPhotos v-bind="$props" />',
+		};
 	},
-	template: '<MkFeaturedPhotos />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkFileCaptionEditWindow.stories.ts b/packages/frontend/src/components/MkFileCaptionEditWindow.stories.ts
index c86d7d1887c86604dfd4de294e81fc1dd33fa486..2ade1eef49a55626e0d72906e2a43b2cd765acd1 100644
--- a/packages/frontend/src/components/MkFileCaptionEditWindow.stories.ts
+++ b/packages/frontend/src/components/MkFileCaptionEditWindow.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkFileCaptionEditWindow,
 };
 export const Default = {
-	components: {
-		MkFileCaptionEditWindow,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkFileCaptionEditWindow,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkFileCaptionEditWindow v-bind="$props" />',
+		};
 	},
-	template: '<MkFileCaptionEditWindow />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkFileListForAdmin.stories.ts b/packages/frontend/src/components/MkFileListForAdmin.stories.ts
index cd66908fc6a17a0b648cbe440802a29f274fb227..22386b84c293c2cbbf8fe3f45fac01553cdcce40 100644
--- a/packages/frontend/src/components/MkFileListForAdmin.stories.ts
+++ b/packages/frontend/src/components/MkFileListForAdmin.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkFileListForAdmin,
 };
 export const Default = {
-	components: {
-		MkFileListForAdmin,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkFileListForAdmin,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkFileListForAdmin v-bind="$props" />',
+		};
 	},
-	template: '<MkFileListForAdmin />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkFlashPreview.stories.ts b/packages/frontend/src/components/MkFlashPreview.stories.ts
index ec23c2055ed6d93d0dfb320246d5b1bd4425058f..b8d218ed7064ed305683b6a6ca83e51576f511ea 100644
--- a/packages/frontend/src/components/MkFlashPreview.stories.ts
+++ b/packages/frontend/src/components/MkFlashPreview.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkFlashPreview,
 };
 export const Default = {
-	components: {
-		MkFlashPreview,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkFlashPreview,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkFlashPreview v-bind="$props" />',
+		};
 	},
-	template: '<MkFlashPreview />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkFoldableSection.stories.ts b/packages/frontend/src/components/MkFoldableSection.stories.ts
index 3760566e03a6d4c431d279f1bca2937295a0803c..80d9ca861585795a021c53757e033b122aff478a 100644
--- a/packages/frontend/src/components/MkFoldableSection.stories.ts
+++ b/packages/frontend/src/components/MkFoldableSection.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkFoldableSection,
 };
 export const Default = {
-	components: {
-		MkFoldableSection,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkFoldableSection,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkFoldableSection v-bind="$props" />',
+		};
 	},
-	template: '<MkFoldableSection />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkFolder.stories.ts b/packages/frontend/src/components/MkFolder.stories.ts
index b873a6238ce940c86367c0080cc69325f2c9dd2a..7eb6a3b0e3d08a52edda7e72349608d848b8df9c 100644
--- a/packages/frontend/src/components/MkFolder.stories.ts
+++ b/packages/frontend/src/components/MkFolder.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkFolder,
 };
 export const Default = {
-	components: {
-		MkFolder,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkFolder,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkFolder v-bind="$props" />',
+		};
 	},
-	template: '<MkFolder />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkFollowButton.stories.ts b/packages/frontend/src/components/MkFollowButton.stories.ts
index 51d7827dfcb848d54599651e8b1275f18efd04f8..4e85afa0147614dfdd6035f67a2c8a3d39c45ca1 100644
--- a/packages/frontend/src/components/MkFollowButton.stories.ts
+++ b/packages/frontend/src/components/MkFollowButton.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkFollowButton,
 };
 export const Default = {
-	components: {
-		MkFollowButton,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkFollowButton,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkFollowButton v-bind="$props" />',
+		};
 	},
-	template: '<MkFollowButton />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkForgotPassword.stories.ts b/packages/frontend/src/components/MkForgotPassword.stories.ts
index 3f809e69064567d1d8a435df51ee65a1d002cb94..6dd724aa12a9181fc078d23819f5f0c6bbbf69e0 100644
--- a/packages/frontend/src/components/MkForgotPassword.stories.ts
+++ b/packages/frontend/src/components/MkForgotPassword.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkForgotPassword,
 };
 export const Default = {
-	components: {
-		MkForgotPassword,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkForgotPassword,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkForgotPassword v-bind="$props" />',
+		};
 	},
-	template: '<MkForgotPassword />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkFormDialog.stories.ts b/packages/frontend/src/components/MkFormDialog.stories.ts
index 45e1c6b20f8d1f6fe5ecdeed67baaf7fe43063c9..6622424376b21705b865b007aabe4a6374fe87d5 100644
--- a/packages/frontend/src/components/MkFormDialog.stories.ts
+++ b/packages/frontend/src/components/MkFormDialog.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkFormDialog,
 };
 export const Default = {
-	components: {
-		MkFormDialog,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkFormDialog,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkFormDialog v-bind="$props" />',
+		};
 	},
-	template: '<MkFormDialog />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkGalleryPostPreview.stories.ts b/packages/frontend/src/components/MkGalleryPostPreview.stories.ts
index 89e4fe308022755a4953cf186be1686e94154464..18b0ab6ae10e0c0b15c9a00be9cce2cac1e3a937 100644
--- a/packages/frontend/src/components/MkGalleryPostPreview.stories.ts
+++ b/packages/frontend/src/components/MkGalleryPostPreview.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkGalleryPostPreview,
 };
 export const Default = {
-	components: {
-		MkGalleryPostPreview,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkGalleryPostPreview,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkGalleryPostPreview v-bind="$props" />',
+		};
 	},
-	template: '<MkGalleryPostPreview />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkGoogle.stories.ts b/packages/frontend/src/components/MkGoogle.stories.ts
index 01f147cd0a7f9f46d8a14a448ac188f9764eb109..660607038f2d6bf00c716e83b14369a2350c2a28 100644
--- a/packages/frontend/src/components/MkGoogle.stories.ts
+++ b/packages/frontend/src/components/MkGoogle.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkGoogle,
 };
 export const Default = {
-	components: {
-		MkGoogle,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkGoogle,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkGoogle v-bind="$props" />',
+		};
 	},
-	template: '<MkGoogle />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkHeatmap.stories.ts b/packages/frontend/src/components/MkHeatmap.stories.ts
index 334cde91c7a2f40fd1824446e49b102a46541699..1fdb8eb08156ed7c98bd57ec94a97fb966557a8e 100644
--- a/packages/frontend/src/components/MkHeatmap.stories.ts
+++ b/packages/frontend/src/components/MkHeatmap.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkHeatmap,
 };
 export const Default = {
-	components: {
-		MkHeatmap,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkHeatmap,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkHeatmap v-bind="$props" />',
+		};
 	},
-	template: '<MkHeatmap />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkImageViewer.stories.ts b/packages/frontend/src/components/MkImageViewer.stories.ts
index c2be14dcda05dfe73ed47637e2444fc59e59fd84..4f0ff7f437b3dd270f0bc15b3f34797628d9025b 100644
--- a/packages/frontend/src/components/MkImageViewer.stories.ts
+++ b/packages/frontend/src/components/MkImageViewer.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkImageViewer,
 };
 export const Default = {
-	components: {
-		MkImageViewer,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkImageViewer,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkImageViewer v-bind="$props" />',
+		};
 	},
-	template: '<MkImageViewer />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkImgWithBlurhash.stories.ts b/packages/frontend/src/components/MkImgWithBlurhash.stories.ts
index 06c2062af286843fcfba50e42f5ce51e0ad0878e..c00088d9b2fc7688e33855eaf62271594aa7213a 100644
--- a/packages/frontend/src/components/MkImgWithBlurhash.stories.ts
+++ b/packages/frontend/src/components/MkImgWithBlurhash.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkImgWithBlurhash,
 };
 export const Default = {
-	components: {
-		MkImgWithBlurhash,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkImgWithBlurhash,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkImgWithBlurhash v-bind="$props" />',
+		};
 	},
-	template: '<MkImgWithBlurhash />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkInfo.stories.ts b/packages/frontend/src/components/MkInfo.stories.ts
index d559660393827eeaf01f326c986f5263af84489d..1e164d42783171c7c476fda354d9bc294b926317 100644
--- a/packages/frontend/src/components/MkInfo.stories.ts
+++ b/packages/frontend/src/components/MkInfo.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkInfo,
 };
 export const Default = {
-	components: {
-		MkInfo,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkInfo,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkInfo v-bind="$props" />',
+		};
 	},
-	template: '<MkInfo />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkInput.stories.ts b/packages/frontend/src/components/MkInput.stories.ts
index 65d43322bb0ec81da6affaa0e894be448edb0e40..199a5b5392b938872adea4d1db749e1244563d39 100644
--- a/packages/frontend/src/components/MkInput.stories.ts
+++ b/packages/frontend/src/components/MkInput.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkInput,
 };
 export const Default = {
-	components: {
-		MkInput,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkInput,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkInput v-bind="$props" />',
+		};
 	},
-	template: '<MkInput />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkInstanceCardMini.stories.ts b/packages/frontend/src/components/MkInstanceCardMini.stories.ts
index 8bd0eb1b41930b02a6a6f9a325138f5557c5891b..fcc9e8f2eeb6d276a9653dbc672ca15ef63030fd 100644
--- a/packages/frontend/src/components/MkInstanceCardMini.stories.ts
+++ b/packages/frontend/src/components/MkInstanceCardMini.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkInstanceCardMini,
 };
 export const Default = {
-	components: {
-		MkInstanceCardMini,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkInstanceCardMini,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkInstanceCardMini v-bind="$props" />',
+		};
 	},
-	template: '<MkInstanceCardMini />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkInstanceStats.stories.ts b/packages/frontend/src/components/MkInstanceStats.stories.ts
index ee5aec9810554c51693690ef1a3ccc7242c653a1..74fa5359be5525a95af872f52642a617a9b89a95 100644
--- a/packages/frontend/src/components/MkInstanceStats.stories.ts
+++ b/packages/frontend/src/components/MkInstanceStats.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkInstanceStats,
 };
 export const Default = {
-	components: {
-		MkInstanceStats,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkInstanceStats,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkInstanceStats v-bind="$props" />',
+		};
 	},
-	template: '<MkInstanceStats />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkInstanceTicker.stories.ts b/packages/frontend/src/components/MkInstanceTicker.stories.ts
index c8809ad876b58789bb022318dbac6d2c63b075cf..87eb49a7c786cc9cd8d6ff54fe76e9658cabe0c5 100644
--- a/packages/frontend/src/components/MkInstanceTicker.stories.ts
+++ b/packages/frontend/src/components/MkInstanceTicker.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkInstanceTicker,
 };
 export const Default = {
-	components: {
-		MkInstanceTicker,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkInstanceTicker,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkInstanceTicker v-bind="$props" />',
+		};
 	},
-	template: '<MkInstanceTicker />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkKeyValue.stories.ts b/packages/frontend/src/components/MkKeyValue.stories.ts
index a69bd185ad72dac7ee1e4bcf484aa1c6b80efcaf..83753e146c1fa884d5f15dff5ba1402aecba1d3a 100644
--- a/packages/frontend/src/components/MkKeyValue.stories.ts
+++ b/packages/frontend/src/components/MkKeyValue.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkKeyValue,
 };
 export const Default = {
-	components: {
-		MkKeyValue,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkKeyValue,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkKeyValue v-bind="$props" />',
+		};
 	},
-	template: '<MkKeyValue />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkLaunchPad.stories.ts b/packages/frontend/src/components/MkLaunchPad.stories.ts
index 3c58063e39f2055c11a9a0849b30732b765604b0..02e239763d5598ab1951339b94c84fd5972b57a0 100644
--- a/packages/frontend/src/components/MkLaunchPad.stories.ts
+++ b/packages/frontend/src/components/MkLaunchPad.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkLaunchPad,
 };
 export const Default = {
-	components: {
-		MkLaunchPad,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkLaunchPad,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkLaunchPad v-bind="$props" />',
+		};
 	},
-	template: '<MkLaunchPad />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkLink.stories.ts b/packages/frontend/src/components/MkLink.stories.ts
index 5445eb8593dd9ff42fe1102fa169a3c0ce9379ce..33baee8702ee3bf2abc388e6af00098f4eccf42c 100644
--- a/packages/frontend/src/components/MkLink.stories.ts
+++ b/packages/frontend/src/components/MkLink.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkLink,
 };
 export const Default = {
-	components: {
-		MkLink,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkLink,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkLink v-bind="$props" />',
+		};
 	},
-	template: '<MkLink />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkMarquee.stories.ts b/packages/frontend/src/components/MkMarquee.stories.ts
index 14981dbd537d9c2e76a24cf5b2efd374aa19ff4c..9fec1d5a89e0da205ce6ecc9aa9ca3ebc11435cf 100644
--- a/packages/frontend/src/components/MkMarquee.stories.ts
+++ b/packages/frontend/src/components/MkMarquee.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkMarquee,
 };
 export const Default = {
-	components: {
-		MkMarquee,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkMarquee,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkMarquee v-bind="$props" />',
+		};
 	},
-	template: '<MkMarquee />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkMediaBanner.stories.ts b/packages/frontend/src/components/MkMediaBanner.stories.ts
index 90424768c9e04c7bef2dc3225a5db1f23a427009..dcf57f0cc8e36ca6d83cb942c128540b63ec6bd5 100644
--- a/packages/frontend/src/components/MkMediaBanner.stories.ts
+++ b/packages/frontend/src/components/MkMediaBanner.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkMediaBanner,
 };
 export const Default = {
-	components: {
-		MkMediaBanner,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkMediaBanner,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkMediaBanner v-bind="$props" />',
+		};
 	},
-	template: '<MkMediaBanner />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkMediaImage.stories.ts b/packages/frontend/src/components/MkMediaImage.stories.ts
index bc985ff171e6bd20b61dde089b0870656371605d..cb495872da47bcfe3c1fd8c8f3353899aa98c742 100644
--- a/packages/frontend/src/components/MkMediaImage.stories.ts
+++ b/packages/frontend/src/components/MkMediaImage.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkMediaImage,
 };
 export const Default = {
-	components: {
-		MkMediaImage,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkMediaImage,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkMediaImage v-bind="$props" />',
+		};
 	},
-	template: '<MkMediaImage />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkMediaList.stories.ts b/packages/frontend/src/components/MkMediaList.stories.ts
index 0b38efe507b3ecd4dbd39fa628285d5c2543536c..87eb23dc89b96f31129cf28293045ac7c6e143b2 100644
--- a/packages/frontend/src/components/MkMediaList.stories.ts
+++ b/packages/frontend/src/components/MkMediaList.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkMediaList,
 };
 export const Default = {
-	components: {
-		MkMediaList,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkMediaList,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkMediaList v-bind="$props" />',
+		};
 	},
-	template: '<MkMediaList />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkMediaVideo.stories.ts b/packages/frontend/src/components/MkMediaVideo.stories.ts
index 7b25dcef02154f47e69b630f22aadc584a564237..a39adebbe79e273857296d032ac82551037ae937 100644
--- a/packages/frontend/src/components/MkMediaVideo.stories.ts
+++ b/packages/frontend/src/components/MkMediaVideo.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkMediaVideo,
 };
 export const Default = {
-	components: {
-		MkMediaVideo,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkMediaVideo,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkMediaVideo v-bind="$props" />',
+		};
 	},
-	template: '<MkMediaVideo />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkMention.stories.ts b/packages/frontend/src/components/MkMention.stories.ts
index d03eeaf7e9c7cb16f971d289ae1c5c14c1da4c0c..459633a07a6c916947f0bfa8861288abc8baa079 100644
--- a/packages/frontend/src/components/MkMention.stories.ts
+++ b/packages/frontend/src/components/MkMention.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkMention,
 };
 export const Default = {
-	components: {
-		MkMention,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkMention,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkMention v-bind="$props" />',
+		};
 	},
-	template: '<MkMention />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkMenu.child.stories.ts b/packages/frontend/src/components/MkMenu.child.stories.ts
index cec1d4c726eb20c969969e920a52f8036a00879c..114d710409b76a4c658531ab96c6583f99aa6bbf 100644
--- a/packages/frontend/src/components/MkMenu.child.stories.ts
+++ b/packages/frontend/src/components/MkMenu.child.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkMenu_child,
 };
 export const Default = {
-	components: {
-		MkMenu_child,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkMenu_child,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkMenu_child v-bind="$props" />',
+		};
 	},
-	template: '<MkMenu_child />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkMenu.stories.ts b/packages/frontend/src/components/MkMenu.stories.ts
index 79f4714bc705271ab79cebcb4a0fde589f38c3a8..9a293bcc9c9dbb9a6f94ce008b1e797890eb5279 100644
--- a/packages/frontend/src/components/MkMenu.stories.ts
+++ b/packages/frontend/src/components/MkMenu.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkMenu,
 };
 export const Default = {
-	components: {
-		MkMenu,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkMenu,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkMenu v-bind="$props" />',
+		};
 	},
-	template: '<MkMenu />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkMiniChart.stories.ts b/packages/frontend/src/components/MkMiniChart.stories.ts
index 18f37447cf597a6285631d4670b3878d2d3d2053..f773bafe252067dfb192708fce6bad8c913dae09 100644
--- a/packages/frontend/src/components/MkMiniChart.stories.ts
+++ b/packages/frontend/src/components/MkMiniChart.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkMiniChart,
 };
 export const Default = {
-	components: {
-		MkMiniChart,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkMiniChart,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkMiniChart v-bind="$props" />',
+		};
 	},
-	template: '<MkMiniChart />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkModal.stories.ts b/packages/frontend/src/components/MkModal.stories.ts
index d1c3977006b71a4c7779097d13d778e2a0c7ea43..84f40abc0d58c3050717da00f7e1badb20456c86 100644
--- a/packages/frontend/src/components/MkModal.stories.ts
+++ b/packages/frontend/src/components/MkModal.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkModal,
 };
 export const Default = {
-	components: {
-		MkModal,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkModal,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkModal v-bind="$props" />',
+		};
 	},
-	template: '<MkModal />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkModalPageWindow.stories.ts b/packages/frontend/src/components/MkModalPageWindow.stories.ts
index c4c162f789770ba5075ce0937021a1420a1faee6..331281879942e2a378a36fcb397c6ef806655461 100644
--- a/packages/frontend/src/components/MkModalPageWindow.stories.ts
+++ b/packages/frontend/src/components/MkModalPageWindow.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkModalPageWindow,
 };
 export const Default = {
-	components: {
-		MkModalPageWindow,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkModalPageWindow,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkModalPageWindow v-bind="$props" />',
+		};
 	},
-	template: '<MkModalPageWindow />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkModalWindow.stories.ts b/packages/frontend/src/components/MkModalWindow.stories.ts
index 2212cd6a4db58cf7df457990eac515f861fc0cff..7e71ae071612cc78450914e3c9cc19678bbe86db 100644
--- a/packages/frontend/src/components/MkModalWindow.stories.ts
+++ b/packages/frontend/src/components/MkModalWindow.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkModalWindow,
 };
 export const Default = {
-	components: {
-		MkModalWindow,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkModalWindow,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkModalWindow v-bind="$props" />',
+		};
 	},
-	template: '<MkModalWindow />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkNote.stories.ts b/packages/frontend/src/components/MkNote.stories.ts
index d828d38446f5efef49a396ff5488b18825942217..47dfafc76368bd02f86e8ea5c1396c9cfd10fb8a 100644
--- a/packages/frontend/src/components/MkNote.stories.ts
+++ b/packages/frontend/src/components/MkNote.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkNote,
 };
 export const Default = {
-	components: {
-		MkNote,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkNote,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkNote v-bind="$props" />',
+		};
 	},
-	template: '<MkNote />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkNoteDetailed.stories.ts b/packages/frontend/src/components/MkNoteDetailed.stories.ts
index b787ea37bd89e22f9e11a34c7708df724611b4b5..3e106adfaae98b4beba1052e7aff83856a058111 100644
--- a/packages/frontend/src/components/MkNoteDetailed.stories.ts
+++ b/packages/frontend/src/components/MkNoteDetailed.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkNoteDetailed,
 };
 export const Default = {
-	components: {
-		MkNoteDetailed,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkNoteDetailed,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkNoteDetailed v-bind="$props" />',
+		};
 	},
-	template: '<MkNoteDetailed />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkNoteHeader.stories.ts b/packages/frontend/src/components/MkNoteHeader.stories.ts
index af7c5b27042838d37e10771f86851768f2fe3560..e49279ae585afaf7ac6d3333c9baa16e7f96f7dc 100644
--- a/packages/frontend/src/components/MkNoteHeader.stories.ts
+++ b/packages/frontend/src/components/MkNoteHeader.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkNoteHeader,
 };
 export const Default = {
-	components: {
-		MkNoteHeader,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkNoteHeader,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkNoteHeader v-bind="$props" />',
+		};
 	},
-	template: '<MkNoteHeader />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkNotePreview.stories.ts b/packages/frontend/src/components/MkNotePreview.stories.ts
index 5feba941c15a86357a6c4c15eb8a9762236e6d5f..d3074aacae87a74e1a2b5496974293872cd2ea43 100644
--- a/packages/frontend/src/components/MkNotePreview.stories.ts
+++ b/packages/frontend/src/components/MkNotePreview.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkNotePreview,
 };
 export const Default = {
-	components: {
-		MkNotePreview,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkNotePreview,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkNotePreview v-bind="$props" />',
+		};
 	},
-	template: '<MkNotePreview />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkNoteSimple.stories.ts b/packages/frontend/src/components/MkNoteSimple.stories.ts
index 14fe3aea810c915cbb4039fe754ce4f5f5a0127b..60676a0f85058eae0842b4fb253eb8cd343ee84c 100644
--- a/packages/frontend/src/components/MkNoteSimple.stories.ts
+++ b/packages/frontend/src/components/MkNoteSimple.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkNoteSimple,
 };
 export const Default = {
-	components: {
-		MkNoteSimple,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkNoteSimple,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkNoteSimple v-bind="$props" />',
+		};
 	},
-	template: '<MkNoteSimple />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkNoteSub.stories.ts b/packages/frontend/src/components/MkNoteSub.stories.ts
index 9d526ec98fd66551c79a69afc3017fc05c006bc0..4e63f957012777b322099873f0402bfbb0e4d64c 100644
--- a/packages/frontend/src/components/MkNoteSub.stories.ts
+++ b/packages/frontend/src/components/MkNoteSub.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkNoteSub,
 };
 export const Default = {
-	components: {
-		MkNoteSub,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkNoteSub,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkNoteSub v-bind="$props" />',
+		};
 	},
-	template: '<MkNoteSub />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkNotes.stories.ts b/packages/frontend/src/components/MkNotes.stories.ts
index 8c2a39d66af655e6fe466d59bfcda64e31bfe361..ee559a017be93fcdb564b74638227425a7024038 100644
--- a/packages/frontend/src/components/MkNotes.stories.ts
+++ b/packages/frontend/src/components/MkNotes.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkNotes,
 };
 export const Default = {
-	components: {
-		MkNotes,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkNotes,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkNotes v-bind="$props" />',
+		};
 	},
-	template: '<MkNotes />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkNotification.stories.ts b/packages/frontend/src/components/MkNotification.stories.ts
index 13f5d751ad60567d22c01ecab297fd0d2afa7d97..7960900a8d8b9e9ea0e300d07ac4f12dc52b81b9 100644
--- a/packages/frontend/src/components/MkNotification.stories.ts
+++ b/packages/frontend/src/components/MkNotification.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkNotification,
 };
 export const Default = {
-	components: {
-		MkNotification,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkNotification,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkNotification v-bind="$props" />',
+		};
 	},
-	template: '<MkNotification />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkNotificationSettingWindow.stories.ts b/packages/frontend/src/components/MkNotificationSettingWindow.stories.ts
index adc6627f58fecf68d73f9f28dc8419b24c399baa..78dc44c8ad2b96d69c136cbae9e759281aa11567 100644
--- a/packages/frontend/src/components/MkNotificationSettingWindow.stories.ts
+++ b/packages/frontend/src/components/MkNotificationSettingWindow.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkNotificationSettingWindow,
 };
 export const Default = {
-	components: {
-		MkNotificationSettingWindow,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkNotificationSettingWindow,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkNotificationSettingWindow v-bind="$props" />',
+		};
 	},
-	template: '<MkNotificationSettingWindow />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkNotifications.stories.ts b/packages/frontend/src/components/MkNotifications.stories.ts
index b1f73956f0ef65281b57356f9f26e6850af223aa..e340422e1f3b7ab6204383d2b9f4ff8d3b5d2c45 100644
--- a/packages/frontend/src/components/MkNotifications.stories.ts
+++ b/packages/frontend/src/components/MkNotifications.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkNotifications,
 };
 export const Default = {
-	components: {
-		MkNotifications,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkNotifications,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkNotifications v-bind="$props" />',
+		};
 	},
-	template: '<MkNotifications />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkNumber.stories.ts b/packages/frontend/src/components/MkNumber.stories.ts
index 9b9495ab8c33669cf7d30441b0d5b81dbd7308f9..fc86c0025090b7043157dc0f9ad2ab42a5625213 100644
--- a/packages/frontend/src/components/MkNumber.stories.ts
+++ b/packages/frontend/src/components/MkNumber.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkNumber,
 };
 export const Default = {
-	components: {
-		MkNumber,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkNumber,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkNumber v-bind="$props" />',
+		};
 	},
-	template: '<MkNumber />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkNumberDiff.stories.ts b/packages/frontend/src/components/MkNumberDiff.stories.ts
index 9430fd1619e8173701ded8ecdaa88f535ff250ef..715bbb5439263d2f9e99b0a9b346ceb1fb2d9817 100644
--- a/packages/frontend/src/components/MkNumberDiff.stories.ts
+++ b/packages/frontend/src/components/MkNumberDiff.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkNumberDiff,
 };
 export const Default = {
-	components: {
-		MkNumberDiff,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkNumberDiff,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkNumberDiff v-bind="$props" />',
+		};
 	},
-	template: '<MkNumberDiff />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkObjectView.stories.ts b/packages/frontend/src/components/MkObjectView.stories.ts
index d44e3ee69931a9784b6115affd41281bfd0838e9..746dccc3758ec1d9d0c378d86fa3ad2ee8ec9d8c 100644
--- a/packages/frontend/src/components/MkObjectView.stories.ts
+++ b/packages/frontend/src/components/MkObjectView.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkObjectView,
 };
 export const Default = {
-	components: {
-		MkObjectView,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkObjectView,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkObjectView v-bind="$props" />',
+		};
 	},
-	template: '<MkObjectView />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkObjectView.value.stories.ts b/packages/frontend/src/components/MkObjectView.value.stories.ts
index 27bc7958ee50aa41cf40535ddd11f672d14b330a..8e189783766ecaf3ff1258fce7e2bf3601b6050e 100644
--- a/packages/frontend/src/components/MkObjectView.value.stories.ts
+++ b/packages/frontend/src/components/MkObjectView.value.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkObjectView_value,
 };
 export const Default = {
-	components: {
-		MkObjectView_value,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkObjectView_value,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkObjectView_value v-bind="$props" />',
+		};
 	},
-	template: '<MkObjectView_value />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkOmit.stories.ts b/packages/frontend/src/components/MkOmit.stories.ts
index f2621961d91eb6dc19b35177be7d049220e05c2a..4d954fd2367c35fb08cb0b041bc1dac4c0999e69 100644
--- a/packages/frontend/src/components/MkOmit.stories.ts
+++ b/packages/frontend/src/components/MkOmit.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkOmit,
 };
 export const Default = {
-	components: {
-		MkOmit,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkOmit,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkOmit v-bind="$props" />',
+		};
 	},
-	template: '<MkOmit />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkPagePreview.stories.ts b/packages/frontend/src/components/MkPagePreview.stories.ts
index 17cf7c4c3e28d78fea433de3cec85733818cc769..dd96afa285943a55a172870e51233b38bb9f5f98 100644
--- a/packages/frontend/src/components/MkPagePreview.stories.ts
+++ b/packages/frontend/src/components/MkPagePreview.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkPagePreview,
 };
 export const Default = {
-	components: {
-		MkPagePreview,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkPagePreview,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkPagePreview v-bind="$props" />',
+		};
 	},
-	template: '<MkPagePreview />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkPageWindow.stories.ts b/packages/frontend/src/components/MkPageWindow.stories.ts
index e71e348ae5abb74c4f6861418b356f5518dbb766..f1c8b3b244a086a8f24dd1552f41bcffe53f5b20 100644
--- a/packages/frontend/src/components/MkPageWindow.stories.ts
+++ b/packages/frontend/src/components/MkPageWindow.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkPageWindow,
 };
 export const Default = {
-	components: {
-		MkPageWindow,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkPageWindow,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkPageWindow v-bind="$props" />',
+		};
 	},
-	template: '<MkPageWindow />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkPagination.stories.ts b/packages/frontend/src/components/MkPagination.stories.ts
index 9bebe36742803121538e73dfbd138c6d0d8cbc67..3b89bb4b2650d676acee78ad7fe09535af2799d9 100644
--- a/packages/frontend/src/components/MkPagination.stories.ts
+++ b/packages/frontend/src/components/MkPagination.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkPagination,
 };
 export const Default = {
-	components: {
-		MkPagination,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkPagination,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkPagination v-bind="$props" />',
+		};
 	},
-	template: '<MkPagination />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkPlusOneEffect.stories.ts b/packages/frontend/src/components/MkPlusOneEffect.stories.ts
index a8a47b896c8ed3908326820b6cbab782118c5aac..10cf1f372de452161880a8e228c98b9d0323b3a3 100644
--- a/packages/frontend/src/components/MkPlusOneEffect.stories.ts
+++ b/packages/frontend/src/components/MkPlusOneEffect.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkPlusOneEffect,
 };
 export const Default = {
-	components: {
-		MkPlusOneEffect,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkPlusOneEffect,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkPlusOneEffect v-bind="$props" />',
+		};
 	},
-	template: '<MkPlusOneEffect />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkPoll.stories.ts b/packages/frontend/src/components/MkPoll.stories.ts
index fea5821fedb50a951db2423d5a75441888eb8aec..154c67511936a6843e61bb3493f9e7ebc84f3b63 100644
--- a/packages/frontend/src/components/MkPoll.stories.ts
+++ b/packages/frontend/src/components/MkPoll.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkPoll,
 };
 export const Default = {
-	components: {
-		MkPoll,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkPoll,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkPoll v-bind="$props" />',
+		};
 	},
-	template: '<MkPoll />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkPollEditor.stories.ts b/packages/frontend/src/components/MkPollEditor.stories.ts
index c332f1c8092fc43cbfb2e232398d8b1a6022d1b8..09acb5f4ab40924015c6640f16a6d793c4908249 100644
--- a/packages/frontend/src/components/MkPollEditor.stories.ts
+++ b/packages/frontend/src/components/MkPollEditor.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkPollEditor,
 };
 export const Default = {
-	components: {
-		MkPollEditor,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkPollEditor,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkPollEditor v-bind="$props" />',
+		};
 	},
-	template: '<MkPollEditor />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkPopupMenu.stories.ts b/packages/frontend/src/components/MkPopupMenu.stories.ts
index 127227e1d09fd582de189db2eee788c40935fe06..acb5b6939cf9c409747a7254a21092e9efefd4fb 100644
--- a/packages/frontend/src/components/MkPopupMenu.stories.ts
+++ b/packages/frontend/src/components/MkPopupMenu.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkPopupMenu,
 };
 export const Default = {
-	components: {
-		MkPopupMenu,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkPopupMenu,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkPopupMenu v-bind="$props" />',
+		};
 	},
-	template: '<MkPopupMenu />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkPostForm.stories.ts b/packages/frontend/src/components/MkPostForm.stories.ts
index b459222fc6c360d4a8e5c1ab46b337babeefc72e..da9b8947ba69399eed9314223eb42c50d97e2b3b 100644
--- a/packages/frontend/src/components/MkPostForm.stories.ts
+++ b/packages/frontend/src/components/MkPostForm.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkPostForm,
 };
 export const Default = {
-	components: {
-		MkPostForm,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkPostForm,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkPostForm v-bind="$props" />',
+		};
 	},
-	template: '<MkPostForm />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkPostFormAttaches.stories.ts b/packages/frontend/src/components/MkPostFormAttaches.stories.ts
index ea67d38e6ed30f62b7eaea09312186201fa86102..717385b1faf600fd5be56ea5cacc309c68cdae44 100644
--- a/packages/frontend/src/components/MkPostFormAttaches.stories.ts
+++ b/packages/frontend/src/components/MkPostFormAttaches.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkPostFormAttaches,
 };
 export const Default = {
-	components: {
-		MkPostFormAttaches,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkPostFormAttaches,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkPostFormAttaches v-bind="$props" />',
+		};
 	},
-	template: '<MkPostFormAttaches />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkPostFormDialog.stories.ts b/packages/frontend/src/components/MkPostFormDialog.stories.ts
index 0683ce770803d3cd091f5a79438e26db0a24298c..18a0f75ced114793b1a2a2e4e377330053208898 100644
--- a/packages/frontend/src/components/MkPostFormDialog.stories.ts
+++ b/packages/frontend/src/components/MkPostFormDialog.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkPostFormDialog,
 };
 export const Default = {
-	components: {
-		MkPostFormDialog,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkPostFormDialog,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkPostFormDialog v-bind="$props" />',
+		};
 	},
-	template: '<MkPostFormDialog />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkPushNotificationAllowButton.stories.ts b/packages/frontend/src/components/MkPushNotificationAllowButton.stories.ts
index 339cfc8ecc1520d47f4b2a2190259e33b1fcea3f..20af9677801442346a3c5fea8b96fe2b44a10522 100644
--- a/packages/frontend/src/components/MkPushNotificationAllowButton.stories.ts
+++ b/packages/frontend/src/components/MkPushNotificationAllowButton.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkPushNotificationAllowButton,
 };
 export const Default = {
-	components: {
-		MkPushNotificationAllowButton,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkPushNotificationAllowButton,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkPushNotificationAllowButton v-bind="$props" />',
+		};
 	},
-	template: '<MkPushNotificationAllowButton />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkRadio.stories.ts b/packages/frontend/src/components/MkRadio.stories.ts
index 5f3a5ef25ffd4756fafd1ddc84c14b5379c2c149..34037cd78257d4539b8504cacf36a07516e01ec4 100644
--- a/packages/frontend/src/components/MkRadio.stories.ts
+++ b/packages/frontend/src/components/MkRadio.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkRadio,
 };
 export const Default = {
-	components: {
-		MkRadio,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkRadio,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkRadio v-bind="$props" />',
+		};
 	},
-	template: '<MkRadio />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkRadios.stories.ts b/packages/frontend/src/components/MkRadios.stories.ts
index ac6e9f61e6006f2514a8163dad52d9540b103d06..0a12b130c9a978cf14f30a439483e148892c24d7 100644
--- a/packages/frontend/src/components/MkRadios.stories.ts
+++ b/packages/frontend/src/components/MkRadios.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkRadios,
 };
 export const Default = {
-	components: {
-		MkRadios,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkRadios,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkRadios v-bind="$props" />',
+		};
 	},
-	template: '<MkRadios />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkRange.stories.ts b/packages/frontend/src/components/MkRange.stories.ts
index c46122334d7156e648cd20e9f1896ac0264b7bf2..764f7ac5b741cf429d384d45efd6e4f54380cc71 100644
--- a/packages/frontend/src/components/MkRange.stories.ts
+++ b/packages/frontend/src/components/MkRange.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkRange,
 };
 export const Default = {
-	components: {
-		MkRange,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkRange,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkRange v-bind="$props" />',
+		};
 	},
-	template: '<MkRange />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkReactedUsersDialog.stories.ts b/packages/frontend/src/components/MkReactedUsersDialog.stories.ts
index 395f951346da545fcd9e280029878176d299a18a..bf470a833a458c89ec8e14990aec348381647d14 100644
--- a/packages/frontend/src/components/MkReactedUsersDialog.stories.ts
+++ b/packages/frontend/src/components/MkReactedUsersDialog.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkReactedUsersDialog,
 };
 export const Default = {
-	components: {
-		MkReactedUsersDialog,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkReactedUsersDialog,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkReactedUsersDialog v-bind="$props" />',
+		};
 	},
-	template: '<MkReactedUsersDialog />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkReactionEffect.stories.ts b/packages/frontend/src/components/MkReactionEffect.stories.ts
index 7b9ca42e2555ee7428b217824867681c8ea2d16e..c0d5b4a15498d5e465c7d9e5ec66a6f8a56269b0 100644
--- a/packages/frontend/src/components/MkReactionEffect.stories.ts
+++ b/packages/frontend/src/components/MkReactionEffect.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkReactionEffect,
 };
 export const Default = {
-	components: {
-		MkReactionEffect,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkReactionEffect,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkReactionEffect v-bind="$props" />',
+		};
 	},
-	template: '<MkReactionEffect />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkReactionIcon.stories.ts b/packages/frontend/src/components/MkReactionIcon.stories.ts
index 271eb3ed6abc46ce92c159ac870567d04e20f747..37e329f34ae273a77468b0c0e17ff6fdd42ee538 100644
--- a/packages/frontend/src/components/MkReactionIcon.stories.ts
+++ b/packages/frontend/src/components/MkReactionIcon.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkReactionIcon,
 };
 export const Default = {
-	components: {
-		MkReactionIcon,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkReactionIcon,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkReactionIcon v-bind="$props" />',
+		};
 	},
-	template: '<MkReactionIcon />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkReactionTooltip.stories.ts b/packages/frontend/src/components/MkReactionTooltip.stories.ts
index e4ca21352efc39cbf7591174e3df9dbc8e71eda5..16e5fca1c47b90cc3ff29475537e7418af59b783 100644
--- a/packages/frontend/src/components/MkReactionTooltip.stories.ts
+++ b/packages/frontend/src/components/MkReactionTooltip.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkReactionTooltip,
 };
 export const Default = {
-	components: {
-		MkReactionTooltip,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkReactionTooltip,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkReactionTooltip v-bind="$props" />',
+		};
 	},
-	template: '<MkReactionTooltip />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkReactionsViewer.details.stories.ts b/packages/frontend/src/components/MkReactionsViewer.details.stories.ts
index 449e035549eb1200b6a1ab0c391734c7575bab2e..d373edf3c1091090c1270bb0606b68bc24f2d5fc 100644
--- a/packages/frontend/src/components/MkReactionsViewer.details.stories.ts
+++ b/packages/frontend/src/components/MkReactionsViewer.details.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkReactionsViewer_details,
 };
 export const Default = {
-	components: {
-		MkReactionsViewer_details,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkReactionsViewer_details,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkReactionsViewer_details v-bind="$props" />',
+		};
 	},
-	template: '<MkReactionsViewer_details />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkReactionsViewer.reaction.stories.ts b/packages/frontend/src/components/MkReactionsViewer.reaction.stories.ts
index cbe9a98c7ffa413e0a399721708b5da0ef555613..b56f13bb5cb0c9b60c0647e5f059b2dcc06ba916 100644
--- a/packages/frontend/src/components/MkReactionsViewer.reaction.stories.ts
+++ b/packages/frontend/src/components/MkReactionsViewer.reaction.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkReactionsViewer_reaction,
 };
 export const Default = {
-	components: {
-		MkReactionsViewer_reaction,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkReactionsViewer_reaction,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkReactionsViewer_reaction v-bind="$props" />',
+		};
 	},
-	template: '<MkReactionsViewer_reaction />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkReactionsViewer.stories.ts b/packages/frontend/src/components/MkReactionsViewer.stories.ts
index 33d1108825b34ea67386d30062751f270b1dd4fc..18addf460d92457ee72476b669cb992d2213847e 100644
--- a/packages/frontend/src/components/MkReactionsViewer.stories.ts
+++ b/packages/frontend/src/components/MkReactionsViewer.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkReactionsViewer,
 };
 export const Default = {
-	components: {
-		MkReactionsViewer,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkReactionsViewer,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkReactionsViewer v-bind="$props" />',
+		};
 	},
-	template: '<MkReactionsViewer />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkRemoteCaution.stories.ts b/packages/frontend/src/components/MkRemoteCaution.stories.ts
index 726a4f4db5b67b2a111626d4419ff8b90bd06960..4f4f8054a79628c57ceab57b28785a81813b2282 100644
--- a/packages/frontend/src/components/MkRemoteCaution.stories.ts
+++ b/packages/frontend/src/components/MkRemoteCaution.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkRemoteCaution,
 };
 export const Default = {
-	components: {
-		MkRemoteCaution,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkRemoteCaution,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkRemoteCaution v-bind="$props" />',
+		};
 	},
-	template: '<MkRemoteCaution />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkRetentionHeatmap.stories.ts b/packages/frontend/src/components/MkRetentionHeatmap.stories.ts
index e348f2bd4bfdca4fbc060e83adbd39221beec9ee..0eca578c36c131a95b0392f1831824aee8f82cfb 100644
--- a/packages/frontend/src/components/MkRetentionHeatmap.stories.ts
+++ b/packages/frontend/src/components/MkRetentionHeatmap.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkRetentionHeatmap,
 };
 export const Default = {
-	components: {
-		MkRetentionHeatmap,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkRetentionHeatmap,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkRetentionHeatmap v-bind="$props" />',
+		};
 	},
-	template: '<MkRetentionHeatmap />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkRippleEffect.stories.ts b/packages/frontend/src/components/MkRippleEffect.stories.ts
index 8b405f3e63018e6afd0936ae561e27be58a35021..4b054be4366aa7312bb960d026b5810cca54e430 100644
--- a/packages/frontend/src/components/MkRippleEffect.stories.ts
+++ b/packages/frontend/src/components/MkRippleEffect.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkRippleEffect,
 };
 export const Default = {
-	components: {
-		MkRippleEffect,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkRippleEffect,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkRippleEffect v-bind="$props" />',
+		};
 	},
-	template: '<MkRippleEffect />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkRolePreview.stories.ts b/packages/frontend/src/components/MkRolePreview.stories.ts
index 84fa9ccf347cda4b4e6758c2882f377956abfa5e..f4306233cb9146ed4cce54c5134d5e268691d3ca 100644
--- a/packages/frontend/src/components/MkRolePreview.stories.ts
+++ b/packages/frontend/src/components/MkRolePreview.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkRolePreview,
 };
 export const Default = {
-	components: {
-		MkRolePreview,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkRolePreview,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkRolePreview v-bind="$props" />',
+		};
 	},
-	template: '<MkRolePreview />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkSample.stories.ts b/packages/frontend/src/components/MkSample.stories.ts
index dba9e304d86e3e670dd4e04b351fa4f565610575..14cd69bd673f23dc27d59ad28c308e9302d8f63e 100644
--- a/packages/frontend/src/components/MkSample.stories.ts
+++ b/packages/frontend/src/components/MkSample.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkSample,
 };
 export const Default = {
-	components: {
-		MkSample,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkSample,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkSample v-bind="$props" />',
+		};
 	},
-	template: '<MkSample />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkSelect.stories.ts b/packages/frontend/src/components/MkSelect.stories.ts
index 18d2a35844c6a57ae31557f05771dbf1ada93aa7..0e67a6723810ecdbd280351e52011cb52cb997d0 100644
--- a/packages/frontend/src/components/MkSelect.stories.ts
+++ b/packages/frontend/src/components/MkSelect.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkSelect,
 };
 export const Default = {
-	components: {
-		MkSelect,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkSelect,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkSelect v-bind="$props" />',
+		};
 	},
-	template: '<MkSelect />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkSignin.stories.ts b/packages/frontend/src/components/MkSignin.stories.ts
index a50d15d869448b9b7fc8809c68b31357d5d6fb4b..32a52771df85eb5d3ea1cf11cf68ea55542b0938 100644
--- a/packages/frontend/src/components/MkSignin.stories.ts
+++ b/packages/frontend/src/components/MkSignin.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkSignin,
 };
 export const Default = {
-	components: {
-		MkSignin,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkSignin,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkSignin v-bind="$props" />',
+		};
 	},
-	template: '<MkSignin />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkSigninDialog.stories.ts b/packages/frontend/src/components/MkSigninDialog.stories.ts
index 1540c571a6159cc6f280e06fa59a41f1b5c9df4d..b05096452b52e08e7044efd30119b23fca8e556c 100644
--- a/packages/frontend/src/components/MkSigninDialog.stories.ts
+++ b/packages/frontend/src/components/MkSigninDialog.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkSigninDialog,
 };
 export const Default = {
-	components: {
-		MkSigninDialog,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkSigninDialog,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkSigninDialog v-bind="$props" />',
+		};
 	},
-	template: '<MkSigninDialog />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkSignup.stories.ts b/packages/frontend/src/components/MkSignup.stories.ts
index a1b8c723ca6eb349cea3bff85362634b34013811..665a5881e293b2db277f4e71fbfb4e4ede7a5338 100644
--- a/packages/frontend/src/components/MkSignup.stories.ts
+++ b/packages/frontend/src/components/MkSignup.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkSignup,
 };
 export const Default = {
-	components: {
-		MkSignup,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkSignup,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkSignup v-bind="$props" />',
+		};
 	},
-	template: '<MkSignup />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkSignupDialog.stories.ts b/packages/frontend/src/components/MkSignupDialog.stories.ts
index c0253a3cd8ff46bf04f2ed09c45196f73277f8e2..4e1316fed52ff3542473c1fe5903fdb884bb4031 100644
--- a/packages/frontend/src/components/MkSignupDialog.stories.ts
+++ b/packages/frontend/src/components/MkSignupDialog.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkSignupDialog,
 };
 export const Default = {
-	components: {
-		MkSignupDialog,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkSignupDialog,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkSignupDialog v-bind="$props" />',
+		};
 	},
-	template: '<MkSignupDialog />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkSparkle.stories.ts b/packages/frontend/src/components/MkSparkle.stories.ts
index f5d82ef610065182ea34dc1ca329c106a804018e..22dc8af7d2fbebd19b6b9c2ef3539e81b422482a 100644
--- a/packages/frontend/src/components/MkSparkle.stories.ts
+++ b/packages/frontend/src/components/MkSparkle.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkSparkle,
 };
 export const Default = {
-	components: {
-		MkSparkle,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkSparkle,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkSparkle v-bind="$props" />',
+		};
 	},
-	template: '<MkSparkle />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkSubNoteContent.stories.ts b/packages/frontend/src/components/MkSubNoteContent.stories.ts
index 557775d4192615a4e03e53ed198197b7d41cea49..d83aef13283287ed02b69bdda4f3801b339d6ca5 100644
--- a/packages/frontend/src/components/MkSubNoteContent.stories.ts
+++ b/packages/frontend/src/components/MkSubNoteContent.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkSubNoteContent,
 };
 export const Default = {
-	components: {
-		MkSubNoteContent,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkSubNoteContent,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkSubNoteContent v-bind="$props" />',
+		};
 	},
-	template: '<MkSubNoteContent />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkSuperMenu.stories.ts b/packages/frontend/src/components/MkSuperMenu.stories.ts
index 76ed607f9598d95bdf0fea58390d656b3207481e..8be6b5aa704c3f1aafea13f8039cf29d69fdf77e 100644
--- a/packages/frontend/src/components/MkSuperMenu.stories.ts
+++ b/packages/frontend/src/components/MkSuperMenu.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkSuperMenu,
 };
 export const Default = {
-	components: {
-		MkSuperMenu,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkSuperMenu,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkSuperMenu v-bind="$props" />',
+		};
 	},
-	template: '<MkSuperMenu />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkSwitch.stories.ts b/packages/frontend/src/components/MkSwitch.stories.ts
index ff2d48416eb2728c32d1e486574c458b05c62baa..fae92c1726eeaa1845542a0c1e424e05ef8f9417 100644
--- a/packages/frontend/src/components/MkSwitch.stories.ts
+++ b/packages/frontend/src/components/MkSwitch.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkSwitch,
 };
 export const Default = {
-	components: {
-		MkSwitch,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkSwitch,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkSwitch v-bind="$props" />',
+		};
 	},
-	template: '<MkSwitch />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkTab.stories.ts b/packages/frontend/src/components/MkTab.stories.ts
index b2e94c1a6e761a33f6340e291cd133b674c2baf4..035afa7f55c4e7df7987138b4d1b6b5fa150f210 100644
--- a/packages/frontend/src/components/MkTab.stories.ts
+++ b/packages/frontend/src/components/MkTab.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkTab,
 };
 export const Default = {
-	components: {
-		MkTab,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkTab,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkTab v-bind="$props" />',
+		};
 	},
-	template: '<MkTab />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkTagCloud.stories.ts b/packages/frontend/src/components/MkTagCloud.stories.ts
index 5af917710e55ff05c5981f0a87f0060253fe05f7..cea976fd4b957f5935f35e179796c9075d78deb7 100644
--- a/packages/frontend/src/components/MkTagCloud.stories.ts
+++ b/packages/frontend/src/components/MkTagCloud.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkTagCloud,
 };
 export const Default = {
-	components: {
-		MkTagCloud,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkTagCloud,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkTagCloud v-bind="$props" />',
+		};
 	},
-	template: '<MkTagCloud />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkTextarea.stories.ts b/packages/frontend/src/components/MkTextarea.stories.ts
index 207aec2c2e18210293d4c967b6041dbf5a6a7da0..0369b0978a091ec565077c551a6a92f933b4e29a 100644
--- a/packages/frontend/src/components/MkTextarea.stories.ts
+++ b/packages/frontend/src/components/MkTextarea.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkTextarea,
 };
 export const Default = {
-	components: {
-		MkTextarea,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkTextarea,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkTextarea v-bind="$props" />',
+		};
 	},
-	template: '<MkTextarea />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkTimeline.stories.ts b/packages/frontend/src/components/MkTimeline.stories.ts
index 3a1632417c5117535123ce38da2212426879ac71..f778c7ea02c778de4c0c51e5ea49a9230766e57f 100644
--- a/packages/frontend/src/components/MkTimeline.stories.ts
+++ b/packages/frontend/src/components/MkTimeline.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkTimeline,
 };
 export const Default = {
-	components: {
-		MkTimeline,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkTimeline,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkTimeline v-bind="$props" />',
+		};
 	},
-	template: '<MkTimeline />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkToast.stories.ts b/packages/frontend/src/components/MkToast.stories.ts
index 80b48109e79310e2aea12cc4b6333bf25d758266..be078dec5bcfabd0799dcb1012c8bf4f72e637c1 100644
--- a/packages/frontend/src/components/MkToast.stories.ts
+++ b/packages/frontend/src/components/MkToast.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkToast,
 };
 export const Default = {
-	components: {
-		MkToast,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkToast,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkToast v-bind="$props" />',
+		};
 	},
-	template: '<MkToast />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkTokenGenerateWindow.stories.ts b/packages/frontend/src/components/MkTokenGenerateWindow.stories.ts
index 74c6b73611a0825780541181794027af6a6d262e..daec25cb839c428e9c961cbec05373d1819a4c4a 100644
--- a/packages/frontend/src/components/MkTokenGenerateWindow.stories.ts
+++ b/packages/frontend/src/components/MkTokenGenerateWindow.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkTokenGenerateWindow,
 };
 export const Default = {
-	components: {
-		MkTokenGenerateWindow,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkTokenGenerateWindow,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkTokenGenerateWindow v-bind="$props" />',
+		};
 	},
-	template: '<MkTokenGenerateWindow />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkTooltip.stories.ts b/packages/frontend/src/components/MkTooltip.stories.ts
index bcba8916db538ee7a740562aacddfe2100fdc66a..474b49d2638b0fc6a77c85ac46b51d593f41ac69 100644
--- a/packages/frontend/src/components/MkTooltip.stories.ts
+++ b/packages/frontend/src/components/MkTooltip.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkTooltip,
 };
 export const Default = {
-	components: {
-		MkTooltip,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkTooltip,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkTooltip v-bind="$props" />',
+		};
 	},
-	template: '<MkTooltip />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkUpdated.stories.ts b/packages/frontend/src/components/MkUpdated.stories.ts
index 9949a6621bc5dfd01a623cffc3bc1fa3410638e5..b4388eb21f82afb73e982ee4572bf8763d9471ca 100644
--- a/packages/frontend/src/components/MkUpdated.stories.ts
+++ b/packages/frontend/src/components/MkUpdated.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkUpdated,
 };
 export const Default = {
-	components: {
-		MkUpdated,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkUpdated,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkUpdated v-bind="$props" />',
+		};
 	},
-	template: '<MkUpdated />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkUrlPreview.stories.ts b/packages/frontend/src/components/MkUrlPreview.stories.ts
index 7f1828343396dc8693e0b5f16d1d98d254437206..a7f230ef40e140e3175eefe5eae0fdb7aac2909b 100644
--- a/packages/frontend/src/components/MkUrlPreview.stories.ts
+++ b/packages/frontend/src/components/MkUrlPreview.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkUrlPreview,
 };
 export const Default = {
-	components: {
-		MkUrlPreview,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkUrlPreview,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkUrlPreview v-bind="$props" />',
+		};
 	},
-	template: '<MkUrlPreview />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkUrlPreviewPopup.stories.ts b/packages/frontend/src/components/MkUrlPreviewPopup.stories.ts
index 6756b81bd57dfe4bca63cc059450eb0b882ca340..c55cbc04bef8236c7fc03ec26ac0974898d39437 100644
--- a/packages/frontend/src/components/MkUrlPreviewPopup.stories.ts
+++ b/packages/frontend/src/components/MkUrlPreviewPopup.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkUrlPreviewPopup,
 };
 export const Default = {
-	components: {
-		MkUrlPreviewPopup,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkUrlPreviewPopup,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkUrlPreviewPopup v-bind="$props" />',
+		};
 	},
-	template: '<MkUrlPreviewPopup />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkUserCardMini.stories.ts b/packages/frontend/src/components/MkUserCardMini.stories.ts
index 467c8aa00c713ab1b6d41e68a08fdef2b926e83c..ae2001abbafd546e174967e7bbcf2a5a0aa28350 100644
--- a/packages/frontend/src/components/MkUserCardMini.stories.ts
+++ b/packages/frontend/src/components/MkUserCardMini.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkUserCardMini,
 };
 export const Default = {
-	components: {
-		MkUserCardMini,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkUserCardMini,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkUserCardMini v-bind="$props" />',
+		};
 	},
-	template: '<MkUserCardMini />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkUserInfo.stories.ts b/packages/frontend/src/components/MkUserInfo.stories.ts
index 832fa8dac6877bef0de4e045a9bd2b9350db8c57..dddae8a572dac2b9a067e537c3929f97481581a5 100644
--- a/packages/frontend/src/components/MkUserInfo.stories.ts
+++ b/packages/frontend/src/components/MkUserInfo.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkUserInfo,
 };
 export const Default = {
-	components: {
-		MkUserInfo,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkUserInfo,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkUserInfo v-bind="$props" />',
+		};
 	},
-	template: '<MkUserInfo />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkUserList.stories.ts b/packages/frontend/src/components/MkUserList.stories.ts
index 173f9a499d65d50459099da01a82e8a001c1e751..f5269bfc82347c2358bfa25c3c2e9544b44e8e43 100644
--- a/packages/frontend/src/components/MkUserList.stories.ts
+++ b/packages/frontend/src/components/MkUserList.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkUserList,
 };
 export const Default = {
-	components: {
-		MkUserList,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkUserList,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkUserList v-bind="$props" />',
+		};
 	},
-	template: '<MkUserList />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkUserOnlineIndicator.stories.ts b/packages/frontend/src/components/MkUserOnlineIndicator.stories.ts
index f18f9da5b7ce20e6d060445282bf4bbacfb3c1dd..5132078e5464d586c65d2e3b87e2ca9e2e08fe47 100644
--- a/packages/frontend/src/components/MkUserOnlineIndicator.stories.ts
+++ b/packages/frontend/src/components/MkUserOnlineIndicator.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkUserOnlineIndicator,
 };
 export const Default = {
-	components: {
-		MkUserOnlineIndicator,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkUserOnlineIndicator,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkUserOnlineIndicator v-bind="$props" />',
+		};
 	},
-	template: '<MkUserOnlineIndicator />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkUserPopup.stories.ts b/packages/frontend/src/components/MkUserPopup.stories.ts
index 14e8ef467d9b55113373f8799b5fa31c58717551..f83c41e2d0a0648c3efef153503918289f4cd3be 100644
--- a/packages/frontend/src/components/MkUserPopup.stories.ts
+++ b/packages/frontend/src/components/MkUserPopup.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkUserPopup,
 };
 export const Default = {
-	components: {
-		MkUserPopup,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkUserPopup,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkUserPopup v-bind="$props" />',
+		};
 	},
-	template: '<MkUserPopup />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkUserSelectDialog.stories.ts b/packages/frontend/src/components/MkUserSelectDialog.stories.ts
index 9930169d51b941bf2d171c13601cd9306e94cc55..cb66bbacc40adb0311442fdb18cae5df65f8de76 100644
--- a/packages/frontend/src/components/MkUserSelectDialog.stories.ts
+++ b/packages/frontend/src/components/MkUserSelectDialog.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkUserSelectDialog,
 };
 export const Default = {
-	components: {
-		MkUserSelectDialog,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkUserSelectDialog,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkUserSelectDialog v-bind="$props" />',
+		};
 	},
-	template: '<MkUserSelectDialog />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkUsersTooltip.stories.ts b/packages/frontend/src/components/MkUsersTooltip.stories.ts
index 2cc45df467aa7d05d955a428aa36994dd60538df..7bb6c0b3555028d6677f38146eeff6719dfa6ebe 100644
--- a/packages/frontend/src/components/MkUsersTooltip.stories.ts
+++ b/packages/frontend/src/components/MkUsersTooltip.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkUsersTooltip,
 };
 export const Default = {
-	components: {
-		MkUsersTooltip,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkUsersTooltip,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkUsersTooltip v-bind="$props" />',
+		};
 	},
-	template: '<MkUsersTooltip />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkVisibilityPicker.stories.ts b/packages/frontend/src/components/MkVisibilityPicker.stories.ts
index a1b6bcea690eca18fef46c9168e8fd2466fa8942..55522a18143de3569a72b818e087214a87d8871b 100644
--- a/packages/frontend/src/components/MkVisibilityPicker.stories.ts
+++ b/packages/frontend/src/components/MkVisibilityPicker.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkVisibilityPicker,
 };
 export const Default = {
-	components: {
-		MkVisibilityPicker,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkVisibilityPicker,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkVisibilityPicker v-bind="$props" />',
+		};
 	},
-	template: '<MkVisibilityPicker />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkWaitingDialog.stories.ts b/packages/frontend/src/components/MkWaitingDialog.stories.ts
index ee5f9568594051f44832a0d5b9eaca0c78933d72..813a6b3993fe6390b65652c33ad88fc9537203b0 100644
--- a/packages/frontend/src/components/MkWaitingDialog.stories.ts
+++ b/packages/frontend/src/components/MkWaitingDialog.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkWaitingDialog,
 };
 export const Default = {
-	components: {
-		MkWaitingDialog,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkWaitingDialog,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkWaitingDialog v-bind="$props" />',
+		};
 	},
-	template: '<MkWaitingDialog />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkWidgets.stories.ts b/packages/frontend/src/components/MkWidgets.stories.ts
index e5820efd484b1fbee26af46976a00b4a7527cf4c..25007135037cfcc8ef5144ad7fa3016b3a1b7600 100644
--- a/packages/frontend/src/components/MkWidgets.stories.ts
+++ b/packages/frontend/src/components/MkWidgets.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkWidgets,
 };
 export const Default = {
-	components: {
-		MkWidgets,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkWidgets,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkWidgets v-bind="$props" />',
+		};
 	},
-	template: '<MkWidgets />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkWindow.stories.ts b/packages/frontend/src/components/MkWindow.stories.ts
index d43e40330e07af1cae5b969a3f7be49a2f61daff..f8e315b066f0cea8483b9157597fded3f994ca5e 100644
--- a/packages/frontend/src/components/MkWindow.stories.ts
+++ b/packages/frontend/src/components/MkWindow.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkWindow,
 };
 export const Default = {
-	components: {
-		MkWindow,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkWindow,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkWindow v-bind="$props" />',
+		};
 	},
-	template: '<MkWindow />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/MkYoutubePlayer.stories.ts b/packages/frontend/src/components/MkYoutubePlayer.stories.ts
index a9f45e3e9947e460c29f453b9e86a817557b70e5..671c1303d19bcad8229e68d61b048a6dc18fae29 100644
--- a/packages/frontend/src/components/MkYoutubePlayer.stories.ts
+++ b/packages/frontend/src/components/MkYoutubePlayer.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkYoutubePlayer,
 };
 export const Default = {
-	components: {
-		MkYoutubePlayer,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkYoutubePlayer,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkYoutubePlayer v-bind="$props" />',
+		};
 	},
-	template: '<MkYoutubePlayer />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/form/link.stories.ts b/packages/frontend/src/components/form/link.stories.ts
index 24f7edc3727c86bf91c0f6253e047b5f035bec62..f132ccdea86d257d8a26b9e14f34b04f8fa3a2e8 100644
--- a/packages/frontend/src/components/form/link.stories.ts
+++ b/packages/frontend/src/components/form/link.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: link,
 };
 export const Default = {
-	components: {
-		link,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				link,
+			},
+			props: Object.keys(argTypes),
+			template: '<link v-bind="$props" />',
+		};
 	},
-	template: '<link />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/form/section.stories.ts b/packages/frontend/src/components/form/section.stories.ts
index b8ab307e247df2b97184c5947b42197bd524906f..5b779f54a4cea8089be0b0a4771309a89b2172e2 100644
--- a/packages/frontend/src/components/form/section.stories.ts
+++ b/packages/frontend/src/components/form/section.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: section,
 };
 export const Default = {
-	components: {
-		section,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				section,
+			},
+			props: Object.keys(argTypes),
+			template: '<section v-bind="$props" />',
+		};
 	},
-	template: '<section />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/form/slot.stories.ts b/packages/frontend/src/components/form/slot.stories.ts
index dd1a16c40317f0e8d20966855d872ee2b58293e8..55cdf7d76aa3ea56db51278a99c4a854d2bb3172 100644
--- a/packages/frontend/src/components/form/slot.stories.ts
+++ b/packages/frontend/src/components/form/slot.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: slot,
 };
 export const Default = {
-	components: {
-		slot,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				slot,
+			},
+			props: Object.keys(argTypes),
+			template: '<slot v-bind="$props" />',
+		};
 	},
-	template: '<slot />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/form/split.stories.ts b/packages/frontend/src/components/form/split.stories.ts
index 39cbc0ba01cca59510182622cbae1710cabd92d9..73cc4f8e449d3445e7a309bdc3b18e296d06d818 100644
--- a/packages/frontend/src/components/form/split.stories.ts
+++ b/packages/frontend/src/components/form/split.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: split,
 };
 export const Default = {
-	components: {
-		split,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				split,
+			},
+			props: Object.keys(argTypes),
+			template: '<split v-bind="$props" />',
+		};
 	},
-	template: '<split />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/form/suspense.stories.ts b/packages/frontend/src/components/form/suspense.stories.ts
index fad46e9c12f757c741a9bb552bbc721ad1f25fa3..10541fdb1c8a4ae2022c07dbe9ead4501a20a8e6 100644
--- a/packages/frontend/src/components/form/suspense.stories.ts
+++ b/packages/frontend/src/components/form/suspense.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: suspense,
 };
 export const Default = {
-	components: {
-		suspense,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				suspense,
+			},
+			props: Object.keys(argTypes),
+			template: '<suspense v-bind="$props" />',
+		};
 	},
-	template: '<suspense />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/global/MkA.stories.ts b/packages/frontend/src/components/global/MkA.stories.ts
index 5eb4a18c46423cdda4feb59f1bf69286416f234c..10dee397ff45efe3864c9f87dd1cc17b0e84af36 100644
--- a/packages/frontend/src/components/global/MkA.stories.ts
+++ b/packages/frontend/src/components/global/MkA.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkA,
 };
 export const Default = {
-	components: {
-		MkA,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkA,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkA v-bind="$props" />',
+		};
 	},
-	template: '<MkA />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/global/MkAcct.stories.ts b/packages/frontend/src/components/global/MkAcct.stories.ts
index 6b8b55ec351add1dd8507be541347413873b6eee..a3361561264c907327b92884ac2afe922edb1d30 100644
--- a/packages/frontend/src/components/global/MkAcct.stories.ts
+++ b/packages/frontend/src/components/global/MkAcct.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkAcct,
 };
 export const Default = {
-	components: {
-		MkAcct,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkAcct,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkAcct v-bind="$props" />',
+		};
 	},
-	template: '<MkAcct />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/global/MkAd.stories.ts b/packages/frontend/src/components/global/MkAd.stories.ts
index bb2d74b336390e0848f42e4b99a972610d96b110..8d4f3713e211ce44f6f69011bd5c17a466df0d0b 100644
--- a/packages/frontend/src/components/global/MkAd.stories.ts
+++ b/packages/frontend/src/components/global/MkAd.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkAd,
 };
 export const Default = {
-	components: {
-		MkAd,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkAd,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkAd v-bind="$props" />',
+		};
 	},
-	template: '<MkAd />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/global/MkAvatar.stories.ts b/packages/frontend/src/components/global/MkAvatar.stories.ts
index bc1acd33f13ddcc3800f44b3fb65147bf378dfc1..8556ef08ab7fedca2b68a88131e64c6edd475cfa 100644
--- a/packages/frontend/src/components/global/MkAvatar.stories.ts
+++ b/packages/frontend/src/components/global/MkAvatar.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkAvatar,
 };
 export const Default = {
-	components: {
-		MkAvatar,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkAvatar,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkAvatar v-bind="$props" />',
+		};
 	},
-	template: '<MkAvatar />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/global/MkCustomEmoji.stories.ts b/packages/frontend/src/components/global/MkCustomEmoji.stories.ts
index 9abc14af1f6993798964020d080691df18b05446..c1349c580888055c2b8478f58de8de700da10a19 100644
--- a/packages/frontend/src/components/global/MkCustomEmoji.stories.ts
+++ b/packages/frontend/src/components/global/MkCustomEmoji.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkCustomEmoji,
 };
 export const Default = {
-	components: {
-		MkCustomEmoji,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkCustomEmoji,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkCustomEmoji v-bind="$props" />',
+		};
 	},
-	template: '<MkCustomEmoji />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/global/MkEllipsis.stories.ts b/packages/frontend/src/components/global/MkEllipsis.stories.ts
index 09092f36d3b659ee21ce18e7624b05c0e1d13c39..06a56a62c0e4f58d3ee7f848d046ec4645b72dfe 100644
--- a/packages/frontend/src/components/global/MkEllipsis.stories.ts
+++ b/packages/frontend/src/components/global/MkEllipsis.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkEllipsis,
 };
 export const Default = {
-	components: {
-		MkEllipsis,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkEllipsis,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkEllipsis v-bind="$props" />',
+		};
 	},
-	template: '<MkEllipsis />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/global/MkEmoji.stories.ts b/packages/frontend/src/components/global/MkEmoji.stories.ts
index 1679ae0b2731b4b54fbe0f09f268198e0e3a8253..2dd4e23771c1ad27a407ffab5f9db3e160209558 100644
--- a/packages/frontend/src/components/global/MkEmoji.stories.ts
+++ b/packages/frontend/src/components/global/MkEmoji.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkEmoji,
 };
 export const Default = {
-	components: {
-		MkEmoji,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkEmoji,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkEmoji v-bind="$props" />',
+		};
 	},
-	template: '<MkEmoji />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/global/MkError.stories.ts b/packages/frontend/src/components/global/MkError.stories.ts
index 0916b1860db68765588557a7931e11f0f927de2e..2a8abb943bdd46a742f1dadfe944bc592fae6b24 100644
--- a/packages/frontend/src/components/global/MkError.stories.ts
+++ b/packages/frontend/src/components/global/MkError.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkError,
 };
 export const Default = {
-	components: {
-		MkError,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkError,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkError v-bind="$props" />',
+		};
 	},
-	template: '<MkError />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/global/MkLoading.stories.ts b/packages/frontend/src/components/global/MkLoading.stories.ts
index 752085f5fd85576898a704d8e36bd838aedd96fe..78fbfa9f52b49dd21384ad2bc807eb42ac657912 100644
--- a/packages/frontend/src/components/global/MkLoading.stories.ts
+++ b/packages/frontend/src/components/global/MkLoading.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkLoading,
 };
 export const Default = {
-	components: {
-		MkLoading,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkLoading,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkLoading v-bind="$props" />',
+		};
 	},
-	template: '<MkLoading />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/global/MkMisskeyFlavoredMarkdown.stories.ts b/packages/frontend/src/components/global/MkMisskeyFlavoredMarkdown.stories.ts
index 63e5342cce064bdb83857b3d7f9dd4220d3d8d48..8b7827bfc868628e5bf222efb3c158c5baea91a4 100644
--- a/packages/frontend/src/components/global/MkMisskeyFlavoredMarkdown.stories.ts
+++ b/packages/frontend/src/components/global/MkMisskeyFlavoredMarkdown.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkMisskeyFlavoredMarkdown,
 };
 export const Default = {
-	components: {
-		MkMisskeyFlavoredMarkdown,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkMisskeyFlavoredMarkdown,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkMisskeyFlavoredMarkdown v-bind="$props" />',
+		};
 	},
-	template: '<MkMisskeyFlavoredMarkdown />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/global/MkPageHeader.stories.ts b/packages/frontend/src/components/global/MkPageHeader.stories.ts
index a2c6d8705c99eda81040eb473874ba9a6e6904da..392116882448ef660ff535dc5b99e10473fa65af 100644
--- a/packages/frontend/src/components/global/MkPageHeader.stories.ts
+++ b/packages/frontend/src/components/global/MkPageHeader.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkPageHeader,
 };
 export const Default = {
-	components: {
-		MkPageHeader,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkPageHeader,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkPageHeader v-bind="$props" />',
+		};
 	},
-	template: '<MkPageHeader />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/global/MkPageHeader.tabs.stories.ts b/packages/frontend/src/components/global/MkPageHeader.tabs.stories.ts
index b283a94398c1a4bf5f5fa96b1af315e138a90856..aaa12228f95dcfb29286b79ae7554a54d2bbed43 100644
--- a/packages/frontend/src/components/global/MkPageHeader.tabs.stories.ts
+++ b/packages/frontend/src/components/global/MkPageHeader.tabs.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkPageHeader_tabs,
 };
 export const Default = {
-	components: {
-		MkPageHeader_tabs,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkPageHeader_tabs,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkPageHeader_tabs v-bind="$props" />',
+		};
 	},
-	template: '<MkPageHeader_tabs />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/global/MkSpacer.stories.ts b/packages/frontend/src/components/global/MkSpacer.stories.ts
index 2f15b0257084c56e84d04bd93c9f8bb108137171..5040c0b17f541ff1cb3f766e4b17edb2f455d370 100644
--- a/packages/frontend/src/components/global/MkSpacer.stories.ts
+++ b/packages/frontend/src/components/global/MkSpacer.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkSpacer,
 };
 export const Default = {
-	components: {
-		MkSpacer,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkSpacer,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkSpacer v-bind="$props" />',
+		};
 	},
-	template: '<MkSpacer />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/global/MkStickyContainer.stories.ts b/packages/frontend/src/components/global/MkStickyContainer.stories.ts
index 7e495a582f8592eda42a8bae19fff20a5eb3306d..0741f3f9bb1afe2102adde845fd66a4aca8c98ff 100644
--- a/packages/frontend/src/components/global/MkStickyContainer.stories.ts
+++ b/packages/frontend/src/components/global/MkStickyContainer.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkStickyContainer,
 };
 export const Default = {
-	components: {
-		MkStickyContainer,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkStickyContainer,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkStickyContainer v-bind="$props" />',
+		};
 	},
-	template: '<MkStickyContainer />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/global/MkTime.stories.ts b/packages/frontend/src/components/global/MkTime.stories.ts
index efb6dee7a2659a0981a48456a6495e6ac35d12db..9df2fef69560cb776698c2f7631d923336f5d41b 100644
--- a/packages/frontend/src/components/global/MkTime.stories.ts
+++ b/packages/frontend/src/components/global/MkTime.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkTime,
 };
 export const Default = {
-	components: {
-		MkTime,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkTime,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkTime v-bind="$props" />',
+		};
 	},
-	template: '<MkTime />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/global/MkUrl.stories.ts b/packages/frontend/src/components/global/MkUrl.stories.ts
index c72bf542e6da2ca51f8bfb7cfc76646143ae8803..1f0e01f000a25ff29891cb602d8c0f14aa79d690 100644
--- a/packages/frontend/src/components/global/MkUrl.stories.ts
+++ b/packages/frontend/src/components/global/MkUrl.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkUrl,
 };
 export const Default = {
-	components: {
-		MkUrl,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkUrl,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkUrl v-bind="$props" />',
+		};
 	},
-	template: '<MkUrl />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/global/MkUserName.stories.ts b/packages/frontend/src/components/global/MkUserName.stories.ts
index 211d8dac6b0233ee1628174da293195dc9a866f7..b5df40dfebaece9ad492c1fa83af23eb89ca2b23 100644
--- a/packages/frontend/src/components/global/MkUserName.stories.ts
+++ b/packages/frontend/src/components/global/MkUserName.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: MkUserName,
 };
 export const Default = {
-	components: {
-		MkUserName,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				MkUserName,
+			},
+			props: Object.keys(argTypes),
+			template: '<MkUserName v-bind="$props" />',
+		};
 	},
-	template: '<MkUserName />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/global/RouterView.stories.ts b/packages/frontend/src/components/global/RouterView.stories.ts
index acc2c32d3b6b1e1e8ee95ee69ac9675c5bb2ae94..a0e76d9da1ad0908f225610e8b57a8f1510e8a5c 100644
--- a/packages/frontend/src/components/global/RouterView.stories.ts
+++ b/packages/frontend/src/components/global/RouterView.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: RouterView,
 };
 export const Default = {
-	components: {
-		RouterView,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				RouterView,
+			},
+			props: Object.keys(argTypes),
+			template: '<RouterView v-bind="$props" />',
+		};
 	},
-	template: '<RouterView />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/page/page.block.stories.ts b/packages/frontend/src/components/page/page.block.stories.ts
index a08218da667866ceee41865a681556a9d3e3c75f..ba53f52505e0139dfffc6602b32869a45ebfb2a2 100644
--- a/packages/frontend/src/components/page/page.block.stories.ts
+++ b/packages/frontend/src/components/page/page.block.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: page_block,
 };
 export const Default = {
-	components: {
-		page_block,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				page_block,
+			},
+			props: Object.keys(argTypes),
+			template: '<page_block v-bind="$props" />',
+		};
 	},
-	template: '<page_block />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/page/page.button.stories.ts b/packages/frontend/src/components/page/page.button.stories.ts
index 9ee10b737d298d9ed90bd08eb435ddf27e5efd88..4fd0b3a24f1520604b88805ca4cd566aa6dc8f76 100644
--- a/packages/frontend/src/components/page/page.button.stories.ts
+++ b/packages/frontend/src/components/page/page.button.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: page_button,
 };
 export const Default = {
-	components: {
-		page_button,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				page_button,
+			},
+			props: Object.keys(argTypes),
+			template: '<page_button v-bind="$props" />',
+		};
 	},
-	template: '<page_button />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/page/page.canvas.stories.ts b/packages/frontend/src/components/page/page.canvas.stories.ts
index 7df6fd3644e5e8e72d712ac811fb7fcbfb43230a..61880b3925943185c42a1e37897b9bfdb5592194 100644
--- a/packages/frontend/src/components/page/page.canvas.stories.ts
+++ b/packages/frontend/src/components/page/page.canvas.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: page_canvas,
 };
 export const Default = {
-	components: {
-		page_canvas,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				page_canvas,
+			},
+			props: Object.keys(argTypes),
+			template: '<page_canvas v-bind="$props" />',
+		};
 	},
-	template: '<page_canvas />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/page/page.counter.stories.ts b/packages/frontend/src/components/page/page.counter.stories.ts
index 490c4d24b91a74dfca960df8dec3d06d4be50336..c94cbbb687691037ef04a573aea4f5726c41ade0 100644
--- a/packages/frontend/src/components/page/page.counter.stories.ts
+++ b/packages/frontend/src/components/page/page.counter.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: page_counter,
 };
 export const Default = {
-	components: {
-		page_counter,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				page_counter,
+			},
+			props: Object.keys(argTypes),
+			template: '<page_counter v-bind="$props" />',
+		};
 	},
-	template: '<page_counter />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/page/page.if.stories.ts b/packages/frontend/src/components/page/page.if.stories.ts
index cd840c95945443512e7e4650d6fea8dea1053d2b..ddc88377d60be71492a65b697c208b39bb22ea0d 100644
--- a/packages/frontend/src/components/page/page.if.stories.ts
+++ b/packages/frontend/src/components/page/page.if.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: page_if,
 };
 export const Default = {
-	components: {
-		page_if,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				page_if,
+			},
+			props: Object.keys(argTypes),
+			template: '<page_if v-bind="$props" />',
+		};
 	},
-	template: '<page_if />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/page/page.image.stories.ts b/packages/frontend/src/components/page/page.image.stories.ts
index b7452a618d13e15a8f077de92e95a0617b0c0cd3..a21d6010d8a987a3cc062b273c10fabd059dd135 100644
--- a/packages/frontend/src/components/page/page.image.stories.ts
+++ b/packages/frontend/src/components/page/page.image.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: page_image,
 };
 export const Default = {
-	components: {
-		page_image,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				page_image,
+			},
+			props: Object.keys(argTypes),
+			template: '<page_image v-bind="$props" />',
+		};
 	},
-	template: '<page_image />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/page/page.note.stories.ts b/packages/frontend/src/components/page/page.note.stories.ts
index 5c5af5d58bf4ebe30e92128953b5a1173e63a26e..0efb0220e94c717e10571f5489dbaf89dcd9a742 100644
--- a/packages/frontend/src/components/page/page.note.stories.ts
+++ b/packages/frontend/src/components/page/page.note.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: page_note,
 };
 export const Default = {
-	components: {
-		page_note,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				page_note,
+			},
+			props: Object.keys(argTypes),
+			template: '<page_note v-bind="$props" />',
+		};
 	},
-	template: '<page_note />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/page/page.number-input.stories.ts b/packages/frontend/src/components/page/page.number-input.stories.ts
index 9a7ad343160da6a3934951438a3f011bb1377cde..5fefcb9ee87ff3db9c626519d4abeb937040cfdb 100644
--- a/packages/frontend/src/components/page/page.number-input.stories.ts
+++ b/packages/frontend/src/components/page/page.number-input.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: page_number_input,
 };
 export const Default = {
-	components: {
-		page_number_input,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				page_number_input,
+			},
+			props: Object.keys(argTypes),
+			template: '<page_number_input v-bind="$props" />',
+		};
 	},
-	template: '<page_number_input />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/page/page.post.stories.ts b/packages/frontend/src/components/page/page.post.stories.ts
index b98d930d14fc3fb6b89e7ef661d36ff3a2cda86c..d59e5a47020c1d7b7f226c2a5e58fbeabe0d009f 100644
--- a/packages/frontend/src/components/page/page.post.stories.ts
+++ b/packages/frontend/src/components/page/page.post.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: page_post,
 };
 export const Default = {
-	components: {
-		page_post,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				page_post,
+			},
+			props: Object.keys(argTypes),
+			template: '<page_post v-bind="$props" />',
+		};
 	},
-	template: '<page_post />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/page/page.radio-button.stories.ts b/packages/frontend/src/components/page/page.radio-button.stories.ts
index 9b519cdddffe5a156112b3a12c4a779ae9b86775..9974b7636fd3958cf69506008eca0f9b49418c4d 100644
--- a/packages/frontend/src/components/page/page.radio-button.stories.ts
+++ b/packages/frontend/src/components/page/page.radio-button.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: page_radio_button,
 };
 export const Default = {
-	components: {
-		page_radio_button,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				page_radio_button,
+			},
+			props: Object.keys(argTypes),
+			template: '<page_radio_button v-bind="$props" />',
+		};
 	},
-	template: '<page_radio_button />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/page/page.section.stories.ts b/packages/frontend/src/components/page/page.section.stories.ts
index 0e28246cce8060e96b7212c925e9296ff99ea360..754541927b813dbfe5b35a5646abde96a073db6f 100644
--- a/packages/frontend/src/components/page/page.section.stories.ts
+++ b/packages/frontend/src/components/page/page.section.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: page_section,
 };
 export const Default = {
-	components: {
-		page_section,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				page_section,
+			},
+			props: Object.keys(argTypes),
+			template: '<page_section v-bind="$props" />',
+		};
 	},
-	template: '<page_section />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/page/page.stories.ts b/packages/frontend/src/components/page/page.stories.ts
index cff97b18d0a533b1f7d5e416abcf34255e1e1976..43271b6ca220ffe1b709f9b18d7201b937ab3773 100644
--- a/packages/frontend/src/components/page/page.stories.ts
+++ b/packages/frontend/src/components/page/page.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: page,
 };
 export const Default = {
-	components: {
-		page,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				page,
+			},
+			props: Object.keys(argTypes),
+			template: '<page v-bind="$props" />',
+		};
 	},
-	template: '<page />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/page/page.switch.stories.ts b/packages/frontend/src/components/page/page.switch.stories.ts
index 84bfcf0d79dd679fdbf04e08f79c32020ce2432c..7726586e77293b729395df9acd436b5a414965b8 100644
--- a/packages/frontend/src/components/page/page.switch.stories.ts
+++ b/packages/frontend/src/components/page/page.switch.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: page_switch,
 };
 export const Default = {
-	components: {
-		page_switch,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				page_switch,
+			},
+			props: Object.keys(argTypes),
+			template: '<page_switch v-bind="$props" />',
+		};
 	},
-	template: '<page_switch />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/page/page.text-input.stories.ts b/packages/frontend/src/components/page/page.text-input.stories.ts
index 07ce018e236a1cd2ed52c2ee44fd55ab3e7d5b74..6f58f19bde9470b02d963c522c85f8df72a8a123 100644
--- a/packages/frontend/src/components/page/page.text-input.stories.ts
+++ b/packages/frontend/src/components/page/page.text-input.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: page_text_input,
 };
 export const Default = {
-	components: {
-		page_text_input,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				page_text_input,
+			},
+			props: Object.keys(argTypes),
+			template: '<page_text_input v-bind="$props" />',
+		};
 	},
-	template: '<page_text_input />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/page/page.text.stories.ts b/packages/frontend/src/components/page/page.text.stories.ts
index b1f3aacfba0e637a41b94f272358dc2218268d14..924224577b9bcd6e0179f76338128293e893021e 100644
--- a/packages/frontend/src/components/page/page.text.stories.ts
+++ b/packages/frontend/src/components/page/page.text.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: page_text,
 };
 export const Default = {
-	components: {
-		page_text,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				page_text,
+			},
+			props: Object.keys(argTypes),
+			template: '<page_text v-bind="$props" />',
+		};
 	},
-	template: '<page_text />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/page/page.textarea-input.stories.ts b/packages/frontend/src/components/page/page.textarea-input.stories.ts
index 608327d1886b7c3e3dc272cd5cbd350b53d95a9a..d14548a222358635eca11735bce18ecff7e73465 100644
--- a/packages/frontend/src/components/page/page.textarea-input.stories.ts
+++ b/packages/frontend/src/components/page/page.textarea-input.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: page_textarea_input,
 };
 export const Default = {
-	components: {
-		page_textarea_input,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				page_textarea_input,
+			},
+			props: Object.keys(argTypes),
+			template: '<page_textarea_input v-bind="$props" />',
+		};
 	},
-	template: '<page_textarea_input />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/components/page/page.textarea.stories.ts b/packages/frontend/src/components/page/page.textarea.stories.ts
index c793e78d28e2e423981cba1965114bb74d89f0ce..13c4480ace874f09e0bdf6def4e72662b6bd71fd 100644
--- a/packages/frontend/src/components/page/page.textarea.stories.ts
+++ b/packages/frontend/src/components/page/page.textarea.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: page_textarea,
 };
 export const Default = {
-	components: {
-		page_textarea,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				page_textarea,
+			},
+			props: Object.keys(argTypes),
+			template: '<page_textarea v-bind="$props" />',
+		};
 	},
-	template: '<page_textarea />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/pages/_empty_.stories.ts b/packages/frontend/src/pages/_empty_.stories.ts
index 9975c4e042afb1e3fb67c63d5dc816f246ebc346..3ca1df58618ee2a1abfd31570672689b675d2b20 100644
--- a/packages/frontend/src/pages/_empty_.stories.ts
+++ b/packages/frontend/src/pages/_empty_.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: _empty_,
 };
 export const Default = {
-	components: {
-		_empty_,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				_empty_,
+			},
+			props: Object.keys(argTypes),
+			template: '<_empty_ v-bind="$props" />',
+		};
 	},
-	template: '<_empty_ />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/_error_.stories.ts b/packages/frontend/src/pages/_error_.stories.ts
index f3ac520dc66b784a2327ca9dba0edccf630c4c41..f198b63fc88ca4205cadc41a906e77fdf0e988da 100644
--- a/packages/frontend/src/pages/_error_.stories.ts
+++ b/packages/frontend/src/pages/_error_.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: _error_,
 };
 export const Default = {
-	components: {
-		_error_,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				_error_,
+			},
+			props: Object.keys(argTypes),
+			template: '<_error_ v-bind="$props" />',
+		};
 	},
-	template: '<_error_ />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/_loading_.stories.ts b/packages/frontend/src/pages/_loading_.stories.ts
index 9063c71b48fac2d0b0314e85a16cded7df0ab1a0..f511634eb992fd3acf01d340420032f2478dae54 100644
--- a/packages/frontend/src/pages/_loading_.stories.ts
+++ b/packages/frontend/src/pages/_loading_.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: _loading_,
 };
 export const Default = {
-	components: {
-		_loading_,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				_loading_,
+			},
+			props: Object.keys(argTypes),
+			template: '<_loading_ v-bind="$props" />',
+		};
 	},
-	template: '<_loading_ />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/about-misskey.stories.ts b/packages/frontend/src/pages/about-misskey.stories.ts
index 1898d460eb13b5b6dbbbf2bd00caaefdbe638ec1..3b8f3ad11756e10e3c728435c7f083bfd6fde609 100644
--- a/packages/frontend/src/pages/about-misskey.stories.ts
+++ b/packages/frontend/src/pages/about-misskey.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: about_misskey,
 };
 export const Default = {
-	components: {
-		about_misskey,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				about_misskey,
+			},
+			props: Object.keys(argTypes),
+			template: '<about_misskey v-bind="$props" />',
+		};
 	},
-	template: '<about_misskey />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/about.emojis.stories.ts b/packages/frontend/src/pages/about.emojis.stories.ts
index dc2f36beae652968fde77bf16c8db11929daf26d..e178271a8449b409f3a2275bef28885df5d90c13 100644
--- a/packages/frontend/src/pages/about.emojis.stories.ts
+++ b/packages/frontend/src/pages/about.emojis.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: about_emojis,
 };
 export const Default = {
-	components: {
-		about_emojis,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				about_emojis,
+			},
+			props: Object.keys(argTypes),
+			template: '<about_emojis v-bind="$props" />',
+		};
 	},
-	template: '<about_emojis />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/about.federation.stories.ts b/packages/frontend/src/pages/about.federation.stories.ts
index 63f997779c183748f210e0c3f0bb528dcb2e7d28..a2c763aef7e0f036d65022be244d868164188cc2 100644
--- a/packages/frontend/src/pages/about.federation.stories.ts
+++ b/packages/frontend/src/pages/about.federation.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: about_federation,
 };
 export const Default = {
-	components: {
-		about_federation,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				about_federation,
+			},
+			props: Object.keys(argTypes),
+			template: '<about_federation v-bind="$props" />',
+		};
 	},
-	template: '<about_federation />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/about.stories.ts b/packages/frontend/src/pages/about.stories.ts
index 397a52061098e8d41dd0c3e34f8a0300eb76f9c7..a36c99fc32a3dc21e381e8388d85e4aa0aad0242 100644
--- a/packages/frontend/src/pages/about.stories.ts
+++ b/packages/frontend/src/pages/about.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: about,
 };
 export const Default = {
-	components: {
-		about,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				about,
+			},
+			props: Object.keys(argTypes),
+			template: '<about v-bind="$props" />',
+		};
 	},
-	template: '<about />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/achievements.stories.ts b/packages/frontend/src/pages/achievements.stories.ts
index b07ce5846d9f1a6b578b16475dc37f2dc518aa69..b7959f89765c1bbf4ffb55ac2ec8ecc0117a6918 100644
--- a/packages/frontend/src/pages/achievements.stories.ts
+++ b/packages/frontend/src/pages/achievements.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: achievements,
 };
 export const Default = {
-	components: {
-		achievements,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				achievements,
+			},
+			props: Object.keys(argTypes),
+			template: '<achievements v-bind="$props" />',
+		};
 	},
-	template: '<achievements />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/admin-file.stories.ts b/packages/frontend/src/pages/admin-file.stories.ts
index adbcee094dc5b7860e60296707f7455a36bc7cad..62ac20caf371f9cf14bdc56ef0eff4628039ad41 100644
--- a/packages/frontend/src/pages/admin-file.stories.ts
+++ b/packages/frontend/src/pages/admin-file.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: admin_file,
 };
 export const Default = {
-	components: {
-		admin_file,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				admin_file,
+			},
+			props: Object.keys(argTypes),
+			template: '<admin_file v-bind="$props" />',
+		};
 	},
-	template: '<admin_file />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/admin/RolesEditorFormula.stories.ts b/packages/frontend/src/pages/admin/RolesEditorFormula.stories.ts
index e85173e5748b0621a3bbd4cc2115a5450ec82aa4..5af3ccc657545c300b2c1955082656f14b61f73e 100644
--- a/packages/frontend/src/pages/admin/RolesEditorFormula.stories.ts
+++ b/packages/frontend/src/pages/admin/RolesEditorFormula.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: RolesEditorFormula,
 };
 export const Default = {
-	components: {
-		RolesEditorFormula,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				RolesEditorFormula,
+			},
+			props: Object.keys(argTypes),
+			template: '<RolesEditorFormula v-bind="$props" />',
+		};
 	},
-	template: '<RolesEditorFormula />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/admin/_header_.stories.ts b/packages/frontend/src/pages/admin/_header_.stories.ts
index b803b74a1965ca92e10a8fb1ff1a23786768e5d2..3ae43e3fa6f33fc009c90c94ca6a4768e33073e3 100644
--- a/packages/frontend/src/pages/admin/_header_.stories.ts
+++ b/packages/frontend/src/pages/admin/_header_.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: _header_,
 };
 export const Default = {
-	components: {
-		_header_,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				_header_,
+			},
+			props: Object.keys(argTypes),
+			template: '<_header_ v-bind="$props" />',
+		};
 	},
-	template: '<_header_ />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/admin/abuses.stories.ts b/packages/frontend/src/pages/admin/abuses.stories.ts
index 677292f1572874928eda4530f8cfe61975f613bb..ea3bbb477528ee21b6e7fe235e94459a9336c2fc 100644
--- a/packages/frontend/src/pages/admin/abuses.stories.ts
+++ b/packages/frontend/src/pages/admin/abuses.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: abuses,
 };
 export const Default = {
-	components: {
-		abuses,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				abuses,
+			},
+			props: Object.keys(argTypes),
+			template: '<abuses v-bind="$props" />',
+		};
 	},
-	template: '<abuses />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/admin/ads.stories.ts b/packages/frontend/src/pages/admin/ads.stories.ts
index 973bbd4ccc0995093ee3eae7200c9f572df839bd..638c56656fcb52fedb1956598c4150fefb82a1a7 100644
--- a/packages/frontend/src/pages/admin/ads.stories.ts
+++ b/packages/frontend/src/pages/admin/ads.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: ads,
 };
 export const Default = {
-	components: {
-		ads,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				ads,
+			},
+			props: Object.keys(argTypes),
+			template: '<ads v-bind="$props" />',
+		};
 	},
-	template: '<ads />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/admin/announcements.stories.ts b/packages/frontend/src/pages/admin/announcements.stories.ts
index add9a62c52d131d4a378474545a5236fbbfb04b5..ae064741fbbb85fc6774200530801c412bfbd113 100644
--- a/packages/frontend/src/pages/admin/announcements.stories.ts
+++ b/packages/frontend/src/pages/admin/announcements.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: announcements,
 };
 export const Default = {
-	components: {
-		announcements,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				announcements,
+			},
+			props: Object.keys(argTypes),
+			template: '<announcements v-bind="$props" />',
+		};
 	},
-	template: '<announcements />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/admin/bot-protection.stories.ts b/packages/frontend/src/pages/admin/bot-protection.stories.ts
index cc337ac51e30b263e288ada103824267c86289bb..7c8506b40e49af760d32459cf6dd6a64e8af7966 100644
--- a/packages/frontend/src/pages/admin/bot-protection.stories.ts
+++ b/packages/frontend/src/pages/admin/bot-protection.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: bot_protection,
 };
 export const Default = {
-	components: {
-		bot_protection,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				bot_protection,
+			},
+			props: Object.keys(argTypes),
+			template: '<bot_protection v-bind="$props" />',
+		};
 	},
-	template: '<bot_protection />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/admin/database.stories.ts b/packages/frontend/src/pages/admin/database.stories.ts
index 1764c4a902c0a1bb7c30fe3881d310ec84dd693d..3a2ae56a402f59a0ebfda38182843c79aebd7ee9 100644
--- a/packages/frontend/src/pages/admin/database.stories.ts
+++ b/packages/frontend/src/pages/admin/database.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: database,
 };
 export const Default = {
-	components: {
-		database,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				database,
+			},
+			props: Object.keys(argTypes),
+			template: '<database v-bind="$props" />',
+		};
 	},
-	template: '<database />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/admin/email-settings.stories.ts b/packages/frontend/src/pages/admin/email-settings.stories.ts
index 162b4b081680f6b1474c56647c330f8614016fd0..9b804ce4ac02bafbe4397fad81e1a72eee9ca317 100644
--- a/packages/frontend/src/pages/admin/email-settings.stories.ts
+++ b/packages/frontend/src/pages/admin/email-settings.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: email_settings,
 };
 export const Default = {
-	components: {
-		email_settings,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				email_settings,
+			},
+			props: Object.keys(argTypes),
+			template: '<email_settings v-bind="$props" />',
+		};
 	},
-	template: '<email_settings />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/admin/federation.stories.ts b/packages/frontend/src/pages/admin/federation.stories.ts
index a8b3f1b3f62f3534611261fe447af5bd9d1b23b4..63bf5023dd80eeef8874b6bda0e27553f8d923ee 100644
--- a/packages/frontend/src/pages/admin/federation.stories.ts
+++ b/packages/frontend/src/pages/admin/federation.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: federation,
 };
 export const Default = {
-	components: {
-		federation,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				federation,
+			},
+			props: Object.keys(argTypes),
+			template: '<federation v-bind="$props" />',
+		};
 	},
-	template: '<federation />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/admin/files.stories.ts b/packages/frontend/src/pages/admin/files.stories.ts
index cb0746cf12c00f51006dd68d41cae80360704a57..6d5b00f3f19bec9f5377c4f22e4c7cf47e8cbb03 100644
--- a/packages/frontend/src/pages/admin/files.stories.ts
+++ b/packages/frontend/src/pages/admin/files.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: files,
 };
 export const Default = {
-	components: {
-		files,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				files,
+			},
+			props: Object.keys(argTypes),
+			template: '<files v-bind="$props" />',
+		};
 	},
-	template: '<files />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/admin/index.stories.ts b/packages/frontend/src/pages/admin/index.stories.ts
index f2ac0b2878d2a0e01e93c4d8a4a4e8f8cf494bb2..54b89efc02473dad4da40d27882b60274b815654 100644
--- a/packages/frontend/src/pages/admin/index.stories.ts
+++ b/packages/frontend/src/pages/admin/index.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: index,
 };
 export const Default = {
-	components: {
-		index,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				index,
+			},
+			props: Object.keys(argTypes),
+			template: '<index v-bind="$props" />',
+		};
 	},
-	template: '<index />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/admin/instance-block.stories.ts b/packages/frontend/src/pages/admin/instance-block.stories.ts
index 0623c16ddb1edf2d27191f08099f6717d07646c4..c76509923fc165a8a8f2e62827945e333ef78b5e 100644
--- a/packages/frontend/src/pages/admin/instance-block.stories.ts
+++ b/packages/frontend/src/pages/admin/instance-block.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: instance_block,
 };
 export const Default = {
-	components: {
-		instance_block,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				instance_block,
+			},
+			props: Object.keys(argTypes),
+			template: '<instance_block v-bind="$props" />',
+		};
 	},
-	template: '<instance_block />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/admin/moderation.stories.ts b/packages/frontend/src/pages/admin/moderation.stories.ts
index 20d6d3bea243f9d346f2027fd791f0cb7b7c3f0e..c55aedadca76c62ae4d6791072f5b55897f2226e 100644
--- a/packages/frontend/src/pages/admin/moderation.stories.ts
+++ b/packages/frontend/src/pages/admin/moderation.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: moderation,
 };
 export const Default = {
-	components: {
-		moderation,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				moderation,
+			},
+			props: Object.keys(argTypes),
+			template: '<moderation v-bind="$props" />',
+		};
 	},
-	template: '<moderation />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/admin/object-storage.stories.ts b/packages/frontend/src/pages/admin/object-storage.stories.ts
index 9187d2ad6f90e048f573fb3205482153bb086840..faa1f1948d604b07a3a53bd578484da721f219f1 100644
--- a/packages/frontend/src/pages/admin/object-storage.stories.ts
+++ b/packages/frontend/src/pages/admin/object-storage.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: object_storage,
 };
 export const Default = {
-	components: {
-		object_storage,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				object_storage,
+			},
+			props: Object.keys(argTypes),
+			template: '<object_storage v-bind="$props" />',
+		};
 	},
-	template: '<object_storage />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/admin/other-settings.stories.ts b/packages/frontend/src/pages/admin/other-settings.stories.ts
index f4385c4c33058e502b0d77121e81609cb1649c38..fc37c6072e8d436d0e94e76be7909d6074972001 100644
--- a/packages/frontend/src/pages/admin/other-settings.stories.ts
+++ b/packages/frontend/src/pages/admin/other-settings.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: other_settings,
 };
 export const Default = {
-	components: {
-		other_settings,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				other_settings,
+			},
+			props: Object.keys(argTypes),
+			template: '<other_settings v-bind="$props" />',
+		};
 	},
-	template: '<other_settings />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/admin/overview.active-users.stories.ts b/packages/frontend/src/pages/admin/overview.active-users.stories.ts
index 877d4e0ddf63962b32c2fed17fad42ed8af04341..e7efca1a5358ee56d4d2941cd2e40a9c9ff29eae 100644
--- a/packages/frontend/src/pages/admin/overview.active-users.stories.ts
+++ b/packages/frontend/src/pages/admin/overview.active-users.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: overview_active_users,
 };
 export const Default = {
-	components: {
-		overview_active_users,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				overview_active_users,
+			},
+			props: Object.keys(argTypes),
+			template: '<overview_active_users v-bind="$props" />',
+		};
 	},
-	template: '<overview_active_users />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/admin/overview.ap-requests.stories.ts b/packages/frontend/src/pages/admin/overview.ap-requests.stories.ts
index d952ce3df9f18ae56833c1f0441ac7859d327cba..347065c396e2fb48595ace10bb67625283534515 100644
--- a/packages/frontend/src/pages/admin/overview.ap-requests.stories.ts
+++ b/packages/frontend/src/pages/admin/overview.ap-requests.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: overview_ap_requests,
 };
 export const Default = {
-	components: {
-		overview_ap_requests,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				overview_ap_requests,
+			},
+			props: Object.keys(argTypes),
+			template: '<overview_ap_requests v-bind="$props" />',
+		};
 	},
-	template: '<overview_ap_requests />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/admin/overview.federation.stories.ts b/packages/frontend/src/pages/admin/overview.federation.stories.ts
index c0bcca058897722bf01dae947c72db503155f0a9..61956f02495bd4a0fa6724e0eadafa6728390d87 100644
--- a/packages/frontend/src/pages/admin/overview.federation.stories.ts
+++ b/packages/frontend/src/pages/admin/overview.federation.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: overview_federation,
 };
 export const Default = {
-	components: {
-		overview_federation,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				overview_federation,
+			},
+			props: Object.keys(argTypes),
+			template: '<overview_federation v-bind="$props" />',
+		};
 	},
-	template: '<overview_federation />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/admin/overview.heatmap.stories.ts b/packages/frontend/src/pages/admin/overview.heatmap.stories.ts
index 28fca24b457db7e00edeab8f68a1849b37092949..872c883fe7f55b457592f925a63e9c0bf1560a0e 100644
--- a/packages/frontend/src/pages/admin/overview.heatmap.stories.ts
+++ b/packages/frontend/src/pages/admin/overview.heatmap.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: overview_heatmap,
 };
 export const Default = {
-	components: {
-		overview_heatmap,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				overview_heatmap,
+			},
+			props: Object.keys(argTypes),
+			template: '<overview_heatmap v-bind="$props" />',
+		};
 	},
-	template: '<overview_heatmap />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/admin/overview.instances.stories.ts b/packages/frontend/src/pages/admin/overview.instances.stories.ts
index 71cce61bc0a5793b04fd83fc73b5416ea7f87b3f..c6ca9f0855fad73ee78f3e2adeedfdd94980ea86 100644
--- a/packages/frontend/src/pages/admin/overview.instances.stories.ts
+++ b/packages/frontend/src/pages/admin/overview.instances.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: overview_instances,
 };
 export const Default = {
-	components: {
-		overview_instances,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				overview_instances,
+			},
+			props: Object.keys(argTypes),
+			template: '<overview_instances v-bind="$props" />',
+		};
 	},
-	template: '<overview_instances />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/admin/overview.moderators.stories.ts b/packages/frontend/src/pages/admin/overview.moderators.stories.ts
index d617cc9c3d97d76b0dd9c0ee1b8c4a2144914748..a05c482eab3bc27f824bb55d07b8772728649764 100644
--- a/packages/frontend/src/pages/admin/overview.moderators.stories.ts
+++ b/packages/frontend/src/pages/admin/overview.moderators.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: overview_moderators,
 };
 export const Default = {
-	components: {
-		overview_moderators,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				overview_moderators,
+			},
+			props: Object.keys(argTypes),
+			template: '<overview_moderators v-bind="$props" />',
+		};
 	},
-	template: '<overview_moderators />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/admin/overview.pie.stories.ts b/packages/frontend/src/pages/admin/overview.pie.stories.ts
index f73defee9f630114614fa1f2706b7c2d5c72e897..3c9844e206f11d4e341fdb692f4061838d3cf35f 100644
--- a/packages/frontend/src/pages/admin/overview.pie.stories.ts
+++ b/packages/frontend/src/pages/admin/overview.pie.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: overview_pie,
 };
 export const Default = {
-	components: {
-		overview_pie,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				overview_pie,
+			},
+			props: Object.keys(argTypes),
+			template: '<overview_pie v-bind="$props" />',
+		};
 	},
-	template: '<overview_pie />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/admin/overview.queue.chart.stories.ts b/packages/frontend/src/pages/admin/overview.queue.chart.stories.ts
index cfcd04f3c4647b23e1354848171655b8f63a9138..848300fe07dad676e944b4dbe7a25e58d72cefbe 100644
--- a/packages/frontend/src/pages/admin/overview.queue.chart.stories.ts
+++ b/packages/frontend/src/pages/admin/overview.queue.chart.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: overview_queue_chart,
 };
 export const Default = {
-	components: {
-		overview_queue_chart,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				overview_queue_chart,
+			},
+			props: Object.keys(argTypes),
+			template: '<overview_queue_chart v-bind="$props" />',
+		};
 	},
-	template: '<overview_queue_chart />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/admin/overview.queue.stories.ts b/packages/frontend/src/pages/admin/overview.queue.stories.ts
index f30978121c60d2ae59230b7d48532a38997a5f1d..e3f4bfca52325c0670fabf825adb3494251aea94 100644
--- a/packages/frontend/src/pages/admin/overview.queue.stories.ts
+++ b/packages/frontend/src/pages/admin/overview.queue.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: overview_queue,
 };
 export const Default = {
-	components: {
-		overview_queue,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				overview_queue,
+			},
+			props: Object.keys(argTypes),
+			template: '<overview_queue v-bind="$props" />',
+		};
 	},
-	template: '<overview_queue />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/admin/overview.retention.stories.ts b/packages/frontend/src/pages/admin/overview.retention.stories.ts
index b0bc4c72d1391c5a4bbf24ed3cc9e1be5817eb0b..3e1c5a89bcaccf250dfa6d79aef564335ddd0a1b 100644
--- a/packages/frontend/src/pages/admin/overview.retention.stories.ts
+++ b/packages/frontend/src/pages/admin/overview.retention.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: overview_retention,
 };
 export const Default = {
-	components: {
-		overview_retention,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				overview_retention,
+			},
+			props: Object.keys(argTypes),
+			template: '<overview_retention v-bind="$props" />',
+		};
 	},
-	template: '<overview_retention />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/admin/overview.stats.stories.ts b/packages/frontend/src/pages/admin/overview.stats.stories.ts
index 5bcefe2fc82179b4fd85894b571f8cd01a420ea0..0c368aaddcd13e159cde801d073f7da1bf187103 100644
--- a/packages/frontend/src/pages/admin/overview.stats.stories.ts
+++ b/packages/frontend/src/pages/admin/overview.stats.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: overview_stats,
 };
 export const Default = {
-	components: {
-		overview_stats,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				overview_stats,
+			},
+			props: Object.keys(argTypes),
+			template: '<overview_stats v-bind="$props" />',
+		};
 	},
-	template: '<overview_stats />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/admin/overview.stories.ts b/packages/frontend/src/pages/admin/overview.stories.ts
index 676acc1eafd2b10a8211c0c735115ffd2ba6abc3..de388bd48e44c42824c3ef97b3a871a92ea777a3 100644
--- a/packages/frontend/src/pages/admin/overview.stories.ts
+++ b/packages/frontend/src/pages/admin/overview.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: overview,
 };
 export const Default = {
-	components: {
-		overview,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				overview,
+			},
+			props: Object.keys(argTypes),
+			template: '<overview v-bind="$props" />',
+		};
 	},
-	template: '<overview />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/admin/overview.users.stories.ts b/packages/frontend/src/pages/admin/overview.users.stories.ts
index 4c61a00bf8ad887341fdfac366b41c8893670437..3846e670116615236c3a20322da4425475710c39 100644
--- a/packages/frontend/src/pages/admin/overview.users.stories.ts
+++ b/packages/frontend/src/pages/admin/overview.users.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: overview_users,
 };
 export const Default = {
-	components: {
-		overview_users,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				overview_users,
+			},
+			props: Object.keys(argTypes),
+			template: '<overview_users v-bind="$props" />',
+		};
 	},
-	template: '<overview_users />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/admin/proxy-account.stories.ts b/packages/frontend/src/pages/admin/proxy-account.stories.ts
index 6954a0f55fe6fecd9fdbe1468b4b37f0eaa90cb3..04fa3e1b683a160a42501ba40c6bd5c954a5c7af 100644
--- a/packages/frontend/src/pages/admin/proxy-account.stories.ts
+++ b/packages/frontend/src/pages/admin/proxy-account.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: proxy_account,
 };
 export const Default = {
-	components: {
-		proxy_account,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				proxy_account,
+			},
+			props: Object.keys(argTypes),
+			template: '<proxy_account v-bind="$props" />',
+		};
 	},
-	template: '<proxy_account />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/admin/queue.chart.chart.stories.ts b/packages/frontend/src/pages/admin/queue.chart.chart.stories.ts
index 13b63e7dbad15ebb663bc14d107077a5b463eded..95a1f0a5e379daa22220d4b090b0f4720b6f0e7c 100644
--- a/packages/frontend/src/pages/admin/queue.chart.chart.stories.ts
+++ b/packages/frontend/src/pages/admin/queue.chart.chart.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: queue_chart_chart,
 };
 export const Default = {
-	components: {
-		queue_chart_chart,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				queue_chart_chart,
+			},
+			props: Object.keys(argTypes),
+			template: '<queue_chart_chart v-bind="$props" />',
+		};
 	},
-	template: '<queue_chart_chart />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/admin/queue.chart.stories.ts b/packages/frontend/src/pages/admin/queue.chart.stories.ts
index 8e66f861446915cc590e92146cec291924ea6b53..48c9aba4b8a64e91ce1bc7ea80fd2c8c549441f0 100644
--- a/packages/frontend/src/pages/admin/queue.chart.stories.ts
+++ b/packages/frontend/src/pages/admin/queue.chart.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: queue_chart,
 };
 export const Default = {
-	components: {
-		queue_chart,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				queue_chart,
+			},
+			props: Object.keys(argTypes),
+			template: '<queue_chart v-bind="$props" />',
+		};
 	},
-	template: '<queue_chart />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/admin/queue.stories.ts b/packages/frontend/src/pages/admin/queue.stories.ts
index 6d2c06b48a1af8a98eb7b4830146cd5e7d4021f0..08a32d0402d9fec221eb4f77dd59df19f9c635e5 100644
--- a/packages/frontend/src/pages/admin/queue.stories.ts
+++ b/packages/frontend/src/pages/admin/queue.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: queue,
 };
 export const Default = {
-	components: {
-		queue,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				queue,
+			},
+			props: Object.keys(argTypes),
+			template: '<queue v-bind="$props" />',
+		};
 	},
-	template: '<queue />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/admin/relays.stories.ts b/packages/frontend/src/pages/admin/relays.stories.ts
index c362cb7ca9a6b7982210a85837db170eca404ac4..aabd4d2fcf22814765b9d19c29c374b9a6927db3 100644
--- a/packages/frontend/src/pages/admin/relays.stories.ts
+++ b/packages/frontend/src/pages/admin/relays.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: relays,
 };
 export const Default = {
-	components: {
-		relays,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				relays,
+			},
+			props: Object.keys(argTypes),
+			template: '<relays v-bind="$props" />',
+		};
 	},
-	template: '<relays />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/admin/roles.edit.stories.ts b/packages/frontend/src/pages/admin/roles.edit.stories.ts
index 61fac494153fc96fd07ab3459813501abc78f074..148cad434bddc037fd8c039389512ef37e72f82e 100644
--- a/packages/frontend/src/pages/admin/roles.edit.stories.ts
+++ b/packages/frontend/src/pages/admin/roles.edit.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: roles_edit,
 };
 export const Default = {
-	components: {
-		roles_edit,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				roles_edit,
+			},
+			props: Object.keys(argTypes),
+			template: '<roles_edit v-bind="$props" />',
+		};
 	},
-	template: '<roles_edit />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/admin/roles.editor.stories.ts b/packages/frontend/src/pages/admin/roles.editor.stories.ts
index 34dac9a05198d8dac08604824109abc68b26def5..91f0cd6656151620dc8aaa98cd48c7b99525e8b0 100644
--- a/packages/frontend/src/pages/admin/roles.editor.stories.ts
+++ b/packages/frontend/src/pages/admin/roles.editor.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: roles_editor,
 };
 export const Default = {
-	components: {
-		roles_editor,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				roles_editor,
+			},
+			props: Object.keys(argTypes),
+			template: '<roles_editor v-bind="$props" />',
+		};
 	},
-	template: '<roles_editor />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/admin/roles.role.stories.ts b/packages/frontend/src/pages/admin/roles.role.stories.ts
index ec112af0334dad24b60f8a737ac7ea5af455169c..4847b5d272e9ff44427de5ffe4fc1fd3835507ef 100644
--- a/packages/frontend/src/pages/admin/roles.role.stories.ts
+++ b/packages/frontend/src/pages/admin/roles.role.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: roles_role,
 };
 export const Default = {
-	components: {
-		roles_role,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				roles_role,
+			},
+			props: Object.keys(argTypes),
+			template: '<roles_role v-bind="$props" />',
+		};
 	},
-	template: '<roles_role />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/admin/roles.stories.ts b/packages/frontend/src/pages/admin/roles.stories.ts
index c0d1fcd4440fc27bdc3698c045000d2b8e73c53a..1c6abb42be20a34e062a4cce70735905829c6dee 100644
--- a/packages/frontend/src/pages/admin/roles.stories.ts
+++ b/packages/frontend/src/pages/admin/roles.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: roles,
 };
 export const Default = {
-	components: {
-		roles,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				roles,
+			},
+			props: Object.keys(argTypes),
+			template: '<roles v-bind="$props" />',
+		};
 	},
-	template: '<roles />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/admin/security.stories.ts b/packages/frontend/src/pages/admin/security.stories.ts
index eacff65985d6ebbea47d3f2c61a4222d1299980e..8785d2caf93b6ea497db8c1db374475bbc500ea4 100644
--- a/packages/frontend/src/pages/admin/security.stories.ts
+++ b/packages/frontend/src/pages/admin/security.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: security,
 };
 export const Default = {
-	components: {
-		security,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				security,
+			},
+			props: Object.keys(argTypes),
+			template: '<security v-bind="$props" />',
+		};
 	},
-	template: '<security />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/admin/settings.stories.ts b/packages/frontend/src/pages/admin/settings.stories.ts
index c10325146cfc586c295bc9dcb34576602ba45eef..75a99d78ce56db4afae5636b34cb212c1b3cf78a 100644
--- a/packages/frontend/src/pages/admin/settings.stories.ts
+++ b/packages/frontend/src/pages/admin/settings.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: settings,
 };
 export const Default = {
-	components: {
-		settings,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				settings,
+			},
+			props: Object.keys(argTypes),
+			template: '<settings v-bind="$props" />',
+		};
 	},
-	template: '<settings />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/admin/users.stories.ts b/packages/frontend/src/pages/admin/users.stories.ts
index 89769a35f997c71193a6b50200e40322ea0912e3..7d849fcecea13a11b7d6d1fb21c51d301589b96d 100644
--- a/packages/frontend/src/pages/admin/users.stories.ts
+++ b/packages/frontend/src/pages/admin/users.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: users,
 };
 export const Default = {
-	components: {
-		users,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				users,
+			},
+			props: Object.keys(argTypes),
+			template: '<users v-bind="$props" />',
+		};
 	},
-	template: '<users />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/ads.stories.ts b/packages/frontend/src/pages/ads.stories.ts
index 1fadb08a86c9375668e836dfea5fae06acaee41f..c02055d8ea56fb43b02bcce9c95f475da6ae2ec4 100644
--- a/packages/frontend/src/pages/ads.stories.ts
+++ b/packages/frontend/src/pages/ads.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: ads,
 };
 export const Default = {
-	components: {
-		ads,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				ads,
+			},
+			props: Object.keys(argTypes),
+			template: '<ads v-bind="$props" />',
+		};
 	},
-	template: '<ads />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/announcements.stories.ts b/packages/frontend/src/pages/announcements.stories.ts
index b5c70812392343166d7dd90a676dfb03c1245a76..4835a4c32745aa57de0aba6687ac752fa1437d3f 100644
--- a/packages/frontend/src/pages/announcements.stories.ts
+++ b/packages/frontend/src/pages/announcements.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: announcements,
 };
 export const Default = {
-	components: {
-		announcements,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				announcements,
+			},
+			props: Object.keys(argTypes),
+			template: '<announcements v-bind="$props" />',
+		};
 	},
-	template: '<announcements />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/antenna-timeline.stories.ts b/packages/frontend/src/pages/antenna-timeline.stories.ts
index 142ddb7862119edc8acf1321a30073e53edb5908..c16f408a5389d4880f997d93d39ebd657c4d8ed0 100644
--- a/packages/frontend/src/pages/antenna-timeline.stories.ts
+++ b/packages/frontend/src/pages/antenna-timeline.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: antenna_timeline,
 };
 export const Default = {
-	components: {
-		antenna_timeline,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				antenna_timeline,
+			},
+			props: Object.keys(argTypes),
+			template: '<antenna_timeline v-bind="$props" />',
+		};
 	},
-	template: '<antenna_timeline />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/api-console.stories.ts b/packages/frontend/src/pages/api-console.stories.ts
index ab7032c8858f8bb6ebf72fe9773579954e92cb67..dda2502d5a9cef35ae7a6aed15b8caf31491f557 100644
--- a/packages/frontend/src/pages/api-console.stories.ts
+++ b/packages/frontend/src/pages/api-console.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: api_console,
 };
 export const Default = {
-	components: {
-		api_console,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				api_console,
+			},
+			props: Object.keys(argTypes),
+			template: '<api_console v-bind="$props" />',
+		};
 	},
-	template: '<api_console />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/auth.form.stories.ts b/packages/frontend/src/pages/auth.form.stories.ts
index 27b302a7e15ac8c4472e4319fe02db14dbd6e97c..6cdae41880074a1da42b91e0be5c357544bc1ab4 100644
--- a/packages/frontend/src/pages/auth.form.stories.ts
+++ b/packages/frontend/src/pages/auth.form.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: auth_form,
 };
 export const Default = {
-	components: {
-		auth_form,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				auth_form,
+			},
+			props: Object.keys(argTypes),
+			template: '<auth_form v-bind="$props" />',
+		};
 	},
-	template: '<auth_form />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/auth.stories.ts b/packages/frontend/src/pages/auth.stories.ts
index ed9715c21c9d9acc64a2409155292a52003133d7..37f365581d276108e3b71d2a0bd5d6cf6bf7cfa8 100644
--- a/packages/frontend/src/pages/auth.stories.ts
+++ b/packages/frontend/src/pages/auth.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: auth,
 };
 export const Default = {
-	components: {
-		auth,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				auth,
+			},
+			props: Object.keys(argTypes),
+			template: '<auth v-bind="$props" />',
+		};
 	},
-	template: '<auth />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/channel-editor.stories.ts b/packages/frontend/src/pages/channel-editor.stories.ts
index fadda3c391dcd85c9317dff544a9a098fc280fa8..9928ede95d9a6829550aa57a1ff4fbbe7660d06f 100644
--- a/packages/frontend/src/pages/channel-editor.stories.ts
+++ b/packages/frontend/src/pages/channel-editor.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: channel_editor,
 };
 export const Default = {
-	components: {
-		channel_editor,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				channel_editor,
+			},
+			props: Object.keys(argTypes),
+			template: '<channel_editor v-bind="$props" />',
+		};
 	},
-	template: '<channel_editor />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/channel.stories.ts b/packages/frontend/src/pages/channel.stories.ts
index d11385411a7481170fca8915eda52d95b6103b55..bcb5b822228edc4df1605e6c7acc98a8c34eaf62 100644
--- a/packages/frontend/src/pages/channel.stories.ts
+++ b/packages/frontend/src/pages/channel.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: channel,
 };
 export const Default = {
-	components: {
-		channel,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				channel,
+			},
+			props: Object.keys(argTypes),
+			template: '<channel v-bind="$props" />',
+		};
 	},
-	template: '<channel />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/channels.stories.ts b/packages/frontend/src/pages/channels.stories.ts
index d17a5ab5aafeae1ecdf991b06a83b5a6a6ed709c..0e35ca4531b4652531e44e33b2c5428c12def24e 100644
--- a/packages/frontend/src/pages/channels.stories.ts
+++ b/packages/frontend/src/pages/channels.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: channels,
 };
 export const Default = {
-	components: {
-		channels,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				channels,
+			},
+			props: Object.keys(argTypes),
+			template: '<channels v-bind="$props" />',
+		};
 	},
-	template: '<channels />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/clicker.stories.ts b/packages/frontend/src/pages/clicker.stories.ts
index 90b554eac50785b18e7ce8f6b3de562b42bf73aa..5ed6fc048d90545ac1b092c185d42396a9b4ad42 100644
--- a/packages/frontend/src/pages/clicker.stories.ts
+++ b/packages/frontend/src/pages/clicker.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: clicker,
 };
 export const Default = {
-	components: {
-		clicker,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				clicker,
+			},
+			props: Object.keys(argTypes),
+			template: '<clicker v-bind="$props" />',
+		};
 	},
-	template: '<clicker />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/clip.stories.ts b/packages/frontend/src/pages/clip.stories.ts
index 1435436350d57f75186aeb2f33e518a2a062c6ba..c2e6f056f09476e5fa6090e9c480c800912af7fe 100644
--- a/packages/frontend/src/pages/clip.stories.ts
+++ b/packages/frontend/src/pages/clip.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: clip,
 };
 export const Default = {
-	components: {
-		clip,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				clip,
+			},
+			props: Object.keys(argTypes),
+			template: '<clip v-bind="$props" />',
+		};
 	},
-	template: '<clip />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/custom-emojis-manager.stories.ts b/packages/frontend/src/pages/custom-emojis-manager.stories.ts
index 3aa362b7d97aa880f880eb7603dcad7bc86687cc..44d87b42888997b40ea7974b1c80c9ff79320a37 100644
--- a/packages/frontend/src/pages/custom-emojis-manager.stories.ts
+++ b/packages/frontend/src/pages/custom-emojis-manager.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: custom_emojis_manager,
 };
 export const Default = {
-	components: {
-		custom_emojis_manager,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				custom_emojis_manager,
+			},
+			props: Object.keys(argTypes),
+			template: '<custom_emojis_manager v-bind="$props" />',
+		};
 	},
-	template: '<custom_emojis_manager />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/drive.stories.ts b/packages/frontend/src/pages/drive.stories.ts
index 199cbe10e7cc6f2805d4e81f5fb4e4748f01cbd7..56c6ff72d99ba524525cb12c03d2b58dc057fdc1 100644
--- a/packages/frontend/src/pages/drive.stories.ts
+++ b/packages/frontend/src/pages/drive.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: drive,
 };
 export const Default = {
-	components: {
-		drive,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				drive,
+			},
+			props: Object.keys(argTypes),
+			template: '<drive v-bind="$props" />',
+		};
 	},
-	template: '<drive />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/emoji-edit-dialog.stories.ts b/packages/frontend/src/pages/emoji-edit-dialog.stories.ts
index 4ff245de1671507a6a972b6056635c2d3990f6a8..e675bbe43854c77d8298c02732fa8946d7a34755 100644
--- a/packages/frontend/src/pages/emoji-edit-dialog.stories.ts
+++ b/packages/frontend/src/pages/emoji-edit-dialog.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: emoji_edit_dialog,
 };
 export const Default = {
-	components: {
-		emoji_edit_dialog,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				emoji_edit_dialog,
+			},
+			props: Object.keys(argTypes),
+			template: '<emoji_edit_dialog v-bind="$props" />',
+		};
 	},
-	template: '<emoji_edit_dialog />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/emojis.emoji.stories.ts b/packages/frontend/src/pages/emojis.emoji.stories.ts
index e0a7d8c85dec9988a8106e7ffb79f0ab44eea40a..bda94c9b9a7acfe02c3cd49c4ee3f461e6850ef5 100644
--- a/packages/frontend/src/pages/emojis.emoji.stories.ts
+++ b/packages/frontend/src/pages/emojis.emoji.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: emojis_emoji,
 };
 export const Default = {
-	components: {
-		emojis_emoji,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				emojis_emoji,
+			},
+			props: Object.keys(argTypes),
+			template: '<emojis_emoji v-bind="$props" />',
+		};
 	},
-	template: '<emojis_emoji />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/explore.featured.stories.ts b/packages/frontend/src/pages/explore.featured.stories.ts
index 9482aa0a1b7b100d03f31d8e07463a254fca5202..b04eee42643d652935558465ff58830e64262a78 100644
--- a/packages/frontend/src/pages/explore.featured.stories.ts
+++ b/packages/frontend/src/pages/explore.featured.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: explore_featured,
 };
 export const Default = {
-	components: {
-		explore_featured,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				explore_featured,
+			},
+			props: Object.keys(argTypes),
+			template: '<explore_featured v-bind="$props" />',
+		};
 	},
-	template: '<explore_featured />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/explore.roles.stories.ts b/packages/frontend/src/pages/explore.roles.stories.ts
index bcf5c0fdba898b3e481e6140ed43844abe268929..44ff94c7aee6618c2b6fb9e8edf2881a3d3b7ac9 100644
--- a/packages/frontend/src/pages/explore.roles.stories.ts
+++ b/packages/frontend/src/pages/explore.roles.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: explore_roles,
 };
 export const Default = {
-	components: {
-		explore_roles,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				explore_roles,
+			},
+			props: Object.keys(argTypes),
+			template: '<explore_roles v-bind="$props" />',
+		};
 	},
-	template: '<explore_roles />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/explore.stories.ts b/packages/frontend/src/pages/explore.stories.ts
index b42265a8b89bc8a4ca44b6d225c4a9ee694cc415..5aa5efe5660133404202ee2e3a6ace08dd687c24 100644
--- a/packages/frontend/src/pages/explore.stories.ts
+++ b/packages/frontend/src/pages/explore.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: explore,
 };
 export const Default = {
-	components: {
-		explore,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				explore,
+			},
+			props: Object.keys(argTypes),
+			template: '<explore v-bind="$props" />',
+		};
 	},
-	template: '<explore />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/explore.users.stories.ts b/packages/frontend/src/pages/explore.users.stories.ts
index 0b62e44584165e0091a1da92f1a2d801be5c7ac9..4ce52c9886c2c9f3fe6e08679388027a4d885846 100644
--- a/packages/frontend/src/pages/explore.users.stories.ts
+++ b/packages/frontend/src/pages/explore.users.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: explore_users,
 };
 export const Default = {
-	components: {
-		explore_users,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				explore_users,
+			},
+			props: Object.keys(argTypes),
+			template: '<explore_users v-bind="$props" />',
+		};
 	},
-	template: '<explore_users />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/favorites.stories.ts b/packages/frontend/src/pages/favorites.stories.ts
index 959cd963362e60ccee36bc9e171fa1ac6340e3d1..76c1882195cffe48d901b1a4044eaa8320fa1899 100644
--- a/packages/frontend/src/pages/favorites.stories.ts
+++ b/packages/frontend/src/pages/favorites.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: favorites,
 };
 export const Default = {
-	components: {
-		favorites,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				favorites,
+			},
+			props: Object.keys(argTypes),
+			template: '<favorites v-bind="$props" />',
+		};
 	},
-	template: '<favorites />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/flash/flash-edit.stories.ts b/packages/frontend/src/pages/flash/flash-edit.stories.ts
index 1eb559bd42e83ebe89c2bf0a4b9daed121291912..27376858e04e32af6597a5f4e358fb5080946706 100644
--- a/packages/frontend/src/pages/flash/flash-edit.stories.ts
+++ b/packages/frontend/src/pages/flash/flash-edit.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: flash_edit,
 };
 export const Default = {
-	components: {
-		flash_edit,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				flash_edit,
+			},
+			props: Object.keys(argTypes),
+			template: '<flash_edit v-bind="$props" />',
+		};
 	},
-	template: '<flash_edit />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/flash/flash-index.stories.ts b/packages/frontend/src/pages/flash/flash-index.stories.ts
index 1d10f2f3fa77675bbff321cf58936c023e0730ee..327506577f8b828a2e36c7638020231bc0b7e0a2 100644
--- a/packages/frontend/src/pages/flash/flash-index.stories.ts
+++ b/packages/frontend/src/pages/flash/flash-index.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: flash_index,
 };
 export const Default = {
-	components: {
-		flash_index,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				flash_index,
+			},
+			props: Object.keys(argTypes),
+			template: '<flash_index v-bind="$props" />',
+		};
 	},
-	template: '<flash_index />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/flash/flash.stories.ts b/packages/frontend/src/pages/flash/flash.stories.ts
index b987a06b9c8b92a2aae2f2e19819e820475285e1..e0ff01a0b8f7b14741c5e9cbd1ab81004022f434 100644
--- a/packages/frontend/src/pages/flash/flash.stories.ts
+++ b/packages/frontend/src/pages/flash/flash.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: flash,
 };
 export const Default = {
-	components: {
-		flash,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				flash,
+			},
+			props: Object.keys(argTypes),
+			template: '<flash v-bind="$props" />',
+		};
 	},
-	template: '<flash />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/follow-requests.stories.ts b/packages/frontend/src/pages/follow-requests.stories.ts
index 5f94621069fbea833a57ee33043fafb85a40d729..8654604b6f21aa037eb4c5f0a598fd728a9a5427 100644
--- a/packages/frontend/src/pages/follow-requests.stories.ts
+++ b/packages/frontend/src/pages/follow-requests.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: follow_requests,
 };
 export const Default = {
-	components: {
-		follow_requests,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				follow_requests,
+			},
+			props: Object.keys(argTypes),
+			template: '<follow_requests v-bind="$props" />',
+		};
 	},
-	template: '<follow_requests />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/follow.stories.ts b/packages/frontend/src/pages/follow.stories.ts
index 73b487bc3a249df6723fb949056240bddb281eeb..b9090d158b7d7560e932e3fdcf723770713743c8 100644
--- a/packages/frontend/src/pages/follow.stories.ts
+++ b/packages/frontend/src/pages/follow.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: follow,
 };
 export const Default = {
-	components: {
-		follow,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				follow,
+			},
+			props: Object.keys(argTypes),
+			template: '<follow v-bind="$props" />',
+		};
 	},
-	template: '<follow />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/gallery/edit.stories.ts b/packages/frontend/src/pages/gallery/edit.stories.ts
index 80b8f4341c1b4a03fecac0828ac87b419cbeb306..6bf05086b660fba5f42d4b80d3e9d43da7a3de15 100644
--- a/packages/frontend/src/pages/gallery/edit.stories.ts
+++ b/packages/frontend/src/pages/gallery/edit.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: edit,
 };
 export const Default = {
-	components: {
-		edit,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				edit,
+			},
+			props: Object.keys(argTypes),
+			template: '<edit v-bind="$props" />',
+		};
 	},
-	template: '<edit />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/gallery/index.stories.ts b/packages/frontend/src/pages/gallery/index.stories.ts
index a97c4f543d128edcfb7a0ab9cdf52bd078356927..57d8be035a66a4d5919e629e4cea61dedadfeaa4 100644
--- a/packages/frontend/src/pages/gallery/index.stories.ts
+++ b/packages/frontend/src/pages/gallery/index.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: index,
 };
 export const Default = {
-	components: {
-		index,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				index,
+			},
+			props: Object.keys(argTypes),
+			template: '<index v-bind="$props" />',
+		};
 	},
-	template: '<index />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/gallery/post.stories.ts b/packages/frontend/src/pages/gallery/post.stories.ts
index a836bb0f8b0798600c2cb4f7d7ebd56a2bffc21f..1bafccebded017f076d84a9836fcff88818983c1 100644
--- a/packages/frontend/src/pages/gallery/post.stories.ts
+++ b/packages/frontend/src/pages/gallery/post.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: post,
 };
 export const Default = {
-	components: {
-		post,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				post,
+			},
+			props: Object.keys(argTypes),
+			template: '<post v-bind="$props" />',
+		};
 	},
-	template: '<post />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/instance-info.stories.ts b/packages/frontend/src/pages/instance-info.stories.ts
index e4ce20788cc1c35575c2639e1fbf56138d79e267..311a27a8778a04b74f88943cd6b1344479e638f6 100644
--- a/packages/frontend/src/pages/instance-info.stories.ts
+++ b/packages/frontend/src/pages/instance-info.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: instance_info,
 };
 export const Default = {
-	components: {
-		instance_info,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				instance_info,
+			},
+			props: Object.keys(argTypes),
+			template: '<instance_info v-bind="$props" />',
+		};
 	},
-	template: '<instance_info />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/miauth.stories.ts b/packages/frontend/src/pages/miauth.stories.ts
index b70ba39235c416ece33ab91fe2eb6aa391dcee75..b668f03cd0d9145abebe14e5ede1ab9d30acd6ce 100644
--- a/packages/frontend/src/pages/miauth.stories.ts
+++ b/packages/frontend/src/pages/miauth.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: miauth,
 };
 export const Default = {
-	components: {
-		miauth,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				miauth,
+			},
+			props: Object.keys(argTypes),
+			template: '<miauth v-bind="$props" />',
+		};
 	},
-	template: '<miauth />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/my-antennas/create.stories.ts b/packages/frontend/src/pages/my-antennas/create.stories.ts
index d71aa1206b09f9e6913498ec4433c9cc729c6cfb..310cfe61f74f4bbd15c99da0521342f5d96025aa 100644
--- a/packages/frontend/src/pages/my-antennas/create.stories.ts
+++ b/packages/frontend/src/pages/my-antennas/create.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: create,
 };
 export const Default = {
-	components: {
-		create,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				create,
+			},
+			props: Object.keys(argTypes),
+			template: '<create v-bind="$props" />',
+		};
 	},
-	template: '<create />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/my-antennas/edit.stories.ts b/packages/frontend/src/pages/my-antennas/edit.stories.ts
index ebb9e542011ea85e24cd71871254ee3aa3893598..51202b066ec7f17703e0f69f5f577d77e15b440e 100644
--- a/packages/frontend/src/pages/my-antennas/edit.stories.ts
+++ b/packages/frontend/src/pages/my-antennas/edit.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: edit,
 };
 export const Default = {
-	components: {
-		edit,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				edit,
+			},
+			props: Object.keys(argTypes),
+			template: '<edit v-bind="$props" />',
+		};
 	},
-	template: '<edit />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/my-antennas/editor.stories.ts b/packages/frontend/src/pages/my-antennas/editor.stories.ts
index 1edb29e80628b8a32ac7f6a9ca9d7f4cb5fa473f..88a96edffb87111afd23f7b8a26021c5d9d06189 100644
--- a/packages/frontend/src/pages/my-antennas/editor.stories.ts
+++ b/packages/frontend/src/pages/my-antennas/editor.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: editor,
 };
 export const Default = {
-	components: {
-		editor,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				editor,
+			},
+			props: Object.keys(argTypes),
+			template: '<editor v-bind="$props" />',
+		};
 	},
-	template: '<editor />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/my-antennas/index.stories.ts b/packages/frontend/src/pages/my-antennas/index.stories.ts
index 65af62c76d6f991df26a5a1f0ce7d75f3922311f..f0c356b49b1583f70433321a3691e0e68f738083 100644
--- a/packages/frontend/src/pages/my-antennas/index.stories.ts
+++ b/packages/frontend/src/pages/my-antennas/index.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: index,
 };
 export const Default = {
-	components: {
-		index,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				index,
+			},
+			props: Object.keys(argTypes),
+			template: '<index v-bind="$props" />',
+		};
 	},
-	template: '<index />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/my-clips/index.stories.ts b/packages/frontend/src/pages/my-clips/index.stories.ts
index 4625509983492866a09f21318e1e5e73f603a572..a84ba350bccb2b8d1de3345bb90209598bd77b1b 100644
--- a/packages/frontend/src/pages/my-clips/index.stories.ts
+++ b/packages/frontend/src/pages/my-clips/index.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: index,
 };
 export const Default = {
-	components: {
-		index,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				index,
+			},
+			props: Object.keys(argTypes),
+			template: '<index v-bind="$props" />',
+		};
 	},
-	template: '<index />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/my-lists/index.stories.ts b/packages/frontend/src/pages/my-lists/index.stories.ts
index eae8dbeb63b6523eb5e30cbe25cc0f8654c2af41..ae76937e09fb54670ff6a86ae13f5c2d5bd1e9ce 100644
--- a/packages/frontend/src/pages/my-lists/index.stories.ts
+++ b/packages/frontend/src/pages/my-lists/index.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: index,
 };
 export const Default = {
-	components: {
-		index,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				index,
+			},
+			props: Object.keys(argTypes),
+			template: '<index v-bind="$props" />',
+		};
 	},
-	template: '<index />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/my-lists/list.stories.ts b/packages/frontend/src/pages/my-lists/list.stories.ts
index 05a306a3fff15d3216f36a5ee1fc9c29656e9144..7ed8f300977261c4200488449b4054490710d805 100644
--- a/packages/frontend/src/pages/my-lists/list.stories.ts
+++ b/packages/frontend/src/pages/my-lists/list.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: list,
 };
 export const Default = {
-	components: {
-		list,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				list,
+			},
+			props: Object.keys(argTypes),
+			template: '<list v-bind="$props" />',
+		};
 	},
-	template: '<list />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/not-found.stories.ts b/packages/frontend/src/pages/not-found.stories.ts
index 1d84261fea0c0b75dae115c26ec4fd09e7a7c504..03c1b8103d07e8178bfb39a616074c929d278498 100644
--- a/packages/frontend/src/pages/not-found.stories.ts
+++ b/packages/frontend/src/pages/not-found.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: not_found,
 };
 export const Default = {
-	components: {
-		not_found,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				not_found,
+			},
+			props: Object.keys(argTypes),
+			template: '<not_found v-bind="$props" />',
+		};
 	},
-	template: '<not_found />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/note.stories.ts b/packages/frontend/src/pages/note.stories.ts
index e4703e3bb60e4dc4ea6240759e0986c4c2f15c63..fc88632ce094a081c17fe2a5114a87441b4aea7e 100644
--- a/packages/frontend/src/pages/note.stories.ts
+++ b/packages/frontend/src/pages/note.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: note,
 };
 export const Default = {
-	components: {
-		note,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				note,
+			},
+			props: Object.keys(argTypes),
+			template: '<note v-bind="$props" />',
+		};
 	},
-	template: '<note />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/notifications.stories.ts b/packages/frontend/src/pages/notifications.stories.ts
index 2181b94eb864b34f04edc22fae2542e5e65e9c19..8a81613b092ad759ba4dea87de09a3d5baf1935e 100644
--- a/packages/frontend/src/pages/notifications.stories.ts
+++ b/packages/frontend/src/pages/notifications.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: notifications,
 };
 export const Default = {
-	components: {
-		notifications,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				notifications,
+			},
+			props: Object.keys(argTypes),
+			template: '<notifications v-bind="$props" />',
+		};
 	},
-	template: '<notifications />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/page-editor/els/page-editor.el.image.stories.ts b/packages/frontend/src/pages/page-editor/els/page-editor.el.image.stories.ts
index 4811d07edf8f9217f4ea53ca403659719a0b8934..94eeb054c61c8cdbc56c47bb6b0aadd56f7eda10 100644
--- a/packages/frontend/src/pages/page-editor/els/page-editor.el.image.stories.ts
+++ b/packages/frontend/src/pages/page-editor/els/page-editor.el.image.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: page_editor_el_image,
 };
 export const Default = {
-	components: {
-		page_editor_el_image,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				page_editor_el_image,
+			},
+			props: Object.keys(argTypes),
+			template: '<page_editor_el_image v-bind="$props" />',
+		};
 	},
-	template: '<page_editor_el_image />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/page-editor/els/page-editor.el.note.stories.ts b/packages/frontend/src/pages/page-editor/els/page-editor.el.note.stories.ts
index 0293c4ca46bbf1aeff7fd50be48d604ca478087d..9b767672c55d78365bce662095775d71a150187f 100644
--- a/packages/frontend/src/pages/page-editor/els/page-editor.el.note.stories.ts
+++ b/packages/frontend/src/pages/page-editor/els/page-editor.el.note.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: page_editor_el_note,
 };
 export const Default = {
-	components: {
-		page_editor_el_note,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				page_editor_el_note,
+			},
+			props: Object.keys(argTypes),
+			template: '<page_editor_el_note v-bind="$props" />',
+		};
 	},
-	template: '<page_editor_el_note />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/page-editor/els/page-editor.el.section.stories.ts b/packages/frontend/src/pages/page-editor/els/page-editor.el.section.stories.ts
index a0c062b6709494952c78dc4fc57747c14c917443..f40039517acd9ffc98a8c4031be7921032f3494b 100644
--- a/packages/frontend/src/pages/page-editor/els/page-editor.el.section.stories.ts
+++ b/packages/frontend/src/pages/page-editor/els/page-editor.el.section.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: page_editor_el_section,
 };
 export const Default = {
-	components: {
-		page_editor_el_section,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				page_editor_el_section,
+			},
+			props: Object.keys(argTypes),
+			template: '<page_editor_el_section v-bind="$props" />',
+		};
 	},
-	template: '<page_editor_el_section />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/page-editor/els/page-editor.el.text.stories.ts b/packages/frontend/src/pages/page-editor/els/page-editor.el.text.stories.ts
index 46c8d3ddfe0316351af235e3b222d5cab3ae9ca2..6e4bc9bbd41fca8cf4980598f387ba887f9af191 100644
--- a/packages/frontend/src/pages/page-editor/els/page-editor.el.text.stories.ts
+++ b/packages/frontend/src/pages/page-editor/els/page-editor.el.text.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: page_editor_el_text,
 };
 export const Default = {
-	components: {
-		page_editor_el_text,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				page_editor_el_text,
+			},
+			props: Object.keys(argTypes),
+			template: '<page_editor_el_text v-bind="$props" />',
+		};
 	},
-	template: '<page_editor_el_text />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/page-editor/page-editor.blocks.stories.ts b/packages/frontend/src/pages/page-editor/page-editor.blocks.stories.ts
index 965c615ba714fe6f23e4f08a33c23ba1354eec53..e753a960288d191381e4c634fa75dccdd8ee3ec8 100644
--- a/packages/frontend/src/pages/page-editor/page-editor.blocks.stories.ts
+++ b/packages/frontend/src/pages/page-editor/page-editor.blocks.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: page_editor_blocks,
 };
 export const Default = {
-	components: {
-		page_editor_blocks,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				page_editor_blocks,
+			},
+			props: Object.keys(argTypes),
+			template: '<page_editor_blocks v-bind="$props" />',
+		};
 	},
-	template: '<page_editor_blocks />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/page-editor/page-editor.container.stories.ts b/packages/frontend/src/pages/page-editor/page-editor.container.stories.ts
index 0d044d7f62089959b176f860aced698b09307fd6..77a4836f3b0629f2d030806b2da232e87ff6d412 100644
--- a/packages/frontend/src/pages/page-editor/page-editor.container.stories.ts
+++ b/packages/frontend/src/pages/page-editor/page-editor.container.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: page_editor_container,
 };
 export const Default = {
-	components: {
-		page_editor_container,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				page_editor_container,
+			},
+			props: Object.keys(argTypes),
+			template: '<page_editor_container v-bind="$props" />',
+		};
 	},
-	template: '<page_editor_container />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/page-editor/page-editor.stories.ts b/packages/frontend/src/pages/page-editor/page-editor.stories.ts
index e0d0f5b3d1d57e02a6ecfa6413050ed75bdf9d1c..59c0989381979d528041f20eda6a8797213c87af 100644
--- a/packages/frontend/src/pages/page-editor/page-editor.stories.ts
+++ b/packages/frontend/src/pages/page-editor/page-editor.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: page_editor,
 };
 export const Default = {
-	components: {
-		page_editor,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				page_editor,
+			},
+			props: Object.keys(argTypes),
+			template: '<page_editor v-bind="$props" />',
+		};
 	},
-	template: '<page_editor />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/page.stories.ts b/packages/frontend/src/pages/page.stories.ts
index 08358f2baac8b8b44173f032367ac04bc1d96887..910deaca49473d9313e90b2516b705823c6ba707 100644
--- a/packages/frontend/src/pages/page.stories.ts
+++ b/packages/frontend/src/pages/page.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: page,
 };
 export const Default = {
-	components: {
-		page,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				page,
+			},
+			props: Object.keys(argTypes),
+			template: '<page v-bind="$props" />',
+		};
 	},
-	template: '<page />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/pages.stories.ts b/packages/frontend/src/pages/pages.stories.ts
index f6ac1d45623969be1a68811a79d9978dae8eb7f8..2d8f53bda1ba285e68fc30b7df6cdafb54311d3e 100644
--- a/packages/frontend/src/pages/pages.stories.ts
+++ b/packages/frontend/src/pages/pages.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: pages,
 };
 export const Default = {
-	components: {
-		pages,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				pages,
+			},
+			props: Object.keys(argTypes),
+			template: '<pages v-bind="$props" />',
+		};
 	},
-	template: '<pages />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/preview.stories.ts b/packages/frontend/src/pages/preview.stories.ts
index 60cc026f6cc075d0d1ce141ca1df72fa4d84d4b2..6605c458768c8910f5558ae3d1f84f1e55a1cf00 100644
--- a/packages/frontend/src/pages/preview.stories.ts
+++ b/packages/frontend/src/pages/preview.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: preview,
 };
 export const Default = {
-	components: {
-		preview,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				preview,
+			},
+			props: Object.keys(argTypes),
+			template: '<preview v-bind="$props" />',
+		};
 	},
-	template: '<preview />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/registry.keys.stories.ts b/packages/frontend/src/pages/registry.keys.stories.ts
index 1a1ec5216b6d3c4d83e1da21281e4c744eb248dc..0d710acff381553bc59a585899915d2d967c54ea 100644
--- a/packages/frontend/src/pages/registry.keys.stories.ts
+++ b/packages/frontend/src/pages/registry.keys.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: registry_keys,
 };
 export const Default = {
-	components: {
-		registry_keys,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				registry_keys,
+			},
+			props: Object.keys(argTypes),
+			template: '<registry_keys v-bind="$props" />',
+		};
 	},
-	template: '<registry_keys />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/registry.stories.ts b/packages/frontend/src/pages/registry.stories.ts
index 846d75cc8f3d4b825fb74920372c1a3967ac2241..776c153adc3da19faccd3e841d252fa968acffcb 100644
--- a/packages/frontend/src/pages/registry.stories.ts
+++ b/packages/frontend/src/pages/registry.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: registry,
 };
 export const Default = {
-	components: {
-		registry,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				registry,
+			},
+			props: Object.keys(argTypes),
+			template: '<registry v-bind="$props" />',
+		};
 	},
-	template: '<registry />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/registry.value.stories.ts b/packages/frontend/src/pages/registry.value.stories.ts
index 798c77d715ee44d827af69fde7104377cf4c7ab9..d90bc4eddaccfbbe4c09176168c756f510191427 100644
--- a/packages/frontend/src/pages/registry.value.stories.ts
+++ b/packages/frontend/src/pages/registry.value.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: registry_value,
 };
 export const Default = {
-	components: {
-		registry_value,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				registry_value,
+			},
+			props: Object.keys(argTypes),
+			template: '<registry_value v-bind="$props" />',
+		};
 	},
-	template: '<registry_value />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/reset-password.stories.ts b/packages/frontend/src/pages/reset-password.stories.ts
index 6cab23af599849496b5ee3acb46eaf52565e0afe..e478a2706e59d8957aa84202600268d5d872fdbc 100644
--- a/packages/frontend/src/pages/reset-password.stories.ts
+++ b/packages/frontend/src/pages/reset-password.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: reset_password,
 };
 export const Default = {
-	components: {
-		reset_password,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				reset_password,
+			},
+			props: Object.keys(argTypes),
+			template: '<reset_password v-bind="$props" />',
+		};
 	},
-	template: '<reset_password />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/role.stories.ts b/packages/frontend/src/pages/role.stories.ts
index 2ec6bde6524f5fc76b0df7259851c7007b61a47c..f1cfe66607639eb40429e07c57927dcaccb76375 100644
--- a/packages/frontend/src/pages/role.stories.ts
+++ b/packages/frontend/src/pages/role.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: role,
 };
 export const Default = {
-	components: {
-		role,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				role,
+			},
+			props: Object.keys(argTypes),
+			template: '<role v-bind="$props" />',
+		};
 	},
-	template: '<role />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/scratchpad.stories.ts b/packages/frontend/src/pages/scratchpad.stories.ts
index 369df43de0b3b8e8713ae270b556c12ce6a21c65..a5ea5b36e3a6ea6d07290f4843a467c6d03151c8 100644
--- a/packages/frontend/src/pages/scratchpad.stories.ts
+++ b/packages/frontend/src/pages/scratchpad.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: scratchpad,
 };
 export const Default = {
-	components: {
-		scratchpad,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				scratchpad,
+			},
+			props: Object.keys(argTypes),
+			template: '<scratchpad v-bind="$props" />',
+		};
 	},
-	template: '<scratchpad />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/search.stories.ts b/packages/frontend/src/pages/search.stories.ts
index 845abb92b5358d74c6de0d95d19ad808ad0f5bb7..05d2603dfeb2e08c6d3c755c3cd366a5008935e7 100644
--- a/packages/frontend/src/pages/search.stories.ts
+++ b/packages/frontend/src/pages/search.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: search,
 };
 export const Default = {
-	components: {
-		search,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				search,
+			},
+			props: Object.keys(argTypes),
+			template: '<search v-bind="$props" />',
+		};
 	},
-	template: '<search />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/settings/2fa.qrdialog.stories.ts b/packages/frontend/src/pages/settings/2fa.qrdialog.stories.ts
index cc5c3311fee771d724fc77d1c22358f64b28d601..54d1d959b2c87a72d0a2b56f9834a249fee5c015 100644
--- a/packages/frontend/src/pages/settings/2fa.qrdialog.stories.ts
+++ b/packages/frontend/src/pages/settings/2fa.qrdialog.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: _2fa_qrdialog,
 };
 export const Default = {
-	components: {
-		_2fa_qrdialog,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				_2fa_qrdialog,
+			},
+			props: Object.keys(argTypes),
+			template: '<_2fa_qrdialog v-bind="$props" />',
+		};
 	},
-	template: '<_2fa_qrdialog />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/settings/2fa.stories.ts b/packages/frontend/src/pages/settings/2fa.stories.ts
index 3b77f4cefe8881d89ff0373d1b1822273e37aeb2..9d6a887484e4e35a3e3992ed852d895217cc6f3a 100644
--- a/packages/frontend/src/pages/settings/2fa.stories.ts
+++ b/packages/frontend/src/pages/settings/2fa.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: _2fa,
 };
 export const Default = {
-	components: {
-		_2fa,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				_2fa,
+			},
+			props: Object.keys(argTypes),
+			template: '<_2fa v-bind="$props" />',
+		};
 	},
-	template: '<_2fa />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/settings/account-info.stories.ts b/packages/frontend/src/pages/settings/account-info.stories.ts
index ed43fd46ac733be69715e49403e6bfac0fb819a4..0fb998b3e4f68c7ae929ce6be0b65aaa33eccca4 100644
--- a/packages/frontend/src/pages/settings/account-info.stories.ts
+++ b/packages/frontend/src/pages/settings/account-info.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: account_info,
 };
 export const Default = {
-	components: {
-		account_info,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				account_info,
+			},
+			props: Object.keys(argTypes),
+			template: '<account_info v-bind="$props" />',
+		};
 	},
-	template: '<account_info />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/settings/accounts.stories.ts b/packages/frontend/src/pages/settings/accounts.stories.ts
index 4ffa1ae4cda9cfdacc04936999fe94791120c27d..9996274c78e59f0d9b9f2f8df5301b2453e2c7ad 100644
--- a/packages/frontend/src/pages/settings/accounts.stories.ts
+++ b/packages/frontend/src/pages/settings/accounts.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: accounts,
 };
 export const Default = {
-	components: {
-		accounts,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				accounts,
+			},
+			props: Object.keys(argTypes),
+			template: '<accounts v-bind="$props" />',
+		};
 	},
-	template: '<accounts />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/settings/api.stories.ts b/packages/frontend/src/pages/settings/api.stories.ts
index 3695e9dfec1237b1c660f118cd254fbb1b7aa626..bb3194c5616ab09e1c38f4ed7e222feaf00c09bf 100644
--- a/packages/frontend/src/pages/settings/api.stories.ts
+++ b/packages/frontend/src/pages/settings/api.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: api,
 };
 export const Default = {
-	components: {
-		api,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				api,
+			},
+			props: Object.keys(argTypes),
+			template: '<api v-bind="$props" />',
+		};
 	},
-	template: '<api />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/settings/apps.stories.ts b/packages/frontend/src/pages/settings/apps.stories.ts
index e9820cd3e25c157f160979b9260caad2254dee7a..038848986b41549cba82f46c4552acffaba9fd17 100644
--- a/packages/frontend/src/pages/settings/apps.stories.ts
+++ b/packages/frontend/src/pages/settings/apps.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: apps,
 };
 export const Default = {
-	components: {
-		apps,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				apps,
+			},
+			props: Object.keys(argTypes),
+			template: '<apps v-bind="$props" />',
+		};
 	},
-	template: '<apps />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/settings/custom-css.stories.ts b/packages/frontend/src/pages/settings/custom-css.stories.ts
index 821ff4bf533503049ac8f2cde072f588e2ebd4fb..7b7cc913fc0d1550ce119d0482a233950ba1144c 100644
--- a/packages/frontend/src/pages/settings/custom-css.stories.ts
+++ b/packages/frontend/src/pages/settings/custom-css.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: custom_css,
 };
 export const Default = {
-	components: {
-		custom_css,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				custom_css,
+			},
+			props: Object.keys(argTypes),
+			template: '<custom_css v-bind="$props" />',
+		};
 	},
-	template: '<custom_css />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/settings/deck.stories.ts b/packages/frontend/src/pages/settings/deck.stories.ts
index 7ee4159f87fef1532bf96d96028043f2bee722d9..e6c51bc005f31b29aad8f9705b3f7fdf61ac5bec 100644
--- a/packages/frontend/src/pages/settings/deck.stories.ts
+++ b/packages/frontend/src/pages/settings/deck.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: deck,
 };
 export const Default = {
-	components: {
-		deck,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				deck,
+			},
+			props: Object.keys(argTypes),
+			template: '<deck v-bind="$props" />',
+		};
 	},
-	template: '<deck />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/settings/delete-account.stories.ts b/packages/frontend/src/pages/settings/delete-account.stories.ts
index d29068dadc29aeb46b409adac6c8f4da77a3ffdf..4f5cf2c0942496c1ec6cd1c88cf4ae17ae9912f7 100644
--- a/packages/frontend/src/pages/settings/delete-account.stories.ts
+++ b/packages/frontend/src/pages/settings/delete-account.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: delete_account,
 };
 export const Default = {
-	components: {
-		delete_account,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				delete_account,
+			},
+			props: Object.keys(argTypes),
+			template: '<delete_account v-bind="$props" />',
+		};
 	},
-	template: '<delete_account />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/settings/drive.stories.ts b/packages/frontend/src/pages/settings/drive.stories.ts
index cf65d1819f03f5fb46508a6423a9e47e977a49e1..140615641c3138cb37d0ec7d08f6ade1821ba4eb 100644
--- a/packages/frontend/src/pages/settings/drive.stories.ts
+++ b/packages/frontend/src/pages/settings/drive.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: drive,
 };
 export const Default = {
-	components: {
-		drive,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				drive,
+			},
+			props: Object.keys(argTypes),
+			template: '<drive v-bind="$props" />',
+		};
 	},
-	template: '<drive />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/settings/email.stories.ts b/packages/frontend/src/pages/settings/email.stories.ts
index 1adeb96133a663c750ab53514c6d93e4e0d15606..043f23a484bf840263863b8126b72cc50db7c3aa 100644
--- a/packages/frontend/src/pages/settings/email.stories.ts
+++ b/packages/frontend/src/pages/settings/email.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: email,
 };
 export const Default = {
-	components: {
-		email,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				email,
+			},
+			props: Object.keys(argTypes),
+			template: '<email v-bind="$props" />',
+		};
 	},
-	template: '<email />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/settings/general.stories.ts b/packages/frontend/src/pages/settings/general.stories.ts
index 579f509f27d95c6933e17704d0ffc6a132c6ed0a..09237cf350f8867136568650758c97b15560b077 100644
--- a/packages/frontend/src/pages/settings/general.stories.ts
+++ b/packages/frontend/src/pages/settings/general.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: general,
 };
 export const Default = {
-	components: {
-		general,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				general,
+			},
+			props: Object.keys(argTypes),
+			template: '<general v-bind="$props" />',
+		};
 	},
-	template: '<general />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/settings/import-export.stories.ts b/packages/frontend/src/pages/settings/import-export.stories.ts
index 967ed5459c1ff84381ee6a0f83e9fc362a9996e0..9d05bd5c250b3dec71dc29121ddfc494359ec1c9 100644
--- a/packages/frontend/src/pages/settings/import-export.stories.ts
+++ b/packages/frontend/src/pages/settings/import-export.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: import_export,
 };
 export const Default = {
-	components: {
-		import_export,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				import_export,
+			},
+			props: Object.keys(argTypes),
+			template: '<import_export v-bind="$props" />',
+		};
 	},
-	template: '<import_export />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/settings/index.stories.ts b/packages/frontend/src/pages/settings/index.stories.ts
index 2d9a2ec86e957d93de9fa09d970b44b7c25d8ee2..6b5f9e0c3d0baa8543760c1cf4abed3b07f3d1e4 100644
--- a/packages/frontend/src/pages/settings/index.stories.ts
+++ b/packages/frontend/src/pages/settings/index.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: index,
 };
 export const Default = {
-	components: {
-		index,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				index,
+			},
+			props: Object.keys(argTypes),
+			template: '<index v-bind="$props" />',
+		};
 	},
-	template: '<index />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/settings/instance-mute.stories.ts b/packages/frontend/src/pages/settings/instance-mute.stories.ts
index a9195df21d6bba01340f8bf7d646e03786f195eb..fb333bb1d0803d42942d47c165a622dd7cacffb6 100644
--- a/packages/frontend/src/pages/settings/instance-mute.stories.ts
+++ b/packages/frontend/src/pages/settings/instance-mute.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: instance_mute,
 };
 export const Default = {
-	components: {
-		instance_mute,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				instance_mute,
+			},
+			props: Object.keys(argTypes),
+			template: '<instance_mute v-bind="$props" />',
+		};
 	},
-	template: '<instance_mute />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/settings/mute-block.stories.ts b/packages/frontend/src/pages/settings/mute-block.stories.ts
index 297ba1bdf8d8184201f87c0875e00223579d73a1..fd84608d5054b2952fed84e02d699050b372e19e 100644
--- a/packages/frontend/src/pages/settings/mute-block.stories.ts
+++ b/packages/frontend/src/pages/settings/mute-block.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: mute_block,
 };
 export const Default = {
-	components: {
-		mute_block,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				mute_block,
+			},
+			props: Object.keys(argTypes),
+			template: '<mute_block v-bind="$props" />',
+		};
 	},
-	template: '<mute_block />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/settings/navbar.stories.ts b/packages/frontend/src/pages/settings/navbar.stories.ts
index 0d5427af52b934619522f384d96c34b8cd4e713e..3fc2b9a867a813c411ecb6dd78b11aff8a3f75d7 100644
--- a/packages/frontend/src/pages/settings/navbar.stories.ts
+++ b/packages/frontend/src/pages/settings/navbar.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: navbar,
 };
 export const Default = {
-	components: {
-		navbar,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				navbar,
+			},
+			props: Object.keys(argTypes),
+			template: '<navbar v-bind="$props" />',
+		};
 	},
-	template: '<navbar />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/settings/notifications.stories.ts b/packages/frontend/src/pages/settings/notifications.stories.ts
index 2d896a5cd33ce8010699792286c7465d5702d9c2..0c1945685257f50b428e93636402c9fec4ad0219 100644
--- a/packages/frontend/src/pages/settings/notifications.stories.ts
+++ b/packages/frontend/src/pages/settings/notifications.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: notifications,
 };
 export const Default = {
-	components: {
-		notifications,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				notifications,
+			},
+			props: Object.keys(argTypes),
+			template: '<notifications v-bind="$props" />',
+		};
 	},
-	template: '<notifications />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/settings/other.stories.ts b/packages/frontend/src/pages/settings/other.stories.ts
index 4158413e9897f031dcbaff18b4276c5ab60c79e7..83e7cce2b4f74648e5d8e683678c872b2fe7e526 100644
--- a/packages/frontend/src/pages/settings/other.stories.ts
+++ b/packages/frontend/src/pages/settings/other.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: other,
 };
 export const Default = {
-	components: {
-		other,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				other,
+			},
+			props: Object.keys(argTypes),
+			template: '<other v-bind="$props" />',
+		};
 	},
-	template: '<other />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/settings/plugin.install.stories.ts b/packages/frontend/src/pages/settings/plugin.install.stories.ts
index aeee457f2bf66b4203d426cc8a634554a0ae86d6..bace922ca81f12c09ebaea67a53bdfeb14974d8e 100644
--- a/packages/frontend/src/pages/settings/plugin.install.stories.ts
+++ b/packages/frontend/src/pages/settings/plugin.install.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: plugin_install,
 };
 export const Default = {
-	components: {
-		plugin_install,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				plugin_install,
+			},
+			props: Object.keys(argTypes),
+			template: '<plugin_install v-bind="$props" />',
+		};
 	},
-	template: '<plugin_install />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/settings/plugin.stories.ts b/packages/frontend/src/pages/settings/plugin.stories.ts
index e5ab35cc06edbe013fba0d225ec656fb31143b33..88e14e32deba6d8f27dd4fb45960ba05bb65ef3a 100644
--- a/packages/frontend/src/pages/settings/plugin.stories.ts
+++ b/packages/frontend/src/pages/settings/plugin.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: plugin,
 };
 export const Default = {
-	components: {
-		plugin,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				plugin,
+			},
+			props: Object.keys(argTypes),
+			template: '<plugin v-bind="$props" />',
+		};
 	},
-	template: '<plugin />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/settings/preferences-backups.stories.ts b/packages/frontend/src/pages/settings/preferences-backups.stories.ts
index 766dbd140158f0c096a29e7eed67e57803e31fbb..812329857f03f13aa2da0430fbcb0678a6ce086b 100644
--- a/packages/frontend/src/pages/settings/preferences-backups.stories.ts
+++ b/packages/frontend/src/pages/settings/preferences-backups.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: preferences_backups,
 };
 export const Default = {
-	components: {
-		preferences_backups,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				preferences_backups,
+			},
+			props: Object.keys(argTypes),
+			template: '<preferences_backups v-bind="$props" />',
+		};
 	},
-	template: '<preferences_backups />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/settings/privacy.stories.ts b/packages/frontend/src/pages/settings/privacy.stories.ts
index d86269e6d855aa394bb86b62df43bc224bd047a1..e2b2ab905bdf416bbf817e8fa5bbc5e5e6a5c84c 100644
--- a/packages/frontend/src/pages/settings/privacy.stories.ts
+++ b/packages/frontend/src/pages/settings/privacy.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: privacy,
 };
 export const Default = {
-	components: {
-		privacy,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				privacy,
+			},
+			props: Object.keys(argTypes),
+			template: '<privacy v-bind="$props" />',
+		};
 	},
-	template: '<privacy />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/settings/profile.stories.ts b/packages/frontend/src/pages/settings/profile.stories.ts
index b33bd355f8bfd31fae7531f84fe8816363386449..302a1a37b9e0f3449fbb84000ff4fd0ff092a92f 100644
--- a/packages/frontend/src/pages/settings/profile.stories.ts
+++ b/packages/frontend/src/pages/settings/profile.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: profile,
 };
 export const Default = {
-	components: {
-		profile,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				profile,
+			},
+			props: Object.keys(argTypes),
+			template: '<profile v-bind="$props" />',
+		};
 	},
-	template: '<profile />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/settings/reaction.stories.ts b/packages/frontend/src/pages/settings/reaction.stories.ts
index 331b6fedd26e979c3438a4fc79444f49562fc9c5..7328d53bd7afe2415510b3e88226c793e7363b76 100644
--- a/packages/frontend/src/pages/settings/reaction.stories.ts
+++ b/packages/frontend/src/pages/settings/reaction.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: reaction,
 };
 export const Default = {
-	components: {
-		reaction,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				reaction,
+			},
+			props: Object.keys(argTypes),
+			template: '<reaction v-bind="$props" />',
+		};
 	},
-	template: '<reaction />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/settings/roles.stories.ts b/packages/frontend/src/pages/settings/roles.stories.ts
index 7b6da5bae05f908e8986d9b683c95ca7177dab12..0cbf932ce591648cb557edc83f8635b430dbf4e2 100644
--- a/packages/frontend/src/pages/settings/roles.stories.ts
+++ b/packages/frontend/src/pages/settings/roles.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: roles,
 };
 export const Default = {
-	components: {
-		roles,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				roles,
+			},
+			props: Object.keys(argTypes),
+			template: '<roles v-bind="$props" />',
+		};
 	},
-	template: '<roles />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/settings/security.stories.ts b/packages/frontend/src/pages/settings/security.stories.ts
index b8209f45d83cb6ca4277293d9e1cb609e6ab1db9..7997beeca4b9a5ab16b75a384a4c95ffabc99c87 100644
--- a/packages/frontend/src/pages/settings/security.stories.ts
+++ b/packages/frontend/src/pages/settings/security.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: security,
 };
 export const Default = {
-	components: {
-		security,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				security,
+			},
+			props: Object.keys(argTypes),
+			template: '<security v-bind="$props" />',
+		};
 	},
-	template: '<security />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/settings/sounds.sound.stories.ts b/packages/frontend/src/pages/settings/sounds.sound.stories.ts
index dd9f6e8a9d42d556b3f0b126cb5dfb3d76ab450e..bb1d5fc873e1e079f4cd8a672590fce0471c3e5c 100644
--- a/packages/frontend/src/pages/settings/sounds.sound.stories.ts
+++ b/packages/frontend/src/pages/settings/sounds.sound.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: sounds_sound,
 };
 export const Default = {
-	components: {
-		sounds_sound,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				sounds_sound,
+			},
+			props: Object.keys(argTypes),
+			template: '<sounds_sound v-bind="$props" />',
+		};
 	},
-	template: '<sounds_sound />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/settings/sounds.stories.ts b/packages/frontend/src/pages/settings/sounds.stories.ts
index ed8a8c139fe96a9f9c63b0020b7657b8b3f6bce6..121f81ccab759c4b7ae26a3ce48a4d811bed83f8 100644
--- a/packages/frontend/src/pages/settings/sounds.stories.ts
+++ b/packages/frontend/src/pages/settings/sounds.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: sounds,
 };
 export const Default = {
-	components: {
-		sounds,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				sounds,
+			},
+			props: Object.keys(argTypes),
+			template: '<sounds v-bind="$props" />',
+		};
 	},
-	template: '<sounds />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/settings/statusbar.statusbar.stories.ts b/packages/frontend/src/pages/settings/statusbar.statusbar.stories.ts
index 05dbbae799ef6511216b1ff70dcfaf4c5d339425..77e6f04e0837d2b3fd8aa31b833efeafc1ff8aa0 100644
--- a/packages/frontend/src/pages/settings/statusbar.statusbar.stories.ts
+++ b/packages/frontend/src/pages/settings/statusbar.statusbar.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: statusbar_statusbar,
 };
 export const Default = {
-	components: {
-		statusbar_statusbar,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				statusbar_statusbar,
+			},
+			props: Object.keys(argTypes),
+			template: '<statusbar_statusbar v-bind="$props" />',
+		};
 	},
-	template: '<statusbar_statusbar />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/settings/statusbar.stories.ts b/packages/frontend/src/pages/settings/statusbar.stories.ts
index 19be758d90a9d7843e23f282412afebf2644490d..75f6acc6fb146d2179aca28077ff8907eb668cb0 100644
--- a/packages/frontend/src/pages/settings/statusbar.stories.ts
+++ b/packages/frontend/src/pages/settings/statusbar.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: statusbar,
 };
 export const Default = {
-	components: {
-		statusbar,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				statusbar,
+			},
+			props: Object.keys(argTypes),
+			template: '<statusbar v-bind="$props" />',
+		};
 	},
-	template: '<statusbar />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/settings/theme.install.stories.ts b/packages/frontend/src/pages/settings/theme.install.stories.ts
index 55f8ffe3b4fa05d8b76eb511658d9c4a531bdf25..7aa772208ec356f717bf0d6af6e3516ff7567cd7 100644
--- a/packages/frontend/src/pages/settings/theme.install.stories.ts
+++ b/packages/frontend/src/pages/settings/theme.install.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: theme_install,
 };
 export const Default = {
-	components: {
-		theme_install,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				theme_install,
+			},
+			props: Object.keys(argTypes),
+			template: '<theme_install v-bind="$props" />',
+		};
 	},
-	template: '<theme_install />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/settings/theme.manage.stories.ts b/packages/frontend/src/pages/settings/theme.manage.stories.ts
index 4a4e4dc6e17a08ddf8aece469d6e2b2b817ab610..42fe97c937a612ac05d2977796b2c7e89841c46d 100644
--- a/packages/frontend/src/pages/settings/theme.manage.stories.ts
+++ b/packages/frontend/src/pages/settings/theme.manage.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: theme_manage,
 };
 export const Default = {
-	components: {
-		theme_manage,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				theme_manage,
+			},
+			props: Object.keys(argTypes),
+			template: '<theme_manage v-bind="$props" />',
+		};
 	},
-	template: '<theme_manage />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/settings/theme.stories.ts b/packages/frontend/src/pages/settings/theme.stories.ts
index 68093e90b320747cf3f842ead8bc8fa80c7a408b..93da0708366e60880bf68d8f7b4e51affe4173f2 100644
--- a/packages/frontend/src/pages/settings/theme.stories.ts
+++ b/packages/frontend/src/pages/settings/theme.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: theme,
 };
 export const Default = {
-	components: {
-		theme,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				theme,
+			},
+			props: Object.keys(argTypes),
+			template: '<theme v-bind="$props" />',
+		};
 	},
-	template: '<theme />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/settings/webhook.edit.stories.ts b/packages/frontend/src/pages/settings/webhook.edit.stories.ts
index 67d2a4fd884e8e6ccb66bd23bd8528849349fff7..33952bb9611ccabd5f8ad67c001bf80f8dd771bf 100644
--- a/packages/frontend/src/pages/settings/webhook.edit.stories.ts
+++ b/packages/frontend/src/pages/settings/webhook.edit.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: webhook_edit,
 };
 export const Default = {
-	components: {
-		webhook_edit,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				webhook_edit,
+			},
+			props: Object.keys(argTypes),
+			template: '<webhook_edit v-bind="$props" />',
+		};
 	},
-	template: '<webhook_edit />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/settings/webhook.new.stories.ts b/packages/frontend/src/pages/settings/webhook.new.stories.ts
index fbc9e52c60a292a690b5e14d17a27e574b5e35f8..4f94b9758ef41c924cbf5757bf3d3ece1eb25f15 100644
--- a/packages/frontend/src/pages/settings/webhook.new.stories.ts
+++ b/packages/frontend/src/pages/settings/webhook.new.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: webhook_new,
 };
 export const Default = {
-	components: {
-		webhook_new,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				webhook_new,
+			},
+			props: Object.keys(argTypes),
+			template: '<webhook_new v-bind="$props" />',
+		};
 	},
-	template: '<webhook_new />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/settings/webhook.stories.ts b/packages/frontend/src/pages/settings/webhook.stories.ts
index 838e9390a41617e40553d10ee1571518591fc50e..18e95e337b2d5d94a31914dcd53e3ed735f8efe3 100644
--- a/packages/frontend/src/pages/settings/webhook.stories.ts
+++ b/packages/frontend/src/pages/settings/webhook.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: webhook,
 };
 export const Default = {
-	components: {
-		webhook,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				webhook,
+			},
+			props: Object.keys(argTypes),
+			template: '<webhook v-bind="$props" />',
+		};
 	},
-	template: '<webhook />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/settings/word-mute.stories.ts b/packages/frontend/src/pages/settings/word-mute.stories.ts
index 1faff2b693a5e3fc26ef7d9b0ba5f8e54644e8d6..619143166b77b9c4054b8a98d220c79b89295736 100644
--- a/packages/frontend/src/pages/settings/word-mute.stories.ts
+++ b/packages/frontend/src/pages/settings/word-mute.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: word_mute,
 };
 export const Default = {
-	components: {
-		word_mute,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				word_mute,
+			},
+			props: Object.keys(argTypes),
+			template: '<word_mute v-bind="$props" />',
+		};
 	},
-	template: '<word_mute />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/share.stories.ts b/packages/frontend/src/pages/share.stories.ts
index ff2365051a0e68737be39df783ef743598792913..69a1127236e79cd625588e653155692ce0a06ba1 100644
--- a/packages/frontend/src/pages/share.stories.ts
+++ b/packages/frontend/src/pages/share.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: share,
 };
 export const Default = {
-	components: {
-		share,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				share,
+			},
+			props: Object.keys(argTypes),
+			template: '<share v-bind="$props" />',
+		};
 	},
-	template: '<share />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/signup-complete.stories.ts b/packages/frontend/src/pages/signup-complete.stories.ts
index 9349f62296443de799a4a25fe44a6fee35f7e3f4..c34c3722d25385e996fed1ed5f6ebec1c26ae2db 100644
--- a/packages/frontend/src/pages/signup-complete.stories.ts
+++ b/packages/frontend/src/pages/signup-complete.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: signup_complete,
 };
 export const Default = {
-	components: {
-		signup_complete,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				signup_complete,
+			},
+			props: Object.keys(argTypes),
+			template: '<signup_complete v-bind="$props" />',
+		};
 	},
-	template: '<signup_complete />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/tag.stories.ts b/packages/frontend/src/pages/tag.stories.ts
index 7742ca1b139c43a4a7cfcb0a8a7bd05504e8f17f..8e39a7161a298060d6d590aa4c46306022ecba20 100644
--- a/packages/frontend/src/pages/tag.stories.ts
+++ b/packages/frontend/src/pages/tag.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: tag,
 };
 export const Default = {
-	components: {
-		tag,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				tag,
+			},
+			props: Object.keys(argTypes),
+			template: '<tag v-bind="$props" />',
+		};
 	},
-	template: '<tag />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/theme-editor.stories.ts b/packages/frontend/src/pages/theme-editor.stories.ts
index 300a3313dd658d06a3afbd919f220f3be48ddc87..2ae21fef85d4f09f130f205b8b87fd1220686ae7 100644
--- a/packages/frontend/src/pages/theme-editor.stories.ts
+++ b/packages/frontend/src/pages/theme-editor.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: theme_editor,
 };
 export const Default = {
-	components: {
-		theme_editor,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				theme_editor,
+			},
+			props: Object.keys(argTypes),
+			template: '<theme_editor v-bind="$props" />',
+		};
 	},
-	template: '<theme_editor />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/timeline.stories.ts b/packages/frontend/src/pages/timeline.stories.ts
index 5de5a151bee9599245bcfb04f0c7a65e7a5cc4c7..9acd55e1e39c0c6a60c1f6e9610844898f9d0a87 100644
--- a/packages/frontend/src/pages/timeline.stories.ts
+++ b/packages/frontend/src/pages/timeline.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: timeline,
 };
 export const Default = {
-	components: {
-		timeline,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				timeline,
+			},
+			props: Object.keys(argTypes),
+			template: '<timeline v-bind="$props" />',
+		};
 	},
-	template: '<timeline />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/timeline.tutorial.stories.ts b/packages/frontend/src/pages/timeline.tutorial.stories.ts
index 591039580f133349841e3e486afe2aee60284d59..0066d0d3d50284d394406f53b9032f71cb4ee04e 100644
--- a/packages/frontend/src/pages/timeline.tutorial.stories.ts
+++ b/packages/frontend/src/pages/timeline.tutorial.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: timeline_tutorial,
 };
 export const Default = {
-	components: {
-		timeline_tutorial,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				timeline_tutorial,
+			},
+			props: Object.keys(argTypes),
+			template: '<timeline_tutorial v-bind="$props" />',
+		};
 	},
-	template: '<timeline_tutorial />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/user-info.stories.ts b/packages/frontend/src/pages/user-info.stories.ts
index 21053a22087879613c11a0e752ee8af8cab64df0..821a2e6bf8b919e1e4e81adda3396e4a833d1af7 100644
--- a/packages/frontend/src/pages/user-info.stories.ts
+++ b/packages/frontend/src/pages/user-info.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: user_info,
 };
 export const Default = {
-	components: {
-		user_info,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				user_info,
+			},
+			props: Object.keys(argTypes),
+			template: '<user_info v-bind="$props" />',
+		};
 	},
-	template: '<user_info />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/user-list-timeline.stories.ts b/packages/frontend/src/pages/user-list-timeline.stories.ts
index f951573f7729981e974fd9ab9208fd1aa4b1efaf..16cde7e2fc6251be43474c65372dbc8e7dcac642 100644
--- a/packages/frontend/src/pages/user-list-timeline.stories.ts
+++ b/packages/frontend/src/pages/user-list-timeline.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: user_list_timeline,
 };
 export const Default = {
-	components: {
-		user_list_timeline,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				user_list_timeline,
+			},
+			props: Object.keys(argTypes),
+			template: '<user_list_timeline v-bind="$props" />',
+		};
 	},
-	template: '<user_list_timeline />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/user-tag.stories.ts b/packages/frontend/src/pages/user-tag.stories.ts
index 6757c4821d42c13009920096ceed257e7da717f0..1637eec0d365e6eeda2f57e5c64b01a925f5c6ae 100644
--- a/packages/frontend/src/pages/user-tag.stories.ts
+++ b/packages/frontend/src/pages/user-tag.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: user_tag,
 };
 export const Default = {
-	components: {
-		user_tag,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				user_tag,
+			},
+			props: Object.keys(argTypes),
+			template: '<user_tag v-bind="$props" />',
+		};
 	},
-	template: '<user_tag />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/user/achievements.stories.ts b/packages/frontend/src/pages/user/achievements.stories.ts
index 808fc7daa4e5c3ddaaf5eaecebf4e3859487a3bf..ade9caa09147865dfc1196d4c19fc557ee148f15 100644
--- a/packages/frontend/src/pages/user/achievements.stories.ts
+++ b/packages/frontend/src/pages/user/achievements.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: achievements,
 };
 export const Default = {
-	components: {
-		achievements,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				achievements,
+			},
+			props: Object.keys(argTypes),
+			template: '<achievements v-bind="$props" />',
+		};
 	},
-	template: '<achievements />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/user/activity.following.stories.ts b/packages/frontend/src/pages/user/activity.following.stories.ts
index 31183e5fcf55ee9ee8e132c71e5b409dddc1197f..8c1a19d1ae25c788144e5634de859a6edc1cf529 100644
--- a/packages/frontend/src/pages/user/activity.following.stories.ts
+++ b/packages/frontend/src/pages/user/activity.following.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: activity_following,
 };
 export const Default = {
-	components: {
-		activity_following,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				activity_following,
+			},
+			props: Object.keys(argTypes),
+			template: '<activity_following v-bind="$props" />',
+		};
 	},
-	template: '<activity_following />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/user/activity.heatmap.stories.ts b/packages/frontend/src/pages/user/activity.heatmap.stories.ts
index 3421de0ecef28e3ba265df2cf44009cff39ac36b..44e7c8bc555275124c0f67e6746c818438757140 100644
--- a/packages/frontend/src/pages/user/activity.heatmap.stories.ts
+++ b/packages/frontend/src/pages/user/activity.heatmap.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: activity_heatmap,
 };
 export const Default = {
-	components: {
-		activity_heatmap,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				activity_heatmap,
+			},
+			props: Object.keys(argTypes),
+			template: '<activity_heatmap v-bind="$props" />',
+		};
 	},
-	template: '<activity_heatmap />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/user/activity.notes.stories.ts b/packages/frontend/src/pages/user/activity.notes.stories.ts
index abb31c270c7826669cb2d749626ca3c1ea0226ef..d4c45a3031a5a68f1f9ca2830ef0fb7b1e35c023 100644
--- a/packages/frontend/src/pages/user/activity.notes.stories.ts
+++ b/packages/frontend/src/pages/user/activity.notes.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: activity_notes,
 };
 export const Default = {
-	components: {
-		activity_notes,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				activity_notes,
+			},
+			props: Object.keys(argTypes),
+			template: '<activity_notes v-bind="$props" />',
+		};
 	},
-	template: '<activity_notes />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/user/activity.pv.stories.ts b/packages/frontend/src/pages/user/activity.pv.stories.ts
index 2fb5ac33eadf38df5f965d55430e8049f9cdf395..9ceb7168675d58cd2731ff4e59d9585384bc97f0 100644
--- a/packages/frontend/src/pages/user/activity.pv.stories.ts
+++ b/packages/frontend/src/pages/user/activity.pv.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: activity_pv,
 };
 export const Default = {
-	components: {
-		activity_pv,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				activity_pv,
+			},
+			props: Object.keys(argTypes),
+			template: '<activity_pv v-bind="$props" />',
+		};
 	},
-	template: '<activity_pv />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/user/activity.stories.ts b/packages/frontend/src/pages/user/activity.stories.ts
index 8984f08ed2a0c472a63f5233244b050159d52266..88e887b42308532adec0d8cb983cdc69217b3603 100644
--- a/packages/frontend/src/pages/user/activity.stories.ts
+++ b/packages/frontend/src/pages/user/activity.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: activity,
 };
 export const Default = {
-	components: {
-		activity,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				activity,
+			},
+			props: Object.keys(argTypes),
+			template: '<activity v-bind="$props" />',
+		};
 	},
-	template: '<activity />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/user/clips.stories.ts b/packages/frontend/src/pages/user/clips.stories.ts
index 62963950960cdeaa67ab3bb87aefc1dd6e7132f4..d4b2535e92eadaf1a858a28ef427da9bff224f74 100644
--- a/packages/frontend/src/pages/user/clips.stories.ts
+++ b/packages/frontend/src/pages/user/clips.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: clips,
 };
 export const Default = {
-	components: {
-		clips,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				clips,
+			},
+			props: Object.keys(argTypes),
+			template: '<clips v-bind="$props" />',
+		};
 	},
-	template: '<clips />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/user/follow-list.stories.ts b/packages/frontend/src/pages/user/follow-list.stories.ts
index 1f02dc218b9e4f119bcabdf9634775137e7dc952..171a1b435850399eda587586b066eb9e61aeea03 100644
--- a/packages/frontend/src/pages/user/follow-list.stories.ts
+++ b/packages/frontend/src/pages/user/follow-list.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: follow_list,
 };
 export const Default = {
-	components: {
-		follow_list,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				follow_list,
+			},
+			props: Object.keys(argTypes),
+			template: '<follow_list v-bind="$props" />',
+		};
 	},
-	template: '<follow_list />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/user/followers.stories.ts b/packages/frontend/src/pages/user/followers.stories.ts
index af816cf5363241e4fe8f80e0e427b66993453b1f..92385dc1e236112b8fe3952658a5f7826412c77f 100644
--- a/packages/frontend/src/pages/user/followers.stories.ts
+++ b/packages/frontend/src/pages/user/followers.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: followers,
 };
 export const Default = {
-	components: {
-		followers,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				followers,
+			},
+			props: Object.keys(argTypes),
+			template: '<followers v-bind="$props" />',
+		};
 	},
-	template: '<followers />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/user/following.stories.ts b/packages/frontend/src/pages/user/following.stories.ts
index 49eda2b16d169d359c8a8a1f17c5ad62a356f3b4..98479f85b0eacf6334e0bac68bc2baee99dfc822 100644
--- a/packages/frontend/src/pages/user/following.stories.ts
+++ b/packages/frontend/src/pages/user/following.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: following,
 };
 export const Default = {
-	components: {
-		following,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				following,
+			},
+			props: Object.keys(argTypes),
+			template: '<following v-bind="$props" />',
+		};
 	},
-	template: '<following />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/user/gallery.stories.ts b/packages/frontend/src/pages/user/gallery.stories.ts
index be6dc8fd105520f0ebe310e1a94f7a24290b1d17..ad38c5c7b08379d7dff86412bbe79ca8a1d6402f 100644
--- a/packages/frontend/src/pages/user/gallery.stories.ts
+++ b/packages/frontend/src/pages/user/gallery.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: gallery,
 };
 export const Default = {
-	components: {
-		gallery,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				gallery,
+			},
+			props: Object.keys(argTypes),
+			template: '<gallery v-bind="$props" />',
+		};
 	},
-	template: '<gallery />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/user/home.stories.ts b/packages/frontend/src/pages/user/home.stories.ts
index d829dd44753302d4e181881e6771253270319474..d300f35af7edee05dba54d4433819702a24619bf 100644
--- a/packages/frontend/src/pages/user/home.stories.ts
+++ b/packages/frontend/src/pages/user/home.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: home,
 };
 export const Default = {
-	components: {
-		home,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				home,
+			},
+			props: Object.keys(argTypes),
+			template: '<home v-bind="$props" />',
+		};
 	},
-	template: '<home />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/user/index.activity.stories.ts b/packages/frontend/src/pages/user/index.activity.stories.ts
index c5ccc22ee05d225036c81d332cb040b92072dcbf..9758be90cc519f7c8895b0acb227f7020a095863 100644
--- a/packages/frontend/src/pages/user/index.activity.stories.ts
+++ b/packages/frontend/src/pages/user/index.activity.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: index_activity,
 };
 export const Default = {
-	components: {
-		index_activity,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				index_activity,
+			},
+			props: Object.keys(argTypes),
+			template: '<index_activity v-bind="$props" />',
+		};
 	},
-	template: '<index_activity />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/user/index.photos.stories.ts b/packages/frontend/src/pages/user/index.photos.stories.ts
index b8a1aa971758b08f3837a198042fa96da2e9890d..cf75985e74b68cf67d3923d1dc799d280291b308 100644
--- a/packages/frontend/src/pages/user/index.photos.stories.ts
+++ b/packages/frontend/src/pages/user/index.photos.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: index_photos,
 };
 export const Default = {
-	components: {
-		index_photos,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				index_photos,
+			},
+			props: Object.keys(argTypes),
+			template: '<index_photos v-bind="$props" />',
+		};
 	},
-	template: '<index_photos />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/user/index.stories.ts b/packages/frontend/src/pages/user/index.stories.ts
index becab310e957a5d10500658c7f54d4b7e5b64d48..ee8176e3880e1e3683f0f21bb8c34c492a294efb 100644
--- a/packages/frontend/src/pages/user/index.stories.ts
+++ b/packages/frontend/src/pages/user/index.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: index,
 };
 export const Default = {
-	components: {
-		index,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				index,
+			},
+			props: Object.keys(argTypes),
+			template: '<index v-bind="$props" />',
+		};
 	},
-	template: '<index />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/user/index.timeline.stories.ts b/packages/frontend/src/pages/user/index.timeline.stories.ts
index 1bb327d7b84b75db4e2de0cb67bf5e51c932a240..09dd96f00a57166328b3d8525bb53b923be27943 100644
--- a/packages/frontend/src/pages/user/index.timeline.stories.ts
+++ b/packages/frontend/src/pages/user/index.timeline.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: index_timeline,
 };
 export const Default = {
-	components: {
-		index_timeline,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				index_timeline,
+			},
+			props: Object.keys(argTypes),
+			template: '<index_timeline v-bind="$props" />',
+		};
 	},
-	template: '<index_timeline />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/user/pages.stories.ts b/packages/frontend/src/pages/user/pages.stories.ts
index 8f94478f46267c6899c5ae0a383c01bcddb19ada..b0e19bd13bab661a66f0470779a612c839df1dce 100644
--- a/packages/frontend/src/pages/user/pages.stories.ts
+++ b/packages/frontend/src/pages/user/pages.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: pages,
 };
 export const Default = {
-	components: {
-		pages,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				pages,
+			},
+			props: Object.keys(argTypes),
+			template: '<pages v-bind="$props" />',
+		};
 	},
-	template: '<pages />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/user/reactions.stories.ts b/packages/frontend/src/pages/user/reactions.stories.ts
index 9c16da8886c491c6b10b39d049404eba7270ddfa..40288b8ba5f9dbd6a9a1de4344918127f391e73d 100644
--- a/packages/frontend/src/pages/user/reactions.stories.ts
+++ b/packages/frontend/src/pages/user/reactions.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: reactions,
 };
 export const Default = {
-	components: {
-		reactions,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				reactions,
+			},
+			props: Object.keys(argTypes),
+			template: '<reactions v-bind="$props" />',
+		};
 	},
-	template: '<reactions />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/welcome.entrance.a.stories.ts b/packages/frontend/src/pages/welcome.entrance.a.stories.ts
index 390c763cfcd72fa19b67bc997a62ef6b143df8fb..d9cfbc17880bcd2763e77c7c2bc73fd010337e2f 100644
--- a/packages/frontend/src/pages/welcome.entrance.a.stories.ts
+++ b/packages/frontend/src/pages/welcome.entrance.a.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: welcome_entrance_a,
 };
 export const Default = {
-	components: {
-		welcome_entrance_a,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				welcome_entrance_a,
+			},
+			props: Object.keys(argTypes),
+			template: '<welcome_entrance_a v-bind="$props" />',
+		};
 	},
-	template: '<welcome_entrance_a />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/welcome.entrance.b.stories.ts b/packages/frontend/src/pages/welcome.entrance.b.stories.ts
index 5307088309db7adc06b8d4907d88164e1b39bd7b..0850cfc14e44d5864029d533effc6964ec1ed92b 100644
--- a/packages/frontend/src/pages/welcome.entrance.b.stories.ts
+++ b/packages/frontend/src/pages/welcome.entrance.b.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: welcome_entrance_b,
 };
 export const Default = {
-	components: {
-		welcome_entrance_b,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				welcome_entrance_b,
+			},
+			props: Object.keys(argTypes),
+			template: '<welcome_entrance_b v-bind="$props" />',
+		};
 	},
-	template: '<welcome_entrance_b />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/welcome.entrance.c.stories.ts b/packages/frontend/src/pages/welcome.entrance.c.stories.ts
index 53a1a93d461149af0b86b8944c7e90778c9fd865..f125157a8612ebe57761422db9c1050d48dae273 100644
--- a/packages/frontend/src/pages/welcome.entrance.c.stories.ts
+++ b/packages/frontend/src/pages/welcome.entrance.c.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: welcome_entrance_c,
 };
 export const Default = {
-	components: {
-		welcome_entrance_c,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				welcome_entrance_c,
+			},
+			props: Object.keys(argTypes),
+			template: '<welcome_entrance_c v-bind="$props" />',
+		};
 	},
-	template: '<welcome_entrance_c />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/welcome.setup.stories.ts b/packages/frontend/src/pages/welcome.setup.stories.ts
index 1e755e809c1f23618525ae99470534567c43db54..5c5f7a1005cf10d39cf092c83e97e664cef35600 100644
--- a/packages/frontend/src/pages/welcome.setup.stories.ts
+++ b/packages/frontend/src/pages/welcome.setup.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: welcome_setup,
 };
 export const Default = {
-	components: {
-		welcome_setup,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				welcome_setup,
+			},
+			props: Object.keys(argTypes),
+			template: '<welcome_setup v-bind="$props" />',
+		};
 	},
-	template: '<welcome_setup />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/welcome.stories.ts b/packages/frontend/src/pages/welcome.stories.ts
index 30c0f1ee2ee6eea3a56fa8efac39636d1746935e..a1a95e43fbad036372c7e243aec2e1d2cdd8dd33 100644
--- a/packages/frontend/src/pages/welcome.stories.ts
+++ b/packages/frontend/src/pages/welcome.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: welcome,
 };
 export const Default = {
-	components: {
-		welcome,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				welcome,
+			},
+			props: Object.keys(argTypes),
+			template: '<welcome v-bind="$props" />',
+		};
 	},
-	template: '<welcome />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/pages/welcome.timeline.stories.ts b/packages/frontend/src/pages/welcome.timeline.stories.ts
index 7492893a0a6bc5c53dcefe06851fc92378c561b5..0dcaf112ff61ade7f657b4641cb2a9cc00ed3016 100644
--- a/packages/frontend/src/pages/welcome.timeline.stories.ts
+++ b/packages/frontend/src/pages/welcome.timeline.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: welcome_timeline,
 };
 export const Default = {
-	components: {
-		welcome_timeline,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				welcome_timeline,
+			},
+			props: Object.keys(argTypes),
+			template: '<welcome_timeline v-bind="$props" />',
+		};
 	},
-	template: '<welcome_timeline />',
 	parameters: {
 		layout: 'fullscreen',
 	},
diff --git a/packages/frontend/src/ui/_common_/common.stories.ts b/packages/frontend/src/ui/_common_/common.stories.ts
index ec37ad66502b1f79a33d8e3776547ed0a1c16c29..e64c41be77c1a7d84496f771e42c41ee8135ef58 100644
--- a/packages/frontend/src/ui/_common_/common.stories.ts
+++ b/packages/frontend/src/ui/_common_/common.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: common,
 };
 export const Default = {
-	components: {
-		common,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				common,
+			},
+			props: Object.keys(argTypes),
+			template: '<common v-bind="$props" />',
+		};
 	},
-	template: '<common />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/ui/_common_/navbar-for-mobile.stories.ts b/packages/frontend/src/ui/_common_/navbar-for-mobile.stories.ts
index e06a66db70093d722be0a990266d035fc5476d4a..36658a6c3f6aac65175263e1c331d098a2cbc6e6 100644
--- a/packages/frontend/src/ui/_common_/navbar-for-mobile.stories.ts
+++ b/packages/frontend/src/ui/_common_/navbar-for-mobile.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: navbar_for_mobile,
 };
 export const Default = {
-	components: {
-		navbar_for_mobile,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				navbar_for_mobile,
+			},
+			props: Object.keys(argTypes),
+			template: '<navbar_for_mobile v-bind="$props" />',
+		};
 	},
-	template: '<navbar_for_mobile />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/ui/_common_/navbar.stories.ts b/packages/frontend/src/ui/_common_/navbar.stories.ts
index a8570942d765d050663f7a4071af585c531f0c75..ceeb4f015838bc121c257d4692bcb2547ab52f62 100644
--- a/packages/frontend/src/ui/_common_/navbar.stories.ts
+++ b/packages/frontend/src/ui/_common_/navbar.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: navbar,
 };
 export const Default = {
-	components: {
-		navbar,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				navbar,
+			},
+			props: Object.keys(argTypes),
+			template: '<navbar v-bind="$props" />',
+		};
 	},
-	template: '<navbar />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/ui/_common_/notification.stories.ts b/packages/frontend/src/ui/_common_/notification.stories.ts
index 6463aaa0fb9ef6ae42d2b12a38fc54c8b3fc63e2..d0175f87fb9edf38f4cec76d1348a40169262cce 100644
--- a/packages/frontend/src/ui/_common_/notification.stories.ts
+++ b/packages/frontend/src/ui/_common_/notification.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: notification,
 };
 export const Default = {
-	components: {
-		notification,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				notification,
+			},
+			props: Object.keys(argTypes),
+			template: '<notification v-bind="$props" />',
+		};
 	},
-	template: '<notification />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/ui/_common_/statusbar-federation.stories.ts b/packages/frontend/src/ui/_common_/statusbar-federation.stories.ts
index 4930084fe1d9ab334d3df85ccfc54a979b3a329b..68ace583360e2a3b25917fc1acb97fdcbf96fbcc 100644
--- a/packages/frontend/src/ui/_common_/statusbar-federation.stories.ts
+++ b/packages/frontend/src/ui/_common_/statusbar-federation.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: statusbar_federation,
 };
 export const Default = {
-	components: {
-		statusbar_federation,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				statusbar_federation,
+			},
+			props: Object.keys(argTypes),
+			template: '<statusbar_federation v-bind="$props" />',
+		};
 	},
-	template: '<statusbar_federation />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/ui/_common_/statusbar-rss.stories.ts b/packages/frontend/src/ui/_common_/statusbar-rss.stories.ts
index 0b3d8b8d1ad0f3ed5fc4a2189189a509395e384d..86d16757f63d353491b87cec6ec97bc634610f11 100644
--- a/packages/frontend/src/ui/_common_/statusbar-rss.stories.ts
+++ b/packages/frontend/src/ui/_common_/statusbar-rss.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: statusbar_rss,
 };
 export const Default = {
-	components: {
-		statusbar_rss,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				statusbar_rss,
+			},
+			props: Object.keys(argTypes),
+			template: '<statusbar_rss v-bind="$props" />',
+		};
 	},
-	template: '<statusbar_rss />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/ui/_common_/statusbar-user-list.stories.ts b/packages/frontend/src/ui/_common_/statusbar-user-list.stories.ts
index 1a803671f36efd2313fb33392cb877d688ae8c62..e11114389057352ca8c44a3f3873e9e85087432f 100644
--- a/packages/frontend/src/ui/_common_/statusbar-user-list.stories.ts
+++ b/packages/frontend/src/ui/_common_/statusbar-user-list.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: statusbar_user_list,
 };
 export const Default = {
-	components: {
-		statusbar_user_list,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				statusbar_user_list,
+			},
+			props: Object.keys(argTypes),
+			template: '<statusbar_user_list v-bind="$props" />',
+		};
 	},
-	template: '<statusbar_user_list />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/ui/_common_/statusbars.stories.ts b/packages/frontend/src/ui/_common_/statusbars.stories.ts
index 05b955c54611f294ac8cfea89ecad966e6f5e303..57cbd826f8858f18d3a1c8dfaa668f636d9119d4 100644
--- a/packages/frontend/src/ui/_common_/statusbars.stories.ts
+++ b/packages/frontend/src/ui/_common_/statusbars.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: statusbars,
 };
 export const Default = {
-	components: {
-		statusbars,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				statusbars,
+			},
+			props: Object.keys(argTypes),
+			template: '<statusbars v-bind="$props" />',
+		};
 	},
-	template: '<statusbars />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/ui/_common_/stream-indicator.stories.ts b/packages/frontend/src/ui/_common_/stream-indicator.stories.ts
index f114dc0ffc702885ffcb7f2923ccff0160386b14..39cde128b9a498ccbf329d092d064cdef20a8912 100644
--- a/packages/frontend/src/ui/_common_/stream-indicator.stories.ts
+++ b/packages/frontend/src/ui/_common_/stream-indicator.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: stream_indicator,
 };
 export const Default = {
-	components: {
-		stream_indicator,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				stream_indicator,
+			},
+			props: Object.keys(argTypes),
+			template: '<stream_indicator v-bind="$props" />',
+		};
 	},
-	template: '<stream_indicator />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/ui/_common_/upload.stories.ts b/packages/frontend/src/ui/_common_/upload.stories.ts
index 4669ca5d1bef7d4aeda987a6b18034c4795531ee..e6d85f539201ade156dcf3e2e9ea1bec6c512a24 100644
--- a/packages/frontend/src/ui/_common_/upload.stories.ts
+++ b/packages/frontend/src/ui/_common_/upload.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: upload,
 };
 export const Default = {
-	components: {
-		upload,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				upload,
+			},
+			props: Object.keys(argTypes),
+			template: '<upload v-bind="$props" />',
+		};
 	},
-	template: '<upload />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/ui/classic.header.stories.ts b/packages/frontend/src/ui/classic.header.stories.ts
index 9082630c21a976c5ae0ef1ac4f28d5059b22d5ba..cc847e7126cf1eec9f03151f9f2063880045cb26 100644
--- a/packages/frontend/src/ui/classic.header.stories.ts
+++ b/packages/frontend/src/ui/classic.header.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: classic_header,
 };
 export const Default = {
-	components: {
-		classic_header,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				classic_header,
+			},
+			props: Object.keys(argTypes),
+			template: '<classic_header v-bind="$props" />',
+		};
 	},
-	template: '<classic_header />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/ui/classic.sidebar.stories.ts b/packages/frontend/src/ui/classic.sidebar.stories.ts
index 5e3f7eb98673c452eb58578ce72a3f618a11510b..741da3d146dacd627d15c5071ee0b592ab7945e7 100644
--- a/packages/frontend/src/ui/classic.sidebar.stories.ts
+++ b/packages/frontend/src/ui/classic.sidebar.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: classic_sidebar,
 };
 export const Default = {
-	components: {
-		classic_sidebar,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				classic_sidebar,
+			},
+			props: Object.keys(argTypes),
+			template: '<classic_sidebar v-bind="$props" />',
+		};
 	},
-	template: '<classic_sidebar />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/ui/classic.stories.ts b/packages/frontend/src/ui/classic.stories.ts
index 64601510aa55da581d35f8cbcba514f814c5c172..cd3225173588873467d296d5a7342f7effe0a3c4 100644
--- a/packages/frontend/src/ui/classic.stories.ts
+++ b/packages/frontend/src/ui/classic.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: classic,
 };
 export const Default = {
-	components: {
-		classic,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				classic,
+			},
+			props: Object.keys(argTypes),
+			template: '<classic v-bind="$props" />',
+		};
 	},
-	template: '<classic />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/ui/deck.stories.ts b/packages/frontend/src/ui/deck.stories.ts
index fbd352ec15f855dfebd4a71aef8d630a5f2a5bbd..34bd26ace995944e4a99b263564db2ec85703ca9 100644
--- a/packages/frontend/src/ui/deck.stories.ts
+++ b/packages/frontend/src/ui/deck.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: deck,
 };
 export const Default = {
-	components: {
-		deck,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				deck,
+			},
+			props: Object.keys(argTypes),
+			template: '<deck v-bind="$props" />',
+		};
 	},
-	template: '<deck />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/ui/deck/antenna-column.stories.ts b/packages/frontend/src/ui/deck/antenna-column.stories.ts
index 4965e4a3d81dd4dbd609a2caa2507051e1200414..37f6bace9c532219a0061d3524505c232a4d4822 100644
--- a/packages/frontend/src/ui/deck/antenna-column.stories.ts
+++ b/packages/frontend/src/ui/deck/antenna-column.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: antenna_column,
 };
 export const Default = {
-	components: {
-		antenna_column,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				antenna_column,
+			},
+			props: Object.keys(argTypes),
+			template: '<antenna_column v-bind="$props" />',
+		};
 	},
-	template: '<antenna_column />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/ui/deck/channel-column.stories.ts b/packages/frontend/src/ui/deck/channel-column.stories.ts
index 0290eb96de117cf11dadf76d29a3089921909a7f..3a4a232d052f79045c1303d15aecd188e0670bec 100644
--- a/packages/frontend/src/ui/deck/channel-column.stories.ts
+++ b/packages/frontend/src/ui/deck/channel-column.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: channel_column,
 };
 export const Default = {
-	components: {
-		channel_column,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				channel_column,
+			},
+			props: Object.keys(argTypes),
+			template: '<channel_column v-bind="$props" />',
+		};
 	},
-	template: '<channel_column />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/ui/deck/column-core.stories.ts b/packages/frontend/src/ui/deck/column-core.stories.ts
index 7d1262c8ac9d13450d55f2320ef65a8fe9de4c2d..14174bf7236d04e8789926b97410a7fa4cf6a85b 100644
--- a/packages/frontend/src/ui/deck/column-core.stories.ts
+++ b/packages/frontend/src/ui/deck/column-core.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: column_core,
 };
 export const Default = {
-	components: {
-		column_core,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				column_core,
+			},
+			props: Object.keys(argTypes),
+			template: '<column_core v-bind="$props" />',
+		};
 	},
-	template: '<column_core />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/ui/deck/column.stories.ts b/packages/frontend/src/ui/deck/column.stories.ts
index f53f74b793ee413fc5946db7e6fa0179c1f04376..7c3e7b69e04e177f84022b6456110c48734cf9f0 100644
--- a/packages/frontend/src/ui/deck/column.stories.ts
+++ b/packages/frontend/src/ui/deck/column.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: column,
 };
 export const Default = {
-	components: {
-		column,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				column,
+			},
+			props: Object.keys(argTypes),
+			template: '<column v-bind="$props" />',
+		};
 	},
-	template: '<column />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/ui/deck/direct-column.stories.ts b/packages/frontend/src/ui/deck/direct-column.stories.ts
index 34a721c955c7ae4b5841178dc496510dae2e93b9..a7ce6757edafeac60868d30da8389d30598f5752 100644
--- a/packages/frontend/src/ui/deck/direct-column.stories.ts
+++ b/packages/frontend/src/ui/deck/direct-column.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: direct_column,
 };
 export const Default = {
-	components: {
-		direct_column,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				direct_column,
+			},
+			props: Object.keys(argTypes),
+			template: '<direct_column v-bind="$props" />',
+		};
 	},
-	template: '<direct_column />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/ui/deck/list-column.stories.ts b/packages/frontend/src/ui/deck/list-column.stories.ts
index 2eac36177ded1ab93a4bc7f09ee89de7eef91667..7d2745f4a992c5a96c8b4c30c1164b4c78bc401f 100644
--- a/packages/frontend/src/ui/deck/list-column.stories.ts
+++ b/packages/frontend/src/ui/deck/list-column.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: list_column,
 };
 export const Default = {
-	components: {
-		list_column,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				list_column,
+			},
+			props: Object.keys(argTypes),
+			template: '<list_column v-bind="$props" />',
+		};
 	},
-	template: '<list_column />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/ui/deck/main-column.stories.ts b/packages/frontend/src/ui/deck/main-column.stories.ts
index 8d4c269d899667e947558ff850a73081fb93e0d1..60021a5d7820aef53d927e98c03aeae722ca828b 100644
--- a/packages/frontend/src/ui/deck/main-column.stories.ts
+++ b/packages/frontend/src/ui/deck/main-column.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: main_column,
 };
 export const Default = {
-	components: {
-		main_column,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				main_column,
+			},
+			props: Object.keys(argTypes),
+			template: '<main_column v-bind="$props" />',
+		};
 	},
-	template: '<main_column />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/ui/deck/mentions-column.stories.ts b/packages/frontend/src/ui/deck/mentions-column.stories.ts
index 88b20b860477b3d113c8183e98b2a7813ad3b8db..16e2b2e1d7c6945f44d9fbec6d3014ff9fd57a65 100644
--- a/packages/frontend/src/ui/deck/mentions-column.stories.ts
+++ b/packages/frontend/src/ui/deck/mentions-column.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: mentions_column,
 };
 export const Default = {
-	components: {
-		mentions_column,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				mentions_column,
+			},
+			props: Object.keys(argTypes),
+			template: '<mentions_column v-bind="$props" />',
+		};
 	},
-	template: '<mentions_column />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/ui/deck/notifications-column.stories.ts b/packages/frontend/src/ui/deck/notifications-column.stories.ts
index 5467be1283eaadadf606174d64460ffc062858b5..06d18ef9b371f539aa53d3d91ef079f23e1b6a60 100644
--- a/packages/frontend/src/ui/deck/notifications-column.stories.ts
+++ b/packages/frontend/src/ui/deck/notifications-column.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: notifications_column,
 };
 export const Default = {
-	components: {
-		notifications_column,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				notifications_column,
+			},
+			props: Object.keys(argTypes),
+			template: '<notifications_column v-bind="$props" />',
+		};
 	},
-	template: '<notifications_column />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/ui/deck/tl-column.stories.ts b/packages/frontend/src/ui/deck/tl-column.stories.ts
index 13093a2acd79de5e6fbe2686fce1fb20e6f0ba03..741464063d9dd26489778c940b5f22dbd726c1d9 100644
--- a/packages/frontend/src/ui/deck/tl-column.stories.ts
+++ b/packages/frontend/src/ui/deck/tl-column.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: tl_column,
 };
 export const Default = {
-	components: {
-		tl_column,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				tl_column,
+			},
+			props: Object.keys(argTypes),
+			template: '<tl_column v-bind="$props" />',
+		};
 	},
-	template: '<tl_column />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/ui/deck/widgets-column.stories.ts b/packages/frontend/src/ui/deck/widgets-column.stories.ts
index c0dfb372fb32d4a1e8abf4e5ac69f9d4e27a457b..27a392cf6e5d947536a0ae64eca1cdcf9c89c87c 100644
--- a/packages/frontend/src/ui/deck/widgets-column.stories.ts
+++ b/packages/frontend/src/ui/deck/widgets-column.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: widgets_column,
 };
 export const Default = {
-	components: {
-		widgets_column,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				widgets_column,
+			},
+			props: Object.keys(argTypes),
+			template: '<widgets_column v-bind="$props" />',
+		};
 	},
-	template: '<widgets_column />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/ui/universal.stories.ts b/packages/frontend/src/ui/universal.stories.ts
index c46a4eeff3633ad8b8b399534eae08c887bb23b9..d049fb3ae9cb2b77080ca73d5df4c3ba7a6d6b38 100644
--- a/packages/frontend/src/ui/universal.stories.ts
+++ b/packages/frontend/src/ui/universal.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: universal,
 };
 export const Default = {
-	components: {
-		universal,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				universal,
+			},
+			props: Object.keys(argTypes),
+			template: '<universal v-bind="$props" />',
+		};
 	},
-	template: '<universal />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/ui/universal.widgets.stories.ts b/packages/frontend/src/ui/universal.widgets.stories.ts
index 590f6b1ca301bc42b12fdeb2c2d35a882c1533f9..8c85bf27e002f61aa279712c8bea5d136ddf3424 100644
--- a/packages/frontend/src/ui/universal.widgets.stories.ts
+++ b/packages/frontend/src/ui/universal.widgets.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: universal_widgets,
 };
 export const Default = {
-	components: {
-		universal_widgets,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				universal_widgets,
+			},
+			props: Object.keys(argTypes),
+			template: '<universal_widgets v-bind="$props" />',
+		};
 	},
-	template: '<universal_widgets />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/ui/visitor.stories.ts b/packages/frontend/src/ui/visitor.stories.ts
index 81b1f51904ff26f2a4f90ef81e992133dfd2023b..5a725cb4b8db2b2482188e2f1e381e093451e9fb 100644
--- a/packages/frontend/src/ui/visitor.stories.ts
+++ b/packages/frontend/src/ui/visitor.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: visitor,
 };
 export const Default = {
-	components: {
-		visitor,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				visitor,
+			},
+			props: Object.keys(argTypes),
+			template: '<visitor v-bind="$props" />',
+		};
 	},
-	template: '<visitor />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/ui/visitor/a.stories.ts b/packages/frontend/src/ui/visitor/a.stories.ts
index e10d21c203bd0526c8735f4acce9ac6ebcc0173e..e430cd9743d70d34b286e9db38a522d6e8009b5e 100644
--- a/packages/frontend/src/ui/visitor/a.stories.ts
+++ b/packages/frontend/src/ui/visitor/a.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: a,
 };
 export const Default = {
-	components: {
-		a,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				a,
+			},
+			props: Object.keys(argTypes),
+			template: '<a v-bind="$props" />',
+		};
 	},
-	template: '<a />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/ui/visitor/b.stories.ts b/packages/frontend/src/ui/visitor/b.stories.ts
index 586927134ab4163df30f80f56527bbc1c32cefc1..f329bae1a4ab586dc5c2eceb3a42c218141a7f2e 100644
--- a/packages/frontend/src/ui/visitor/b.stories.ts
+++ b/packages/frontend/src/ui/visitor/b.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: b,
 };
 export const Default = {
-	components: {
-		b,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				b,
+			},
+			props: Object.keys(argTypes),
+			template: '<b v-bind="$props" />',
+		};
 	},
-	template: '<b />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/ui/visitor/header.stories.ts b/packages/frontend/src/ui/visitor/header.stories.ts
index 403f459789b630976aca19474641061de314cff1..2ecd08b220785cd1c98e7461a3344463927dd5de 100644
--- a/packages/frontend/src/ui/visitor/header.stories.ts
+++ b/packages/frontend/src/ui/visitor/header.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: header,
 };
 export const Default = {
-	components: {
-		header,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				header,
+			},
+			props: Object.keys(argTypes),
+			template: '<header v-bind="$props" />',
+		};
 	},
-	template: '<header />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/ui/visitor/kanban.stories.ts b/packages/frontend/src/ui/visitor/kanban.stories.ts
index 57141ea077ed0a7fb0056f828273a06dff9867d0..4468ebc8a5246e3dab55cb5e7a3b31075a734b38 100644
--- a/packages/frontend/src/ui/visitor/kanban.stories.ts
+++ b/packages/frontend/src/ui/visitor/kanban.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: kanban,
 };
 export const Default = {
-	components: {
-		kanban,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				kanban,
+			},
+			props: Object.keys(argTypes),
+			template: '<kanban v-bind="$props" />',
+		};
 	},
-	template: '<kanban />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/ui/zen.stories.ts b/packages/frontend/src/ui/zen.stories.ts
index 08c0d42c009a4aa8267a488a1c71f342e9a9a591..ff8c8bca9a216d35e1516b520d404417f2b3545c 100644
--- a/packages/frontend/src/ui/zen.stories.ts
+++ b/packages/frontend/src/ui/zen.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: zen,
 };
 export const Default = {
-	components: {
-		zen,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				zen,
+			},
+			props: Object.keys(argTypes),
+			template: '<zen v-bind="$props" />',
+		};
 	},
-	template: '<zen />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/widgets/WidgetActivity.calendar.stories.ts b/packages/frontend/src/widgets/WidgetActivity.calendar.stories.ts
index 27feb2741c8ecd97ec464af50a0b6c842033f7e0..5f2d78036cc712410f1db32349938c161e8aed06 100644
--- a/packages/frontend/src/widgets/WidgetActivity.calendar.stories.ts
+++ b/packages/frontend/src/widgets/WidgetActivity.calendar.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: WidgetActivity_calendar,
 };
 export const Default = {
-	components: {
-		WidgetActivity_calendar,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				WidgetActivity_calendar,
+			},
+			props: Object.keys(argTypes),
+			template: '<WidgetActivity_calendar v-bind="$props" />',
+		};
 	},
-	template: '<WidgetActivity_calendar />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/widgets/WidgetActivity.chart.stories.ts b/packages/frontend/src/widgets/WidgetActivity.chart.stories.ts
index 0c009d6fdf00d8a5cceed67f231078c9905170c2..3cecf4a68e52638b97f1d95065d12625aa5d557b 100644
--- a/packages/frontend/src/widgets/WidgetActivity.chart.stories.ts
+++ b/packages/frontend/src/widgets/WidgetActivity.chart.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: WidgetActivity_chart,
 };
 export const Default = {
-	components: {
-		WidgetActivity_chart,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				WidgetActivity_chart,
+			},
+			props: Object.keys(argTypes),
+			template: '<WidgetActivity_chart v-bind="$props" />',
+		};
 	},
-	template: '<WidgetActivity_chart />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/widgets/WidgetActivity.stories.ts b/packages/frontend/src/widgets/WidgetActivity.stories.ts
index ea9270960c6bb28d5f4f92548fd00c2022b24f05..01658db95de7ef818c9c74e357aeeb8b08aebe81 100644
--- a/packages/frontend/src/widgets/WidgetActivity.stories.ts
+++ b/packages/frontend/src/widgets/WidgetActivity.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: WidgetActivity,
 };
 export const Default = {
-	components: {
-		WidgetActivity,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				WidgetActivity,
+			},
+			props: Object.keys(argTypes),
+			template: '<WidgetActivity v-bind="$props" />',
+		};
 	},
-	template: '<WidgetActivity />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/widgets/WidgetAichan.stories.ts b/packages/frontend/src/widgets/WidgetAichan.stories.ts
index 0ad9b1d727f62130f0d008c8cbcbc40256512338..b997f368a7f3074a92591a91afef5e1058f2a0cb 100644
--- a/packages/frontend/src/widgets/WidgetAichan.stories.ts
+++ b/packages/frontend/src/widgets/WidgetAichan.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: WidgetAichan,
 };
 export const Default = {
-	components: {
-		WidgetAichan,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				WidgetAichan,
+			},
+			props: Object.keys(argTypes),
+			template: '<WidgetAichan v-bind="$props" />',
+		};
 	},
-	template: '<WidgetAichan />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/widgets/WidgetAiscript.stories.ts b/packages/frontend/src/widgets/WidgetAiscript.stories.ts
index 651e14f9fca34731123968a198193e07ba934ae0..f64cf779954f64ef164f45e38262e24d27a7a6fb 100644
--- a/packages/frontend/src/widgets/WidgetAiscript.stories.ts
+++ b/packages/frontend/src/widgets/WidgetAiscript.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: WidgetAiscript,
 };
 export const Default = {
-	components: {
-		WidgetAiscript,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				WidgetAiscript,
+			},
+			props: Object.keys(argTypes),
+			template: '<WidgetAiscript v-bind="$props" />',
+		};
 	},
-	template: '<WidgetAiscript />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/widgets/WidgetAiscriptApp.stories.ts b/packages/frontend/src/widgets/WidgetAiscriptApp.stories.ts
index 0043d6fffe92805b22cae2ecbf0b330d565e6111..892110bc25265ee8af8044ec24b0e70ed993bc02 100644
--- a/packages/frontend/src/widgets/WidgetAiscriptApp.stories.ts
+++ b/packages/frontend/src/widgets/WidgetAiscriptApp.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: WidgetAiscriptApp,
 };
 export const Default = {
-	components: {
-		WidgetAiscriptApp,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				WidgetAiscriptApp,
+			},
+			props: Object.keys(argTypes),
+			template: '<WidgetAiscriptApp v-bind="$props" />',
+		};
 	},
-	template: '<WidgetAiscriptApp />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/widgets/WidgetButton.stories.ts b/packages/frontend/src/widgets/WidgetButton.stories.ts
index c5616510669eba9c4ce21bbcd23132b75fe0e4f1..3a07679d770a593198b0ea3c46653f81b5b13ae7 100644
--- a/packages/frontend/src/widgets/WidgetButton.stories.ts
+++ b/packages/frontend/src/widgets/WidgetButton.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: WidgetButton,
 };
 export const Default = {
-	components: {
-		WidgetButton,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				WidgetButton,
+			},
+			props: Object.keys(argTypes),
+			template: '<WidgetButton v-bind="$props" />',
+		};
 	},
-	template: '<WidgetButton />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/widgets/WidgetCalendar.stories.ts b/packages/frontend/src/widgets/WidgetCalendar.stories.ts
index a626ff63b9dd44d47992dbb10d0435ed89b5b5ef..ccb7c184b4d653a073c710a58a519b70c27b0531 100644
--- a/packages/frontend/src/widgets/WidgetCalendar.stories.ts
+++ b/packages/frontend/src/widgets/WidgetCalendar.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: WidgetCalendar,
 };
 export const Default = {
-	components: {
-		WidgetCalendar,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				WidgetCalendar,
+			},
+			props: Object.keys(argTypes),
+			template: '<WidgetCalendar v-bind="$props" />',
+		};
 	},
-	template: '<WidgetCalendar />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/widgets/WidgetClicker.stories.ts b/packages/frontend/src/widgets/WidgetClicker.stories.ts
index 37bffbaf26dce8f567afe87290e320976387b759..ce6d40064bc30e29d394b1bfcdb854d0d6796d14 100644
--- a/packages/frontend/src/widgets/WidgetClicker.stories.ts
+++ b/packages/frontend/src/widgets/WidgetClicker.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: WidgetClicker,
 };
 export const Default = {
-	components: {
-		WidgetClicker,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				WidgetClicker,
+			},
+			props: Object.keys(argTypes),
+			template: '<WidgetClicker v-bind="$props" />',
+		};
 	},
-	template: '<WidgetClicker />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/widgets/WidgetClock.stories.ts b/packages/frontend/src/widgets/WidgetClock.stories.ts
index 2ae8925a3e6416dadb99d488802bba9782c407b5..0eb10f1f0718447d715d2e04cc4da122f4f38b5f 100644
--- a/packages/frontend/src/widgets/WidgetClock.stories.ts
+++ b/packages/frontend/src/widgets/WidgetClock.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: WidgetClock,
 };
 export const Default = {
-	components: {
-		WidgetClock,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				WidgetClock,
+			},
+			props: Object.keys(argTypes),
+			template: '<WidgetClock v-bind="$props" />',
+		};
 	},
-	template: '<WidgetClock />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/widgets/WidgetDigitalClock.stories.ts b/packages/frontend/src/widgets/WidgetDigitalClock.stories.ts
index 0b812ee24b4a7779e78868ae8174905c2f2cad5e..e37c4108dcf67ac95fa809f298e16f22247ea50a 100644
--- a/packages/frontend/src/widgets/WidgetDigitalClock.stories.ts
+++ b/packages/frontend/src/widgets/WidgetDigitalClock.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: WidgetDigitalClock,
 };
 export const Default = {
-	components: {
-		WidgetDigitalClock,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				WidgetDigitalClock,
+			},
+			props: Object.keys(argTypes),
+			template: '<WidgetDigitalClock v-bind="$props" />',
+		};
 	},
-	template: '<WidgetDigitalClock />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/widgets/WidgetFederation.stories.ts b/packages/frontend/src/widgets/WidgetFederation.stories.ts
index 9f88768c49727b518ff06c29962df8356c34c985..549f71c6fd47d6c87c5d2ac79a98139cd176c453 100644
--- a/packages/frontend/src/widgets/WidgetFederation.stories.ts
+++ b/packages/frontend/src/widgets/WidgetFederation.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: WidgetFederation,
 };
 export const Default = {
-	components: {
-		WidgetFederation,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				WidgetFederation,
+			},
+			props: Object.keys(argTypes),
+			template: '<WidgetFederation v-bind="$props" />',
+		};
 	},
-	template: '<WidgetFederation />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/widgets/WidgetInstanceCloud.stories.ts b/packages/frontend/src/widgets/WidgetInstanceCloud.stories.ts
index 188ff803944add84f69434958739a49106cd9ebf..8458d842f5217846eb8ea37239a1e02f57daecbe 100644
--- a/packages/frontend/src/widgets/WidgetInstanceCloud.stories.ts
+++ b/packages/frontend/src/widgets/WidgetInstanceCloud.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: WidgetInstanceCloud,
 };
 export const Default = {
-	components: {
-		WidgetInstanceCloud,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				WidgetInstanceCloud,
+			},
+			props: Object.keys(argTypes),
+			template: '<WidgetInstanceCloud v-bind="$props" />',
+		};
 	},
-	template: '<WidgetInstanceCloud />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/widgets/WidgetInstanceInfo.stories.ts b/packages/frontend/src/widgets/WidgetInstanceInfo.stories.ts
index 555d77c6b7e855689cc29d8e2910fc8366ffc4e9..6a6505a799132ae54568d2e5a5989425ff7a37de 100644
--- a/packages/frontend/src/widgets/WidgetInstanceInfo.stories.ts
+++ b/packages/frontend/src/widgets/WidgetInstanceInfo.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: WidgetInstanceInfo,
 };
 export const Default = {
-	components: {
-		WidgetInstanceInfo,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				WidgetInstanceInfo,
+			},
+			props: Object.keys(argTypes),
+			template: '<WidgetInstanceInfo v-bind="$props" />',
+		};
 	},
-	template: '<WidgetInstanceInfo />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/widgets/WidgetJobQueue.stories.ts b/packages/frontend/src/widgets/WidgetJobQueue.stories.ts
index 54a70239425be177b585652f9d3c78b468aba760..de7a7431c51633f1a55310f78d73faa2bc90a5d9 100644
--- a/packages/frontend/src/widgets/WidgetJobQueue.stories.ts
+++ b/packages/frontend/src/widgets/WidgetJobQueue.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: WidgetJobQueue,
 };
 export const Default = {
-	components: {
-		WidgetJobQueue,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				WidgetJobQueue,
+			},
+			props: Object.keys(argTypes),
+			template: '<WidgetJobQueue v-bind="$props" />',
+		};
 	},
-	template: '<WidgetJobQueue />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/widgets/WidgetMemo.stories.ts b/packages/frontend/src/widgets/WidgetMemo.stories.ts
index cf1a1d26930b9c919613c24e4c57a43ca82176d8..202529c8a5a9c8600dc338a5aab4055d5abc17db 100644
--- a/packages/frontend/src/widgets/WidgetMemo.stories.ts
+++ b/packages/frontend/src/widgets/WidgetMemo.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: WidgetMemo,
 };
 export const Default = {
-	components: {
-		WidgetMemo,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				WidgetMemo,
+			},
+			props: Object.keys(argTypes),
+			template: '<WidgetMemo v-bind="$props" />',
+		};
 	},
-	template: '<WidgetMemo />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/widgets/WidgetNotifications.stories.ts b/packages/frontend/src/widgets/WidgetNotifications.stories.ts
index e21c7f77c2d0611551469e42e30afee4807149aa..bf1f7aecae4a9feec0c32b961ae2b8b60d084dd7 100644
--- a/packages/frontend/src/widgets/WidgetNotifications.stories.ts
+++ b/packages/frontend/src/widgets/WidgetNotifications.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: WidgetNotifications,
 };
 export const Default = {
-	components: {
-		WidgetNotifications,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				WidgetNotifications,
+			},
+			props: Object.keys(argTypes),
+			template: '<WidgetNotifications v-bind="$props" />',
+		};
 	},
-	template: '<WidgetNotifications />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/widgets/WidgetOnlineUsers.stories.ts b/packages/frontend/src/widgets/WidgetOnlineUsers.stories.ts
index 9e4161b5359b07f9b94aa07d020f7dd4bbf08fc1..fa7371a4995683675af2d349fb4ca0c2daa87d61 100644
--- a/packages/frontend/src/widgets/WidgetOnlineUsers.stories.ts
+++ b/packages/frontend/src/widgets/WidgetOnlineUsers.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: WidgetOnlineUsers,
 };
 export const Default = {
-	components: {
-		WidgetOnlineUsers,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				WidgetOnlineUsers,
+			},
+			props: Object.keys(argTypes),
+			template: '<WidgetOnlineUsers v-bind="$props" />',
+		};
 	},
-	template: '<WidgetOnlineUsers />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/widgets/WidgetPhotos.stories.ts b/packages/frontend/src/widgets/WidgetPhotos.stories.ts
index 77c755a7a5ecdb1b7b7184082b15ed5da8f8e8c5..4e335e01c21e1cf6b216bd97f7e267fbe43ea74d 100644
--- a/packages/frontend/src/widgets/WidgetPhotos.stories.ts
+++ b/packages/frontend/src/widgets/WidgetPhotos.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: WidgetPhotos,
 };
 export const Default = {
-	components: {
-		WidgetPhotos,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				WidgetPhotos,
+			},
+			props: Object.keys(argTypes),
+			template: '<WidgetPhotos v-bind="$props" />',
+		};
 	},
-	template: '<WidgetPhotos />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/widgets/WidgetPostForm.stories.ts b/packages/frontend/src/widgets/WidgetPostForm.stories.ts
index 2576a8b08d7a38c1cedcf8332f0f2ecd68674b43..5d03be5ce21b2dc82ff15008919d8d6ee6038f50 100644
--- a/packages/frontend/src/widgets/WidgetPostForm.stories.ts
+++ b/packages/frontend/src/widgets/WidgetPostForm.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: WidgetPostForm,
 };
 export const Default = {
-	components: {
-		WidgetPostForm,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				WidgetPostForm,
+			},
+			props: Object.keys(argTypes),
+			template: '<WidgetPostForm v-bind="$props" />',
+		};
 	},
-	template: '<WidgetPostForm />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/widgets/WidgetProfile.stories.ts b/packages/frontend/src/widgets/WidgetProfile.stories.ts
index 7654d805c8caf2e6008f35ebd95359d729f00c36..6b9b8b9adf39effdd5c6c94de8f869664ab09558 100644
--- a/packages/frontend/src/widgets/WidgetProfile.stories.ts
+++ b/packages/frontend/src/widgets/WidgetProfile.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: WidgetProfile,
 };
 export const Default = {
-	components: {
-		WidgetProfile,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				WidgetProfile,
+			},
+			props: Object.keys(argTypes),
+			template: '<WidgetProfile v-bind="$props" />',
+		};
 	},
-	template: '<WidgetProfile />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/widgets/WidgetRss.stories.ts b/packages/frontend/src/widgets/WidgetRss.stories.ts
index baae27167c8ca19bd98ae6d53fd37635ea320f30..02bd406d4f5858b3b9eb2af25bbd0484e3e31ebd 100644
--- a/packages/frontend/src/widgets/WidgetRss.stories.ts
+++ b/packages/frontend/src/widgets/WidgetRss.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: WidgetRss,
 };
 export const Default = {
-	components: {
-		WidgetRss,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				WidgetRss,
+			},
+			props: Object.keys(argTypes),
+			template: '<WidgetRss v-bind="$props" />',
+		};
 	},
-	template: '<WidgetRss />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/widgets/WidgetRssTicker.stories.ts b/packages/frontend/src/widgets/WidgetRssTicker.stories.ts
index f70c23210f5ad63961f7c05a6d4382b3ffdc5850..16d4a0855d93e0c60e91f504c56df86456e7ddc5 100644
--- a/packages/frontend/src/widgets/WidgetRssTicker.stories.ts
+++ b/packages/frontend/src/widgets/WidgetRssTicker.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: WidgetRssTicker,
 };
 export const Default = {
-	components: {
-		WidgetRssTicker,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				WidgetRssTicker,
+			},
+			props: Object.keys(argTypes),
+			template: '<WidgetRssTicker v-bind="$props" />',
+		};
 	},
-	template: '<WidgetRssTicker />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/widgets/WidgetSlideshow.stories.ts b/packages/frontend/src/widgets/WidgetSlideshow.stories.ts
index 8671a34833678a09fe260168e4e5ee452bf64f6e..59394b70da73757cb2318bd3bc9d4166af04aba8 100644
--- a/packages/frontend/src/widgets/WidgetSlideshow.stories.ts
+++ b/packages/frontend/src/widgets/WidgetSlideshow.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: WidgetSlideshow,
 };
 export const Default = {
-	components: {
-		WidgetSlideshow,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				WidgetSlideshow,
+			},
+			props: Object.keys(argTypes),
+			template: '<WidgetSlideshow v-bind="$props" />',
+		};
 	},
-	template: '<WidgetSlideshow />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/widgets/WidgetTimeline.stories.ts b/packages/frontend/src/widgets/WidgetTimeline.stories.ts
index e067689c289f6b69d373bd850e8638052bac75d6..7b00b73528ec416d184c8645aea1ca06eef64a21 100644
--- a/packages/frontend/src/widgets/WidgetTimeline.stories.ts
+++ b/packages/frontend/src/widgets/WidgetTimeline.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: WidgetTimeline,
 };
 export const Default = {
-	components: {
-		WidgetTimeline,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				WidgetTimeline,
+			},
+			props: Object.keys(argTypes),
+			template: '<WidgetTimeline v-bind="$props" />',
+		};
 	},
-	template: '<WidgetTimeline />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/widgets/WidgetTrends.stories.ts b/packages/frontend/src/widgets/WidgetTrends.stories.ts
index 96ee667bed2d2aa9e8d92db5f4a7d4ab67a30288..c1dca9039d540b801fee19c581b280b62f70faf0 100644
--- a/packages/frontend/src/widgets/WidgetTrends.stories.ts
+++ b/packages/frontend/src/widgets/WidgetTrends.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: WidgetTrends,
 };
 export const Default = {
-	components: {
-		WidgetTrends,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				WidgetTrends,
+			},
+			props: Object.keys(argTypes),
+			template: '<WidgetTrends v-bind="$props" />',
+		};
 	},
-	template: '<WidgetTrends />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/widgets/WidgetUnixClock.stories.ts b/packages/frontend/src/widgets/WidgetUnixClock.stories.ts
index 1dd22e3a7ee24e773544a98afc9c53bfe9bba18c..3c388f3f42af15fbef89cd3a9abe7e029a7de1a9 100644
--- a/packages/frontend/src/widgets/WidgetUnixClock.stories.ts
+++ b/packages/frontend/src/widgets/WidgetUnixClock.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: WidgetUnixClock,
 };
 export const Default = {
-	components: {
-		WidgetUnixClock,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				WidgetUnixClock,
+			},
+			props: Object.keys(argTypes),
+			template: '<WidgetUnixClock v-bind="$props" />',
+		};
 	},
-	template: '<WidgetUnixClock />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/widgets/WidgetUserList.stories.ts b/packages/frontend/src/widgets/WidgetUserList.stories.ts
index 2435b9a5b41205e33a7c870ec2b3870adcde0c79..528f9d26cde1cec4b412d2909c981515d4bd31c0 100644
--- a/packages/frontend/src/widgets/WidgetUserList.stories.ts
+++ b/packages/frontend/src/widgets/WidgetUserList.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: WidgetUserList,
 };
 export const Default = {
-	components: {
-		WidgetUserList,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				WidgetUserList,
+			},
+			props: Object.keys(argTypes),
+			template: '<WidgetUserList v-bind="$props" />',
+		};
 	},
-	template: '<WidgetUserList />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/widgets/server-metric/cpu-mem.stories.ts b/packages/frontend/src/widgets/server-metric/cpu-mem.stories.ts
index 9beb5e29403aedbc0965e04fc1b6d9f3b2c1980e..0c376fdf993a65f0dd6a637ee0d9b3f3003fecab 100644
--- a/packages/frontend/src/widgets/server-metric/cpu-mem.stories.ts
+++ b/packages/frontend/src/widgets/server-metric/cpu-mem.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: cpu_mem,
 };
 export const Default = {
-	components: {
-		cpu_mem,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				cpu_mem,
+			},
+			props: Object.keys(argTypes),
+			template: '<cpu_mem v-bind="$props" />',
+		};
 	},
-	template: '<cpu_mem />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/widgets/server-metric/cpu.stories.ts b/packages/frontend/src/widgets/server-metric/cpu.stories.ts
index a55dcad76e2272cfc443f08e89e250f7de4289c3..aefd4642b404997a96c229b58c05cc1fb7d82412 100644
--- a/packages/frontend/src/widgets/server-metric/cpu.stories.ts
+++ b/packages/frontend/src/widgets/server-metric/cpu.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: cpu,
 };
 export const Default = {
-	components: {
-		cpu,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				cpu,
+			},
+			props: Object.keys(argTypes),
+			template: '<cpu v-bind="$props" />',
+		};
 	},
-	template: '<cpu />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/widgets/server-metric/disk.stories.ts b/packages/frontend/src/widgets/server-metric/disk.stories.ts
index c63f3cd4a6a5a966dfda9a00c24eb3630aaf470a..3b97ad1a9121dfb8cbdde7c25fdb8c9fd036fa52 100644
--- a/packages/frontend/src/widgets/server-metric/disk.stories.ts
+++ b/packages/frontend/src/widgets/server-metric/disk.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: disk,
 };
 export const Default = {
-	components: {
-		disk,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				disk,
+			},
+			props: Object.keys(argTypes),
+			template: '<disk v-bind="$props" />',
+		};
 	},
-	template: '<disk />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/widgets/server-metric/index.stories.ts b/packages/frontend/src/widgets/server-metric/index.stories.ts
index ee29d8a540abf8e79723c227c025dacfec6c072f..a982729b61cdd4ee86b57c885816b1d9bc8a4ce4 100644
--- a/packages/frontend/src/widgets/server-metric/index.stories.ts
+++ b/packages/frontend/src/widgets/server-metric/index.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: index,
 };
 export const Default = {
-	components: {
-		index,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				index,
+			},
+			props: Object.keys(argTypes),
+			template: '<index v-bind="$props" />',
+		};
 	},
-	template: '<index />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/widgets/server-metric/mem.stories.ts b/packages/frontend/src/widgets/server-metric/mem.stories.ts
index 231f9459b433aaeba2d41e9a915a47f50a447f89..acfa33634b0a19ea8d9170626e376fd1d78aaa08 100644
--- a/packages/frontend/src/widgets/server-metric/mem.stories.ts
+++ b/packages/frontend/src/widgets/server-metric/mem.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: mem,
 };
 export const Default = {
-	components: {
-		mem,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				mem,
+			},
+			props: Object.keys(argTypes),
+			template: '<mem v-bind="$props" />',
+		};
 	},
-	template: '<mem />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/widgets/server-metric/net.stories.ts b/packages/frontend/src/widgets/server-metric/net.stories.ts
index f5fb0984429efce77ca449931ea8f772bc85df03..3f231caf8c6635016b497003a4b04fd15dcb759a 100644
--- a/packages/frontend/src/widgets/server-metric/net.stories.ts
+++ b/packages/frontend/src/widgets/server-metric/net.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: net,
 };
 export const Default = {
-	components: {
-		net,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				net,
+			},
+			props: Object.keys(argTypes),
+			template: '<net v-bind="$props" />',
+		};
 	},
-	template: '<net />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/packages/frontend/src/widgets/server-metric/pie.stories.ts b/packages/frontend/src/widgets/server-metric/pie.stories.ts
index 7e56a6a726f2a33d0d53fa0961d5d56b31f285dc..32f8c898c003fd3056a228897547c7ba4d9288c8 100644
--- a/packages/frontend/src/widgets/server-metric/pie.stories.ts
+++ b/packages/frontend/src/widgets/server-metric/pie.stories.ts
@@ -5,10 +5,15 @@ const meta = {
 	component: pie,
 };
 export const Default = {
-	components: {
-		pie,
+	render(args, { argTypes }) {
+		return {
+			components: {
+				pie,
+			},
+			props: Object.keys(argTypes),
+			template: '<pie v-bind="$props" />',
+		};
 	},
-	template: '<pie />',
 	parameters: {
 		layout: 'centered',
 	},
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 98b347b7fafabe06d6b2a9a59e484c341a755684..b1b170a5ea5e7759768a49a6ee16b5e33e658714 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -402,7 +402,9 @@ importers:
       '@storybook/addon-interactions': ^7.0.0-rc.4
       '@storybook/addon-links': ^7.0.0-rc.4
       '@storybook/blocks': ^7.0.0-rc.4
+      '@storybook/manager-api': 7.0.0-rc.4
       '@storybook/testing-library': ^0.0.14-next.1
+      '@storybook/theming': 7.0.0-rc.4
       '@storybook/vue3': ^7.0.0-rc.4
       '@storybook/vue3-vite': ^7.0.0-rc.4
       '@syuilo/aiscript': 0.13.1
@@ -459,6 +461,8 @@ importers:
       matter-js: 0.19.0
       mfm-js: 0.23.3
       misskey-js: 0.0.15
+      msw: ^1.1.0
+      msw-storybook-addon: ^1.8.0
       photoswipe: 5.3.6
       prettier: ^2.8.4
       prismjs: 1.29.0
@@ -561,7 +565,9 @@ importers:
       '@storybook/addon-interactions': 7.0.0-rc.4_biqbaboplfbrettd7655fr4n2y
       '@storybook/addon-links': 7.0.0-rc.4_biqbaboplfbrettd7655fr4n2y
       '@storybook/blocks': 7.0.0-rc.4_biqbaboplfbrettd7655fr4n2y
+      '@storybook/manager-api': 7.0.0-rc.4_biqbaboplfbrettd7655fr4n2y
       '@storybook/testing-library': 0.0.14-next.1
+      '@storybook/theming': 7.0.0-rc.4_biqbaboplfbrettd7655fr4n2y
       '@storybook/vue3': 7.0.0-rc.4_vue@3.2.47
       '@storybook/vue3-vite': 7.0.0-rc.4_y344amzr55z4s7r3flz6cvxaae
       '@testing-library/vue': 6.6.1_a2ihsjreowava2sm4iorpgwkom
@@ -590,6 +596,8 @@ importers:
       eslint-plugin-import: 2.27.5_uyiasnnzcqrxqkfvjklwnmwcha
       eslint-plugin-vue: 9.9.0_eslint@8.35.0
       happy-dom: 8.9.0
+      msw: 1.1.0_typescript@4.9.5
+      msw-storybook-addon: 1.8.0_msw@1.1.0
       prettier: 2.8.4
       react: 18.2.0
       react-dom: 18.2.0_react@18.2.0
@@ -3866,6 +3874,30 @@ packages:
     requiresBuild: true
     optional: true
 
+  /@mswjs/cookies/0.2.2:
+    resolution: {integrity: sha512-mlN83YSrcFgk7Dm1Mys40DLssI1KdJji2CMKN8eOlBqsTADYzj2+jWzsANsUTFbxDMWPD5e9bfA1RGqBpS3O1g==}
+    engines: {node: '>=14'}
+    dependencies:
+      '@types/set-cookie-parser': 2.4.2
+      set-cookie-parser: 2.5.1
+    dev: true
+
+  /@mswjs/interceptors/0.17.9:
+    resolution: {integrity: sha512-4LVGt03RobMH/7ZrbHqRxQrS9cc2uh+iNKSj8UWr8M26A2i793ju+csaB5zaqYltqJmA2jUq4VeYfKmVqvsXQg==}
+    engines: {node: '>=14'}
+    dependencies:
+      '@open-draft/until': 1.0.3
+      '@types/debug': 4.1.7
+      '@xmldom/xmldom': 0.8.6
+      debug: 4.3.4
+      headers-polyfill: 3.1.2
+      outvariant: 1.3.0
+      strict-event-emitter: 0.2.8
+      web-encoding: 1.1.5
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /@ndelangen/get-tarball/3.0.7:
     resolution: {integrity: sha512-NqGfTZIZpRFef1GoVaShSSRwDC3vde3ThtTeqFdcYd6ipKqnfEVhjK2hUeHjCQUcptyZr2TONqcloFXM+5QBrQ==}
     dependencies:
@@ -4009,6 +4041,10 @@ packages:
       - encoding
     dev: false
 
+  /@open-draft/until/1.0.3:
+    resolution: {integrity: sha512-Aq58f5HiWdyDlFffbbSjAlv596h/cOnt2DO1w3DOC7OJ5EHs0hd/nycJfiu9RJbT6Yk6F1knnRRXNSpxoIVZ9Q==}
+    dev: true
+
   /@peertube/http-signature/1.7.0:
     resolution: {integrity: sha512-aGQIwo6/sWtyyqhVK4e1MtxYz4N1X8CNt6SOtCc+Wnczs5S5ONaLHDDR8LYaGn0MgOwvGgXyuZ5sJIfd7iyoUw==}
     engines: {node: '>=0.10'}
@@ -4910,7 +4946,7 @@ packages:
     dependencies:
       '@storybook/client-logger': 7.0.0-rc.4
       memoizerific: 1.11.3
-      qs: 6.10.4
+      qs: 6.11.0
       react: 18.2.0
       react-dom: 18.2.0_react@18.2.0
     dev: true
@@ -5457,6 +5493,16 @@ packages:
     resolution: {integrity: sha512-v6LCdKfK6BwcqMo+wYW05rLS12S0ZO0Fl4w1h4aaZMD7bqT3gVUns6FvLJKGZHQmYn3SX55JWGpziwJRwVgutA==}
     dev: true
 
+  /@types/cookie/0.4.1:
+    resolution: {integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==}
+    dev: true
+
+  /@types/debug/4.1.7:
+    resolution: {integrity: sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==}
+    dependencies:
+      '@types/ms': 0.7.31
+    dev: true
+
   /@types/detect-port/1.3.2:
     resolution: {integrity: sha512-xxgAGA2SAU4111QefXPSp5eGbDm/hW6zhvYl9IeEPZEry9F4d66QAHm5qpUXjb6IsevZV/7emAEx5MhP6O192g==}
     dev: true
@@ -5584,6 +5630,10 @@ packages:
       pretty-format: 29.3.1
     dev: true
 
+  /@types/js-levenshtein/1.1.1:
+    resolution: {integrity: sha512-qC4bCqYGy1y/NP7dDVr7KJarn+PbX1nSpwA7JXdu0HxT3QYjO8MJ+cntENtHFVy2dRAyBV23OZ6MxsW1AM1L8g==}
+    dev: true
+
   /@types/js-yaml/4.0.5:
     resolution: {integrity: sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA==}
     dev: true
@@ -5646,6 +5696,10 @@ packages:
     resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==}
     dev: true
 
+  /@types/ms/0.7.31:
+    resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==}
+    dev: true
+
   /@types/node-fetch/2.6.2:
     resolution: {integrity: sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==}
     dependencies:
@@ -5807,6 +5861,12 @@ packages:
     resolution: {integrity: sha512-DVoelQjcHaPshqyg0duirwuuaZ/teG4E3QGiQXbzso8akd12VRtgGYCao8viRFXHVLJOlo/Elh1nfbMsRQJXVA==}
     dev: true
 
+  /@types/set-cookie-parser/2.4.2:
+    resolution: {integrity: sha512-fBZgytwhYAUkj/jC/FAV4RQ5EerRup1YQsXQCh8rZfiHkc4UahC192oH0smGwsXol3cL3A5oETuAHeQHmhXM4w==}
+    dependencies:
+      '@types/node': 18.15.0
+    dev: true
+
   /@types/sharp/0.31.1:
     resolution: {integrity: sha512-5nWwamN9ZFHXaYEincMSuza8nNfOof8nmO+mcI+Agx1uMUk4/pQnNIcix+9rLPXzKrm1pS34+6WRDbDV0Jn7ag==}
     dependencies:
@@ -6318,6 +6378,11 @@ packages:
     resolution: {integrity: sha512-pUrWq3V5PiSGFLeLxoGqReTZmiiXwY3jRkIG5sLLKjyqNxrwm/04b4nw7LSmGWJcKk59XOM/YRTUwOzo4MMlow==}
     dev: false
 
+  /@xmldom/xmldom/0.8.6:
+    resolution: {integrity: sha512-uRjjusqpoqfmRkTaNuLJ2VohVr67Q5YwDATW3VU7PfzTj6IRaihGrYI7zckGZjxQPBIp63nfvJbM+Yu5ICh0Bg==}
+    engines: {node: '>=10.0.0'}
+    dev: true
+
   /@yarnpkg/esbuild-plugin-pnp/3.0.0-rc.15_esbuild@0.16.17:
     resolution: {integrity: sha512-kYzDJO5CA9sy+on/s2aIW0411AklfCi8Ck/4QDivOqsMKpStZA2SsR+X27VTggGwpStWaLrjJcDcdDMowtG8MA==}
     engines: {node: '>=14.15.0'}
@@ -6328,6 +6393,12 @@ packages:
       tslib: 2.5.0
     dev: true
 
+  /@zxing/text-encoding/0.9.0:
+    resolution: {integrity: sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==}
+    requiresBuild: true
+    dev: true
+    optional: true
+
   /abab/2.0.6:
     resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==}
     dev: false
@@ -7581,7 +7652,7 @@ packages:
     resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==}
     dependencies:
       function-bind: 1.1.1
-      get-intrinsic: 1.1.3
+      get-intrinsic: 1.2.0
 
   /callsites/3.1.0:
     resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
@@ -7686,6 +7757,14 @@ packages:
       supports-color: 5.5.0
     dev: true
 
+  /chalk/4.1.1:
+    resolution: {integrity: sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==}
+    engines: {node: '>=10'}
+    dependencies:
+      ansi-styles: 4.3.0
+      supports-color: 7.2.0
+    dev: true
+
   /chalk/4.1.2:
     resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
     engines: {node: '>=10'}
@@ -7707,6 +7786,10 @@ packages:
     dependencies:
       is-regex: 1.1.4
 
+  /chardet/0.7.0:
+    resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==}
+    dev: true
+
   /chart.js/4.2.1:
     resolution: {integrity: sha512-6YbpQ0nt3NovAgOzbkSSeeAQu/3za1319dPUQTXn9WcOpywM8rGKxJHrhS8V8xEkAlk8YhEfjbuAPfUyp6jIsw==}
     engines: {pnpm: ^7.0.0}
@@ -7855,6 +7938,11 @@ packages:
       yargs: 16.2.0
     dev: false
 
+  /cli-spinners/2.7.0:
+    resolution: {integrity: sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==}
+    engines: {node: '>=6'}
+    dev: true
+
   /cli-table3/0.6.3:
     resolution: {integrity: sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==}
     engines: {node: 10.* || >= 12.*}
@@ -7880,6 +7968,11 @@ packages:
       string-width: 5.1.2
     dev: true
 
+  /cli-width/3.0.0:
+    resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==}
+    engines: {node: '>= 10'}
+    dev: true
+
   /cliui/3.2.0:
     resolution: {integrity: sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==}
     dependencies:
@@ -7938,7 +8031,6 @@ packages:
   /clone/1.0.4:
     resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==}
     engines: {node: '>=0.8'}
-    dev: false
 
   /clone/2.1.2:
     resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==}
@@ -8198,6 +8290,11 @@ packages:
     resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==}
     dev: true
 
+  /cookie/0.4.2:
+    resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==}
+    engines: {node: '>= 0.6'}
+    dev: true
+
   /cookie/0.5.0:
     resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==}
     engines: {node: '>= 0.6'}
@@ -8610,7 +8707,7 @@ packages:
     dependencies:
       call-bind: 1.0.2
       es-get-iterator: 1.1.3
-      get-intrinsic: 1.1.3
+      get-intrinsic: 1.2.0
       is-arguments: 1.1.1
       is-array-buffer: 3.0.2
       is-date-object: 1.0.5
@@ -8659,6 +8756,12 @@ packages:
     engines: {node: '>= 0.10'}
     dev: false
 
+  /defaults/1.0.4:
+    resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==}
+    dependencies:
+      clone: 1.0.4
+    dev: true
+
   /defer-to-connect/2.0.1:
     resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==}
     engines: {node: '>=10'}
@@ -9043,7 +9146,7 @@ packages:
     resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==}
     dependencies:
       call-bind: 1.0.2
-      get-intrinsic: 1.1.3
+      get-intrinsic: 1.2.0
       has-symbols: 1.0.3
       is-arguments: 1.1.1
       is-map: 2.0.2
@@ -9806,7 +9909,6 @@ packages:
   /events/3.3.0:
     resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==}
     engines: {node: '>=0.8.x'}
-    dev: false
 
   /execa/0.7.0:
     resolution: {integrity: sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw==}
@@ -10003,6 +10105,15 @@ packages:
   /extend/3.0.2:
     resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
 
+  /external-editor/3.1.0:
+    resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==}
+    engines: {node: '>=4'}
+    dependencies:
+      chardet: 0.7.0
+      iconv-lite: 0.4.24
+      tmp: 0.0.33
+    dev: true
+
   /extglob/2.0.4:
     resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==}
     engines: {node: '>=0.10.0'}
@@ -10659,13 +10770,6 @@ packages:
     resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==}
     dev: true
 
-  /get-intrinsic/1.1.3:
-    resolution: {integrity: sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==}
-    dependencies:
-      function-bind: 1.1.1
-      has: 1.0.3
-      has-symbols: 1.0.3
-
   /get-intrinsic/1.2.0:
     resolution: {integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==}
     dependencies:
@@ -10964,6 +11068,11 @@ packages:
     resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==}
     dev: true
 
+  /graphql/16.6.0:
+    resolution: {integrity: sha512-KPIBPDlW7NxrbT/eh4qPXz5FiFdL5UbaA0XUNz2Rp3Z3hqBSkbj0GVjwFDztsWVauZUWsbKHgMg++sk8UX0bkw==}
+    engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0}
+    dev: true
+
   /gsap/3.11.4:
     resolution: {integrity: sha512-McHhEguHyExMMnjqKA8G+7TvxmlKQGMbjgwAilnFe1e4id7V/tFveRQ2YMZhTYu0oxHGWvbPltdVYQOu3z1SCA==}
     dev: false
@@ -11197,6 +11306,10 @@ packages:
     resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==}
     hasBin: true
 
+  /headers-polyfill/3.1.2:
+    resolution: {integrity: sha512-tWCK4biJ6hcLqTviLXVR9DTRfYGQMXEIUj3gwJ2rZ5wO/at3XtkI4g8mCvFdUF9l1KMBNCfmNAdnahm1cgavQA==}
+    dev: true
+
   /hexoid/1.0.0:
     resolution: {integrity: sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==}
     engines: {node: '>=8'}
@@ -11443,6 +11556,27 @@ packages:
     engines: {node: '>=10'}
     dev: true
 
+  /inquirer/8.2.5:
+    resolution: {integrity: sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==}
+    engines: {node: '>=12.0.0'}
+    dependencies:
+      ansi-escapes: 4.3.2
+      chalk: 4.1.2
+      cli-cursor: 3.1.0
+      cli-width: 3.0.0
+      external-editor: 3.1.0
+      figures: 3.2.0
+      lodash: 4.17.21
+      mute-stream: 0.0.8
+      ora: 5.4.1
+      run-async: 2.4.1
+      rxjs: 7.8.0
+      string-width: 4.2.3
+      strip-ansi: 6.0.1
+      through: 2.3.8
+      wrap-ansi: 7.0.0
+    dev: true
+
   /insert-text-at-cursor/0.3.0:
     resolution: {integrity: sha512-/nPtyeX9xPUvxZf+r0518B7uqNKlP+LqNJqSiXFEaa2T71rWIwTVXGH7hB9xO/EVdwa5/pWlFCPwShOW81XIxQ==}
     dev: false
@@ -11766,6 +11900,11 @@ packages:
       is-path-inside: 3.0.3
     dev: true
 
+  /is-interactive/1.0.0:
+    resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==}
+    engines: {node: '>=8'}
+    dev: true
+
   /is-ip/3.1.0:
     resolution: {integrity: sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==}
     engines: {node: '>=8'}
@@ -11798,6 +11937,10 @@ packages:
     engines: {node: '>= 0.4'}
     dev: true
 
+  /is-node-process/1.0.1:
+    resolution: {integrity: sha512-5IcdXuf++TTNt3oGl9EBdkvndXA8gmc4bz/Y+mdEpWh3Mcn/+kOw6hI7LD5CocqJWMzeb0I0ClndRVNdEPuJXQ==}
+    dev: true
+
   /is-number-object/1.0.7:
     resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==}
     engines: {node: '>= 0.4'}
@@ -12574,6 +12717,11 @@ packages:
       nopt: 6.0.0
     dev: true
 
+  /js-levenshtein/1.1.6:
+    resolution: {integrity: sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==}
+    engines: {node: '>=0.10.0'}
+    dev: true
+
   /js-sdsl/4.2.0:
     resolution: {integrity: sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==}
     dev: true
@@ -13579,6 +13727,51 @@ packages:
     optionalDependencies:
       msgpackr-extract: 2.2.0
 
+  /msw-storybook-addon/1.8.0_msw@1.1.0:
+    resolution: {integrity: sha512-dw3vZwqjixmiur0vouRSOax7wPSu9Og2Hspy9JZFHf49bZRjwDiLF0Pfn2NXEkGviYJOJiGxS1ejoTiUwoSg4A==}
+    peerDependencies:
+      msw: '>=0.35.0 <2.0.0'
+    dependencies:
+      is-node-process: 1.0.1
+      msw: 1.1.0_typescript@4.9.5
+    dev: true
+
+  /msw/1.1.0_typescript@4.9.5:
+    resolution: {integrity: sha512-oqMvUXm1bMbwvGpoXAQVz8vXXQyQyx52HBDg3EDOK+dFXkQHssgkXEG4LfMwwZyr2Qt18I/w04XPaY4BkFTkzA==}
+    engines: {node: '>=14'}
+    hasBin: true
+    requiresBuild: true
+    peerDependencies:
+      typescript: '>= 4.4.x <= 4.9.x'
+    peerDependenciesMeta:
+      typescript:
+        optional: true
+    dependencies:
+      '@mswjs/cookies': 0.2.2
+      '@mswjs/interceptors': 0.17.9
+      '@open-draft/until': 1.0.3
+      '@types/cookie': 0.4.1
+      '@types/js-levenshtein': 1.1.1
+      chalk: 4.1.1
+      chokidar: 3.5.3
+      cookie: 0.4.2
+      graphql: 16.6.0
+      headers-polyfill: 3.1.2
+      inquirer: 8.2.5
+      is-node-process: 1.0.1
+      js-levenshtein: 1.1.6
+      node-fetch: 2.6.7
+      outvariant: 1.3.0
+      path-to-regexp: 6.2.1
+      strict-event-emitter: 0.4.6
+      type-fest: 2.19.0
+      typescript: 4.9.5
+      yargs: 17.6.2
+    transitivePeerDependencies:
+      - encoding
+      - supports-color
+    dev: true
+
   /muggle-string/0.2.2:
     resolution: {integrity: sha512-YVE1mIJ4VpUMqZObFndk9CJu6DBJR/GB13p3tXuNbwD4XExaI5EOuRl6BHeIDxIqXZVxSfAC+y6U1Z/IxCfKUg==}
     dev: true
@@ -13592,6 +13785,10 @@ packages:
     engines: {node: '>= 0.10'}
     dev: false
 
+  /mute-stream/0.0.8:
+    resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==}
+    dev: true
+
   /mylas/2.1.13:
     resolution: {integrity: sha512-+MrqnJRtxdF+xngFfUUkIMQrUUL0KsxbADUkn23Z/4ibGg192Q+z+CQyiYwvWTsYjJygmMR8+w3ZDa98Zh6ESg==}
     engines: {node: '>=12.0.0'}
@@ -14117,6 +14314,21 @@ packages:
       word-wrap: 1.2.3
     dev: true
 
+  /ora/5.4.1:
+    resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==}
+    engines: {node: '>=10'}
+    dependencies:
+      bl: 4.1.0
+      chalk: 4.1.2
+      cli-cursor: 3.1.0
+      cli-spinners: 2.7.0
+      is-interactive: 1.0.0
+      is-unicode-supported: 0.1.0
+      log-symbols: 4.1.0
+      strip-ansi: 6.0.1
+      wcwidth: 1.0.1
+    dev: true
+
   /ordered-read-streams/1.0.1:
     resolution: {integrity: sha512-Z87aSjx3r5c0ZB7bcJqIgIRX5bxR7A4aSzvIbaxd0oTkWBCOoKfuGHiKj60CHVUgg1Phm5yMZzBdt8XqRs73Mw==}
     dependencies:
@@ -14137,6 +14349,11 @@ packages:
       lcid: 1.0.0
     dev: false
 
+  /os-tmpdir/1.0.2:
+    resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==}
+    engines: {node: '>=0.10.0'}
+    dev: true
+
   /os-utils/0.0.14:
     resolution: {integrity: sha512-ajB8csaHLBvJOYsHJkp8YdO2FvlBbf/ZxaYQwXXRDyQ84UoE+uTuLXxqd0shekXMX6Qr/pt/DDyLMRAMsgfWzg==}
     dev: false
@@ -14151,6 +14368,10 @@ packages:
       jssha: 3.3.0
     dev: false
 
+  /outvariant/1.3.0:
+    resolution: {integrity: sha512-yeWM9k6UPfG/nzxdaPlJkB2p08hCg4xP6Lx99F+vP8YF7xyZVfTmJjrrNalkmzudD4WFvNLVudQikqUmF8zhVQ==}
+    dev: true
+
   /p-cancelable/2.1.1:
     resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==}
     engines: {node: '>=8'}
@@ -14391,6 +14612,10 @@ packages:
     resolution: {integrity: sha512-jczvQbCUS7XmS7o+y1aEO9OBVFeZBQ1MDSEqmO7xSoPgOPoowY/SxLpZ6Vh97/8qHZOteiCKb7gkG9gA2ZUxJA==}
     dev: false
 
+  /path-to-regexp/6.2.1:
+    resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==}
+    dev: true
+
   /path-type/1.1.0:
     resolution: {integrity: sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==}
     engines: {node: '>=0.10.0'}
@@ -15916,6 +16141,11 @@ packages:
       xml2js: 0.4.23
     dev: false
 
+  /run-async/2.4.1:
+    resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==}
+    engines: {node: '>=0.12.0'}
+    dev: true
+
   /run-parallel/1.2.0:
     resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
     dependencies:
@@ -15924,7 +16154,7 @@ packages:
   /rxjs/7.8.0:
     resolution: {integrity: sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==}
     dependencies:
-      tslib: 2.4.1
+      tslib: 2.5.0
 
   /s-age/1.1.2:
     resolution: {integrity: sha512-aSN2TlF39WLoZA/6cgYSJZhKt63kJ4EaadejPWjWY9/h4rksIqvfWY3gfd+3uAegSM1IXsA9aWeEhJtkxkFQtA==}
@@ -16059,6 +16289,7 @@ packages:
   /semver/7.3.8:
     resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==}
     engines: {node: '>=10'}
+    hasBin: true
     dependencies:
       lru-cache: 6.0.0
 
@@ -16111,7 +16342,6 @@ packages:
 
   /set-cookie-parser/2.5.1:
     resolution: {integrity: sha512-1jeBGaKNGdEq4FgIrORu/N570dwoPYio8lSoYLWmX7sQ//0JY08Xh9o5pBcgmHQ/MbsYp/aZnOe1s1lIsbLprQ==}
-    dev: false
 
   /set-value/2.0.1:
     resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==}
@@ -16195,7 +16425,7 @@ packages:
     resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==}
     dependencies:
       call-bind: 1.0.2
-      get-intrinsic: 1.1.3
+      get-intrinsic: 1.2.0
       object-inspect: 1.12.2
     dev: true
 
@@ -16583,6 +16813,16 @@ packages:
     resolution: {integrity: sha512-Nk/brWYpD85WlOgzw5h173aci0Teyv8YdIAEtV+N88nDB0dLlazZyJMIsN6eo1/AR61l+p6CJTG1JIyFaoNEEA==}
     dev: false
 
+  /strict-event-emitter/0.2.8:
+    resolution: {integrity: sha512-KDf/ujU8Zud3YaLtMCcTI4xkZlZVIYxTLr+XIULexP+77EEVWixeXroLUXQXiVtH4XH2W7jr/3PT1v3zBuvc3A==}
+    dependencies:
+      events: 3.3.0
+    dev: true
+
+  /strict-event-emitter/0.4.6:
+    resolution: {integrity: sha512-12KWeb+wixJohmnwNFerbyiBrAlq5qJLwIt38etRtKtmmHyDSoGlIqFE9wx+4IwG0aDjI7GV8tc8ZccjWZZtTg==}
+    dev: true
+
   /strict-uri-encode/1.1.0:
     resolution: {integrity: sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==}
     engines: {node: '>=0.10.0'}
@@ -17010,6 +17250,13 @@ packages:
     engines: {node: '>=14.0.0'}
     dev: true
 
+  /tmp/0.0.33:
+    resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==}
+    engines: {node: '>=0.6.0'}
+    dependencies:
+      os-tmpdir: 1.0.2
+    dev: true
+
   /tmp/0.2.1:
     resolution: {integrity: sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==}
     engines: {node: '>=8.17.0'}
@@ -17173,9 +17420,6 @@ packages:
     resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
     dev: true
 
-  /tslib/2.4.1:
-    resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==}
-
   /tslib/2.5.0:
     resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==}
 
@@ -18059,6 +18303,20 @@ packages:
       graceful-fs: 4.2.10
     dev: true
 
+  /wcwidth/1.0.1:
+    resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==}
+    dependencies:
+      defaults: 1.0.4
+    dev: true
+
+  /web-encoding/1.1.5:
+    resolution: {integrity: sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==}
+    dependencies:
+      util: 0.12.5
+    optionalDependencies:
+      '@zxing/text-encoding': 0.9.0
+    dev: true
+
   /web-push/3.5.0:
     resolution: {integrity: sha512-JC0V9hzKTqlDYJ+LTZUXtW7B175qwwaqzbbMSWDxHWxZvd3xY0C2rcotMGDavub2nAAFw+sXTsqR65/KY2A5AQ==}
     engines: {node: '>= 6'}