class CommandPalette extends BeartropyComponent

CommandPalette component.

A searchable command palette for navigation and actions. Supports loading items from an array or a JSON file. Includes permission filtering via Spatie Permissions if available.

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{0: array, 1: array, 2: bool, 3: 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{__bt_wireModel: string|null, __bt_finalError: string|null, __bt_hasError: bool}
getErrorState(string|null $error = null, ComponentAttributeBag|null $attributes = null, MessageBag|null $errors = null)

Retrieve the error state for a given attribute or context.

__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.

array{0: bool, 1: string|null, 2: bool, 3: string|null}
getWireModelState(ComponentAttributeBag|null $attributes = null)

Analyze wire:model attributes to determine binding state.

array<string,mixed>
getComponentSizePreset(string|null $componentName = null, ComponentAttributeBag|null $attributes = null)

Get the size preset configuration.

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

Resolve the size preset for the component.

array<string,mixed>
getColorPreset(string $component, string|null $color = null, string|null $variant = null)

Resolve the color preset configuration.

View|Closure|string
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 22
array{0: array, 1: array, 2: bool, 3: 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{0: array, 1: array, 2: bool, 3: array}

[colorPreset, sizePreset, shouldFill, presetNames]

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

No description

Parameters

string $componentName

Return Value

array

in HasPresets at line 75
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 100
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 118
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 149
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 193
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 258
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 303
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 313
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 326
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 344
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 21
array{__bt_wireModel: string|null, __bt_finalError: string|null, __bt_hasError: bool} getErrorState(string|null $error = null, ComponentAttributeBag|null $attributes = null, MessageBag|null $errors = null)

Retrieve the error state for a given attribute or context.

Parameters

string|null $error

Direct error message.

ComponentAttributeBag|null $attributes

Component attributes.

MessageBag|null $errors

Global errors.

Return Value

array{__bt_wireModel: string|null, __bt_finalError: string|null, __bt_hasError: bool}

at line 54
__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

in BeartropyComponent at line 65
array{0: bool, 1: string|null, 2: bool, 3: string|null} 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{0: bool, 1: string|null, 2: bool, 3: string|null}

[hasWireModel, wireModelValue, hasDotNotation, parsedDotNotationValue]

in BeartropyComponent at line 92
array<string,mixed> getComponentSizePreset(string|null $componentName = null, ComponentAttributeBag|null $attributes = null)

Get the size preset configuration.

Legacy method for size resolution. Prioritizes size property, then magic attributes.

Parameters

string|null $componentName UNUSED.
ComponentAttributeBag|null $attributes

Component attributes to check for magic props.

Return Value

array<string,mixed>

The size configuration array.

in BeartropyComponent at line 133
array<string,mixed> getSizePreset(string|null $componentName = null, ComponentAttributeBag|array|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, optionally).

ComponentAttributeBag|array|null $attributes

Attributes array or bag.

string $defaultSize

Default size key (default: 'md').

Return Value

array<string,mixed>

The resolved size preset configuration.

in BeartropyComponent at line 167
array<string,mixed> getColorPreset(string $component, string|null $color = null, string|null $variant = null)

Resolve the color preset configuration.

Handles color resolution based on component config, variants, and defaults.

Parameters

string $component

Component key in configuration (e.g., 'button').

string|null $color

Explicit color name.

string|null $variant

Variant name (e.g., 'solid', 'outline').

Return Value

array<string,mixed>

The color configuration/classes.

at line 70
View|Closure|string 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|Closure|string

at line 94
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 127
protected array resolveItems()

Resolve items from array or JSON file.

Return Value

array

Exceptions

Exception

at line 149
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 172
protected array normalize(array $items)

Normalize items to ensure all keys exist.

Parameters

array $items

Raw items.

Return Value

array

Normalized items.

at line 198
protected array filterByPermissions(array $items)

Filter items by permissions (Spatie).

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

Parameters

array $items

Normalized items.

Return Value

array

Filtered items.

at line 264
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.