diff --git a/src/Icon/Fields/Partials/Icon.php b/src/Icon/Fields/Partials/Icon.php new file mode 100644 index 0000000..aca66a3 --- /dev/null +++ b/src/Icon/Fields/Partials/Icon.php @@ -0,0 +1,50 @@ +addSelect('icon', [ + 'label' => 'Icon', + 'instructions' => 'Select an icon', + 'choices' => $this->getIcons(), + 'allow_null' => 0, + 'ui' => 1, + 'ajax' => 1, + ]); + + return $icon; + } + + protected function getIcons(): array + { + $filesystem = new Filesystem(); + $files = $filesystem->allFiles(get_template_directory() . '/resources/images/icons'); + + if (!$files) { + return []; + } + + $icons = []; + + foreach ($files as $file) { + $iconValue = $file->getFilenameWithoutExtension(); + $iconLabel = ucwords($file->getFilenameWithoutExtension()); + $icons[$iconValue] = $iconLabel; + } + + return $icons ?? []; + } +} diff --git a/src/Icon/resources/styles/icons.scss b/src/Icon/resources/styles/icons.scss new file mode 100644 index 0000000..3726cb9 --- /dev/null +++ b/src/Icon/resources/styles/icons.scss @@ -0,0 +1,17 @@ +.c-icon { + &--up { + tranform: rotate(0); + } + + &--right { + transform: rotate(45deg); + } + + &--down { + transform: rotate(180deg); + } + + &--left { + transform: rotate(270deg); + } +}