diff --git a/demo/app/Sharp/Authors/Commands/VisitFacebookProfileCommand.php b/demo/app/Sharp/Authors/Commands/VisitFacebookProfileCommand.php
index 8245784b8..64b5667b4 100644
--- a/demo/app/Sharp/Authors/Commands/VisitFacebookProfileCommand.php
+++ b/demo/app/Sharp/Authors/Commands/VisitFacebookProfileCommand.php
@@ -14,7 +14,8 @@ public function label(): string
public function buildCommandConfig(): void
{
- $this->configureDescription('You will leave Sharp');
+ $this->configureDescription('You will leave Sharp')
+ ->configureIcon('lucide-facebook');
}
public function execute(mixed $instanceId, array $data = []): array
diff --git a/demo/app/Sharp/Posts/Commands/BulkPublishPostsCommand.php b/demo/app/Sharp/Posts/Commands/BulkPublishPostsCommand.php
index f67f23d58..db8186778 100644
--- a/demo/app/Sharp/Posts/Commands/BulkPublishPostsCommand.php
+++ b/demo/app/Sharp/Posts/Commands/BulkPublishPostsCommand.php
@@ -15,6 +15,7 @@ public function label(): ?string
public function buildCommandConfig(): void
{
$this->configureDescription('Bulk command to publish posts')
+ ->configureIcon('lucide-check-check')
->configureInstanceSelectionRequired();
}
diff --git a/demo/app/Sharp/Posts/Commands/ComposeEmailWithPostsWizardCommand.php b/demo/app/Sharp/Posts/Commands/ComposeEmailWithPostsWizardCommand.php
index 2df71cc53..1d70b57f6 100644
--- a/demo/app/Sharp/Posts/Commands/ComposeEmailWithPostsWizardCommand.php
+++ b/demo/app/Sharp/Posts/Commands/ComposeEmailWithPostsWizardCommand.php
@@ -21,7 +21,8 @@ public function label(): ?string
public function buildCommandConfig(): void
{
- $this->configureDescription('Use this wizard command to compose a message choosing posts links in a list');
+ $this->configureDescription('Use this wizard command to compose a message choosing posts links in a list')
+ ->configureIcon('lucide-mail');
}
public function buildFormFieldsForFirstStep(FieldsContainer $formFields): void
diff --git a/ide.json b/ide.json
index 6109af252..06aefa593 100644
--- a/ide.json
+++ b/ide.json
@@ -16,6 +16,56 @@
]
}
]
+ },
+ {
+ "complete": "bladeIcon",
+ "condition": [
+ {
+ "classFqn": [
+ "Code16\\Sharp\\Utils\\Menu\\HasSharpMenuItems"
+ ],
+ "methodNames": [
+ "addEntityLink"
+ ],
+ "parameters": [
+ 3
+ ]
+ },
+ {
+ "classFqn": [
+ "Code16\\Sharp\\Form\\Fields\\Embeds\\SharpFormEditorEmbed"
+ ],
+ "methodNames": [
+ "configureIcon"
+ ],
+ "parameters": [
+ 1
+ ]
+ },
+ {
+ "classFqn": [
+ "Code16\\Sharp\\EntityList\\Commands\\Command"
+ ],
+ "methodNames": [
+ "configureIcon"
+ ],
+ "parameters": [
+ 1
+ ]
+ },
+ {
+ "place": "parameter",
+ "classFqn": [
+ "Code16\\Sharp\\EntityList\\EntityListEntities"
+ ],
+ "methodNames": [
+ "addEntity"
+ ],
+ "parameters": [
+ 3
+ ]
+ }
+ ]
}
],
"view": {
@@ -285,4 +335,4 @@
]
}
]
-}
\ No newline at end of file
+}
diff --git a/resources/js/commands/components/CommandDropdownItems.vue b/resources/js/commands/components/CommandDropdownItems.vue
index f22ce3957..c66b3addb 100644
--- a/resources/js/commands/components/CommandDropdownItems.vue
+++ b/resources/js/commands/components/CommandDropdownItems.vue
@@ -6,6 +6,7 @@
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "@/components/ui/tooltip";
import { useBreakpoints } from "@/composables/useBreakpoints";
import { showAlert } from "@/utils/dialogs";
+ import Icon from "@/components/ui/Icon.vue";
const props = defineProps<{
commands: CommandData[][],
@@ -38,6 +39,9 @@
@click="$emit('select', command)"
:disabled="requiresSelection(command)"
>
+
+