CommandPalette
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
compute component presets based on context.
No description
No description
No description
No description
No description
No description
No description
No description
No description
Retrieve the error state for a given attribute or context.
Create a new CommandPalette component instance.
Analyze wire:model attributes to determine binding state.
Get the size preset configuration.
Resolve the size preset for the component.
Resolve the color preset configuration.
Build cache key parts.
Resolve items from array or JSON file.
Read JSON file from storage.
Normalize items to ensure all keys exist.
Filter items by permissions (Spatie).
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.
in
HasPresets at line 64
protected array
loadPresets(string $componentName)
No description
in
HasPresets at line 75
protected array
loadComponentDefaults(string $componentName)
No description
in
HasPresets at line 88
protected bool
detectHasVariants(array $colors)
No description
in
HasPresets at line 100
protected array
computeSupports(array $sizes, array $colorsArray, array $defaults, array $magicProps)
No description
in
HasPresets at line 118
protected array
resolveSize(array $supports, array $sizes, array $defaults, array $magicProps)
No description
in
HasPresets at line 149
protected array
resolveVariant(array $supports, array $colorsArray, array $componentPresets, array $defaults, array $magicProps, bool $hasVariants)
No description
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
in
HasPresets at line 258
protected array
resolveFill(array $supports, array $attributes, array $defaults)
No description
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
in
HasPresets at line 313
protected void
syncInstanceProps(array $supports, string|null $size, string|null $variant, string|null $color)
No description
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
in
HasPresets at line 344
protected void
debugWarnings(array $supports, array $sizePreset, array $colorPreset, string $componentName, string|null $variant, string|null $color)
No description
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.
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.
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).
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.
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:
- Explicit
$this->size. - Magic attributes (e.g.,
<x-button sm />). - Default size.
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.
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.
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)
at line 127
protected array
resolveItems()
Resolve items from array or JSON file.
at line 149
protected array
readJsonFromStorage(string $path)
Read JSON file from storage.
at line 172
protected array
normalize(array $items)
Normalize items to ensure all keys exist.
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).
at line 264
protected array
stripPermissions(array $items)
Remove 'permission' key before sending to client.