components([ Schemas\Components\Section::make(__('Denumire')) ->columns(3) ->schema([ Forms\Components\TextInput::make('name_ro') ->label(__('Română (RO)')) ->required() ->maxLength(80) ->live(onBlur: true) ->afterStateUpdated(function ($state, callable $set, $get) { // Auto-fill canonical name from name_ro if (! $get('name')) { $set('name', $state); } }), Forms\Components\TextInput::make('name_ru') ->label(__('Rusă (RU)')) ->maxLength(80), Forms\Components\TextInput::make('name_en') ->label(__('Engleză (EN)')) ->maxLength(80), ]), Forms\Components\Hidden::make('name') ->dehydrateStateUsing(fn ($state, $get) => $state ?: $get('name_ro')), Forms\Components\TextInput::make('sort_order') ->label(__('Ordine afișare')) ->numeric() ->default(0), ]); } public static function table(Table $table): Table { return $table ->columns([ Tables\Columns\TextColumn::make('sort_order') ->label('#') ->sortable() ->alignRight() ->width(50), Tables\Columns\TextColumn::make('name_ro') ->label('RO') ->searchable() ->sortable(), Tables\Columns\TextColumn::make('name_ru') ->label('RU') ->placeholder('—'), Tables\Columns\TextColumn::make('name_en') ->label('EN') ->placeholder('—'), ]) ->defaultSort('sort_order') ->reorderable('sort_order') ->actions([ Actions\EditAction::make(), Actions\DeleteAction::make(), ]) ->bulkActions([]); } public static function getPages(): array { return [ 'index' => Pages\ListLaborCategories::route('/'), 'create' => Pages\CreateLaborCategory::route('/create'), 'edit' => Pages\EditLaborCategory::route('/{record}/edit'), ]; } }