class CommandPalette extends BeartropyComponent

CommandPalette component.

A searchable command palette for navigation and actions. Opens via Cmd+K / Ctrl+K or click trigger; renders a modal overlay via x-teleport with Alpine.js keyboard navigation (arrow keys, tab, enter).

Supports loading items from a PHP array or a JSON file in storage/app. Items are cached per-user with permission/role filtering via Spatie Permissions.

Action types: route:name, url:path, absolute/relative URLs, dispatch:event, js:code.

Traits

Trait HasPresets.

Trait HasErrorBag.

Properties

string|null $size

Component size (md, lg, etc.) used for preset resolution.

from  BeartropyComponent
array $bt_cp_data
string|null $color

Component color.

array|null $items

Items definition array.

string|null $source

Legacy source path (unused).

string|null $src

JSON source path in storage/app.

bool $allowGuests

Allow guests to view items.

Methods

array
getComponentPresets(string|null $componentName = null, ComponentAttributeBag|null $attributes = null)

Compute component presets based on context.

array
loadPresets(string $componentName)

No description

array
loadComponentDefaults(string $componentName)

No description

bool
detectHasVariants(array $colors)

No description

array
computeSupports(array $sizes, array $colorsArray, array $defaults, array $magicProps)

No description

array
resolveSize(array $supports, array $sizes, array $defaults, array $magicProps)

No description

array
resolveVariant(array $supports, array $colorsArray, array $componentPresets, array $defaults, array $magicProps, bool $hasVariants)

No description

array
resolveColor(array $supports, array $colorsArray, array $componentPresets, array $defaults, array $magicProps, string|null $variant, bool $hasVariants)

No description

array
resolveFill(array $supports, array $attributes, array $defaults)

No description

string
buildCacheKey(string $component, array $supports, string|null $size, string|null $variant, string|null $color, bool $shouldFill)

No description

void
syncInstanceProps(array $supports, string|null $size, string|null $variant, string|null $color)

No description

array
buildPresetNames(array $supports, string|null $size, string|null $variant, string|null $color, bool $shouldFill, string $sizeOrigin, string $variantOrigin, string $colorOrigin, string $fillOrigin)

No description

void
debugWarnings(array $supports, array $sizePreset, array $colorPreset, string $componentName, string|null $variant, string|null $color)

No description

array
getErrorState(ComponentAttributeBag|null $attributes = null, ViewErrorBag|MessageBag|null $errors = null, string|null $error = null)

Determine the error state for a specific field.

array
getWireModelState(ComponentAttributeBag|null $attributes = null)

Analyze wire:model attributes to determine binding state.

array
getSizePreset(string|null $componentName = null, array|ComponentAttributeBag|null $attributes = null, string $defaultSize = 'md')

Resolve the size preset for the component.

__construct(string|null $color = null, array|null $items = null, string|null $source = null, string|null $src = null, bool $allowGuests = false)

Create a new CommandPalette component instance.

View
render()

Get the view / contents that represent the component.

array
cacheKeyParts()

Build cache key parts.

array
resolveItems()

Resolve items from array or JSON file.

array
readJsonFromStorage(string $path)

Read JSON file from storage.

array
normalize(array $items)

Normalize items to ensure all keys exist.

array
filterByPermissions(array $items)

Filter items by permissions (Spatie).

array
stripPermissions(array $items)

Remove 'permission' key before sending to client.

Details

in HasPresets at line 21
array getComponentPresets(string|null $componentName = null, ComponentAttributeBag|null $attributes = null)

Compute component presets based on context.

Parameters

string|null $componentName

Component key.

ComponentAttributeBag|null $attributes

Attributes bag.

Return Value

array

[colorPreset, sizePreset, shouldFill, presetNames]

in HasPresets at line 59
protected array loadPresets(string $componentName)

No description

Parameters

string $componentName

Return Value

array

in HasPresets at line 73
protected array loadComponentDefaults(string $componentName)

No description

Parameters

string $componentName

Return Value

array

in HasPresets at line 88
protected bool detectHasVariants(array $colors)

No description

Parameters

array $colors

Return Value

bool

in HasPresets at line 116
protected array computeSupports(array $sizes, array $colorsArray, array $defaults, array $magicProps)

No description

Parameters

array $sizes
array $colorsArray
array $defaults
array $magicProps

Return Value

array

in HasPresets at line 137
protected array resolveSize(array $supports, array $sizes, array $defaults, array $magicProps)

No description

Parameters

array $supports
array $sizes
array $defaults
array $magicProps

Return Value

array

in HasPresets at line 174
protected array resolveVariant(array $supports, array $colorsArray, array $componentPresets, array $defaults, array $magicProps, bool $hasVariants)

No description

Parameters

array $supports
array $colorsArray
array $componentPresets
array $defaults
array $magicProps
bool $hasVariants

Return Value

array

in HasPresets at line 223
protected array resolveColor(array $supports, array $colorsArray, array $componentPresets, array $defaults, array $magicProps, string|null $variant, bool $hasVariants)

No description

Parameters

array $supports
array $colorsArray
array $componentPresets
array $defaults
array $magicProps
string|null $variant
bool $hasVariants

Return Value

array

in HasPresets at line 293
protected array resolveFill(array $supports, array $attributes, array $defaults)

No description

Parameters

array $supports
array $attributes
array $defaults

Return Value

array

in HasPresets at line 338
protected string buildCacheKey(string $component, array $supports, string|null $size, string|null $variant, string|null $color, bool $shouldFill)

No description

Parameters

string $component
array $supports
string|null $size
string|null $variant
string|null $color
bool $shouldFill

Return Value

string

in HasPresets at line 349
protected void syncInstanceProps(array $supports, string|null $size, string|null $variant, string|null $color)

No description

Parameters

array $supports
string|null $size
string|null $variant
string|null $color

Return Value

void

in HasPresets at line 365
protected array buildPresetNames(array $supports, string|null $size, string|null $variant, string|null $color, bool $shouldFill, string $sizeOrigin, string $variantOrigin, string $colorOrigin, string $fillOrigin)

No description

Parameters

array $supports
string|null $size
string|null $variant
string|null $color
bool $shouldFill
string $sizeOrigin
string $variantOrigin
string $colorOrigin
string $fillOrigin

Return Value

array

in HasPresets at line 384
protected void debugWarnings(array $supports, array $sizePreset, array $colorPreset, string $componentName, string|null $variant, string|null $color)

No description

Parameters

array $supports
array $sizePreset
array $colorPreset
string $componentName
string|null $variant
string|null $color

Return Value

void

in HasErrorBag at line 24
array getErrorState(ComponentAttributeBag|null $attributes = null, ViewErrorBag|MessageBag|null $errors = null, string|null $error = null)

Determine the error state for a specific field.

Checks both the session error bag and specific error attributes. Looks up errors by wire:model value or name attribute.

Parameters

ComponentAttributeBag|null $attributes

Component attributes.

ViewErrorBag|MessageBag|null $errors

Global error bag.

string|null $error

Specific error message override.

Return Value

array

[hasError, firstErrorMessage]

in BeartropyComponent at line 33
array getWireModelState(ComponentAttributeBag|null $attributes = null)

Analyze wire:model attributes to determine binding state.

Detects if wire:model is present and if it uses dot notation (e.g., user.name).

Parameters

ComponentAttributeBag|null $attributes

Component attributes.

Return Value

array

[hasWireModel, wireModelValue, hasDotNotation, parsedDotNotationValue]

in BeartropyComponent at line 64
array getSizePreset(string|null $componentName = null, array|ComponentAttributeBag|null $attributes = null, string $defaultSize = 'md')

Resolve the size preset for the component.

Checks:

  1. Explicit $this->size.
  2. Magic attributes (e.g., <x-button sm />).
  3. Default size.

Parameters

string|null $componentName

Component name (used for context).

array|ComponentAttributeBag|null $attributes

Attributes array or bag.

string $defaultSize

Default size key.

Return Value

array

The resolved size preset configuration.

at line 58
__construct(string|null $color = null, array|null $items = null, string|null $source = null, string|null $src = null, bool $allowGuests = false)

Create a new CommandPalette component instance.

Parameters

string|null $color

Component color.

array|null $items

Items definition array.

string|null $source

Legacy source path.

string|null $src

JSON source path.

bool $allowGuests

Allow guests to view items.

Blade Props

Slots

at line 74
View render()

Get the view / contents that represent the component.

Calculates cache key based on user permissions and content version. Caches the resulting filtered items for performance.

Return Value

View

at line 98
protected array cacheKeyParts()

Build cache key parts.

  • userKey: id + hash of roles/permissions (or "guest")
  • version: file modification time (if src) or array hash (if items)

Return Value

array

[userKey, version]

at line 133
protected array resolveItems()

Resolve items from array or JSON file.

Return Value

array

Exceptions

Exception

at line 155
protected array readJsonFromStorage(string $path)

Read JSON file from storage.

Parameters

string $path

File path relative to storage root.

Return Value

array

Exceptions

Exception

at line 178
protected array normalize(array $items)

Normalize items to ensure all keys exist.

Parameters

array $items

Raw items.

Return Value

array

Normalized items.

at line 204
protected array filterByPermissions(array $items)

Filter items by permissions (Spatie).

  • Guest: if $allowGuests => all; otherwise only items without 'permission'/'roles'.
  • Admin: all (if config admin_roles matches).
  • User: checks 'permission' (can) and 'roles' (hasAnyRole).

Parameters

array $items

Normalized items.

Return Value

array

Filtered items.

at line 282
protected array stripPermissions(array $items)

Remove 'permission' key before sending to client.

Parameters

array $items

Filtered items.

Return Value

array

Items safe for public exposure.