blue-chestnut-solar-expert 0.0.68 → 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/app-globals-I24yU8do.js +10 -0
- package/dist/cjs/app-globals-I24yU8do.js.map +1 -0
- package/dist/cjs/basedecoder-CQuzfSgz.js +116 -0
- package/dist/cjs/basedecoder-CQuzfSgz.js.map +1 -0
- package/dist/cjs/deflate-AzGzQSW2.js +17 -0
- package/dist/cjs/deflate-AzGzQSW2.js.map +1 -0
- package/dist/cjs/eraser-icon_19.cjs.entry.js +31 -0
- package/dist/cjs/eraser-icon_19.cjs.entry.js.map +1 -0
- package/dist/cjs/index-HgRXF6kp.js +1470 -0
- package/dist/cjs/index-HgRXF6kp.js.map +1 -0
- package/dist/cjs/index.cjs.js +7 -0
- package/dist/cjs/index.cjs.js.map +1 -0
- package/dist/cjs/jpeg-Bx3bTm32.js +904 -0
- package/dist/cjs/jpeg-Bx3bTm32.js.map +1 -0
- package/dist/cjs/lerc-Bdx5y-yw.js +4427 -0
- package/dist/cjs/lerc-Bdx5y-yw.js.map +1 -0
- package/dist/cjs/loader.cjs.js +18 -0
- package/dist/cjs/loader.cjs.js.map +1 -0
- package/dist/cjs/loading-widget.cjs.entry.js +22 -0
- package/dist/{stencil-library/polygon-information.entry.esm.js.map → cjs/loading-widget.cjs.entry.js.map} +1 -1
- package/dist/cjs/loading-widget.entry.cjs.js.map +1 -0
- package/dist/cjs/lzw-BmFug486.js +140 -0
- package/dist/cjs/lzw-BmFug486.js.map +1 -0
- package/dist/cjs/packbits-CYx9fB0v.js +35 -0
- package/dist/cjs/packbits-CYx9fB0v.js.map +1 -0
- package/dist/cjs/pako.esm-0mKI6Jik.js +3243 -0
- package/dist/cjs/pako.esm-0mKI6Jik.js.map +1 -0
- package/dist/cjs/raw-DC82yoyr.js +16 -0
- package/dist/cjs/raw-DC82yoyr.js.map +1 -0
- package/dist/cjs/stencil-library.cjs.js +30 -0
- package/dist/cjs/stencil-library.cjs.js.map +1 -0
- package/dist/cjs/webimage-Dc0t2xAB.js +49 -0
- package/dist/cjs/webimage-Dc0t2xAB.js.map +1 -0
- package/dist/collection/collection-manifest.json +31 -0
- package/dist/collection/components/icons/eraser.js +64 -0
- package/dist/collection/components/icons/eraser.js.map +1 -0
- package/dist/collection/components/icons/house.js +64 -0
- package/dist/collection/components/icons/house.js.map +1 -0
- package/dist/collection/components/icons/icon.js +108 -0
- package/dist/collection/components/icons/icon.js.map +1 -0
- package/dist/collection/components/icons/marker.js +64 -0
- package/dist/collection/components/icons/marker.js.map +1 -0
- package/dist/collection/components/icons/move.js +64 -0
- package/dist/collection/components/icons/move.js.map +1 -0
- package/dist/collection/components/icons/octagonMinus.js +64 -0
- package/dist/collection/components/icons/octagonMinus.js.map +1 -0
- package/dist/collection/components/icons/search.js +64 -0
- package/dist/collection/components/icons/search.js.map +1 -0
- package/dist/collection/components/icons/settings.js +64 -0
- package/dist/collection/components/icons/settings.js.map +1 -0
- package/dist/collection/components/icons/undo.js +64 -0
- package/dist/collection/components/icons/undo.js.map +1 -0
- package/dist/collection/components/map-draw/map-draw.js +824 -0
- package/dist/collection/components/map-draw/map-draw.js.map +1 -0
- package/dist/collection/components/map-draw/map-selector.js +246 -0
- package/dist/collection/components/map-draw/map-selector.js.map +1 -0
- package/dist/collection/components/map-draw/polygon-buttons.js +86 -0
- package/dist/collection/components/map-draw/polygon-buttons.js.map +1 -0
- package/dist/collection/components/map-draw/polygon-information.js +211 -0
- package/dist/collection/components/map-draw/polygon-information.js.map +1 -0
- package/dist/collection/components/map-draw/tool-box.js +108 -0
- package/dist/collection/components/map-draw/tool-box.js.map +1 -0
- package/dist/collection/components/map-draw/tutorial-component.js +219 -0
- package/dist/collection/components/map-draw/tutorial-component.js.map +1 -0
- package/dist/collection/components/settings/settings.js +127 -0
- package/dist/collection/components/settings/settings.js.map +1 -0
- package/dist/collection/components/solar-expert/solar-expert.js +241 -0
- package/dist/collection/components/solar-expert/solar-expert.js.map +1 -0
- package/dist/collection/components/solar-system-form/solar-system-form.js +617 -0
- package/dist/collection/components/solar-system-form/solar-system-form.js.map +1 -0
- package/dist/collection/components/widgets/loading-widget.js +18 -0
- package/dist/collection/components/widgets/loading-widget.js.map +1 -0
- package/dist/collection/components/widgets/toast-notification.js +133 -0
- package/dist/collection/components/widgets/toast-notification.js.map +1 -0
- package/dist/{stencil-library/config-CWfV1nKn.js → collection/config.js} +4 -10
- package/dist/collection/config.js.map +1 -0
- package/dist/collection/constants.js +90 -0
- package/dist/collection/constants.js.map +1 -0
- package/dist/collection/index.js +2 -0
- package/dist/collection/index.js.map +1 -0
- package/dist/collection/output.css +1126 -0
- package/dist/collection/store.js +43 -0
- package/dist/collection/store.js.map +1 -0
- package/dist/collection/types/lang.js +2 -0
- package/dist/collection/types/lang.js.map +1 -0
- package/dist/collection/types/shapes.js +2 -0
- package/dist/collection/types/shapes.js.map +1 -0
- package/dist/collection/utils/api.js +94 -0
- package/dist/collection/utils/api.js.map +1 -0
- package/dist/collection/utils/images.js +2 -0
- package/dist/collection/utils/images.js.map +1 -0
- package/dist/collection/utils/lang/english.js +164 -0
- package/dist/collection/utils/lang/english.js.map +1 -0
- package/dist/collection/utils/lang/general.js +30 -0
- package/dist/collection/utils/lang/general.js.map +1 -0
- package/dist/collection/utils/lang/german.js +164 -0
- package/dist/collection/utils/lang/german.js.map +1 -0
- package/dist/collection/utils/lang/spanish.js +164 -0
- package/dist/collection/utils/lang/spanish.js.map +1 -0
- package/dist/{stencil-library/tools-BNYKV5H5.js → collection/utils/render/tools.js} +8 -14
- package/dist/collection/utils/render/tools.js.map +1 -0
- package/dist/collection/utils/solar.js +135 -0
- package/dist/collection/utils/solar.js.map +1 -0
- package/dist/collection/utils/theme.js +97 -0
- package/dist/collection/utils/theme.js.map +1 -0
- package/dist/{stencil-library/utils-BCUZxI9u.js → collection/utils/utils.js} +3 -9
- package/dist/collection/utils/utils.js.map +1 -0
- package/dist/components/eraser-icon.js +11 -0
- package/dist/components/eraser-icon.js.map +1 -0
- package/dist/components/house-icon.js +11 -0
- package/dist/components/house-icon.js.map +1 -0
- package/dist/components/icon-selector.js +11 -0
- package/dist/components/icon-selector.js.map +1 -0
- package/dist/components/index.js +1269 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/loading-widget.js +38 -0
- package/dist/{stencil-library/marker-icon.entry.esm.js.map → components/loading-widget.js.map} +1 -1
- package/dist/components/map-draw.js +11 -0
- package/dist/components/map-draw.js.map +1 -0
- package/dist/components/map-selector.js +11 -0
- package/dist/components/map-selector.js.map +1 -0
- package/dist/components/marker-icon.js +11 -0
- package/dist/components/marker-icon.js.map +1 -0
- package/dist/components/move-icon.js +11 -0
- package/dist/components/move-icon.js.map +1 -0
- package/dist/components/octagon-minus-icon.js +11 -0
- package/dist/components/octagon-minus-icon.js.map +1 -0
- package/dist/{stencil-library/polygon-buttons.entry.js → components/p-26DHwbCE.js} +29 -10
- package/dist/{stencil-library/solar-expert.entry.js.map → components/p-26DHwbCE.js.map} +1 -1
- package/dist/components/p-B54Ul0nf.js +15 -0
- package/dist/components/p-B54Ul0nf.js.map +1 -0
- package/dist/components/p-B5WTRCh8.js +3241 -0
- package/dist/components/p-B5WTRCh8.js.map +1 -0
- package/dist/{stencil-library/jpeg-Dd5nnHR5.js → components/p-BGoSj_DR.js} +3 -11
- package/dist/components/p-BGoSj_DR.js.map +1 -0
- package/dist/{stencil-library/octagon-minus-icon.entry.js → components/p-BJLO76Yi.js} +27 -9
- package/dist/components/p-BJLO76Yi.js.map +1 -0
- package/dist/components/p-BOe-Z8rz.js +16323 -0
- package/dist/components/p-BOe-Z8rz.js.map +1 -0
- package/dist/{stencil-library/map-selector.entry.js → components/p-Bduzzygj.js} +453 -12
- package/dist/components/p-Bduzzygj.js.map +1 -0
- package/dist/{stencil-library/packbits-X3R_utTs.js → components/p-ByX6QP-E.js} +3 -9
- package/dist/components/p-ByX6QP-E.js.map +1 -0
- package/dist/{stencil-library/solar-system-form.entry.js → components/p-C3ZXE525.js} +382 -80
- package/dist/components/p-C3ZXE525.js.map +1 -0
- package/dist/{stencil-library/icon-selector.entry.js → components/p-C5QieOat.js} +76 -9
- package/dist/components/p-C5QieOat.js.map +1 -0
- package/dist/{stencil-library/eraser-icon.entry.js → components/p-CL74Q4VR.js} +27 -9
- package/dist/components/p-CL74Q4VR.js.map +1 -0
- package/dist/{stencil-library/webimage-CBrfoxHM.js → components/p-Cgchl6bA.js} +3 -9
- package/dist/components/p-Cgchl6bA.js.map +1 -0
- package/dist/{stencil-library/tool-box.entry.js → components/p-Cx7fffWb.js} +135 -11
- package/dist/components/p-Cx7fffWb.js.map +1 -0
- package/dist/{stencil-library/tutorial-component.entry.js → components/p-D2AHNjbG.js} +35 -10
- package/dist/{stencil-library/toast-notification.entry.esm.js.map → components/p-D2AHNjbG.js.map} +1 -1
- package/dist/{stencil-library/house-icon.entry.js → components/p-D8w3bTPO.js} +27 -9
- package/dist/components/p-D8w3bTPO.js.map +1 -0
- package/dist/{stencil-library/search-icon.entry.js → components/p-DBwr8xSB.js} +27 -9
- package/dist/components/p-DBwr8xSB.js.map +1 -0
- package/dist/{stencil-library/lerc-7W4E8EBs.js → components/p-DLWzgdrw.js} +1981 -27
- package/dist/components/p-DLWzgdrw.js.map +1 -0
- package/dist/{stencil-library/settings-icon.entry.js → components/p-DTXeHbuh.js} +27 -9
- package/dist/{stencil-library/octagon-minus-icon.entry.esm.js.map → components/p-DTXeHbuh.js.map} +1 -1
- package/dist/{stencil-library/settings-modal.entry.js → components/p-Ddk3b30j.js} +30 -12
- package/dist/{stencil-library/polygon-buttons.entry.esm.js.map → components/p-Ddk3b30j.js.map} +1 -1
- package/dist/{stencil-library/store-CcqrFuBK.js → components/p-DfzSejIb.js} +3 -3
- package/dist/components/p-DfzSejIb.js.map +1 -0
- package/dist/{stencil-library/move-icon.entry.js → components/p-FdEV2qPo.js} +27 -9
- package/dist/components/p-FdEV2qPo.js.map +1 -0
- package/dist/{stencil-library/polygon-information.entry.js → components/p-OxUYjaAL.js} +68 -11
- package/dist/components/p-OxUYjaAL.js.map +1 -0
- package/dist/{stencil-library/toast-notification.entry.js → components/p-P28NBglk.js} +30 -9
- package/dist/{stencil-library/loading-widget.entry.js.map → components/p-P28NBglk.js.map} +1 -1
- package/dist/{stencil-library/marker-icon.entry.js → components/p-Umz6nJIv.js} +27 -9
- package/dist/components/p-Umz6nJIv.js.map +1 -0
- package/dist/components/p-WmcSqXD8.js +14 -0
- package/dist/components/p-WmcSqXD8.js.map +1 -0
- package/dist/components/p-j-vOrhhh.js +114 -0
- package/dist/components/p-j-vOrhhh.js.map +1 -0
- package/dist/{stencil-library/lzw--P4c0ZHH.js → components/p-q8auDIJ2.js} +4 -10
- package/dist/components/p-q8auDIJ2.js.map +1 -0
- package/dist/{stencil-library/undo-icon.entry.js → components/p-waOPoUcA.js} +27 -9
- package/dist/components/p-waOPoUcA.js.map +1 -0
- package/dist/components/polygon-buttons.js +11 -0
- package/dist/components/polygon-buttons.js.map +1 -0
- package/dist/components/polygon-information.js +11 -0
- package/dist/components/polygon-information.js.map +1 -0
- package/dist/components/search-icon.js +11 -0
- package/dist/components/search-icon.js.map +1 -0
- package/dist/components/settings-icon.js +11 -0
- package/dist/components/settings-icon.js.map +1 -0
- package/dist/components/settings-modal.js +11 -0
- package/dist/components/settings-modal.js.map +1 -0
- package/dist/{stencil-library/solar-expert.entry.js → components/solar-expert.js} +149 -13
- package/dist/components/solar-expert.js.map +1 -0
- package/dist/components/solar-system-form.js +11 -0
- package/dist/components/solar-system-form.js.map +1 -0
- package/dist/components/toast-notification.js +11 -0
- package/dist/components/toast-notification.js.map +1 -0
- package/dist/components/tool-box.js +11 -0
- package/dist/components/tool-box.js.map +1 -0
- package/dist/components/tutorial-component.js +11 -0
- package/dist/components/tutorial-component.js.map +1 -0
- package/dist/components/undo-icon.js +11 -0
- package/dist/components/undo-icon.js.map +1 -0
- package/dist/esm/basedecoder-j-vOrhhh.js +114 -0
- package/dist/esm/basedecoder-j-vOrhhh.js.map +1 -0
- package/dist/esm/deflate-DHgPf9CO.js +15 -0
- package/dist/{stencil-library/deflate-0Vdd6-55.js.map → esm/deflate-DHgPf9CO.js.map} +1 -1
- package/dist/esm/eraser-icon_19.entry.js +7 -0
- package/dist/esm/eraser-icon_19.entry.js.map +1 -0
- package/dist/esm/index-C2JRBB5c.js +1458 -0
- package/dist/esm/index-C2JRBB5c.js.map +1 -0
- package/dist/esm/index.js +5 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/jpeg-CJLm1GkA.js +902 -0
- package/dist/esm/jpeg-CJLm1GkA.js.map +1 -0
- package/dist/esm/lerc-DF5Lrv5A.js +4424 -0
- package/dist/esm/lerc-DF5Lrv5A.js.map +1 -0
- package/dist/esm/loader.js +16 -0
- package/dist/esm/loader.js.map +1 -0
- package/dist/{stencil-library → esm}/loading-widget.entry.js +2 -2
- package/dist/esm/loading-widget.entry.js.map +1 -0
- package/dist/esm/lzw-DaOzWJUD.js +138 -0
- package/dist/esm/lzw-DaOzWJUD.js.map +1 -0
- package/dist/esm/packbits-CZPyx9kx.js +33 -0
- package/dist/esm/packbits-CZPyx9kx.js.map +1 -0
- package/dist/esm/pako.esm-B5WTRCh8.js +3241 -0
- package/dist/{stencil-library/pako.esm-CPorU236.js.map → esm/pako.esm-B5WTRCh8.js.map} +1 -1
- package/dist/esm/raw-pqeeWc2_.js +14 -0
- package/dist/esm/raw-pqeeWc2_.js.map +1 -0
- package/dist/esm/stencil-library.js +26 -0
- package/dist/esm/stencil-library.js.map +1 -0
- package/dist/esm/webimage-BiHardhv.js +47 -0
- package/dist/{stencil-library/webimage-CBrfoxHM.js.map → esm/webimage-BiHardhv.js.map} +1 -1
- package/dist/index.cjs.js +1 -0
- package/dist/index.js +1 -0
- package/dist/stencil-library/index.esm.js +1 -13
- package/dist/stencil-library/index.esm.js.map +1 -1
- package/dist/stencil-library/{search-icon.entry.js.map → p-9b4e52c3.entry.js} +2 -1
- package/dist/stencil-library/p-9b4e52c3.entry.js.map +1 -0
- package/dist/stencil-library/p-B54Ul0nf.js +2 -0
- package/dist/stencil-library/p-B54Ul0nf.js.map +1 -0
- package/dist/stencil-library/p-B5WTRCh8.js +2 -0
- package/dist/stencil-library/p-B5WTRCh8.js.map +1 -0
- package/dist/stencil-library/p-BGoSj_DR.js +2 -0
- package/dist/stencil-library/p-BGoSj_DR.js.map +1 -0
- package/dist/stencil-library/p-ByX6QP-E.js +2 -0
- package/dist/stencil-library/p-ByX6QP-E.js.map +1 -0
- package/dist/stencil-library/p-C2JRBB5c.js +3 -0
- package/dist/stencil-library/p-C2JRBB5c.js.map +1 -0
- package/dist/stencil-library/p-CX8V3eiN.js +2 -0
- package/dist/stencil-library/p-CX8V3eiN.js.map +1 -0
- package/dist/stencil-library/p-Cgchl6bA.js +2 -0
- package/dist/stencil-library/p-Cgchl6bA.js.map +1 -0
- package/dist/stencil-library/p-CymYGBJH.js +2 -0
- package/dist/stencil-library/p-CymYGBJH.js.map +1 -0
- package/dist/stencil-library/p-DHgjDQwz.js +10 -0
- package/dist/stencil-library/p-DHgjDQwz.js.map +1 -0
- package/dist/stencil-library/p-WmcSqXD8.js +2 -0
- package/dist/stencil-library/p-WmcSqXD8.js.map +1 -0
- package/dist/stencil-library/p-ba64c5e4.entry.js +2 -0
- package/dist/stencil-library/p-ba64c5e4.entry.js.map +1 -0
- package/dist/stencil-library/p-j-vOrhhh.js +2 -0
- package/dist/stencil-library/p-j-vOrhhh.js.map +1 -0
- package/dist/stencil-library/p-q8auDIJ2.js +2 -0
- package/dist/stencil-library/p-q8auDIJ2.js.map +1 -0
- package/dist/stencil-library/stencil-library.esm.js +1 -52
- package/dist/stencil-library/stencil-library.esm.js.map +1 -1
- package/dist/types/components/solar-system-form/solar-system-form.d.ts +1 -0
- package/dist/types/components.d.ts +2 -0
- package/dist/types/utils/api.d.ts +1 -0
- package/package.json +1 -1
- package/dist/stencil-library/config-CWfV1nKn.js.map +0 -1
- package/dist/stencil-library/constants-hboFofU4.js +0 -1522
- package/dist/stencil-library/constants-hboFofU4.js.map +0 -1
- package/dist/stencil-library/decoder-DNOvLSaS.js +0 -39
- package/dist/stencil-library/decoder-DNOvLSaS.js.map +0 -1
- package/dist/stencil-library/deflate-0Vdd6-55.js +0 -21
- package/dist/stencil-library/eraser-icon.entry.esm.js.map +0 -1
- package/dist/stencil-library/eraser-icon.entry.js.map +0 -1
- package/dist/stencil-library/house-icon.entry.esm.js.map +0 -1
- package/dist/stencil-library/house-icon.entry.js.map +0 -1
- package/dist/stencil-library/icon-selector.entry.esm.js.map +0 -1
- package/dist/stencil-library/icon-selector.entry.js.map +0 -1
- package/dist/stencil-library/index-CChkgM3J.js +0 -414
- package/dist/stencil-library/index-CChkgM3J.js.map +0 -1
- package/dist/stencil-library/index-ICfDNUMe.js +0 -4172
- package/dist/stencil-library/index-ICfDNUMe.js.map +0 -1
- package/dist/stencil-library/jpeg-Dd5nnHR5.js.map +0 -1
- package/dist/stencil-library/lerc-7W4E8EBs.js.map +0 -1
- package/dist/stencil-library/lzw--P4c0ZHH.js.map +0 -1
- package/dist/stencil-library/map-draw-Cx9WZoKH.js +0 -25567
- package/dist/stencil-library/map-draw-Cx9WZoKH.js.map +0 -1
- package/dist/stencil-library/map-draw.entry.esm.js.map +0 -1
- package/dist/stencil-library/map-draw.entry.js +0 -12
- package/dist/stencil-library/map-draw.entry.js.map +0 -1
- package/dist/stencil-library/map-selector.entry.esm.js.map +0 -1
- package/dist/stencil-library/map-selector.entry.js.map +0 -1
- package/dist/stencil-library/marker-icon.entry.js.map +0 -1
- package/dist/stencil-library/move-icon.entry.esm.js.map +0 -1
- package/dist/stencil-library/move-icon.entry.js.map +0 -1
- package/dist/stencil-library/octagon-minus-icon.entry.js.map +0 -1
- package/dist/stencil-library/packbits-X3R_utTs.js.map +0 -1
- package/dist/stencil-library/pako.esm-CPorU236.js +0 -6881
- package/dist/stencil-library/polygon-buttons.entry.js.map +0 -1
- package/dist/stencil-library/polygon-information.entry.js.map +0 -1
- package/dist/stencil-library/raw-BxukYehy.js +0 -20
- package/dist/stencil-library/raw-BxukYehy.js.map +0 -1
- package/dist/stencil-library/search-icon.entry.esm.js.map +0 -1
- package/dist/stencil-library/settings-icon.entry.esm.js.map +0 -1
- package/dist/stencil-library/settings-icon.entry.js.map +0 -1
- package/dist/stencil-library/settings-modal.entry.esm.js.map +0 -1
- package/dist/stencil-library/settings-modal.entry.js.map +0 -1
- package/dist/stencil-library/solar-expert.entry.esm.js.map +0 -1
- package/dist/stencil-library/solar-system-form.entry.esm.js.map +0 -1
- package/dist/stencil-library/solar-system-form.entry.js.map +0 -1
- package/dist/stencil-library/store-CcqrFuBK.js.map +0 -1
- package/dist/stencil-library/toast-notification.entry.js.map +0 -1
- package/dist/stencil-library/tool-box.entry.esm.js.map +0 -1
- package/dist/stencil-library/tool-box.entry.js.map +0 -1
- package/dist/stencil-library/tools-BNYKV5H5.js.map +0 -1
- package/dist/stencil-library/tutorial-component.entry.esm.js.map +0 -1
- package/dist/stencil-library/tutorial-component.entry.js.map +0 -1
- package/dist/stencil-library/undo-icon.entry.esm.js.map +0 -1
- package/dist/stencil-library/undo-icon.entry.js.map +0 -1
- package/dist/stencil-library/utils-BCUZxI9u.js.map +0 -1
- /package/dist/{stencil-library → esm}/app-globals-CX8V3eiN.js +0 -0
- /package/dist/{stencil-library → esm}/app-globals-CX8V3eiN.js.map +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"solar-system-form.entry.esm.js","mappings":"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","names":["generateElectricCarChargingHours","simulate"],"sources":["src/utils/api.ts","src/output.css?tag=solar-system-form","src/components/solar-system-form/solar-system-form.tsx"],"sourcesContent":["import { BuildingInsightsResponse } from \"harmonia-types\";\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(\"Unexpected content type:\", contentType, \"Response:\", text);\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 interface LeadData {\r\n location: {\r\n name: string;\r\n latitude: number;\r\n longitude: number;\r\n };\r\n systemConfig: {\r\n maxNumberOfPanels: number;\r\n panelPeakPower: number;\r\n polygons: any[];\r\n solarSystems: any;\r\n electricityPrice: number;\r\n compensationRate: number;\r\n annualPriceIncrease: number;\r\n };\r\n client: {\r\n name: string;\r\n email: string;\r\n phone: string;\r\n consumption: number;\r\n consumptionProfile: string;\r\n hasBattery: boolean;\r\n battery: number;\r\n hasHeatPump: boolean;\r\n heatPumpM2: number;\r\n hasElectricCar: boolean;\r\n electricCarChargingTime: string;\r\n electricCarKmPerYear: number;\r\n };\r\n images: {\r\n roof: string;\r\n polygon: string;\r\n };\r\n results: {\r\n autonomy: number;\r\n costSavings: number;\r\n compensation20Years: number;\r\n savedCosts20Years: number;\r\n totalEnergyConsumption: number;\r\n };\r\n}\r\n\r\nexport async function sendLeadToNexvoro(\r\n leadData: LeadData,\r\n): Promise<{ success: boolean; message: string; leadId?: string }> {\r\n try {\r\n const extradata = {\r\n leadtype: \"A-lead\",\r\n phase: \"10 Anbahnung\",\r\n title: `${leadData.client.name}/solarExpert`,\r\n extradata: leadData,\r\n };\r\n\r\n const formData = new FormData();\r\n formData.append(\"md\", \"81.87.84.81.84.\");\r\n formData.append(\"token\", \"estwtayazyrwtddwsstqatw\");\r\n formData.append(\"NewsletterID\", \"20404\");\r\n formData.append(\"type\", \"new\");\r\n formData.append(\"data\", \"lead\");\r\n formData.append(\"values\", JSON.stringify(extradata));\r\n\r\n // Build the URL\r\n const baseUrl = \"https://workspace.nexvoro.cloud/exchange/extevent\";\r\n const url = baseUrl;\r\n\r\n // Send the request with FormData to avoid CORS preflight\r\n const response = await fetch(url, {\r\n method: \"POST\",\r\n body: formData,\r\n // No custom headers to avoid preflight request\r\n });\r\n\r\n if (!response.ok) {\r\n const errorText = await response.text();\r\n console.error(\r\n \"Error sending lead to Nexvoro:\",\r\n response.status,\r\n errorText,\r\n );\r\n throw new Error(\r\n `HTTP error! status: ${response.status}, body: ${errorText}`,\r\n );\r\n }\r\n\r\n const result = await response.text();\r\n console.log(\"result\", result);\r\n\r\n // Check if the response contains a lead ID (successful creation)\r\n if (result.includes(\"ERROR\")) {\r\n return {\r\n success: false,\r\n message: \"Lead not created\",\r\n leadId: result,\r\n };\r\n } else {\r\n return {\r\n success: true,\r\n message: \"Lead submitted successfully\",\r\n leadId: undefined,\r\n };\r\n }\r\n } catch (error) {\r\n console.error(\"Error sending lead to Nexvoro:\", error);\r\n return {\r\n success: false,\r\n message: error instanceof Error\r\n ? error.message\r\n : \"Unknown error occurred\",\r\n };\r\n }\r\n}\r\n","/*! 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, State, Watch } from \"@stencil/core\";\nimport { DEFAULT_SOLAR_PANEL_TYPE } from \"../../config\";\nimport { getLanguageStrings } from \"../../utils/lang/general\";\nimport { Polygon } from \"harmonia-types\";\nimport { state } from \"../../store\";\nimport { SimulationConfig, SolarSystem } from \"harmonia-sim\";\nimport { generateElectricCarChargingHours, simulate } from \"harmonia-sim\";\nimport { HEAT_PUMP_CONSUMPTION } from \"../../constants\";\nimport { LeadData, sendLeadToNexvoro } from \"../../utils/api\";\n\n@Component({\n tag: \"solar-system-form\",\n styleUrl: \"../../output.css\",\n shadow: false,\n})\nexport class SolarSystemForm {\n @Prop()\n systemConfigs: { [id: string]: SolarSystem } = {};\n @Prop()\n polygons: Polygon[] = [];\n @Prop()\n roofCanvas: HTMLCanvasElement;\n @Prop()\n polygonCanvas: HTMLCanvasElement;\n\n @State()\n householdConsumption: number = 4500;\n @State()\n consumptionProfile: \"mostly_at_home\" | \"mostly_away\" = \"mostly_at_home\";\n @State()\n electricityPrice: number = 0.3;\n @State()\n compensationRate: number = 0.07;\n @State()\n annualPriceIncrease: number = 2;\n @State()\n autonomy: number = 0;\n @State()\n costSavings: number = 0;\n @State()\n numberOfPanels: number = 5;\n @State()\n panelPeakPower: number = 0.4; // kW per panel\n @State()\n name: string = \"\";\n @State()\n email: string = \"\";\n @State()\n phone: string = \"\";\n @State()\n nameError: string = \"\";\n @State()\n emailError: string = \"\";\n @State()\n phoneError: string = \"\";\n @State()\n electricCar: boolean = false;\n @State()\n electricCarChargingTime: \"day\" | \"night\" = \"day\";\n @State()\n heatPump: number = 0;\n @State()\n battery: number = 0;\n @State()\n batteryEnabled: boolean = false;\n\n @State()\n compensation20Years: number = 0;\n @State()\n savedCosts20Years: number = 0;\n @State()\n maxPanels: number = 5;\n @State()\n kmDrivenPerYear: number = 10000;\n @State()\n totalEnergyConsumption: number = 4500;\n @State()\n totalEnergyProduction: number = 0;\n @State()\n isSubmitting: boolean = false;\n @State()\n submitMessage: string = \"\";\n @State()\n submitSuccess: boolean = false;\n\n @Watch(\"systemConfigs\")\n updateSystemConfigs() {\n if (Object.keys(this.systemConfigs).length === 0) {\n this.numberOfPanels = 0;\n this.maxPanels = 0;\n return;\n }\n this.numberOfPanels = Object.keys(this.systemConfigs).reduce(\n (acc, curr) => acc + this.systemConfigs[curr].numberOfPanels,\n 0,\n );\n this.maxPanels = Object.keys(this.systemConfigs).reduce(\n (acc, curr) => acc + this.systemConfigs[curr].numberOfPanels,\n 0,\n );\n\n this.panelPeakPower = Object.entries(this.systemConfigs)[0][1][0]\n ?.panel.kWattPeak ?? 0.44;\n\n this.recalculate();\n }\n\n private formatEuropeanNumber(num: number, decimals: number = 2): string {\n const fixed = num.toFixed(decimals);\n const [integerPart, decimalPart] = fixed.split(\".\");\n\n // Add dots as thousands separators\n const formattedInteger = integerPart.replace(\n /\\B(?=(\\d{3})+(?!\\d))/g,\n \".\",\n );\n\n // Join with comma as decimal separator\n return decimalPart\n ? `${formattedInteger},${decimalPart}`\n : formattedInteger;\n }\n\n private recalculate() {\n const currentSystemConfigs = {};\n let totalNumberOfPanels = 0;\n for (const [key, value] of Object.entries(this.systemConfigs)) {\n if (totalNumberOfPanels >= this.numberOfPanels) {\n break;\n }\n if (\n value.numberOfPanels + totalNumberOfPanels > this.numberOfPanels\n ) {\n currentSystemConfigs[key] = {\n ...value,\n numberOfPanels: this.numberOfPanels - totalNumberOfPanels,\n };\n totalNumberOfPanels = this.numberOfPanels;\n } else {\n currentSystemConfigs[key] = value;\n totalNumberOfPanels += value.numberOfPanels;\n }\n }\n\n const simulationConfig: SimulationConfig = {\n general: {\n simulationYears: 20,\n },\n householdConsumption: {\n consumptionProfile: this.consumptionProfile,\n winterConsumptionFactor: 1.4,\n summerConsumptionFactor: 0.6,\n averageConsumption: this.householdConsumption / 365,\n },\n electricityPrice: {\n purchase: this.electricityPrice,\n sell: this.compensationRate,\n increase: this.annualPriceIncrease / 100,\n },\n solarSystems: currentSystemConfigs,\n batteryKWh: this.battery,\n solarRadiation: {\n winterFactor: 0.2,\n summerFactor: 0.6,\n },\n heatPump: {\n m2: this.heatPump,\n consumptionPerM2: HEAT_PUMP_CONSUMPTION / 365,\n },\n electricCar: this.electricCar\n ? {\n averageKilometersPerDay: this.kmDrivenPerYear / 365,\n consumptionkWhPer100km: 20,\n batteryKWh: 80,\n chargingHours: this.electricCarChargingTime === \"day\"\n ? generateElectricCarChargingHours(6, 18)\n : generateElectricCarChargingHours(18, 6),\n }\n : undefined,\n };\n\n const result = simulate(simulationConfig);\n\n this.compensation20Years = result.compensationPerDay * 365 * 20;\n this.savedCosts20Years = result.byYearSavedCosts.reduce(\n (acc, curr) => acc + curr,\n 0,\n ) + this.compensation20Years;\n this.costSavings = result.byYearSavedCosts[0];\n this.autonomy = result.autonomy * 100;\n this.totalEnergyConsumption = result.totalEnergyConsumptionDay * 365;\n // Calculate total energy production based on compensation and rate\n this.totalEnergyProduction = result.totalEnergyProduction * 365;\n }\n\n componentWillLoad() {\n this.updateSystemConfigs();\n }\n\n private validateForm(): boolean {\n let isValid = true;\n const t = getLanguageStrings(state.settings.language);\n\n // Validate name\n if (!this.name.trim()) {\n this.nameError = t.solarSystemForm.nameError;\n isValid = false;\n } else {\n this.nameError = \"\";\n }\n\n // Validate email\n const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n if (!this.email.trim()) {\n this.emailError = t.solarSystemForm.emailError;\n isValid = false;\n } else if (!emailRegex.test(this.email)) {\n this.emailError = t.solarSystemForm.validEmailError;\n isValid = false;\n } else {\n this.emailError = \"\";\n }\n\n // Validate phone (optional)\n const phoneRegex = /^[\\+]?[1-9][\\d]{0,15}$/;\n if (\n this.phone.trim() &&\n !phoneRegex.test(this.phone.replace(/[\\s\\-\\(\\)]/g, \"\"))\n ) {\n this.phoneError = t.solarSystemForm.phoneError;\n isValid = false;\n } else {\n this.phoneError = \"\";\n }\n\n return isValid;\n }\n\n private async handleRequestOffer() {\n if (!this.validateForm()) {\n return;\n }\n\n this.isSubmitting = true;\n this.submitMessage = \"\";\n this.submitSuccess = false;\n\n const t = getLanguageStrings(state.settings.language);\n\n try {\n const leadData: LeadData = {\n location: {\n name: state.location,\n latitude: state.latitude,\n longitude: state.longitude,\n },\n systemConfig: {\n maxNumberOfPanels: this.maxPanels,\n panelPeakPower: this.panelPeakPower,\n polygons: this.polygons,\n solarSystems: this.systemConfigs,\n electricityPrice: this.electricityPrice,\n compensationRate: this.compensationRate,\n annualPriceIncrease: this.annualPriceIncrease,\n },\n client: {\n name: this.name,\n email: this.email,\n phone: this.phone,\n consumption: this.householdConsumption,\n consumptionProfile: this.consumptionProfile,\n hasBattery: this.batteryEnabled,\n battery: this.battery,\n hasHeatPump: this.heatPump > 0,\n heatPumpM2: this.heatPump,\n hasElectricCar: this.electricCar,\n electricCarChargingTime: this.electricCarChargingTime,\n electricCarKmPerYear: this.kmDrivenPerYear,\n },\n images: {\n roof: this.roofCanvas.toDataURL(),\n polygon: this.polygonCanvas.toDataURL(),\n },\n results: {\n autonomy: this.autonomy,\n costSavings: this.costSavings,\n compensation20Years: this.compensation20Years,\n savedCosts20Years: this.savedCosts20Years,\n totalEnergyConsumption: this.totalEnergyConsumption,\n },\n };\n console.log(\"leadData\", leadData);\n const result = await sendLeadToNexvoro(leadData);\n\n this.submitSuccess = result.success;\n\n if (result.success) {\n console.log(\"Lead successfully sent to Nexvoro\", result);\n this.submitMessage = t.solarSystemForm.leadSubmitted;\n // Optionally reset form or show success message\n } else {\n console.error(\n \"Failed to send lead to Nexvoro:\",\n result.message,\n );\n this.submitMessage = t.solarSystemForm.leadError;\n }\n } catch (error) {\n console.error(\"Error in handleRequestOffer:\", error);\n this.submitSuccess = false;\n this.submitMessage = error instanceof Error\n ? error.message\n : \"An unexpected error occurred\";\n } finally {\n this.isSubmitting = false;\n }\n }\n\n private isIOS(): boolean {\n return state.isIOS;\n }\n\n render() {\n const t = getLanguageStrings(state.settings.language);\n\n // Reusable style objects\n const borderStyle = { border: \"1px solid var(--color-border)\" };\n const errorBorderStyle = { border: \"1px solid var(--color-error)\" };\n\n return (\n <div\n class=\"flex flex-col justify-center items-center w-full h-full pt-4\" // style={{\n // display: (Object.keys(this.systemConfigs).length === 0)\n // ? \"none\"\n // : \"flex\",\n // }}\n id=\"solar-system-form\"\n >\n <h1 class=\"text-2xl font-bold text-secondary mb-4 w-full\">\n {t.solarSystemForm.title}\n </h1>\n\n <div class=\"w-full bg-primary rounded-4xl space-y-6\">\n {/* System Info Section */}\n <div\n class=\"space-y-4 p-4 rounded-4xl\"\n style={borderStyle}\n >\n <h2 class=\"text-lg font-semibold text-secondary\">\n {t.solarSystemForm.systemInformation}\n </h2>\n <div class=\"flex flex-col sm:flex-row gap-4\">\n {/* Number of Panels */}\n <div class=\"flex-1 bg-muted rounded-4xl p-4 space-y-3\">\n <div class=\"flex items-center justify-between\">\n <label class=\"text-sm font-medium text-text-muted\">\n {t.solarSystemForm.numberOfPanels}\n </label>\n {!this.isIOS()\n ? (\n <input\n type=\"number\"\n class=\"w-20 px-3 py-1 rounded-full bg-muted text-muted-foreground text-right\"\n value={this.numberOfPanels}\n readOnly\n />\n )\n : (\n <input\n type=\"number\"\n min=\"1\"\n max={this.maxPanels}\n class=\"w-20 px-3 py-1 rounded-full focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted text-muted-foreground text-center\"\n style={borderStyle}\n value={this.numberOfPanels}\n onInput={(e) => {\n const value = parseInt(\n (e.target as HTMLInputElement)\n .value,\n );\n if (\n value >= 1 &&\n value <=\n this.maxPanels\n ) {\n this.numberOfPanels =\n value;\n this.recalculate();\n }\n }}\n />\n )}\n </div>\n {!this.isIOS() && (\n <input\n type=\"range\"\n min=\"1\"\n max={this.maxPanels}\n step=\"1\"\n class=\"input-slider w-full custom-range appearance-none rounded-full bg-transparent [&::-webkit-slider-runnable-track]:rounded-full [&::-webkit-slider-runnable-track]:bg-black/25 [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:h-[10px] [&::-webkit-slider-thumb]:w-[10px] [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:bg-muted\"\n value={this.numberOfPanels}\n onInput={(e) => {\n this.numberOfPanels = parseInt(\n (e.target as HTMLInputElement)\n .value,\n );\n if (isNaN(this.numberOfPanels)) {\n this.numberOfPanels = 0;\n }\n this.recalculate();\n }}\n />\n )}\n </div>\n\n {/* Panel Peak Power */}\n <div class=\"flex-1 bg-muted rounded-4xl p-4\">\n <div class=\"flex items-center justify-between\">\n <label class=\"text-sm font-medium text-text-muted\">\n {t.solarSystemForm.panelPeakPower}\n </label>\n <span class=\"text-text-muted\">\n {this.panelPeakPower.toFixed(2)} kW\n </span>\n </div>\n <div class=\"flex items-center justify-between mt-4\">\n <span class=\"text-sm font-medium text-text-muted\">\n {t.solarSystemForm.totalSystemPeakPower}\n </span>\n <span class=\"font-bold text-text-muted\">\n {(DEFAULT_SOLAR_PANEL_TYPE.kWattPeak *\n this.numberOfPanels).toFixed(1)} kWp\n </span>\n </div>\n </div>\n </div>\n </div>\n {/* Household Consumption Section */}\n <div\n class=\"space-y-4 p-4 rounded-4xl\"\n style={borderStyle}\n >\n <h2 class=\"text-lg font-semibold text-secondary\">\n {t.solarSystemForm.householdConsumptionTitle}\n </h2>\n <div class=\"grid grid-rows-2 gap-0\">\n <div class=\"grid grid-cols-2 gap-4\">\n <label class=\"block text-sm font-medium text-text-muted\">\n {t.solarSystemForm.annualConsumption}\n </label>\n <label class=\"block text-sm font-medium text-text-muted\">\n {t.solarSystemForm.consumptionProfileTitle}\n </label>\n </div>\n <div class=\"grid grid-cols-2 gap-4\">\n <input\n type=\"number\"\n step=\"100\"\n min=\"0\"\n class=\"w-full px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted text-muted-foreground\"\n style={borderStyle}\n value={this.householdConsumption}\n onInput={(e) => {\n this.householdConsumption = parseInt(\n (e.target as HTMLInputElement)\n .value,\n );\n this.recalculate();\n }}\n />\n <select\n class=\"w-full px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted text-muted-foreground\"\n style={borderStyle}\n onChange={(e) => {\n this.consumptionProfile =\n (e.target as HTMLSelectElement)\n .value as\n | \"mostly_at_home\"\n | \"mostly_away\";\n this.recalculate();\n }}\n >\n <option\n value=\"mostly_at_home\"\n selected={this.consumptionProfile ===\n \"mostly_at_home\"}\n >\n {t.solarSystemForm.consumptionProfiles\n .mostlyAtHome}\n </option>\n <option\n value=\"mostly_away\"\n selected={this.consumptionProfile ===\n \"mostly_away\"}\n >\n {t.solarSystemForm.consumptionProfiles\n .mostlyAway}\n </option>\n </select>\n </div>\n </div>\n {\n /* <div class=\"mt-4 h-48\">\n <canvas ref={(el) => this.chartRef = el}></canvas>\n </div> */\n }\n </div>\n <div\n class=\"space-y-4 p-4 rounded-4xl\"\n style={borderStyle}\n >\n <h2 class=\"text-lg font-semibold text-secondary\">\n {t.solarSystemForm.additionalComponents.title}\n </h2>\n <div class=\"flex flex-col gap-4\">\n {/* Heat Pump Section */}\n <div class=\"flex flex-col bg-muted rounded-4xl p-4 gap-4\">\n <div class=\"flex items-center justify-between\">\n <div class=\"flex items-center gap-2\">\n <input\n type=\"checkbox\"\n id=\"heatPump\"\n class=\"w-4 h-4 accent-tertiary border-border rounded-full focus:ring-tertiary focus:ring-offset-0 focus:ring-2\"\n checked={this.heatPump > 0}\n onChange={(e) => {\n this.heatPump =\n (e.target as HTMLInputElement)\n .checked\n ? 100\n : 0;\n this.recalculate();\n }}\n />\n <label\n htmlFor=\"heatPump\"\n class=\"text-text-muted\"\n >\n {t.solarSystemForm\n .additionalComponents\n .heatPump}\n </label>\n </div>\n {(this.heatPump > 0 && !this.isIOS()) && (\n <span class=\"text-text-muted\">\n {this.heatPump} m²\n </span>\n )}\n </div>\n {this.heatPump > 0 && (\n <div class=\"flex flex-col gap-2\">\n {this.isIOS()\n ? (\n <div class=\"flex items-center gap-2\">\n <input\n type=\"number\"\n min=\"10\"\n max=\"300\"\n step=\"10\"\n class=\"flex-1 px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted\"\n style={borderStyle}\n value={this.heatPump}\n onInput={(e) => {\n let value =\n parseInt(\n (e.target as HTMLInputElement)\n .value,\n );\n if (isNaN(value)) {\n value = 0;\n }\n if (\n value >= 0 &&\n value <= 300\n ) {\n this.heatPump =\n value;\n this.recalculate();\n }\n }}\n />\n <span class=\"text-sm text-text-muted\">\n m²\n </span>\n </div>\n )\n : (\n <input\n type=\"range\"\n min=\"10\"\n max=\"300\"\n step=\"10\"\n class=\"input-slider custom-range appearance-none rounded-full bg-transparent [&::-webkit-slider-runnable-track]:rounded-full [&::-webkit-slider-runnable-track]:bg-black/25 [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:h-[10px] [&::-webkit-slider-thumb]:w-[10px] [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:bg-muted\"\n value={this.heatPump}\n onInput={(e) => {\n this.heatPump =\n parseInt(\n (e.target as HTMLInputElement)\n .value,\n );\n this.recalculate();\n }}\n />\n )}\n </div>\n )}\n </div>\n\n {/* Electric Car Section */}\n <div class=\"flex flex-col bg-muted rounded-4xl p-4 gap-4\">\n <div class=\"flex items-center justify-between\">\n <div class=\"flex items-center gap-2\">\n <input\n type=\"checkbox\"\n id=\"electricCar\"\n class=\"w-4 h-4 accent-tertiary border-border rounded focus:ring-tertiary focus:ring-offset-0 focus:ring-2\"\n checked={this.electricCar}\n onChange={(e) => {\n this.electricCar =\n (e.target as HTMLInputElement)\n .checked;\n this.recalculate();\n }}\n />\n <label\n htmlFor=\"electricCar\"\n class=\"text-text-muted\"\n >\n {t.solarSystemForm\n .additionalComponents\n .electricCar}\n </label>\n </div>\n </div>\n {this.electricCar && (\n <div class=\"flex flex-col gap-2\">\n <div class=\"grid grid-cols-2 gap-4\">\n <label class=\"text-sm text-text-muted\">\n {t.solarSystemForm\n .additionalComponents\n .chargingTime}\n </label>\n <label class=\"text-sm text-text-muted\">\n {t.solarSystemForm\n .additionalComponents\n .kilometersPerYear}\n </label>\n </div>\n <div class=\"grid grid-cols-2 gap-4\">\n <select\n class=\"w-full px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted\"\n onChange={(e) => {\n this.electricCarChargingTime =\n (e.target as HTMLSelectElement)\n .value as\n | \"day\"\n | \"night\";\n this.recalculate();\n }}\n style={borderStyle}\n >\n <option\n value=\"day\"\n selected={this\n .electricCarChargingTime ===\n \"day\"}\n >\n {t.solarSystemForm\n .additionalComponents\n .chargingTimeDay}\n </option>\n <option\n value=\"night\"\n selected={this\n .electricCarChargingTime ===\n \"night\"}\n >\n {t.solarSystemForm\n .additionalComponents\n .chargingTimeNight}\n </option>\n </select>\n <input\n type=\"number\"\n min=\"1000\"\n max=\"100000\"\n step=\"1000\"\n class=\"w-full px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted\"\n value={this.kmDrivenPerYear}\n onInput={(e) => {\n this.kmDrivenPerYear =\n parseInt(\n (e.target as HTMLInputElement)\n .value,\n );\n if (\n isNaN(\n this.kmDrivenPerYear,\n )\n ) {\n this.kmDrivenPerYear =\n 0;\n }\n this.recalculate();\n }}\n style={borderStyle}\n />\n </div>\n </div>\n )}\n </div>\n\n {/* Battery Section */}\n <div class=\"flex flex-col bg-muted rounded-4xl p-4 gap-4\">\n <div class=\"flex items-center justify-between\">\n <div class=\"flex items-center gap-2\">\n <input\n type=\"checkbox\"\n id=\"battery\"\n class=\"w-4 h-4 accent-tertiary border-border rounded-full focus:ring-tertiary focus:ring-offset-0 focus:ring-2\"\n checked={this.batteryEnabled}\n onChange={(e) => {\n this.batteryEnabled =\n (e.target as HTMLInputElement)\n .checked;\n this.battery =\n this.batteryEnabled\n ? 5\n : 0;\n this.recalculate();\n }}\n />\n <label\n htmlFor=\"battery\"\n class=\"text-text-muted\"\n >\n {t.solarSystemForm\n .additionalComponents\n .battery}\n </label>\n </div>\n {(this.batteryEnabled && !this.isIOS()) && (\n <span class=\"text-text-muted\">\n {this.battery} kWh\n </span>\n )}\n </div>\n {this.batteryEnabled && (\n <div class=\"flex flex-col gap-2\">\n {this.isIOS()\n ? (\n <div class=\"flex items-center gap-2\">\n <input\n type=\"number\"\n min=\"0\"\n max=\"20\"\n step=\"1\"\n class=\"flex-1 px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted\"\n value={this.battery}\n onInput={(e) => {\n let value =\n parseInt(\n (e.target as HTMLInputElement)\n .value,\n );\n if (isNaN(value)) {\n value = 0;\n }\n if (\n value >= 0 &&\n value <= 20\n ) {\n this.battery =\n value;\n } else {\n this.battery =\n 20;\n }\n this.recalculate();\n }}\n style={borderStyle}\n />\n <span class=\"text-sm text-text-muted\">\n kWh\n </span>\n </div>\n )\n : (\n <input\n type=\"range\"\n min=\"1\"\n max=\"20\"\n step=\"1\"\n class=\"input-slider w-full custom-range appearance-none rounded-full bg-transparent [&::-webkit-slider-runnable-track]:rounded-full [&::-webkit-slider-runnable-track]:bg-black/25 [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:h-[10px] [&::-webkit-slider-thumb]:w-[10px] [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:bg-muted\"\n value={this.battery}\n onInput={(e) => {\n const value = parseInt(\n (e.target as HTMLInputElement)\n .value,\n );\n this.battery = value;\n this.batteryEnabled =\n value > 0;\n this.recalculate();\n }}\n />\n )}\n </div>\n )}\n </div>\n </div>\n </div>\n\n {/* Electricity Price and Compensation Section */}\n <div\n class=\"space-y-4 p-4 rounded-4xl\"\n style={borderStyle}\n >\n <h2 class=\"text-lg font-semibold text-secondary\">\n {t.solarSystemForm.electricityCostsTitle}\n </h2>\n <div\n style={{\n display: \"grid\",\n gridTemplateColumns:\n \"repeat(auto-fit, minmax(100px, 1fr))\",\n gap: \"1rem\",\n }}\n >\n <div>\n <label class=\"block text-sm font-medium text-text-muted mb-1\">\n {t.solarSystemForm.electricityPrice}\n </label>\n <input\n type=\"number\"\n step=\"0.01\"\n class=\"w-full px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted\"\n style={borderStyle}\n value={this.electricityPrice.toFixed(2)}\n onInput={(e) => {\n this.electricityPrice = parseFloat(\n (e.target as HTMLInputElement)\n .value,\n );\n this.recalculate();\n }}\n />\n </div>\n <div>\n <label class=\"block text-sm font-medium text-text-muted mb-1\">\n {t.solarSystemForm.compensationRate}\n </label>\n <input\n type=\"number\"\n step=\"0.01\"\n class=\"w-full px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted\"\n style={borderStyle}\n value={this.compensationRate.toFixed(2)}\n onInput={(e) => {\n this.compensationRate = parseFloat(\n (e.target as HTMLInputElement)\n .value,\n );\n this.recalculate();\n }}\n />\n </div>\n <div>\n <label class=\"block text-sm font-medium text-text-muted mb-1\">\n {t.solarSystemForm.annualPriceIncrease}\n </label>\n <input\n type=\"number\"\n step=\"0.1\"\n class=\"w-full px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted\"\n style={borderStyle}\n value={this.annualPriceIncrease.toFixed(1)}\n onInput={(e) => {\n this.annualPriceIncrease = parseFloat(\n (e.target as HTMLInputElement)\n .value,\n );\n this.recalculate();\n }}\n />\n </div>\n </div>\n </div>\n\n {/* Results Section */}\n <div\n class=\"space-y-4 p-4 rounded-4xl\"\n style={borderStyle}\n >\n <h2 class=\"text-lg font-semibold text-secondary\">\n {t.solarSystemForm.resultsTitle}\n </h2>\n <div class=\"bg-muted rounded-4xl p-4\">\n <div class=\"flex flex-col sm:flex-row sm:items-center justify-between\">\n <span class=\"text-text-muted\">\n {t.solarSystemForm.autonomy}\n </span>\n <span class=\"text-xl font-bold text-secondary mt-1 sm:mt-0\">\n {this.autonomy > 100\n ? \"100\"\n : this.formatEuropeanNumber(\n this.autonomy,\n 1,\n )}%\n </span>\n </div>\n <div class=\"flex flex-col sm:flex-row sm:items-center justify-between mt-4\">\n <span class=\"text-text-muted\">\n {t.solarSystemForm.totalEnergyConsumption}\n </span>\n <span class=\"text-xl font-bold text-secondary mt-1 sm:mt-0\">\n {this.formatEuropeanNumber(\n this.totalEnergyConsumption,\n 0,\n )} kWh/{t.solarSystemForm.year}\n </span>\n </div>\n <div class=\"flex flex-col sm:flex-row sm:items-center justify-between mt-4\">\n <span class=\"text-text-muted\">\n {t.solarSystemForm.totalEnergyProduction}\n </span>\n <span class=\"text-xl font-bold text-secondary mt-1 sm:mt-0\">\n {this.formatEuropeanNumber(\n this.totalEnergyProduction,\n 0,\n )} kWh/{t.solarSystemForm.year}\n </span>\n </div>\n <div class=\"flex flex-col sm:flex-row sm:items-center justify-between mt-4\">\n <div class=\"flex items-center gap-2\">\n <span class=\"text-text-muted\">\n {t.solarSystemForm.costSavings}\n </span>\n </div>\n <span class=\"text-xl font-bold text-success mt-1 sm:mt-0\">\n {this.formatEuropeanNumber(\n this.costSavings,\n )} €/{t\n .solarSystemForm.year}\n </span>\n </div>\n <div class=\"flex flex-col sm:flex-row sm:items-center justify-between mt-4\">\n <div class=\"flex items-center gap-2\">\n <span class=\"text-text-muted\">\n {t.solarSystemForm.compensation20Years}\n </span>\n </div>\n <span class=\"text-xl font-bold text-success mt-1 sm:mt-0\">\n {this.formatEuropeanNumber(\n this.compensation20Years,\n )} €\n </span>\n </div>\n <div class=\"flex flex-col sm:flex-row sm:items-center justify-between mt-4\">\n <div class=\"flex items-center gap-2\">\n <span class=\"text-text-muted\">\n {t.solarSystemForm\n .monetaryBenefit20Years}\n </span>\n </div>\n <span class=\"text-xl font-bold text-success mt-1 sm:mt-0\">\n {this.formatEuropeanNumber(\n this.savedCosts20Years,\n )} €\n </span>\n </div>\n </div>\n </div>\n\n {/* Contact Information Section */}\n <div\n class=\"space-y-4 p-4 rounded-4xl\"\n style={borderStyle}\n >\n <h2 class=\"text-lg font-semibold text-secondary\">\n {t.solarSystemForm.requestOffer}\n </h2>\n <div\n style={{\n display: \"grid\",\n gridTemplateColumns:\n \"repeat(auto-fit, minmax(1 00px, 1fr))\",\n gap: \"1rem\",\n }}\n >\n <div>\n <label class=\"block text-sm font-medium text-text-muted mb-1\">\n {t.solarSystemForm.name}\n </label>\n <input\n type=\"text\"\n class={`w-full px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted text-muted-foreground`}\n style={this.nameError\n ? errorBorderStyle\n : borderStyle}\n value={this.name}\n onInput={(e) => {\n this.name =\n (e.target as HTMLInputElement)\n .value;\n this.validateForm();\n }}\n placeholder=\"Your name\"\n />\n {this.nameError && (\n <p class=\"text-error text-sm mt-1\">\n {this.nameError}\n </p>\n )}\n </div>\n <div>\n <label class=\"block text-sm font-medium text-text-muted mb-1\">\n {t.solarSystemForm.email}\n </label>\n <input\n type=\"email\"\n class={`w-full px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted text-muted-foreground`}\n style={this.emailError\n ? errorBorderStyle\n : borderStyle}\n value={this.email}\n onInput={(e) => {\n this.email =\n (e.target as HTMLInputElement)\n .value;\n this.validateForm();\n }}\n placeholder=\"your.email@example.com\"\n />\n {this.emailError && (\n <p class=\"text-error text-sm mt-1\">\n {this.emailError}\n </p>\n )}\n </div>\n <div>\n <label class=\"block text-sm font-medium text-text-muted mb-1\">\n {t.solarSystemForm.phone}\n </label>\n <input\n type=\"tel\"\n class={`w-full px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted text-muted-foreground`}\n style={this.phoneError\n ? errorBorderStyle\n : borderStyle}\n value={this.phone}\n onInput={(e) => {\n this.phone =\n (e.target as HTMLInputElement)\n .value;\n this.validateForm();\n }}\n placeholder=\"+34 123 456 789\"\n />\n {this.phoneError && (\n <p class=\"text-error text-sm mt-1\">\n {this.phoneError}\n </p>\n )}\n </div>\n </div>\n <div class=\"flex flex-col items-center gap-4\">\n <button\n onClick={() => this.handleRequestOffer()}\n disabled={!this.name.trim() ||\n !this.email.trim() || !!this.nameError ||\n !!this.emailError || !!this.phoneError ||\n this.isSubmitting}\n class={`px-6 py-3 rounded-4xl transition-colors duration-200 flex items-center gap-2 ${\n this.isSubmitting\n ? \"bg-muted text-text-muted cursor-not-allowed\"\n : \"bg-secondary hover:bg-tertiary\"\n }`}\n style={{\n color: this.isSubmitting\n ? \"var(--color-text-muted)\"\n : \"#ffffff\",\n }}\n >\n {this.isSubmitting && (\n <div class=\"w-4 h-4 border-2 border-current border-t-transparent rounded-full animate-spin\">\n </div>\n )}\n {this.isSubmitting\n ? t.solarSystemForm.sending\n : t.solarSystemForm.requestOfferButton}\n </button>\n\n {this.submitMessage && (\n <div\n class={`text-sm px-4 py-2 rounded-4xl ${\n this.submitSuccess\n ? \"bg-success/10 text-success border border-success/20\"\n : \"bg-error/10 text-error border border-error/20\"\n }`}\n >\n {this.submitMessage}\n </div>\n )}\n </div>\n </div>\n </div>\n </div>\n );\n }\n}\n"],"version":3}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"store-CcqrFuBK.js","sources":["src/utils/lang/english.ts","src/utils/lang/german.ts","src/utils/lang/spanish.ts","src/utils/lang/general.ts","../../node_modules/@stencil/store/dist/index.js","src/store.ts"],"sourcesContent":["import { LanguageStrings } from \"../../types/lang\";\r\n\r\nexport const en: LanguageStrings = {\r\n settings: {\r\n language: \"Language\",\r\n rowSpacing: \"Row Spacing\",\r\n columnSpacing: \"Column Spacing\",\r\n borderInset: \"Border Inset\",\r\n },\r\n mapSelector: {\r\n explanation:\r\n \"Select your house on the map and adjust the radius of the circle to fully encompase your roof.\",\r\n radius: \"Radius (meters)\",\r\n accept: \"Accept\",\r\n chooseOnMap: \"Choose on Map\",\r\n switchToStandard: \"Switch to Standard Map\",\r\n switchToSatellite: \"Switch to Satellite\",\r\n noAddressSelected: \"Please select an address first\",\r\n },\r\n solarExpert: {\r\n searchPlaceholder: \"Search for your address\",\r\n },\r\n solarSystemForm: {\r\n title: \"Solar System Configuration\",\r\n systemInformation: \"System Information\",\r\n numberOfPanels: \"Number of Solar Panels\",\r\n panelPeakPower: \"Panel Peak Power (kW)\",\r\n totalSystemPeakPower: \"Total System Peak Power (kW)\",\r\n electricityPrice: \"Electricity Price (€/kWh)\",\r\n compensationRate: \"Compensation Rate (€/kWh)\",\r\n autonomy: \"Autonomy\",\r\n totalEnergyConsumption: \"Total Energy Consumption\",\r\n totalEnergyProduction: \"Total Energy Production (approximate)\",\r\n costSavings: \"Cost Savings (€/year)\",\r\n householdConsumptionTitle: \"Household Electricity Consumption\",\r\n consumptionProfileTitle: \"Consumption Profile\",\r\n electricityCostsTitle: \"Electricity Costs\",\r\n compensationRateTitle: \"Compensation Rate\",\r\n resultsTitle: \"Results\",\r\n savingsDisclaimer:\r\n \"Disclaimer: The savings are based on the average electricity price in Spain.\",\r\n annualConsumption: \"Annual Consumption (kWh)\",\r\n name: \"Name\",\r\n email: \"Email\",\r\n phone: \"Phone Number (optional)\",\r\n nameError: \"Please enter your name\",\r\n emailError: \"Please enter a valid email address\",\r\n phoneError: \"Please enter a valid phone number\",\r\n consumptionProfiles: {\r\n mostlyAtHome: \"Mostly at home\",\r\n mostlyAway: \"Mostly away\",\r\n },\r\n chart: {\r\n consumption: \"Consumption\",\r\n production: \"Production\",\r\n consumptionProfile: \"Consumption Profile\",\r\n relativeConsumption: \"Relative Consumption\",\r\n hourOfDay: \"Hour of Day\",\r\n },\r\n validEmailError: \"Please enter a valid email address\",\r\n requestOffer: \"Request Offer\",\r\n requestOfferButton: \"Request Offer\",\r\n year: \"year\",\r\n additionalComponents: {\r\n title: \"Additional Components\",\r\n heatPump: \"Heat Pump\",\r\n electricCar: \"Electric Car\",\r\n battery: \"Battery\",\r\n chargingTime: \"Charging Time\",\r\n chargingTimeDay: \"Day (06:00 - 18:00)\",\r\n chargingTimeNight: \"Night (18:00 - 06:00)\",\r\n kilometersPerYear: \"Kilometers per Year\",\r\n },\r\n annualPriceIncrease: \"Annual Price Increase (%)\",\r\n costSavings20Years: \"20-Year Savings\",\r\n compensation20Years: \"Feed-in Tariff 20 Years\",\r\n monetaryBenefit20Years: \"Monetary Benefit 20 Years\",\r\n approximate: \"Approximate value\",\r\n sending: \"Sending...\",\r\n leadSubmitted: \"Your request has been submitted successfully!\",\r\n leadError:\r\n \"There was an error submitting your request. Please try again.\",\r\n },\r\n mapDraw: {\r\n instructions: {\r\n show: \"Show Instructions\",\r\n hide: \"Hide Instructions\",\r\n parts: {\r\n roof:\r\n \"After you have searched and selected your address. Highlight the part of your roof that you want to add solar panels to. Mark each surface with a polygon with the roof tool\",\r\n obstruction:\r\n \". If you have skylights or other obstructions where you don't want to add solar panels, mark those as well with the obstruction tool\",\r\n delete: \". You can delete polygons with the delete tool\",\r\n move:\r\n \". If you want to change the corners of a polygon, select the move tool\",\r\n end: \", select the polygon you want to change and drag and drop the corners.\",\r\n },\r\n },\r\n noPolygonSelected: \"No polygon selected\",\r\n noAddressSelected: \"Please select an address\",\r\n information: \"Information\",\r\n calculateSolarPanels: \"Calculate Solar Panels\",\r\n markRoofEdge: \"Mark lower roof edge\",\r\n markAsFlatRoof: \"Mark as flat roof\",\r\n panels: \"Panels\",\r\n area: \"Area\",\r\n azimuth: \"Azimuth\",\r\n pitch: \"Pitch\",\r\n loading: \"Loading\",\r\n imageLoadError:\r\n \"An error occurred while loading the satellite image. Please try again.\",\r\n tools: {\r\n roof: {\r\n name: \"Roof\",\r\n explanation: \"Draw the roof of the building\",\r\n ariaLabel: \"Roof\",\r\n },\r\n obstruction: {\r\n name: \"Obstruction\",\r\n explanation: \"Draw the obstruction of the building\",\r\n ariaLabel: \"Obstruction\",\r\n },\r\n delete: {\r\n name: \"Delete\",\r\n explanation: \"Delete the selected polygon\",\r\n ariaLabel: \"Delete\",\r\n },\r\n move: {\r\n name: \"Move\",\r\n explanation: \"Move the selected polygon\",\r\n ariaLabel: \"Move\",\r\n },\r\n undo: {\r\n name: \"Undo\",\r\n explanation: \"Undo the last action\",\r\n ariaLabel: \"Undo\",\r\n },\r\n markRoofEdge: {\r\n name: \"Roof Edge\",\r\n explanation: \"Mark the edge of the roof\",\r\n ariaLabel: \"Mark Roof Edge\",\r\n },\r\n },\r\n toast: {\r\n undoSuccess: \"Action undone successfully\",\r\n calculateSolarPanelsSuccess: \"Solar panels calculated successfully\",\r\n markAsFlatRoofSuccess:\r\n \"Roof marked as flat. Please select an edge to align the panels with the building.\",\r\n },\r\n tutorial: {\r\n title: \"How to Mark Your Roof\",\r\n description:\r\n \"Use the roof tool to mark the roof segment where you want to install solar panels. Click on the corners of your roof to create a polygon.\",\r\n understood: \"Understood\",\r\n mobileInstruction: \"Tap the video to play\",\r\n markEdge: {\r\n title: \"Mark the Lower Roof Edge\",\r\n description:\r\n \"Now mark the lower edge of your roof to help calculate the optimal solar panel placement. Click on the points along the bottom edge of your roof.\",\r\n understood: \"Understood\",\r\n },\r\n additionalTools: {\r\n title: \"Additional Tools Available\",\r\n description:\r\n \"You can now add more roof segments using the roof tool. Use the obstruction tool to mark areas where you don't want solar panels (like skylights or chimneys). The move tool allows you to select any polygon and edit its points by dragging them.\",\r\n understood: \"Understood\",\r\n },\r\n obstacle: {\r\n title: \"Mark Obstructions\",\r\n description:\r\n \"Now you can mark areas where you don't want solar panels, such as skylights, chimneys, or other roof features. Use the obstruction tool to draw polygons around these areas.\",\r\n understood: \"Understood\",\r\n skip: \"Skip Tutorial\",\r\n },\r\n },\r\n },\r\n};\r\n","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","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","import { Language, LanguageStrings } from \"../../types/lang\";\r\nimport { en } from \"./english\";\r\nimport { de } from \"./german\";\r\nimport { es } from \"./spanish\";\r\n\r\nconst languageStrings: Record<Language, LanguageStrings> = {\r\n en: en,\r\n es: es,\r\n de: de,\r\n}\r\n\r\n\r\nexport function getLanguageStrings(lang: Language): LanguageStrings {\r\n const defaultLang = languageStrings[\"en\"];\r\n if (lang === \"en\") {\r\n return defaultLang;\r\n }\r\n const langStrings = languageStrings[lang];\r\n \r\n // Deep merge the default language strings with the selected language strings\r\n const mergedStrings = JSON.parse(JSON.stringify(defaultLang)); // Deep clone default\r\n \r\n function deepMerge(target: any, source: any) {\r\n for (const key in source) {\r\n if (source[key] instanceof Object && key in target) {\r\n deepMerge(target[key], source[key]);\r\n } else if (source[key] !== undefined) {\r\n target[key] = source[key];\r\n }\r\n }\r\n }\r\n \r\n deepMerge(mergedStrings, langStrings);\r\n return mergedStrings;\r\n}\r\n","import { getRenderingRef, forceUpdate } from '@stencil/core';\n\nconst appendToMap = (map, propName, value) => {\n const items = map.get(propName);\n if (!items) {\n map.set(propName, [value]);\n }\n else if (!items.includes(value)) {\n items.push(value);\n }\n};\nconst debounce = (fn, ms) => {\n let timeoutId;\n return (...args) => {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n timeoutId = setTimeout(() => {\n timeoutId = 0;\n fn(...args);\n }, ms);\n };\n};\n\n/**\n * Check if a possible element isConnected.\n * The property might not be there, so we check for it.\n *\n * We want it to return true if isConnected is not a property,\n * otherwise we would remove these elements and would not update.\n *\n * Better leak in Edge than to be useless.\n */\nconst isConnected = (maybeElement) => !('isConnected' in maybeElement) || maybeElement.isConnected;\nconst cleanupElements = debounce((map) => {\n for (let key of map.keys()) {\n map.set(key, map.get(key).filter(isConnected));\n }\n}, 2_000);\nconst stencilSubscription = () => {\n if (typeof getRenderingRef !== 'function') {\n // If we are not in a stencil project, we do nothing.\n // This function is not really exported by @stencil/core.\n return {};\n }\n const elmsToUpdate = new Map();\n return {\n dispose: () => elmsToUpdate.clear(),\n get: (propName) => {\n const elm = getRenderingRef();\n if (elm) {\n appendToMap(elmsToUpdate, propName, elm);\n }\n },\n set: (propName) => {\n const elements = elmsToUpdate.get(propName);\n if (elements) {\n elmsToUpdate.set(propName, elements.filter(forceUpdate));\n }\n cleanupElements(elmsToUpdate);\n },\n reset: () => {\n elmsToUpdate.forEach((elms) => elms.forEach(forceUpdate));\n cleanupElements(elmsToUpdate);\n },\n };\n};\n\nconst unwrap = (val) => (typeof val === 'function' ? val() : val);\nconst createObservableMap = (defaultState, shouldUpdate = (a, b) => a !== b) => {\n const unwrappedState = unwrap(defaultState);\n let states = new Map(Object.entries(unwrappedState ?? {}));\n const handlers = {\n dispose: [],\n get: [],\n set: [],\n reset: [],\n };\n const reset = () => {\n // When resetting the state, the default state may be a function - unwrap it to invoke it.\n // otherwise, the state won't be properly reset\n states = new Map(Object.entries(unwrap(defaultState) ?? {}));\n handlers.reset.forEach((cb) => cb());\n };\n const dispose = () => {\n // Call first dispose as resetting the state would\n // cause less updates ;)\n handlers.dispose.forEach((cb) => cb());\n reset();\n };\n const get = (propName) => {\n handlers.get.forEach((cb) => cb(propName));\n return states.get(propName);\n };\n const set = (propName, value) => {\n const oldValue = states.get(propName);\n if (shouldUpdate(value, oldValue, propName)) {\n states.set(propName, value);\n handlers.set.forEach((cb) => cb(propName, value, oldValue));\n }\n };\n const state = (typeof Proxy === 'undefined'\n ? {}\n : new Proxy(unwrappedState, {\n get(_, propName) {\n return get(propName);\n },\n ownKeys(_) {\n return Array.from(states.keys());\n },\n getOwnPropertyDescriptor() {\n return {\n enumerable: true,\n configurable: true,\n };\n },\n has(_, propName) {\n return states.has(propName);\n },\n set(_, propName, value) {\n set(propName, value);\n return true;\n },\n }));\n const on = (eventName, callback) => {\n handlers[eventName].push(callback);\n return () => {\n removeFromArray(handlers[eventName], callback);\n };\n };\n const onChange = (propName, cb) => {\n const unSet = on('set', (key, newValue) => {\n if (key === propName) {\n cb(newValue);\n }\n });\n // We need to unwrap the defaultState because it might be a function.\n // Otherwise we might not be sending the right reset value.\n const unReset = on('reset', () => cb(unwrap(defaultState)[propName]));\n return () => {\n unSet();\n unReset();\n };\n };\n const use = (...subscriptions) => {\n const unsubs = subscriptions.reduce((unsubs, subscription) => {\n if (subscription.set) {\n unsubs.push(on('set', subscription.set));\n }\n if (subscription.get) {\n unsubs.push(on('get', subscription.get));\n }\n if (subscription.reset) {\n unsubs.push(on('reset', subscription.reset));\n }\n if (subscription.dispose) {\n unsubs.push(on('dispose', subscription.dispose));\n }\n return unsubs;\n }, []);\n return () => unsubs.forEach((unsub) => unsub());\n };\n const forceUpdate = (key) => {\n const oldValue = states.get(key);\n handlers.set.forEach((cb) => cb(key, oldValue, oldValue));\n };\n return {\n state,\n get,\n set,\n on,\n onChange,\n use,\n dispose,\n reset,\n forceUpdate,\n };\n};\nconst removeFromArray = (array, item) => {\n const index = array.indexOf(item);\n if (index >= 0) {\n array[index] = array[array.length - 1];\n array.length--;\n }\n};\n\nconst createStore = (defaultState, shouldUpdate) => {\n const map = createObservableMap(defaultState, shouldUpdate);\n map.use(stencilSubscription());\n return map;\n};\n\nexport { createObservableMap, createStore };\n","import { createStore } from \"@stencil/store\";\r\nimport { Language } from \"./components\";\r\n\r\nexport interface Settings {\r\n language: Language;\r\n rowSpacing: number;\r\n columnSpacing: number;\r\n borderInset: number;\r\n heatPumpM2Consumption: number;\r\n}\r\n\r\nexport interface State {\r\n latitude: number | null;\r\n longitude: number | null;\r\n location: string | null;\r\n radiusMeters: number;\r\n settings: Settings;\r\n settingsVersion: number;\r\n isMobile: boolean;\r\n isIOS: boolean;\r\n}\r\n\r\nconst { state, onChange } = createStore<State>({\r\n latitude: null,\r\n longitude: null,\r\n location: null,\r\n radiusMeters: 15,\r\n settings: {\r\n language: \"en\",\r\n rowSpacing: 0.5,\r\n columnSpacing: 0.5,\r\n borderInset: 0.1,\r\n heatPumpM2Consumption: 85,\r\n },\r\n settingsVersion: 1,\r\n isMobile: false,\r\n isIOS: false,\r\n});\r\n\r\nonChange(\"latitude\", (value) => {\r\n state.latitude = value;\r\n});\r\n\r\nonChange(\"longitude\", (value) => {\r\n state.longitude = value;\r\n});\r\n\r\nonChange(\"radiusMeters\", (value) => {\r\n state.radiusMeters = value;\r\n});\r\n\r\nonChange(\"location\", (value) => {\r\n state.location = value;\r\n});\r\n\r\nonChange(\"settings\", (value) => {\r\n state.settings = value;\r\n});\r\n\r\nonChange(\"settingsVersion\", (value) => {\r\n state.settingsVersion = value;\r\n});\r\n\r\nonChange(\"isMobile\", (value) => {\r\n state.isMobile = value;\r\n});\r\n\r\nonChange(\"isIOS\", (value) => {\r\n state.isIOS = value;\r\n});\r\n\r\nexport { onChange, state };\r\n"],"names":[],"mappings":"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","x_google_ignoreList":[4]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"toast-notification.entry.esm.js","mappings":";;;;AAAA,MAAM,SAAS,GAAG,874BAA874B;;MCOn84B,iBAAiB,GAAA,MAAA;;;;IAE1B,OAAO,GAAW,EAAE;IAEpB,IAAI,GAA6C,MAAM;AAEvD,IAAA,QAAQ,GAAW,IAAI,CAAC;IAGhB,SAAS,GAAY,KAAK;IAE1B,SAAS,GAAY,KAAK;AAE1B,IAAA,SAAS;IAEjB,iBAAiB,GAAA;QACb,IAAI,CAAC,SAAS,EAAE;;IAGZ,SAAS,GAAA;AACb,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;;QAGtB,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,MAAK;YACpC,IAAI,CAAC,SAAS,EAAE;AACpB,SAAC,EAAE,IAAI,CAAC,QAAQ,CAAC;;IAGb,SAAS,GAAA;AACb,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;;;;;;IAQzB,oBAAoB,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAChB,YAAA,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;;;IAI5B,cAAc,GAAA;QAClB,MAAM,UAAU,GACZ,gIAAgI;AAEpI,QAAA,MAAM,UAAU,GAAG;AACf,YAAA,OAAO,EACH,gEAAgE;AACpE,YAAA,IAAI,EAAE,uDAAuD;AAC7D,YAAA,OAAO,EACH,gEAAgE;AACpE,YAAA,KAAK,EAAE,0DAA0D;SACpE;AAED,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC;AACzB,cAAE;cACA,qCAAqC;AAE3C,QAAA,OAAO,CAAG,EAAA,UAAU,CAAI,CAAA,EAAA,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAA,EAAI,eAAe,CAAA,CAAE;;IAGtE,MAAM,GAAA;AACF,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACjB,YAAA,OAAO,IAAI;;AAGf,QAAA,QACI,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EAAA,EAC7B,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,yBAAyB,EAAA,EAChC,CAAM,CAAA,MAAA,EAAA,EAAA,KAAK,EAAC,qBAAqB,EAAE,EAAA,IAAI,CAAC,OAAO,CAAQ,CACrD,CACJ;;;;;;;","names":[],"sources":["src/output.css?tag=toast-notification","src/components/widgets/toast-notification.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, State } from \"@stencil/core\";\r\n\r\n@Component({\r\n tag: \"toast-notification\",\r\n styleUrl: \"../../output.css\",\r\n shadow: false,\r\n})\r\nexport class ToastNotification {\r\n @Prop()\r\n message: string = \"\";\r\n @Prop()\r\n type: \"success\" | \"info\" | \"warning\" | \"error\" = \"info\";\r\n @Prop()\r\n duration: number = 5000; // Duration in milliseconds\r\n\r\n @State()\r\n private isVisible: boolean = false;\r\n @State()\r\n private isExiting: boolean = false;\r\n\r\n private timeoutId: number;\r\n\r\n componentWillLoad() {\r\n this.showToast();\r\n }\r\n\r\n private showToast() {\r\n this.isVisible = true;\r\n this.isExiting = false;\r\n\r\n // Auto-hide after duration\r\n this.timeoutId = window.setTimeout(() => {\r\n this.hideToast();\r\n }, this.duration);\r\n }\r\n\r\n private hideToast() {\r\n this.isExiting = true;\r\n\r\n // Remove from DOM after animation completes\r\n // setTimeout(() => {\r\n // this.isVisible = false;\r\n // }, 300); // Match the CSS transition duration\r\n }\r\n\r\n disconnectedCallback() {\r\n if (this.timeoutId) {\r\n clearTimeout(this.timeoutId);\r\n }\r\n }\r\n\r\n private getToastStyles() {\r\n const baseStyles =\r\n \"fixed bottom-4 left-1/2 transform -translate-x-1/2 z-50 px-4 py-3 rounded-lg shadow-lg transition-all duration-300 ease-in-out\";\r\n\r\n const typeStyles = {\r\n success:\r\n \"bg-success/90 text-success-foreground border border-success/20\",\r\n info: \"bg-info/90 text-info-foreground border border-info/20\",\r\n warning:\r\n \"bg-warning/90 text-warning-foreground border border-warning/20\",\r\n error: \"bg-error/90 text-error-foreground border border-error/20\",\r\n };\r\n\r\n const animationStyles = this.isExiting\r\n ? \"opacity-0 translate-y-2 scale-95\"\r\n : \"opacity-100 translate-y-0 scale-100\";\r\n\r\n return `${baseStyles} ${typeStyles[this.type]} ${animationStyles}`;\r\n }\r\n\r\n render() {\r\n if (!this.isVisible) {\r\n return null;\r\n }\r\n\r\n return (\r\n <div class={this.getToastStyles()}>\r\n <div class=\"flex items-center gap-2\">\r\n <span class=\"text-sm font-medium\">{this.message}</span>\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n"],"version":3}
|