blue-chestnut-solar-expert 0.0.67 → 0.0.69
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/dist/cjs/eraser-icon_19.cjs.entry.js +1 -1
- package/dist/cjs/{lerc-v64rYVDy.js → lerc-Bdx5y-yw.js} +3 -3
- package/dist/cjs/{lerc-v64rYVDy.js.map → lerc-Bdx5y-yw.js.map} +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/loading-widget.cjs.entry.js +1 -1
- package/dist/cjs/stencil-library.cjs.js +1 -1
- package/dist/collection/components/map-draw/map-draw.js +54 -25
- package/dist/collection/components/map-draw/map-draw.js.map +1 -1
- package/dist/collection/components/map-draw/map-selector.js +3 -3
- package/dist/collection/components/map-draw/polygon-buttons.js +1 -1
- package/dist/collection/components/map-draw/polygon-information.js +2 -2
- package/dist/collection/components/map-draw/tool-box.js +3 -3
- package/dist/collection/components/map-draw/tutorial-component.js +72 -4
- package/dist/collection/components/map-draw/tutorial-component.js.map +1 -1
- package/dist/collection/components/settings/settings.js +8 -8
- package/dist/collection/components/solar-expert/solar-expert.js +1 -1
- package/dist/collection/components/solar-system-form/solar-system-form.js +57 -36
- package/dist/collection/components/solar-system-form/solar-system-form.js.map +1 -1
- package/dist/collection/components/widgets/loading-widget.js +1 -1
- package/dist/collection/types/lang.js.map +1 -1
- package/dist/collection/utils/api.js +3 -2
- package/dist/collection/utils/api.js.map +1 -1
- package/dist/collection/utils/lang/english.js +7 -0
- package/dist/collection/utils/lang/english.js.map +1 -1
- package/dist/collection/utils/lang/german.js +7 -0
- package/dist/collection/utils/lang/german.js.map +1 -1
- package/dist/collection/utils/lang/spanish.js +7 -0
- package/dist/collection/utils/lang/spanish.js.map +1 -1
- package/dist/collection/utils/solar.js +0 -1
- package/dist/collection/utils/solar.js.map +1 -1
- package/dist/components/loading-widget.js +1 -1
- package/dist/components/map-draw.js +1 -1
- package/dist/components/map-selector.js +1 -1
- package/dist/components/{p-i1uLweD0.js → p-26DHwbCE.js} +4 -4
- package/dist/components/{p-i1uLweD0.js.map → p-26DHwbCE.js.map} +1 -1
- package/dist/components/{p-DlNHVTGB.js → p-BOe-Z8rz.js} +1462 -1088
- package/dist/components/p-BOe-Z8rz.js.map +1 -0
- package/dist/components/{p-Bopprtc7.js → p-Bduzzygj.js} +6 -6
- package/dist/components/{p-Bopprtc7.js.map → p-Bduzzygj.js.map} +1 -1
- package/dist/components/p-C3ZXE525.js +855 -0
- package/dist/components/p-C3ZXE525.js.map +1 -0
- package/dist/components/{p-DWirjxpO.js → p-Cx7fffWb.js} +6 -6
- package/dist/components/{p-DWirjxpO.js.map → p-Cx7fffWb.js.map} +1 -1
- package/dist/components/{p-Dzl6kfPI.js → p-D2AHNjbG.js} +39 -7
- package/dist/components/p-D2AHNjbG.js.map +1 -0
- package/dist/components/{p-BcVa4_YP.js → p-DLWzgdrw.js} +3 -3
- package/dist/components/{p-BcVa4_YP.js.map → p-DLWzgdrw.js.map} +1 -1
- package/dist/components/{p-B4X-RCW0.js → p-Ddk3b30j.js} +11 -11
- package/dist/components/{p-B4X-RCW0.js.map → p-Ddk3b30j.js.map} +1 -1
- package/dist/components/{p-eDwaXClX.js → p-DfzSejIb.js} +23 -2
- package/dist/components/p-DfzSejIb.js.map +1 -0
- package/dist/components/{p-BFJHTJPM.js → p-OxUYjaAL.js} +6 -6
- package/dist/components/{p-BFJHTJPM.js.map → p-OxUYjaAL.js.map} +1 -1
- package/dist/components/polygon-buttons.js +1 -1
- package/dist/components/polygon-information.js +1 -1
- package/dist/components/settings-modal.js +1 -1
- package/dist/components/solar-expert.js +10 -10
- package/dist/components/solar-system-form.js +1 -1
- package/dist/components/tool-box.js +1 -1
- package/dist/components/tutorial-component.js +1 -1
- package/dist/esm/eraser-icon_19.entry.js +1 -1
- package/dist/esm/{lerc-CAiDQjTu.js → lerc-DF5Lrv5A.js} +3 -3
- package/dist/esm/{lerc-CAiDQjTu.js.map → lerc-DF5Lrv5A.js.map} +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/loading-widget.entry.js +1 -1
- package/dist/esm/stencil-library.js +1 -1
- package/dist/stencil-library/assets/tutorial4.mp4 +0 -0
- package/dist/stencil-library/{p-ab0f2031.entry.js → p-9b4e52c3.entry.js} +2 -2
- package/dist/stencil-library/p-CymYGBJH.js +2 -0
- package/dist/stencil-library/p-CymYGBJH.js.map +1 -0
- package/dist/stencil-library/{p-cAuhy_jT.js → p-DHgjDQwz.js} +4 -4
- package/dist/stencil-library/{p-cAuhy_jT.js.map → p-DHgjDQwz.js.map} +1 -1
- package/dist/stencil-library/{p-e7b94dbb.entry.js → p-ba64c5e4.entry.js} +2 -2
- package/dist/stencil-library/stencil-library.esm.js +1 -1
- package/dist/types/components/map-draw/map-draw.d.ts +5 -0
- package/dist/types/components/map-draw/tutorial-component.d.ts +7 -0
- package/dist/types/components/solar-system-form/solar-system-form.d.ts +1 -0
- package/dist/types/components.d.ts +6 -0
- package/dist/types/types/lang.d.ts +7 -0
- package/dist/types/utils/api.d.ts +1 -0
- package/package.json +1 -1
- package/dist/components/p-DlNHVTGB.js.map +0 -1
- package/dist/components/p-Dzl6kfPI.js.map +0 -1
- package/dist/components/p-PkMjF2if.js +0 -1985
- package/dist/components/p-PkMjF2if.js.map +0 -1
- package/dist/components/p-eDwaXClX.js.map +0 -1
- package/dist/stencil-library/p-BBtmpSUK.js +0 -2
- package/dist/stencil-library/p-BBtmpSUK.js.map +0 -1
- /package/dist/stencil-library/{p-ab0f2031.entry.js.map → p-9b4e52c3.entry.js.map} +0 -0
- /package/dist/stencil-library/{p-e7b94dbb.entry.js.map → p-ba64c5e4.entry.js.map} +0 -0
|
@@ -141,6 +141,7 @@ export const de = {
|
|
|
141
141
|
title: "So markieren Sie Ihr Dach",
|
|
142
142
|
description: "Verwenden Sie das Dachwerkzeug, um das Dachsegment zu markieren, auf dem Sie Solarpaneele installieren möchten. Klicken Sie auf die Ecken Ihres Daches, um ein Polygon zu erstellen.",
|
|
143
143
|
understood: "Verstanden",
|
|
144
|
+
mobileInstruction: "Tippen Sie auf das Video zum Abspielen",
|
|
144
145
|
markEdge: {
|
|
145
146
|
title: "Untere Dachkante markieren",
|
|
146
147
|
description: "Falls Störobjekte wie Dachfenster und Schornsteine vorhanden sind, markieren Sie diese mit dem Hindernis Werkzeug. Danach markieren Sie die untere Kante Ihres Daches, um die optimale Platzierung der Solarpaneele zu berechnen. Klicken Sie auf die unteren Kante Ihres Daches.",
|
|
@@ -151,6 +152,12 @@ export const de = {
|
|
|
151
152
|
description: "Sie können jetzt weitere Dachsegmente mit dem Dachwerkzeug hinzufügen. Verwenden Sie das Hinderniswerkzeug, um Bereiche zu markieren, in denen Sie keine Solarpaneele möchten (wie Dachfenster oder Schornsteine). Das Verschiebewerkzeug ermöglicht es Ihnen, ein beliebiges Polygon auszuwählen und seine Punkte durch Ziehen zu bearbeiten.",
|
|
152
153
|
understood: "Verstanden",
|
|
153
154
|
},
|
|
155
|
+
obstacle: {
|
|
156
|
+
title: "Hindernisse markieren",
|
|
157
|
+
description: "Jetzt können Sie Bereiche markieren, in denen Sie keine Solarpaneele möchten, wie Dachfenster, Schornsteine oder andere Dachmerkmale. Verwenden Sie das Hinderniswerkzeug, um Polygone um diese Bereiche zu zeichnen.",
|
|
158
|
+
understood: "Verstanden",
|
|
159
|
+
skip: "Tutorial überspringen",
|
|
160
|
+
},
|
|
154
161
|
},
|
|
155
162
|
},
|
|
156
163
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"german.js","sourceRoot":"","sources":["../../../src/utils/lang/german.ts"],"names":[],"mappings":"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","sourcesContent":["import { LanguageStrings } from \"../../types/lang\";\r\n\r\nexport const de: LanguageStrings = {\r\n settings: {\r\n language: \"Sprache\",\r\n rowSpacing: \"Zeilenabstand\",\r\n columnSpacing: \"Spaltenabstand\",\r\n borderInset: \"Randabstand\",\r\n },\r\n mapSelector: {\r\n explanation:\r\n \"Wählen Sie Ihre Adresse auf der Karte und passen Sie den Radius des Kreises an, um Ihr Dach vollständig zu erfassen.\",\r\n radius: \"Radius (Meter)\",\r\n accept: \"Akzeptieren\",\r\n chooseOnMap: \"Auf der Karte auswählen\",\r\n switchToStandard: \"Zur Standardkarte wechseln\",\r\n switchToSatellite: \"Zur Satellitenansicht wechseln\",\r\n noAddressSelected: \"Bitte wählen Sie zuerst eine Adresse aus\",\r\n },\r\n solarExpert: {\r\n searchPlaceholder: \"Geben Sie Ihre Adresse ein\",\r\n },\r\n solarSystemForm: {\r\n title: \"Solarsystem Konfiguration\",\r\n systemInformation: \"System Information\",\r\n numberOfPanels: \"Anzahl der Solarpanel\",\r\n panelPeakPower: \"Panelleistung (kW)\",\r\n totalSystemPeakPower: \"Anlagengröße (kWp)\",\r\n electricityPrice: \"Strompreis (€/kWh)\",\r\n compensationRate: \"Einspeisevergütung (€/kWh)\",\r\n autonomy: \"Autarkie\",\r\n totalEnergyConsumption: \"Gesamtenergieverbrauch\",\r\n totalEnergyProduction: \"Gesamtenergieerzeugung\",\r\n costSavings: \"Einsparungen\",\r\n householdConsumptionTitle: \"Haushaltsverbrauch\",\r\n consumptionProfileTitle: \"Verbrauchprofil\",\r\n electricityCostsTitle: \"Stromkosten\",\r\n compensationRateTitle: \"Einspeisevergütung\",\r\n resultsTitle: \"Ergebnisse\",\r\n savingsDisclaimer:\r\n \"Disclaimer: Die Einsparungen basieren auf dem durchschnittlichen Strompreis in Deutschland.\",\r\n annualConsumption: \"Jährlicher Verbrauch\",\r\n name: \"Name\",\r\n email: \"Email\",\r\n phone: \"Telefonnummer (optional)\",\r\n nameError: \"Bitte geben Sie Ihren Namen ein\",\r\n emailError: \"Bitte geben Sie eine gültige E-Mail-Adresse ein\",\r\n phoneError: \"Bitte geben Sie eine gültige Telefonnummer ein\",\r\n consumptionProfiles: {\r\n mostlyAtHome: \"Tag\",\r\n mostlyAway: \"Nacht\",\r\n },\r\n chart: {\r\n consumption: \"Verbrauch\",\r\n production: \"Produktion\",\r\n consumptionProfile: \"Verbrauchprofil\",\r\n relativeConsumption: \"Verbrauch\",\r\n hourOfDay: \"Stunde des Tages\",\r\n },\r\n validEmailError: \"Bitte geben Sie eine gültige E-Mail-Adresse ein\",\r\n requestOffer: \"Angebot anfordern\",\r\n requestOfferButton: \"Angebot anfordern\",\r\n year: \"Jahr\",\r\n additionalComponents: {\r\n title: \"Zusätzliches\",\r\n heatPump: \"Wärmepumpe\",\r\n electricCar: \"Elektroauto\",\r\n battery: \"Batterie\",\r\n chargingTime: \"Zeitpunkt der Ladung\",\r\n chargingTimeDay: \"Tag (06:00 - 18:00)\",\r\n chargingTimeNight: \"Nacht (18:00 - 06:00)\",\r\n kilometersPerYear: \"Kilometer pro Jahr\",\r\n },\r\n annualPriceIncrease: \"Jährliche Preissteigerung (%)\t\",\r\n costSavings20Years: \"20-Jährige Einsparungen\",\r\n compensation20Years: \"Einspeisevergütung 20 Jahre\",\r\n monetaryBenefit20Years: \"Geldwerter Vorteil 20 Jahre\",\r\n approximate: \"Ungefährer Wert\",\r\n sending: \"Wird gesendet...\",\r\n leadSubmitted: \"Ihre Anfrage wurde erfolgreich übermittelt!\",\r\n leadError:\r\n \"Beim Übermitteln Ihrer Anfrage ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut.\",\r\n },\r\n mapDraw: {\r\n instructions: {\r\n show: \"Anleitung anzeigen\",\r\n hide: \"Anleitung ausblenden\",\r\n parts: {\r\n roof:\r\n \"Nachdem Sie Ihre Adresse gesucht und ausgewählt haben. Markieren Sie die Teile Ihres Daches, auf denen Sie Solarpanelleisten hinzufügen möchten. Markieren Sie jede Oberfläche mit einem Polygon mit dem Dachwerkzeug\",\r\n obstruction:\r\n \". Wenn Sie Dachfenster oder andere Hindernisse haben, auf denen Sie keine Solarpanele hinzufügen können, markieren Sie diese mit dem Hinderniswerkzeug\",\r\n delete: \". Sie können Polygone mit dem Löschwerkzeug löschen\",\r\n move:\r\n \". Wenn Sie die Ecken eines Polygons ändern möchten, wählen Sie das Verschiebewerkzeug\",\r\n end: \", wählen Sie das Polygon, das Sie ändern möchten, und verschieben Sie die Ecken.\",\r\n },\r\n },\r\n markRoofEdge: \"untere Dachkante markieren\",\r\n markAsFlatRoof: \"Als Flachdach markieren\",\r\n loading: \"Lädt\",\r\n noPolygonSelected: \"Kein Dachsegment ausgewählt\",\r\n noAddressSelected: \"Bitte wählen Sie eine Adresse aus\",\r\n information: \"Dachsegment Information\",\r\n calculateSolarPanels: \"Solarpanele berechnen\",\r\n panels: \"Panele\",\r\n area: \"Fläche\",\r\n azimuth: \"Ausrichtung\",\r\n pitch: \"Neigung\",\r\n imageLoadError:\r\n \"Beim Laden des Satellitenbildes ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut.\",\r\n tools: {\r\n roof: {\r\n name: \"Dach\",\r\n explanation: \"Zeichnen Sie das Dach des Gebäudes\",\r\n ariaLabel: \"Dach\",\r\n },\r\n obstruction: {\r\n name: \"Hindernis\",\r\n explanation: \"Zeichnen Sie das Hindernis des Gebäudes\",\r\n ariaLabel: \"Hindernis\",\r\n },\r\n delete: {\r\n name: \"Löschen\",\r\n explanation: \"Löschen Sie das ausgewählte Polygon\",\r\n ariaLabel: \"Löschen\",\r\n },\r\n move: {\r\n name: \"Verschieben\",\r\n explanation: \"Verschieben Sie Punkte des ausgewählten Polygons\",\r\n ariaLabel: \"Verschieben\",\r\n },\r\n undo: {\r\n name: \"Rückgängig\",\r\n explanation: \"Machen Sie die letzte Aktion rückgängig\",\r\n ariaLabel: \"Rückgängig\",\r\n },\r\n markRoofEdge: {\r\n name: \"Dachkante\",\r\n explanation: \"Markieren Sie die Kante des Daches\",\r\n ariaLabel: \"Dachkante markieren\",\r\n },\r\n },\r\n toast: {\r\n undoSuccess: \"Aktion erfolgreich rückgängig gemacht\",\r\n calculateSolarPanelsSuccess: \"Solarpaneele erfolgreich berechnet\",\r\n markAsFlatRoofSuccess:\r\n \"Dach als Flachdach markiert. Bitte wählen Sie eine Kante aus, um die Paneele mit dem Gebäude auszurichten.\",\r\n },\r\n tutorial: {\r\n title: \"So markieren Sie Ihr Dach\",\r\n description:\r\n \"Verwenden Sie das Dachwerkzeug, um das Dachsegment zu markieren, auf dem Sie Solarpaneele installieren möchten. Klicken Sie auf die Ecken Ihres Daches, um ein Polygon zu erstellen.\",\r\n understood: \"Verstanden\",\r\n markEdge: {\r\n title: \"Untere Dachkante markieren\",\r\n description:\r\n \"Falls Störobjekte wie Dachfenster und Schornsteine vorhanden sind, markieren Sie diese mit dem Hindernis Werkzeug. Danach markieren Sie die untere Kante Ihres Daches, um die optimale Platzierung der Solarpaneele zu berechnen. Klicken Sie auf die unteren Kante Ihres Daches.\",\r\n understood: \"Verstanden\",\r\n },\r\n additionalTools: {\r\n title: \"Zusätzliche Werkzeuge verfügbar\",\r\n description:\r\n \"Sie können jetzt weitere Dachsegmente mit dem Dachwerkzeug hinzufügen. Verwenden Sie das Hinderniswerkzeug, um Bereiche zu markieren, in denen Sie keine Solarpaneele möchten (wie Dachfenster oder Schornsteine). Das Verschiebewerkzeug ermöglicht es Ihnen, ein beliebiges Polygon auszuwählen und seine Punkte durch Ziehen zu bearbeiten.\",\r\n understood: \"Verstanden\",\r\n },\r\n },\r\n },\r\n};\r\n"]}
|
|
1
|
+
{"version":3,"file":"german.js","sourceRoot":"","sources":["../../../src/utils/lang/german.ts"],"names":[],"mappings":"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","sourcesContent":["import { LanguageStrings } from \"../../types/lang\";\r\n\r\nexport const de: LanguageStrings = {\r\n settings: {\r\n language: \"Sprache\",\r\n rowSpacing: \"Zeilenabstand\",\r\n columnSpacing: \"Spaltenabstand\",\r\n borderInset: \"Randabstand\",\r\n },\r\n mapSelector: {\r\n explanation:\r\n \"Wählen Sie Ihre Adresse auf der Karte und passen Sie den Radius des Kreises an, um Ihr Dach vollständig zu erfassen.\",\r\n radius: \"Radius (Meter)\",\r\n accept: \"Akzeptieren\",\r\n chooseOnMap: \"Auf der Karte auswählen\",\r\n switchToStandard: \"Zur Standardkarte wechseln\",\r\n switchToSatellite: \"Zur Satellitenansicht wechseln\",\r\n noAddressSelected: \"Bitte wählen Sie zuerst eine Adresse aus\",\r\n },\r\n solarExpert: {\r\n searchPlaceholder: \"Geben Sie Ihre Adresse ein\",\r\n },\r\n solarSystemForm: {\r\n title: \"Solarsystem Konfiguration\",\r\n systemInformation: \"System Information\",\r\n numberOfPanels: \"Anzahl der Solarpanel\",\r\n panelPeakPower: \"Panelleistung (kW)\",\r\n totalSystemPeakPower: \"Anlagengröße (kWp)\",\r\n electricityPrice: \"Strompreis (€/kWh)\",\r\n compensationRate: \"Einspeisevergütung (€/kWh)\",\r\n autonomy: \"Autarkie\",\r\n totalEnergyConsumption: \"Gesamtenergieverbrauch\",\r\n totalEnergyProduction: \"Gesamtenergieerzeugung\",\r\n costSavings: \"Einsparungen\",\r\n householdConsumptionTitle: \"Haushaltsverbrauch\",\r\n consumptionProfileTitle: \"Verbrauchprofil\",\r\n electricityCostsTitle: \"Stromkosten\",\r\n compensationRateTitle: \"Einspeisevergütung\",\r\n resultsTitle: \"Ergebnisse\",\r\n savingsDisclaimer:\r\n \"Disclaimer: Die Einsparungen basieren auf dem durchschnittlichen Strompreis in Deutschland.\",\r\n annualConsumption: \"Jährlicher Verbrauch\",\r\n name: \"Name\",\r\n email: \"Email\",\r\n phone: \"Telefonnummer (optional)\",\r\n nameError: \"Bitte geben Sie Ihren Namen ein\",\r\n emailError: \"Bitte geben Sie eine gültige E-Mail-Adresse ein\",\r\n phoneError: \"Bitte geben Sie eine gültige Telefonnummer ein\",\r\n consumptionProfiles: {\r\n mostlyAtHome: \"Tag\",\r\n mostlyAway: \"Nacht\",\r\n },\r\n chart: {\r\n consumption: \"Verbrauch\",\r\n production: \"Produktion\",\r\n consumptionProfile: \"Verbrauchprofil\",\r\n relativeConsumption: \"Verbrauch\",\r\n hourOfDay: \"Stunde des Tages\",\r\n },\r\n validEmailError: \"Bitte geben Sie eine gültige E-Mail-Adresse ein\",\r\n requestOffer: \"Angebot anfordern\",\r\n requestOfferButton: \"Angebot anfordern\",\r\n year: \"Jahr\",\r\n additionalComponents: {\r\n title: \"Zusätzliches\",\r\n heatPump: \"Wärmepumpe\",\r\n electricCar: \"Elektroauto\",\r\n battery: \"Batterie\",\r\n chargingTime: \"Zeitpunkt der Ladung\",\r\n chargingTimeDay: \"Tag (06:00 - 18:00)\",\r\n chargingTimeNight: \"Nacht (18:00 - 06:00)\",\r\n kilometersPerYear: \"Kilometer pro Jahr\",\r\n },\r\n annualPriceIncrease: \"Jährliche Preissteigerung (%)\t\",\r\n costSavings20Years: \"20-Jährige Einsparungen\",\r\n compensation20Years: \"Einspeisevergütung 20 Jahre\",\r\n monetaryBenefit20Years: \"Geldwerter Vorteil 20 Jahre\",\r\n approximate: \"Ungefährer Wert\",\r\n sending: \"Wird gesendet...\",\r\n leadSubmitted: \"Ihre Anfrage wurde erfolgreich übermittelt!\",\r\n leadError:\r\n \"Beim Übermitteln Ihrer Anfrage ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut.\",\r\n },\r\n mapDraw: {\r\n instructions: {\r\n show: \"Anleitung anzeigen\",\r\n hide: \"Anleitung ausblenden\",\r\n parts: {\r\n roof:\r\n \"Nachdem Sie Ihre Adresse gesucht und ausgewählt haben. Markieren Sie die Teile Ihres Daches, auf denen Sie Solarpanelleisten hinzufügen möchten. Markieren Sie jede Oberfläche mit einem Polygon mit dem Dachwerkzeug\",\r\n obstruction:\r\n \". Wenn Sie Dachfenster oder andere Hindernisse haben, auf denen Sie keine Solarpanele hinzufügen können, markieren Sie diese mit dem Hinderniswerkzeug\",\r\n delete: \". Sie können Polygone mit dem Löschwerkzeug löschen\",\r\n move:\r\n \". Wenn Sie die Ecken eines Polygons ändern möchten, wählen Sie das Verschiebewerkzeug\",\r\n end: \", wählen Sie das Polygon, das Sie ändern möchten, und verschieben Sie die Ecken.\",\r\n },\r\n },\r\n markRoofEdge: \"untere Dachkante markieren\",\r\n markAsFlatRoof: \"Als Flachdach markieren\",\r\n loading: \"Lädt\",\r\n noPolygonSelected: \"Kein Dachsegment ausgewählt\",\r\n noAddressSelected: \"Bitte wählen Sie eine Adresse aus\",\r\n information: \"Dachsegment Information\",\r\n calculateSolarPanels: \"Solarpanele berechnen\",\r\n panels: \"Panele\",\r\n area: \"Fläche\",\r\n azimuth: \"Ausrichtung\",\r\n pitch: \"Neigung\",\r\n imageLoadError:\r\n \"Beim Laden des Satellitenbildes ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut.\",\r\n tools: {\r\n roof: {\r\n name: \"Dach\",\r\n explanation: \"Zeichnen Sie das Dach des Gebäudes\",\r\n ariaLabel: \"Dach\",\r\n },\r\n obstruction: {\r\n name: \"Hindernis\",\r\n explanation: \"Zeichnen Sie das Hindernis des Gebäudes\",\r\n ariaLabel: \"Hindernis\",\r\n },\r\n delete: {\r\n name: \"Löschen\",\r\n explanation: \"Löschen Sie das ausgewählte Polygon\",\r\n ariaLabel: \"Löschen\",\r\n },\r\n move: {\r\n name: \"Verschieben\",\r\n explanation: \"Verschieben Sie Punkte des ausgewählten Polygons\",\r\n ariaLabel: \"Verschieben\",\r\n },\r\n undo: {\r\n name: \"Rückgängig\",\r\n explanation: \"Machen Sie die letzte Aktion rückgängig\",\r\n ariaLabel: \"Rückgängig\",\r\n },\r\n markRoofEdge: {\r\n name: \"Dachkante\",\r\n explanation: \"Markieren Sie die Kante des Daches\",\r\n ariaLabel: \"Dachkante markieren\",\r\n },\r\n },\r\n toast: {\r\n undoSuccess: \"Aktion erfolgreich rückgängig gemacht\",\r\n calculateSolarPanelsSuccess: \"Solarpaneele erfolgreich berechnet\",\r\n markAsFlatRoofSuccess:\r\n \"Dach als Flachdach markiert. Bitte wählen Sie eine Kante aus, um die Paneele mit dem Gebäude auszurichten.\",\r\n },\r\n tutorial: {\r\n title: \"So markieren Sie Ihr Dach\",\r\n description:\r\n \"Verwenden Sie das Dachwerkzeug, um das Dachsegment zu markieren, auf dem Sie Solarpaneele installieren möchten. Klicken Sie auf die Ecken Ihres Daches, um ein Polygon zu erstellen.\",\r\n understood: \"Verstanden\",\r\n mobileInstruction: \"Tippen Sie auf das Video zum Abspielen\",\r\n markEdge: {\r\n title: \"Untere Dachkante markieren\",\r\n description:\r\n \"Falls Störobjekte wie Dachfenster und Schornsteine vorhanden sind, markieren Sie diese mit dem Hindernis Werkzeug. Danach markieren Sie die untere Kante Ihres Daches, um die optimale Platzierung der Solarpaneele zu berechnen. Klicken Sie auf die unteren Kante Ihres Daches.\",\r\n understood: \"Verstanden\",\r\n },\r\n additionalTools: {\r\n title: \"Zusätzliche Werkzeuge verfügbar\",\r\n description:\r\n \"Sie können jetzt weitere Dachsegmente mit dem Dachwerkzeug hinzufügen. Verwenden Sie das Hinderniswerkzeug, um Bereiche zu markieren, in denen Sie keine Solarpaneele möchten (wie Dachfenster oder Schornsteine). Das Verschiebewerkzeug ermöglicht es Ihnen, ein beliebiges Polygon auszuwählen und seine Punkte durch Ziehen zu bearbeiten.\",\r\n understood: \"Verstanden\",\r\n },\r\n obstacle: {\r\n title: \"Hindernisse markieren\",\r\n description:\r\n \"Jetzt können Sie Bereiche markieren, in denen Sie keine Solarpaneele möchten, wie Dachfenster, Schornsteine oder andere Dachmerkmale. Verwenden Sie das Hinderniswerkzeug, um Polygone um diese Bereiche zu zeichnen.\",\r\n understood: \"Verstanden\",\r\n skip: \"Tutorial überspringen\",\r\n },\r\n },\r\n },\r\n};\r\n"]}
|
|
@@ -141,6 +141,7 @@ export const es = {
|
|
|
141
141
|
title: "Cómo marcar su tejado",
|
|
142
142
|
description: "Use la herramienta de tejado para marcar el segmento del tejado donde desea instalar paneles solares. Haga clic en las esquinas de su tejado para crear un polígono.",
|
|
143
143
|
understood: "Entendido",
|
|
144
|
+
mobileInstruction: "Toque el video para reproducir",
|
|
144
145
|
markEdge: {
|
|
145
146
|
title: "Marcar el borde inferior del tejado",
|
|
146
147
|
description: "Ahora marque el borde inferior de su tejado para ayudar a calcular la colocación óptima de los paneles solares. Haga clic en los puntos a lo largo del borde inferior de su tejado.",
|
|
@@ -151,6 +152,12 @@ export const es = {
|
|
|
151
152
|
description: "Ahora puede añadir más segmentos de tejado usando la herramienta de tejado. Use la herramienta de obstrucción para marcar áreas donde no desea paneles solares (como claraboyas o chimeneas). La herramienta de movimiento le permite seleccionar cualquier polígono y editar sus puntos arrastrándolos.",
|
|
152
153
|
understood: "Entendido",
|
|
153
154
|
},
|
|
155
|
+
obstacle: {
|
|
156
|
+
title: "Marcar obstrucciones",
|
|
157
|
+
description: "Ahora puede marcar áreas donde no desea paneles solares, como claraboyas, chimeneas u otras características del tejado. Use la herramienta de obstrucción para dibujar polígonos alrededor de estas áreas.",
|
|
158
|
+
understood: "Entendido",
|
|
159
|
+
skip: "Saltar tutorial",
|
|
160
|
+
},
|
|
154
161
|
},
|
|
155
162
|
},
|
|
156
163
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spanish.js","sourceRoot":"","sources":["../../../src/utils/lang/spanish.ts"],"names":[],"mappings":"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","sourcesContent":["import { LanguageStrings } from \"../../types/lang\";\r\n\r\nexport const es: LanguageStrings = {\r\n settings: {\r\n language: \"Idioma\",\r\n rowSpacing: \"Espaciado de filas\",\r\n columnSpacing: \"Espaciado de columnas\",\r\n borderInset: \"Espaciado de bordes\",\r\n },\r\n mapSelector: {\r\n explanation:\r\n \"Selecciona tu casa en el mapa y ajusta el radio del círculo para cubrir completamente tu tejado.\",\r\n radius: \"Radio (metros)\",\r\n accept: \"Aceptar\",\r\n chooseOnMap: \"Seleccionar en el mapa\",\r\n switchToStandard: \"Cambiar a Mapa Estándar\",\r\n switchToSatellite: \"Cambiar a Satélite\",\r\n noAddressSelected: \"Por favor, selecciona una dirección primero\",\r\n },\r\n solarExpert: {\r\n searchPlaceholder: \"Buscar tu dirección\",\r\n },\r\n solarSystemForm: {\r\n title: \"Configuración del sistema solar\",\r\n systemInformation: \"Información del sistema\",\r\n numberOfPanels: \"Número de paneles solares\",\r\n panelPeakPower: \"Potencia pico del panel (kW)\",\r\n totalSystemPeakPower: \"Potencia pico total del sistema (kW)\",\r\n electricityPrice: \"Precio de la electricidad (€/kWh)\",\r\n compensationRate: \"Tasa de compensación (€/kWh)\",\r\n autonomy: \"Autonomía\",\r\n totalEnergyConsumption: \"Consumo Total de Energía\",\r\n totalEnergyProduction: \"Producción Total de Energía (aproximado)\",\r\n costSavings: \"Ahorro (€/año)\",\r\n householdConsumptionTitle: \"Consumo de la casa\",\r\n consumptionProfileTitle: \"Perfil de consumo\",\r\n electricityCostsTitle: \"Costes de la electricidad\",\r\n compensationRateTitle: \"Tasa de compensación\",\r\n resultsTitle: \"Resultados\",\r\n savingsDisclaimer:\r\n \"Nota: Los ahorros se basan en el precio promedio de la electricidad en España.\",\r\n annualConsumption: \"Consumo anual (kWh)\",\r\n name: \"Nombre\",\r\n email: \"Email\",\r\n phone: \"Número de teléfono (opcional)\",\r\n nameError: \"Por favor, ingrese su nombre\",\r\n emailError:\r\n \"Por favor, ingrese una dirección de correo electrónico válida\",\r\n phoneError: \"Por favor, ingrese un número de teléfono válido\",\r\n consumptionProfiles: {\r\n mostlyAtHome: \"Principalmente en casa\",\r\n mostlyAway: \"Empleo\",\r\n },\r\n chart: {\r\n consumption: \"Consumo\",\r\n production: \"Producción\",\r\n consumptionProfile: \"Perfil de consumo\",\r\n relativeConsumption: \"Consumo\",\r\n hourOfDay: \"Hora del día\",\r\n },\r\n validEmailError:\r\n \"Por favor, ingrese una dirección de correo electrónico válida\",\r\n requestOffer: \"Solicitar una oferta\",\r\n requestOfferButton: \"Solicitar oferta\",\r\n year: \"Año\",\r\n additionalComponents: {\r\n title: \"Componentes adicionales\",\r\n heatPump: \"Caldera\",\r\n electricCar: \"Coche eléctrico\",\r\n battery: \"Batería\",\r\n chargingTime: \"Hora de carga\",\r\n chargingTimeDay: \"Día (06:00 - 18:00)\",\r\n chargingTimeNight: \"Noche (18:00 - 06:00)\",\r\n kilometersPerYear: \"Kilómetros por año\",\r\n },\r\n annualPriceIncrease: \"Aumento anual del precio (%)\",\r\n costSavings20Years: \"Ahorro 20 años\",\r\n compensation20Years: \"Compensación 20 años\",\r\n monetaryBenefit20Years: \"Beneficio monetario 20 años\",\r\n approximate: \"Valor aproximado\",\r\n sending: \"Enviando...\",\r\n leadSubmitted: \"¡Su solicitud ha sido enviada exitosamente!\",\r\n leadError:\r\n \"Hubo un error al enviar su solicitud. Por favor, inténtelo de nuevo.\",\r\n },\r\n mapDraw: {\r\n instructions: {\r\n show: \"Mostrar instrucciones\",\r\n hide: \"Ocultar instrucciones\",\r\n parts: {\r\n roof:\r\n \"Después de buscar y seleccionar su dirección, resalte la parte del tejado donde desea añadir paneles solares. Marque cada superficie con un polígono con la herramienta de tejado\",\r\n obstruction:\r\n \". Si tiene claraboyas u otras obstrucciones donde no desea añadir paneles solares, márquelas también con la herramienta de obstrucción\",\r\n delete:\r\n \". Puede eliminar polígonos con la herramienta de eliminación\",\r\n move:\r\n \". Si desea cambiar las esquinas de un polígono, seleccione la herramienta de movimiento\",\r\n end: \", seleccione el polígono que desea modificar y arrastre y suelte los bordes.\",\r\n },\r\n },\r\n markRoofEdge: \"Marcar borde inferior del tejado\",\r\n markAsFlatRoof: \"Marcar como tejado plano\",\r\n loading: \"Cargando\",\r\n noPolygonSelected: \"No se ha seleccionado un polígono\",\r\n noAddressSelected: \"Por favor, seleccione una dirección\",\r\n information: \"Información\",\r\n calculateSolarPanels: \"Calcular paneles solares\",\r\n panels: \"Paneles\",\r\n area: \"Área\",\r\n azimuth: \"Azimut\",\r\n pitch: \"Inclinación\",\r\n imageLoadError:\r\n \"Ocurrió un error al cargar la imagen satelital. Por favor, inténtelo de nuevo.\",\r\n tools: {\r\n roof: {\r\n name: \"Tejado\",\r\n explanation: \"Dibuje el tejado del edificio\",\r\n ariaLabel: \"Tejado\",\r\n },\r\n obstruction: {\r\n name: \"Obstrucción\",\r\n explanation: \"Dibuje la obstrucción del edificio\",\r\n ariaLabel: \"Obstrucción\",\r\n },\r\n delete: {\r\n name: \"Eliminar\",\r\n explanation: \"Elimine el polígono seleccionado\",\r\n ariaLabel: \"Eliminar\",\r\n },\r\n move: {\r\n name: \"Mover\",\r\n explanation: \"Mueva los puntos del polígono seleccionado\",\r\n ariaLabel: \"Mover\",\r\n },\r\n undo: {\r\n name: \"Deshacer\",\r\n explanation: \"Deshaga la última acción\",\r\n ariaLabel: \"Deshacer\",\r\n },\r\n markRoofEdge: {\r\n name: \"Marcar borde inferior del tejado\",\r\n explanation: \"Marque el borde inferior del tejado\",\r\n ariaLabel: \"Marcar borde inferior del tejado\",\r\n },\r\n },\r\n toast: {\r\n undoSuccess: \"Acción deshecha exitosamente\",\r\n calculateSolarPanelsSuccess:\r\n \"Paneles solares calculados exitosamente\",\r\n markAsFlatRoofSuccess:\r\n \"Tejado marcado como plano. Por favor, seleccione un borde para alinear los paneles con el edificio.\",\r\n },\r\n tutorial: {\r\n title: \"Cómo marcar su tejado\",\r\n description:\r\n \"Use la herramienta de tejado para marcar el segmento del tejado donde desea instalar paneles solares. Haga clic en las esquinas de su tejado para crear un polígono.\",\r\n understood: \"Entendido\",\r\n markEdge: {\r\n title: \"Marcar el borde inferior del tejado\",\r\n description:\r\n \"Ahora marque el borde inferior de su tejado para ayudar a calcular la colocación óptima de los paneles solares. Haga clic en los puntos a lo largo del borde inferior de su tejado.\",\r\n understood: \"Entendido\",\r\n },\r\n additionalTools: {\r\n title: \"Herramientas adicionales disponibles\",\r\n description:\r\n \"Ahora puede añadir más segmentos de tejado usando la herramienta de tejado. Use la herramienta de obstrucción para marcar áreas donde no desea paneles solares (como claraboyas o chimeneas). La herramienta de movimiento le permite seleccionar cualquier polígono y editar sus puntos arrastrándolos.\",\r\n understood: \"Entendido\",\r\n },\r\n },\r\n },\r\n};\r\n"]}
|
|
1
|
+
{"version":3,"file":"spanish.js","sourceRoot":"","sources":["../../../src/utils/lang/spanish.ts"],"names":[],"mappings":"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","sourcesContent":["import { LanguageStrings } from \"../../types/lang\";\r\n\r\nexport const es: LanguageStrings = {\r\n settings: {\r\n language: \"Idioma\",\r\n rowSpacing: \"Espaciado de filas\",\r\n columnSpacing: \"Espaciado de columnas\",\r\n borderInset: \"Espaciado de bordes\",\r\n },\r\n mapSelector: {\r\n explanation:\r\n \"Selecciona tu casa en el mapa y ajusta el radio del círculo para cubrir completamente tu tejado.\",\r\n radius: \"Radio (metros)\",\r\n accept: \"Aceptar\",\r\n chooseOnMap: \"Seleccionar en el mapa\",\r\n switchToStandard: \"Cambiar a Mapa Estándar\",\r\n switchToSatellite: \"Cambiar a Satélite\",\r\n noAddressSelected: \"Por favor, selecciona una dirección primero\",\r\n },\r\n solarExpert: {\r\n searchPlaceholder: \"Buscar tu dirección\",\r\n },\r\n solarSystemForm: {\r\n title: \"Configuración del sistema solar\",\r\n systemInformation: \"Información del sistema\",\r\n numberOfPanels: \"Número de paneles solares\",\r\n panelPeakPower: \"Potencia pico del panel (kW)\",\r\n totalSystemPeakPower: \"Potencia pico total del sistema (kW)\",\r\n electricityPrice: \"Precio de la electricidad (€/kWh)\",\r\n compensationRate: \"Tasa de compensación (€/kWh)\",\r\n autonomy: \"Autonomía\",\r\n totalEnergyConsumption: \"Consumo Total de Energía\",\r\n totalEnergyProduction: \"Producción Total de Energía (aproximado)\",\r\n costSavings: \"Ahorro (€/año)\",\r\n householdConsumptionTitle: \"Consumo de la casa\",\r\n consumptionProfileTitle: \"Perfil de consumo\",\r\n electricityCostsTitle: \"Costes de la electricidad\",\r\n compensationRateTitle: \"Tasa de compensación\",\r\n resultsTitle: \"Resultados\",\r\n savingsDisclaimer:\r\n \"Nota: Los ahorros se basan en el precio promedio de la electricidad en España.\",\r\n annualConsumption: \"Consumo anual (kWh)\",\r\n name: \"Nombre\",\r\n email: \"Email\",\r\n phone: \"Número de teléfono (opcional)\",\r\n nameError: \"Por favor, ingrese su nombre\",\r\n emailError:\r\n \"Por favor, ingrese una dirección de correo electrónico válida\",\r\n phoneError: \"Por favor, ingrese un número de teléfono válido\",\r\n consumptionProfiles: {\r\n mostlyAtHome: \"Principalmente en casa\",\r\n mostlyAway: \"Empleo\",\r\n },\r\n chart: {\r\n consumption: \"Consumo\",\r\n production: \"Producción\",\r\n consumptionProfile: \"Perfil de consumo\",\r\n relativeConsumption: \"Consumo\",\r\n hourOfDay: \"Hora del día\",\r\n },\r\n validEmailError:\r\n \"Por favor, ingrese una dirección de correo electrónico válida\",\r\n requestOffer: \"Solicitar una oferta\",\r\n requestOfferButton: \"Solicitar oferta\",\r\n year: \"Año\",\r\n additionalComponents: {\r\n title: \"Componentes adicionales\",\r\n heatPump: \"Caldera\",\r\n electricCar: \"Coche eléctrico\",\r\n battery: \"Batería\",\r\n chargingTime: \"Hora de carga\",\r\n chargingTimeDay: \"Día (06:00 - 18:00)\",\r\n chargingTimeNight: \"Noche (18:00 - 06:00)\",\r\n kilometersPerYear: \"Kilómetros por año\",\r\n },\r\n annualPriceIncrease: \"Aumento anual del precio (%)\",\r\n costSavings20Years: \"Ahorro 20 años\",\r\n compensation20Years: \"Compensación 20 años\",\r\n monetaryBenefit20Years: \"Beneficio monetario 20 años\",\r\n approximate: \"Valor aproximado\",\r\n sending: \"Enviando...\",\r\n leadSubmitted: \"¡Su solicitud ha sido enviada exitosamente!\",\r\n leadError:\r\n \"Hubo un error al enviar su solicitud. Por favor, inténtelo de nuevo.\",\r\n },\r\n mapDraw: {\r\n instructions: {\r\n show: \"Mostrar instrucciones\",\r\n hide: \"Ocultar instrucciones\",\r\n parts: {\r\n roof:\r\n \"Después de buscar y seleccionar su dirección, resalte la parte del tejado donde desea añadir paneles solares. Marque cada superficie con un polígono con la herramienta de tejado\",\r\n obstruction:\r\n \". Si tiene claraboyas u otras obstrucciones donde no desea añadir paneles solares, márquelas también con la herramienta de obstrucción\",\r\n delete:\r\n \". Puede eliminar polígonos con la herramienta de eliminación\",\r\n move:\r\n \". Si desea cambiar las esquinas de un polígono, seleccione la herramienta de movimiento\",\r\n end: \", seleccione el polígono que desea modificar y arrastre y suelte los bordes.\",\r\n },\r\n },\r\n markRoofEdge: \"Marcar borde inferior del tejado\",\r\n markAsFlatRoof: \"Marcar como tejado plano\",\r\n loading: \"Cargando\",\r\n noPolygonSelected: \"No se ha seleccionado un polígono\",\r\n noAddressSelected: \"Por favor, seleccione una dirección\",\r\n information: \"Información\",\r\n calculateSolarPanels: \"Calcular paneles solares\",\r\n panels: \"Paneles\",\r\n area: \"Área\",\r\n azimuth: \"Azimut\",\r\n pitch: \"Inclinación\",\r\n imageLoadError:\r\n \"Ocurrió un error al cargar la imagen satelital. Por favor, inténtelo de nuevo.\",\r\n tools: {\r\n roof: {\r\n name: \"Tejado\",\r\n explanation: \"Dibuje el tejado del edificio\",\r\n ariaLabel: \"Tejado\",\r\n },\r\n obstruction: {\r\n name: \"Obstrucción\",\r\n explanation: \"Dibuje la obstrucción del edificio\",\r\n ariaLabel: \"Obstrucción\",\r\n },\r\n delete: {\r\n name: \"Eliminar\",\r\n explanation: \"Elimine el polígono seleccionado\",\r\n ariaLabel: \"Eliminar\",\r\n },\r\n move: {\r\n name: \"Mover\",\r\n explanation: \"Mueva los puntos del polígono seleccionado\",\r\n ariaLabel: \"Mover\",\r\n },\r\n undo: {\r\n name: \"Deshacer\",\r\n explanation: \"Deshaga la última acción\",\r\n ariaLabel: \"Deshacer\",\r\n },\r\n markRoofEdge: {\r\n name: \"Marcar borde inferior del tejado\",\r\n explanation: \"Marque el borde inferior del tejado\",\r\n ariaLabel: \"Marcar borde inferior del tejado\",\r\n },\r\n },\r\n toast: {\r\n undoSuccess: \"Acción deshecha exitosamente\",\r\n calculateSolarPanelsSuccess:\r\n \"Paneles solares calculados exitosamente\",\r\n markAsFlatRoofSuccess:\r\n \"Tejado marcado como plano. Por favor, seleccione un borde para alinear los paneles con el edificio.\",\r\n },\r\n tutorial: {\r\n title: \"Cómo marcar su tejado\",\r\n description:\r\n \"Use la herramienta de tejado para marcar el segmento del tejado donde desea instalar paneles solares. Haga clic en las esquinas de su tejado para crear un polígono.\",\r\n understood: \"Entendido\",\r\n mobileInstruction: \"Toque el video para reproducir\",\r\n markEdge: {\r\n title: \"Marcar el borde inferior del tejado\",\r\n description:\r\n \"Ahora marque el borde inferior de su tejado para ayudar a calcular la colocación óptima de los paneles solares. Haga clic en los puntos a lo largo del borde inferior de su tejado.\",\r\n understood: \"Entendido\",\r\n },\r\n additionalTools: {\r\n title: \"Herramientas adicionales disponibles\",\r\n description:\r\n \"Ahora puede añadir más segmentos de tejado usando la herramienta de tejado. Use la herramienta de obstrucción para marcar áreas donde no desea paneles solares (como claraboyas o chimeneas). La herramienta de movimiento le permite seleccionar cualquier polígono y editar sus puntos arrastrándolos.\",\r\n understood: \"Entendido\",\r\n },\r\n obstacle: {\r\n title: \"Marcar obstrucciones\",\r\n description:\r\n \"Ahora puede marcar áreas donde no desea paneles solares, como claraboyas, chimeneas u otras características del tejado. Use la herramienta de obstrucción para dibujar polígonos alrededor de estas áreas.\",\r\n understood: \"Entendido\",\r\n skip: \"Saltar tutorial\",\r\n },\r\n },\r\n },\r\n};\r\n"]}
|
|
@@ -59,7 +59,6 @@ export async function downloadGeoTIFF(url, apiKey) {
|
|
|
59
59
|
}
|
|
60
60
|
// [END solar_api_download_geotiff]
|
|
61
61
|
export async function getBuildingImages(latitude, longitude, apiKey, radiusMeters = 15) {
|
|
62
|
-
console.log("getBuildingImages", latitude, longitude, radiusMeters);
|
|
63
62
|
if (latitude === 0 || longitude === 0) {
|
|
64
63
|
return null;
|
|
65
64
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solar.js","sourceRoot":"","sources":["../../src/utils/solar.ts"],"names":[],"mappings":"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","sourcesContent":["import {\r\n BuildingInsightsResponse,\r\n DataLayersResponse,\r\n GeoTiff,\r\n} from \"harmonia-types\";\r\n\r\n// import { fromArrayBuffer, TypedArray } from \"../geotiff\";\r\nimport { fromArrayBuffer, TypedArray } from \"geotiff\";\r\nimport * as geokeysToProj4 from \"geotiff-geokeys-to-proj4\";\r\nimport proj4 from \"proj4\";\r\n\r\n/**\r\n * Downloads the pixel values for a Data Layer URL from the Solar API.\r\n *\r\n * @param {string} url URL from the Data Layers response.\r\n * @param {string} apiKey Google Cloud API key.\r\n * @return {Promise<GeoTiff>} Pixel values with shape and lat/lon bounds.\r\n */\r\nexport async function downloadGeoTIFF(url: string, apiKey: string) { //}: Promise<GeoTiff> {\r\n // Include your Google Cloud API key in the Data Layers URL.\r\n const solarUrl = url.includes(\"solar.googleapis.com\")\r\n ? url + `&key=${apiKey}`\r\n : url;\r\n const response = await fetch(solarUrl);\r\n if (response.status != 200) {\r\n const error = await response.json();\r\n console.error(`downloadGeoTIFF failed: ${url}\\n`, error);\r\n throw error;\r\n }\r\n\r\n // Get the GeoTIFF rasters, which are the pixel values for each band.\r\n const arrayBuffer = await response.arrayBuffer();\r\n const tiff = await fromArrayBuffer(arrayBuffer);\r\n const image = await tiff.getImage();\r\n const rasters = await image.readRasters();\r\n\r\n // Reproject the bounding box into lat/lon coordinates.\r\n const geoKeys = image.getGeoKeys();\r\n const projObj = geokeysToProj4.toProj4(geoKeys);\r\n const projection = proj4(projObj.proj4, \"WGS84\");\r\n const box = image.getBoundingBox();\r\n const sw = projection.forward({\r\n x: box[0] * projObj.coordinatesConversionParameters.x,\r\n y: box[1] * projObj.coordinatesConversionParameters.y,\r\n });\r\n const ne = projection.forward({\r\n x: box[2] * projObj.coordinatesConversionParameters.x,\r\n y: box[3] * projObj.coordinatesConversionParameters.y,\r\n });\r\n\r\n return {\r\n // Width and height of the data layer image in pixels.\r\n // Used to know the row and column since Javascript\r\n // stores the values as flat arrays.\r\n width: rasters.width,\r\n height: rasters.height,\r\n // Each raster reprents the pixel values of each band.\r\n // We convert them from `geotiff.TypedArray`s into plain\r\n // Javascript arrays to make them easier to process.\r\n rasters: [...Array(rasters.length).keys()].map((i) =>\r\n Array.from(rasters[i] as TypedArray)\r\n ),\r\n // The bounding box as a lat/lon rectangle.\r\n bounds: {\r\n north: ne.y,\r\n south: sw.y,\r\n east: ne.x,\r\n west: sw.x,\r\n },\r\n };\r\n}\r\n// [END solar_api_download_geotiff]\r\n\r\nexport async function getBuildingImages(\r\n latitude: number,\r\n longitude: number,\r\n apiKey: string,\r\n radiusMeters: number = 15,\r\n) {\r\n console.log(\"getBuildingImages\", latitude, longitude, radiusMeters);\r\n if (latitude === 0 || longitude === 0) {\r\n return null;\r\n }\r\n\r\n try {\r\n const args = {\r\n \"location.latitude\": latitude.toFixed(5),\r\n \"location.longitude\": longitude.toFixed(5),\r\n radius_meters: (radiusMeters + 2).toString(),\r\n required_quality: \"LOW\",\r\n };\r\n const params = new URLSearchParams({\r\n ...args,\r\n key: apiKey,\r\n });\r\n const response = await fetch(\r\n `https://solar.googleapis.com/v1/dataLayers:get?${params}`,\r\n );\r\n\r\n if (!response.ok) {\r\n throw new Error(`HTTP error! status: ${response.status}`);\r\n }\r\n const parsedResponse: DataLayersResponse = await response.json();\r\n\r\n const rgbTiff = await downloadGeoTIFF(\r\n parsedResponse.rgbUrl,\r\n apiKey,\r\n );\r\n\r\n return rgbTiff;\r\n } catch (error) {\r\n console.error(\"Error fetching building images:\", error);\r\n return null;\r\n }\r\n}\r\n\r\nexport async function fetchSolarData(\r\n latitude: number,\r\n longitude: number,\r\n apiKey: string,\r\n) {\r\n if (latitude === 0 || longitude === 0) {\r\n return null;\r\n }\r\n try {\r\n const args = {\r\n \"location.latitude\": latitude.toFixed(5),\r\n \"location.longitude\": longitude.toFixed(5),\r\n };\r\n const params = new URLSearchParams({\r\n ...args,\r\n key: apiKey,\r\n });\r\n const response = await fetch(\r\n `https://solar.googleapis.com/v1/buildingInsights:findClosest?${params}`,\r\n );\r\n\r\n if (!response.ok) {\r\n const errorText = await response.text();\r\n throw new Error(\r\n `HTTP error! status: ${response.status}, body: ${errorText}`,\r\n );\r\n }\r\n\r\n const contentType = response.headers.get(\"content-type\");\r\n if (!contentType || !contentType.includes(\"application/json\")) {\r\n const text = await response.text();\r\n console.error(\r\n \"Unexpected content type:\",\r\n contentType,\r\n \"Response:\",\r\n text,\r\n );\r\n return null;\r\n }\r\n\r\n const rawData: BuildingInsightsResponse = await response.json();\r\n return rawData;\r\n } catch (error) {\r\n console.error(\"Error fetching solar data:\", error);\r\n if (\r\n error instanceof TypeError &&\r\n error.message === \"Failed to fetch\"\r\n ) {\r\n throw new Error(\"Unable to connect to the solar data API.\");\r\n }\r\n throw error;\r\n }\r\n}\r\n\r\nexport function getPixelInMeters(rgbTiff: GeoTiff): number {\r\n const latDiff = rgbTiff.bounds.north - rgbTiff.bounds.south;\r\n // const lngDiff = rgbTiff.bounds.east - rgbTiff.bounds.west;\r\n // const pixelWidth = rgbTiff.width;\r\n const pixelHeight = rgbTiff.height;\r\n const pixelInMeters = latDiff * 111320 / pixelHeight;\r\n // const latAvg = (rgbTiff.bounds.north + rgbTiff.bounds.south) / 2;\r\n // const pixelInMetersLng = lngDiff * 111320 * Math.cos(latAvg * Math.PI / 180) / pixelWidth;\r\n return pixelInMeters;\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"solar.js","sourceRoot":"","sources":["../../src/utils/solar.ts"],"names":[],"mappings":"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","sourcesContent":["import {\r\n BuildingInsightsResponse,\r\n DataLayersResponse,\r\n GeoTiff,\r\n} from \"harmonia-types\";\r\n\r\n// import { fromArrayBuffer, TypedArray } from \"../geotiff\";\r\nimport { fromArrayBuffer, TypedArray } from \"geotiff\";\r\nimport * as geokeysToProj4 from \"geotiff-geokeys-to-proj4\";\r\nimport proj4 from \"proj4\";\r\n\r\n/**\r\n * Downloads the pixel values for a Data Layer URL from the Solar API.\r\n *\r\n * @param {string} url URL from the Data Layers response.\r\n * @param {string} apiKey Google Cloud API key.\r\n * @return {Promise<GeoTiff>} Pixel values with shape and lat/lon bounds.\r\n */\r\nexport async function downloadGeoTIFF(url: string, apiKey: string) { //}: Promise<GeoTiff> {\r\n // Include your Google Cloud API key in the Data Layers URL.\r\n const solarUrl = url.includes(\"solar.googleapis.com\")\r\n ? url + `&key=${apiKey}`\r\n : url;\r\n const response = await fetch(solarUrl);\r\n if (response.status != 200) {\r\n const error = await response.json();\r\n console.error(`downloadGeoTIFF failed: ${url}\\n`, error);\r\n throw error;\r\n }\r\n\r\n // Get the GeoTIFF rasters, which are the pixel values for each band.\r\n const arrayBuffer = await response.arrayBuffer();\r\n const tiff = await fromArrayBuffer(arrayBuffer);\r\n const image = await tiff.getImage();\r\n const rasters = await image.readRasters();\r\n\r\n // Reproject the bounding box into lat/lon coordinates.\r\n const geoKeys = image.getGeoKeys();\r\n const projObj = geokeysToProj4.toProj4(geoKeys);\r\n const projection = proj4(projObj.proj4, \"WGS84\");\r\n const box = image.getBoundingBox();\r\n const sw = projection.forward({\r\n x: box[0] * projObj.coordinatesConversionParameters.x,\r\n y: box[1] * projObj.coordinatesConversionParameters.y,\r\n });\r\n const ne = projection.forward({\r\n x: box[2] * projObj.coordinatesConversionParameters.x,\r\n y: box[3] * projObj.coordinatesConversionParameters.y,\r\n });\r\n\r\n return {\r\n // Width and height of the data layer image in pixels.\r\n // Used to know the row and column since Javascript\r\n // stores the values as flat arrays.\r\n width: rasters.width,\r\n height: rasters.height,\r\n // Each raster reprents the pixel values of each band.\r\n // We convert them from `geotiff.TypedArray`s into plain\r\n // Javascript arrays to make them easier to process.\r\n rasters: [...Array(rasters.length).keys()].map((i) =>\r\n Array.from(rasters[i] as TypedArray)\r\n ),\r\n // The bounding box as a lat/lon rectangle.\r\n bounds: {\r\n north: ne.y,\r\n south: sw.y,\r\n east: ne.x,\r\n west: sw.x,\r\n },\r\n };\r\n}\r\n// [END solar_api_download_geotiff]\r\n\r\nexport async function getBuildingImages(\r\n latitude: number,\r\n longitude: number,\r\n apiKey: string,\r\n radiusMeters: number = 15,\r\n) {\r\n if (latitude === 0 || longitude === 0) {\r\n return null;\r\n }\r\n\r\n try {\r\n const args = {\r\n \"location.latitude\": latitude.toFixed(5),\r\n \"location.longitude\": longitude.toFixed(5),\r\n radius_meters: (radiusMeters + 2).toString(),\r\n required_quality: \"LOW\",\r\n };\r\n const params = new URLSearchParams({\r\n ...args,\r\n key: apiKey,\r\n });\r\n const response = await fetch(\r\n `https://solar.googleapis.com/v1/dataLayers:get?${params}`,\r\n );\r\n\r\n if (!response.ok) {\r\n throw new Error(`HTTP error! status: ${response.status}`);\r\n }\r\n const parsedResponse: DataLayersResponse = await response.json();\r\n\r\n const rgbTiff = await downloadGeoTIFF(\r\n parsedResponse.rgbUrl,\r\n apiKey,\r\n );\r\n\r\n return rgbTiff;\r\n } catch (error) {\r\n console.error(\"Error fetching building images:\", error);\r\n return null;\r\n }\r\n}\r\n\r\nexport async function fetchSolarData(\r\n latitude: number,\r\n longitude: number,\r\n apiKey: string,\r\n) {\r\n if (latitude === 0 || longitude === 0) {\r\n return null;\r\n }\r\n try {\r\n const args = {\r\n \"location.latitude\": latitude.toFixed(5),\r\n \"location.longitude\": longitude.toFixed(5),\r\n };\r\n const params = new URLSearchParams({\r\n ...args,\r\n key: apiKey,\r\n });\r\n const response = await fetch(\r\n `https://solar.googleapis.com/v1/buildingInsights:findClosest?${params}`,\r\n );\r\n\r\n if (!response.ok) {\r\n const errorText = await response.text();\r\n throw new Error(\r\n `HTTP error! status: ${response.status}, body: ${errorText}`,\r\n );\r\n }\r\n\r\n const contentType = response.headers.get(\"content-type\");\r\n if (!contentType || !contentType.includes(\"application/json\")) {\r\n const text = await response.text();\r\n console.error(\r\n \"Unexpected content type:\",\r\n contentType,\r\n \"Response:\",\r\n text,\r\n );\r\n return null;\r\n }\r\n\r\n const rawData: BuildingInsightsResponse = await response.json();\r\n return rawData;\r\n } catch (error) {\r\n console.error(\"Error fetching solar data:\", error);\r\n if (\r\n error instanceof TypeError &&\r\n error.message === \"Failed to fetch\"\r\n ) {\r\n throw new Error(\"Unable to connect to the solar data API.\");\r\n }\r\n throw error;\r\n }\r\n}\r\n\r\nexport function getPixelInMeters(rgbTiff: GeoTiff): number {\r\n const latDiff = rgbTiff.bounds.north - rgbTiff.bounds.south;\r\n // const lngDiff = rgbTiff.bounds.east - rgbTiff.bounds.west;\r\n // const pixelWidth = rgbTiff.width;\r\n const pixelHeight = rgbTiff.height;\r\n const pixelInMeters = latDiff * 111320 / pixelHeight;\r\n // const latAvg = (rgbTiff.bounds.north + rgbTiff.bounds.south) / 2;\r\n // const pixelInMetersLng = lngDiff * 111320 * Math.cos(latAvg * Math.PI / 180) / pixelWidth;\r\n return pixelInMeters;\r\n}\r\n"]}
|
|
@@ -10,7 +10,7 @@ const LoadingWidget$1 = /*@__PURE__*/ proxyCustomElement(class LoadingWidget ext
|
|
|
10
10
|
this.__registerHost();
|
|
11
11
|
}
|
|
12
12
|
render() {
|
|
13
|
-
return (h("div", { key: '
|
|
13
|
+
return (h("div", { key: '109fccb95eecc3f9eae344cd2393dba6f89592ff', class: "absolute flex items-center justify-center bg-muted bg-opacity-75 z-20 pt-7 rounded-4xl" }, h("div", { key: '5f2ad1dd8255ba48be3881d1db99267bb022e68d', class: "animate-spin rounded-full h-16 w-16 border-t-2 border-b-2 border-secondary" })));
|
|
14
14
|
}
|
|
15
15
|
static get style() { return outputCss; }
|
|
16
16
|
}, [0, "loading-widget"]);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
|
|
2
2
|
if (typeof global === "undefined") { var global = globalThis || window || self; }
|
|
3
|
-
import { M as MapDraw$1, d as defineCustomElement$1 } from './p-
|
|
3
|
+
import { M as MapDraw$1, d as defineCustomElement$1 } from './p-BOe-Z8rz.js';
|
|
4
4
|
|
|
5
5
|
const MapDraw = MapDraw$1;
|
|
6
6
|
const defineCustomElement = defineCustomElement$1;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
|
|
2
2
|
if (typeof global === "undefined") { var global = globalThis || window || self; }
|
|
3
|
-
import { M as MapSelector$1, d as defineCustomElement$1 } from './p-
|
|
3
|
+
import { M as MapSelector$1, d as defineCustomElement$1 } from './p-Bduzzygj.js';
|
|
4
4
|
|
|
5
5
|
const MapSelector = MapSelector$1;
|
|
6
6
|
const defineCustomElement = defineCustomElement$1;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
|
|
2
2
|
if (typeof global === "undefined") { var global = globalThis || window || self; }
|
|
3
3
|
import { p as proxyCustomElement, H, h } from './index.js';
|
|
4
|
-
import { g as getLanguageStrings, s as state } from './p-
|
|
4
|
+
import { g as getLanguageStrings, s as state } from './p-DfzSejIb.js';
|
|
5
5
|
|
|
6
6
|
const outputCss = "/*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */\n@layer properties;\n@layer theme, base, components, utilities;\n@layer theme {\n :root, :host {\n --font-sans: ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\",\n \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\",\n \"Courier New\", monospace;\n --color-red-100: oklch(93.6% 0.032 17.717);\n --color-red-300: oklch(80.8% 0.114 19.571);\n --color-red-500: oklch(63.7% 0.237 25.331);\n --color-red-700: oklch(50.5% 0.213 27.518);\n --color-black: #000;\n --color-white: #fff;\n --spacing: 0.25rem;\n --container-md: 28rem;\n --container-2xl: 42rem;\n --text-xs: 0.75rem;\n --text-xs--line-height: calc(1 / 0.75);\n --text-sm: 0.875rem;\n --text-sm--line-height: calc(1.25 / 0.875);\n --text-lg: 1.125rem;\n --text-lg--line-height: calc(1.75 / 1.125);\n --text-xl: 1.25rem;\n --text-xl--line-height: calc(1.75 / 1.25);\n --text-2xl: 1.5rem;\n --text-2xl--line-height: calc(2 / 1.5);\n --font-weight-medium: 500;\n --font-weight-semibold: 600;\n --font-weight-bold: 700;\n --radius-lg: 0.5rem;\n --radius-4xl: 2rem;\n --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);\n --animate-spin: spin 1s linear infinite;\n --default-transition-duration: 150ms;\n --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --default-font-family: var(--font-sans);\n --default-mono-font-family: var(--font-mono);\n --color-primary: hsl(41 51% 90%);\n --color-primary-foreground: hsl(0 0% 0%);\n --color-secondary: hsl(28 100% 8%);\n --color-secondary-foreground: hsl(0 0% 100%);\n --color-tertiary: hsl(28 100% 29%);\n --color-tertiary-foreground: hsl(0 0% 100%);\n --color-muted: hsl(0 0% 100%);\n --color-muted-foreground: hsl(0 0% 0%);\n --color-error: hsl(0 100% 50%);\n --color-error-foreground: hsl(0 0% 100%);\n --color-surface: hsl(0 0% 88%);\n --color-surface-hover: hsl(0 0% 82%);\n --color-surface-active: hsl(0 0% 64%);\n --color-text-muted: hsl(0 0% 45%);\n --color-text-secondary: hsl(0 0% 55%);\n --color-text-placeholder: hsl(0 0% 73%);\n --color-border: hsl(0 0% 82%);\n --color-border-light: hsl(0 0% 93%);\n --color-success: hsl(142 76% 36%);\n --color-info: hsl(221 83% 53%);\n --color-hover: hsl(0 0% 88%);\n --color-hover-dark: hsl(28 100% 8%);\n --color-overlay: rgba(0, 0, 0, 0.24);\n --color-tooltip: hsl(0 0% 13%);\n }\n}\n@layer base {\n *, ::after, ::before, ::backdrop, ::file-selector-button {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n }\n html, :host {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n tab-size: 4;\n font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");\n font-feature-settings: var(--default-font-feature-settings, normal);\n font-variation-settings: var(--default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n }\n hr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n }\n abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\n h1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n }\n a {\n color: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n }\n b, strong {\n font-weight: bolder;\n }\n code, kbd, samp, pre {\n font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);\n font-feature-settings: var(--default-mono-font-feature-settings, normal);\n font-variation-settings: var(--default-mono-font-variation-settings, normal);\n font-size: 1em;\n }\n small {\n font-size: 80%;\n }\n sub, sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n :-moz-focusring {\n outline: auto;\n }\n progress {\n vertical-align: baseline;\n }\n summary {\n display: list-item;\n }\n ol, ul, menu {\n list-style: none;\n }\n img, svg, video, canvas, audio, iframe, embed, object {\n display: block;\n vertical-align: middle;\n }\n img, video {\n max-width: 100%;\n height: auto;\n }\n button, input, select, optgroup, textarea, ::file-selector-button {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n }\n :where(select:is([multiple], [size])) optgroup {\n font-weight: bolder;\n }\n :where(select:is([multiple], [size])) optgroup option {\n padding-inline-start: 20px;\n }\n ::file-selector-button {\n margin-inline-end: 4px;\n }\n ::placeholder {\n opacity: 1;\n }\n @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {\n ::placeholder {\n color: currentcolor;\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n }\n textarea {\n resize: vertical;\n }\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n ::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n }\n ::-webkit-datetime-edit {\n display: inline-flex;\n }\n ::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n }\n ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {\n padding-block: 0;\n }\n :-moz-ui-invalid {\n box-shadow: none;\n }\n button, input:where([type=\"button\"], [type=\"reset\"], [type=\"submit\"]), ::file-selector-button {\n appearance: button;\n }\n ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {\n height: auto;\n }\n [hidden]:where(:not([hidden=\"until-found\"])) {\n display: none !important;\n }\n}\n@layer utilities {\n .pointer-events-none {\n pointer-events: none;\n }\n .absolute {\n position: absolute;\n }\n .fixed {\n position: fixed;\n }\n .relative {\n position: relative;\n }\n .inset-0 {\n inset: calc(var(--spacing) * 0);\n }\n .top-0 {\n top: calc(var(--spacing) * 0);\n }\n .bottom-4 {\n bottom: calc(var(--spacing) * 4);\n }\n .left-0 {\n left: calc(var(--spacing) * 0);\n }\n .left-1\\/2 {\n left: calc(1/2 * 100%);\n }\n .left-3 {\n left: calc(var(--spacing) * 3);\n }\n .z-10 {\n z-index: 10;\n }\n .z-20 {\n z-index: 20;\n }\n .z-50 {\n z-index: 50;\n }\n .container {\n width: 100%;\n @media (width >= 40rem) {\n max-width: 40rem;\n }\n @media (width >= 48rem) {\n max-width: 48rem;\n }\n @media (width >= 64rem) {\n max-width: 64rem;\n }\n @media (width >= 80rem) {\n max-width: 80rem;\n }\n @media (width >= 96rem) {\n max-width: 96rem;\n }\n }\n .m-auto {\n margin: auto;\n }\n .mt-1 {\n margin-top: calc(var(--spacing) * 1);\n }\n .mt-4 {\n margin-top: calc(var(--spacing) * 4);\n }\n .mt-6 {\n margin-top: calc(var(--spacing) * 6);\n }\n .mb-1 {\n margin-bottom: calc(var(--spacing) * 1);\n }\n .mb-4 {\n margin-bottom: calc(var(--spacing) * 4);\n }\n .mb-6 {\n margin-bottom: calc(var(--spacing) * 6);\n }\n .block {\n display: block;\n }\n .flex {\n display: flex;\n }\n .grid {\n display: grid;\n }\n .inline {\n display: inline;\n }\n .inline-block {\n display: inline-block;\n }\n .h-4 {\n height: calc(var(--spacing) * 4);\n }\n .h-16 {\n height: calc(var(--spacing) * 16);\n }\n .h-48 {\n height: calc(var(--spacing) * 48);\n }\n .h-64 {\n height: calc(var(--spacing) * 64);\n }\n .h-\\[400px\\] {\n height: 400px;\n }\n .h-full {\n height: 100%;\n }\n .max-h-full {\n max-height: 100%;\n }\n .w-4 {\n width: calc(var(--spacing) * 4);\n }\n .w-16 {\n width: calc(var(--spacing) * 16);\n }\n .w-20 {\n width: calc(var(--spacing) * 20);\n }\n .w-64 {\n width: calc(var(--spacing) * 64);\n }\n .w-full {\n width: 100%;\n }\n .max-w-2xl {\n max-width: var(--container-2xl);\n }\n .max-w-md {\n max-width: var(--container-md);\n }\n .flex-1 {\n flex: 1;\n }\n .-translate-x-1\\/2 {\n --tw-translate-x: calc(calc(1/2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-y-0 {\n --tw-translate-y: calc(var(--spacing) * 0);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-y-2 {\n --tw-translate-y: calc(var(--spacing) * 2);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .scale-95 {\n --tw-scale-x: 95%;\n --tw-scale-y: 95%;\n --tw-scale-z: 95%;\n scale: var(--tw-scale-x) var(--tw-scale-y);\n }\n .scale-100 {\n --tw-scale-x: 100%;\n --tw-scale-y: 100%;\n --tw-scale-z: 100%;\n scale: var(--tw-scale-x) var(--tw-scale-y);\n }\n .transform {\n transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);\n }\n .animate-spin {\n animation: var(--animate-spin);\n }\n .cursor-not-allowed {\n cursor: not-allowed;\n }\n .resize {\n resize: both;\n }\n .appearance-none {\n appearance: none;\n }\n .grid-cols-1 {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n }\n .grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n .grid-rows-2 {\n grid-template-rows: repeat(2, minmax(0, 1fr));\n }\n .flex-col {\n flex-direction: column;\n }\n .flex-row {\n flex-direction: row;\n }\n .flex-wrap {\n flex-wrap: wrap;\n }\n .items-center {\n align-items: center;\n }\n .items-start {\n align-items: flex-start;\n }\n .items-stretch {\n align-items: stretch;\n }\n .justify-between {\n justify-content: space-between;\n }\n .justify-center {\n justify-content: center;\n }\n .justify-end {\n justify-content: flex-end;\n }\n .justify-start {\n justify-content: flex-start;\n }\n .gap-0 {\n gap: calc(var(--spacing) * 0);\n }\n .gap-1 {\n gap: calc(var(--spacing) * 1);\n }\n .gap-2 {\n gap: calc(var(--spacing) * 2);\n }\n .gap-4 {\n gap: calc(var(--spacing) * 4);\n }\n .space-y-3 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-4 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-6 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .overflow-hidden {\n overflow: hidden;\n }\n .overflow-y-auto {\n overflow-y: auto;\n }\n .rounded {\n border-radius: 0.25rem;\n }\n .rounded-4xl {\n border-radius: var(--radius-4xl);\n }\n .rounded-full {\n border-radius: calc(infinity * 1px);\n }\n .rounded-lg {\n border-radius: var(--radius-lg);\n }\n .border {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n .border-2 {\n border-style: var(--tw-border-style);\n border-width: 2px;\n }\n .border-t-2 {\n border-top-style: var(--tw-border-style);\n border-top-width: 2px;\n }\n .border-b-2 {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 2px;\n }\n .border-border {\n border-color: var(--color-border);\n }\n .border-current {\n border-color: currentcolor;\n }\n .border-error\\/20 {\n border-color: color-mix(in srgb, hsl(0 100% 50%) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--color-error) 20%, transparent);\n }\n }\n .border-info\\/20 {\n border-color: color-mix(in srgb, hsl(221 83% 53%) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--color-info) 20%, transparent);\n }\n }\n .border-red-300 {\n border-color: var(--color-red-300);\n }\n .border-secondary {\n border-color: var(--color-secondary);\n }\n .border-success\\/20 {\n border-color: color-mix(in srgb, hsl(142 76% 36%) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--color-success) 20%, transparent);\n }\n }\n .border-t-transparent {\n border-top-color: transparent;\n }\n .bg-black {\n background-color: var(--color-black);\n }\n .bg-error\\/10 {\n background-color: color-mix(in srgb, hsl(0 100% 50%) 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-error) 10%, transparent);\n }\n }\n .bg-error\\/90 {\n background-color: color-mix(in srgb, hsl(0 100% 50%) 90%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-error) 90%, transparent);\n }\n }\n .bg-info\\/90 {\n background-color: color-mix(in srgb, hsl(221 83% 53%) 90%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-info) 90%, transparent);\n }\n }\n .bg-muted {\n background-color: var(--color-muted);\n }\n .bg-overlay {\n background-color: var(--color-overlay);\n }\n .bg-primary {\n background-color: var(--color-primary);\n }\n .bg-red-100 {\n background-color: var(--color-red-100);\n }\n .bg-secondary {\n background-color: var(--color-secondary);\n }\n .bg-success\\/10 {\n background-color: color-mix(in srgb, hsl(142 76% 36%) 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-success) 10%, transparent);\n }\n }\n .bg-success\\/90 {\n background-color: color-mix(in srgb, hsl(142 76% 36%) 90%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-success) 90%, transparent);\n }\n }\n .bg-surface {\n background-color: var(--color-surface);\n }\n .bg-tertiary {\n background-color: var(--color-tertiary);\n }\n .bg-transparent {\n background-color: transparent;\n }\n .object-contain {\n object-fit: contain;\n }\n .p-2 {\n padding: calc(var(--spacing) * 2);\n }\n .p-3 {\n padding: calc(var(--spacing) * 3);\n }\n .p-4 {\n padding: calc(var(--spacing) * 4);\n }\n .p-6 {\n padding: calc(var(--spacing) * 6);\n }\n .px-3 {\n padding-inline: calc(var(--spacing) * 3);\n }\n .px-4 {\n padding-inline: calc(var(--spacing) * 4);\n }\n .px-6 {\n padding-inline: calc(var(--spacing) * 6);\n }\n .py-1 {\n padding-block: calc(var(--spacing) * 1);\n }\n .py-2 {\n padding-block: calc(var(--spacing) * 2);\n }\n .py-3 {\n padding-block: calc(var(--spacing) * 3);\n }\n .pt-3 {\n padding-top: calc(var(--spacing) * 3);\n }\n .pt-4 {\n padding-top: calc(var(--spacing) * 4);\n }\n .pt-7 {\n padding-top: calc(var(--spacing) * 7);\n }\n .pr-3 {\n padding-right: calc(var(--spacing) * 3);\n }\n .pr-4 {\n padding-right: calc(var(--spacing) * 4);\n }\n .pb-2 {\n padding-bottom: calc(var(--spacing) * 2);\n }\n .pb-3 {\n padding-bottom: calc(var(--spacing) * 3);\n }\n .pb-4 {\n padding-bottom: calc(var(--spacing) * 4);\n }\n .pl-3 {\n padding-left: calc(var(--spacing) * 3);\n }\n .pl-4 {\n padding-left: calc(var(--spacing) * 4);\n }\n .pl-10 {\n padding-left: calc(var(--spacing) * 10);\n }\n .text-center {\n text-align: center;\n }\n .text-right {\n text-align: right;\n }\n .text-2xl {\n font-size: var(--text-2xl);\n line-height: var(--tw-leading, var(--text-2xl--line-height));\n }\n .text-lg {\n font-size: var(--text-lg);\n line-height: var(--tw-leading, var(--text-lg--line-height));\n }\n .text-sm {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n .text-xl {\n font-size: var(--text-xl);\n line-height: var(--tw-leading, var(--text-xl--line-height));\n }\n .text-xs {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n }\n .font-bold {\n --tw-font-weight: var(--font-weight-bold);\n font-weight: var(--font-weight-bold);\n }\n .font-medium {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n .font-semibold {\n --tw-font-weight: var(--font-weight-semibold);\n font-weight: var(--font-weight-semibold);\n }\n .text-error {\n color: var(--color-error);\n }\n .text-error-foreground {\n color: var(--color-error-foreground);\n }\n .text-muted {\n color: var(--color-muted);\n }\n .text-muted-foreground {\n color: var(--color-muted-foreground);\n }\n .text-primary-foreground {\n color: var(--color-primary-foreground);\n }\n .text-red-500 {\n color: var(--color-red-500);\n }\n .text-red-700 {\n color: var(--color-red-700);\n }\n .text-secondary {\n color: var(--color-secondary);\n }\n .text-success {\n color: var(--color-success);\n }\n .text-text-muted {\n color: var(--color-text-muted);\n }\n .text-text-secondary {\n color: var(--color-text-secondary);\n }\n .text-white {\n color: var(--color-white);\n }\n .accent-tertiary {\n accent-color: var(--color-tertiary);\n }\n .opacity-0 {\n opacity: 0%;\n }\n .opacity-100 {\n opacity: 100%;\n }\n .shadow {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-lg {\n --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .transition {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, visibility, content-visibility, overlay, pointer-events;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-all {\n transition-property: all;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-colors {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .duration-200 {\n --tw-duration: 200ms;\n transition-duration: 200ms;\n }\n .duration-300 {\n --tw-duration: 300ms;\n transition-duration: 300ms;\n }\n .ease-in-out {\n --tw-ease: var(--ease-in-out);\n transition-timing-function: var(--ease-in-out);\n }\n .hover\\:bg-hover {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-hover);\n }\n }\n }\n .hover\\:bg-muted {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-muted);\n }\n }\n }\n .hover\\:bg-overlay {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-overlay);\n }\n }\n }\n .hover\\:bg-secondary\\/80 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, hsl(28 100% 8%) 80%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-secondary) 80%, transparent);\n }\n }\n }\n }\n .hover\\:bg-surface-hover {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-surface-hover);\n }\n }\n }\n .hover\\:bg-tertiary {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-tertiary);\n }\n }\n }\n .hover\\:bg-tertiary\\/80 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, hsl(28 100% 29%) 80%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-tertiary) 80%, transparent);\n }\n }\n }\n }\n .hover\\:bg-text-secondary {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-text-secondary);\n }\n }\n }\n .focus\\:border-2 {\n &:focus {\n border-style: var(--tw-border-style);\n border-width: 2px;\n }\n }\n .focus\\:border-secondary {\n &:focus {\n border-color: var(--color-secondary);\n }\n }\n .focus\\:border-transparent {\n &:focus {\n border-color: transparent;\n }\n }\n .focus\\:ring-2 {\n &:focus {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus\\:ring-secondary {\n &:focus {\n --tw-ring-color: var(--color-secondary);\n }\n }\n .focus\\:ring-tertiary {\n &:focus {\n --tw-ring-color: var(--color-tertiary);\n }\n }\n .focus\\:ring-offset-0 {\n &:focus {\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n }\n }\n .focus\\:outline-none {\n &:focus {\n --tw-outline-style: none;\n outline-style: none;\n }\n }\n .sm\\:mt-0 {\n @media (width >= 40rem) {\n margin-top: calc(var(--spacing) * 0);\n }\n }\n .sm\\:flex-3 {\n @media (width >= 40rem) {\n flex: 3;\n }\n }\n .sm\\:flex-row {\n @media (width >= 40rem) {\n flex-direction: row;\n }\n }\n .sm\\:items-center {\n @media (width >= 40rem) {\n align-items: center;\n }\n }\n .sm\\:gap-4 {\n @media (width >= 40rem) {\n gap: calc(var(--spacing) * 4);\n }\n }\n .md\\:grid-cols-2 {\n @media (width >= 48rem) {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n }\n .md\\:pl-2 {\n @media (width >= 48rem) {\n padding-left: calc(var(--spacing) * 2);\n }\n }\n .\\[\\&\\:\\:-webkit-slider-runnable-track\\]\\:rounded-full {\n &::-webkit-slider-runnable-track {\n border-radius: calc(infinity * 1px);\n }\n }\n .\\[\\&\\:\\:-webkit-slider-runnable-track\\]\\:bg-black\\/25 {\n &::-webkit-slider-runnable-track {\n background-color: color-mix(in srgb, #000 25%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 25%, transparent);\n }\n }\n }\n .\\[\\&\\:\\:-webkit-slider-thumb\\]\\:h-\\[10px\\] {\n &::-webkit-slider-thumb {\n height: 10px;\n }\n }\n .\\[\\&\\:\\:-webkit-slider-thumb\\]\\:w-\\[10px\\] {\n &::-webkit-slider-thumb {\n width: 10px;\n }\n }\n .\\[\\&\\:\\:-webkit-slider-thumb\\]\\:appearance-none {\n &::-webkit-slider-thumb {\n appearance: none;\n }\n }\n .\\[\\&\\:\\:-webkit-slider-thumb\\]\\:rounded-full {\n &::-webkit-slider-thumb {\n border-radius: calc(infinity * 1px);\n }\n }\n .\\[\\&\\:\\:-webkit-slider-thumb\\]\\:bg-muted {\n &::-webkit-slider-thumb {\n background-color: var(--color-muted);\n }\n }\n}\n@property --tw-translate-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-scale-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-scale-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-scale-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-rotate-x {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-rotate-y {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-rotate-z {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-skew-x {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-skew-y {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-space-y-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-border-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-font-weight {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-inset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-ring-inset {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-offset-width {\n syntax: \"<length>\";\n inherits: false;\n initial-value: 0px;\n}\n@property --tw-ring-offset-color {\n syntax: \"*\";\n inherits: false;\n initial-value: #fff;\n}\n@property --tw-ring-offset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-duration {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ease {\n syntax: \"*\";\n inherits: false;\n}\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n@layer properties {\n @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {\n *, ::before, ::after, ::backdrop {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-scale-z: 1;\n --tw-rotate-x: initial;\n --tw-rotate-y: initial;\n --tw-rotate-z: initial;\n --tw-skew-x: initial;\n --tw-skew-y: initial;\n --tw-space-y-reverse: 0;\n --tw-border-style: solid;\n --tw-font-weight: initial;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 #0000;\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-duration: initial;\n --tw-ease: initial;\n }\n }\n}\n";
|
|
7
7
|
|
|
@@ -18,7 +18,7 @@ const PolygonButtons = /*@__PURE__*/ proxyCustomElement(class PolygonButtons ext
|
|
|
18
18
|
const buttonStyles = {
|
|
19
19
|
border: "1px solid #ccc",
|
|
20
20
|
};
|
|
21
|
-
return (h("div", { key: '
|
|
21
|
+
return (h("div", { key: '9b750e03993ffe090f3012a4e64df71eb1b66a80', class: "flex w-full gap-2 justify-center pb-3" }, h("button", { key: '53c1da0648b2093341e5e13d77d57dbc91642672', class: "px-4 py-2 rounded-4xl hover:bg-muted text-secondary transition-colors duration-200 text-xs", style: buttonStyles, onClick: () => this.markAsFlatRoof() }, t.mapDraw.markAsFlatRoof), h("button", { key: '1dc788893a340b5d05f68d222ac1d3ba29a06865', class: "px-4 py-2 rounded-4xl hover:bg-muted text-secondary transition-colors duration-200 text-xs", style: buttonStyles, onClick: () => this.calculateSolarPanels() }, t.mapDraw.calculateSolarPanels)));
|
|
22
22
|
}
|
|
23
23
|
static get style() { return outputCss; }
|
|
24
24
|
}, [0, "polygon-buttons", {
|
|
@@ -42,6 +42,6 @@ function defineCustomElement() {
|
|
|
42
42
|
defineCustomElement();
|
|
43
43
|
|
|
44
44
|
export { PolygonButtons as P, defineCustomElement as d };
|
|
45
|
-
//# sourceMappingURL=p-
|
|
45
|
+
//# sourceMappingURL=p-26DHwbCE.js.map
|
|
46
46
|
|
|
47
|
-
//# sourceMappingURL=p-
|
|
47
|
+
//# sourceMappingURL=p-26DHwbCE.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"p-i1uLweD0.js","mappings":";;;;;AAAA,MAAM,SAAS,GAAG,874BAA874B;;MCSn84B,cAAc,iBAAAA,kBAAA,CAAA,MAAA,cAAA,SAAAC,CAAA,CAAA;;;;;AAEvB,IAAA,oBAAoB;AAEpB,IAAA,cAAc;AAEd,IAAA,WAAW;IAEX,MAAM,GAAA;QACF,MAAM,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAErD,QAAA,MAAM,YAAY,GAAG;AACjB,YAAA,MAAM,EAAE,gBAAgB;SAC3B;AAED,QAAA,QACI,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,uCAAuC,EAAA,EAC9C,CACI,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,4FAA4F,EAClG,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,MAAM,IAAI,CAAC,cAAc,EAAE,EAAA,EAEnC,CAAC,CAAC,OAAO,CAAC,cAAc,CACpB,EACT,CACI,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,4FAA4F,EAClG,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,MAAM,IAAI,CAAC,oBAAoB,EAAE,EAAA,EAEzC,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAC1B,CACP;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/output.css?tag=polygon-buttons","src/components/map-draw/polygon-buttons.tsx"],"sourcesContent":["/*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */\n@layer properties;\n@layer theme, base, components, utilities;\n@layer theme {\n :root, :host {\n --font-sans: ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\",\n \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\",\n \"Courier New\", monospace;\n --color-red-100: oklch(93.6% 0.032 17.717);\n --color-red-300: oklch(80.8% 0.114 19.571);\n --color-red-500: oklch(63.7% 0.237 25.331);\n --color-red-700: oklch(50.5% 0.213 27.518);\n --color-black: #000;\n --color-white: #fff;\n --spacing: 0.25rem;\n --container-md: 28rem;\n --container-2xl: 42rem;\n --text-xs: 0.75rem;\n --text-xs--line-height: calc(1 / 0.75);\n --text-sm: 0.875rem;\n --text-sm--line-height: calc(1.25 / 0.875);\n --text-lg: 1.125rem;\n --text-lg--line-height: calc(1.75 / 1.125);\n --text-xl: 1.25rem;\n --text-xl--line-height: calc(1.75 / 1.25);\n --text-2xl: 1.5rem;\n --text-2xl--line-height: calc(2 / 1.5);\n --font-weight-medium: 500;\n --font-weight-semibold: 600;\n --font-weight-bold: 700;\n --radius-lg: 0.5rem;\n --radius-4xl: 2rem;\n --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);\n --animate-spin: spin 1s linear infinite;\n --default-transition-duration: 150ms;\n --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --default-font-family: var(--font-sans);\n --default-mono-font-family: var(--font-mono);\n --color-primary: hsl(41 51% 90%);\n --color-primary-foreground: hsl(0 0% 0%);\n --color-secondary: hsl(28 100% 8%);\n --color-secondary-foreground: hsl(0 0% 100%);\n --color-tertiary: hsl(28 100% 29%);\n --color-tertiary-foreground: hsl(0 0% 100%);\n --color-muted: hsl(0 0% 100%);\n --color-muted-foreground: hsl(0 0% 0%);\n --color-error: hsl(0 100% 50%);\n --color-error-foreground: hsl(0 0% 100%);\n --color-surface: hsl(0 0% 88%);\n --color-surface-hover: hsl(0 0% 82%);\n --color-surface-active: hsl(0 0% 64%);\n --color-text-muted: hsl(0 0% 45%);\n --color-text-secondary: hsl(0 0% 55%);\n --color-text-placeholder: hsl(0 0% 73%);\n --color-border: hsl(0 0% 82%);\n --color-border-light: hsl(0 0% 93%);\n --color-success: hsl(142 76% 36%);\n --color-info: hsl(221 83% 53%);\n --color-hover: hsl(0 0% 88%);\n --color-hover-dark: hsl(28 100% 8%);\n --color-overlay: rgba(0, 0, 0, 0.24);\n --color-tooltip: hsl(0 0% 13%);\n }\n}\n@layer base {\n *, ::after, ::before, ::backdrop, ::file-selector-button {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n }\n html, :host {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n tab-size: 4;\n font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");\n font-feature-settings: var(--default-font-feature-settings, normal);\n font-variation-settings: var(--default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n }\n hr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n }\n abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\n h1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n }\n a {\n color: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n }\n b, strong {\n font-weight: bolder;\n }\n code, kbd, samp, pre {\n font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);\n font-feature-settings: var(--default-mono-font-feature-settings, normal);\n font-variation-settings: var(--default-mono-font-variation-settings, normal);\n font-size: 1em;\n }\n small {\n font-size: 80%;\n }\n sub, sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n :-moz-focusring {\n outline: auto;\n }\n progress {\n vertical-align: baseline;\n }\n summary {\n display: list-item;\n }\n ol, ul, menu {\n list-style: none;\n }\n img, svg, video, canvas, audio, iframe, embed, object {\n display: block;\n vertical-align: middle;\n }\n img, video {\n max-width: 100%;\n height: auto;\n }\n button, input, select, optgroup, textarea, ::file-selector-button {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n }\n :where(select:is([multiple], [size])) optgroup {\n font-weight: bolder;\n }\n :where(select:is([multiple], [size])) optgroup option {\n padding-inline-start: 20px;\n }\n ::file-selector-button {\n margin-inline-end: 4px;\n }\n ::placeholder {\n opacity: 1;\n }\n @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {\n ::placeholder {\n color: currentcolor;\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n }\n textarea {\n resize: vertical;\n }\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n ::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n }\n ::-webkit-datetime-edit {\n display: inline-flex;\n }\n ::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n }\n ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {\n padding-block: 0;\n }\n :-moz-ui-invalid {\n box-shadow: none;\n }\n button, input:where([type=\"button\"], [type=\"reset\"], [type=\"submit\"]), ::file-selector-button {\n appearance: button;\n }\n ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {\n height: auto;\n }\n [hidden]:where(:not([hidden=\"until-found\"])) {\n display: none !important;\n }\n}\n@layer utilities {\n .pointer-events-none {\n pointer-events: none;\n }\n .absolute {\n position: absolute;\n }\n .fixed {\n position: fixed;\n }\n .relative {\n position: relative;\n }\n .inset-0 {\n inset: calc(var(--spacing) * 0);\n }\n .top-0 {\n top: calc(var(--spacing) * 0);\n }\n .bottom-4 {\n bottom: calc(var(--spacing) * 4);\n }\n .left-0 {\n left: calc(var(--spacing) * 0);\n }\n .left-1\\/2 {\n left: calc(1/2 * 100%);\n }\n .left-3 {\n left: calc(var(--spacing) * 3);\n }\n .z-10 {\n z-index: 10;\n }\n .z-20 {\n z-index: 20;\n }\n .z-50 {\n z-index: 50;\n }\n .container {\n width: 100%;\n @media (width >= 40rem) {\n max-width: 40rem;\n }\n @media (width >= 48rem) {\n max-width: 48rem;\n }\n @media (width >= 64rem) {\n max-width: 64rem;\n }\n @media (width >= 80rem) {\n max-width: 80rem;\n }\n @media (width >= 96rem) {\n max-width: 96rem;\n }\n }\n .m-auto {\n margin: auto;\n }\n .mt-1 {\n margin-top: calc(var(--spacing) * 1);\n }\n .mt-4 {\n margin-top: calc(var(--spacing) * 4);\n }\n .mt-6 {\n margin-top: calc(var(--spacing) * 6);\n }\n .mb-1 {\n margin-bottom: calc(var(--spacing) * 1);\n }\n .mb-4 {\n margin-bottom: calc(var(--spacing) * 4);\n }\n .mb-6 {\n margin-bottom: calc(var(--spacing) * 6);\n }\n .block {\n display: block;\n }\n .flex {\n display: flex;\n }\n .grid {\n display: grid;\n }\n .inline {\n display: inline;\n }\n .inline-block {\n display: inline-block;\n }\n .h-4 {\n height: calc(var(--spacing) * 4);\n }\n .h-16 {\n height: calc(var(--spacing) * 16);\n }\n .h-48 {\n height: calc(var(--spacing) * 48);\n }\n .h-64 {\n height: calc(var(--spacing) * 64);\n }\n .h-\\[400px\\] {\n height: 400px;\n }\n .h-full {\n height: 100%;\n }\n .max-h-full {\n max-height: 100%;\n }\n .w-4 {\n width: calc(var(--spacing) * 4);\n }\n .w-16 {\n width: calc(var(--spacing) * 16);\n }\n .w-20 {\n width: calc(var(--spacing) * 20);\n }\n .w-64 {\n width: calc(var(--spacing) * 64);\n }\n .w-full {\n width: 100%;\n }\n .max-w-2xl {\n max-width: var(--container-2xl);\n }\n .max-w-md {\n max-width: var(--container-md);\n }\n .flex-1 {\n flex: 1;\n }\n .-translate-x-1\\/2 {\n --tw-translate-x: calc(calc(1/2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-y-0 {\n --tw-translate-y: calc(var(--spacing) * 0);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-y-2 {\n --tw-translate-y: calc(var(--spacing) * 2);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .scale-95 {\n --tw-scale-x: 95%;\n --tw-scale-y: 95%;\n --tw-scale-z: 95%;\n scale: var(--tw-scale-x) var(--tw-scale-y);\n }\n .scale-100 {\n --tw-scale-x: 100%;\n --tw-scale-y: 100%;\n --tw-scale-z: 100%;\n scale: var(--tw-scale-x) var(--tw-scale-y);\n }\n .transform {\n transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);\n }\n .animate-spin {\n animation: var(--animate-spin);\n }\n .cursor-not-allowed {\n cursor: not-allowed;\n }\n .resize {\n resize: both;\n }\n .appearance-none {\n appearance: none;\n }\n .grid-cols-1 {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n }\n .grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n .grid-rows-2 {\n grid-template-rows: repeat(2, minmax(0, 1fr));\n }\n .flex-col {\n flex-direction: column;\n }\n .flex-row {\n flex-direction: row;\n }\n .flex-wrap {\n flex-wrap: wrap;\n }\n .items-center {\n align-items: center;\n }\n .items-start {\n align-items: flex-start;\n }\n .items-stretch {\n align-items: stretch;\n }\n .justify-between {\n justify-content: space-between;\n }\n .justify-center {\n justify-content: center;\n }\n .justify-end {\n justify-content: flex-end;\n }\n .justify-start {\n justify-content: flex-start;\n }\n .gap-0 {\n gap: calc(var(--spacing) * 0);\n }\n .gap-1 {\n gap: calc(var(--spacing) * 1);\n }\n .gap-2 {\n gap: calc(var(--spacing) * 2);\n }\n .gap-4 {\n gap: calc(var(--spacing) * 4);\n }\n .space-y-3 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-4 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-6 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .overflow-hidden {\n overflow: hidden;\n }\n .overflow-y-auto {\n overflow-y: auto;\n }\n .rounded {\n border-radius: 0.25rem;\n }\n .rounded-4xl {\n border-radius: var(--radius-4xl);\n }\n .rounded-full {\n border-radius: calc(infinity * 1px);\n }\n .rounded-lg {\n border-radius: var(--radius-lg);\n }\n .border {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n .border-2 {\n border-style: var(--tw-border-style);\n border-width: 2px;\n }\n .border-t-2 {\n border-top-style: var(--tw-border-style);\n border-top-width: 2px;\n }\n .border-b-2 {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 2px;\n }\n .border-border {\n border-color: var(--color-border);\n }\n .border-current {\n border-color: currentcolor;\n }\n .border-error\\/20 {\n border-color: color-mix(in srgb, hsl(0 100% 50%) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--color-error) 20%, transparent);\n }\n }\n .border-info\\/20 {\n border-color: color-mix(in srgb, hsl(221 83% 53%) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--color-info) 20%, transparent);\n }\n }\n .border-red-300 {\n border-color: var(--color-red-300);\n }\n .border-secondary {\n border-color: var(--color-secondary);\n }\n .border-success\\/20 {\n border-color: color-mix(in srgb, hsl(142 76% 36%) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--color-success) 20%, transparent);\n }\n }\n .border-t-transparent {\n border-top-color: transparent;\n }\n .bg-black {\n background-color: var(--color-black);\n }\n .bg-error\\/10 {\n background-color: color-mix(in srgb, hsl(0 100% 50%) 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-error) 10%, transparent);\n }\n }\n .bg-error\\/90 {\n background-color: color-mix(in srgb, hsl(0 100% 50%) 90%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-error) 90%, transparent);\n }\n }\n .bg-info\\/90 {\n background-color: color-mix(in srgb, hsl(221 83% 53%) 90%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-info) 90%, transparent);\n }\n }\n .bg-muted {\n background-color: var(--color-muted);\n }\n .bg-overlay {\n background-color: var(--color-overlay);\n }\n .bg-primary {\n background-color: var(--color-primary);\n }\n .bg-red-100 {\n background-color: var(--color-red-100);\n }\n .bg-secondary {\n background-color: var(--color-secondary);\n }\n .bg-success\\/10 {\n background-color: color-mix(in srgb, hsl(142 76% 36%) 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-success) 10%, transparent);\n }\n }\n .bg-success\\/90 {\n background-color: color-mix(in srgb, hsl(142 76% 36%) 90%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-success) 90%, transparent);\n }\n }\n .bg-surface {\n background-color: var(--color-surface);\n }\n .bg-tertiary {\n background-color: var(--color-tertiary);\n }\n .bg-transparent {\n background-color: transparent;\n }\n .object-contain {\n object-fit: contain;\n }\n .p-2 {\n padding: calc(var(--spacing) * 2);\n }\n .p-3 {\n padding: calc(var(--spacing) * 3);\n }\n .p-4 {\n padding: calc(var(--spacing) * 4);\n }\n .p-6 {\n padding: calc(var(--spacing) * 6);\n }\n .px-3 {\n padding-inline: calc(var(--spacing) * 3);\n }\n .px-4 {\n padding-inline: calc(var(--spacing) * 4);\n }\n .px-6 {\n padding-inline: calc(var(--spacing) * 6);\n }\n .py-1 {\n padding-block: calc(var(--spacing) * 1);\n }\n .py-2 {\n padding-block: calc(var(--spacing) * 2);\n }\n .py-3 {\n padding-block: calc(var(--spacing) * 3);\n }\n .pt-3 {\n padding-top: calc(var(--spacing) * 3);\n }\n .pt-4 {\n padding-top: calc(var(--spacing) * 4);\n }\n .pt-7 {\n padding-top: calc(var(--spacing) * 7);\n }\n .pr-3 {\n padding-right: calc(var(--spacing) * 3);\n }\n .pr-4 {\n padding-right: calc(var(--spacing) * 4);\n }\n .pb-2 {\n padding-bottom: calc(var(--spacing) * 2);\n }\n .pb-3 {\n padding-bottom: calc(var(--spacing) * 3);\n }\n .pb-4 {\n padding-bottom: calc(var(--spacing) * 4);\n }\n .pl-3 {\n padding-left: calc(var(--spacing) * 3);\n }\n .pl-4 {\n padding-left: calc(var(--spacing) * 4);\n }\n .pl-10 {\n padding-left: calc(var(--spacing) * 10);\n }\n .text-center {\n text-align: center;\n }\n .text-right {\n text-align: right;\n }\n .text-2xl {\n font-size: var(--text-2xl);\n line-height: var(--tw-leading, var(--text-2xl--line-height));\n }\n .text-lg {\n font-size: var(--text-lg);\n line-height: var(--tw-leading, var(--text-lg--line-height));\n }\n .text-sm {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n .text-xl {\n font-size: var(--text-xl);\n line-height: var(--tw-leading, var(--text-xl--line-height));\n }\n .text-xs {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n }\n .font-bold {\n --tw-font-weight: var(--font-weight-bold);\n font-weight: var(--font-weight-bold);\n }\n .font-medium {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n .font-semibold {\n --tw-font-weight: var(--font-weight-semibold);\n font-weight: var(--font-weight-semibold);\n }\n .text-error {\n color: var(--color-error);\n }\n .text-error-foreground {\n color: var(--color-error-foreground);\n }\n .text-muted {\n color: var(--color-muted);\n }\n .text-muted-foreground {\n color: var(--color-muted-foreground);\n }\n .text-primary-foreground {\n color: var(--color-primary-foreground);\n }\n .text-red-500 {\n color: var(--color-red-500);\n }\n .text-red-700 {\n color: var(--color-red-700);\n }\n .text-secondary {\n color: var(--color-secondary);\n }\n .text-success {\n color: var(--color-success);\n }\n .text-text-muted {\n color: var(--color-text-muted);\n }\n .text-text-secondary {\n color: var(--color-text-secondary);\n }\n .text-white {\n color: var(--color-white);\n }\n .accent-tertiary {\n accent-color: var(--color-tertiary);\n }\n .opacity-0 {\n opacity: 0%;\n }\n .opacity-100 {\n opacity: 100%;\n }\n .shadow {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-lg {\n --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .transition {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, visibility, content-visibility, overlay, pointer-events;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-all {\n transition-property: all;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-colors {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .duration-200 {\n --tw-duration: 200ms;\n transition-duration: 200ms;\n }\n .duration-300 {\n --tw-duration: 300ms;\n transition-duration: 300ms;\n }\n .ease-in-out {\n --tw-ease: var(--ease-in-out);\n transition-timing-function: var(--ease-in-out);\n }\n .hover\\:bg-hover {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-hover);\n }\n }\n }\n .hover\\:bg-muted {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-muted);\n }\n }\n }\n .hover\\:bg-overlay {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-overlay);\n }\n }\n }\n .hover\\:bg-secondary\\/80 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, hsl(28 100% 8%) 80%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-secondary) 80%, transparent);\n }\n }\n }\n }\n .hover\\:bg-surface-hover {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-surface-hover);\n }\n }\n }\n .hover\\:bg-tertiary {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-tertiary);\n }\n }\n }\n .hover\\:bg-tertiary\\/80 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, hsl(28 100% 29%) 80%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-tertiary) 80%, transparent);\n }\n }\n }\n }\n .hover\\:bg-text-secondary {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-text-secondary);\n }\n }\n }\n .focus\\:border-2 {\n &:focus {\n border-style: var(--tw-border-style);\n border-width: 2px;\n }\n }\n .focus\\:border-secondary {\n &:focus {\n border-color: var(--color-secondary);\n }\n }\n .focus\\:border-transparent {\n &:focus {\n border-color: transparent;\n }\n }\n .focus\\:ring-2 {\n &:focus {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus\\:ring-secondary {\n &:focus {\n --tw-ring-color: var(--color-secondary);\n }\n }\n .focus\\:ring-tertiary {\n &:focus {\n --tw-ring-color: var(--color-tertiary);\n }\n }\n .focus\\:ring-offset-0 {\n &:focus {\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n }\n }\n .focus\\:outline-none {\n &:focus {\n --tw-outline-style: none;\n outline-style: none;\n }\n }\n .sm\\:mt-0 {\n @media (width >= 40rem) {\n margin-top: calc(var(--spacing) * 0);\n }\n }\n .sm\\:flex-3 {\n @media (width >= 40rem) {\n flex: 3;\n }\n }\n .sm\\:flex-row {\n @media (width >= 40rem) {\n flex-direction: row;\n }\n }\n .sm\\:items-center {\n @media (width >= 40rem) {\n align-items: center;\n }\n }\n .sm\\:gap-4 {\n @media (width >= 40rem) {\n gap: calc(var(--spacing) * 4);\n }\n }\n .md\\:grid-cols-2 {\n @media (width >= 48rem) {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n }\n .md\\:pl-2 {\n @media (width >= 48rem) {\n padding-left: calc(var(--spacing) * 2);\n }\n }\n .\\[\\&\\:\\:-webkit-slider-runnable-track\\]\\:rounded-full {\n &::-webkit-slider-runnable-track {\n border-radius: calc(infinity * 1px);\n }\n }\n .\\[\\&\\:\\:-webkit-slider-runnable-track\\]\\:bg-black\\/25 {\n &::-webkit-slider-runnable-track {\n background-color: color-mix(in srgb, #000 25%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 25%, transparent);\n }\n }\n }\n .\\[\\&\\:\\:-webkit-slider-thumb\\]\\:h-\\[10px\\] {\n &::-webkit-slider-thumb {\n height: 10px;\n }\n }\n .\\[\\&\\:\\:-webkit-slider-thumb\\]\\:w-\\[10px\\] {\n &::-webkit-slider-thumb {\n width: 10px;\n }\n }\n .\\[\\&\\:\\:-webkit-slider-thumb\\]\\:appearance-none {\n &::-webkit-slider-thumb {\n appearance: none;\n }\n }\n .\\[\\&\\:\\:-webkit-slider-thumb\\]\\:rounded-full {\n &::-webkit-slider-thumb {\n border-radius: calc(infinity * 1px);\n }\n }\n .\\[\\&\\:\\:-webkit-slider-thumb\\]\\:bg-muted {\n &::-webkit-slider-thumb {\n background-color: var(--color-muted);\n }\n }\n}\n@property --tw-translate-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-scale-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-scale-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-scale-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-rotate-x {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-rotate-y {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-rotate-z {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-skew-x {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-skew-y {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-space-y-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-border-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-font-weight {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-inset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-ring-inset {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-offset-width {\n syntax: \"<length>\";\n inherits: false;\n initial-value: 0px;\n}\n@property --tw-ring-offset-color {\n syntax: \"*\";\n inherits: false;\n initial-value: #fff;\n}\n@property --tw-ring-offset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-duration {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ease {\n syntax: \"*\";\n inherits: false;\n}\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n@layer properties {\n @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {\n *, ::before, ::after, ::backdrop {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-scale-z: 1;\n --tw-rotate-x: initial;\n --tw-rotate-y: initial;\n --tw-rotate-z: initial;\n --tw-skew-x: initial;\n --tw-skew-y: initial;\n --tw-space-y-reverse: 0;\n --tw-border-style: solid;\n --tw-font-weight: initial;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 #0000;\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-duration: initial;\n --tw-ease: initial;\n }\n }\n}\n","import { Component, h, Prop } from \"@stencil/core\";\r\nimport { state } from \"../../store\";\r\nimport { getLanguageStrings } from \"../../utils/lang/general\";\r\n\r\n@Component({\r\n tag: \"polygon-buttons\",\r\n styleUrl: \"../../output.css\",\r\n shadow: false,\r\n})\r\nexport class PolygonButtons {\r\n @Prop()\r\n calculateSolarPanels: () => void;\r\n @Prop()\r\n markAsFlatRoof: () => void;\r\n @Prop()\r\n currentTool: string;\r\n\r\n render() {\r\n const t = getLanguageStrings(state.settings.language);\r\n\r\n const buttonStyles = {\r\n border: \"1px solid #ccc\",\r\n };\r\n\r\n return (\r\n <div class=\"flex w-full gap-2 justify-center pb-3\">\r\n <button\r\n class=\"px-4 py-2 rounded-4xl hover:bg-muted text-secondary transition-colors duration-200 text-xs\"\r\n style={buttonStyles}\r\n onClick={() => this.markAsFlatRoof()}\r\n >\r\n {t.mapDraw.markAsFlatRoof}\r\n </button>\r\n <button\r\n class=\"px-4 py-2 rounded-4xl hover:bg-muted text-secondary transition-colors duration-200 text-xs\"\r\n style={buttonStyles}\r\n onClick={() => this.calculateSolarPanels()}\r\n >\r\n {t.mapDraw.calculateSolarPanels}\r\n </button>\r\n </div>\r\n );\r\n }\r\n}\r\n"],"version":3}
|
|
1
|
+
{"file":"p-26DHwbCE.js","mappings":";;;;;AAAA,MAAM,SAAS,GAAG,874BAA874B;;MCSn84B,cAAc,iBAAAA,kBAAA,CAAA,MAAA,cAAA,SAAAC,CAAA,CAAA;;;;;AAEvB,IAAA,oBAAoB;AAEpB,IAAA,cAAc;AAEd,IAAA,WAAW;IAEX,MAAM,GAAA;QACF,MAAM,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAErD,QAAA,MAAM,YAAY,GAAG;AACjB,YAAA,MAAM,EAAE,gBAAgB;SAC3B;AAED,QAAA,QACI,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,uCAAuC,EAAA,EAC9C,CACI,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,4FAA4F,EAClG,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,MAAM,IAAI,CAAC,cAAc,EAAE,EAAA,EAEnC,CAAC,CAAC,OAAO,CAAC,cAAc,CACpB,EACT,CACI,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,4FAA4F,EAClG,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,MAAM,IAAI,CAAC,oBAAoB,EAAE,EAAA,EAEzC,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAC1B,CACP;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/output.css?tag=polygon-buttons","src/components/map-draw/polygon-buttons.tsx"],"sourcesContent":["/*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */\n@layer properties;\n@layer theme, base, components, utilities;\n@layer theme {\n :root, :host {\n --font-sans: ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\",\n \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\",\n \"Courier New\", monospace;\n --color-red-100: oklch(93.6% 0.032 17.717);\n --color-red-300: oklch(80.8% 0.114 19.571);\n --color-red-500: oklch(63.7% 0.237 25.331);\n --color-red-700: oklch(50.5% 0.213 27.518);\n --color-black: #000;\n --color-white: #fff;\n --spacing: 0.25rem;\n --container-md: 28rem;\n --container-2xl: 42rem;\n --text-xs: 0.75rem;\n --text-xs--line-height: calc(1 / 0.75);\n --text-sm: 0.875rem;\n --text-sm--line-height: calc(1.25 / 0.875);\n --text-lg: 1.125rem;\n --text-lg--line-height: calc(1.75 / 1.125);\n --text-xl: 1.25rem;\n --text-xl--line-height: calc(1.75 / 1.25);\n --text-2xl: 1.5rem;\n --text-2xl--line-height: calc(2 / 1.5);\n --font-weight-medium: 500;\n --font-weight-semibold: 600;\n --font-weight-bold: 700;\n --radius-lg: 0.5rem;\n --radius-4xl: 2rem;\n --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);\n --animate-spin: spin 1s linear infinite;\n --default-transition-duration: 150ms;\n --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --default-font-family: var(--font-sans);\n --default-mono-font-family: var(--font-mono);\n --color-primary: hsl(41 51% 90%);\n --color-primary-foreground: hsl(0 0% 0%);\n --color-secondary: hsl(28 100% 8%);\n --color-secondary-foreground: hsl(0 0% 100%);\n --color-tertiary: hsl(28 100% 29%);\n --color-tertiary-foreground: hsl(0 0% 100%);\n --color-muted: hsl(0 0% 100%);\n --color-muted-foreground: hsl(0 0% 0%);\n --color-error: hsl(0 100% 50%);\n --color-error-foreground: hsl(0 0% 100%);\n --color-surface: hsl(0 0% 88%);\n --color-surface-hover: hsl(0 0% 82%);\n --color-surface-active: hsl(0 0% 64%);\n --color-text-muted: hsl(0 0% 45%);\n --color-text-secondary: hsl(0 0% 55%);\n --color-text-placeholder: hsl(0 0% 73%);\n --color-border: hsl(0 0% 82%);\n --color-border-light: hsl(0 0% 93%);\n --color-success: hsl(142 76% 36%);\n --color-info: hsl(221 83% 53%);\n --color-hover: hsl(0 0% 88%);\n --color-hover-dark: hsl(28 100% 8%);\n --color-overlay: rgba(0, 0, 0, 0.24);\n --color-tooltip: hsl(0 0% 13%);\n }\n}\n@layer base {\n *, ::after, ::before, ::backdrop, ::file-selector-button {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n }\n html, :host {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n tab-size: 4;\n font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");\n font-feature-settings: var(--default-font-feature-settings, normal);\n font-variation-settings: var(--default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n }\n hr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n }\n abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\n h1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n }\n a {\n color: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n }\n b, strong {\n font-weight: bolder;\n }\n code, kbd, samp, pre {\n font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);\n font-feature-settings: var(--default-mono-font-feature-settings, normal);\n font-variation-settings: var(--default-mono-font-variation-settings, normal);\n font-size: 1em;\n }\n small {\n font-size: 80%;\n }\n sub, sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n :-moz-focusring {\n outline: auto;\n }\n progress {\n vertical-align: baseline;\n }\n summary {\n display: list-item;\n }\n ol, ul, menu {\n list-style: none;\n }\n img, svg, video, canvas, audio, iframe, embed, object {\n display: block;\n vertical-align: middle;\n }\n img, video {\n max-width: 100%;\n height: auto;\n }\n button, input, select, optgroup, textarea, ::file-selector-button {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n }\n :where(select:is([multiple], [size])) optgroup {\n font-weight: bolder;\n }\n :where(select:is([multiple], [size])) optgroup option {\n padding-inline-start: 20px;\n }\n ::file-selector-button {\n margin-inline-end: 4px;\n }\n ::placeholder {\n opacity: 1;\n }\n @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {\n ::placeholder {\n color: currentcolor;\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n }\n textarea {\n resize: vertical;\n }\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n ::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n }\n ::-webkit-datetime-edit {\n display: inline-flex;\n }\n ::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n }\n ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {\n padding-block: 0;\n }\n :-moz-ui-invalid {\n box-shadow: none;\n }\n button, input:where([type=\"button\"], [type=\"reset\"], [type=\"submit\"]), ::file-selector-button {\n appearance: button;\n }\n ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {\n height: auto;\n }\n [hidden]:where(:not([hidden=\"until-found\"])) {\n display: none !important;\n }\n}\n@layer utilities {\n .pointer-events-none {\n pointer-events: none;\n }\n .absolute {\n position: absolute;\n }\n .fixed {\n position: fixed;\n }\n .relative {\n position: relative;\n }\n .inset-0 {\n inset: calc(var(--spacing) * 0);\n }\n .top-0 {\n top: calc(var(--spacing) * 0);\n }\n .bottom-4 {\n bottom: calc(var(--spacing) * 4);\n }\n .left-0 {\n left: calc(var(--spacing) * 0);\n }\n .left-1\\/2 {\n left: calc(1/2 * 100%);\n }\n .left-3 {\n left: calc(var(--spacing) * 3);\n }\n .z-10 {\n z-index: 10;\n }\n .z-20 {\n z-index: 20;\n }\n .z-50 {\n z-index: 50;\n }\n .container {\n width: 100%;\n @media (width >= 40rem) {\n max-width: 40rem;\n }\n @media (width >= 48rem) {\n max-width: 48rem;\n }\n @media (width >= 64rem) {\n max-width: 64rem;\n }\n @media (width >= 80rem) {\n max-width: 80rem;\n }\n @media (width >= 96rem) {\n max-width: 96rem;\n }\n }\n .m-auto {\n margin: auto;\n }\n .mt-1 {\n margin-top: calc(var(--spacing) * 1);\n }\n .mt-4 {\n margin-top: calc(var(--spacing) * 4);\n }\n .mt-6 {\n margin-top: calc(var(--spacing) * 6);\n }\n .mb-1 {\n margin-bottom: calc(var(--spacing) * 1);\n }\n .mb-4 {\n margin-bottom: calc(var(--spacing) * 4);\n }\n .mb-6 {\n margin-bottom: calc(var(--spacing) * 6);\n }\n .block {\n display: block;\n }\n .flex {\n display: flex;\n }\n .grid {\n display: grid;\n }\n .inline {\n display: inline;\n }\n .inline-block {\n display: inline-block;\n }\n .h-4 {\n height: calc(var(--spacing) * 4);\n }\n .h-16 {\n height: calc(var(--spacing) * 16);\n }\n .h-48 {\n height: calc(var(--spacing) * 48);\n }\n .h-64 {\n height: calc(var(--spacing) * 64);\n }\n .h-\\[400px\\] {\n height: 400px;\n }\n .h-full {\n height: 100%;\n }\n .max-h-full {\n max-height: 100%;\n }\n .w-4 {\n width: calc(var(--spacing) * 4);\n }\n .w-16 {\n width: calc(var(--spacing) * 16);\n }\n .w-20 {\n width: calc(var(--spacing) * 20);\n }\n .w-64 {\n width: calc(var(--spacing) * 64);\n }\n .w-full {\n width: 100%;\n }\n .max-w-2xl {\n max-width: var(--container-2xl);\n }\n .max-w-md {\n max-width: var(--container-md);\n }\n .flex-1 {\n flex: 1;\n }\n .-translate-x-1\\/2 {\n --tw-translate-x: calc(calc(1/2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-y-0 {\n --tw-translate-y: calc(var(--spacing) * 0);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-y-2 {\n --tw-translate-y: calc(var(--spacing) * 2);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .scale-95 {\n --tw-scale-x: 95%;\n --tw-scale-y: 95%;\n --tw-scale-z: 95%;\n scale: var(--tw-scale-x) var(--tw-scale-y);\n }\n .scale-100 {\n --tw-scale-x: 100%;\n --tw-scale-y: 100%;\n --tw-scale-z: 100%;\n scale: var(--tw-scale-x) var(--tw-scale-y);\n }\n .transform {\n transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);\n }\n .animate-spin {\n animation: var(--animate-spin);\n }\n .cursor-not-allowed {\n cursor: not-allowed;\n }\n .resize {\n resize: both;\n }\n .appearance-none {\n appearance: none;\n }\n .grid-cols-1 {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n }\n .grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n .grid-rows-2 {\n grid-template-rows: repeat(2, minmax(0, 1fr));\n }\n .flex-col {\n flex-direction: column;\n }\n .flex-row {\n flex-direction: row;\n }\n .flex-wrap {\n flex-wrap: wrap;\n }\n .items-center {\n align-items: center;\n }\n .items-start {\n align-items: flex-start;\n }\n .items-stretch {\n align-items: stretch;\n }\n .justify-between {\n justify-content: space-between;\n }\n .justify-center {\n justify-content: center;\n }\n .justify-end {\n justify-content: flex-end;\n }\n .justify-start {\n justify-content: flex-start;\n }\n .gap-0 {\n gap: calc(var(--spacing) * 0);\n }\n .gap-1 {\n gap: calc(var(--spacing) * 1);\n }\n .gap-2 {\n gap: calc(var(--spacing) * 2);\n }\n .gap-4 {\n gap: calc(var(--spacing) * 4);\n }\n .space-y-3 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-4 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-6 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .overflow-hidden {\n overflow: hidden;\n }\n .overflow-y-auto {\n overflow-y: auto;\n }\n .rounded {\n border-radius: 0.25rem;\n }\n .rounded-4xl {\n border-radius: var(--radius-4xl);\n }\n .rounded-full {\n border-radius: calc(infinity * 1px);\n }\n .rounded-lg {\n border-radius: var(--radius-lg);\n }\n .border {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n .border-2 {\n border-style: var(--tw-border-style);\n border-width: 2px;\n }\n .border-t-2 {\n border-top-style: var(--tw-border-style);\n border-top-width: 2px;\n }\n .border-b-2 {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 2px;\n }\n .border-border {\n border-color: var(--color-border);\n }\n .border-current {\n border-color: currentcolor;\n }\n .border-error\\/20 {\n border-color: color-mix(in srgb, hsl(0 100% 50%) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--color-error) 20%, transparent);\n }\n }\n .border-info\\/20 {\n border-color: color-mix(in srgb, hsl(221 83% 53%) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--color-info) 20%, transparent);\n }\n }\n .border-red-300 {\n border-color: var(--color-red-300);\n }\n .border-secondary {\n border-color: var(--color-secondary);\n }\n .border-success\\/20 {\n border-color: color-mix(in srgb, hsl(142 76% 36%) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--color-success) 20%, transparent);\n }\n }\n .border-t-transparent {\n border-top-color: transparent;\n }\n .bg-black {\n background-color: var(--color-black);\n }\n .bg-error\\/10 {\n background-color: color-mix(in srgb, hsl(0 100% 50%) 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-error) 10%, transparent);\n }\n }\n .bg-error\\/90 {\n background-color: color-mix(in srgb, hsl(0 100% 50%) 90%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-error) 90%, transparent);\n }\n }\n .bg-info\\/90 {\n background-color: color-mix(in srgb, hsl(221 83% 53%) 90%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-info) 90%, transparent);\n }\n }\n .bg-muted {\n background-color: var(--color-muted);\n }\n .bg-overlay {\n background-color: var(--color-overlay);\n }\n .bg-primary {\n background-color: var(--color-primary);\n }\n .bg-red-100 {\n background-color: var(--color-red-100);\n }\n .bg-secondary {\n background-color: var(--color-secondary);\n }\n .bg-success\\/10 {\n background-color: color-mix(in srgb, hsl(142 76% 36%) 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-success) 10%, transparent);\n }\n }\n .bg-success\\/90 {\n background-color: color-mix(in srgb, hsl(142 76% 36%) 90%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-success) 90%, transparent);\n }\n }\n .bg-surface {\n background-color: var(--color-surface);\n }\n .bg-tertiary {\n background-color: var(--color-tertiary);\n }\n .bg-transparent {\n background-color: transparent;\n }\n .object-contain {\n object-fit: contain;\n }\n .p-2 {\n padding: calc(var(--spacing) * 2);\n }\n .p-3 {\n padding: calc(var(--spacing) * 3);\n }\n .p-4 {\n padding: calc(var(--spacing) * 4);\n }\n .p-6 {\n padding: calc(var(--spacing) * 6);\n }\n .px-3 {\n padding-inline: calc(var(--spacing) * 3);\n }\n .px-4 {\n padding-inline: calc(var(--spacing) * 4);\n }\n .px-6 {\n padding-inline: calc(var(--spacing) * 6);\n }\n .py-1 {\n padding-block: calc(var(--spacing) * 1);\n }\n .py-2 {\n padding-block: calc(var(--spacing) * 2);\n }\n .py-3 {\n padding-block: calc(var(--spacing) * 3);\n }\n .pt-3 {\n padding-top: calc(var(--spacing) * 3);\n }\n .pt-4 {\n padding-top: calc(var(--spacing) * 4);\n }\n .pt-7 {\n padding-top: calc(var(--spacing) * 7);\n }\n .pr-3 {\n padding-right: calc(var(--spacing) * 3);\n }\n .pr-4 {\n padding-right: calc(var(--spacing) * 4);\n }\n .pb-2 {\n padding-bottom: calc(var(--spacing) * 2);\n }\n .pb-3 {\n padding-bottom: calc(var(--spacing) * 3);\n }\n .pb-4 {\n padding-bottom: calc(var(--spacing) * 4);\n }\n .pl-3 {\n padding-left: calc(var(--spacing) * 3);\n }\n .pl-4 {\n padding-left: calc(var(--spacing) * 4);\n }\n .pl-10 {\n padding-left: calc(var(--spacing) * 10);\n }\n .text-center {\n text-align: center;\n }\n .text-right {\n text-align: right;\n }\n .text-2xl {\n font-size: var(--text-2xl);\n line-height: var(--tw-leading, var(--text-2xl--line-height));\n }\n .text-lg {\n font-size: var(--text-lg);\n line-height: var(--tw-leading, var(--text-lg--line-height));\n }\n .text-sm {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n .text-xl {\n font-size: var(--text-xl);\n line-height: var(--tw-leading, var(--text-xl--line-height));\n }\n .text-xs {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n }\n .font-bold {\n --tw-font-weight: var(--font-weight-bold);\n font-weight: var(--font-weight-bold);\n }\n .font-medium {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n .font-semibold {\n --tw-font-weight: var(--font-weight-semibold);\n font-weight: var(--font-weight-semibold);\n }\n .text-error {\n color: var(--color-error);\n }\n .text-error-foreground {\n color: var(--color-error-foreground);\n }\n .text-muted {\n color: var(--color-muted);\n }\n .text-muted-foreground {\n color: var(--color-muted-foreground);\n }\n .text-primary-foreground {\n color: var(--color-primary-foreground);\n }\n .text-red-500 {\n color: var(--color-red-500);\n }\n .text-red-700 {\n color: var(--color-red-700);\n }\n .text-secondary {\n color: var(--color-secondary);\n }\n .text-success {\n color: var(--color-success);\n }\n .text-text-muted {\n color: var(--color-text-muted);\n }\n .text-text-secondary {\n color: var(--color-text-secondary);\n }\n .text-white {\n color: var(--color-white);\n }\n .accent-tertiary {\n accent-color: var(--color-tertiary);\n }\n .opacity-0 {\n opacity: 0%;\n }\n .opacity-100 {\n opacity: 100%;\n }\n .shadow {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-lg {\n --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .transition {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, visibility, content-visibility, overlay, pointer-events;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-all {\n transition-property: all;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-colors {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .duration-200 {\n --tw-duration: 200ms;\n transition-duration: 200ms;\n }\n .duration-300 {\n --tw-duration: 300ms;\n transition-duration: 300ms;\n }\n .ease-in-out {\n --tw-ease: var(--ease-in-out);\n transition-timing-function: var(--ease-in-out);\n }\n .hover\\:bg-hover {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-hover);\n }\n }\n }\n .hover\\:bg-muted {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-muted);\n }\n }\n }\n .hover\\:bg-overlay {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-overlay);\n }\n }\n }\n .hover\\:bg-secondary\\/80 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, hsl(28 100% 8%) 80%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-secondary) 80%, transparent);\n }\n }\n }\n }\n .hover\\:bg-surface-hover {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-surface-hover);\n }\n }\n }\n .hover\\:bg-tertiary {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-tertiary);\n }\n }\n }\n .hover\\:bg-tertiary\\/80 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, hsl(28 100% 29%) 80%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-tertiary) 80%, transparent);\n }\n }\n }\n }\n .hover\\:bg-text-secondary {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-text-secondary);\n }\n }\n }\n .focus\\:border-2 {\n &:focus {\n border-style: var(--tw-border-style);\n border-width: 2px;\n }\n }\n .focus\\:border-secondary {\n &:focus {\n border-color: var(--color-secondary);\n }\n }\n .focus\\:border-transparent {\n &:focus {\n border-color: transparent;\n }\n }\n .focus\\:ring-2 {\n &:focus {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus\\:ring-secondary {\n &:focus {\n --tw-ring-color: var(--color-secondary);\n }\n }\n .focus\\:ring-tertiary {\n &:focus {\n --tw-ring-color: var(--color-tertiary);\n }\n }\n .focus\\:ring-offset-0 {\n &:focus {\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n }\n }\n .focus\\:outline-none {\n &:focus {\n --tw-outline-style: none;\n outline-style: none;\n }\n }\n .sm\\:mt-0 {\n @media (width >= 40rem) {\n margin-top: calc(var(--spacing) * 0);\n }\n }\n .sm\\:flex-3 {\n @media (width >= 40rem) {\n flex: 3;\n }\n }\n .sm\\:flex-row {\n @media (width >= 40rem) {\n flex-direction: row;\n }\n }\n .sm\\:items-center {\n @media (width >= 40rem) {\n align-items: center;\n }\n }\n .sm\\:gap-4 {\n @media (width >= 40rem) {\n gap: calc(var(--spacing) * 4);\n }\n }\n .md\\:grid-cols-2 {\n @media (width >= 48rem) {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n }\n .md\\:pl-2 {\n @media (width >= 48rem) {\n padding-left: calc(var(--spacing) * 2);\n }\n }\n .\\[\\&\\:\\:-webkit-slider-runnable-track\\]\\:rounded-full {\n &::-webkit-slider-runnable-track {\n border-radius: calc(infinity * 1px);\n }\n }\n .\\[\\&\\:\\:-webkit-slider-runnable-track\\]\\:bg-black\\/25 {\n &::-webkit-slider-runnable-track {\n background-color: color-mix(in srgb, #000 25%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 25%, transparent);\n }\n }\n }\n .\\[\\&\\:\\:-webkit-slider-thumb\\]\\:h-\\[10px\\] {\n &::-webkit-slider-thumb {\n height: 10px;\n }\n }\n .\\[\\&\\:\\:-webkit-slider-thumb\\]\\:w-\\[10px\\] {\n &::-webkit-slider-thumb {\n width: 10px;\n }\n }\n .\\[\\&\\:\\:-webkit-slider-thumb\\]\\:appearance-none {\n &::-webkit-slider-thumb {\n appearance: none;\n }\n }\n .\\[\\&\\:\\:-webkit-slider-thumb\\]\\:rounded-full {\n &::-webkit-slider-thumb {\n border-radius: calc(infinity * 1px);\n }\n }\n .\\[\\&\\:\\:-webkit-slider-thumb\\]\\:bg-muted {\n &::-webkit-slider-thumb {\n background-color: var(--color-muted);\n }\n }\n}\n@property --tw-translate-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-scale-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-scale-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-scale-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-rotate-x {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-rotate-y {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-rotate-z {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-skew-x {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-skew-y {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-space-y-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-border-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-font-weight {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-inset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-ring-inset {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-offset-width {\n syntax: \"<length>\";\n inherits: false;\n initial-value: 0px;\n}\n@property --tw-ring-offset-color {\n syntax: \"*\";\n inherits: false;\n initial-value: #fff;\n}\n@property --tw-ring-offset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-duration {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ease {\n syntax: \"*\";\n inherits: false;\n}\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n@layer properties {\n @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {\n *, ::before, ::after, ::backdrop {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-scale-z: 1;\n --tw-rotate-x: initial;\n --tw-rotate-y: initial;\n --tw-rotate-z: initial;\n --tw-skew-x: initial;\n --tw-skew-y: initial;\n --tw-space-y-reverse: 0;\n --tw-border-style: solid;\n --tw-font-weight: initial;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 #0000;\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-duration: initial;\n --tw-ease: initial;\n }\n }\n}\n","import { Component, h, Prop } from \"@stencil/core\";\r\nimport { state } from \"../../store\";\r\nimport { getLanguageStrings } from \"../../utils/lang/general\";\r\n\r\n@Component({\r\n tag: \"polygon-buttons\",\r\n styleUrl: \"../../output.css\",\r\n shadow: false,\r\n})\r\nexport class PolygonButtons {\r\n @Prop()\r\n calculateSolarPanels: () => void;\r\n @Prop()\r\n markAsFlatRoof: () => void;\r\n @Prop()\r\n currentTool: string;\r\n\r\n render() {\r\n const t = getLanguageStrings(state.settings.language);\r\n\r\n const buttonStyles = {\r\n border: \"1px solid #ccc\",\r\n };\r\n\r\n return (\r\n <div class=\"flex w-full gap-2 justify-center pb-3\">\r\n <button\r\n class=\"px-4 py-2 rounded-4xl hover:bg-muted text-secondary transition-colors duration-200 text-xs\"\r\n style={buttonStyles}\r\n onClick={() => this.markAsFlatRoof()}\r\n >\r\n {t.mapDraw.markAsFlatRoof}\r\n </button>\r\n <button\r\n class=\"px-4 py-2 rounded-4xl hover:bg-muted text-secondary transition-colors duration-200 text-xs\"\r\n style={buttonStyles}\r\n onClick={() => this.calculateSolarPanels()}\r\n >\r\n {t.mapDraw.calculateSolarPanels}\r\n </button>\r\n </div>\r\n );\r\n }\r\n}\r\n"],"version":3}
|