diff --git a/.storybook/preview.js b/.storybook/preview.js
index 48afd56..d1716ee 100644
--- a/.storybook/preview.js
+++ b/.storybook/preview.js
@@ -1,3 +1,5 @@
+import '/src/assets/main.css'
+
export const parameters = {
actions: { argTypesRegex: "^on[A-Z].*" },
controls: {
diff --git a/src/App.vue b/src/App.vue
index 7c18691..76d7219 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -1,5 +1,45 @@
- this will be main area
+
+
+
+
+
+ Generate
+
+
+
+
+
diff --git a/src/components/BaseButton.stories.js b/src/components/BaseButton.stories.js
new file mode 100644
index 0000000..471f561
--- /dev/null
+++ b/src/components/BaseButton.stories.js
@@ -0,0 +1,17 @@
+import BaseButton from './BaseButton.vue'
+
+export default {
+ title: 'Base button',
+ component: BaseButton,
+}
+
+const Template = (args) => ({
+ components: { BaseButton },
+ setup() {
+ return { args }
+ },
+ template: `What a nice label!`,
+})
+
+export const Primary = Template.bind({})
+Primary.args = {}
diff --git a/src/components/BaseButton.vue b/src/components/BaseButton.vue
new file mode 100644
index 0000000..93c2025
--- /dev/null
+++ b/src/components/BaseButton.vue
@@ -0,0 +1,5 @@
+
+
+
diff --git a/src/components/BaseLabel.stories.js b/src/components/BaseLabel.stories.js
new file mode 100644
index 0000000..8da04af
--- /dev/null
+++ b/src/components/BaseLabel.stories.js
@@ -0,0 +1,17 @@
+import BaseLabel from './BaseLabel.vue'
+
+export default {
+ title: 'Base label',
+ component: BaseLabel,
+}
+
+const Template = (args) => ({
+ components: { BaseLabel },
+ setup() {
+ return { args }
+ },
+ template: `What a nice label!`,
+})
+
+export const Primary = Template.bind({})
+Primary.args = {}
diff --git a/src/components/BaseLabel.vue b/src/components/BaseLabel.vue
new file mode 100644
index 0000000..1273813
--- /dev/null
+++ b/src/components/BaseLabel.vue
@@ -0,0 +1,5 @@
+
+
+
diff --git a/src/components/BaseTextArea.stories.js b/src/components/BaseTextArea.stories.js
new file mode 100644
index 0000000..8c30b1e
--- /dev/null
+++ b/src/components/BaseTextArea.stories.js
@@ -0,0 +1,19 @@
+import BaseTextArea from './BaseTextArea.vue'
+
+export default {
+ title: 'Base text area',
+ component: BaseTextArea,
+}
+
+const Template = (args) => ({
+ components: { BaseTextArea },
+ setup() {
+ return { args }
+ },
+ template: ``,
+})
+
+export const Primary = Template.bind({})
+Primary.args = {
+ modelValue: 'Cool text',
+}
diff --git a/src/components/BaseTextArea.vue b/src/components/BaseTextArea.vue
new file mode 100644
index 0000000..6b9128a
--- /dev/null
+++ b/src/components/BaseTextArea.vue
@@ -0,0 +1,13 @@
+
+
+
+
+
diff --git a/src/components/StepInput.spec.js b/src/components/StepInput.spec.js
new file mode 100644
index 0000000..ed318dc
--- /dev/null
+++ b/src/components/StepInput.spec.js
@@ -0,0 +1,29 @@
+import { describe, it, expect } from 'vitest'
+
+import { shallowMount } from '@vue/test-utils'
+
+import StepInput from './StepInput.vue'
+import BaseTextArea from './BaseTextArea.vue'
+import BaseLabel from './BaseLabel.vue'
+
+describe('StepInput', () => {
+ it('passes a formatted id to the BaseTextArea', () => {
+ const wrapper = shallowMount(StepInput, {
+ props: {
+ stepNumber: 99,
+ },
+ })
+
+ expect(wrapper.findComponent(BaseTextArea).attributes('id')).toContain(99)
+ })
+
+ it('passes a formated for attr to the BaseLabel', () => {
+ const wrapper = shallowMount(StepInput, {
+ props: {
+ stepNumber: 99,
+ },
+ })
+
+ expect(wrapper.findComponent(BaseLabel).attributes('for')).toContain(99)
+ })
+})
diff --git a/src/components/StepInput.stories.js b/src/components/StepInput.stories.js
new file mode 100644
index 0000000..21124a9
--- /dev/null
+++ b/src/components/StepInput.stories.js
@@ -0,0 +1,20 @@
+import StepInput from './StepInput.vue'
+
+export default {
+ title: 'Step input',
+ component: StepInput,
+}
+
+const Template = (args) => ({
+ components: { StepInput },
+ setup() {
+ return { args }
+ },
+ template: ``,
+})
+
+export const Primary = Template.bind({})
+Primary.args = {
+ stepLabel: 'First step is best',
+ stepNumber: 99,
+}
diff --git a/src/components/StepInput.vue b/src/components/StepInput.vue
new file mode 100644
index 0000000..eb6a12e
--- /dev/null
+++ b/src/components/StepInput.vue
@@ -0,0 +1,37 @@
+import BaseLabel from './BaseLabel.vue';
+
+
+
+ {{ stepLabel }}
+
+
+
+
+
+
diff --git a/src/components/__tests__/HelloWorld.spec.js b/src/components/__tests__/HelloWorld.spec.js
deleted file mode 100644
index 2533202..0000000
--- a/src/components/__tests__/HelloWorld.spec.js
+++ /dev/null
@@ -1,11 +0,0 @@
-import { describe, it, expect } from 'vitest'
-
-import { mount } from '@vue/test-utils'
-import HelloWorld from '../HelloWorld.vue'
-
-describe('HelloWorld', () => {
- it('renders properly', () => {
- const wrapper = mount(HelloWorld, { props: { msg: 'Hello Vitest' } })
- expect(wrapper.text()).toContain('Hello Vitest')
- })
-})