diff --git a/src/assets/images/landings/trendz/anomaly-detection-for-quick-reaction.webp b/src/assets/images/landings/trendz/anomaly-detection-for-quick-reaction.webp new file mode 100644 index 0000000000..df6cbcd12c Binary files /dev/null and b/src/assets/images/landings/trendz/anomaly-detection-for-quick-reaction.webp differ diff --git a/src/assets/images/landings/trendz/find-outliers-across-a-fleet.webp b/src/assets/images/landings/trendz/find-outliers-across-a-fleet.webp new file mode 100644 index 0000000000..4fee86bc05 Binary files /dev/null and b/src/assets/images/landings/trendz/find-outliers-across-a-fleet.webp differ diff --git a/src/assets/images/landings/trendz/forecasting-whats-likely-to-happen-next.webp b/src/assets/images/landings/trendz/forecasting-whats-likely-to-happen-next.webp new file mode 100644 index 0000000000..28b6042f31 Binary files /dev/null and b/src/assets/images/landings/trendz/forecasting-whats-likely-to-happen-next.webp differ diff --git a/src/assets/images/landings/trendz/hero-img.png b/src/assets/images/landings/trendz/hero-img.png deleted file mode 100644 index e574757e13..0000000000 Binary files a/src/assets/images/landings/trendz/hero-img.png and /dev/null differ diff --git a/src/assets/images/landings/trendz/icon-ai.svg b/src/assets/images/landings/trendz/icon-ai.svg new file mode 100644 index 0000000000..1491e6a8da --- /dev/null +++ b/src/assets/images/landings/trendz/icon-ai.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/images/landings/trendz/icon-anomaly.svg b/src/assets/images/landings/trendz/icon-anomaly.svg new file mode 100644 index 0000000000..c0e265f2df --- /dev/null +++ b/src/assets/images/landings/trendz/icon-anomaly.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/images/landings/trendz/icon-calculation.svg b/src/assets/images/landings/trendz/icon-calculation.svg new file mode 100644 index 0000000000..14f0cb5a84 --- /dev/null +++ b/src/assets/images/landings/trendz/icon-calculation.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/assets/images/landings/trendz/icon-chart-bar.svg b/src/assets/images/landings/trendz/icon-chart-bar.svg new file mode 100644 index 0000000000..2579338a80 --- /dev/null +++ b/src/assets/images/landings/trendz/icon-chart-bar.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/images/landings/trendz/icon-cloud.svg b/src/assets/images/landings/trendz/icon-cloud.svg new file mode 100644 index 0000000000..71e323884b --- /dev/null +++ b/src/assets/images/landings/trendz/icon-cloud.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/assets/images/landings/trendz/icon-cpu.svg b/src/assets/images/landings/trendz/icon-cpu.svg new file mode 100644 index 0000000000..5512fbbe99 --- /dev/null +++ b/src/assets/images/landings/trendz/icon-cpu.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/images/landings/trendz/icon-metric-explorer.svg b/src/assets/images/landings/trendz/icon-metric-explorer.svg new file mode 100644 index 0000000000..a55289512b --- /dev/null +++ b/src/assets/images/landings/trendz/icon-metric-explorer.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/images/landings/trendz/icon-prediction.svg b/src/assets/images/landings/trendz/icon-prediction.svg new file mode 100644 index 0000000000..f21ad45fa6 --- /dev/null +++ b/src/assets/images/landings/trendz/icon-prediction.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/assets/images/landings/trendz/icon-privat-cloud.svg b/src/assets/images/landings/trendz/icon-privat-cloud.svg new file mode 100644 index 0000000000..cdeba98837 --- /dev/null +++ b/src/assets/images/landings/trendz/icon-privat-cloud.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/assets/images/landings/trendz/icon-tree-structure.svg b/src/assets/images/landings/trendz/icon-tree-structure.svg new file mode 100644 index 0000000000..3bcca30baf --- /dev/null +++ b/src/assets/images/landings/trendz/icon-tree-structure.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/images/landings/trendz/icon-trendz.svg b/src/assets/images/landings/trendz/icon-trendz.svg new file mode 100644 index 0000000000..5b9964ac4f --- /dev/null +++ b/src/assets/images/landings/trendz/icon-trendz.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/images/landings/trendz/icon-webhooks.svg b/src/assets/images/landings/trendz/icon-webhooks.svg new file mode 100644 index 0000000000..3ce0d27c22 --- /dev/null +++ b/src/assets/images/landings/trendz/icon-webhooks.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/images/landings/trendz/predictive-maintenance-and-health-scoring.webp b/src/assets/images/landings/trendz/predictive-maintenance-and-health-scoring.webp new file mode 100644 index 0000000000..ecce2e8b8f Binary files /dev/null and b/src/assets/images/landings/trendz/predictive-maintenance-and-health-scoring.webp differ diff --git a/src/assets/images/landings/trendz/sphere.png b/src/assets/images/landings/trendz/sphere.png deleted file mode 100644 index 35da5629fc..0000000000 Binary files a/src/assets/images/landings/trendz/sphere.png and /dev/null differ diff --git a/src/assets/images/landings/trendz/trendz-hero-video-preview.webp b/src/assets/images/landings/trendz/trendz-hero-video-preview.webp new file mode 100644 index 0000000000..564e17868a Binary files /dev/null and b/src/assets/images/landings/trendz/trendz-hero-video-preview.webp differ diff --git a/src/assets/images/landings/trendz/turning-telemetry-into-clear-kpis.webp b/src/assets/images/landings/trendz/turning-telemetry-into-clear-kpis.webp new file mode 100644 index 0000000000..2e7aaa7b13 Binary files /dev/null and b/src/assets/images/landings/trendz/turning-telemetry-into-clear-kpis.webp differ diff --git a/src/assets/images/landings/trendz/utilization-and-state-analysis.webp b/src/assets/images/landings/trendz/utilization-and-state-analysis.webp new file mode 100644 index 0000000000..5d9125fd03 Binary files /dev/null and b/src/assets/images/landings/trendz/utilization-and-state-analysis.webp differ diff --git a/src/assets/images/usecases/air-quality/aiq-1.webp b/src/assets/images/usecases/air-quality/aiq-1.webp new file mode 100644 index 0000000000..311b896e80 Binary files /dev/null and b/src/assets/images/usecases/air-quality/aiq-1.webp differ diff --git a/src/assets/images/usecases/air-quality/aiq-2.webp b/src/assets/images/usecases/air-quality/aiq-2.webp new file mode 100644 index 0000000000..4e558f3a2f Binary files /dev/null and b/src/assets/images/usecases/air-quality/aiq-2.webp differ diff --git a/src/assets/images/usecases/air-quality/aiq-4.webp b/src/assets/images/usecases/air-quality/aiq-4.webp new file mode 100644 index 0000000000..ab3fa29cc3 Binary files /dev/null and b/src/assets/images/usecases/air-quality/aiq-4.webp differ diff --git a/src/assets/images/usecases/air-quality/aiq-5.webp b/src/assets/images/usecases/air-quality/aiq-5.webp new file mode 100644 index 0000000000..6fe4653602 Binary files /dev/null and b/src/assets/images/usecases/air-quality/aiq-5.webp differ diff --git a/src/assets/images/usecases/scada-energy-management/scada-energy-management-1.webp b/src/assets/images/usecases/scada-energy-management/scada-energy-management-1.webp new file mode 100644 index 0000000000..9bd3464c89 Binary files /dev/null and b/src/assets/images/usecases/scada-energy-management/scada-energy-management-1.webp differ diff --git a/src/assets/images/usecases/scada-energy-management/scada-energy-management-2.webp b/src/assets/images/usecases/scada-energy-management/scada-energy-management-2.webp new file mode 100644 index 0000000000..e2bd72907a Binary files /dev/null and b/src/assets/images/usecases/scada-energy-management/scada-energy-management-2.webp differ diff --git a/src/assets/images/usecases/scada-energy-management/scada-energy-management-3.webp b/src/assets/images/usecases/scada-energy-management/scada-energy-management-3.webp new file mode 100644 index 0000000000..a7db342d19 Binary files /dev/null and b/src/assets/images/usecases/scada-energy-management/scada-energy-management-3.webp differ diff --git a/src/assets/images/usecases/smart-metering/smart-metering-1.webp b/src/assets/images/usecases/smart-metering/smart-metering-1.webp new file mode 100644 index 0000000000..6c19e51ed3 Binary files /dev/null and b/src/assets/images/usecases/smart-metering/smart-metering-1.webp differ diff --git a/src/assets/images/usecases/smart-metering/smart-metering-2.webp b/src/assets/images/usecases/smart-metering/smart-metering-2.webp new file mode 100644 index 0000000000..403a4c2653 Binary files /dev/null and b/src/assets/images/usecases/smart-metering/smart-metering-2.webp differ diff --git a/src/assets/images/usecases/smart-metering/smart-metering-3.webp b/src/assets/images/usecases/smart-metering/smart-metering-3.webp new file mode 100644 index 0000000000..4fb70d896b Binary files /dev/null and b/src/assets/images/usecases/smart-metering/smart-metering-3.webp differ diff --git a/src/assets/images/usecases/smart-metering/smart-metering-4.webp b/src/assets/images/usecases/smart-metering/smart-metering-4.webp new file mode 100644 index 0000000000..da1c2620c7 Binary files /dev/null and b/src/assets/images/usecases/smart-metering/smart-metering-4.webp differ diff --git a/src/assets/images/usecases/smart-retail/smart-retail-1.webp b/src/assets/images/usecases/smart-retail/smart-retail-1.webp new file mode 100644 index 0000000000..ea39e518a4 Binary files /dev/null and b/src/assets/images/usecases/smart-retail/smart-retail-1.webp differ diff --git a/src/assets/images/usecases/smart-retail/smart-retail-2.webp b/src/assets/images/usecases/smart-retail/smart-retail-2.webp new file mode 100644 index 0000000000..29189f22e9 Binary files /dev/null and b/src/assets/images/usecases/smart-retail/smart-retail-2.webp differ diff --git a/src/assets/images/usecases/smart-retail/smart-retail-3.webp b/src/assets/images/usecases/smart-retail/smart-retail-3.webp new file mode 100644 index 0000000000..f357e80a2f Binary files /dev/null and b/src/assets/images/usecases/smart-retail/smart-retail-3.webp differ diff --git a/src/assets/images/usecases/smart-retail/smart-retail-4.webp b/src/assets/images/usecases/smart-retail/smart-retail-4.webp new file mode 100644 index 0000000000..9dced6d396 Binary files /dev/null and b/src/assets/images/usecases/smart-retail/smart-retail-4.webp differ diff --git a/src/assets/images/usecases/smart-retail/smart-retail-5.webp b/src/assets/images/usecases/smart-retail/smart-retail-5.webp new file mode 100644 index 0000000000..7e9da9687d Binary files /dev/null and b/src/assets/images/usecases/smart-retail/smart-retail-5.webp differ diff --git a/src/assets/images/usecases/smart-retail/smart-retail-6.webp b/src/assets/images/usecases/smart-retail/smart-retail-6.webp new file mode 100644 index 0000000000..c19de981c5 Binary files /dev/null and b/src/assets/images/usecases/smart-retail/smart-retail-6.webp differ diff --git a/src/assets/images/usecases/smart-retail/smart-retail-7.webp b/src/assets/images/usecases/smart-retail/smart-retail-7.webp new file mode 100644 index 0000000000..80566cfd0f Binary files /dev/null and b/src/assets/images/usecases/smart-retail/smart-retail-7.webp differ diff --git a/src/assets/images/usecases/water-metering/water-metering-1.webp b/src/assets/images/usecases/water-metering/water-metering-1.webp new file mode 100644 index 0000000000..d8d44f8cf0 Binary files /dev/null and b/src/assets/images/usecases/water-metering/water-metering-1.webp differ diff --git a/src/assets/images/usecases/water-metering/water-metering-2.webp b/src/assets/images/usecases/water-metering/water-metering-2.webp new file mode 100644 index 0000000000..9993e9a017 Binary files /dev/null and b/src/assets/images/usecases/water-metering/water-metering-2.webp differ diff --git a/src/assets/images/usecases/water-metering/water-metering-3.webp b/src/assets/images/usecases/water-metering/water-metering-3.webp new file mode 100644 index 0000000000..bdc4b0ca2f Binary files /dev/null and b/src/assets/images/usecases/water-metering/water-metering-3.webp differ diff --git a/src/assets/images/usecases/water-metering/water-metering-4.webp b/src/assets/images/usecases/water-metering/water-metering-4.webp new file mode 100644 index 0000000000..67da6f472d Binary files /dev/null and b/src/assets/images/usecases/water-metering/water-metering-4.webp differ diff --git a/src/assets/images/usecases/water-metering/water-metering-5.webp b/src/assets/images/usecases/water-metering/water-metering-5.webp new file mode 100644 index 0000000000..2066f2c145 Binary files /dev/null and b/src/assets/images/usecases/water-metering/water-metering-5.webp differ diff --git a/src/assets/images/user-guide/ai-assistant/ai-credits-1.png b/src/assets/images/user-guide/ai-assistant/ai-credits-1.png index 90417f7919..e2882cbfdf 100644 Binary files a/src/assets/images/user-guide/ai-assistant/ai-credits-1.png and b/src/assets/images/user-guide/ai-assistant/ai-credits-1.png differ diff --git a/src/assets/images/user-guide/ai-assistant/ai-credits-pack-customize.png b/src/assets/images/user-guide/ai-assistant/ai-credits-pack-customize.png new file mode 100644 index 0000000000..8d9f55eab3 Binary files /dev/null and b/src/assets/images/user-guide/ai-assistant/ai-credits-pack-customize.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/create-loriot-account-1.png b/src/assets/images/user-guide/integrations/loriot/create-loriot-account-1.png index 35410ccdd8..bedf19313d 100644 Binary files a/src/assets/images/user-guide/integrations/loriot/create-loriot-account-1.png and b/src/assets/images/user-guide/integrations/loriot/create-loriot-account-1.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/create-loriot-account-2.png b/src/assets/images/user-guide/integrations/loriot/create-loriot-account-2.png index 894d969403..198ee89ae4 100644 Binary files a/src/assets/images/user-guide/integrations/loriot/create-loriot-account-2.png and b/src/assets/images/user-guide/integrations/loriot/create-loriot-account-2.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/create-loriot-account-3.png b/src/assets/images/user-guide/integrations/loriot/create-loriot-account-3.png index 87dbddae86..9e90a745dd 100644 Binary files a/src/assets/images/user-guide/integrations/loriot/create-loriot-account-3.png and b/src/assets/images/user-guide/integrations/loriot/create-loriot-account-3.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/create-loriot-account-4.png b/src/assets/images/user-guide/integrations/loriot/create-loriot-account-4.png index 3745c229d6..d2d9582f6a 100644 Binary files a/src/assets/images/user-guide/integrations/loriot/create-loriot-account-4.png and b/src/assets/images/user-guide/integrations/loriot/create-loriot-account-4.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/create-loriot-account-5.png b/src/assets/images/user-guide/integrations/loriot/create-loriot-account-5.png new file mode 100644 index 0000000000..879a99e3aa Binary files /dev/null and b/src/assets/images/user-guide/integrations/loriot/create-loriot-account-5.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-add-integration-4-1.png b/src/assets/images/user-guide/integrations/loriot/loriot-add-integration-4-1.png index 691d71dd37..3c5bc56103 100644 Binary files a/src/assets/images/user-guide/integrations/loriot/loriot-add-integration-4-1.png and b/src/assets/images/user-guide/integrations/loriot/loriot-add-integration-4-1.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-add-integration-4-2.png b/src/assets/images/user-guide/integrations/loriot/loriot-add-integration-4-2.png index 8f2be28835..d05d4f57eb 100644 Binary files a/src/assets/images/user-guide/integrations/loriot/loriot-add-integration-4-2.png and b/src/assets/images/user-guide/integrations/loriot/loriot-add-integration-4-2.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-add-integration-send-downlink.png b/src/assets/images/user-guide/integrations/loriot/loriot-add-integration-send-downlink.png index 513367f4b5..9c1e3e132b 100644 Binary files a/src/assets/images/user-guide/integrations/loriot/loriot-add-integration-send-downlink.png and b/src/assets/images/user-guide/integrations/loriot/loriot-add-integration-send-downlink.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-application-id.png b/src/assets/images/user-guide/integrations/loriot/loriot-application-id.png deleted file mode 100644 index 1325ffedb4..0000000000 Binary files a/src/assets/images/user-guide/integrations/loriot/loriot-application-id.png and /dev/null differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-application-log.png b/src/assets/images/user-guide/integrations/loriot/loriot-application-log.png new file mode 100644 index 0000000000..f3f9b03f81 Binary files /dev/null and b/src/assets/images/user-guide/integrations/loriot/loriot-application-log.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-copy-http-endpoint.png b/src/assets/images/user-guide/integrations/loriot/loriot-copy-http-endpoint.png deleted file mode 100644 index ae01cab7fa..0000000000 Binary files a/src/assets/images/user-guide/integrations/loriot/loriot-copy-http-endpoint.png and /dev/null differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-create-application-1.png b/src/assets/images/user-guide/integrations/loriot/loriot-create-application-1.png new file mode 100644 index 0000000000..a9ec7ea98c Binary files /dev/null and b/src/assets/images/user-guide/integrations/loriot/loriot-create-application-1.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-create-application-2.png b/src/assets/images/user-guide/integrations/loriot/loriot-create-application-2.png new file mode 100644 index 0000000000..d423b5b76b Binary files /dev/null and b/src/assets/images/user-guide/integrations/loriot/loriot-create-application-2.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-create-application-3.png b/src/assets/images/user-guide/integrations/loriot/loriot-create-application-3.png new file mode 100644 index 0000000000..2b0ca8984f Binary files /dev/null and b/src/assets/images/user-guide/integrations/loriot/loriot-create-application-3.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-create-application-4-2.png b/src/assets/images/user-guide/integrations/loriot/loriot-create-application-4-2.png new file mode 100644 index 0000000000..a6ce5c3bae Binary files /dev/null and b/src/assets/images/user-guide/integrations/loriot/loriot-create-application-4-2.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-create-application-4.png b/src/assets/images/user-guide/integrations/loriot/loriot-create-application-4.png new file mode 100644 index 0000000000..a6ce5c3bae Binary files /dev/null and b/src/assets/images/user-guide/integrations/loriot/loriot-create-application-4.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-device-attributes-1.png b/src/assets/images/user-guide/integrations/loriot/loriot-device-attributes-1.png deleted file mode 100644 index 1539045070..0000000000 Binary files a/src/assets/images/user-guide/integrations/loriot/loriot-device-attributes-1.png and /dev/null differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-device-attributes-2.png b/src/assets/images/user-guide/integrations/loriot/loriot-device-attributes-2.png deleted file mode 100644 index 0a14cbd363..0000000000 Binary files a/src/assets/images/user-guide/integrations/loriot/loriot-device-attributes-2.png and /dev/null differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-device-eui.png b/src/assets/images/user-guide/integrations/loriot/loriot-device-eui.png deleted file mode 100644 index 76714c2b87..0000000000 Binary files a/src/assets/images/user-guide/integrations/loriot/loriot-device-eui.png and /dev/null differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-device-provisioning-1.png b/src/assets/images/user-guide/integrations/loriot/loriot-device-provisioning-1.png new file mode 100644 index 0000000000..bc8633484c Binary files /dev/null and b/src/assets/images/user-guide/integrations/loriot/loriot-device-provisioning-1.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-device-provisioning-2.png b/src/assets/images/user-guide/integrations/loriot/loriot-device-provisioning-2.png new file mode 100644 index 0000000000..b89881436e Binary files /dev/null and b/src/assets/images/user-guide/integrations/loriot/loriot-device-provisioning-2.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-devices-all-shared-attributes-update.png b/src/assets/images/user-guide/integrations/loriot/loriot-devices-all-shared-attributes-update.png deleted file mode 100644 index 798ff584e1..0000000000 Binary files a/src/assets/images/user-guide/integrations/loriot/loriot-devices-all-shared-attributes-update.png and /dev/null differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-devices-all-shared-attributes.png b/src/assets/images/user-guide/integrations/loriot/loriot-devices-all-shared-attributes.png deleted file mode 100644 index c295a82862..0000000000 Binary files a/src/assets/images/user-guide/integrations/loriot/loriot-devices-all-shared-attributes.png and /dev/null differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-devices-downlink-queue.png b/src/assets/images/user-guide/integrations/loriot/loriot-devices-downlink-queue.png index 960207bf0a..484439b12e 100644 Binary files a/src/assets/images/user-guide/integrations/loriot/loriot-devices-downlink-queue.png and b/src/assets/images/user-guide/integrations/loriot/loriot-devices-downlink-queue.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-devices.png b/src/assets/images/user-guide/integrations/loriot/loriot-devices.png deleted file mode 100644 index 053ebb6eca..0000000000 Binary files a/src/assets/images/user-guide/integrations/loriot/loriot-devices.png and /dev/null differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-downlink-converter-1.png b/src/assets/images/user-guide/integrations/loriot/loriot-downlink-converter-1.png new file mode 100644 index 0000000000..f9abad7ec9 Binary files /dev/null and b/src/assets/images/user-guide/integrations/loriot/loriot-downlink-converter-1.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-downlink-converter-2.png b/src/assets/images/user-guide/integrations/loriot/loriot-downlink-converter-2.png new file mode 100644 index 0000000000..7711366311 Binary files /dev/null and b/src/assets/images/user-guide/integrations/loriot/loriot-downlink-converter-2.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-downlink-converter-3.png b/src/assets/images/user-guide/integrations/loriot/loriot-downlink-converter-3.png new file mode 100644 index 0000000000..df2c519f68 Binary files /dev/null and b/src/assets/images/user-guide/integrations/loriot/loriot-downlink-converter-3.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-downlink-converter-4.png b/src/assets/images/user-guide/integrations/loriot/loriot-downlink-converter-4.png new file mode 100644 index 0000000000..e599eefb11 Binary files /dev/null and b/src/assets/images/user-guide/integrations/loriot/loriot-downlink-converter-4.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-downlink-converter-events-in.png b/src/assets/images/user-guide/integrations/loriot/loriot-downlink-converter-events-in.png deleted file mode 100644 index 2e02243c96..0000000000 Binary files a/src/assets/images/user-guide/integrations/loriot/loriot-downlink-converter-events-in.png and /dev/null differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-downlink-converter-events-out.png b/src/assets/images/user-guide/integrations/loriot/loriot-downlink-converter-events-out.png deleted file mode 100644 index c1a76dc389..0000000000 Binary files a/src/assets/images/user-guide/integrations/loriot/loriot-downlink-converter-events-out.png and /dev/null differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-downlink-converters-1-javascript.png b/src/assets/images/user-guide/integrations/loriot/loriot-downlink-converters-1-javascript.png deleted file mode 100644 index 8a061fce15..0000000000 Binary files a/src/assets/images/user-guide/integrations/loriot/loriot-downlink-converters-1-javascript.png and /dev/null differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-downlink-converters-1-tbel.png b/src/assets/images/user-guide/integrations/loriot/loriot-downlink-converters-1-tbel.png deleted file mode 100644 index 20051069b4..0000000000 Binary files a/src/assets/images/user-guide/integrations/loriot/loriot-downlink-converters-1-tbel.png and /dev/null differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-enable-security-1.png b/src/assets/images/user-guide/integrations/loriot/loriot-enable-security-1.png index c84e2e076e..6e6a711a07 100644 Binary files a/src/assets/images/user-guide/integrations/loriot/loriot-enable-security-1.png and b/src/assets/images/user-guide/integrations/loriot/loriot-enable-security-1.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-enable-security-2.png b/src/assets/images/user-guide/integrations/loriot/loriot-enable-security-2.png index 33c8186536..f730f93cc0 100644 Binary files a/src/assets/images/user-guide/integrations/loriot/loriot-enable-security-2.png and b/src/assets/images/user-guide/integrations/loriot/loriot-enable-security-2.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-enable-security-3.png b/src/assets/images/user-guide/integrations/loriot/loriot-enable-security-3.png index 41dfdad5b3..c602e1174b 100644 Binary files a/src/assets/images/user-guide/integrations/loriot/loriot-enable-security-3.png and b/src/assets/images/user-guide/integrations/loriot/loriot-enable-security-3.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-enable-security-4.png b/src/assets/images/user-guide/integrations/loriot/loriot-enable-security-4.png new file mode 100644 index 0000000000..3e738221ca Binary files /dev/null and b/src/assets/images/user-guide/integrations/loriot/loriot-enable-security-4.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-enable-security-5.png b/src/assets/images/user-guide/integrations/loriot/loriot-enable-security-5.png new file mode 100644 index 0000000000..9558ac8f6e Binary files /dev/null and b/src/assets/images/user-guide/integrations/loriot/loriot-enable-security-5.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-enable-security-6.png b/src/assets/images/user-guide/integrations/loriot/loriot-enable-security-6.png new file mode 100644 index 0000000000..cd41ecc1ad Binary files /dev/null and b/src/assets/images/user-guide/integrations/loriot/loriot-enable-security-6.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-enroll-device-1.png b/src/assets/images/user-guide/integrations/loriot/loriot-enroll-device-1.png new file mode 100644 index 0000000000..1bfabd639e Binary files /dev/null and b/src/assets/images/user-guide/integrations/loriot/loriot-enroll-device-1.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-enroll-device-2.png b/src/assets/images/user-guide/integrations/loriot/loriot-enroll-device-2.png new file mode 100644 index 0000000000..b4af9ad75f Binary files /dev/null and b/src/assets/images/user-guide/integrations/loriot/loriot-enroll-device-2.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-enroll-device-3.png b/src/assets/images/user-guide/integrations/loriot/loriot-enroll-device-3.png new file mode 100644 index 0000000000..2ea577b6c0 Binary files /dev/null and b/src/assets/images/user-guide/integrations/loriot/loriot-enroll-device-3.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-enroll-device-4.png b/src/assets/images/user-guide/integrations/loriot/loriot-enroll-device-4.png new file mode 100644 index 0000000000..ea6fc93b89 Binary files /dev/null and b/src/assets/images/user-guide/integrations/loriot/loriot-enroll-device-4.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-http-push-1.png b/src/assets/images/user-guide/integrations/loriot/loriot-http-push-1.png index 4182386c36..593ead07aa 100644 Binary files a/src/assets/images/user-guide/integrations/loriot/loriot-http-push-1.png and b/src/assets/images/user-guide/integrations/loriot/loriot-http-push-1.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-http-push-2.png b/src/assets/images/user-guide/integrations/loriot/loriot-http-push-2.png index 5257f15d95..3ac1c8862f 100644 Binary files a/src/assets/images/user-guide/integrations/loriot/loriot-http-push-2.png and b/src/assets/images/user-guide/integrations/loriot/loriot-http-push-2.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-http-push-3.png b/src/assets/images/user-guide/integrations/loriot/loriot-http-push-3.png index f956b2ac5c..8f2be56a3c 100644 Binary files a/src/assets/images/user-guide/integrations/loriot/loriot-http-push-3.png and b/src/assets/images/user-guide/integrations/loriot/loriot-http-push-3.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-http-push-4.png b/src/assets/images/user-guide/integrations/loriot/loriot-http-push-4.png index 8928374006..a89eb42ea3 100644 Binary files a/src/assets/images/user-guide/integrations/loriot/loriot-http-push-4.png and b/src/assets/images/user-guide/integrations/loriot/loriot-http-push-4.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-http-push-5.png b/src/assets/images/user-guide/integrations/loriot/loriot-http-push-5.png index e8189b8e92..239c562de5 100644 Binary files a/src/assets/images/user-guide/integrations/loriot/loriot-http-push-5.png and b/src/assets/images/user-guide/integrations/loriot/loriot-http-push-5.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-http-push-6.png b/src/assets/images/user-guide/integrations/loriot/loriot-http-push-6.png new file mode 100644 index 0000000000..455fc8b9a2 Binary files /dev/null and b/src/assets/images/user-guide/integrations/loriot/loriot-http-push-6.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-integration-events-1.png b/src/assets/images/user-guide/integrations/loriot/loriot-integration-events-1.png new file mode 100644 index 0000000000..7427c88edc Binary files /dev/null and b/src/assets/images/user-guide/integrations/loriot/loriot-integration-events-1.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-integration-events-2.png b/src/assets/images/user-guide/integrations/loriot/loriot-integration-events-2.png new file mode 100644 index 0000000000..d9d1a8793b Binary files /dev/null and b/src/assets/images/user-guide/integrations/loriot/loriot-integration-events-2.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-rule-chain-1.png b/src/assets/images/user-guide/integrations/loriot/loriot-rule-chain-1.png new file mode 100644 index 0000000000..8c76452ec2 Binary files /dev/null and b/src/assets/images/user-guide/integrations/loriot/loriot-rule-chain-1.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-rule-chain-2.png b/src/assets/images/user-guide/integrations/loriot/loriot-rule-chain-2.png new file mode 100644 index 0000000000..a75db09755 Binary files /dev/null and b/src/assets/images/user-guide/integrations/loriot/loriot-rule-chain-2.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-rule-chain-3.png b/src/assets/images/user-guide/integrations/loriot/loriot-rule-chain-3.png new file mode 100644 index 0000000000..27fb7ae74e Binary files /dev/null and b/src/assets/images/user-guide/integrations/loriot/loriot-rule-chain-3.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-rule-chain-4.png b/src/assets/images/user-guide/integrations/loriot/loriot-rule-chain-4.png new file mode 100644 index 0000000000..e5846b9caf Binary files /dev/null and b/src/assets/images/user-guide/integrations/loriot/loriot-rule-chain-4.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-rule-chain-5.png b/src/assets/images/user-guide/integrations/loriot/loriot-rule-chain-5.png new file mode 100644 index 0000000000..355eda42ad Binary files /dev/null and b/src/assets/images/user-guide/integrations/loriot/loriot-rule-chain-5.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-rule-chain-6.png b/src/assets/images/user-guide/integrations/loriot/loriot-rule-chain-6.png new file mode 100644 index 0000000000..cdd15938f4 Binary files /dev/null and b/src/assets/images/user-guide/integrations/loriot/loriot-rule-chain-6.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-rule-chain-7.png b/src/assets/images/user-guide/integrations/loriot/loriot-rule-chain-7.png new file mode 100644 index 0000000000..f8c44d34a5 Binary files /dev/null and b/src/assets/images/user-guide/integrations/loriot/loriot-rule-chain-7.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-rule-chain-integration-downlink.png b/src/assets/images/user-guide/integrations/loriot/loriot-rule-chain-integration-downlink.png deleted file mode 100644 index fb90270675..0000000000 Binary files a/src/assets/images/user-guide/integrations/loriot/loriot-rule-chain-integration-downlink.png and /dev/null differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-send-downlink-access-token.png b/src/assets/images/user-guide/integrations/loriot/loriot-send-downlink-access-token.png new file mode 100644 index 0000000000..74c6f4824a Binary files /dev/null and b/src/assets/images/user-guide/integrations/loriot/loriot-send-downlink-access-token.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-send-downlink-settings.png b/src/assets/images/user-guide/integrations/loriot/loriot-send-downlink-settings.png new file mode 100644 index 0000000000..334963d3c7 Binary files /dev/null and b/src/assets/images/user-guide/integrations/loriot/loriot-send-downlink-settings.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-server-and-application-id.png b/src/assets/images/user-guide/integrations/loriot/loriot-server-and-application-id.png new file mode 100644 index 0000000000..edd108630a Binary files /dev/null and b/src/assets/images/user-guide/integrations/loriot/loriot-server-and-application-id.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-server.png b/src/assets/images/user-guide/integrations/loriot/loriot-server.png deleted file mode 100644 index 0d850dfd2f..0000000000 Binary files a/src/assets/images/user-guide/integrations/loriot/loriot-server.png and /dev/null differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-test-downlink-1.png b/src/assets/images/user-guide/integrations/loriot/loriot-test-downlink-1.png new file mode 100644 index 0000000000..bab744c15d Binary files /dev/null and b/src/assets/images/user-guide/integrations/loriot/loriot-test-downlink-1.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-test-downlink-2.png b/src/assets/images/user-guide/integrations/loriot/loriot-test-downlink-2.png new file mode 100644 index 0000000000..6a4b18a3d2 Binary files /dev/null and b/src/assets/images/user-guide/integrations/loriot/loriot-test-downlink-2.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-test-downlink-3.png b/src/assets/images/user-guide/integrations/loriot/loriot-test-downlink-3.png new file mode 100644 index 0000000000..ef60ad32e7 Binary files /dev/null and b/src/assets/images/user-guide/integrations/loriot/loriot-test-downlink-3.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-test-downlink-4.png b/src/assets/images/user-guide/integrations/loriot/loriot-test-downlink-4.png new file mode 100644 index 0000000000..bbb71d1fd8 Binary files /dev/null and b/src/assets/images/user-guide/integrations/loriot/loriot-test-downlink-4.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-test-downlink-5.png b/src/assets/images/user-guide/integrations/loriot/loriot-test-downlink-5.png new file mode 100644 index 0000000000..4c995edcff Binary files /dev/null and b/src/assets/images/user-guide/integrations/loriot/loriot-test-downlink-5.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-uplink-converter-events-1.png b/src/assets/images/user-guide/integrations/loriot/loriot-uplink-converter-events-1.png index 8e288f9655..3d0447e663 100644 Binary files a/src/assets/images/user-guide/integrations/loriot/loriot-uplink-converter-events-1.png and b/src/assets/images/user-guide/integrations/loriot/loriot-uplink-converter-events-1.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-uplink-converter-events-2.png b/src/assets/images/user-guide/integrations/loriot/loriot-uplink-converter-events-2.png index 15fc8a6e84..bae9fe1ffe 100644 Binary files a/src/assets/images/user-guide/integrations/loriot/loriot-uplink-converter-events-2.png and b/src/assets/images/user-guide/integrations/loriot/loriot-uplink-converter-events-2.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-uplink-converter-events-3.png b/src/assets/images/user-guide/integrations/loriot/loriot-uplink-converter-events-3.png index 4f2d2ff7af..1f1bb05c10 100644 Binary files a/src/assets/images/user-guide/integrations/loriot/loriot-uplink-converter-events-3.png and b/src/assets/images/user-guide/integrations/loriot/loriot-uplink-converter-events-3.png differ diff --git a/src/assets/images/user-guide/integrations/loriot/loriot-uplink-converter-events-4.png b/src/assets/images/user-guide/integrations/loriot/loriot-uplink-converter-events-4.png index 531687f6ae..0d3297ebb3 100644 Binary files a/src/assets/images/user-guide/integrations/loriot/loriot-uplink-converter-events-4.png and b/src/assets/images/user-guide/integrations/loriot/loriot-uplink-converter-events-4.png differ diff --git a/src/components/Carousel/Carousel.astro b/src/components/Carousel/Carousel.astro new file mode 100644 index 0000000000..2e35fc1433 --- /dev/null +++ b/src/components/Carousel/Carousel.astro @@ -0,0 +1,322 @@ +--- +import { Icon } from 'astro-icon/components'; + +interface Props { + /** Accessible name for the carousel region. */ + ariaLabel: string; + loop?: boolean; + autoplay?: boolean; + autoplayInterval?: number; + /** 'multi' shows three slides on desktop, two below lg, one below md; 'single' (default) shows one. */ + layout?: 'single' | 'multi'; + showArrows?: boolean; + /** 'overlay' floats round buttons over the slides; 'header' puts them in a title row above. */ + arrowPlacement?: 'overlay' | 'header'; + /** Rendered as an h2 in the header row (header placement only). */ + title?: string; + showDots?: boolean; + /** Number of slides — SSRs that many dots so they don't pop in after JS init. + * Must equal the number of children; carousel-init.ts rebuilds + * the dot row from the real slide count once JS runs. */ + slideCount?: number; + /** Expand the clip box 2px so a slide's border/shadow isn't clipped at the viewport edge (bordered cards). */ + bleed?: boolean; + class?: string; +} + +const { + ariaLabel, + loop = true, + autoplay = false, + autoplayInterval = 5000, + layout = 'single', + showArrows = true, + arrowPlacement = 'overlay', + title, + showDots = true, + slideCount = 0, + bleed = false, + class: className = '', +} = Astro.props; +--- + +
+ { + arrowPlacement === 'header' && (title || showArrows) && ( +
+ {title && } + {showArrows && ( + + )} +
+ ) + } + + + + { + showDots && ( + + ) + } +
+ + + + diff --git a/src/components/Carousel/CarouselSlide.astro b/src/components/Carousel/CarouselSlide.astro new file mode 100644 index 0000000000..6227ad8a2c --- /dev/null +++ b/src/components/Carousel/CarouselSlide.astro @@ -0,0 +1,33 @@ +--- +interface Props { + class?: string; + /** 0-based position + total — SSRs the "N of M" accessible name. Optional: + * carousel-init.ts fills it in client-side when these are omitted. */ + index?: number; + total?: number; +} + +const { class: className = '', index, total } = Astro.props; +const slideLabel = index != null && total != null ? `${index + 1} of ${total}` : undefined; +--- + +
+ +
+ + diff --git a/src/components/Carousel/carousel-init.ts b/src/components/Carousel/carousel-init.ts new file mode 100644 index 0000000000..fd2c4f3849 --- /dev/null +++ b/src/components/Carousel/carousel-init.ts @@ -0,0 +1,153 @@ +import type { EmblaCarouselType } from 'embla-carousel'; + +type EmblaCarouselFn = typeof import('embla-carousel').default; +type AutoplayFn = typeof import('embla-carousel-autoplay').default; +let emblaPromise: Promise<[EmblaCarouselFn, AutoplayFn]> | null = null; +const loadEmbla = () => + (emblaPromise ??= Promise.all([ + import('embla-carousel').then((m) => m.default), + import('embla-carousel-autoplay').then((m) => m.default), + ])); + +function createDot(index: number): HTMLButtonElement { + const dot = document.createElement('button'); + dot.type = 'button'; + dot.className = 'carousel-dot'; + dot.dataset.index = index.toString(); + dot.setAttribute('aria-label', `Go to slide ${index + 1}`); + return dot; +} + +export async function initCarousel(wrapper: HTMLElement) { + const [EmblaCarousel, Autoplay] = await loadEmbla(); + const reducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches; + + const viewport = wrapper.querySelector('.carousel-viewport'); + if (!viewport) return; + + const loop = wrapper.dataset.loop === 'true'; + const autoplay = wrapper.dataset.autoplay === 'true'; + const autoplayInterval = parseInt(wrapper.dataset.autoplayInterval || '5000', 10); + + // On touch (coarse pointer) a swipe should stop autoplay so it doesn't fight the user — + // mouseenter/leave never fires there, so stopOnMouseEnter alone can't pause it. On mouse, + // keep hover-pause + resume-after-drag (stopOnInteraction:false enables the pointerUp resume). + const coarsePointer = window.matchMedia('(pointer: coarse)').matches; + const plugins = + autoplay && !reducedMotion + ? [ + Autoplay({ + delay: autoplayInterval, + stopOnInteraction: coarsePointer, + stopOnMouseEnter: true, + }), + ] + : []; + + const embla = EmblaCarousel( + viewport, + { + loop, + align: 'start', + containScroll: 'trimSnaps', + }, + plugins + ); + + // Slot-mode slides can't know their position server-side + const slides = viewport.querySelectorAll('.carousel-slide'); + slides.forEach((slide, index) => { + if (!slide.hasAttribute('aria-label')) { + slide.setAttribute('aria-label', `${index + 1} of ${slides.length}`); + } + }); + + // Navigation buttons + const prevButton = wrapper.querySelector('.carousel-button-prev'); + const nextButton = wrapper.querySelector('.carousel-button-next'); + + if (prevButton) { + prevButton.addEventListener('click', () => embla.scrollPrev()); + } + + if (nextButton) { + nextButton.addEventListener('click', () => embla.scrollNext()); + } + + // Dots — SSR-rendered in items mode, built from snap points in slot mode + const dotsContainer = wrapper.querySelector('.carousel-dots'); + if (dotsContainer && !dotsContainer.children.length) { + embla.scrollSnapList().forEach((_, index) => dotsContainer.appendChild(createDot(index))); + } + const dots = wrapper.querySelectorAll('.carousel-dot'); + + const updateDots = (emblaApi: EmblaCarouselType) => { + const selectedIndex = emblaApi.selectedScrollSnap(); + dots.forEach((dot, index) => { + dot.classList.toggle('active', index === selectedIndex); + if (index === selectedIndex) { + dot.setAttribute('aria-current', 'true'); + } else { + dot.removeAttribute('aria-current'); + } + }); + }; + + dots.forEach((dot) => { + dot.addEventListener('click', () => { + const index = parseInt(dot.dataset.index || '0', 10); + embla.scrollTo(index); + }); + }); + + // embla defers the 'init' event to a macrotask; call directly so initial + // dot/button state applies synchronously — 'select'/'reInit' cover later updates + updateDots(embla); + embla.on('select', updateDots); + embla.on('reInit', updateDots); + + const updateButtons = (emblaApi: EmblaCarouselType) => { + if (prevButton) prevButton.disabled = !emblaApi.canScrollPrev(); + if (nextButton) nextButton.disabled = !emblaApi.canScrollNext(); + }; + + if (!loop) { + updateButtons(embla); + embla.on('select', updateButtons); + embla.on('reInit', updateButtons); + } + + // Let host pages react to slide changes (e.g. master-detail sections) + embla.on('select', () => + wrapper.dispatchEvent( + new CustomEvent('carousel:select', { detail: { index: embla.selectedScrollSnap() } }) + ) + ); +} + +// Initialize carousels lazily when they approach the viewport +export function observeCarousels() { + const carouselWrappers = document.querySelectorAll( + '.carousel-wrapper:not([data-carousel-init])' + ); + if (!carouselWrappers.length) return; + + const observer = new IntersectionObserver( + (entries) => { + entries.forEach((entry) => { + if (!entry.isIntersecting) return; + const wrapper = entry.target as HTMLElement; + observer.unobserve(wrapper); + // Re-check the flag here, not just at querySelectorAll time: if observeCarousels + // runs twice before any intersection, two observers can watch the same wrapper. + // The flag keeps initCarousel from running twice on it. + if (wrapper.dataset.carouselInit) return; + wrapper.dataset.carouselInit = 'true'; + initCarousel(wrapper); + }); + }, + { rootMargin: '200px' } + ); + + carouselWrappers.forEach((wrapper) => observer.observe(wrapper)); +} diff --git a/src/components/Company/HeroPhotoCarousel.astro b/src/components/Company/HeroPhotoCarousel.astro index cbeb66acc9..336addba19 100644 --- a/src/components/Company/HeroPhotoCarousel.astro +++ b/src/components/Company/HeroPhotoCarousel.astro @@ -26,8 +26,11 @@ const items = [