Основы
Для создания вкладок можно использовать компонент Tabs.
make(iterable $components = [])make(iterable $components = [])
Для добавления вкладок используется компонент Tab.
make(Closure|string|iterable $labelOrComponents = [],iterable $components = [],)make(Closure|string|iterable $labelOrComponents = [],iterable $components = [],)
use MoonShine\UI\Components\Tabs;use MoonShine\UI\Components\Tabs\Tab;use MoonShine\UI\Fields\Text;Tabs::make([Tab::make('Tab 1', [Text::make('Text 1')]),Tab::make('Tab 2', [Text::make('Text 2')]),]),
use MoonShine\UI\Components\Tabs;use MoonShine\UI\Components\Tabs\Tab;use MoonShine\UI\Fields\Text;Tabs::make([Tab::make('Tab 1', [Text::make('Text 1')]),Tab::make('Tab 2', [Text::make('Text 2')]),]),
<x-moonshine::tabs:items="['tab_1' => 'Tab 1','tab_2' => 'Tab 2','tab_3' => 'Tab 3',]"><x-slot:tab_1>Tab 1 content</x-slot><x-slot name="tab_2">Tab 2 content</x-slot><x-slot:tab_3>Tab 3 content</x-slot></x-moonshine::tabs><x-moonshine::tabs:items="['tab_1' => 'Tab 1','tab_2' => 'Tab 2','tab_3' => 'Tab 3',]"><x-slot:tab_1>Tab 1 content</x-slot><x-slot name="tab_2">Tab 2 content</x-slot><x-slot:tab_3>Tab 3 content</x-slot></x-moonshine::tabs>
Используйте snake_case для наименования ключа tab.
Активная вкладка
Вы можете указать активную вкладку по умолчанию, через метод active().
Tabs::make([Tab::make('Tab 1', [Text::make('Text 1')]),Tab::make('Tab 2', [Text::make('Text 2')])->active(),]),// ConditionTabs::make([Tab::make('Tab 1', [Text::make('Text 1')])->active(session()->has('key')),Tab::make('Tab 2', [Text::make('Text 2')])->active(!session()->has('key')),]),Tabs::make([Tab::make('Tab 1', [Text::make('Text 1')]),Tab::make('Tab 2', [Text::make('Text 2')])->active(),]),// ConditionTabs::make([Tab::make('Tab 1', [Text::make('Text 1')])->active(session()->has('key')),Tab::make('Tab 2', [Text::make('Text 2')])->active(!session()->has('key')),]),
<x-moonshine::tabs:items="['tab_1' => 'Tab 1','tab_2' => 'Tab 2','tab_3' => 'Tab 3',]"active="tab_2"><x-slot:tab_1>Tab 1 content</x-slot><x-slot name="tab_2">Tab 2 content</x-slot><x-slot:tab_3>Tab 3 content</x-slot></x-moonshine::tabs><x-moonshine::tabs:items="['tab_1' => 'Tab 1','tab_2' => 'Tab 2','tab_3' => 'Tab 3',]"active="tab_2"><x-slot:tab_1>Tab 1 content</x-slot><x-slot name="tab_2">Tab 2 content</x-slot><x-slot:tab_3>Tab 3 content</x-slot></x-moonshine::tabs>
Вертикальный режим
Tabs::make([// ..])->vertical(),Tabs::make([// ..])->vertical(),
<x-moonshine::tabs :isVertical="true":items="['tab_1' => 'Tab 1','tab_2' => 'Tab 2','tab_3' => 'Tab 3',]"><x-slot:tab_1>Tab 1 content</x-slot><x-slot name="tab_2">Tab 2 content</x-slot><x-slot:tab_3>Tab 3 content</x-slot></x-moonshine::tabs><x-moonshine::tabs :isVertical="true":items="['tab_1' => 'Tab 1','tab_2' => 'Tab 2','tab_3' => 'Tab 3',]"><x-slot:tab_1>Tab 1 content</x-slot><x-slot name="tab_2">Tab 2 content</x-slot><x-slot:tab_3>Tab 3 content</x-slot></x-moonshine::tabs>
Атрибуты для заголовка
Для контента вкладок вы можете указывать HTML-атрибуты через метод customAttributes(),
но если требуются атрибуты для заголовка, то воспользуйтесь методом labelAttributes().
Tabs::make([Tabs\Tab::make([// ..])->labelAttributes(['x-show' => '!flag'])]),Tabs::make([Tabs\Tab::make([// ..])->labelAttributes(['x-show' => '!flag'])]),