### Install Filament Pinpoint via Composer Source: https://github.com/fahiem152/filament-pinpoint/blob/main/README.md Install the package using Composer. This is the first step to integrate the component into your Laravel project. ```bash composer require fahiem/filament-pinpoint ``` -------------------------------- ### Full Pinpoint Configuration Example Source: https://github.com/fahiem152/filament-pinpoint/blob/main/README.md Configure the Pinpoint component with all available options, including default location, zoom, height, and fields for latitude, longitude, address, and more. Use this for comprehensive location input forms. ```php use Fahiem\FilamentPinpoint\Pinpoint; Pinpoint::make('location') ->label('Business Location') ->defaultLocation(-6.200000, 106.816666) // Jakarta ->defaultZoom(15) ->height(400) ->draggable() ->searchable() ->latField('lat') ->lngField('lng') ->addressField('address') // Auto-fill address field ->shortAddressField('short_address') // Auto-fill short address field (exclude province, city, district, village, and postal code) ->provinceField('province') // Auto-fill province field ->cityField('city') // Auto-fill city/county field ->districtField('district') // Auto-fill district field ->villageField('village') // Auto-fill village/district field ->postalCodeField('postal_code') // Auto-fill postal/zip code field ->countryField('country') // Auto-fill country field ->streetField('street') // Auto-fill street field ->streetNumberField('street_number') // Auto-fill street number field ->columnSpanFull() ``` -------------------------------- ### Add New Language Translations Source: https://github.com/fahiem152/filament-pinpoint/blob/main/README.md Example of creating a new language file for custom translations. Place this file in `lang/vendor/filament-pinpoint/{locale}/pinpoint.php` to add support for a new locale. ```php 'Your translation...', 'use_my_location' => 'Your translation...', 'instructions' => 'Your translation...', 'loading_map' => 'Your translation...', ]; ``` -------------------------------- ### Indonesian Translation File Source: https://context7.com/fahiem152/filament-pinpoint/llms.txt Example of an Indonesian translation file for Filament Pinpoint. Add or modify language files to support different locales. ```php // lang/vendor/filament-pinpoint/id/pinpoint.php (Indonesian) return [ 'search' => 'Cari lokasi...', 'use_my_location' => 'Gunakan lokasi saya', 'instructions' => 'Klik pada peta atau seret penanda untuk mengatur lokasi. Gunakan kotak pencarian untuk menemukan alamat.', 'radius_instructions' => 'Seret tepi lingkaran untuk menyesuaikan radius.', 'loading_map' => 'Memuat peta...', ]; ``` -------------------------------- ### Filament Form Usage with Leaflet Provider Source: https://github.com/fahiem152/filament-pinpoint/blob/main/README.md Configure the Pinpoint component to use the 'leaflet' provider per field instance. This example also enables address field, draggable marker, and search functionality. ```php Pinpoint::make('location') ->provider('leaflet') ->latField('lat') ->lngField('lng') ->addressField('address') ->draggable() ->searchable() ``` -------------------------------- ### Configure Environment Variables Source: https://context7.com/fahiem152/filament-pinpoint/llms.txt Set up the required API keys and provider settings in your .env file. ```php // Publish config file (optional) // php artisan vendor:publish --tag="filament-pinpoint-config" // .env configuration for Google Maps provider (default) GOOGLE_MAPS_API_KEY=your_api_key_here GOOGLE_MAPS_DEFAULT_LAT=-6.200000 GOOGLE_MAPS_DEFAULT_LNG=106.816666 GOOGLE_MAPS_DEFAULT_ZOOM=15 GOOGLE_MAPS_DEFAULT_HEIGHT=500 // .env configuration for Leaflet provider (free, no API key) PINPOINT_PROVIDER=leaflet LEAFLET_TILE_URL=https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png LEAFLET_TILE_URL_DARK=https://{s}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}{r}.png NOMINATIM_URL=https://nominatim.openstreetmap.org ``` -------------------------------- ### Publish Configuration File Source: https://github.com/fahiem152/filament-pinpoint/blob/main/README.md Publish the Filament Pinpoint configuration file to your project's config directory using the Artisan command. ```bash php artisan vendor:publish --tag="filament-pinpoint-config" ``` -------------------------------- ### Implement Basic Location Picker Source: https://context7.com/fahiem152/filament-pinpoint/llms.txt Add an interactive map field to a Filament form schema. ```php use Fahiem\FilamentPinpoint\Pinpoint; use Filament\Forms\Components\TextInput; use Filament\Forms\Form; public static function form(Form $form): Form { return $form ->schema([ Pinpoint::make('location') ->label('Location') ->latField('lat') ->lngField('lng') ->draggable() ->searchable() ->columnSpanFull(), TextInput::make('lat') ->label('Latitude') ->readOnly(), TextInput::make('lng') ->label('Longitude') ->readOnly(), ]); } ``` -------------------------------- ### Configure Custom Marker Icons and Info Windows Source: https://github.com/fahiem152/filament-pinpoint/blob/main/README.md Use the pins method to define multiple map markers with custom icons or HTML-formatted info windows. ```php PinpointEntry::make('locations') ->pins([ [ 'lat' => -6.200000, 'lng' => 106.816666, 'label' => 'Main Office', 'icon' => 'https://example.com/custom-marker.png', // Custom icon URL ], [ 'lat' => -6.914744, 'lng' => 107.609810, 'label' => 'Warehouse', 'info' => '
Warehouse A
Open 24/7
', // Custom HTML ], ]) ->columnSpanFull() ``` -------------------------------- ### Configure PinpointEntry with Custom Icons and HTML Source: https://context7.com/fahiem152/filament-pinpoint/llms.txt Use this to define map locations with custom marker icons and rich HTML info windows. The 'info' property overrides the default label in the info window popup. ```php use Fahiem\FilamentPinpoint\PinpointEntry; PinpointEntry::make('locations') ->label('Store Locations') ->pins([ [ 'lat' => -6.200000, 'lng' => 106.816666, 'label' => 'Main Store', 'icon' => 'https://example.com/markers/store-icon.png', // Custom marker icon URL ], [ 'lat' => -6.914744, 'lng' => 107.609810, 'label' => 'Warehouse', 'info' => '
Warehouse A
Open 24/7
Call: +62 123 456 7890
', // Custom HTML info window content (overrides label) ], [ 'lat' => -7.250445, 'lng' => 112.768845, 'label' => 'Distribution Center', 'color' => 'orange', 'info' => '

Distribution Center

Handles all East Java shipments

', ], ]) ->fitBounds(true) ->defaultZoom(10) ->height(450) ->columnSpanFull() ``` -------------------------------- ### Enable Radius Support Source: https://context7.com/fahiem152/filament-pinpoint/llms.txt Configure a radius field to allow users to define a service area by dragging the edge of a circle on the map. ```php use Fahiem ilamentPinpoint Pinpoint; use Filament Forms Components TextInput; public static function form(Form $form): Form { return $form ->schema([ Pinpoint::make('location') ->label('Service Area') ->latField('lat') ->lngField('lng') ->radiusField('radius') // Database column for radius (in meters) ->defaultRadius(500) // Default 500 meters ->draggable() ->searchable() ->columnSpanFull(), TextInput::make('lat')->label('Latitude')->readOnly(), TextInput::make('lng')->label('Longitude')->readOnly(), TextInput::make('radius') ->label('Radius (meters)') ->readOnly() ->helperText('Drag circle edge to resize'), ]); } ``` -------------------------------- ### Configure Google Maps API Key Source: https://github.com/fahiem152/filament-pinpoint/blob/main/README.md Provide your Google Maps API key in the .env file if you are using the 'google' provider. Ensure the necessary Maps JavaScript API, Places API, and Geocoding API are enabled. ```env GOOGLE_MAPS_API_KEY=your_api_key_here ``` -------------------------------- ### Publish Filament Pinpoint Translations Source: https://github.com/fahiem152/filament-pinpoint/blob/main/README.md Command to publish the package's translation files to your application's lang directory. This allows for customization of the package's language strings. ```bash php artisan vendor:publish --tag="filament-pinpoint-translations" ``` -------------------------------- ### Set Default Map Values via Environment Variables Source: https://github.com/fahiem152/filament-pinpoint/blob/main/README.md Configure default latitude, longitude, zoom level, and map height for Google Maps using environment variables. ```env GOOGLE_MAPS_DEFAULT_LAT=-6.200000 GOOGLE_MAPS_DEFAULT_LNG=106.816666 GOOGLE_MAPS_DEFAULT_ZOOM=15 GOOGLE_MAPS_DEFAULT_HEIGHT=500 ``` -------------------------------- ### Configure Leaflet Optional Settings Source: https://github.com/fahiem152/filament-pinpoint/blob/main/README.md Optionally customize Leaflet tile server URLs for standard and dark modes, and set a custom Nominatim base URL for search and reverse geocoding. ```env LEAFLET_TILE_URL=https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png # Optional dark mode tile URL (e.g. CartoDB Dark) LEAFLET_TILE_URL_DARK=https://{s}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}{r}.png # Nominatim base URL for search & reverse geocoding (default: nominatim.openstreetmap.org) NOMINATIM_URL=https://nominatim.openstreetmap.org ``` -------------------------------- ### Displaying Multiple Markers with PinpointEntry::pins() Source: https://context7.com/fahiem152/filament-pinpoint/llms.txt Utilize PinpointEntry::make()->pins() to display multiple locations on a single map within Filament infolists. This method allows for customizable markers, colors, icons, and info windows. ```php use Fahiem\ FilamentPinpoint\ PinpointEntry; use Filament\ Infolists\ Infolist; public static function infolist(Infolist $infolist): Infolist { return $infolist ->schema([ PinpointEntry::make('branches') ->label('All Branch Locations') ->pins([ [ 'lat' => -6.200000, 'lng' => 106.816666, 'label' => 'Jakarta Head Office', 'color' => 'red', // Predefined colors: red, blue, green, yellow, purple, pink, orange, ltblue ], [ 'lat' => -6.914744, 'lng' => 107.609810, 'label' => 'Bandung Branch', 'color' => 'blue', ], [ 'lat' => -7.797068, 'lng' => 110.370529, 'label' => 'Yogyakarta Branch', 'color' => 'green', ], [ 'lat' => -7.250445, 'lng' => 112.768845, 'label' => 'Surabaya Branch', 'color' => 'purple', ], ]) ->fitBounds() // Auto-zoom to show all markers ->height(500) ->columnSpanFull(), ]); } // Dynamic pins from database records PinpointEntry::make('locations') ->pins(fn ($record) => $record->branches->map(fn ($branch) => [ 'lat' => $branch->latitude, 'lng' => $branch->longitude, 'label' => $branch->name, 'color' => $branch->is_main ? 'red' : 'blue', ])->toArray()) ->fitBounds() ->columnSpanFull() ``` -------------------------------- ### Filament Pinpoint Configuration File Source: https://context7.com/fahiem152/filament-pinpoint/llms.txt Customize map provider, API keys, Leaflet settings, and default map parameters by modifying this configuration file. Environment variables can override these settings. ```php // config/filament-pinpoint.php return [ /* |-------------------------------------------------------------------------- | Map Provider |-------------------------------------------------------------------------- | 'google' - Google Maps (requires API key, most accurate) | 'leaflet' - OpenStreetMap + Nominatim (free, no API key) */ 'provider' => env('PINPOINT_PROVIDER', 'google'), /* |-------------------------------------------------------------------------- | Google Maps API Key |-------------------------------------------------------------------------- | Required APIs: Maps JavaScript API, Places API, Geocoding API */ 'api_key' => env('GOOGLE_MAPS_API_KEY'), /* |-------------------------------------------------------------------------- | Leaflet Settings |-------------------------------------------------------------------------- */ 'leaflet' => [ 'tile_url' => env('LEAFLET_TILE_URL', 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png'), 'tile_url_dark' => env('LEAFLET_TILE_URL_DARK', null), // Dark mode tiles 'tile_attribution' => env('LEAFLET_TILE_ATTRIBUTION', '© OpenStreetMap contributors'), 'nominatim_url' => env('NOMINATIM_URL', 'https://nominatim.openstreetmap.org'), ], /* |-------------------------------------------------------------------------- | Default Map Settings |-------------------------------------------------------------------------- */ 'default' => [ 'lat' => env('GOOGLE_MAPS_DEFAULT_LAT', -0.5050), 'lng' => env('GOOGLE_MAPS_DEFAULT_LNG', 117.1500), 'zoom' => env('GOOGLE_MAPS_DEFAULT_ZOOM', 13), 'height' => env('GOOGLE_MAPS_DEFAULT_HEIGHT', 400), 'radius' => env('GOOGLE_MAPS_DEFAULT_RADIUS', 500), ], ]; ``` -------------------------------- ### Basic Filament Form Usage (Google Maps) Source: https://github.com/fahiem152/filament-pinpoint/blob/main/README.md Integrate the Pinpoint component into a Filament form, specifying the 'location' field and linking it to 'lat' and 'lng' text input fields. ```php use Fahiem\FilamentPinpoint\Pinpoint; public static function form(Form $form): Form { return $form ->schema([ Pinpoint::make('location') ->label('Location') ->latField('lat') ->lngField('lng'), TextInput::make('lat') ->label('Latitude') ->readOnly(), TextInput::make('lng') ->label('Longitude') ->readOnly(), ]); } ``` -------------------------------- ### PinpointEntry Infolist Configuration Source: https://github.com/fahiem152/filament-pinpoint/blob/main/README.md Methods and pin customization options for the PinpointEntry infolist component, used for displaying read-only maps with markers. ```APIDOC ## PinpointEntry Infolist Methods ### Description Configure the read-only map display and define markers for the PinpointEntry component. ### Pin Options - **lat** (float) - Required - Latitude coordinate - **lng** (float) - Required - Longitude coordinate - **label** (string) - Optional - Marker title - **color** (string) - Optional - Predefined color (red, blue, green, etc.) - **icon** (string) - Optional - Custom marker icon URL - **info** (string) - Optional - Custom HTML content for info window ### Available Methods - **pins(array $pins)** - Set array of multiple markers. - **fitBounds(bool $fit)** - Auto-zoom map to show all markers. - **defaultLocation(float $lat, float $lng)** - Set default center location. - **height(int $height)** - Set map height in pixels. ``` -------------------------------- ### English Translation File Source: https://context7.com/fahiem152/filament-pinpoint/llms.txt Default English translations for Filament Pinpoint UI elements. Customize these strings for your application's needs. ```php // lang/vendor/filament-pinpoint/en/pinpoint.php return [ 'search' => 'Search for a location...', 'use_my_location' => 'Use my location', 'instructions' => 'Click on the map or drag the marker to set the location. Use the search box to find an address.', 'radius_instructions' => 'Drag the circle edges to adjust the radius.', 'loading_map' => 'Loading map...', ]; ``` -------------------------------- ### Define Database Migration for Locations Source: https://context7.com/fahiem152/filament-pinpoint/llms.txt Create the necessary table schema to store latitude, longitude, and various address components for location auto-filling. ```php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { public function up(): void { Schema::create('locations', function (Blueprint $table) { $table->id(); $table->string('name'); // Core location fields $table->decimal('lat', 10, 7)->nullable(); $table->decimal('lng', 10, 7)->nullable(); $table->integer('radius')->nullable(); // Radius in meters // Address auto-fill fields $table->text('address')->nullable(); // Full formatted address $table->text('short_address')->nullable(); // Premise + route + street number $table->string('street')->nullable(); // Street name $table->string('street_number')->nullable(); // Street number $table->string('province')->nullable(); // State/province $table->string('city')->nullable(); // City/county $table->string('district')->nullable(); // District $table->string('village')->nullable(); // Village/sub-district $table->string('postal_code')->nullable(); // Postal/ZIP code $table->string('country')->nullable(); // Country name $table->timestamps(); }); } public function down(): void { Schema::dropIfExists('locations'); } }; ``` -------------------------------- ### Configure Pinpoint with Reverse Geocoding Source: https://context7.com/fahiem152/filament-pinpoint/llms.txt Use this configuration to map various address components to specific form fields for automatic population via reverse geocoding. ```php use Fahiem ilamentPinpoint Pinpoint; use Filament Forms Components TextInput; use Filament Forms Components Grid; public static function form(Form $form): Form { return $form ->schema([ Pinpoint::make('location') ->label('Business Location') ->defaultLocation(-6.200000, 106.816666) // Jakarta coordinates ->defaultZoom(15) ->height(400) ->draggable() ->searchable() ->latField('lat') ->lngField('lng') ->addressField('address') // Full address ->shortAddressField('short_address') // Premise + route + street number ->streetField('street') // Street name ->streetNumberField('street_number') // Street number ->provinceField('province') // State/province (administrative_area_level_1) ->cityField('city') // City/county (administrative_area_level_2) ->districtField('district') // District (administrative_area_level_3) ->villageField('village') // Village/sub-district ->postalCodeField('postal_code') // Postal/ZIP code ->countryField('country') // Country name ->columnSpanFull(), Grid::make(2)->schema([ TextInput::make('lat')->label('Latitude')->readOnly(), TextInput::make('lng')->label('Longitude')->readOnly(), TextInput::make('address')->label('Address')->readOnly()->columnSpanFull(), TextInput::make('city')->label('City')->readOnly(), TextInput::make('province')->label('Province')->readOnly(), TextInput::make('postal_code')->label('Postal Code')->readOnly(), TextInput::make('country')->label('Country')->readOnly(), ]), ]); } ``` -------------------------------- ### Customize Map Display Options Source: https://github.com/fahiem152/filament-pinpoint/blob/main/README.md Adjust map appearance and behavior using methods like defaultLocation, defaultZoom, and height. ```php PinpointEntry::make('location') ->label('Business Location') ->defaultLocation(-6.200000, 106.816666) // Jakarta ->defaultZoom(15) ->height(400) ->latField('lat') ->lngField('lng') ->fitBounds(false) // Disable auto-fit bounds ->columnSpanFull() ``` -------------------------------- ### Filament Infolist Usage with Leaflet Provider Source: https://github.com/fahiem152/filament-pinpoint/blob/main/README.md Display the Pinpoint location data in a Filament infolist using the PinpointEntry component, configured to use the 'leaflet' provider. ```php PinpointEntry::make('location') ->provider('leaflet') ->latField('lat') ->lngField('lng') ->columnSpanFull() ``` -------------------------------- ### Configure Pinpoint Provider in .env Source: https://github.com/fahiem152/filament-pinpoint/blob/main/README.md Set the default map provider to 'leaflet' for using OpenStreetMap tiles without an API key. This can be overridden per field instance. ```env PINPOINT_PROVIDER=leaflet ``` -------------------------------- ### Switch Map Provider Source: https://context7.com/fahiem152/filament-pinpoint/llms.txt Override the default map provider to use either Leaflet or Google Maps on a per-field basis. ```php use Fahiem\FilamentPinpoint\Pinpoint; // Use Leaflet (free, no API key required) Pinpoint::make('location') ->provider('leaflet') ->latField('lat') ->lngField('lng') ->addressField('address') ->draggable() ->searchable() ->columnSpanFull() // Use Google Maps (requires API key) Pinpoint::make('location') ->provider('google') ->latField('lat') ->lngField('lng') ->searchable() ->columnSpanFull() ``` -------------------------------- ### Create Locations Table Migration Source: https://github.com/fahiem152/filament-pinpoint/blob/main/README.md Defines a database migration for creating a 'locations' table with columns for latitude, longitude, and address details. Ensure your table includes these columns for location data. ```php Schema::create('locations', function (Blueprint $table) { $table->id(); $table->string('name'); $table->decimal('lat', 10, 7)->nullable(); $table->decimal('lng', 10, 7)->nullable(); $table->text('address')->nullable(); $table->text('short_address')->nullable(); $table->string('province')->nullable(); $table->string('city')->nullable(); $table->string('district')->nullable(); $table->string('village')->nullable(); $table->string('postal_code')->nullable(); $table->string('country')->nullable(); $table->string('street')->nullable(); $table->string('street_number')->nullable(); $table->timestamps(); }); ``` -------------------------------- ### Displaying a Single Read-Only Location with PinpointEntry Source: https://context7.com/fahiem152/filament-pinpoint/llms.txt Use PinpointEntry::make() to display a single location on a read-only map within Filament infolists. This is useful for view modes where users only need to see a location. ```php use Fahiem\ FilamentPinpoint\ PinpointEntry; use Filament\ Infolists\ Components\ TextEntry; use Filament\ Infolists\ Infolist; public static function infolist(Infolist $infolist): Infolist { return $infolist ->schema([ PinpointEntry::make('location') ->label('Business Location') ->latField('lat') ->lngField('lng') ->defaultZoom(15) ->height(400) ->columnSpanFull(), TextEntry::make('address') ->label('Address'), TextEntry::make('city') ->label('City'), ]); } // Using Leaflet provider for infolist PinpointEntry::make('location') ->provider('leaflet') ->latField('lat') ->lngField('lng') ->height(350) ->columnSpanFull() ``` -------------------------------- ### PinpointEntry for Read-Only Display (Multiple Markers) Source: https://github.com/fahiem152/filament-pinpoint/blob/main/README.md Display multiple locations on a single map using `PinpointEntry` with the `pins` option. This is useful for showing a collection of related locations in read-only views. Use `fitBounds()` to automatically adjust the map to show all markers. ```php PinpointEntry::make('branches') ->label('Branch Locations') ->pins([ [ 'lat' => -6.200000, 'lng' => 106.816666, 'label' => 'Jakarta Office', 'color' => 'red', ], [ 'lat' => -6.914744, 'lng' => 107.609810, 'label' => 'Bandung Office', 'color' => 'blue', ], [ 'lat' => -7.797068, 'lng' => 110.370529, 'label' => 'Yogyakarta Office', 'color' => 'green', ], ]) ->fitBounds() // Auto-zoom to show all markers ->height(500) ->columnSpanFull() ``` -------------------------------- ### Override Provider Per Field Instance Source: https://github.com/fahiem152/filament-pinpoint/blob/main/README.md Demonstrates how to set the map provider to 'leaflet' directly on a specific Pinpoint field instance within the form schema. ```php Pinpoint::make('location')->provider('leaflet') ``` -------------------------------- ### PinpointEntry for Read-Only Display (Single Marker) Source: https://github.com/fahiem152/filament-pinpoint/blob/main/README.md Use `PinpointEntry` to display a read-only map with a single marker in Filament Infolists. Configure the `latField` and `lngField` to specify the data source for the marker's coordinates. ```php use Fahiem\FilamentPinpoint\PinpointEntry; public static function infolist(Infolist $infolist): return $infolist ->schema([ PinpointEntry::make('location') ->label('Location') ->latField('lat') ->lngField('lng') ->columnSpanFull(), ]); ``` -------------------------------- ### Pinpoint Form Field Configuration Source: https://github.com/fahiem152/filament-pinpoint/blob/main/README.md Methods available for configuring the Pinpoint form field, including map providers, default locations, and address auto-fill field mapping. ```APIDOC ## Pinpoint Form Field Methods ### Description Configure the behavior and data binding for the Pinpoint form field. ### Available Methods - **provider(string $provider)** - Set map provider: 'google' or 'leaflet'. - **defaultLocation(float $lat, float $lng)** - Set default center location. - **defaultZoom(int $zoom)** - Set default zoom level. - **height(int $height)** - Set map height in pixels. - **latField(string $field)** - Field name for latitude. - **lngField(string $field)** - Field name for longitude. - **addressField(string $field)** - Field name for auto-fill address. - **draggable(bool $draggable)** - Enable/disable marker dragging. - **searchable(bool $searchable)** - Enable/disable search box. ``` -------------------------------- ### Pinpoint with Radius Support Source: https://github.com/fahiem152/filament-pinpoint/blob/main/README.md Enable radius support for the Pinpoint component using `radiusField()`. This adds an interactive circle to the map for defining a radius, useful for location-based services. The radius value is saved in meters. ```php Pinpoint::make('location') ->radiusField('radius') // 'radius' is the column name in your database ->defaultRadius(500) // Default 500 meters ``` -------------------------------- ### Pinpoint Component within a Repeater Source: https://github.com/fahiem152/filament-pinpoint/blob/main/README.md Integrate the Pinpoint component into a Filament Repeater to manage multiple locations independently. Each repeater item will have its own map instance and associated fields for latitude, longitude, and address. ```php use Fahiem\FilamentPinpoint\Pinpoint; use Filament\Forms\Components\Repeater; use Filament\Forms\Components\TextInput; Repeater::make('branches') ->schema([ TextInput::make('branch_name') ->label('Branch Name') ->required(), Pinpoint::make('location') ->label('Location') ->latField('latitude') ->lngField('longitude') ->addressField('address') ->draggable() ->searchable() ->height(300), TextInput::make('latitude') ->label('Latitude') ->readOnly(), TextInput::make('longitude') ->label('Longitude') ->readOnly(), TextInput::make('address') ->label('Address') ->readOnly() ->columnSpanFull(), ]) ->columns(2) ->columnSpanFull() ``` -------------------------------- ### Disable Pinpoint Features Source: https://github.com/fahiem152/filament-pinpoint/blob/main/README.md Control the interactivity of the Pinpoint component by disabling features like marker dragging or the search box. Use `draggable(false)` to prevent marker movement and `searchable(false)` to hide the search input. ```php Pinpoint::make('location') ->draggable(false) // Disable marker dragging ->searchable(false) // Hide search box ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.