Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
new-component
developermithu/tallcraftui
claude-code
laravel
Ui Components
tailwindcss
blade components
livewire
alpinejs
livewire ui components
tallstackui
blade ui components
livewire packages
tallcraftui
tallstack ui components
laravel blade ui components
livewire ui library
laravel ui library
livewire 4

Add a new TallCraftUI Blade component end-to-end (class with inline template, color/size traits, config defaults, provider registration, docs reminder). Use when creating a new component or variant family.

Install
php artisan boost:add-skill developermithu/tallcraftui

Save this content to: .claude/skills/new-component/SKILL.md

Add the component named in `$ARGUMENTS` (kebab-case, e.g. `chip`). Use `src/View/Components/Badge.php` and its traits as the reference implementation.

1. **Class** — `src/View/Components/<StudlyName>.php` (or a subfolder like `Card/` for compound components), extending `Illuminate\View\Component`.
   - Constructor props for real data (`label`, `icon`, `iconLeft`, `iconRight`, …). Variants are NOT props — they're boolean attributes.
   - `render()` returns an inline nowdoc `<<<'HTML' ... HTML;` template. No Blade view files.
   - Root element: `$attributes->withoutTwMergeClasses()->except($colorAttributes)->twMerge([...base, $getSizeClasses(), $getColorClasses(), $roundedClass()])`.
   - Sub-elements: `$attributes->twMergeFor('icon', ...)`.
   - Nest other components via `tc-` aliases (`<x-tc-icon>` etc.).
   - Labels rendered as `{{ $label ? __($label) : $slot }}`.

2. **Traits** (only if the component has variants):
   - `src/Traits/Colors/Has<Name>Colors.php` — `use HasColorAttributes;`, `match (true)` on `$this->attributes->get('<color>')`. Every color class needs a `dark:` variant; default to `primary`.
   - `src/Traits/Sizes/Has<Name>Sizes.php` — same pattern for `xs`/`sm`/`md`/`lg`/`xl`.
   - Keep all Tailwind class strings literal (Tailwind scans these PHP files).

3. **Config defaults** — add `'<name>' => [...]` to `config/tallcraftui.php` using Enum `->value`s from `src/Enums/`, and read them through the matching helper in `src/Helpers/` (e.g. `BorderRadiusHelper::getRoundedClass('<name>', $this->attributes)`).

4. **Register** — import the class and add `'<name>' => <Class>::class` to the `$components` map in `src/TallCraftUiServiceProvider.php`. If other components will nest it, also add `Blade::component('tc-<name>', <Class>::class);`.

5. **Format** — `vendor/bin/pint` on the new/changed files only.

6. **Hand-off** — give the user a Blade snippet exercising the default, a couple of color/size variants, `dark` mode, and a custom `class`, to try in their local Herd app. Remind them to add a docs page in the separate docs repo.

Add the component named in $ARGUMENTS (kebab-case, e.g. chip). Use src/View/Components/Badge.php and its traits as the reference implementation.

  1. Class — src/View/Components/<StudlyName>.php (or a subfolder like Card/ for compound components), extending Illuminate\View\Component.

    • Constructor props for real data (label, icon, iconLeft, iconRight, …). Variants are NOT props — they're boolean attributes.
    • render() returns an inline nowdoc <<<'HTML' ... HTML; template. No Blade view files.
    • Root element: $attributes->withoutTwMergeClasses()->except($colorAttributes)->twMerge([...base, $getSizeClasses(), $getColorClasses(), $roundedClass()]).
    • Sub-elements: $attributes->twMergeFor('icon', ...).
    • Nest other components via tc- aliases (<x-tc-icon> etc.).
    • Labels rendered as {{ $label ? __($label) : $slot }}.
  2. Traits (only if the component has variants):

    • src/Traits/Colors/Has<Name>Colors.php — use HasColorAttributes;, match (true) on $this->attributes->get('<color>'). Every color class needs a dark: variant; default to primary.
    • src/Traits/Sizes/Has<Name>Sizes.php — same pattern for xs/sm/md/lg/xl.
    • Keep all Tailwind class strings literal (Tailwind scans these PHP files).
  3. Config defaults — add '<name>' => [...] to config/tallcraftui.php using Enum ->values from src/Enums/, and read them through the matching helper in src/Helpers/ (e.g. BorderRadiusHelper::getRoundedClass('<name>', $this->attributes)).

  4. Register — import the class and add '<name>' => <Class>::class to the $components map in src/TallCraftUiServiceProvider.php. If other components will nest it, also add Blade::component('tc-<name>', <Class>::class);.

  5. Format — vendor/bin/pint on the new/changed files only.

  6. Hand-off — give the user a Blade snippet exercising the default, a couple of color/size variants, dark mode, and a custom class, to try in their local Herd app. Remind them to add a docs page in the separate docs repo.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
diephp/sequences
users-au/socialite-provider
twidpay/twid-logger
mrnewport/laravel-plaid
mrnewport/laravel-repo
mrnewport/laravel-docsign
mrnewport/laravel-stow
mrnewport/laravel-flow
mrnewport/laravel-priceable
mrnewport/laravel-nestedterms
fredmeng/laravel-apidoc-generator
itstructure/laravel-multilingual-tools
pdustdar/elasticsearch
markupai/php-sdk
rlacerda83/lumem-microservice-shipment
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle