diff --git a/app/View/Components/Button.php b/app/View/Components/Button.php new file mode 100644 index 0000000..0d8cfae --- /dev/null +++ b/app/View/Components/Button.php @@ -0,0 +1,62 @@ +variant) { + self::VARIANT_SECONDARY => [ + 'base' => 'bg-secondary text-text', + 'hover' => 'hover:bg-secondary-dark', + 'disabled' => 'disabled:bg-secondary', + ], + self::VARIANT_OUTLINE => [ + 'base' => 'bg-surface border border-primary text-primary', + 'hover' => 'hover:bg-primary hover:text-text-inverted', + 'disabled' => 'disabled:bg-surface disabled:text-primary', + ], + default => [ + 'base' => 'bg-primary text-text-inverted', + 'hover' => 'hover:bg-primary-dark', + 'disabled' => 'disabled:bg-primary' + ] + }; + + $baseDisabled = 'disabled:cursor-not-allowed disabled:opacity-60'; + + return trim( + $base . ' ' . + $classes['base'] . ' ' . + $classes['hover'] . ' ' . + $baseDisabled . ' ' . + $classes['disabled'] + ); + } + + /** + * Get the view / contents that represent the component. + */ + public function render(): View + { + return view('components.button'); + } +} diff --git a/resources/views/components/button.blade.php b/resources/views/components/button.blade.php new file mode 100644 index 0000000..4e20927 --- /dev/null +++ b/resources/views/components/button.blade.php @@ -0,0 +1,8 @@ + diff --git a/resources/views/storybook/index.blade.php b/resources/views/storybook/index.blade.php index 59b0a40..f1fdef6 100644 --- a/resources/views/storybook/index.blade.php +++ b/resources/views/storybook/index.blade.php @@ -27,33 +27,29 @@

Enabled

- + Default - + Primary - + + Secondary + + + Outline

Disabled

- + Default - + Primary - + + Secondary + + + Outline
diff --git a/tests/Feature/Component/ButtonTest.php b/tests/Feature/Component/ButtonTest.php new file mode 100644 index 0000000..1366139 --- /dev/null +++ b/tests/Feature/Component/ButtonTest.php @@ -0,0 +1,43 @@ +blade('Click!'); + + $view->assertSeeHtml('