blue-chestnut-solar-expert 0.0.67 → 0.0.68
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/stencil-library/assets/tutorial4.mp4 +0 -0
- package/dist/{collection/config.js → stencil-library/config-CWfV1nKn.js} +10 -4
- package/dist/stencil-library/config-CWfV1nKn.js.map +1 -0
- package/dist/stencil-library/constants-hboFofU4.js +1522 -0
- package/dist/stencil-library/constants-hboFofU4.js.map +1 -0
- package/dist/stencil-library/decoder-DNOvLSaS.js +39 -0
- package/dist/stencil-library/decoder-DNOvLSaS.js.map +1 -0
- package/dist/stencil-library/deflate-0Vdd6-55.js +21 -0
- package/dist/{esm/deflate-DHgPf9CO.js.map → stencil-library/deflate-0Vdd6-55.js.map} +1 -1
- package/dist/stencil-library/eraser-icon.entry.esm.js.map +1 -0
- package/dist/{components/p-CL74Q4VR.js → stencil-library/eraser-icon.entry.js} +9 -27
- package/dist/stencil-library/eraser-icon.entry.js.map +1 -0
- package/dist/stencil-library/house-icon.entry.esm.js.map +1 -0
- package/dist/{components/p-D8w3bTPO.js → stencil-library/house-icon.entry.js} +9 -27
- package/dist/stencil-library/house-icon.entry.js.map +1 -0
- package/dist/{components/loading-widget.js → stencil-library/icon-selector.entry.esm.js.map} +1 -38
- package/dist/stencil-library/icon-selector.entry.js +47 -0
- package/dist/stencil-library/icon-selector.entry.js.map +1 -0
- package/dist/stencil-library/index-CChkgM3J.js +414 -0
- package/dist/stencil-library/index-CChkgM3J.js.map +1 -0
- package/dist/stencil-library/index-ICfDNUMe.js +4172 -0
- package/dist/stencil-library/index-ICfDNUMe.js.map +1 -0
- package/dist/stencil-library/index.esm.js +13 -1
- package/dist/stencil-library/index.esm.js.map +1 -1
- package/dist/{esm/jpeg-CJLm1GkA.js → stencil-library/jpeg-Dd5nnHR5.js} +11 -3
- package/dist/stencil-library/jpeg-Dd5nnHR5.js.map +1 -0
- package/dist/{components/p-BcVa4_YP.js → stencil-library/lerc-7W4E8EBs.js} +27 -1981
- package/dist/stencil-library/lerc-7W4E8EBs.js.map +1 -0
- package/dist/{esm → stencil-library}/loading-widget.entry.js +3 -3
- package/dist/{components/p-P28NBglk.js.map → stencil-library/loading-widget.entry.js.map} +1 -1
- package/dist/{esm/lzw-DaOzWJUD.js → stencil-library/lzw--P4c0ZHH.js} +10 -4
- package/dist/stencil-library/lzw--P4c0ZHH.js.map +1 -0
- package/dist/stencil-library/map-draw-Cx9WZoKH.js +25567 -0
- package/dist/stencil-library/map-draw-Cx9WZoKH.js.map +1 -0
- package/dist/stencil-library/map-draw.entry.esm.js.map +1 -0
- package/dist/stencil-library/map-draw.entry.js +12 -0
- package/dist/stencil-library/map-draw.entry.js.map +1 -0
- package/dist/stencil-library/map-selector.entry.esm.js.map +1 -0
- package/dist/{components/p-C5QieOat.js → stencil-library/map-selector.entry.js} +164 -96
- package/dist/stencil-library/map-selector.entry.js.map +1 -0
- package/dist/{components/loading-widget.js.map → stencil-library/marker-icon.entry.esm.js.map} +1 -1
- package/dist/{components/p-Umz6nJIv.js → stencil-library/marker-icon.entry.js} +9 -27
- package/dist/stencil-library/marker-icon.entry.js.map +1 -0
- package/dist/stencil-library/move-icon.entry.esm.js.map +1 -0
- package/dist/{components/p-FdEV2qPo.js → stencil-library/move-icon.entry.js} +9 -27
- package/dist/stencil-library/move-icon.entry.js.map +1 -0
- package/dist/{components/p-DTXeHbuh.js.map → stencil-library/octagon-minus-icon.entry.esm.js.map} +1 -1
- package/dist/{components/p-BJLO76Yi.js → stencil-library/octagon-minus-icon.entry.js} +9 -27
- package/dist/stencil-library/octagon-minus-icon.entry.js.map +1 -0
- package/dist/{components/p-ByX6QP-E.js → stencil-library/packbits-X3R_utTs.js} +9 -3
- package/dist/stencil-library/packbits-X3R_utTs.js.map +1 -0
- package/dist/stencil-library/pako.esm-CPorU236.js +6881 -0
- package/dist/{esm/pako.esm-B5WTRCh8.js.map → stencil-library/pako.esm-CPorU236.js.map} +1 -1
- package/dist/{components/p-B4X-RCW0.js.map → stencil-library/polygon-buttons.entry.esm.js.map} +1 -1
- package/dist/{cjs/loading-widget.cjs.entry.js → stencil-library/polygon-buttons.entry.js} +16 -10
- package/dist/stencil-library/polygon-buttons.entry.js.map +1 -0
- package/dist/{cjs/loading-widget.cjs.entry.js.map → stencil-library/polygon-information.entry.esm.js.map} +1 -1
- package/dist/{components/p-BFJHTJPM.js → stencil-library/polygon-information.entry.js} +13 -70
- package/dist/stencil-library/polygon-information.entry.js.map +1 -0
- package/dist/stencil-library/raw-BxukYehy.js +20 -0
- package/dist/stencil-library/raw-BxukYehy.js.map +1 -0
- package/dist/stencil-library/search-icon.entry.esm.js.map +1 -0
- package/dist/{components/p-DBwr8xSB.js → stencil-library/search-icon.entry.js} +9 -27
- package/dist/stencil-library/{p-ab0f2031.entry.js → search-icon.entry.js.map} +1 -2
- package/dist/stencil-library/settings-icon.entry.esm.js.map +1 -0
- package/dist/{components/p-DTXeHbuh.js → stencil-library/settings-icon.entry.js} +9 -27
- package/dist/stencil-library/settings-icon.entry.js.map +1 -0
- package/dist/stencil-library/settings-modal.entry.esm.js.map +1 -0
- package/dist/{components/p-B4X-RCW0.js → stencil-library/settings-modal.entry.js} +20 -38
- package/dist/stencil-library/settings-modal.entry.js.map +1 -0
- package/dist/stencil-library/solar-expert.entry.esm.js.map +1 -0
- package/dist/{components/solar-expert.js → stencil-library/solar-expert.entry.js} +14 -150
- package/dist/{components/p-i1uLweD0.js.map → stencil-library/solar-expert.entry.js.map} +1 -1
- package/dist/stencil-library/solar-system-form.entry.esm.js.map +1 -0
- package/dist/stencil-library/solar-system-form.entry.js +553 -0
- package/dist/stencil-library/solar-system-form.entry.js.map +1 -0
- package/dist/stencil-library/stencil-library.esm.js +52 -1
- package/dist/stencil-library/stencil-library.esm.js.map +1 -1
- package/dist/{components/p-eDwaXClX.js → stencil-library/store-CcqrFuBK.js} +24 -3
- package/dist/stencil-library/store-CcqrFuBK.js.map +1 -0
- package/dist/stencil-library/toast-notification.entry.esm.js.map +1 -0
- package/dist/{components/p-P28NBglk.js → stencil-library/toast-notification.entry.js} +9 -30
- package/dist/stencil-library/toast-notification.entry.js.map +1 -0
- package/dist/stencil-library/tool-box.entry.esm.js.map +1 -0
- package/dist/{components/p-i1uLweD0.js → stencil-library/tool-box.entry.js} +27 -35
- package/dist/stencil-library/tool-box.entry.js.map +1 -0
- package/dist/{collection/utils/render/tools.js → stencil-library/tools-BNYKV5H5.js} +14 -8
- package/dist/stencil-library/tools-BNYKV5H5.js.map +1 -0
- package/dist/stencil-library/tutorial-component.entry.esm.js.map +1 -0
- package/dist/{components/p-Dzl6kfPI.js → stencil-library/tutorial-component.entry.js} +42 -35
- package/dist/stencil-library/tutorial-component.entry.js.map +1 -0
- package/dist/stencil-library/undo-icon.entry.esm.js.map +1 -0
- package/dist/{components/p-waOPoUcA.js → stencil-library/undo-icon.entry.js} +9 -27
- package/dist/stencil-library/undo-icon.entry.js.map +1 -0
- package/dist/{collection/utils/utils.js → stencil-library/utils-BCUZxI9u.js} +9 -3
- package/dist/stencil-library/utils-BCUZxI9u.js.map +1 -0
- package/dist/{esm/webimage-BiHardhv.js → stencil-library/webimage-CBrfoxHM.js} +9 -3
- package/dist/{esm/webimage-BiHardhv.js.map → stencil-library/webimage-CBrfoxHM.js.map} +1 -1
- package/dist/types/components/map-draw/map-draw.d.ts +5 -0
- package/dist/types/components/map-draw/tutorial-component.d.ts +7 -0
- package/dist/types/components.d.ts +4 -0
- package/dist/types/types/lang.d.ts +7 -0
- package/package.json +1 -1
- package/dist/cjs/app-globals-I24yU8do.js +0 -10
- package/dist/cjs/app-globals-I24yU8do.js.map +0 -1
- package/dist/cjs/basedecoder-CQuzfSgz.js +0 -116
- package/dist/cjs/basedecoder-CQuzfSgz.js.map +0 -1
- package/dist/cjs/deflate-AzGzQSW2.js +0 -17
- package/dist/cjs/deflate-AzGzQSW2.js.map +0 -1
- package/dist/cjs/eraser-icon_19.cjs.entry.js +0 -31
- package/dist/cjs/eraser-icon_19.cjs.entry.js.map +0 -1
- package/dist/cjs/index-HgRXF6kp.js +0 -1470
- package/dist/cjs/index-HgRXF6kp.js.map +0 -1
- package/dist/cjs/index.cjs.js +0 -7
- package/dist/cjs/index.cjs.js.map +0 -1
- package/dist/cjs/jpeg-Bx3bTm32.js +0 -904
- package/dist/cjs/jpeg-Bx3bTm32.js.map +0 -1
- package/dist/cjs/lerc-v64rYVDy.js +0 -4427
- package/dist/cjs/lerc-v64rYVDy.js.map +0 -1
- package/dist/cjs/loader.cjs.js +0 -18
- package/dist/cjs/loader.cjs.js.map +0 -1
- package/dist/cjs/loading-widget.entry.cjs.js.map +0 -1
- package/dist/cjs/lzw-BmFug486.js +0 -140
- package/dist/cjs/lzw-BmFug486.js.map +0 -1
- package/dist/cjs/packbits-CYx9fB0v.js +0 -35
- package/dist/cjs/packbits-CYx9fB0v.js.map +0 -1
- package/dist/cjs/pako.esm-0mKI6Jik.js +0 -3243
- package/dist/cjs/pako.esm-0mKI6Jik.js.map +0 -1
- package/dist/cjs/raw-DC82yoyr.js +0 -16
- package/dist/cjs/raw-DC82yoyr.js.map +0 -1
- package/dist/cjs/stencil-library.cjs.js +0 -30
- package/dist/cjs/stencil-library.cjs.js.map +0 -1
- package/dist/cjs/webimage-Dc0t2xAB.js +0 -49
- package/dist/cjs/webimage-Dc0t2xAB.js.map +0 -1
- package/dist/collection/collection-manifest.json +0 -31
- package/dist/collection/components/icons/eraser.js +0 -64
- package/dist/collection/components/icons/eraser.js.map +0 -1
- package/dist/collection/components/icons/house.js +0 -64
- package/dist/collection/components/icons/house.js.map +0 -1
- package/dist/collection/components/icons/icon.js +0 -108
- package/dist/collection/components/icons/icon.js.map +0 -1
- package/dist/collection/components/icons/marker.js +0 -64
- package/dist/collection/components/icons/marker.js.map +0 -1
- package/dist/collection/components/icons/move.js +0 -64
- package/dist/collection/components/icons/move.js.map +0 -1
- package/dist/collection/components/icons/octagonMinus.js +0 -64
- package/dist/collection/components/icons/octagonMinus.js.map +0 -1
- package/dist/collection/components/icons/search.js +0 -64
- package/dist/collection/components/icons/search.js.map +0 -1
- package/dist/collection/components/icons/settings.js +0 -64
- package/dist/collection/components/icons/settings.js.map +0 -1
- package/dist/collection/components/icons/undo.js +0 -64
- package/dist/collection/components/icons/undo.js.map +0 -1
- package/dist/collection/components/map-draw/map-draw.js +0 -795
- package/dist/collection/components/map-draw/map-draw.js.map +0 -1
- package/dist/collection/components/map-draw/map-selector.js +0 -246
- package/dist/collection/components/map-draw/map-selector.js.map +0 -1
- package/dist/collection/components/map-draw/polygon-buttons.js +0 -86
- package/dist/collection/components/map-draw/polygon-buttons.js.map +0 -1
- package/dist/collection/components/map-draw/polygon-information.js +0 -211
- package/dist/collection/components/map-draw/polygon-information.js.map +0 -1
- package/dist/collection/components/map-draw/tool-box.js +0 -108
- package/dist/collection/components/map-draw/tool-box.js.map +0 -1
- package/dist/collection/components/map-draw/tutorial-component.js +0 -151
- package/dist/collection/components/map-draw/tutorial-component.js.map +0 -1
- package/dist/collection/components/settings/settings.js +0 -127
- package/dist/collection/components/settings/settings.js.map +0 -1
- package/dist/collection/components/solar-expert/solar-expert.js +0 -241
- package/dist/collection/components/solar-expert/solar-expert.js.map +0 -1
- package/dist/collection/components/solar-system-form/solar-system-form.js +0 -596
- package/dist/collection/components/solar-system-form/solar-system-form.js.map +0 -1
- package/dist/collection/components/widgets/loading-widget.js +0 -18
- package/dist/collection/components/widgets/loading-widget.js.map +0 -1
- package/dist/collection/components/widgets/toast-notification.js +0 -133
- package/dist/collection/components/widgets/toast-notification.js.map +0 -1
- package/dist/collection/config.js.map +0 -1
- package/dist/collection/constants.js +0 -90
- package/dist/collection/constants.js.map +0 -1
- package/dist/collection/index.js +0 -2
- package/dist/collection/index.js.map +0 -1
- package/dist/collection/output.css +0 -1126
- package/dist/collection/store.js +0 -43
- package/dist/collection/store.js.map +0 -1
- package/dist/collection/types/lang.js +0 -2
- package/dist/collection/types/lang.js.map +0 -1
- package/dist/collection/types/shapes.js +0 -2
- package/dist/collection/types/shapes.js.map +0 -1
- package/dist/collection/utils/api.js +0 -93
- package/dist/collection/utils/api.js.map +0 -1
- package/dist/collection/utils/images.js +0 -2
- package/dist/collection/utils/images.js.map +0 -1
- package/dist/collection/utils/lang/english.js +0 -157
- package/dist/collection/utils/lang/english.js.map +0 -1
- package/dist/collection/utils/lang/general.js +0 -30
- package/dist/collection/utils/lang/general.js.map +0 -1
- package/dist/collection/utils/lang/german.js +0 -157
- package/dist/collection/utils/lang/german.js.map +0 -1
- package/dist/collection/utils/lang/spanish.js +0 -157
- package/dist/collection/utils/lang/spanish.js.map +0 -1
- package/dist/collection/utils/render/tools.js.map +0 -1
- package/dist/collection/utils/solar.js +0 -136
- package/dist/collection/utils/solar.js.map +0 -1
- package/dist/collection/utils/theme.js +0 -97
- package/dist/collection/utils/theme.js.map +0 -1
- package/dist/collection/utils/utils.js.map +0 -1
- package/dist/components/eraser-icon.js +0 -11
- package/dist/components/eraser-icon.js.map +0 -1
- package/dist/components/house-icon.js +0 -11
- package/dist/components/house-icon.js.map +0 -1
- package/dist/components/icon-selector.js +0 -11
- package/dist/components/icon-selector.js.map +0 -1
- package/dist/components/index.js +0 -1269
- package/dist/components/index.js.map +0 -1
- package/dist/components/map-draw.js +0 -11
- package/dist/components/map-draw.js.map +0 -1
- package/dist/components/map-selector.js +0 -11
- package/dist/components/map-selector.js.map +0 -1
- package/dist/components/marker-icon.js +0 -11
- package/dist/components/marker-icon.js.map +0 -1
- package/dist/components/move-icon.js +0 -11
- package/dist/components/move-icon.js.map +0 -1
- package/dist/components/octagon-minus-icon.js +0 -11
- package/dist/components/octagon-minus-icon.js.map +0 -1
- package/dist/components/p-B54Ul0nf.js +0 -15
- package/dist/components/p-B54Ul0nf.js.map +0 -1
- package/dist/components/p-B5WTRCh8.js +0 -3241
- package/dist/components/p-B5WTRCh8.js.map +0 -1
- package/dist/components/p-BFJHTJPM.js.map +0 -1
- package/dist/components/p-BGoSj_DR.js +0 -902
- package/dist/components/p-BGoSj_DR.js.map +0 -1
- package/dist/components/p-BJLO76Yi.js.map +0 -1
- package/dist/components/p-BcVa4_YP.js.map +0 -1
- package/dist/components/p-Bopprtc7.js +0 -623
- package/dist/components/p-Bopprtc7.js.map +0 -1
- package/dist/components/p-ByX6QP-E.js.map +0 -1
- package/dist/components/p-C5QieOat.js.map +0 -1
- package/dist/components/p-CL74Q4VR.js.map +0 -1
- package/dist/components/p-Cgchl6bA.js +0 -47
- package/dist/components/p-Cgchl6bA.js.map +0 -1
- package/dist/components/p-D8w3bTPO.js.map +0 -1
- package/dist/components/p-DBwr8xSB.js.map +0 -1
- package/dist/components/p-DWirjxpO.js +0 -163
- package/dist/components/p-DWirjxpO.js.map +0 -1
- package/dist/components/p-DlNHVTGB.js +0 -15949
- package/dist/components/p-DlNHVTGB.js.map +0 -1
- package/dist/components/p-Dzl6kfPI.js.map +0 -1
- package/dist/components/p-FdEV2qPo.js.map +0 -1
- package/dist/components/p-PkMjF2if.js +0 -1985
- package/dist/components/p-PkMjF2if.js.map +0 -1
- package/dist/components/p-Umz6nJIv.js.map +0 -1
- package/dist/components/p-WmcSqXD8.js +0 -14
- package/dist/components/p-WmcSqXD8.js.map +0 -1
- package/dist/components/p-eDwaXClX.js.map +0 -1
- package/dist/components/p-j-vOrhhh.js +0 -114
- package/dist/components/p-j-vOrhhh.js.map +0 -1
- package/dist/components/p-q8auDIJ2.js +0 -138
- package/dist/components/p-q8auDIJ2.js.map +0 -1
- package/dist/components/p-waOPoUcA.js.map +0 -1
- package/dist/components/polygon-buttons.js +0 -11
- package/dist/components/polygon-buttons.js.map +0 -1
- package/dist/components/polygon-information.js +0 -11
- package/dist/components/polygon-information.js.map +0 -1
- package/dist/components/search-icon.js +0 -11
- package/dist/components/search-icon.js.map +0 -1
- package/dist/components/settings-icon.js +0 -11
- package/dist/components/settings-icon.js.map +0 -1
- package/dist/components/settings-modal.js +0 -11
- package/dist/components/settings-modal.js.map +0 -1
- package/dist/components/solar-expert.js.map +0 -1
- package/dist/components/solar-system-form.js +0 -11
- package/dist/components/solar-system-form.js.map +0 -1
- package/dist/components/toast-notification.js +0 -11
- package/dist/components/toast-notification.js.map +0 -1
- package/dist/components/tool-box.js +0 -11
- package/dist/components/tool-box.js.map +0 -1
- package/dist/components/tutorial-component.js +0 -11
- package/dist/components/tutorial-component.js.map +0 -1
- package/dist/components/undo-icon.js +0 -11
- package/dist/components/undo-icon.js.map +0 -1
- package/dist/esm/basedecoder-j-vOrhhh.js +0 -114
- package/dist/esm/basedecoder-j-vOrhhh.js.map +0 -1
- package/dist/esm/deflate-DHgPf9CO.js +0 -15
- package/dist/esm/eraser-icon_19.entry.js +0 -7
- package/dist/esm/eraser-icon_19.entry.js.map +0 -1
- package/dist/esm/index-C2JRBB5c.js +0 -1458
- package/dist/esm/index-C2JRBB5c.js.map +0 -1
- package/dist/esm/index.js +0 -5
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/jpeg-CJLm1GkA.js.map +0 -1
- package/dist/esm/lerc-CAiDQjTu.js +0 -4424
- package/dist/esm/lerc-CAiDQjTu.js.map +0 -1
- package/dist/esm/loader.js +0 -16
- package/dist/esm/loader.js.map +0 -1
- package/dist/esm/loading-widget.entry.js.map +0 -1
- package/dist/esm/lzw-DaOzWJUD.js.map +0 -1
- package/dist/esm/packbits-CZPyx9kx.js +0 -33
- package/dist/esm/packbits-CZPyx9kx.js.map +0 -1
- package/dist/esm/pako.esm-B5WTRCh8.js +0 -3241
- package/dist/esm/raw-pqeeWc2_.js +0 -14
- package/dist/esm/raw-pqeeWc2_.js.map +0 -1
- package/dist/esm/stencil-library.js +0 -26
- package/dist/esm/stencil-library.js.map +0 -1
- package/dist/index.cjs.js +0 -1
- package/dist/index.js +0 -1
- package/dist/stencil-library/p-B54Ul0nf.js +0 -2
- package/dist/stencil-library/p-B54Ul0nf.js.map +0 -1
- package/dist/stencil-library/p-B5WTRCh8.js +0 -2
- package/dist/stencil-library/p-B5WTRCh8.js.map +0 -1
- package/dist/stencil-library/p-BBtmpSUK.js +0 -2
- package/dist/stencil-library/p-BBtmpSUK.js.map +0 -1
- package/dist/stencil-library/p-BGoSj_DR.js +0 -2
- package/dist/stencil-library/p-BGoSj_DR.js.map +0 -1
- package/dist/stencil-library/p-ByX6QP-E.js +0 -2
- package/dist/stencil-library/p-ByX6QP-E.js.map +0 -1
- package/dist/stencil-library/p-C2JRBB5c.js +0 -3
- package/dist/stencil-library/p-C2JRBB5c.js.map +0 -1
- package/dist/stencil-library/p-CX8V3eiN.js +0 -2
- package/dist/stencil-library/p-CX8V3eiN.js.map +0 -1
- package/dist/stencil-library/p-Cgchl6bA.js +0 -2
- package/dist/stencil-library/p-Cgchl6bA.js.map +0 -1
- package/dist/stencil-library/p-WmcSqXD8.js +0 -2
- package/dist/stencil-library/p-WmcSqXD8.js.map +0 -1
- package/dist/stencil-library/p-ab0f2031.entry.js.map +0 -1
- package/dist/stencil-library/p-cAuhy_jT.js +0 -10
- package/dist/stencil-library/p-cAuhy_jT.js.map +0 -1
- package/dist/stencil-library/p-e7b94dbb.entry.js +0 -2
- package/dist/stencil-library/p-e7b94dbb.entry.js.map +0 -1
- package/dist/stencil-library/p-j-vOrhhh.js +0 -2
- package/dist/stencil-library/p-j-vOrhhh.js.map +0 -1
- package/dist/stencil-library/p-q8auDIJ2.js +0 -2
- package/dist/stencil-library/p-q8auDIJ2.js.map +0 -1
- /package/dist/{esm → stencil-library}/app-globals-CX8V3eiN.js +0 -0
- /package/dist/{esm → stencil-library}/app-globals-CX8V3eiN.js.map +0 -0
|
@@ -1,623 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
if (typeof global === "undefined") { var global = globalThis || window || self; }
|
|
3
|
-
import { p as proxyCustomElement, H, h } from './index.js';
|
|
4
|
-
import { s as state, g as getLanguageStrings } from './p-eDwaXClX.js';
|
|
5
|
-
import { d as defineCustomElement$1 } from './p-DBwr8xSB.js';
|
|
6
|
-
|
|
7
|
-
/******************************************************************************
|
|
8
|
-
Copyright (c) Microsoft Corporation.
|
|
9
|
-
|
|
10
|
-
Permission to use, copy, modify, and/or distribute this software for any
|
|
11
|
-
purpose with or without fee is hereby granted.
|
|
12
|
-
|
|
13
|
-
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
14
|
-
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
15
|
-
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
16
|
-
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
17
|
-
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
18
|
-
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
19
|
-
PERFORMANCE OF THIS SOFTWARE.
|
|
20
|
-
***************************************************************************** */
|
|
21
|
-
/* global Reflect, Promise, SuppressedError, Symbol */
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
function __awaiter(thisArg, _arguments, P, generator) {
|
|
25
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
26
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
27
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
28
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
29
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
30
|
-
step((generator = generator.apply(thisArg, [])).next());
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
35
|
-
var e = new Error(message);
|
|
36
|
-
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
function getDefaultExportFromCjs (x) {
|
|
40
|
-
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
// do not edit .js files directly - edit src/index.jst
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
var fastDeepEqual = function equal(a, b) {
|
|
48
|
-
if (a === b) return true;
|
|
49
|
-
|
|
50
|
-
if (a && b && typeof a == 'object' && typeof b == 'object') {
|
|
51
|
-
if (a.constructor !== b.constructor) return false;
|
|
52
|
-
|
|
53
|
-
var length, i, keys;
|
|
54
|
-
if (Array.isArray(a)) {
|
|
55
|
-
length = a.length;
|
|
56
|
-
if (length != b.length) return false;
|
|
57
|
-
for (i = length; i-- !== 0;)
|
|
58
|
-
if (!equal(a[i], b[i])) return false;
|
|
59
|
-
return true;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;
|
|
65
|
-
if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();
|
|
66
|
-
if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();
|
|
67
|
-
|
|
68
|
-
keys = Object.keys(a);
|
|
69
|
-
length = keys.length;
|
|
70
|
-
if (length !== Object.keys(b).length) return false;
|
|
71
|
-
|
|
72
|
-
for (i = length; i-- !== 0;)
|
|
73
|
-
if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;
|
|
74
|
-
|
|
75
|
-
for (i = length; i-- !== 0;) {
|
|
76
|
-
var key = keys[i];
|
|
77
|
-
|
|
78
|
-
if (!equal(a[key], b[key])) return false;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
return true;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
// true if both NaN, false otherwise
|
|
85
|
-
return a!==a && b!==b;
|
|
86
|
-
};
|
|
87
|
-
|
|
88
|
-
var isEqual = /*@__PURE__*/getDefaultExportFromCjs(fastDeepEqual);
|
|
89
|
-
|
|
90
|
-
/**
|
|
91
|
-
* Copyright 2019 Google LLC. All Rights Reserved.
|
|
92
|
-
*
|
|
93
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
94
|
-
* you may not use this file except in compliance with the License.
|
|
95
|
-
* You may obtain a copy of the License at.
|
|
96
|
-
*
|
|
97
|
-
* Http://www.apache.org/licenses/LICENSE-2.0.
|
|
98
|
-
*
|
|
99
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
100
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
101
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
102
|
-
* See the License for the specific language governing permissions and
|
|
103
|
-
* limitations under the License.
|
|
104
|
-
*/
|
|
105
|
-
const DEFAULT_ID = "__googleMapsScriptId";
|
|
106
|
-
/**
|
|
107
|
-
* The status of the [[Loader]].
|
|
108
|
-
*/
|
|
109
|
-
var LoaderStatus;
|
|
110
|
-
(function (LoaderStatus) {
|
|
111
|
-
LoaderStatus[LoaderStatus["INITIALIZED"] = 0] = "INITIALIZED";
|
|
112
|
-
LoaderStatus[LoaderStatus["LOADING"] = 1] = "LOADING";
|
|
113
|
-
LoaderStatus[LoaderStatus["SUCCESS"] = 2] = "SUCCESS";
|
|
114
|
-
LoaderStatus[LoaderStatus["FAILURE"] = 3] = "FAILURE";
|
|
115
|
-
})(LoaderStatus || (LoaderStatus = {}));
|
|
116
|
-
/**
|
|
117
|
-
* [[Loader]] makes it easier to add Google Maps JavaScript API to your application
|
|
118
|
-
* dynamically using
|
|
119
|
-
* [Promises](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise).
|
|
120
|
-
* It works by dynamically creating and appending a script node to the the
|
|
121
|
-
* document head and wrapping the callback function so as to return a promise.
|
|
122
|
-
*
|
|
123
|
-
* ```
|
|
124
|
-
* const loader = new Loader({
|
|
125
|
-
* apiKey: "",
|
|
126
|
-
* version: "weekly",
|
|
127
|
-
* libraries: ["places"]
|
|
128
|
-
* });
|
|
129
|
-
*
|
|
130
|
-
* loader.load().then((google) => {
|
|
131
|
-
* const map = new google.maps.Map(...)
|
|
132
|
-
* })
|
|
133
|
-
* ```
|
|
134
|
-
*/
|
|
135
|
-
class Loader {
|
|
136
|
-
/**
|
|
137
|
-
* Creates an instance of Loader using [[LoaderOptions]]. No defaults are set
|
|
138
|
-
* using this library, instead the defaults are set by the Google Maps
|
|
139
|
-
* JavaScript API server.
|
|
140
|
-
*
|
|
141
|
-
* ```
|
|
142
|
-
* const loader = Loader({apiKey, version: 'weekly', libraries: ['places']});
|
|
143
|
-
* ```
|
|
144
|
-
*/
|
|
145
|
-
constructor({ apiKey, authReferrerPolicy, channel, client, id = DEFAULT_ID, language, libraries = [], mapIds, nonce, region, retries = 3, url = "https://maps.googleapis.com/maps/api/js", version, }) {
|
|
146
|
-
this.callbacks = [];
|
|
147
|
-
this.done = false;
|
|
148
|
-
this.loading = false;
|
|
149
|
-
this.errors = [];
|
|
150
|
-
this.apiKey = apiKey;
|
|
151
|
-
this.authReferrerPolicy = authReferrerPolicy;
|
|
152
|
-
this.channel = channel;
|
|
153
|
-
this.client = client;
|
|
154
|
-
this.id = id || DEFAULT_ID; // Do not allow empty string
|
|
155
|
-
this.language = language;
|
|
156
|
-
this.libraries = libraries;
|
|
157
|
-
this.mapIds = mapIds;
|
|
158
|
-
this.nonce = nonce;
|
|
159
|
-
this.region = region;
|
|
160
|
-
this.retries = retries;
|
|
161
|
-
this.url = url;
|
|
162
|
-
this.version = version;
|
|
163
|
-
if (Loader.instance) {
|
|
164
|
-
if (!isEqual(this.options, Loader.instance.options)) {
|
|
165
|
-
throw new Error(`Loader must not be called again with different options. ${JSON.stringify(this.options)} !== ${JSON.stringify(Loader.instance.options)}`);
|
|
166
|
-
}
|
|
167
|
-
return Loader.instance;
|
|
168
|
-
}
|
|
169
|
-
Loader.instance = this;
|
|
170
|
-
}
|
|
171
|
-
get options() {
|
|
172
|
-
return {
|
|
173
|
-
version: this.version,
|
|
174
|
-
apiKey: this.apiKey,
|
|
175
|
-
channel: this.channel,
|
|
176
|
-
client: this.client,
|
|
177
|
-
id: this.id,
|
|
178
|
-
libraries: this.libraries,
|
|
179
|
-
language: this.language,
|
|
180
|
-
region: this.region,
|
|
181
|
-
mapIds: this.mapIds,
|
|
182
|
-
nonce: this.nonce,
|
|
183
|
-
url: this.url,
|
|
184
|
-
authReferrerPolicy: this.authReferrerPolicy,
|
|
185
|
-
};
|
|
186
|
-
}
|
|
187
|
-
get status() {
|
|
188
|
-
if (this.errors.length) {
|
|
189
|
-
return LoaderStatus.FAILURE;
|
|
190
|
-
}
|
|
191
|
-
if (this.done) {
|
|
192
|
-
return LoaderStatus.SUCCESS;
|
|
193
|
-
}
|
|
194
|
-
if (this.loading) {
|
|
195
|
-
return LoaderStatus.LOADING;
|
|
196
|
-
}
|
|
197
|
-
return LoaderStatus.INITIALIZED;
|
|
198
|
-
}
|
|
199
|
-
get failed() {
|
|
200
|
-
return this.done && !this.loading && this.errors.length >= this.retries + 1;
|
|
201
|
-
}
|
|
202
|
-
/**
|
|
203
|
-
* CreateUrl returns the Google Maps JavaScript API script url given the [[LoaderOptions]].
|
|
204
|
-
*
|
|
205
|
-
* @ignore
|
|
206
|
-
* @deprecated
|
|
207
|
-
*/
|
|
208
|
-
createUrl() {
|
|
209
|
-
let url = this.url;
|
|
210
|
-
url += `?callback=__googleMapsCallback&loading=async`;
|
|
211
|
-
if (this.apiKey) {
|
|
212
|
-
url += `&key=${this.apiKey}`;
|
|
213
|
-
}
|
|
214
|
-
if (this.channel) {
|
|
215
|
-
url += `&channel=${this.channel}`;
|
|
216
|
-
}
|
|
217
|
-
if (this.client) {
|
|
218
|
-
url += `&client=${this.client}`;
|
|
219
|
-
}
|
|
220
|
-
if (this.libraries.length > 0) {
|
|
221
|
-
url += `&libraries=${this.libraries.join(",")}`;
|
|
222
|
-
}
|
|
223
|
-
if (this.language) {
|
|
224
|
-
url += `&language=${this.language}`;
|
|
225
|
-
}
|
|
226
|
-
if (this.region) {
|
|
227
|
-
url += `®ion=${this.region}`;
|
|
228
|
-
}
|
|
229
|
-
if (this.version) {
|
|
230
|
-
url += `&v=${this.version}`;
|
|
231
|
-
}
|
|
232
|
-
if (this.mapIds) {
|
|
233
|
-
url += `&map_ids=${this.mapIds.join(",")}`;
|
|
234
|
-
}
|
|
235
|
-
if (this.authReferrerPolicy) {
|
|
236
|
-
url += `&auth_referrer_policy=${this.authReferrerPolicy}`;
|
|
237
|
-
}
|
|
238
|
-
return url;
|
|
239
|
-
}
|
|
240
|
-
deleteScript() {
|
|
241
|
-
const script = document.getElementById(this.id);
|
|
242
|
-
if (script) {
|
|
243
|
-
script.remove();
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
/**
|
|
247
|
-
* Load the Google Maps JavaScript API script and return a Promise.
|
|
248
|
-
* @deprecated, use importLibrary() instead.
|
|
249
|
-
*/
|
|
250
|
-
load() {
|
|
251
|
-
return this.loadPromise();
|
|
252
|
-
}
|
|
253
|
-
/**
|
|
254
|
-
* Load the Google Maps JavaScript API script and return a Promise.
|
|
255
|
-
*
|
|
256
|
-
* @ignore
|
|
257
|
-
* @deprecated, use importLibrary() instead.
|
|
258
|
-
*/
|
|
259
|
-
loadPromise() {
|
|
260
|
-
return new Promise((resolve, reject) => {
|
|
261
|
-
this.loadCallback((err) => {
|
|
262
|
-
if (!err) {
|
|
263
|
-
resolve(window.google);
|
|
264
|
-
}
|
|
265
|
-
else {
|
|
266
|
-
reject(err.error);
|
|
267
|
-
}
|
|
268
|
-
});
|
|
269
|
-
});
|
|
270
|
-
}
|
|
271
|
-
importLibrary(name) {
|
|
272
|
-
this.execute();
|
|
273
|
-
return google.maps.importLibrary(name);
|
|
274
|
-
}
|
|
275
|
-
/**
|
|
276
|
-
* Load the Google Maps JavaScript API script with a callback.
|
|
277
|
-
* @deprecated, use importLibrary() instead.
|
|
278
|
-
*/
|
|
279
|
-
loadCallback(fn) {
|
|
280
|
-
this.callbacks.push(fn);
|
|
281
|
-
this.execute();
|
|
282
|
-
}
|
|
283
|
-
/**
|
|
284
|
-
* Set the script on document.
|
|
285
|
-
*/
|
|
286
|
-
setScript() {
|
|
287
|
-
var _a, _b;
|
|
288
|
-
if (document.getElementById(this.id)) {
|
|
289
|
-
// TODO wrap onerror callback for cases where the script was loaded elsewhere
|
|
290
|
-
this.callback();
|
|
291
|
-
return;
|
|
292
|
-
}
|
|
293
|
-
const params = {
|
|
294
|
-
key: this.apiKey,
|
|
295
|
-
channel: this.channel,
|
|
296
|
-
client: this.client,
|
|
297
|
-
libraries: this.libraries.length && this.libraries,
|
|
298
|
-
v: this.version,
|
|
299
|
-
mapIds: this.mapIds,
|
|
300
|
-
language: this.language,
|
|
301
|
-
region: this.region,
|
|
302
|
-
authReferrerPolicy: this.authReferrerPolicy,
|
|
303
|
-
};
|
|
304
|
-
// keep the URL minimal:
|
|
305
|
-
Object.keys(params).forEach(
|
|
306
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
307
|
-
(key) => !params[key] && delete params[key]);
|
|
308
|
-
if (!((_b = (_a = window === null || window === void 0 ? void 0 : window.google) === null || _a === void 0 ? void 0 : _a.maps) === null || _b === void 0 ? void 0 : _b.importLibrary)) {
|
|
309
|
-
// tweaked copy of https://developers.google.com/maps/documentation/javascript/load-maps-js-api#dynamic-library-import
|
|
310
|
-
// which also sets the base url, the id, and the nonce
|
|
311
|
-
/* eslint-disable */
|
|
312
|
-
((g) => {
|
|
313
|
-
// @ts-ignore
|
|
314
|
-
let h, a, k, p = "The Google Maps JavaScript API", c = "google", l = "importLibrary", q = "__ib__", m = document, b = window;
|
|
315
|
-
// @ts-ignore
|
|
316
|
-
b = b[c] || (b[c] = {});
|
|
317
|
-
// @ts-ignore
|
|
318
|
-
const d = b.maps || (b.maps = {}), r = new Set(), e = new URLSearchParams(), u = () =>
|
|
319
|
-
// @ts-ignore
|
|
320
|
-
h || (h = new Promise((f, n) => __awaiter(this, void 0, void 0, function* () {
|
|
321
|
-
var _a;
|
|
322
|
-
yield (a = m.createElement("script"));
|
|
323
|
-
a.id = this.id;
|
|
324
|
-
e.set("libraries", [...r] + "");
|
|
325
|
-
// @ts-ignore
|
|
326
|
-
for (k in g)
|
|
327
|
-
e.set(k.replace(/[A-Z]/g, (t) => "_" + t[0].toLowerCase()), g[k]);
|
|
328
|
-
e.set("callback", c + ".maps." + q);
|
|
329
|
-
a.src = this.url + `?` + e;
|
|
330
|
-
d[q] = f;
|
|
331
|
-
a.onerror = () => (h = n(Error(p + " could not load.")));
|
|
332
|
-
// @ts-ignore
|
|
333
|
-
a.nonce = this.nonce || ((_a = m.querySelector("script[nonce]")) === null || _a === void 0 ? void 0 : _a.nonce) || "";
|
|
334
|
-
m.head.append(a);
|
|
335
|
-
})));
|
|
336
|
-
// @ts-ignore
|
|
337
|
-
d[l] ? console.warn(p + " only loads once. Ignoring:", g) : (d[l] = (f, ...n) => r.add(f) && u().then(() => d[l](f, ...n)));
|
|
338
|
-
})(params);
|
|
339
|
-
/* eslint-enable */
|
|
340
|
-
}
|
|
341
|
-
// While most libraries populate the global namespace when loaded via bootstrap params,
|
|
342
|
-
// this is not the case for "marker" when used with the inline bootstrap loader
|
|
343
|
-
// (and maybe others in the future). So ensure there is an importLibrary for each:
|
|
344
|
-
const libraryPromises = this.libraries.map((library) => this.importLibrary(library));
|
|
345
|
-
// ensure at least one library, to kick off loading...
|
|
346
|
-
if (!libraryPromises.length) {
|
|
347
|
-
libraryPromises.push(this.importLibrary("core"));
|
|
348
|
-
}
|
|
349
|
-
Promise.all(libraryPromises).then(() => this.callback(), (error) => {
|
|
350
|
-
const event = new ErrorEvent("error", { error }); // for backwards compat
|
|
351
|
-
this.loadErrorCallback(event);
|
|
352
|
-
});
|
|
353
|
-
}
|
|
354
|
-
/**
|
|
355
|
-
* Reset the loader state.
|
|
356
|
-
*/
|
|
357
|
-
reset() {
|
|
358
|
-
this.deleteScript();
|
|
359
|
-
this.done = false;
|
|
360
|
-
this.loading = false;
|
|
361
|
-
this.errors = [];
|
|
362
|
-
this.onerrorEvent = null;
|
|
363
|
-
}
|
|
364
|
-
resetIfRetryingFailed() {
|
|
365
|
-
if (this.failed) {
|
|
366
|
-
this.reset();
|
|
367
|
-
}
|
|
368
|
-
}
|
|
369
|
-
loadErrorCallback(e) {
|
|
370
|
-
this.errors.push(e);
|
|
371
|
-
if (this.errors.length <= this.retries) {
|
|
372
|
-
const delay = this.errors.length * Math.pow(2, this.errors.length);
|
|
373
|
-
console.error(`Failed to load Google Maps script, retrying in ${delay} ms.`);
|
|
374
|
-
setTimeout(() => {
|
|
375
|
-
this.deleteScript();
|
|
376
|
-
this.setScript();
|
|
377
|
-
}, delay);
|
|
378
|
-
}
|
|
379
|
-
else {
|
|
380
|
-
this.onerrorEvent = e;
|
|
381
|
-
this.callback();
|
|
382
|
-
}
|
|
383
|
-
}
|
|
384
|
-
callback() {
|
|
385
|
-
this.done = true;
|
|
386
|
-
this.loading = false;
|
|
387
|
-
this.callbacks.forEach((cb) => {
|
|
388
|
-
cb(this.onerrorEvent);
|
|
389
|
-
});
|
|
390
|
-
this.callbacks = [];
|
|
391
|
-
}
|
|
392
|
-
execute() {
|
|
393
|
-
this.resetIfRetryingFailed();
|
|
394
|
-
if (this.loading) {
|
|
395
|
-
// do nothing but wait
|
|
396
|
-
return;
|
|
397
|
-
}
|
|
398
|
-
if (this.done) {
|
|
399
|
-
this.callback();
|
|
400
|
-
}
|
|
401
|
-
else {
|
|
402
|
-
// short circuit and warn if google.maps is already loaded
|
|
403
|
-
if (window.google && window.google.maps && window.google.maps.version) {
|
|
404
|
-
console.warn("Google Maps already loaded outside @googlemaps/js-api-loader. " +
|
|
405
|
-
"This may result in undesirable behavior as options and script parameters may not match.");
|
|
406
|
-
this.callback();
|
|
407
|
-
return;
|
|
408
|
-
}
|
|
409
|
-
this.loading = true;
|
|
410
|
-
this.setScript();
|
|
411
|
-
}
|
|
412
|
-
}
|
|
413
|
-
}
|
|
414
|
-
|
|
415
|
-
const outputCss = "/*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */\n@layer properties;\n@layer theme, base, components, utilities;\n@layer theme {\n :root, :host {\n --font-sans: ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\",\n \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\",\n \"Courier New\", monospace;\n --color-red-100: oklch(93.6% 0.032 17.717);\n --color-red-300: oklch(80.8% 0.114 19.571);\n --color-red-500: oklch(63.7% 0.237 25.331);\n --color-red-700: oklch(50.5% 0.213 27.518);\n --color-black: #000;\n --color-white: #fff;\n --spacing: 0.25rem;\n --container-md: 28rem;\n --container-2xl: 42rem;\n --text-xs: 0.75rem;\n --text-xs--line-height: calc(1 / 0.75);\n --text-sm: 0.875rem;\n --text-sm--line-height: calc(1.25 / 0.875);\n --text-lg: 1.125rem;\n --text-lg--line-height: calc(1.75 / 1.125);\n --text-xl: 1.25rem;\n --text-xl--line-height: calc(1.75 / 1.25);\n --text-2xl: 1.5rem;\n --text-2xl--line-height: calc(2 / 1.5);\n --font-weight-medium: 500;\n --font-weight-semibold: 600;\n --font-weight-bold: 700;\n --radius-lg: 0.5rem;\n --radius-4xl: 2rem;\n --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);\n --animate-spin: spin 1s linear infinite;\n --default-transition-duration: 150ms;\n --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --default-font-family: var(--font-sans);\n --default-mono-font-family: var(--font-mono);\n --color-primary: hsl(41 51% 90%);\n --color-primary-foreground: hsl(0 0% 0%);\n --color-secondary: hsl(28 100% 8%);\n --color-secondary-foreground: hsl(0 0% 100%);\n --color-tertiary: hsl(28 100% 29%);\n --color-tertiary-foreground: hsl(0 0% 100%);\n --color-muted: hsl(0 0% 100%);\n --color-muted-foreground: hsl(0 0% 0%);\n --color-error: hsl(0 100% 50%);\n --color-error-foreground: hsl(0 0% 100%);\n --color-surface: hsl(0 0% 88%);\n --color-surface-hover: hsl(0 0% 82%);\n --color-surface-active: hsl(0 0% 64%);\n --color-text-muted: hsl(0 0% 45%);\n --color-text-secondary: hsl(0 0% 55%);\n --color-text-placeholder: hsl(0 0% 73%);\n --color-border: hsl(0 0% 82%);\n --color-border-light: hsl(0 0% 93%);\n --color-success: hsl(142 76% 36%);\n --color-info: hsl(221 83% 53%);\n --color-hover: hsl(0 0% 88%);\n --color-hover-dark: hsl(28 100% 8%);\n --color-overlay: rgba(0, 0, 0, 0.24);\n --color-tooltip: hsl(0 0% 13%);\n }\n}\n@layer base {\n *, ::after, ::before, ::backdrop, ::file-selector-button {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n }\n html, :host {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n tab-size: 4;\n font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");\n font-feature-settings: var(--default-font-feature-settings, normal);\n font-variation-settings: var(--default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n }\n hr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n }\n abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\n h1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n }\n a {\n color: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n }\n b, strong {\n font-weight: bolder;\n }\n code, kbd, samp, pre {\n font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);\n font-feature-settings: var(--default-mono-font-feature-settings, normal);\n font-variation-settings: var(--default-mono-font-variation-settings, normal);\n font-size: 1em;\n }\n small {\n font-size: 80%;\n }\n sub, sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n :-moz-focusring {\n outline: auto;\n }\n progress {\n vertical-align: baseline;\n }\n summary {\n display: list-item;\n }\n ol, ul, menu {\n list-style: none;\n }\n img, svg, video, canvas, audio, iframe, embed, object {\n display: block;\n vertical-align: middle;\n }\n img, video {\n max-width: 100%;\n height: auto;\n }\n button, input, select, optgroup, textarea, ::file-selector-button {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n }\n :where(select:is([multiple], [size])) optgroup {\n font-weight: bolder;\n }\n :where(select:is([multiple], [size])) optgroup option {\n padding-inline-start: 20px;\n }\n ::file-selector-button {\n margin-inline-end: 4px;\n }\n ::placeholder {\n opacity: 1;\n }\n @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {\n ::placeholder {\n color: currentcolor;\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n }\n textarea {\n resize: vertical;\n }\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n ::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n }\n ::-webkit-datetime-edit {\n display: inline-flex;\n }\n ::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n }\n ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {\n padding-block: 0;\n }\n :-moz-ui-invalid {\n box-shadow: none;\n }\n button, input:where([type=\"button\"], [type=\"reset\"], [type=\"submit\"]), ::file-selector-button {\n appearance: button;\n }\n ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {\n height: auto;\n }\n [hidden]:where(:not([hidden=\"until-found\"])) {\n display: none !important;\n }\n}\n@layer utilities {\n .pointer-events-none {\n pointer-events: none;\n }\n .absolute {\n position: absolute;\n }\n .fixed {\n position: fixed;\n }\n .relative {\n position: relative;\n }\n .inset-0 {\n inset: calc(var(--spacing) * 0);\n }\n .top-0 {\n top: calc(var(--spacing) * 0);\n }\n .bottom-4 {\n bottom: calc(var(--spacing) * 4);\n }\n .left-0 {\n left: calc(var(--spacing) * 0);\n }\n .left-1\\/2 {\n left: calc(1/2 * 100%);\n }\n .left-3 {\n left: calc(var(--spacing) * 3);\n }\n .z-10 {\n z-index: 10;\n }\n .z-20 {\n z-index: 20;\n }\n .z-50 {\n z-index: 50;\n }\n .container {\n width: 100%;\n @media (width >= 40rem) {\n max-width: 40rem;\n }\n @media (width >= 48rem) {\n max-width: 48rem;\n }\n @media (width >= 64rem) {\n max-width: 64rem;\n }\n @media (width >= 80rem) {\n max-width: 80rem;\n }\n @media (width >= 96rem) {\n max-width: 96rem;\n }\n }\n .m-auto {\n margin: auto;\n }\n .mt-1 {\n margin-top: calc(var(--spacing) * 1);\n }\n .mt-4 {\n margin-top: calc(var(--spacing) * 4);\n }\n .mt-6 {\n margin-top: calc(var(--spacing) * 6);\n }\n .mb-1 {\n margin-bottom: calc(var(--spacing) * 1);\n }\n .mb-4 {\n margin-bottom: calc(var(--spacing) * 4);\n }\n .mb-6 {\n margin-bottom: calc(var(--spacing) * 6);\n }\n .block {\n display: block;\n }\n .flex {\n display: flex;\n }\n .grid {\n display: grid;\n }\n .inline {\n display: inline;\n }\n .inline-block {\n display: inline-block;\n }\n .h-4 {\n height: calc(var(--spacing) * 4);\n }\n .h-16 {\n height: calc(var(--spacing) * 16);\n }\n .h-48 {\n height: calc(var(--spacing) * 48);\n }\n .h-64 {\n height: calc(var(--spacing) * 64);\n }\n .h-\\[400px\\] {\n height: 400px;\n }\n .h-full {\n height: 100%;\n }\n .max-h-full {\n max-height: 100%;\n }\n .w-4 {\n width: calc(var(--spacing) * 4);\n }\n .w-16 {\n width: calc(var(--spacing) * 16);\n }\n .w-20 {\n width: calc(var(--spacing) * 20);\n }\n .w-64 {\n width: calc(var(--spacing) * 64);\n }\n .w-full {\n width: 100%;\n }\n .max-w-2xl {\n max-width: var(--container-2xl);\n }\n .max-w-md {\n max-width: var(--container-md);\n }\n .flex-1 {\n flex: 1;\n }\n .-translate-x-1\\/2 {\n --tw-translate-x: calc(calc(1/2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-y-0 {\n --tw-translate-y: calc(var(--spacing) * 0);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-y-2 {\n --tw-translate-y: calc(var(--spacing) * 2);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .scale-95 {\n --tw-scale-x: 95%;\n --tw-scale-y: 95%;\n --tw-scale-z: 95%;\n scale: var(--tw-scale-x) var(--tw-scale-y);\n }\n .scale-100 {\n --tw-scale-x: 100%;\n --tw-scale-y: 100%;\n --tw-scale-z: 100%;\n scale: var(--tw-scale-x) var(--tw-scale-y);\n }\n .transform {\n transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);\n }\n .animate-spin {\n animation: var(--animate-spin);\n }\n .cursor-not-allowed {\n cursor: not-allowed;\n }\n .resize {\n resize: both;\n }\n .appearance-none {\n appearance: none;\n }\n .grid-cols-1 {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n }\n .grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n .grid-rows-2 {\n grid-template-rows: repeat(2, minmax(0, 1fr));\n }\n .flex-col {\n flex-direction: column;\n }\n .flex-row {\n flex-direction: row;\n }\n .flex-wrap {\n flex-wrap: wrap;\n }\n .items-center {\n align-items: center;\n }\n .items-start {\n align-items: flex-start;\n }\n .items-stretch {\n align-items: stretch;\n }\n .justify-between {\n justify-content: space-between;\n }\n .justify-center {\n justify-content: center;\n }\n .justify-end {\n justify-content: flex-end;\n }\n .justify-start {\n justify-content: flex-start;\n }\n .gap-0 {\n gap: calc(var(--spacing) * 0);\n }\n .gap-1 {\n gap: calc(var(--spacing) * 1);\n }\n .gap-2 {\n gap: calc(var(--spacing) * 2);\n }\n .gap-4 {\n gap: calc(var(--spacing) * 4);\n }\n .space-y-3 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-4 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-6 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .overflow-hidden {\n overflow: hidden;\n }\n .overflow-y-auto {\n overflow-y: auto;\n }\n .rounded {\n border-radius: 0.25rem;\n }\n .rounded-4xl {\n border-radius: var(--radius-4xl);\n }\n .rounded-full {\n border-radius: calc(infinity * 1px);\n }\n .rounded-lg {\n border-radius: var(--radius-lg);\n }\n .border {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n .border-2 {\n border-style: var(--tw-border-style);\n border-width: 2px;\n }\n .border-t-2 {\n border-top-style: var(--tw-border-style);\n border-top-width: 2px;\n }\n .border-b-2 {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 2px;\n }\n .border-border {\n border-color: var(--color-border);\n }\n .border-current {\n border-color: currentcolor;\n }\n .border-error\\/20 {\n border-color: color-mix(in srgb, hsl(0 100% 50%) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--color-error) 20%, transparent);\n }\n }\n .border-info\\/20 {\n border-color: color-mix(in srgb, hsl(221 83% 53%) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--color-info) 20%, transparent);\n }\n }\n .border-red-300 {\n border-color: var(--color-red-300);\n }\n .border-secondary {\n border-color: var(--color-secondary);\n }\n .border-success\\/20 {\n border-color: color-mix(in srgb, hsl(142 76% 36%) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--color-success) 20%, transparent);\n }\n }\n .border-t-transparent {\n border-top-color: transparent;\n }\n .bg-black {\n background-color: var(--color-black);\n }\n .bg-error\\/10 {\n background-color: color-mix(in srgb, hsl(0 100% 50%) 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-error) 10%, transparent);\n }\n }\n .bg-error\\/90 {\n background-color: color-mix(in srgb, hsl(0 100% 50%) 90%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-error) 90%, transparent);\n }\n }\n .bg-info\\/90 {\n background-color: color-mix(in srgb, hsl(221 83% 53%) 90%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-info) 90%, transparent);\n }\n }\n .bg-muted {\n background-color: var(--color-muted);\n }\n .bg-overlay {\n background-color: var(--color-overlay);\n }\n .bg-primary {\n background-color: var(--color-primary);\n }\n .bg-red-100 {\n background-color: var(--color-red-100);\n }\n .bg-secondary {\n background-color: var(--color-secondary);\n }\n .bg-success\\/10 {\n background-color: color-mix(in srgb, hsl(142 76% 36%) 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-success) 10%, transparent);\n }\n }\n .bg-success\\/90 {\n background-color: color-mix(in srgb, hsl(142 76% 36%) 90%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-success) 90%, transparent);\n }\n }\n .bg-surface {\n background-color: var(--color-surface);\n }\n .bg-tertiary {\n background-color: var(--color-tertiary);\n }\n .bg-transparent {\n background-color: transparent;\n }\n .object-contain {\n object-fit: contain;\n }\n .p-2 {\n padding: calc(var(--spacing) * 2);\n }\n .p-3 {\n padding: calc(var(--spacing) * 3);\n }\n .p-4 {\n padding: calc(var(--spacing) * 4);\n }\n .p-6 {\n padding: calc(var(--spacing) * 6);\n }\n .px-3 {\n padding-inline: calc(var(--spacing) * 3);\n }\n .px-4 {\n padding-inline: calc(var(--spacing) * 4);\n }\n .px-6 {\n padding-inline: calc(var(--spacing) * 6);\n }\n .py-1 {\n padding-block: calc(var(--spacing) * 1);\n }\n .py-2 {\n padding-block: calc(var(--spacing) * 2);\n }\n .py-3 {\n padding-block: calc(var(--spacing) * 3);\n }\n .pt-3 {\n padding-top: calc(var(--spacing) * 3);\n }\n .pt-4 {\n padding-top: calc(var(--spacing) * 4);\n }\n .pt-7 {\n padding-top: calc(var(--spacing) * 7);\n }\n .pr-3 {\n padding-right: calc(var(--spacing) * 3);\n }\n .pr-4 {\n padding-right: calc(var(--spacing) * 4);\n }\n .pb-2 {\n padding-bottom: calc(var(--spacing) * 2);\n }\n .pb-3 {\n padding-bottom: calc(var(--spacing) * 3);\n }\n .pb-4 {\n padding-bottom: calc(var(--spacing) * 4);\n }\n .pl-3 {\n padding-left: calc(var(--spacing) * 3);\n }\n .pl-4 {\n padding-left: calc(var(--spacing) * 4);\n }\n .pl-10 {\n padding-left: calc(var(--spacing) * 10);\n }\n .text-center {\n text-align: center;\n }\n .text-right {\n text-align: right;\n }\n .text-2xl {\n font-size: var(--text-2xl);\n line-height: var(--tw-leading, var(--text-2xl--line-height));\n }\n .text-lg {\n font-size: var(--text-lg);\n line-height: var(--tw-leading, var(--text-lg--line-height));\n }\n .text-sm {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n .text-xl {\n font-size: var(--text-xl);\n line-height: var(--tw-leading, var(--text-xl--line-height));\n }\n .text-xs {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n }\n .font-bold {\n --tw-font-weight: var(--font-weight-bold);\n font-weight: var(--font-weight-bold);\n }\n .font-medium {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n .font-semibold {\n --tw-font-weight: var(--font-weight-semibold);\n font-weight: var(--font-weight-semibold);\n }\n .text-error {\n color: var(--color-error);\n }\n .text-error-foreground {\n color: var(--color-error-foreground);\n }\n .text-muted {\n color: var(--color-muted);\n }\n .text-muted-foreground {\n color: var(--color-muted-foreground);\n }\n .text-primary-foreground {\n color: var(--color-primary-foreground);\n }\n .text-red-500 {\n color: var(--color-red-500);\n }\n .text-red-700 {\n color: var(--color-red-700);\n }\n .text-secondary {\n color: var(--color-secondary);\n }\n .text-success {\n color: var(--color-success);\n }\n .text-text-muted {\n color: var(--color-text-muted);\n }\n .text-text-secondary {\n color: var(--color-text-secondary);\n }\n .text-white {\n color: var(--color-white);\n }\n .accent-tertiary {\n accent-color: var(--color-tertiary);\n }\n .opacity-0 {\n opacity: 0%;\n }\n .opacity-100 {\n opacity: 100%;\n }\n .shadow {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-lg {\n --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .transition {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, visibility, content-visibility, overlay, pointer-events;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-all {\n transition-property: all;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-colors {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .duration-200 {\n --tw-duration: 200ms;\n transition-duration: 200ms;\n }\n .duration-300 {\n --tw-duration: 300ms;\n transition-duration: 300ms;\n }\n .ease-in-out {\n --tw-ease: var(--ease-in-out);\n transition-timing-function: var(--ease-in-out);\n }\n .hover\\:bg-hover {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-hover);\n }\n }\n }\n .hover\\:bg-muted {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-muted);\n }\n }\n }\n .hover\\:bg-overlay {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-overlay);\n }\n }\n }\n .hover\\:bg-secondary\\/80 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, hsl(28 100% 8%) 80%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-secondary) 80%, transparent);\n }\n }\n }\n }\n .hover\\:bg-surface-hover {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-surface-hover);\n }\n }\n }\n .hover\\:bg-tertiary {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-tertiary);\n }\n }\n }\n .hover\\:bg-tertiary\\/80 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, hsl(28 100% 29%) 80%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-tertiary) 80%, transparent);\n }\n }\n }\n }\n .hover\\:bg-text-secondary {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-text-secondary);\n }\n }\n }\n .focus\\:border-2 {\n &:focus {\n border-style: var(--tw-border-style);\n border-width: 2px;\n }\n }\n .focus\\:border-secondary {\n &:focus {\n border-color: var(--color-secondary);\n }\n }\n .focus\\:border-transparent {\n &:focus {\n border-color: transparent;\n }\n }\n .focus\\:ring-2 {\n &:focus {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus\\:ring-secondary {\n &:focus {\n --tw-ring-color: var(--color-secondary);\n }\n }\n .focus\\:ring-tertiary {\n &:focus {\n --tw-ring-color: var(--color-tertiary);\n }\n }\n .focus\\:ring-offset-0 {\n &:focus {\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n }\n }\n .focus\\:outline-none {\n &:focus {\n --tw-outline-style: none;\n outline-style: none;\n }\n }\n .sm\\:mt-0 {\n @media (width >= 40rem) {\n margin-top: calc(var(--spacing) * 0);\n }\n }\n .sm\\:flex-3 {\n @media (width >= 40rem) {\n flex: 3;\n }\n }\n .sm\\:flex-row {\n @media (width >= 40rem) {\n flex-direction: row;\n }\n }\n .sm\\:items-center {\n @media (width >= 40rem) {\n align-items: center;\n }\n }\n .sm\\:gap-4 {\n @media (width >= 40rem) {\n gap: calc(var(--spacing) * 4);\n }\n }\n .md\\:grid-cols-2 {\n @media (width >= 48rem) {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n }\n .md\\:pl-2 {\n @media (width >= 48rem) {\n padding-left: calc(var(--spacing) * 2);\n }\n }\n .\\[\\&\\:\\:-webkit-slider-runnable-track\\]\\:rounded-full {\n &::-webkit-slider-runnable-track {\n border-radius: calc(infinity * 1px);\n }\n }\n .\\[\\&\\:\\:-webkit-slider-runnable-track\\]\\:bg-black\\/25 {\n &::-webkit-slider-runnable-track {\n background-color: color-mix(in srgb, #000 25%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 25%, transparent);\n }\n }\n }\n .\\[\\&\\:\\:-webkit-slider-thumb\\]\\:h-\\[10px\\] {\n &::-webkit-slider-thumb {\n height: 10px;\n }\n }\n .\\[\\&\\:\\:-webkit-slider-thumb\\]\\:w-\\[10px\\] {\n &::-webkit-slider-thumb {\n width: 10px;\n }\n }\n .\\[\\&\\:\\:-webkit-slider-thumb\\]\\:appearance-none {\n &::-webkit-slider-thumb {\n appearance: none;\n }\n }\n .\\[\\&\\:\\:-webkit-slider-thumb\\]\\:rounded-full {\n &::-webkit-slider-thumb {\n border-radius: calc(infinity * 1px);\n }\n }\n .\\[\\&\\:\\:-webkit-slider-thumb\\]\\:bg-muted {\n &::-webkit-slider-thumb {\n background-color: var(--color-muted);\n }\n }\n}\n@property --tw-translate-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-scale-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-scale-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-scale-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-rotate-x {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-rotate-y {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-rotate-z {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-skew-x {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-skew-y {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-space-y-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-border-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-font-weight {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-inset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-ring-inset {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-offset-width {\n syntax: \"<length>\";\n inherits: false;\n initial-value: 0px;\n}\n@property --tw-ring-offset-color {\n syntax: \"*\";\n inherits: false;\n initial-value: #fff;\n}\n@property --tw-ring-offset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-duration {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ease {\n syntax: \"*\";\n inherits: false;\n}\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n@layer properties {\n @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {\n *, ::before, ::after, ::backdrop {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-scale-z: 1;\n --tw-rotate-x: initial;\n --tw-rotate-y: initial;\n --tw-rotate-z: initial;\n --tw-skew-x: initial;\n --tw-skew-y: initial;\n --tw-space-y-reverse: 0;\n --tw-border-style: solid;\n --tw-font-weight: initial;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 #0000;\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-duration: initial;\n --tw-ease: initial;\n }\n }\n}\n";
|
|
416
|
-
|
|
417
|
-
const MapSelector = /*@__PURE__*/ proxyCustomElement(class MapSelector extends H {
|
|
418
|
-
constructor() {
|
|
419
|
-
super();
|
|
420
|
-
this.__registerHost();
|
|
421
|
-
}
|
|
422
|
-
get el() { return this; }
|
|
423
|
-
apiKey = "";
|
|
424
|
-
language = "en";
|
|
425
|
-
isLoaded = false;
|
|
426
|
-
autocomplete = null;
|
|
427
|
-
map = null;
|
|
428
|
-
marker = null;
|
|
429
|
-
circle = null;
|
|
430
|
-
radius = 20;
|
|
431
|
-
latitude = null;
|
|
432
|
-
longitude = null;
|
|
433
|
-
isSatelliteMode = true;
|
|
434
|
-
showAddressError = false;
|
|
435
|
-
inputElement;
|
|
436
|
-
mapElement;
|
|
437
|
-
componentWillLoad() {
|
|
438
|
-
// Set location to null initially
|
|
439
|
-
state.location = null;
|
|
440
|
-
this.loadGoogleMapsScript();
|
|
441
|
-
}
|
|
442
|
-
async loadGoogleMapsScript() {
|
|
443
|
-
try {
|
|
444
|
-
const loader = new Loader({
|
|
445
|
-
apiKey: this.apiKey,
|
|
446
|
-
libraries: ["places", "maps", "marker"],
|
|
447
|
-
});
|
|
448
|
-
const [places, maps, _] = await Promise.all([
|
|
449
|
-
loader.importLibrary("places"),
|
|
450
|
-
loader.importLibrary("maps"),
|
|
451
|
-
loader.importLibrary("marker"),
|
|
452
|
-
]);
|
|
453
|
-
this.isLoaded = true;
|
|
454
|
-
this.initializeAutocomplete(places);
|
|
455
|
-
this.initializeMap(maps);
|
|
456
|
-
}
|
|
457
|
-
catch (error) {
|
|
458
|
-
console.error("Error loading Google Maps: ", error);
|
|
459
|
-
}
|
|
460
|
-
}
|
|
461
|
-
initializeAutocomplete(places) {
|
|
462
|
-
if (!this.inputElement || !this.isLoaded)
|
|
463
|
-
return;
|
|
464
|
-
this.autocomplete = new places.Autocomplete(this.inputElement);
|
|
465
|
-
this.autocomplete.addListener("place_changed", () => {
|
|
466
|
-
const place = this.autocomplete?.getPlace();
|
|
467
|
-
if (place?.geometry?.location) {
|
|
468
|
-
const lat = place.geometry.location.lat();
|
|
469
|
-
const lng = place.geometry.location.lng();
|
|
470
|
-
state.location = place.name;
|
|
471
|
-
this.latitude = lat;
|
|
472
|
-
this.longitude = lng;
|
|
473
|
-
this.map?.setCenter({ lat, lng });
|
|
474
|
-
this.map?.setZoom(40);
|
|
475
|
-
}
|
|
476
|
-
});
|
|
477
|
-
}
|
|
478
|
-
initializeMap(maps) {
|
|
479
|
-
if (!this.mapElement || !this.isLoaded)
|
|
480
|
-
return;
|
|
481
|
-
this.map = new maps.Map(this.mapElement, {
|
|
482
|
-
center: {
|
|
483
|
-
lat: state.latitude || 49.398531832926025,
|
|
484
|
-
lng: state.longitude || 8.671214102081551,
|
|
485
|
-
},
|
|
486
|
-
zoom: 15,
|
|
487
|
-
mapTypeControl: false,
|
|
488
|
-
streetViewControl: false,
|
|
489
|
-
mapTypeId: "satellite",
|
|
490
|
-
mapId: "map",
|
|
491
|
-
tilt: 0,
|
|
492
|
-
});
|
|
493
|
-
// this.updateMapLocation(state.latitude, state.longitude);
|
|
494
|
-
// Add click listener to map
|
|
495
|
-
this.map.addListener("click", (e) => {
|
|
496
|
-
if (e.latLng) {
|
|
497
|
-
const lat = e.latLng.lat();
|
|
498
|
-
const lng = e.latLng.lng();
|
|
499
|
-
this.latitude = lat;
|
|
500
|
-
this.longitude = lng;
|
|
501
|
-
this.updateMapLocation(lat, lng);
|
|
502
|
-
}
|
|
503
|
-
});
|
|
504
|
-
// Initialize marker and circle if we have coordinates
|
|
505
|
-
if (state.latitude && state.longitude) {
|
|
506
|
-
this.updateMapLocation(state.latitude, state.longitude);
|
|
507
|
-
}
|
|
508
|
-
}
|
|
509
|
-
updateMapLocation(lat, lng) {
|
|
510
|
-
if (!this.map)
|
|
511
|
-
return;
|
|
512
|
-
// Update or create circle
|
|
513
|
-
if (this.circle) {
|
|
514
|
-
this.circle.setCenter({ lat, lng });
|
|
515
|
-
}
|
|
516
|
-
else {
|
|
517
|
-
const circle = new google.maps.Circle({
|
|
518
|
-
strokeColor: "#ffffff",
|
|
519
|
-
strokeOpacity: 0.8,
|
|
520
|
-
strokeWeight: 2,
|
|
521
|
-
fillColor: "rgba(255, 255, 255, 0.8)",
|
|
522
|
-
fillOpacity: 0.35,
|
|
523
|
-
map: this.map,
|
|
524
|
-
center: { lat, lng },
|
|
525
|
-
radius: this.radius,
|
|
526
|
-
});
|
|
527
|
-
this.circle = circle;
|
|
528
|
-
}
|
|
529
|
-
}
|
|
530
|
-
handleRadiusChange(e) {
|
|
531
|
-
const value = parseFloat(e.target.value);
|
|
532
|
-
this.radius = value;
|
|
533
|
-
if (this.circle) {
|
|
534
|
-
this.circle.setRadius(value);
|
|
535
|
-
}
|
|
536
|
-
}
|
|
537
|
-
handleAcceptPosition() {
|
|
538
|
-
console.log("Accepting position ", this.latitude, this.longitude, this.radius);
|
|
539
|
-
// Check if an address has been selected
|
|
540
|
-
if (this.latitude === null || this.longitude === null) {
|
|
541
|
-
this.showAddressError = true;
|
|
542
|
-
// Hide the error after 3 seconds
|
|
543
|
-
setTimeout(() => {
|
|
544
|
-
this.showAddressError = false;
|
|
545
|
-
}, 3000);
|
|
546
|
-
return;
|
|
547
|
-
}
|
|
548
|
-
state.latitude = this.latitude;
|
|
549
|
-
state.longitude = this.longitude;
|
|
550
|
-
state.radiusMeters = this.radius;
|
|
551
|
-
this.showAddressError = false;
|
|
552
|
-
}
|
|
553
|
-
handleToggleMapMode() {
|
|
554
|
-
this.isSatelliteMode = !this.isSatelliteMode;
|
|
555
|
-
if (this.map) {
|
|
556
|
-
this.map.setMapTypeId(this.isSatelliteMode ? "satellite" : "roadmap");
|
|
557
|
-
}
|
|
558
|
-
}
|
|
559
|
-
isIOS() {
|
|
560
|
-
return state.isIOS;
|
|
561
|
-
}
|
|
562
|
-
render() {
|
|
563
|
-
const t = getLanguageStrings(this.language);
|
|
564
|
-
return (h("div", { key: 'f609afa9e2a2226b3be80de17a3b810f802b16a4', class: "map-selector flex flex-col gap-4 pb-4" }, h("div", { key: 'b0eec355ec27870b08a9c21f9129ee51e384d301', class: "relative" }, h("div", { key: 'baf26233c9d7c1526135f6bdef5fa2bbe8d449b8', class: "absolute left-3 top-0 h-full flex items-center pointer-events-none" }, h("search-icon", { key: '315a034e92ce894f189be3195686c054d61914dc' })), h("input", { key: '0ae0c9a8597532bd7f7a932fd513fa8cc2789a97', ref: (el) => this.inputElement = el, type: "text", placeholder: t.solarExpert.searchPlaceholder, class: "w-full pl-10 pr-4 py-2 border border-border rounded-4xl focus:ring-secondary bg-muted" })), h("div", { key: '3dbace40d04a11c7283fc19da070438f4120dae5', class: "w-full rounded-4xl p-4 bg-overlay" }, t.mapSelector.explanation), h("div", { key: 'c51a2ce5158c5553997db9d05818f71f6342ff8b', class: "flex items-center gap-4" }, h("label", { key: 'cbc40a3b6df04e8021ccc9da278f6663b9d370ab', class: "text-sm font-medium text-text-muted" }, t.mapSelector.radius), this.isIOS()
|
|
565
|
-
? (h("div", { class: "flex items-center gap-2" }, h("input", { type: "number", min: "5", max: "100", step: "5", class: "flex-1 px-4 py-2 rounded-4xl border border-border focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted", value: this.radius, onInput: (e) => {
|
|
566
|
-
const value = parseInt(e.target
|
|
567
|
-
.value);
|
|
568
|
-
if (value >= 5 && value <= 100) {
|
|
569
|
-
this.radius = value;
|
|
570
|
-
if (this.circle) {
|
|
571
|
-
this.circle.setRadius(value);
|
|
572
|
-
}
|
|
573
|
-
}
|
|
574
|
-
}, style: {
|
|
575
|
-
border: "1px solid var(--color-border)",
|
|
576
|
-
} }), h("span", { class: "text-sm text-text-muted" }, "m")))
|
|
577
|
-
: (h("input", { type: "range", min: "5", max: "100", value: this.radius, onInput: (e) => this.handleRadiusChange(e), 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" })), !this.isIOS() && (h("span", { key: '27afa73a7462deb1640bd348da6ddbc837108e80', class: "text-sm text-text-muted" }, this.radius, "m"))), h("button", { key: '6a57821539f57e3fc1be52b9885c1677c2d821b0', onClick: () => this.handleToggleMapMode(), class: "w-full py-2 px-4 bg-secondary text-muted rounded-4xl hover:bg-overlay transition-colors", style: {
|
|
578
|
-
color: "#ffffff",
|
|
579
|
-
} }, this.isSatelliteMode
|
|
580
|
-
? t.mapSelector.switchToStandard
|
|
581
|
-
: t.mapSelector.switchToSatellite), h("div", { key: '33cf7a585ec2a3340ef6ee98468c0f0fde84bfb2', ref: (el) => this.mapElement = el, class: "w-full h-[400px] rounded-4xl border border-border" }), this.showAddressError && (h("div", { key: '62c0d763bd71014fd1cddb6ed554b6b5df461ac3', class: "w-full p-3 bg-red-100 border border-red-300 rounded-4xl text-red-700 text-sm" }, t.mapSelector.noAddressSelected)), h("button", { key: '15d857409bb93e66705353c093de07edf1113ad8', onClick: () => this.handleAcceptPosition(), class: "w-full py-2 px-4 bg-secondary text-muted rounded-4xl hover:bg-overlay transition-colors", style: {
|
|
582
|
-
color: "#ffffff",
|
|
583
|
-
} }, t.mapSelector.accept)));
|
|
584
|
-
}
|
|
585
|
-
static get style() { return outputCss; }
|
|
586
|
-
}, [0, "map-selector", {
|
|
587
|
-
"apiKey": [1, "api-key"],
|
|
588
|
-
"language": [1],
|
|
589
|
-
"isLoaded": [32],
|
|
590
|
-
"autocomplete": [32],
|
|
591
|
-
"map": [32],
|
|
592
|
-
"marker": [32],
|
|
593
|
-
"circle": [32],
|
|
594
|
-
"radius": [32],
|
|
595
|
-
"latitude": [32],
|
|
596
|
-
"longitude": [32],
|
|
597
|
-
"isSatelliteMode": [32],
|
|
598
|
-
"showAddressError": [32]
|
|
599
|
-
}]);
|
|
600
|
-
function defineCustomElement() {
|
|
601
|
-
if (typeof customElements === "undefined") {
|
|
602
|
-
return;
|
|
603
|
-
}
|
|
604
|
-
const components = ["map-selector", "search-icon"];
|
|
605
|
-
components.forEach(tagName => { switch (tagName) {
|
|
606
|
-
case "map-selector":
|
|
607
|
-
if (!customElements.get(tagName)) {
|
|
608
|
-
customElements.define(tagName, MapSelector);
|
|
609
|
-
}
|
|
610
|
-
break;
|
|
611
|
-
case "search-icon":
|
|
612
|
-
if (!customElements.get(tagName)) {
|
|
613
|
-
defineCustomElement$1();
|
|
614
|
-
}
|
|
615
|
-
break;
|
|
616
|
-
} });
|
|
617
|
-
}
|
|
618
|
-
defineCustomElement();
|
|
619
|
-
|
|
620
|
-
export { Loader as L, MapSelector as M, defineCustomElement as d };
|
|
621
|
-
//# sourceMappingURL=p-Bopprtc7.js.map
|
|
622
|
-
|
|
623
|
-
//# sourceMappingURL=p-Bopprtc7.js.map
|