@fleetbase/fleetops-engine 0.6.71 → 0.6.72
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/RELEASE.md +15 -18
- package/addon/components/admin/tracking-page-settings.hbs +56 -0
- package/addon/components/admin/tracking-page-settings.js +67 -0
- package/addon/components/device/form.hbs +2 -2
- package/addon/components/driver/details.hbs +1 -1
- package/addon/components/driver/form.hbs +1 -1
- package/addon/components/equipment/form.hbs +1 -1
- package/addon/components/layout/fleet-ops-sidebar.js +11 -3
- package/addon/components/maintenance/form.hbs +3 -3
- package/addon/components/map/google-live-map.js +2 -2
- package/addon/components/map/leaflet-live-map.js +45 -32
- package/addon/components/orchestrator/phase-builder.js +2 -1
- package/addon/components/orchestrator-workbench.hbs +7 -1
- package/addon/components/orchestrator-workbench.js +16 -2
- package/addon/components/order/form/route.hbs +1 -1
- package/addon/components/order/form/route.js +13 -1
- package/addon/components/service-rate/details.hbs +1 -1
- package/addon/components/service-rate/form.hbs +1 -1
- package/addon/components/tracking-page/full-view.hbs +276 -0
- package/addon/components/tracking-page/full-view.js +474 -0
- package/addon/components/tracking-page/locale-selector.js +30 -0
- package/addon/components/tracking-page/map.hbs +44 -0
- package/addon/components/tracking-page/map.js +328 -0
- package/addon/components/tracking-page/order-list.hbs +35 -0
- package/addon/components/tracking-page/public-view.hbs +60 -0
- package/addon/components/tracking-page/settings-preview.hbs +21 -0
- package/addon/components/tracking-page/settings-preview.js +23 -0
- package/addon/components/tracking-page/verify-panel.hbs +109 -0
- package/addon/components/tracking-page.hbs +142 -0
- package/addon/components/tracking-page.js +564 -0
- package/addon/components/trailer/form.hbs +2 -2
- package/addon/components/vehicle/form.hbs +3 -3
- package/addon/components/warranty/form.hbs +2 -2
- package/addon/components/widget/live-fleet.js +54 -6
- package/addon/components/widget/proof-of-delivery.hbs +49 -0
- package/addon/components/widget/proof-of-delivery.js +62 -0
- package/addon/components/work-order/form.hbs +3 -3
- package/addon/controllers/operations/orders/index/details.js +19 -3
- package/addon/controllers/operations/scheduler/index.js +45 -14
- package/addon/controllers/settings/index.js +6 -0
- package/addon/controllers/settings/map.js +75 -0
- package/addon/controllers/settings/orchestrator.js +8 -6
- package/addon/controllers/settings/tracking-page.js +212 -0
- package/addon/extension.js +65 -1
- package/addon/helpers/parcel-box-image.js +16 -0
- package/addon/routes/operations/orders/index/new.js +5 -4
- package/addon/routes/operations/scheduler/index.js +1 -1
- package/addon/routes/settings/tracking-page.js +31 -0
- package/addon/routes.js +1 -0
- package/addon/services/location.js +69 -21
- package/addon/services/map-settings.js +28 -0
- package/addon/services/order-allocation.js +1 -1
- package/addon/styles/fleetops-engine.css +1391 -0
- package/addon/templates/settings/map.hbs +46 -0
- package/addon/templates/settings/tracking-page.hbs +318 -0
- package/addon/utils/identity-cell-resource.js +2 -56
- package/addon/utils/map-default-view.js +132 -0
- package/addon/utils/placeholder-images.js +4 -69
- package/addon/utils/resource-descriptors/assets.js +2 -57
- package/addon/utils/resource-descriptors/helpers.js +23 -122
- package/addon/utils/resource-descriptors/operations.js +2 -61
- package/addon/utils/resource-descriptors/people.js +3 -142
- package/addon/utils/resource-descriptors/shared.js +18 -0
- package/addon/utils/tracking-live-source.js +123 -0
- package/addon/utils/tracking-page-theme.js +123 -0
- package/app/components/admin/tracking-page-settings.js +1 -0
- package/app/components/tracking-page/full-view.js +1 -0
- package/app/components/tracking-page/locale-selector.js +1 -0
- package/app/components/tracking-page/map.js +1 -0
- package/app/components/tracking-page/order-list.js +1 -0
- package/app/components/tracking-page/public-view.js +1 -0
- package/app/components/tracking-page/settings-preview.js +1 -0
- package/app/components/tracking-page/verify-panel.js +1 -0
- package/app/components/tracking-page.js +1 -0
- package/app/components/widget/proof-of-delivery.js +1 -0
- package/app/controllers/settings/tracking-page.js +1 -0
- package/app/helpers/parcel-box-image.js +1 -0
- package/app/routes/settings/tracking-page.js +1 -0
- package/app/templates/settings/tracking-page.js +1 -0
- package/app/utils/map-default-view.js +1 -0
- package/app/utils/tracking-live-source.js +1 -0
- package/app/utils/tracking-page-theme.js +1 -0
- package/composer.json +2 -2
- package/extension.json +1 -1
- package/package.json +4 -4
- package/scripts/pest-bootstrap.php +4 -0
- package/server/config/fleetops.php +4 -0
- package/server/migrations/2026_10_08_000001_create_tracking_sessions_tables.php +51 -0
- package/server/migrations/2026_10_10_000001_add_trashed_index_to_device_events.php +40 -0
- package/server/migrations/2026_10_10_000002_add_trashed_index_to_positions.php +40 -0
- package/server/migrations/2026_10_12_000001_add_deleted_at_to_tracking_sessions_tables.php +32 -0
- package/server/resources/views/labels/default.php +2 -2
- package/server/resources/views/labels/entity-label.php +2 -2
- package/server/resources/views/labels/waypoint-label.php +2 -2
- package/server/src/Auth/Schemas/FleetOps.php +5 -0
- package/server/src/Console/Commands/ProcessOperationalAlerts.php +1 -0
- package/server/src/Console/Commands/PruneTelematicsData.php +101 -26
- package/server/src/Events/OrderChanged.php +257 -0
- package/server/src/Events/OrderDriverUnassigned.php +68 -0
- package/server/src/Exceptions/OrderEditLockedException.php +32 -0
- package/server/src/Expansions/CompanyExpansion.php +3 -2
- package/server/src/Expansions/UserExpansion.php +12 -10
- package/server/src/Http/Controllers/Api/v1/CustomerController.php +108 -18
- package/server/src/Http/Controllers/Api/v1/DriverController.php +95 -10
- package/server/src/Http/Controllers/Api/v1/EntityController.php +66 -0
- package/server/src/Http/Controllers/Api/v1/FleetController.php +10 -4
- package/server/src/Http/Controllers/Api/v1/OrderController.php +139 -36
- package/server/src/Http/Controllers/Api/v1/PayloadController.php +76 -8
- package/server/src/Http/Controllers/Api/v1/PlaceController.php +3 -3
- package/server/src/Http/Controllers/Api/v1/TrackingNumberController.php +6 -32
- package/server/src/Http/Controllers/Api/v1/VehicleController.php +5 -0
- package/server/src/Http/Controllers/Internal/v1/ContactController.php +3 -0
- package/server/src/Http/Controllers/Internal/v1/DriverController.php +10 -0
- package/server/src/Http/Controllers/Internal/v1/FleetController.php +16 -2
- package/server/src/Http/Controllers/Internal/v1/InspectionSubmissionController.php +13 -8
- package/server/src/Http/Controllers/Internal/v1/IssueController.php +2 -0
- package/server/src/Http/Controllers/Internal/v1/MaintenanceController.php +4 -2
- package/server/src/Http/Controllers/Internal/v1/OrchestrationController.php +93 -11
- package/server/src/Http/Controllers/Internal/v1/OrderController.php +84 -24
- package/server/src/Http/Controllers/Internal/v1/PositionController.php +22 -0
- package/server/src/Http/Controllers/Internal/v1/ProofController.php +55 -4
- package/server/src/Http/Controllers/Internal/v1/SettingController.php +303 -10
- package/server/src/Http/Controllers/Internal/v1/TrailerController.php +1 -0
- package/server/src/Http/Controllers/Internal/v1/VehicleController.php +1 -0
- package/server/src/Http/Controllers/Public/TrackingController.php +518 -0
- package/server/src/Http/Filter/ContactFilter.php +1 -1
- package/server/src/Http/Filter/InspectionFormFilter.php +23 -0
- package/server/src/Http/Filter/InspectionSubmissionFilter.php +23 -0
- package/server/src/Http/Filter/MaintenanceFilter.php +23 -0
- package/server/src/Http/Filter/OrderFilter.php +39 -4
- package/server/src/Http/Filter/ProofFilter.php +18 -0
- package/server/src/Http/Filter/RouteFilter.php +18 -0
- package/server/src/Http/Filter/TelematicFilter.php +23 -0
- package/server/src/Http/Filter/WarrantyFilter.php +23 -0
- package/server/src/Http/Requests/CancelOrderRequest.php +2 -1
- package/server/src/Http/Resources/v1/Concerns/ResolvesPublicRelationFields.php +14 -1
- package/server/src/Http/Resources/v1/Index/Customer.php +18 -0
- package/server/src/Http/Resources/v1/Index/Order.php +11 -2
- package/server/src/Http/Resources/v1/PublicOrderTracking.php +153 -0
- package/server/src/Http/Resources/v1/TrackingNumber.php +8 -34
- package/server/src/Http/Resources/v1/Zone.php +31 -23
- package/server/src/Jobs/FinalizeApiOrderCreation.php +3 -1
- package/server/src/Jobs/ProcessAllocationJob.php +16 -6
- package/server/src/Jobs/PublishTrackingUpdate.php +50 -0
- package/server/src/Listeners/HandleGeofenceEntered.php +31 -15
- package/server/src/Listeners/HandleOrderCanceled.php +9 -1
- package/server/src/Listeners/HandleUserRemovedFromCompany.php +2 -1
- package/server/src/Listeners/PublishTrackingUpdates.php +27 -0
- package/server/src/Mail/CustomerCredentialsMail.php +4 -2
- package/server/src/Models/AssetConnection.php +3 -0
- package/server/src/Models/Contact.php +3 -0
- package/server/src/Models/Device.php +28 -0
- package/server/src/Models/DeviceEvent.php +7 -0
- package/server/src/Models/Driver.php +20 -7
- package/server/src/Models/Entity.php +12 -4
- package/server/src/Models/Fleet.php +11 -32
- package/server/src/Models/FleetDriver.php +3 -0
- package/server/src/Models/FleetVehicle.php +3 -0
- package/server/src/Models/FuelReport.php +5 -13
- package/server/src/Models/Issue.php +4 -16
- package/server/src/Models/Order.php +200 -9
- package/server/src/Models/Payload.php +227 -35
- package/server/src/Models/Place.php +7 -1
- package/server/src/Models/ServiceArea.php +7 -0
- package/server/src/Models/ServiceRate.php +7 -17
- package/server/src/Models/TrackingNumber.php +101 -2
- package/server/src/Models/TrackingSession.php +33 -0
- package/server/src/Models/TrackingSessionGrant.php +22 -0
- package/server/src/Models/TrackingStatus.php +6 -0
- package/server/src/Models/Vehicle.php +21 -2
- package/server/src/Models/Vendor.php +7 -0
- package/server/src/Models/Waypoint.php +13 -4
- package/server/src/Notifications/OrderAssigned.php +2 -1
- package/server/src/Notifications/OrderCanceled.php +7 -1
- package/server/src/Notifications/OrderChanged.php +87 -0
- package/server/src/Notifications/OrderCompleted.php +2 -1
- package/server/src/Notifications/OrderDispatchFailed.php +2 -1
- package/server/src/Notifications/OrderDispatched.php +2 -1
- package/server/src/Notifications/OrderFailed.php +2 -1
- package/server/src/Notifications/OrderUnassigned.php +66 -0
- package/server/src/Notifications/WaypointCompleted.php +2 -1
- package/server/src/Observers/CompanyUserObserver.php +8 -7
- package/server/src/Observers/DriverObserver.php +6 -1
- package/server/src/Observers/OrderObserver.php +141 -1
- package/server/src/Observers/TrackingNumberObserver.php +18 -6
- package/server/src/Observers/UserObserver.php +2 -1
- package/server/src/Observers/VehicleObserver.php +8 -3
- package/server/src/Orchestration/Engines/RouteSequencingEngine.php +21 -3
- package/server/src/Orchestration/Engines/VroomOrchestrationEngine.php +38 -8
- package/server/src/Orchestration/OrchestrationEngineRegistry.php +61 -1
- package/server/src/Orchestration/Support/OrchestratorSettings.php +61 -0
- package/server/src/Orchestration/Support/RouteMetrics.php +165 -0
- package/server/src/Providers/EventServiceProvider.php +11 -0
- package/server/src/Providers/FleetOpsServiceProvider.php +13 -0
- package/server/src/Support/ApiCacheThrottle.php +76 -0
- package/server/src/Support/LiveOrderQuery.php +3 -1
- package/server/src/Support/OrderEdit.php +365 -0
- package/server/src/Support/OrderEditPolicy.php +292 -0
- package/server/src/Support/ProfileAccountManager.php +54 -1
- package/server/src/Support/ResolvesOrderServiceStops.php +5 -0
- package/server/src/Support/SocketChannels.php +346 -0
- package/server/src/Support/Telematics/TelematicService.php +7 -2
- package/server/src/Support/Telematics/Telemetry/Inbox.php +8 -1
- package/server/src/Support/TrackingChannel.php +55 -0
- package/server/src/Support/TrackingCode.php +242 -0
- package/server/src/Support/TrackingPage/TrackingAccess.php +356 -0
- package/server/src/Support/TrackingPage/TrackingPageConfig.php +264 -0
- package/server/src/Support/TrackingPage/TrackingRecipient.php +111 -0
- package/server/src/Support/TrackingPage/TrackingResolver.php +201 -0
- package/server/src/Support/TrackingPage/TrackingTarget.php +40 -0
- package/server/src/Support/TrackingPage/TrackingView.php +543 -0
- package/server/src/Support/TrackingPublisher.php +261 -0
- package/server/src/Support/TrackingScope.php +182 -0
- package/server/src/Support/TrackingUpdate.php +402 -0
- package/server/src/Support/Utils.php +15 -3
- package/server/src/Traits/HasTrackingNumber.php +2 -0
- package/server/src/routes.php +39 -7
- package/server/tests/ApiCustomerControllerContractsTest.php +54 -7
- package/server/tests/ApiDriverPasswordContractsTest.php +25 -21
- package/server/tests/ApiEntityControllerContractsTest.php +84 -0
- package/server/tests/ApiOrderControllerContractsTest.php +245 -0
- package/server/tests/ApiPayloadControllerContractsTest.php +121 -0
- package/server/tests/ApiPlaceControllerContractsTest.php +1 -1
- package/server/tests/ApiTrackingNumberControllerContractsTest.php +6 -9
- package/server/tests/CompactResourceSerializationTest.php +23 -59
- package/server/tests/ControllerFilterContractsTest.php +1 -1
- package/server/tests/CustomerContactIdentitySafetyTest.php +1 -1
- package/server/tests/EventContractsTest.php +26 -60
- package/server/tests/ExpansionContractsTest.php +15 -2
- package/server/tests/Feature/Http/Api/CustomerControllerHelperSeamsTest.php +29 -3
- package/server/tests/Feature/Http/Api/DriverControllerAuthFlowsTest.php +23 -0
- package/server/tests/Feature/Http/Api/OrderControllerNearbyFiltersTest.php +16 -16
- package/server/tests/Feature/Http/Api/OrderControllerQueryFiltersTest.php +41 -14
- package/server/tests/Feature/Http/Api/TrackingNumberControllerHelpersTest.php +57 -22
- package/server/tests/Feature/Http/Internal/DriverControllerCreateRecordTest.php +23 -9
- package/server/tests/Feature/Http/Internal/OrchestrationControllerContractsTest.php +171 -1
- package/server/tests/Feature/Http/Internal/OrderControllerContractsTest.php +110 -14
- package/server/tests/Feature/Http/Internal/OrderControllerHelpersTest.php +7 -5
- package/server/tests/Feature/Http/Internal/PositionControllerReplayChannelTest.php +135 -0
- package/server/tests/Feature/Http/Internal/ProofControllerContractsTest.php +3 -3
- package/server/tests/Feature/Http/Internal/ProofControllerRecentTest.php +170 -0
- package/server/tests/Feature/Http/Public/TrackingControllerTest.php +495 -0
- package/server/tests/IndexCustomerPhotoTest.php +151 -0
- package/server/tests/ModelAccessorContractsTest.php +4 -3
- package/server/tests/NotificationAndMailContractsTest.php +5 -8
- package/server/tests/ObserverContractsTest.php +72 -10
- package/server/tests/OrderActivityFlowRegressionTest.php +3 -2
- package/server/tests/OrderFilterExecutionTest.php +167 -2
- package/server/tests/ProcessAllocationJobContractsTest.php +20 -0
- package/server/tests/PublicOrderTrackingResourceTest.php +221 -0
- package/server/tests/QueueJobContractsTest.php +2 -1
- package/server/tests/RequestContractsTest.php +1 -1
- package/server/tests/RouteRegistrationExecutionTest.php +26 -0
- package/server/tests/RouteSequencingEngineTest.php +17 -0
- package/server/tests/SettingControllerContractsTest.php +110 -0
- package/server/tests/Support/TrackingPageDatabase.php +200 -0
- package/server/tests/TenantScopingTest.php +206 -0
- package/server/tests/TrackingPageSettingsTest.php +343 -0
- package/server/tests/Unit/Console/PruneTelematicsDataCommandTest.php +51 -0
- package/server/tests/Unit/Http/Filter/ContactFilterAddressTest.php +61 -0
- package/server/tests/Unit/Http/Resources/IndexOrderResourceTest.php +30 -0
- package/server/tests/Unit/Jobs/FinalizeApiOrderCreationDispatchGuardTest.php +266 -0
- package/server/tests/Unit/Listeners/HandleGeofenceEnteredTest.php +182 -22
- package/server/tests/Unit/Listeners/HandleUserRemovedFromCompanyTest.php +5 -0
- package/server/tests/Unit/Models/DriverAssignVehicleTest.php +81 -0
- package/server/tests/Unit/Models/FleetTest.php +4 -3
- package/server/tests/Unit/Models/OrderCancelReasonTest.php +143 -0
- package/server/tests/Unit/Models/OrderPayloadConfigAndDistanceTest.php +60 -0
- package/server/tests/Unit/Models/OrderPayloadRouteTest.php +4 -2
- package/server/tests/Unit/Models/PayloadTest.php +18 -4
- package/server/tests/Unit/Models/ServiceRatePersistenceAndServicabilityTest.php +2 -2
- package/server/tests/Unit/Models/TrackingNumberTest.php +67 -6
- package/server/tests/Unit/Models/VehicleTest.php +16 -2
- package/server/tests/Unit/Models/WaypointTest.php +4 -3
- package/server/tests/Unit/Notifications/OrderChangeNotificationsTest.php +59 -0
- package/server/tests/Unit/Notifications/TerminalOrderNotificationsTest.php +3 -3
- package/server/tests/Unit/Observers/DriverDeletionCleanupTest.php +158 -0
- package/server/tests/Unit/Observers/FleetOpsCompanyUserAndServiceAreaObserversTest.php +20 -0
- package/server/tests/Unit/Observers/ObserverListenerSeamsTest.php +3 -3
- package/server/tests/Unit/Observers/OrderAssignmentObserverTest.php +100 -0
- package/server/tests/Unit/Observers/OrderDeleteCascadeTest.php +213 -0
- package/server/tests/Unit/Observers/VehicleObserverDeleteTest.php +67 -0
- package/server/tests/Unit/Orchestration/EngineSelectionAndRouteMetricsTest.php +336 -0
- package/server/tests/Unit/Orchestration/Engines/VroomOrchestrationEngineLifecycleTest.php +8 -1
- package/server/tests/Unit/Support/ApiCacheDependenciesTest.php +347 -0
- package/server/tests/Unit/Support/OrderEditPolicyTest.php +156 -0
- package/server/tests/Unit/Support/OrderOperationsTest.php +514 -0
- package/server/tests/Unit/Support/OsrmProofAndIssueFilterTest.php +4 -3
- package/server/tests/Unit/Support/ProfileAccountManagerTest.php +141 -0
- package/server/tests/Unit/Support/QuerySeamsTest.php +5 -1
- package/server/tests/Unit/Support/SocketChannelsTest.php +396 -0
- package/server/tests/Unit/Support/TrackingChannelTest.php +232 -0
- package/server/tests/Unit/Support/TrackingCodeTest.php +186 -0
- package/server/tests/Unit/Support/TrackingPage/TrackingAccessTest.php +200 -0
- package/server/tests/Unit/Support/TrackingPage/TrackingRecipientTest.php +51 -0
- package/server/tests/Unit/Support/TrackingPage/TrackingResolverTest.php +181 -0
- package/server/tests/Unit/Support/TrackingPage/TrackingViewTest.php +479 -0
- package/server/tests/Unit/Support/TrackingPublisherTest.php +425 -0
- package/server/tests/Unit/Support/TrackingUpdateTest.php +363 -0
- package/server/tests/Unit/Support/UtilsAdditionalTest.php +9 -0
- package/server/tests/Unit/Support/UtilsGeoMatrixAndVendorTest.php +25 -0
- package/server/tests/VehicleResourceContractsTest.php +46 -0
- package/server/tests/VroomOrchestrationEngineTest.php +34 -1
- package/server/tests/ZoneGeofenceSettingsResourceTest.php +121 -0
- package/translations/ar-ae.yml +274 -0
- package/translations/bg-bg.yaml +274 -0
- package/translations/en-us.yaml +287 -0
- package/translations/es-pa.yaml +274 -0
- package/translations/fr-fr.yaml +274 -0
- package/translations/mn-mn.yaml +274 -0
- package/translations/pt-br.yaml +274 -0
- package/translations/ru-ru.yaml +276 -2
- package/translations/uk-ua.yaml +275 -1
- package/translations/vi-vn.yaml +274 -0
- package/addon/components/cell/contact-identity.hbs +0 -1
- package/addon/components/cell/customer-identity.hbs +0 -1
- package/addon/components/cell/driver-identity.hbs +0 -1
- package/addon/components/cell/fleet-identity.hbs +0 -1
- package/addon/components/cell/order-identity.hbs +0 -1
- package/addon/components/cell/place-identity.hbs +0 -1
- package/addon/components/cell/vehicle-identity.hbs +0 -1
- package/addon/components/cell/vendor-identity.hbs +0 -1
- package/addon/components/contact/pill.hbs +0 -24
- package/addon/components/contact/summary.hbs +0 -1
- package/addon/components/customer/pill.hbs +0 -24
- package/addon/components/customer/summary.hbs +0 -1
- package/addon/components/driver/pill.hbs +0 -24
- package/addon/components/driver/summary.hbs +0 -1
- package/addon/components/fleet/pill.hbs +0 -24
- package/addon/components/fleet/summary.hbs +0 -1
- package/addon/components/order/pill.hbs +0 -24
- package/addon/components/order/summary.hbs +0 -1
- package/addon/components/place/pill.hbs +0 -24
- package/addon/components/place/summary.hbs +0 -1
- package/addon/components/select-option/contact.hbs +0 -12
- package/addon/components/select-option/customer.hbs +0 -12
- package/addon/components/select-option/driver.hbs +0 -12
- package/addon/components/select-option/fleet.hbs +0 -12
- package/addon/components/select-option/order.hbs +0 -12
- package/addon/components/select-option/place.hbs +0 -12
- package/addon/components/select-option/vehicle.hbs +0 -12
- package/addon/components/select-option/vendor.hbs +0 -12
- package/addon/components/vehicle/pill.hbs +0 -24
- package/addon/components/vehicle/summary.hbs +0 -1
- package/addon/components/vendor/pill.hbs +0 -24
- package/addon/components/vendor/summary.hbs +0 -1
- package/app/components/cell/contact-identity.js +0 -1
- package/app/components/cell/customer-identity.js +0 -1
- package/app/components/cell/driver-identity.js +0 -1
- package/app/components/cell/fleet-identity.js +0 -1
- package/app/components/cell/order-identity.js +0 -1
- package/app/components/cell/place-identity.js +0 -1
- package/app/components/cell/vehicle-identity.js +0 -1
- package/app/components/cell/vendor-identity.js +0 -1
- package/app/components/contact/pill.js +0 -1
- package/app/components/contact/summary.js +0 -1
- package/app/components/customer/pill.js +0 -1
- package/app/components/customer/summary.js +0 -1
- package/app/components/driver/pill.js +0 -1
- package/app/components/driver/summary.js +0 -1
- package/app/components/fleet/pill.js +0 -1
- package/app/components/fleet/summary.js +0 -1
- package/app/components/order/pill.js +0 -1
- package/app/components/order/summary.js +0 -1
- package/app/components/place/pill.js +0 -1
- package/app/components/place/summary.js +0 -1
- package/app/components/select-option/contact.js +0 -1
- package/app/components/select-option/customer.js +0 -1
- package/app/components/select-option/driver.js +0 -1
- package/app/components/select-option/fleet.js +0 -1
- package/app/components/select-option/order.js +0 -1
- package/app/components/select-option/place.js +0 -1
- package/app/components/select-option/vehicle.js +0 -1
- package/app/components/select-option/vendor.js +0 -1
- package/app/components/vehicle/pill.js +0 -1
- package/app/components/vehicle/summary.js +0 -1
- package/app/components/vendor/pill.js +0 -1
- package/app/components/vendor/summary.js +0 -1
|
@@ -12429,3 +12429,1394 @@ body[data-theme='dark'] .resource-list-pill .fleetbase-pill-body .resource-pill-
|
|
|
12429
12429
|
font-size: 0.875rem;
|
|
12430
12430
|
line-height: 1rem;
|
|
12431
12431
|
}
|
|
12432
|
+
|
|
12433
|
+
/* Customer tracking page settings preview: colours come from the --tp-* tokens on the root. */
|
|
12434
|
+
.tp-preview {
|
|
12435
|
+
border: 1px solid var(--tp-border);
|
|
12436
|
+
border-radius: 1.25rem;
|
|
12437
|
+
overflow: hidden;
|
|
12438
|
+
background: var(--tp-bg);
|
|
12439
|
+
color: var(--tp-text);
|
|
12440
|
+
font-size: 0.75rem;
|
|
12441
|
+
}
|
|
12442
|
+
|
|
12443
|
+
.tp-preview-header {
|
|
12444
|
+
display: flex;
|
|
12445
|
+
align-items: center;
|
|
12446
|
+
gap: 0.5rem;
|
|
12447
|
+
padding: 0.625rem 0.875rem;
|
|
12448
|
+
background: var(--tp-surface);
|
|
12449
|
+
border-bottom: 1px solid var(--tp-border);
|
|
12450
|
+
}
|
|
12451
|
+
|
|
12452
|
+
.tp-preview-monogram {
|
|
12453
|
+
display: inline-flex;
|
|
12454
|
+
align-items: center;
|
|
12455
|
+
justify-content: center;
|
|
12456
|
+
width: 1.75rem;
|
|
12457
|
+
height: 1.75rem;
|
|
12458
|
+
border-radius: 0.5rem;
|
|
12459
|
+
background: var(--tp-accent);
|
|
12460
|
+
color: var(--tp-ink);
|
|
12461
|
+
font-weight: 700;
|
|
12462
|
+
font-size: 0.6875rem;
|
|
12463
|
+
}
|
|
12464
|
+
|
|
12465
|
+
.tp-preview-name {
|
|
12466
|
+
font-weight: 700;
|
|
12467
|
+
font-size: 0.8125rem;
|
|
12468
|
+
}
|
|
12469
|
+
|
|
12470
|
+
.tp-preview-body {
|
|
12471
|
+
display: flex;
|
|
12472
|
+
flex-direction: column;
|
|
12473
|
+
align-items: flex-start;
|
|
12474
|
+
gap: 0.5rem;
|
|
12475
|
+
padding: 0.875rem;
|
|
12476
|
+
}
|
|
12477
|
+
|
|
12478
|
+
.tp-preview-chip {
|
|
12479
|
+
padding: 0.125rem 0.5rem;
|
|
12480
|
+
border-radius: 999px;
|
|
12481
|
+
background: var(--tp-accent-soft);
|
|
12482
|
+
color: var(--tp-accent);
|
|
12483
|
+
font-weight: 600;
|
|
12484
|
+
}
|
|
12485
|
+
|
|
12486
|
+
.tp-preview-headline {
|
|
12487
|
+
font-size: 1.125rem;
|
|
12488
|
+
font-weight: 700;
|
|
12489
|
+
letter-spacing: -0.02em;
|
|
12490
|
+
}
|
|
12491
|
+
|
|
12492
|
+
.tp-preview-sub {
|
|
12493
|
+
color: var(--tp-muted);
|
|
12494
|
+
}
|
|
12495
|
+
|
|
12496
|
+
.tp-preview-steps {
|
|
12497
|
+
display: grid;
|
|
12498
|
+
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
12499
|
+
gap: 0.25rem;
|
|
12500
|
+
width: 100%;
|
|
12501
|
+
}
|
|
12502
|
+
|
|
12503
|
+
.tp-preview-step {
|
|
12504
|
+
height: 0.25rem;
|
|
12505
|
+
border-radius: 999px;
|
|
12506
|
+
background: var(--tp-border);
|
|
12507
|
+
}
|
|
12508
|
+
|
|
12509
|
+
.tp-preview-step-done {
|
|
12510
|
+
background: var(--tp-accent);
|
|
12511
|
+
}
|
|
12512
|
+
|
|
12513
|
+
.tp-preview-button {
|
|
12514
|
+
align-self: stretch;
|
|
12515
|
+
padding: 0.5rem;
|
|
12516
|
+
border-radius: 0.625rem;
|
|
12517
|
+
background: var(--tp-accent);
|
|
12518
|
+
color: var(--tp-ink);
|
|
12519
|
+
font-weight: 600;
|
|
12520
|
+
text-align: center;
|
|
12521
|
+
}
|
|
12522
|
+
|
|
12523
|
+
.tp-preview-footer {
|
|
12524
|
+
padding: 0.5rem 0.875rem 0.75rem;
|
|
12525
|
+
color: var(--tp-muted);
|
|
12526
|
+
text-align: center;
|
|
12527
|
+
font-size: 0.6875rem;
|
|
12528
|
+
}
|
|
12529
|
+
|
|
12530
|
+
/* Customer tracking page. Colours come from the --tp-* tokens the page sets from its company's branding. */
|
|
12531
|
+
.tp-root {
|
|
12532
|
+
display: flex;
|
|
12533
|
+
flex-direction: column;
|
|
12534
|
+
min-height: 100vh;
|
|
12535
|
+
background: var(--tp-bg);
|
|
12536
|
+
color: var(--tp-text);
|
|
12537
|
+
font-size: 1rem;
|
|
12538
|
+
line-height: 1.5;
|
|
12539
|
+
}
|
|
12540
|
+
|
|
12541
|
+
.tp-root a {
|
|
12542
|
+
color: var(--tp-accent);
|
|
12543
|
+
font-weight: 600;
|
|
12544
|
+
}
|
|
12545
|
+
|
|
12546
|
+
.tp-root h1,
|
|
12547
|
+
.tp-root h2,
|
|
12548
|
+
.tp-root h3,
|
|
12549
|
+
.tp-root p,
|
|
12550
|
+
.tp-root dl,
|
|
12551
|
+
.tp-root dd,
|
|
12552
|
+
.tp-root figure,
|
|
12553
|
+
.tp-root fieldset {
|
|
12554
|
+
margin: 0;
|
|
12555
|
+
}
|
|
12556
|
+
|
|
12557
|
+
.tp-root fieldset {
|
|
12558
|
+
border: 0;
|
|
12559
|
+
padding: 0;
|
|
12560
|
+
}
|
|
12561
|
+
|
|
12562
|
+
.tp-header {
|
|
12563
|
+
display: flex;
|
|
12564
|
+
align-items: center;
|
|
12565
|
+
justify-content: space-between;
|
|
12566
|
+
gap: 0.75rem;
|
|
12567
|
+
padding: 0.75rem 1rem;
|
|
12568
|
+
background: var(--tp-surface);
|
|
12569
|
+
border-bottom: 1px solid var(--tp-border);
|
|
12570
|
+
}
|
|
12571
|
+
|
|
12572
|
+
.tp-header-actions {
|
|
12573
|
+
display: flex;
|
|
12574
|
+
align-items: center;
|
|
12575
|
+
gap: 0.5rem;
|
|
12576
|
+
}
|
|
12577
|
+
|
|
12578
|
+
/* The console's locale switcher, in the page's own colours. */
|
|
12579
|
+
.tp-root .tp-locale-selector .next-org-button-trigger {
|
|
12580
|
+
color: var(--tp-text);
|
|
12581
|
+
}
|
|
12582
|
+
|
|
12583
|
+
.tp-root .tp-locale-selector .next-org-button-trigger:hover,
|
|
12584
|
+
.tp-root .tp-locale-selector .next-org-button-trigger.is-open {
|
|
12585
|
+
background: var(--tp-surface2);
|
|
12586
|
+
}
|
|
12587
|
+
|
|
12588
|
+
.tp-brand {
|
|
12589
|
+
display: flex;
|
|
12590
|
+
align-items: center;
|
|
12591
|
+
gap: 0.625rem;
|
|
12592
|
+
min-width: 0;
|
|
12593
|
+
}
|
|
12594
|
+
|
|
12595
|
+
.tp-brand-logo {
|
|
12596
|
+
height: 2rem;
|
|
12597
|
+
max-width: 8rem;
|
|
12598
|
+
object-fit: contain;
|
|
12599
|
+
}
|
|
12600
|
+
|
|
12601
|
+
.tp-brand-monogram {
|
|
12602
|
+
display: inline-flex;
|
|
12603
|
+
align-items: center;
|
|
12604
|
+
justify-content: center;
|
|
12605
|
+
width: 2rem;
|
|
12606
|
+
height: 2rem;
|
|
12607
|
+
flex: none;
|
|
12608
|
+
border-radius: 0.5rem;
|
|
12609
|
+
background: var(--tp-accent);
|
|
12610
|
+
color: var(--tp-ink);
|
|
12611
|
+
font-size: 0.8125rem;
|
|
12612
|
+
font-weight: 700;
|
|
12613
|
+
}
|
|
12614
|
+
|
|
12615
|
+
.tp-brand-name {
|
|
12616
|
+
overflow: hidden;
|
|
12617
|
+
font-weight: 700;
|
|
12618
|
+
white-space: nowrap;
|
|
12619
|
+
text-overflow: ellipsis;
|
|
12620
|
+
}
|
|
12621
|
+
|
|
12622
|
+
.tp-main {
|
|
12623
|
+
flex: 1;
|
|
12624
|
+
width: 100%;
|
|
12625
|
+
max-width: 77.5rem;
|
|
12626
|
+
margin: 0 auto;
|
|
12627
|
+
box-sizing: border-box;
|
|
12628
|
+
padding: 1.25rem 1rem;
|
|
12629
|
+
}
|
|
12630
|
+
|
|
12631
|
+
.tp-narrow {
|
|
12632
|
+
width: 100%;
|
|
12633
|
+
max-width: 30rem;
|
|
12634
|
+
margin: 0 auto;
|
|
12635
|
+
}
|
|
12636
|
+
|
|
12637
|
+
.tp-wide {
|
|
12638
|
+
width: 100%;
|
|
12639
|
+
max-width: 55rem;
|
|
12640
|
+
margin: 0 auto;
|
|
12641
|
+
}
|
|
12642
|
+
|
|
12643
|
+
.tp-stack {
|
|
12644
|
+
display: flex;
|
|
12645
|
+
flex-direction: column;
|
|
12646
|
+
gap: 1.25rem;
|
|
12647
|
+
}
|
|
12648
|
+
|
|
12649
|
+
.tp-stack-sm {
|
|
12650
|
+
display: flex;
|
|
12651
|
+
flex-direction: column;
|
|
12652
|
+
gap: 0.75rem;
|
|
12653
|
+
}
|
|
12654
|
+
|
|
12655
|
+
.tp-stack-xs {
|
|
12656
|
+
display: flex;
|
|
12657
|
+
flex-direction: column;
|
|
12658
|
+
gap: 0.25rem;
|
|
12659
|
+
min-width: 0;
|
|
12660
|
+
}
|
|
12661
|
+
|
|
12662
|
+
.tp-row {
|
|
12663
|
+
display: flex;
|
|
12664
|
+
align-items: center;
|
|
12665
|
+
gap: 0.75rem;
|
|
12666
|
+
}
|
|
12667
|
+
|
|
12668
|
+
.tp-row-wrap {
|
|
12669
|
+
display: flex;
|
|
12670
|
+
flex-wrap: wrap;
|
|
12671
|
+
align-items: center;
|
|
12672
|
+
gap: 0.5rem 1rem;
|
|
12673
|
+
}
|
|
12674
|
+
|
|
12675
|
+
.tp-row-between {
|
|
12676
|
+
display: flex;
|
|
12677
|
+
align-items: center;
|
|
12678
|
+
justify-content: space-between;
|
|
12679
|
+
gap: 0.75rem;
|
|
12680
|
+
}
|
|
12681
|
+
|
|
12682
|
+
.tp-row-end {
|
|
12683
|
+
display: flex;
|
|
12684
|
+
justify-content: flex-end;
|
|
12685
|
+
gap: 0.5rem;
|
|
12686
|
+
}
|
|
12687
|
+
|
|
12688
|
+
.tp-baseline {
|
|
12689
|
+
align-items: baseline;
|
|
12690
|
+
}
|
|
12691
|
+
|
|
12692
|
+
.tp-grow {
|
|
12693
|
+
flex: 1 1 12rem;
|
|
12694
|
+
min-width: 0;
|
|
12695
|
+
}
|
|
12696
|
+
|
|
12697
|
+
.tp-self-start {
|
|
12698
|
+
align-self: flex-start;
|
|
12699
|
+
}
|
|
12700
|
+
|
|
12701
|
+
.tp-top-border {
|
|
12702
|
+
padding-top: 0.75rem;
|
|
12703
|
+
border-top: 1px solid var(--tp-border);
|
|
12704
|
+
}
|
|
12705
|
+
|
|
12706
|
+
.tp-h1 {
|
|
12707
|
+
font-size: 1.875rem;
|
|
12708
|
+
font-weight: 700;
|
|
12709
|
+
line-height: 1.15;
|
|
12710
|
+
letter-spacing: -0.02em;
|
|
12711
|
+
text-wrap: balance;
|
|
12712
|
+
}
|
|
12713
|
+
|
|
12714
|
+
.tp-h2 {
|
|
12715
|
+
font-size: 1.375rem;
|
|
12716
|
+
font-weight: 700;
|
|
12717
|
+
line-height: 1.2;
|
|
12718
|
+
}
|
|
12719
|
+
|
|
12720
|
+
.tp-h3 {
|
|
12721
|
+
font-size: 1.0625rem;
|
|
12722
|
+
font-weight: 700;
|
|
12723
|
+
}
|
|
12724
|
+
|
|
12725
|
+
.tp-headline {
|
|
12726
|
+
font-size: 2rem;
|
|
12727
|
+
font-weight: 700;
|
|
12728
|
+
line-height: 1.08;
|
|
12729
|
+
letter-spacing: -0.03em;
|
|
12730
|
+
text-wrap: balance;
|
|
12731
|
+
}
|
|
12732
|
+
|
|
12733
|
+
.tp-subline {
|
|
12734
|
+
font-size: 1.0625rem;
|
|
12735
|
+
font-weight: 500;
|
|
12736
|
+
}
|
|
12737
|
+
|
|
12738
|
+
.tp-eyebrow {
|
|
12739
|
+
color: var(--tp-muted);
|
|
12740
|
+
font-size: 0.8125rem;
|
|
12741
|
+
font-weight: 600;
|
|
12742
|
+
letter-spacing: 0.06em;
|
|
12743
|
+
text-transform: uppercase;
|
|
12744
|
+
}
|
|
12745
|
+
|
|
12746
|
+
.tp-label {
|
|
12747
|
+
font-size: 0.875rem;
|
|
12748
|
+
font-weight: 600;
|
|
12749
|
+
}
|
|
12750
|
+
|
|
12751
|
+
.tp-small {
|
|
12752
|
+
font-size: 0.875rem;
|
|
12753
|
+
}
|
|
12754
|
+
|
|
12755
|
+
.tp-muted {
|
|
12756
|
+
color: var(--tp-muted);
|
|
12757
|
+
}
|
|
12758
|
+
|
|
12759
|
+
.tp-strong {
|
|
12760
|
+
font-weight: 600;
|
|
12761
|
+
}
|
|
12762
|
+
|
|
12763
|
+
.tp-mono {
|
|
12764
|
+
font-family: ui-monospace, sfmono-regular, menlo, monospace;
|
|
12765
|
+
letter-spacing: 0.02em;
|
|
12766
|
+
}
|
|
12767
|
+
|
|
12768
|
+
.tp-accent-text {
|
|
12769
|
+
color: var(--tp-accent);
|
|
12770
|
+
}
|
|
12771
|
+
|
|
12772
|
+
.tp-warn-text {
|
|
12773
|
+
color: var(--tp-warn);
|
|
12774
|
+
}
|
|
12775
|
+
|
|
12776
|
+
.tp-sr-only {
|
|
12777
|
+
position: absolute;
|
|
12778
|
+
width: 1px;
|
|
12779
|
+
height: 1px;
|
|
12780
|
+
overflow: hidden;
|
|
12781
|
+
clip-path: inset(50%);
|
|
12782
|
+
}
|
|
12783
|
+
|
|
12784
|
+
.tp-touch {
|
|
12785
|
+
display: inline-flex;
|
|
12786
|
+
align-items: center;
|
|
12787
|
+
min-height: 2.75rem;
|
|
12788
|
+
}
|
|
12789
|
+
|
|
12790
|
+
.tp-card {
|
|
12791
|
+
padding: 1.125rem;
|
|
12792
|
+
border: 1px solid var(--tp-border);
|
|
12793
|
+
border-radius: 1.125rem;
|
|
12794
|
+
background: var(--tp-surface);
|
|
12795
|
+
}
|
|
12796
|
+
|
|
12797
|
+
.tp-card-tight {
|
|
12798
|
+
padding: 0.75rem 0.875rem;
|
|
12799
|
+
border-radius: 0.875rem;
|
|
12800
|
+
}
|
|
12801
|
+
|
|
12802
|
+
.tp-card-accent {
|
|
12803
|
+
border: 2px solid var(--tp-accent);
|
|
12804
|
+
}
|
|
12805
|
+
|
|
12806
|
+
.tp-card-grid {
|
|
12807
|
+
display: grid;
|
|
12808
|
+
grid-template-columns: repeat(auto-fit, minmax(min(15rem, 100%), 1fr));
|
|
12809
|
+
gap: 0.75rem;
|
|
12810
|
+
}
|
|
12811
|
+
|
|
12812
|
+
.tp-input {
|
|
12813
|
+
width: 100%;
|
|
12814
|
+
min-height: 3.25rem;
|
|
12815
|
+
box-sizing: border-box;
|
|
12816
|
+
padding: 0 0.875rem;
|
|
12817
|
+
border: 1.5px solid var(--tp-border);
|
|
12818
|
+
border-radius: 0.75rem;
|
|
12819
|
+
background: var(--tp-surface);
|
|
12820
|
+
color: var(--tp-text);
|
|
12821
|
+
font-size: 1rem;
|
|
12822
|
+
}
|
|
12823
|
+
|
|
12824
|
+
.tp-textarea {
|
|
12825
|
+
padding: 0.75rem;
|
|
12826
|
+
resize: vertical;
|
|
12827
|
+
}
|
|
12828
|
+
|
|
12829
|
+
.tp-button {
|
|
12830
|
+
display: inline-flex;
|
|
12831
|
+
align-items: center;
|
|
12832
|
+
justify-content: center;
|
|
12833
|
+
gap: 0.5rem;
|
|
12834
|
+
min-height: 3rem;
|
|
12835
|
+
box-sizing: border-box;
|
|
12836
|
+
padding: 0 1rem;
|
|
12837
|
+
border: 1.5px solid var(--tp-border);
|
|
12838
|
+
border-radius: 0.75rem;
|
|
12839
|
+
background: var(--tp-surface);
|
|
12840
|
+
color: var(--tp-text);
|
|
12841
|
+
font-size: 1rem;
|
|
12842
|
+
font-weight: 600;
|
|
12843
|
+
text-align: center;
|
|
12844
|
+
text-decoration: none;
|
|
12845
|
+
cursor: pointer;
|
|
12846
|
+
}
|
|
12847
|
+
|
|
12848
|
+
.tp-root a.tp-button {
|
|
12849
|
+
color: var(--tp-text);
|
|
12850
|
+
}
|
|
12851
|
+
|
|
12852
|
+
.tp-button:disabled {
|
|
12853
|
+
cursor: not-allowed;
|
|
12854
|
+
opacity: 0.5;
|
|
12855
|
+
}
|
|
12856
|
+
|
|
12857
|
+
.tp-button-primary,
|
|
12858
|
+
.tp-root a.tp-button-primary {
|
|
12859
|
+
border-color: var(--tp-accent);
|
|
12860
|
+
background: var(--tp-accent);
|
|
12861
|
+
color: var(--tp-ink);
|
|
12862
|
+
}
|
|
12863
|
+
|
|
12864
|
+
.tp-button-small {
|
|
12865
|
+
min-height: 2.75rem;
|
|
12866
|
+
padding: 0 0.75rem;
|
|
12867
|
+
font-size: 0.875rem;
|
|
12868
|
+
}
|
|
12869
|
+
|
|
12870
|
+
.tp-link-button {
|
|
12871
|
+
min-height: 2.75rem;
|
|
12872
|
+
padding: 0 0.25rem;
|
|
12873
|
+
border: 0;
|
|
12874
|
+
background: transparent;
|
|
12875
|
+
color: var(--tp-accent);
|
|
12876
|
+
font-size: 0.9375rem;
|
|
12877
|
+
font-weight: 600;
|
|
12878
|
+
cursor: pointer;
|
|
12879
|
+
}
|
|
12880
|
+
|
|
12881
|
+
.tp-back {
|
|
12882
|
+
display: inline-flex;
|
|
12883
|
+
align-items: center;
|
|
12884
|
+
align-self: flex-start;
|
|
12885
|
+
gap: 0.375rem;
|
|
12886
|
+
min-height: 2.75rem;
|
|
12887
|
+
border: 0;
|
|
12888
|
+
background: transparent;
|
|
12889
|
+
color: var(--tp-text);
|
|
12890
|
+
font-weight: 600;
|
|
12891
|
+
cursor: pointer;
|
|
12892
|
+
}
|
|
12893
|
+
|
|
12894
|
+
.tp-chip {
|
|
12895
|
+
display: inline-flex;
|
|
12896
|
+
align-items: center;
|
|
12897
|
+
align-self: flex-start;
|
|
12898
|
+
gap: 0.375rem;
|
|
12899
|
+
min-height: 2rem;
|
|
12900
|
+
padding: 0 0.75rem;
|
|
12901
|
+
border: 0;
|
|
12902
|
+
border-radius: 999px;
|
|
12903
|
+
background: var(--tp-surface2);
|
|
12904
|
+
color: var(--tp-text);
|
|
12905
|
+
font-size: 0.8125rem;
|
|
12906
|
+
font-weight: 600;
|
|
12907
|
+
}
|
|
12908
|
+
|
|
12909
|
+
.tp-chip-accent,
|
|
12910
|
+
.tp-chip-button {
|
|
12911
|
+
background: var(--tp-accent-soft);
|
|
12912
|
+
color: var(--tp-accent);
|
|
12913
|
+
}
|
|
12914
|
+
|
|
12915
|
+
.tp-chip-button {
|
|
12916
|
+
align-self: center;
|
|
12917
|
+
cursor: pointer;
|
|
12918
|
+
}
|
|
12919
|
+
|
|
12920
|
+
.tp-chip-warn {
|
|
12921
|
+
background: var(--tp-warn-soft);
|
|
12922
|
+
color: var(--tp-warn);
|
|
12923
|
+
}
|
|
12924
|
+
|
|
12925
|
+
.tp-notice {
|
|
12926
|
+
display: flex;
|
|
12927
|
+
gap: 0.625rem;
|
|
12928
|
+
padding: 0.75rem 0.875rem;
|
|
12929
|
+
border-radius: 0.75rem;
|
|
12930
|
+
background: var(--tp-surface2);
|
|
12931
|
+
font-size: 0.9375rem;
|
|
12932
|
+
}
|
|
12933
|
+
|
|
12934
|
+
.tp-notice-warn {
|
|
12935
|
+
background: var(--tp-warn-soft);
|
|
12936
|
+
}
|
|
12937
|
+
|
|
12938
|
+
.tp-icon-badge {
|
|
12939
|
+
display: inline-flex;
|
|
12940
|
+
align-items: center;
|
|
12941
|
+
justify-content: center;
|
|
12942
|
+
width: 3rem;
|
|
12943
|
+
height: 3rem;
|
|
12944
|
+
flex: none;
|
|
12945
|
+
border-radius: 0.875rem;
|
|
12946
|
+
background: var(--tp-accent-soft);
|
|
12947
|
+
color: var(--tp-accent);
|
|
12948
|
+
}
|
|
12949
|
+
|
|
12950
|
+
.tp-icon-badge-solid {
|
|
12951
|
+
background: var(--tp-accent);
|
|
12952
|
+
color: var(--tp-ink);
|
|
12953
|
+
}
|
|
12954
|
+
|
|
12955
|
+
.tp-icon-badge-warn {
|
|
12956
|
+
background: var(--tp-warn-soft);
|
|
12957
|
+
color: var(--tp-warn);
|
|
12958
|
+
}
|
|
12959
|
+
|
|
12960
|
+
.tp-icon-badge-soft {
|
|
12961
|
+
width: 2.5rem;
|
|
12962
|
+
height: 2.5rem;
|
|
12963
|
+
border-radius: 0.75rem;
|
|
12964
|
+
}
|
|
12965
|
+
|
|
12966
|
+
.tp-divider {
|
|
12967
|
+
display: flex;
|
|
12968
|
+
align-items: center;
|
|
12969
|
+
gap: 0.75rem;
|
|
12970
|
+
color: var(--tp-muted);
|
|
12971
|
+
font-size: 0.8125rem;
|
|
12972
|
+
}
|
|
12973
|
+
|
|
12974
|
+
.tp-divider::before,
|
|
12975
|
+
.tp-divider::after {
|
|
12976
|
+
content: '';
|
|
12977
|
+
flex: 1;
|
|
12978
|
+
height: 1px;
|
|
12979
|
+
background: var(--tp-border);
|
|
12980
|
+
}
|
|
12981
|
+
|
|
12982
|
+
.tp-skeleton {
|
|
12983
|
+
border-radius: 0.5rem;
|
|
12984
|
+
background: var(--tp-surface2);
|
|
12985
|
+
}
|
|
12986
|
+
|
|
12987
|
+
.tp-skeleton-title {
|
|
12988
|
+
width: 55%;
|
|
12989
|
+
height: 1.75rem;
|
|
12990
|
+
}
|
|
12991
|
+
|
|
12992
|
+
.tp-skeleton-line {
|
|
12993
|
+
width: 80%;
|
|
12994
|
+
height: 0.75rem;
|
|
12995
|
+
margin-top: 0.75rem;
|
|
12996
|
+
}
|
|
12997
|
+
|
|
12998
|
+
.tp-skeleton-card {
|
|
12999
|
+
height: 9rem;
|
|
13000
|
+
margin-top: 1.25rem;
|
|
13001
|
+
border-radius: 1.125rem;
|
|
13002
|
+
}
|
|
13003
|
+
|
|
13004
|
+
.tp-skeleton-row {
|
|
13005
|
+
height: 4.5rem;
|
|
13006
|
+
border-radius: 0.875rem;
|
|
13007
|
+
}
|
|
13008
|
+
|
|
13009
|
+
.tp-coarse {
|
|
13010
|
+
display: grid;
|
|
13011
|
+
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
13012
|
+
gap: 0.375rem;
|
|
13013
|
+
}
|
|
13014
|
+
|
|
13015
|
+
.tp-coarse-bar {
|
|
13016
|
+
height: 0.375rem;
|
|
13017
|
+
border-radius: 999px;
|
|
13018
|
+
background: var(--tp-border);
|
|
13019
|
+
}
|
|
13020
|
+
|
|
13021
|
+
.tp-coarse-done {
|
|
13022
|
+
background: var(--tp-accent);
|
|
13023
|
+
}
|
|
13024
|
+
|
|
13025
|
+
.tp-locked-grid {
|
|
13026
|
+
display: grid;
|
|
13027
|
+
grid-template-columns: repeat(auto-fit, minmax(min(13rem, 100%), 1fr));
|
|
13028
|
+
gap: 0.75rem;
|
|
13029
|
+
}
|
|
13030
|
+
|
|
13031
|
+
.tp-locked {
|
|
13032
|
+
position: relative;
|
|
13033
|
+
min-height: 9rem;
|
|
13034
|
+
overflow: hidden;
|
|
13035
|
+
border: 1px solid var(--tp-border);
|
|
13036
|
+
border-radius: 1.125rem;
|
|
13037
|
+
background: var(--tp-surface);
|
|
13038
|
+
}
|
|
13039
|
+
|
|
13040
|
+
.tp-locked-blur {
|
|
13041
|
+
position: absolute;
|
|
13042
|
+
inset: 0;
|
|
13043
|
+
padding: 1.25rem;
|
|
13044
|
+
filter: blur(6px);
|
|
13045
|
+
}
|
|
13046
|
+
|
|
13047
|
+
.tp-locked-overlay {
|
|
13048
|
+
position: relative;
|
|
13049
|
+
display: flex;
|
|
13050
|
+
flex-direction: column;
|
|
13051
|
+
align-items: center;
|
|
13052
|
+
justify-content: center;
|
|
13053
|
+
gap: 0.5rem;
|
|
13054
|
+
min-height: 9rem;
|
|
13055
|
+
padding: 1rem;
|
|
13056
|
+
text-align: center;
|
|
13057
|
+
}
|
|
13058
|
+
|
|
13059
|
+
.tp-option {
|
|
13060
|
+
display: flex;
|
|
13061
|
+
align-items: center;
|
|
13062
|
+
gap: 0.875rem;
|
|
13063
|
+
min-height: 4rem;
|
|
13064
|
+
box-sizing: border-box;
|
|
13065
|
+
padding: 0.75rem 1rem;
|
|
13066
|
+
border: 1.5px solid var(--tp-border);
|
|
13067
|
+
border-radius: 0.875rem;
|
|
13068
|
+
background: var(--tp-surface);
|
|
13069
|
+
cursor: pointer;
|
|
13070
|
+
}
|
|
13071
|
+
|
|
13072
|
+
.tp-option-selected {
|
|
13073
|
+
border: 2px solid var(--tp-accent);
|
|
13074
|
+
background: var(--tp-accent-soft);
|
|
13075
|
+
}
|
|
13076
|
+
|
|
13077
|
+
.tp-option input {
|
|
13078
|
+
width: 1.25rem;
|
|
13079
|
+
height: 1.25rem;
|
|
13080
|
+
margin: 0;
|
|
13081
|
+
accent-color: var(--tp-accent);
|
|
13082
|
+
}
|
|
13083
|
+
|
|
13084
|
+
.tp-otp {
|
|
13085
|
+
position: relative;
|
|
13086
|
+
max-width: 23.75rem;
|
|
13087
|
+
}
|
|
13088
|
+
|
|
13089
|
+
.tp-otp-input {
|
|
13090
|
+
position: absolute;
|
|
13091
|
+
inset: 0;
|
|
13092
|
+
z-index: 1;
|
|
13093
|
+
width: 100%;
|
|
13094
|
+
height: 100%;
|
|
13095
|
+
font-size: 1rem;
|
|
13096
|
+
opacity: 0;
|
|
13097
|
+
cursor: text;
|
|
13098
|
+
}
|
|
13099
|
+
|
|
13100
|
+
.tp-otp-boxes {
|
|
13101
|
+
display: grid;
|
|
13102
|
+
grid-template-columns: repeat(6, minmax(0, 1fr));
|
|
13103
|
+
gap: 0.5rem;
|
|
13104
|
+
}
|
|
13105
|
+
|
|
13106
|
+
.tp-otp-box {
|
|
13107
|
+
display: flex;
|
|
13108
|
+
align-items: center;
|
|
13109
|
+
justify-content: center;
|
|
13110
|
+
height: 3.625rem;
|
|
13111
|
+
box-sizing: border-box;
|
|
13112
|
+
border: 1.5px solid var(--tp-border);
|
|
13113
|
+
border-radius: 0.75rem;
|
|
13114
|
+
background: var(--tp-surface);
|
|
13115
|
+
font-family: ui-monospace, sfmono-regular, menlo, monospace;
|
|
13116
|
+
font-size: 1.5rem;
|
|
13117
|
+
font-weight: 600;
|
|
13118
|
+
}
|
|
13119
|
+
|
|
13120
|
+
.tp-otp-box-active {
|
|
13121
|
+
border: 2px solid var(--tp-accent);
|
|
13122
|
+
box-shadow: 0 0 0 4px var(--tp-accent-soft);
|
|
13123
|
+
}
|
|
13124
|
+
|
|
13125
|
+
.tp-otp-box-wrong {
|
|
13126
|
+
border: 2px solid var(--tp-warn);
|
|
13127
|
+
}
|
|
13128
|
+
|
|
13129
|
+
.tp-otp-box-success {
|
|
13130
|
+
border-color: var(--tp-accent);
|
|
13131
|
+
background: var(--tp-accent);
|
|
13132
|
+
color: var(--tp-ink);
|
|
13133
|
+
}
|
|
13134
|
+
|
|
13135
|
+
.tp-otp-box-locked {
|
|
13136
|
+
background: var(--tp-surface2);
|
|
13137
|
+
color: var(--tp-muted);
|
|
13138
|
+
}
|
|
13139
|
+
|
|
13140
|
+
.tp-full {
|
|
13141
|
+
display: grid;
|
|
13142
|
+
grid-template-columns: minmax(0, 1fr);
|
|
13143
|
+
grid-template-areas: 'chips' 'head' 'map' 'body';
|
|
13144
|
+
gap: 1.125rem;
|
|
13145
|
+
}
|
|
13146
|
+
|
|
13147
|
+
.tp-full-chips {
|
|
13148
|
+
grid-area: chips;
|
|
13149
|
+
}
|
|
13150
|
+
|
|
13151
|
+
.tp-full-head {
|
|
13152
|
+
display: flex;
|
|
13153
|
+
flex-direction: column;
|
|
13154
|
+
grid-area: head;
|
|
13155
|
+
gap: 1.125rem;
|
|
13156
|
+
min-width: 0;
|
|
13157
|
+
}
|
|
13158
|
+
|
|
13159
|
+
.tp-full-map {
|
|
13160
|
+
grid-area: map;
|
|
13161
|
+
min-width: 0;
|
|
13162
|
+
}
|
|
13163
|
+
|
|
13164
|
+
.tp-full-body {
|
|
13165
|
+
display: flex;
|
|
13166
|
+
flex-direction: column;
|
|
13167
|
+
grid-area: body;
|
|
13168
|
+
gap: 1rem;
|
|
13169
|
+
min-width: 0;
|
|
13170
|
+
}
|
|
13171
|
+
|
|
13172
|
+
.tp-segmented {
|
|
13173
|
+
display: flex;
|
|
13174
|
+
flex-wrap: wrap;
|
|
13175
|
+
gap: 0.25rem;
|
|
13176
|
+
align-self: flex-start;
|
|
13177
|
+
padding: 0.25rem;
|
|
13178
|
+
border-radius: 0.75rem;
|
|
13179
|
+
background: var(--tp-surface2);
|
|
13180
|
+
}
|
|
13181
|
+
|
|
13182
|
+
.tp-segment {
|
|
13183
|
+
display: inline-flex;
|
|
13184
|
+
align-items: center;
|
|
13185
|
+
gap: 0.375rem;
|
|
13186
|
+
min-height: 2.5rem;
|
|
13187
|
+
padding: 0 1rem;
|
|
13188
|
+
border: 0;
|
|
13189
|
+
border-radius: 0.5625rem;
|
|
13190
|
+
background: transparent;
|
|
13191
|
+
color: var(--tp-muted);
|
|
13192
|
+
font-weight: 600;
|
|
13193
|
+
cursor: pointer;
|
|
13194
|
+
}
|
|
13195
|
+
|
|
13196
|
+
.tp-segment-selected {
|
|
13197
|
+
background: var(--tp-surface);
|
|
13198
|
+
color: var(--tp-text);
|
|
13199
|
+
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12);
|
|
13200
|
+
}
|
|
13201
|
+
|
|
13202
|
+
.tp-live {
|
|
13203
|
+
display: inline-flex;
|
|
13204
|
+
align-items: center;
|
|
13205
|
+
gap: 0.375rem;
|
|
13206
|
+
color: var(--tp-accent);
|
|
13207
|
+
font-weight: 600;
|
|
13208
|
+
}
|
|
13209
|
+
|
|
13210
|
+
.tp-live-dot {
|
|
13211
|
+
width: 0.5rem;
|
|
13212
|
+
height: 0.5rem;
|
|
13213
|
+
border-radius: 999px;
|
|
13214
|
+
background: var(--tp-accent);
|
|
13215
|
+
animation: tp-live-pulse 2s ease-in-out infinite;
|
|
13216
|
+
}
|
|
13217
|
+
|
|
13218
|
+
@keyframes tp-live-pulse {
|
|
13219
|
+
50% {
|
|
13220
|
+
opacity: 0.35;
|
|
13221
|
+
}
|
|
13222
|
+
}
|
|
13223
|
+
|
|
13224
|
+
.tp-steps {
|
|
13225
|
+
display: flex;
|
|
13226
|
+
margin: 0;
|
|
13227
|
+
padding: 0;
|
|
13228
|
+
list-style: none;
|
|
13229
|
+
}
|
|
13230
|
+
|
|
13231
|
+
.tp-step {
|
|
13232
|
+
display: flex;
|
|
13233
|
+
flex: 1 1 0;
|
|
13234
|
+
flex-direction: column;
|
|
13235
|
+
gap: 0.5rem;
|
|
13236
|
+
min-width: 0;
|
|
13237
|
+
}
|
|
13238
|
+
|
|
13239
|
+
.tp-step-track {
|
|
13240
|
+
display: flex;
|
|
13241
|
+
align-items: center;
|
|
13242
|
+
}
|
|
13243
|
+
|
|
13244
|
+
.tp-step-dot {
|
|
13245
|
+
display: flex;
|
|
13246
|
+
align-items: center;
|
|
13247
|
+
justify-content: center;
|
|
13248
|
+
width: 1.625rem;
|
|
13249
|
+
height: 1.625rem;
|
|
13250
|
+
flex: none;
|
|
13251
|
+
box-sizing: border-box;
|
|
13252
|
+
border: 2px solid var(--tp-border);
|
|
13253
|
+
border-radius: 999px;
|
|
13254
|
+
background: var(--tp-surface);
|
|
13255
|
+
font-size: 0.75rem;
|
|
13256
|
+
}
|
|
13257
|
+
|
|
13258
|
+
.tp-step-line {
|
|
13259
|
+
flex: 1;
|
|
13260
|
+
height: 3px;
|
|
13261
|
+
margin-inline: 0.25rem;
|
|
13262
|
+
border-radius: 2px;
|
|
13263
|
+
background: var(--tp-border);
|
|
13264
|
+
}
|
|
13265
|
+
|
|
13266
|
+
.tp-step-done .tp-step-dot {
|
|
13267
|
+
border-color: var(--tp-accent);
|
|
13268
|
+
background: var(--tp-accent);
|
|
13269
|
+
color: var(--tp-ink);
|
|
13270
|
+
}
|
|
13271
|
+
|
|
13272
|
+
.tp-step-done .tp-step-line {
|
|
13273
|
+
background: var(--tp-accent);
|
|
13274
|
+
}
|
|
13275
|
+
|
|
13276
|
+
.tp-step-current .tp-step-dot {
|
|
13277
|
+
border: 3px solid var(--tp-accent);
|
|
13278
|
+
}
|
|
13279
|
+
|
|
13280
|
+
.tp-step-failed .tp-step-dot {
|
|
13281
|
+
border-color: var(--tp-warn);
|
|
13282
|
+
background: var(--tp-warn);
|
|
13283
|
+
color: var(--tp-surface);
|
|
13284
|
+
}
|
|
13285
|
+
|
|
13286
|
+
.tp-step-stop .tp-step-dot {
|
|
13287
|
+
border-color: var(--tp-neutral);
|
|
13288
|
+
background: var(--tp-neutral);
|
|
13289
|
+
color: var(--tp-surface);
|
|
13290
|
+
}
|
|
13291
|
+
|
|
13292
|
+
.tp-step-label {
|
|
13293
|
+
padding-inline-end: 0.375rem;
|
|
13294
|
+
font-size: 0.8125rem;
|
|
13295
|
+
font-weight: 600;
|
|
13296
|
+
line-height: 1.25;
|
|
13297
|
+
overflow-wrap: anywhere;
|
|
13298
|
+
hyphens: auto;
|
|
13299
|
+
}
|
|
13300
|
+
|
|
13301
|
+
.tp-step-todo .tp-step-label {
|
|
13302
|
+
color: var(--tp-muted);
|
|
13303
|
+
font-weight: 500;
|
|
13304
|
+
}
|
|
13305
|
+
|
|
13306
|
+
.tp-step-failed .tp-step-label {
|
|
13307
|
+
color: var(--tp-warn);
|
|
13308
|
+
}
|
|
13309
|
+
|
|
13310
|
+
.tp-map {
|
|
13311
|
+
position: relative;
|
|
13312
|
+
height: 17rem;
|
|
13313
|
+
overflow: hidden;
|
|
13314
|
+
border: 1px solid var(--tp-border);
|
|
13315
|
+
border-radius: 1.25rem;
|
|
13316
|
+
}
|
|
13317
|
+
|
|
13318
|
+
.tp-map-canvas {
|
|
13319
|
+
width: 100%;
|
|
13320
|
+
height: 100%;
|
|
13321
|
+
}
|
|
13322
|
+
|
|
13323
|
+
/* Full screen: the browser's where it has one, otherwise the map covers the window. */
|
|
13324
|
+
.tp-map:fullscreen,
|
|
13325
|
+
.tp-map-expanded {
|
|
13326
|
+
height: 100%;
|
|
13327
|
+
border: 0;
|
|
13328
|
+
border-radius: 0;
|
|
13329
|
+
}
|
|
13330
|
+
|
|
13331
|
+
.tp-map-expanded {
|
|
13332
|
+
position: fixed;
|
|
13333
|
+
inset: 0;
|
|
13334
|
+
z-index: 2000;
|
|
13335
|
+
height: 100dvh;
|
|
13336
|
+
}
|
|
13337
|
+
|
|
13338
|
+
.tp-map-chip {
|
|
13339
|
+
position: absolute;
|
|
13340
|
+
inset-block-start: 0.75rem;
|
|
13341
|
+
inset-inline-start: 0.75rem;
|
|
13342
|
+
z-index: 500;
|
|
13343
|
+
display: flex;
|
|
13344
|
+
align-items: center;
|
|
13345
|
+
gap: 0.375rem;
|
|
13346
|
+
min-height: 2rem;
|
|
13347
|
+
padding: 0 0.75rem;
|
|
13348
|
+
border-radius: 999px;
|
|
13349
|
+
background: var(--tp-surface);
|
|
13350
|
+
color: var(--tp-accent);
|
|
13351
|
+
font-size: 0.8125rem;
|
|
13352
|
+
font-weight: 600;
|
|
13353
|
+
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.16);
|
|
13354
|
+
}
|
|
13355
|
+
|
|
13356
|
+
.tp-map-chip-stale {
|
|
13357
|
+
color: var(--tp-muted);
|
|
13358
|
+
}
|
|
13359
|
+
|
|
13360
|
+
.tp-map-controls {
|
|
13361
|
+
position: absolute;
|
|
13362
|
+
inset-block-start: 0.75rem;
|
|
13363
|
+
inset-inline-end: 0.75rem;
|
|
13364
|
+
z-index: 500;
|
|
13365
|
+
display: flex;
|
|
13366
|
+
flex-direction: column;
|
|
13367
|
+
gap: 0.5rem;
|
|
13368
|
+
}
|
|
13369
|
+
|
|
13370
|
+
.tp-map-button {
|
|
13371
|
+
display: flex;
|
|
13372
|
+
align-items: center;
|
|
13373
|
+
justify-content: center;
|
|
13374
|
+
width: 2.25rem;
|
|
13375
|
+
height: 2.25rem;
|
|
13376
|
+
padding: 0;
|
|
13377
|
+
border: 0;
|
|
13378
|
+
font-size: 0.875rem;
|
|
13379
|
+
line-height: 1;
|
|
13380
|
+
border-radius: 0.75rem;
|
|
13381
|
+
background: var(--tp-surface);
|
|
13382
|
+
color: var(--tp-text);
|
|
13383
|
+
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.16);
|
|
13384
|
+
cursor: pointer;
|
|
13385
|
+
}
|
|
13386
|
+
|
|
13387
|
+
/* Leaflet positions markers with an inline transform, so a marker's shape is drawn on
|
|
13388
|
+
its child element; a transform on the marker itself would be overwritten. */
|
|
13389
|
+
.tp-map-marker {
|
|
13390
|
+
background: none;
|
|
13391
|
+
border: 0;
|
|
13392
|
+
}
|
|
13393
|
+
|
|
13394
|
+
.tp-root .tp-attribution,
|
|
13395
|
+
.tp-root .tp-attribution .fleetbase-attribution-link,
|
|
13396
|
+
.tp-root .tp-attribution .fleetbase-attribution-legal-link {
|
|
13397
|
+
color: var(--tp-muted);
|
|
13398
|
+
}
|
|
13399
|
+
|
|
13400
|
+
.tp-map-vehicle {
|
|
13401
|
+
transition: transform 1s linear;
|
|
13402
|
+
}
|
|
13403
|
+
|
|
13404
|
+
.tp-map-vehicle-dot {
|
|
13405
|
+
display: block;
|
|
13406
|
+
width: 100%;
|
|
13407
|
+
height: 100%;
|
|
13408
|
+
border: 3px solid var(--tp-surface);
|
|
13409
|
+
border-radius: 999px;
|
|
13410
|
+
background: var(--tp-accent);
|
|
13411
|
+
box-shadow: 0 0 0 6px var(--tp-accent-soft);
|
|
13412
|
+
}
|
|
13413
|
+
|
|
13414
|
+
.tp-map-vehicle-stale .tp-map-vehicle-dot {
|
|
13415
|
+
background: var(--tp-neutral);
|
|
13416
|
+
opacity: 0.5;
|
|
13417
|
+
}
|
|
13418
|
+
|
|
13419
|
+
/* Round markers with a label, as the console's order maps draw them: P, a waypoint's
|
|
13420
|
+
number, D, or a store. */
|
|
13421
|
+
.tp-map-point-dot {
|
|
13422
|
+
display: flex;
|
|
13423
|
+
align-items: center;
|
|
13424
|
+
justify-content: center;
|
|
13425
|
+
width: 100%;
|
|
13426
|
+
height: 100%;
|
|
13427
|
+
overflow: hidden;
|
|
13428
|
+
box-sizing: border-box;
|
|
13429
|
+
border: 2.5px solid #fff;
|
|
13430
|
+
border-radius: 999px;
|
|
13431
|
+
box-shadow: 0 2px 8px rgb(0 0 0 / 45%);
|
|
13432
|
+
color: #fff;
|
|
13433
|
+
font-family: ui-sans-serif, system-ui, sans-serif;
|
|
13434
|
+
font-size: 0.8125rem;
|
|
13435
|
+
font-weight: 700;
|
|
13436
|
+
line-height: 1;
|
|
13437
|
+
}
|
|
13438
|
+
|
|
13439
|
+
.tp-map-point-dot svg {
|
|
13440
|
+
width: 0.8125rem;
|
|
13441
|
+
height: 0.8125rem;
|
|
13442
|
+
fill: currentcolor;
|
|
13443
|
+
}
|
|
13444
|
+
|
|
13445
|
+
.tp-map-point-logo .tp-map-point-dot {
|
|
13446
|
+
background: #fff;
|
|
13447
|
+
}
|
|
13448
|
+
|
|
13449
|
+
.tp-map-point-dot img {
|
|
13450
|
+
width: 100%;
|
|
13451
|
+
height: 100%;
|
|
13452
|
+
object-fit: cover;
|
|
13453
|
+
}
|
|
13454
|
+
|
|
13455
|
+
.tp-map-point-selected .tp-map-point-dot {
|
|
13456
|
+
box-shadow:
|
|
13457
|
+
0 0 0 4px var(--tp-accent-soft),
|
|
13458
|
+
0 2px 8px rgb(0 0 0 / 45%);
|
|
13459
|
+
transform: scale(1.15);
|
|
13460
|
+
}
|
|
13461
|
+
|
|
13462
|
+
.tp-map-point-dimmed {
|
|
13463
|
+
opacity: 0.55;
|
|
13464
|
+
}
|
|
13465
|
+
|
|
13466
|
+
/* SVG presentation attributes don't resolve CSS variables, so the line takes its
|
|
13467
|
+
colour here rather than from Leaflet's `color` option. */
|
|
13468
|
+
.tp-map-route {
|
|
13469
|
+
stroke: var(--tp-accent);
|
|
13470
|
+
}
|
|
13471
|
+
|
|
13472
|
+
.tp-map-route-planned {
|
|
13473
|
+
stroke-opacity: 0.75;
|
|
13474
|
+
}
|
|
13475
|
+
|
|
13476
|
+
.tp-root .tp-map-label {
|
|
13477
|
+
max-width: 12rem;
|
|
13478
|
+
padding: 0.125rem 0.5rem;
|
|
13479
|
+
overflow: hidden;
|
|
13480
|
+
border: 1px solid var(--tp-border);
|
|
13481
|
+
border-radius: 999px;
|
|
13482
|
+
background: var(--tp-surface);
|
|
13483
|
+
box-shadow: 0 1px 3px rgb(0 0 0 / 15%);
|
|
13484
|
+
color: var(--tp-text);
|
|
13485
|
+
font-size: 0.75rem;
|
|
13486
|
+
font-weight: 600;
|
|
13487
|
+
text-overflow: ellipsis;
|
|
13488
|
+
white-space: nowrap;
|
|
13489
|
+
}
|
|
13490
|
+
|
|
13491
|
+
.tp-root .tp-map-label::before {
|
|
13492
|
+
display: none;
|
|
13493
|
+
}
|
|
13494
|
+
|
|
13495
|
+
/* Moved below its marker by the map when it would overlap another label. */
|
|
13496
|
+
.tp-root .tp-map-label-below {
|
|
13497
|
+
box-shadow: 0 -1px 3px rgb(0 0 0 / 15%);
|
|
13498
|
+
}
|
|
13499
|
+
|
|
13500
|
+
.tp-root .tp-map-label-vehicle {
|
|
13501
|
+
border-color: var(--tp-accent);
|
|
13502
|
+
color: var(--tp-accent);
|
|
13503
|
+
}
|
|
13504
|
+
|
|
13505
|
+
.tp-eta-time {
|
|
13506
|
+
font-size: 2.25rem;
|
|
13507
|
+
font-weight: 700;
|
|
13508
|
+
line-height: 1;
|
|
13509
|
+
letter-spacing: -0.025em;
|
|
13510
|
+
}
|
|
13511
|
+
|
|
13512
|
+
.tp-dl {
|
|
13513
|
+
display: flex;
|
|
13514
|
+
flex-direction: column;
|
|
13515
|
+
gap: 0.5rem;
|
|
13516
|
+
font-size: 0.9375rem;
|
|
13517
|
+
}
|
|
13518
|
+
|
|
13519
|
+
.tp-dl div {
|
|
13520
|
+
display: flex;
|
|
13521
|
+
justify-content: space-between;
|
|
13522
|
+
gap: 0.75rem;
|
|
13523
|
+
}
|
|
13524
|
+
|
|
13525
|
+
.tp-dl dt {
|
|
13526
|
+
color: var(--tp-muted);
|
|
13527
|
+
}
|
|
13528
|
+
|
|
13529
|
+
.tp-dl dd {
|
|
13530
|
+
font-weight: 600;
|
|
13531
|
+
text-align: end;
|
|
13532
|
+
}
|
|
13533
|
+
|
|
13534
|
+
.tp-avatar {
|
|
13535
|
+
display: inline-flex;
|
|
13536
|
+
align-items: center;
|
|
13537
|
+
justify-content: center;
|
|
13538
|
+
width: 3rem;
|
|
13539
|
+
height: 3rem;
|
|
13540
|
+
flex: none;
|
|
13541
|
+
border-radius: 999px;
|
|
13542
|
+
background: var(--tp-accent-soft);
|
|
13543
|
+
color: var(--tp-accent);
|
|
13544
|
+
font-size: 1.125rem;
|
|
13545
|
+
font-weight: 700;
|
|
13546
|
+
}
|
|
13547
|
+
|
|
13548
|
+
.tp-proof-grid {
|
|
13549
|
+
display: grid;
|
|
13550
|
+
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
13551
|
+
gap: 0.625rem;
|
|
13552
|
+
}
|
|
13553
|
+
|
|
13554
|
+
.tp-proof {
|
|
13555
|
+
display: flex;
|
|
13556
|
+
flex-direction: column;
|
|
13557
|
+
align-items: center;
|
|
13558
|
+
justify-content: center;
|
|
13559
|
+
gap: 0.375rem;
|
|
13560
|
+
height: 9.5rem;
|
|
13561
|
+
overflow: hidden;
|
|
13562
|
+
padding: 0;
|
|
13563
|
+
border: 1px solid var(--tp-border);
|
|
13564
|
+
border-radius: 0.875rem;
|
|
13565
|
+
background: var(--tp-surface2);
|
|
13566
|
+
color: var(--tp-muted);
|
|
13567
|
+
cursor: zoom-in;
|
|
13568
|
+
}
|
|
13569
|
+
|
|
13570
|
+
.tp-proof img {
|
|
13571
|
+
width: 100%;
|
|
13572
|
+
height: 100%;
|
|
13573
|
+
object-fit: cover;
|
|
13574
|
+
}
|
|
13575
|
+
|
|
13576
|
+
.tp-proof-empty {
|
|
13577
|
+
cursor: default;
|
|
13578
|
+
}
|
|
13579
|
+
|
|
13580
|
+
.tp-timeline {
|
|
13581
|
+
display: flex;
|
|
13582
|
+
flex-direction: column;
|
|
13583
|
+
margin: 0;
|
|
13584
|
+
padding: 0;
|
|
13585
|
+
list-style: none;
|
|
13586
|
+
}
|
|
13587
|
+
|
|
13588
|
+
.tp-timeline-day {
|
|
13589
|
+
padding: 0.375rem 0 0.25rem;
|
|
13590
|
+
}
|
|
13591
|
+
|
|
13592
|
+
.tp-timeline-entry {
|
|
13593
|
+
display: flex;
|
|
13594
|
+
align-items: baseline;
|
|
13595
|
+
gap: 0.75rem;
|
|
13596
|
+
padding-bottom: 0.875rem;
|
|
13597
|
+
}
|
|
13598
|
+
|
|
13599
|
+
.tp-timeline-dot {
|
|
13600
|
+
width: 0.75rem;
|
|
13601
|
+
height: 0.75rem;
|
|
13602
|
+
flex: none;
|
|
13603
|
+
box-sizing: border-box;
|
|
13604
|
+
border: 2px solid var(--tp-border);
|
|
13605
|
+
border-radius: 999px;
|
|
13606
|
+
}
|
|
13607
|
+
|
|
13608
|
+
/* Every update has happened: earlier ones are filled, the latest takes the accent. */
|
|
13609
|
+
.tp-timeline-entry .tp-timeline-dot {
|
|
13610
|
+
border-color: var(--tp-neutral);
|
|
13611
|
+
background: var(--tp-neutral);
|
|
13612
|
+
}
|
|
13613
|
+
|
|
13614
|
+
.tp-timeline-latest .tp-timeline-dot {
|
|
13615
|
+
border-color: var(--tp-accent);
|
|
13616
|
+
background: var(--tp-accent);
|
|
13617
|
+
}
|
|
13618
|
+
|
|
13619
|
+
.tp-item {
|
|
13620
|
+
display: flex;
|
|
13621
|
+
align-items: center;
|
|
13622
|
+
gap: 0.875rem;
|
|
13623
|
+
padding: 0.75rem 0;
|
|
13624
|
+
border-top: 1px solid var(--tp-border);
|
|
13625
|
+
}
|
|
13626
|
+
|
|
13627
|
+
.tp-item:first-of-type {
|
|
13628
|
+
border-top: 0;
|
|
13629
|
+
}
|
|
13630
|
+
|
|
13631
|
+
.tp-item-photo {
|
|
13632
|
+
display: inline-flex;
|
|
13633
|
+
align-items: center;
|
|
13634
|
+
justify-content: center;
|
|
13635
|
+
width: 3.5rem;
|
|
13636
|
+
height: 3.5rem;
|
|
13637
|
+
flex: none;
|
|
13638
|
+
overflow: hidden;
|
|
13639
|
+
border-radius: 0.75rem;
|
|
13640
|
+
background: var(--tp-surface2);
|
|
13641
|
+
color: var(--tp-muted);
|
|
13642
|
+
}
|
|
13643
|
+
|
|
13644
|
+
.tp-item-photo img {
|
|
13645
|
+
width: 100%;
|
|
13646
|
+
height: 100%;
|
|
13647
|
+
object-fit: cover;
|
|
13648
|
+
}
|
|
13649
|
+
|
|
13650
|
+
.tp-actions {
|
|
13651
|
+
display: grid;
|
|
13652
|
+
grid-template-columns: repeat(auto-fit, minmax(min(10rem, 100%), 1fr));
|
|
13653
|
+
gap: 0.5rem;
|
|
13654
|
+
}
|
|
13655
|
+
|
|
13656
|
+
.tp-list {
|
|
13657
|
+
display: flex;
|
|
13658
|
+
flex-direction: column;
|
|
13659
|
+
gap: 0.625rem;
|
|
13660
|
+
margin: 0;
|
|
13661
|
+
padding: 0;
|
|
13662
|
+
list-style: none;
|
|
13663
|
+
}
|
|
13664
|
+
|
|
13665
|
+
.tp-list-row {
|
|
13666
|
+
display: flex;
|
|
13667
|
+
align-items: center;
|
|
13668
|
+
gap: 0.875rem;
|
|
13669
|
+
width: 100%;
|
|
13670
|
+
min-height: 4.75rem;
|
|
13671
|
+
box-sizing: border-box;
|
|
13672
|
+
padding: 0.875rem 1rem;
|
|
13673
|
+
border: 1px solid var(--tp-border);
|
|
13674
|
+
border-radius: 0.875rem;
|
|
13675
|
+
background: var(--tp-surface);
|
|
13676
|
+
color: var(--tp-text);
|
|
13677
|
+
text-align: start;
|
|
13678
|
+
cursor: pointer;
|
|
13679
|
+
}
|
|
13680
|
+
|
|
13681
|
+
.tp-empty {
|
|
13682
|
+
display: flex;
|
|
13683
|
+
flex-direction: column;
|
|
13684
|
+
align-items: center;
|
|
13685
|
+
gap: 0.5rem;
|
|
13686
|
+
padding: 2.5rem 1.25rem;
|
|
13687
|
+
border: 1.5px dashed var(--tp-border);
|
|
13688
|
+
border-radius: 1rem;
|
|
13689
|
+
text-align: center;
|
|
13690
|
+
}
|
|
13691
|
+
|
|
13692
|
+
.tp-footer {
|
|
13693
|
+
display: flex;
|
|
13694
|
+
flex-direction: column;
|
|
13695
|
+
align-items: center;
|
|
13696
|
+
gap: 0.75rem;
|
|
13697
|
+
padding: 1.5rem 1.25rem 2rem;
|
|
13698
|
+
color: var(--tp-muted);
|
|
13699
|
+
font-size: 0.8125rem;
|
|
13700
|
+
text-align: center;
|
|
13701
|
+
}
|
|
13702
|
+
|
|
13703
|
+
.tp-toast-region {
|
|
13704
|
+
position: fixed;
|
|
13705
|
+
inset-inline: 1rem;
|
|
13706
|
+
bottom: 1.25rem;
|
|
13707
|
+
z-index: 1000;
|
|
13708
|
+
display: flex;
|
|
13709
|
+
justify-content: center;
|
|
13710
|
+
pointer-events: none;
|
|
13711
|
+
}
|
|
13712
|
+
|
|
13713
|
+
.tp-toast {
|
|
13714
|
+
display: flex;
|
|
13715
|
+
align-items: flex-start;
|
|
13716
|
+
gap: 0.75rem;
|
|
13717
|
+
width: 100%;
|
|
13718
|
+
max-width: 27.5rem;
|
|
13719
|
+
padding: 0.875rem 1rem;
|
|
13720
|
+
border-radius: 0.875rem;
|
|
13721
|
+
background: var(--tp-text);
|
|
13722
|
+
color: var(--tp-bg);
|
|
13723
|
+
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.22);
|
|
13724
|
+
pointer-events: auto;
|
|
13725
|
+
}
|
|
13726
|
+
|
|
13727
|
+
.tp-toast-title {
|
|
13728
|
+
font-weight: 600;
|
|
13729
|
+
}
|
|
13730
|
+
|
|
13731
|
+
.tp-toast-text {
|
|
13732
|
+
font-size: 0.875rem;
|
|
13733
|
+
opacity: 0.85;
|
|
13734
|
+
}
|
|
13735
|
+
|
|
13736
|
+
.tp-toast-close {
|
|
13737
|
+
margin-inline-start: auto;
|
|
13738
|
+
border: 0;
|
|
13739
|
+
background: transparent;
|
|
13740
|
+
color: inherit;
|
|
13741
|
+
cursor: pointer;
|
|
13742
|
+
}
|
|
13743
|
+
|
|
13744
|
+
.tp-lightbox {
|
|
13745
|
+
position: fixed;
|
|
13746
|
+
inset: 0;
|
|
13747
|
+
z-index: 1100;
|
|
13748
|
+
display: flex;
|
|
13749
|
+
align-items: center;
|
|
13750
|
+
justify-content: center;
|
|
13751
|
+
padding: 1.25rem;
|
|
13752
|
+
background: rgba(8, 12, 13, 0.8);
|
|
13753
|
+
}
|
|
13754
|
+
|
|
13755
|
+
.tp-lightbox-close {
|
|
13756
|
+
position: absolute;
|
|
13757
|
+
inset-block-start: 1rem;
|
|
13758
|
+
inset-inline-end: 1rem;
|
|
13759
|
+
width: 2.75rem;
|
|
13760
|
+
height: 2.75rem;
|
|
13761
|
+
border: 0;
|
|
13762
|
+
border-radius: 999px;
|
|
13763
|
+
background: var(--tp-surface);
|
|
13764
|
+
color: var(--tp-text);
|
|
13765
|
+
cursor: pointer;
|
|
13766
|
+
}
|
|
13767
|
+
|
|
13768
|
+
.tp-lightbox-figure {
|
|
13769
|
+
display: flex;
|
|
13770
|
+
flex-direction: column;
|
|
13771
|
+
gap: 0.75rem;
|
|
13772
|
+
max-width: 40rem;
|
|
13773
|
+
color: var(--tp-ink);
|
|
13774
|
+
text-align: center;
|
|
13775
|
+
}
|
|
13776
|
+
|
|
13777
|
+
.tp-lightbox-figure img {
|
|
13778
|
+
max-width: 100%;
|
|
13779
|
+
max-height: 75vh;
|
|
13780
|
+
border-radius: 1rem;
|
|
13781
|
+
background: var(--tp-surface);
|
|
13782
|
+
}
|
|
13783
|
+
|
|
13784
|
+
@media (width >= 960px) {
|
|
13785
|
+
.tp-main {
|
|
13786
|
+
padding: 2rem;
|
|
13787
|
+
}
|
|
13788
|
+
|
|
13789
|
+
.tp-headline {
|
|
13790
|
+
font-size: 2.75rem;
|
|
13791
|
+
}
|
|
13792
|
+
|
|
13793
|
+
.tp-full-with-map {
|
|
13794
|
+
grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
|
|
13795
|
+
grid-template-areas: 'chips chips' 'head map' 'body map';
|
|
13796
|
+
gap: 1.25rem 2rem;
|
|
13797
|
+
align-items: start;
|
|
13798
|
+
}
|
|
13799
|
+
|
|
13800
|
+
.tp-full-with-map .tp-full-map {
|
|
13801
|
+
position: sticky;
|
|
13802
|
+
top: 1.5rem;
|
|
13803
|
+
}
|
|
13804
|
+
|
|
13805
|
+
.tp-full-with-map .tp-map {
|
|
13806
|
+
height: 40rem;
|
|
13807
|
+
}
|
|
13808
|
+
|
|
13809
|
+
.tp-full:not(.tp-full-with-map) {
|
|
13810
|
+
max-width: 47.5rem;
|
|
13811
|
+
margin: 0 auto;
|
|
13812
|
+
}
|
|
13813
|
+
}
|
|
13814
|
+
|
|
13815
|
+
@media (prefers-reduced-motion: reduce) {
|
|
13816
|
+
.tp-live-dot,
|
|
13817
|
+
.tp-root .tp-map-vehicle,
|
|
13818
|
+
.tp-root .tp-map-vehicle-dot {
|
|
13819
|
+
animation: none;
|
|
13820
|
+
transition: none;
|
|
13821
|
+
}
|
|
13822
|
+
}
|