blue-chestnut-solar-expert 0.0.9 → 0.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/eraser-icon.house-icon.icon-selector.map-draw.move-icon.octagon-minus-icon.search-icon.solar-expert.solar-system-form.entry.cjs.js.map +1 -1
- package/dist/cjs/eraser-icon_9.cjs.entry.js +388 -15110
- package/dist/cjs/eraser-icon_9.cjs.entry.js.map +1 -1
- package/dist/cjs/{index-BFx4q5Ui.js → index-GZ-kuJi4.js} +8 -28
- package/dist/{esm/index-D0YnIAAN.js.map → cjs/index-GZ-kuJi4.js.map} +1 -1
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/loading-widget.cjs.entry.js +20 -0
- package/dist/cjs/loading-widget.cjs.entry.js.map +1 -0
- package/dist/cjs/loading-widget.entry.cjs.js.map +1 -0
- package/dist/cjs/solar-calculator.cjs.entry.js +3 -3
- package/dist/cjs/solar-calculator.cjs.entry.js.map +1 -1
- package/dist/cjs/solar-calculator.entry.cjs.js.map +1 -1
- package/dist/cjs/stencil-library.cjs.js +2 -2
- package/dist/collection/collection-manifest.json +2 -1
- package/dist/collection/components/icons/eraser.js +26 -1
- package/dist/collection/components/icons/eraser.js.map +1 -1
- package/dist/collection/components/icons/house.js +26 -1
- package/dist/collection/components/icons/house.js.map +1 -1
- package/dist/collection/components/icons/icon.js +27 -6
- package/dist/collection/components/icons/icon.js.map +1 -1
- package/dist/collection/components/icons/move.js +26 -1
- package/dist/collection/components/icons/move.js.map +1 -1
- package/dist/collection/components/icons/octagonMinus.js +26 -1
- package/dist/collection/components/icons/octagonMinus.js.map +1 -1
- package/dist/collection/components/icons/search.js +26 -1
- package/dist/collection/components/icons/search.js.map +1 -1
- package/dist/collection/components/map-draw/map-draw.js +133 -31
- package/dist/collection/components/map-draw/map-draw.js.map +1 -1
- package/dist/collection/components/solar-calculator/solar-calculator.js +1 -1
- package/dist/collection/components/solar-expert/solar-expert.js +3 -3
- package/dist/collection/components/solar-expert/solar-expert.js.map +1 -1
- package/dist/collection/components/solar-system-form/solar-system-form.js +86 -84
- package/dist/collection/components/solar-system-form/solar-system-form.js.map +1 -1
- package/dist/collection/components/widgets/loading-widget.js +18 -0
- package/dist/collection/components/widgets/loading-widget.js.map +1 -0
- package/dist/collection/output.css +284 -0
- package/dist/collection/utils/geometry/gridMatch.js +0 -1
- package/dist/collection/utils/geometry/gridMatch.js.map +1 -1
- package/dist/collection/utils/lang/english.js +1 -1
- package/dist/collection/utils/lang/english.js.map +1 -1
- package/dist/collection/utils/lang/german.js +3 -3
- package/dist/collection/utils/lang/german.js.map +1 -1
- package/dist/collection/utils/lang/spanish.js +1 -1
- package/dist/collection/utils/lang/spanish.js.map +1 -1
- package/dist/components/eraser-icon.js +1 -1
- package/dist/components/house-icon.js +1 -1
- package/dist/components/icon-selector.js +1 -1
- package/dist/components/index.js +7 -22
- package/dist/components/index.js.map +1 -1
- package/dist/components/loading-widget.d.ts +11 -0
- package/dist/components/loading-widget.js +36 -0
- package/dist/components/loading-widget.js.map +1 -0
- package/dist/components/map-draw.js +1 -1
- package/dist/components/move-icon.js +1 -1
- package/dist/components/octagon-minus-icon.js +1 -1
- package/dist/components/p-BGspvo5S.js +36 -0
- package/dist/components/p-BGspvo5S.js.map +1 -0
- package/dist/components/p-C46bD4Bg.js +36 -0
- package/dist/components/p-C46bD4Bg.js.map +1 -0
- package/dist/components/p-CB8h41UZ.js +36 -0
- package/dist/components/p-CB8h41UZ.js.map +1 -0
- package/dist/components/p-CHsmfSJD.js +36 -0
- package/dist/components/p-CHsmfSJD.js.map +1 -0
- package/dist/components/p-Cg3h6HF4.js +83 -0
- package/dist/components/p-Cg3h6HF4.js.map +1 -0
- package/dist/components/p-D6cs3r7j.js +621 -0
- package/dist/components/p-D6cs3r7j.js.map +1 -0
- package/dist/components/{p-CtPeF0hC.js → p-DEfwuR25.js} +143 -42
- package/dist/components/p-DEfwuR25.js.map +1 -0
- package/dist/components/p-DP1y5q1K.js +36 -0
- package/dist/components/p-DP1y5q1K.js.map +1 -0
- package/dist/components/search-icon.js +1 -1
- package/dist/components/solar-calculator.js +2 -2
- package/dist/components/solar-calculator.js.map +1 -1
- package/dist/components/solar-expert.js +12 -12
- package/dist/components/solar-expert.js.map +1 -1
- package/dist/components/solar-system-form.js +1 -1
- package/dist/esm/eraser-icon.house-icon.icon-selector.map-draw.move-icon.octagon-minus-icon.search-icon.solar-expert.solar-system-form.entry.js.map +1 -1
- package/dist/esm/eraser-icon_9.entry.js +370 -15092
- package/dist/esm/eraser-icon_9.entry.js.map +1 -1
- package/dist/esm/{index-D0YnIAAN.js → index-CnQR_-WL.js} +8 -28
- package/dist/{cjs/index-BFx4q5Ui.js.map → esm/index-CnQR_-WL.js.map} +1 -1
- package/dist/esm/loader.js +3 -3
- package/dist/esm/loading-widget.entry.js +18 -0
- package/dist/esm/loading-widget.entry.js.map +1 -0
- package/dist/esm/solar-calculator.entry.js +3 -3
- package/dist/esm/solar-calculator.entry.js.map +1 -1
- package/dist/esm/stencil-library.js +3 -3
- package/dist/stencil-library/eraser-icon.house-icon.icon-selector.map-draw.move-icon.octagon-minus-icon.search-icon.solar-expert.solar-system-form.entry.esm.js.map +1 -1
- package/dist/stencil-library/loading-widget.entry.esm.js.map +1 -0
- package/dist/stencil-library/p-25e04c7a.entry.js +2 -0
- package/dist/stencil-library/p-25e04c7a.entry.js.map +1 -0
- package/dist/stencil-library/p-642b4ce9.entry.js +32 -0
- package/dist/stencil-library/{p-ded21f18.entry.js.map → p-642b4ce9.entry.js.map} +1 -1
- package/dist/stencil-library/p-CnQR_-WL.js +3 -0
- package/dist/stencil-library/{p-D0YnIAAN.js.map → p-CnQR_-WL.js.map} +1 -1
- package/dist/stencil-library/p-a8d15c85.entry.js +2 -0
- package/dist/stencil-library/p-a8d15c85.entry.js.map +1 -0
- package/dist/stencil-library/solar-calculator.entry.esm.js.map +1 -1
- package/dist/stencil-library/stencil-library.esm.js +1 -1
- package/dist/types/components/icons/eraser.d.ts +1 -0
- package/dist/types/components/icons/house.d.ts +1 -0
- package/dist/types/components/icons/icon.d.ts +1 -0
- package/dist/types/components/icons/move.d.ts +1 -0
- package/dist/types/components/icons/octagonMinus.d.ts +1 -0
- package/dist/types/components/icons/search.d.ts +1 -0
- package/dist/types/components/map-draw/map-draw.d.ts +2 -0
- package/dist/types/components/solar-system-form/solar-system-form.d.ts +3 -2
- package/dist/types/components/widgets/loading-widget.d.ts +3 -0
- package/dist/types/components.d.ts +25 -0
- package/package.json +1 -1
- package/dist/components/p-BL_DlPdu.js +0 -33
- package/dist/components/p-BL_DlPdu.js.map +0 -1
- package/dist/components/p-BcT1n-3A.js +0 -15447
- package/dist/components/p-BcT1n-3A.js.map +0 -1
- package/dist/components/p-CC3tp0bK.js +0 -33
- package/dist/components/p-CC3tp0bK.js.map +0 -1
- package/dist/components/p-CtPeF0hC.js.map +0 -1
- package/dist/components/p-D064AshY.js +0 -33
- package/dist/components/p-D064AshY.js.map +0 -1
- package/dist/components/p-DQwOnYzQ.js +0 -33
- package/dist/components/p-DQwOnYzQ.js.map +0 -1
- package/dist/components/p-DbEU_5GR.js +0 -33
- package/dist/components/p-DbEU_5GR.js.map +0 -1
- package/dist/components/p-Dv86mKXd.js +0 -81
- package/dist/components/p-Dv86mKXd.js.map +0 -1
- package/dist/stencil-library/p-7512b392.entry.js +0 -20
- package/dist/stencil-library/p-7512b392.entry.js.map +0 -1
- package/dist/stencil-library/p-D0YnIAAN.js +0 -3
- package/dist/stencil-library/p-ded21f18.entry.js +0 -32
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { p as proxyCustomElement, H, h } from './index.js';
|
|
2
2
|
import { f as fetchSolarData, b as getBuildingImages } from './p-DCSfVybE.js';
|
|
3
|
-
import { d as defineCustomElement$1, D as DEFAULT_SOLAR_EXPERT_CONFIG, a as DEFAULT_SOLAR_PANEL_TYPE, g as getLanguageStrings } from './p-
|
|
4
|
-
import { d as defineCustomElement$7 } from './p-
|
|
5
|
-
import { d as defineCustomElement$6 } from './p-
|
|
6
|
-
import { d as defineCustomElement$5 } from './p-
|
|
7
|
-
import { d as defineCustomElement$4 } from './p-
|
|
8
|
-
import { d as defineCustomElement$3 } from './p-
|
|
9
|
-
import { d as defineCustomElement$2 } from './p-
|
|
3
|
+
import { d as defineCustomElement$1, D as DEFAULT_SOLAR_EXPERT_CONFIG, a as DEFAULT_SOLAR_PANEL_TYPE, g as getLanguageStrings } from './p-D6cs3r7j.js';
|
|
4
|
+
import { d as defineCustomElement$7 } from './p-CB8h41UZ.js';
|
|
5
|
+
import { d as defineCustomElement$6 } from './p-C46bD4Bg.js';
|
|
6
|
+
import { d as defineCustomElement$5 } from './p-Cg3h6HF4.js';
|
|
7
|
+
import { d as defineCustomElement$4 } from './p-DP1y5q1K.js';
|
|
8
|
+
import { d as defineCustomElement$3 } from './p-BGspvo5S.js';
|
|
9
|
+
import { d as defineCustomElement$2 } from './p-CHsmfSJD.js';
|
|
10
10
|
|
|
11
11
|
/*
|
|
12
12
|
Copyright 2023 Google LLC
|
|
@@ -734,7 +734,6 @@ function getOptimalSolarPosition(roof, obstacles, solarPanel, angle) {
|
|
|
734
734
|
minY: minY,
|
|
735
735
|
maxY: maxY
|
|
736
736
|
};
|
|
737
|
-
console.log("solar", solarPanel);
|
|
738
737
|
const horizontalSolarPanel = {
|
|
739
738
|
...solarPanel,
|
|
740
739
|
widthMeters: solarPanel.widthMeters * Math.cos(angle * Math.PI / 180),
|
|
@@ -873,9 +872,8 @@ function getOptimalSolarPositionFully(roof, obstacles, solarPanel, azimuth, inse
|
|
|
873
872
|
return unprojectedPanels;
|
|
874
873
|
}
|
|
875
874
|
|
|
876
|
-
const outputCss = "/*! tailwindcss v4.1.7 | 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-500: oklch(63.7% 0.237 25.331);\n --color-green-600: oklch(62.7% 0.194 149.214);\n --color-blue-500: oklch(62.3% 0.214 259.815);\n --color-gray-50: oklch(98.5% 0.002 247.839);\n --color-gray-200: oklch(92.8% 0.006 264.531);\n --color-gray-300: oklch(87.2% 0.01 258.338);\n --color-gray-400: oklch(70.7% 0.022 261.325);\n --color-gray-500: oklch(55.1% 0.027 264.364);\n --color-gray-600: oklch(44.6% 0.03 256.802);\n --color-gray-700: oklch(37.3% 0.034 259.733);\n --color-gray-800: oklch(27.8% 0.033 256.848);\n --color-white: #fff;\n --spacing: 0.25rem;\n --container-2xl: 42rem;\n --container-3xl: 48rem;\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 --text-3xl: 1.875rem;\n --text-3xl--line-height: calc(2.25 / 1.875);\n --font-weight-medium: 500;\n --font-weight-semibold: 600;\n --font-weight-bold: 700;\n --radius-lg: 0.5rem;\n --radius-xl: 0.75rem;\n --radius-2xl: 1rem;\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 }\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 .relative {\n position: relative;\n }\n .top-0 {\n top: calc(var(--spacing) * 0);\n }\n .top-1 {\n top: calc(var(--spacing) * 1);\n }\n .top-1\\/2 {\n top: calc(1/2 * 100%);\n }\n .bottom-full {\n bottom: 100%;\n }\n .left-0 {\n left: calc(var(--spacing) * 0);\n }\n .left-1 {\n left: calc(var(--spacing) * 1);\n }\n .left-1\\/2 {\n left: calc(1/2 * 100%);\n }\n .left-3 {\n left: calc(var(--spacing) * 3);\n }\n .z-1 {\n z-index: 1;\n }\n .z-10 {\n z-index: 10;\n }\n .z-20 {\n z-index: 20;\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 .mb-1 {\n margin-bottom: calc(var(--spacing) * 1);\n }\n .mb-2 {\n margin-bottom: calc(var(--spacing) * 2);\n }\n .mb-4 {\n margin-bottom: calc(var(--spacing) * 4);\n }\n .block {\n display: block;\n }\n .flex {\n display: flex;\n }\n .grid {\n display: grid;\n }\n .table {\n display: table;\n }\n .h-5 {\n height: calc(var(--spacing) * 5);\n }\n .h-16 {\n height: calc(var(--spacing) * 16);\n }\n .h-48 {\n height: calc(var(--spacing) * 48);\n }\n .h-full {\n height: 100%;\n }\n .w-5 {\n width: calc(var(--spacing) * 5);\n }\n .w-16 {\n width: calc(var(--spacing) * 16);\n }\n .w-52 {\n width: calc(var(--spacing) * 52);\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 .flex-1 {\n flex: 1;\n }\n .border-collapse {\n border-collapse: collapse;\n }\n .-translate-x-1 {\n --tw-translate-x: calc(var(--spacing) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\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-1 {\n --tw-translate-y: calc(var(--spacing) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .-translate-y-1\\/2 {\n --tw-translate-y: calc(calc(1/2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-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-help {\n cursor: help;\n }\n .resize {\n resize: both;\n }\n .grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n .flex-col {\n flex-direction: column;\n }\n .flex-row {\n flex-direction: row;\n }\n .items-center {\n align-items: center;\n }\n .items-start {\n align-items: flex-start;\n }\n .justify-between {\n justify-content: space-between;\n }\n .justify-center {\n justify-content: center;\n }\n .justify-start {\n justify-content: flex-start;\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-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 .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-t {\n border-top-style: var(--tw-border-style);\n border-top-width: 1px;\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-\\[\\#271200\\] {\n border-color: #271200;\n }\n .border-gray-200 {\n border-color: var(--color-gray-200);\n }\n .border-gray-300 {\n border-color: var(--color-gray-300);\n }\n .border-red-500 {\n border-color: var(--color-red-500);\n }\n .bg-\\[\\#271200\\] {\n background-color: #271200;\n }\n .bg-\\[\\#f3ebda\\] {\n background-color: #f3ebda;\n }\n .bg-gray-800 {\n background-color: var(--color-gray-800);\n }\n .bg-white {\n background-color: var(--color-white);\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-4 {\n padding-inline: calc(var(--spacing) * 4);\n }\n .py-2 {\n padding-block: calc(var(--spacing) * 2);\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-4 {\n padding-right: calc(var(--spacing) * 4);\n }\n .pb-3 {\n padding-bottom: calc(var(--spacing) * 3);\n }\n .pl-10 {\n padding-left: calc(var(--spacing) * 10);\n }\n .text-center {\n text-align: center;\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 .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-\\[\\#271200\\] {\n color: #271200;\n }\n .text-gray-400 {\n color: var(--color-gray-400);\n }\n .text-gray-500 {\n color: var(--color-gray-500);\n }\n .text-gray-600 {\n color: var(--color-gray-600);\n }\n .text-green-600 {\n color: var(--color-green-600);\n }\n .text-red-500 {\n color: var(--color-red-500);\n }\n .text-white {\n color: var(--color-white);\n }\n .underline {\n text-decoration-line: underline;\n }\n .opacity-0 {\n opacity: 0%;\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 .outline {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\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 .transition-opacity {\n transition-property: opacity;\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 .group-hover\\:opacity-100 {\n &:is(:where(.group):hover *) {\n @media (hover: hover) {\n opacity: 100%;\n }\n }\n }\n .hover\\:bg-\\[\\#964500\\] {\n &:hover {\n @media (hover: hover) {\n background-color: #964500;\n }\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-\\[\\#964500\\] {\n &:focus {\n --tw-ring-color: #964500;\n }\n }\n .focus\\:ring-blue-500 {\n &:focus {\n --tw-ring-color: var(--color-blue-500);\n }\n }\n .focus\\:outline-none {\n &:focus {\n --tw-outline-style: none;\n outline-style: none;\n }\n }\n .lg\\:gap-4 {\n @media (width >= 64rem) {\n gap: calc(var(--spacing) * 4);\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-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-outline-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-duration {\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-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-outline-style: solid;\n --tw-duration: initial;\n }\n }\n}\n";
|
|
875
|
+
const outputCss = "/*! tailwindcss v4.1.7 | 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-500: oklch(63.7% 0.237 25.331);\n --color-green-600: oklch(62.7% 0.194 149.214);\n --color-blue-500: oklch(62.3% 0.214 259.815);\n --color-purple-500: oklch(62.7% 0.265 303.9);\n --color-gray-50: oklch(98.5% 0.002 247.839);\n --color-gray-200: oklch(92.8% 0.006 264.531);\n --color-gray-300: oklch(87.2% 0.01 258.338);\n --color-gray-400: oklch(70.7% 0.022 261.325);\n --color-gray-500: oklch(55.1% 0.027 264.364);\n --color-gray-600: oklch(44.6% 0.03 256.802);\n --color-gray-700: oklch(37.3% 0.034 259.733);\n --color-gray-800: oklch(27.8% 0.033 256.848);\n --color-black: #000;\n --color-white: #fff;\n --spacing: 0.25rem;\n --container-xl: 36rem;\n --container-2xl: 42rem;\n --container-3xl: 48rem;\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 --text-3xl: 1.875rem;\n --text-3xl--line-height: calc(2.25 / 1.875);\n --font-weight-medium: 500;\n --font-weight-semibold: 600;\n --font-weight-bold: 700;\n --radius-lg: 0.5rem;\n --radius-xl: 0.75rem;\n --radius-2xl: 1rem;\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 }\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 .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 .top-1 {\n top: calc(var(--spacing) * 1);\n }\n .top-1\\/2 {\n top: calc(1/2 * 100%);\n }\n .bottom-full {\n bottom: 100%;\n }\n .left-0 {\n left: calc(var(--spacing) * 0);\n }\n .left-1 {\n left: calc(var(--spacing) * 1);\n }\n .left-1\\/2 {\n left: calc(1/2 * 100%);\n }\n .left-3 {\n left: calc(var(--spacing) * 3);\n }\n .z-1 {\n z-index: 1;\n }\n .z-10 {\n z-index: 10;\n }\n .z-20 {\n z-index: 20;\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 .mb-1 {\n margin-bottom: calc(var(--spacing) * 1);\n }\n .mb-2 {\n margin-bottom: calc(var(--spacing) * 2);\n }\n .mb-4 {\n margin-bottom: calc(var(--spacing) * 4);\n }\n .block {\n display: block;\n }\n .flex {\n display: flex;\n }\n .grid {\n display: grid;\n }\n .hidden {\n display: none;\n }\n .inline {\n display: inline;\n }\n .inline-block {\n display: inline-block;\n }\n .table {\n display: table;\n }\n .h-4 {\n height: calc(var(--spacing) * 4);\n }\n .h-5 {\n height: calc(var(--spacing) * 5);\n }\n .h-16 {\n height: calc(var(--spacing) * 16);\n }\n .h-48 {\n height: calc(var(--spacing) * 48);\n }\n .h-full {\n height: 100%;\n }\n .w-4 {\n width: calc(var(--spacing) * 4);\n }\n .w-5 {\n width: calc(var(--spacing) * 5);\n }\n .w-16 {\n width: calc(var(--spacing) * 16);\n }\n .w-20 {\n width: calc(var(--spacing) * 20);\n }\n .w-52 {\n width: calc(var(--spacing) * 52);\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-3xl {\n max-width: var(--container-3xl);\n }\n .max-w-xl {\n max-width: var(--container-xl);\n }\n .flex-1 {\n flex: 1;\n }\n .border-collapse {\n border-collapse: collapse;\n }\n .-translate-x-1 {\n --tw-translate-x: calc(var(--spacing) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\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-1 {\n --tw-translate-y: calc(var(--spacing) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .-translate-y-1\\/2 {\n --tw-translate-y: calc(calc(1/2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-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-help {\n cursor: help;\n }\n .resize {\n resize: both;\n }\n .appearance-none {\n appearance: none;\n }\n .auto-cols-max {\n grid-auto-columns: max-content;\n }\n .grid-flow-col {\n grid-auto-flow: column;\n }\n .grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n .grid-cols-4 {\n grid-template-columns: repeat(4, 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 .place-items-stretch {\n place-items: stretch;\n }\n .items-center {\n align-items: center;\n }\n .items-start {\n align-items: flex-start;\n }\n .justify-between {\n justify-content: space-between;\n }\n .justify-center {\n justify-content: center;\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-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 .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-t {\n border-top-style: var(--tw-border-style);\n border-top-width: 1px;\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-\\[\\#271200\\] {\n border-color: #271200;\n }\n .border-gray-200 {\n border-color: var(--color-gray-200);\n }\n .border-gray-300 {\n border-color: var(--color-gray-300);\n }\n .border-red-500 {\n border-color: var(--color-red-500);\n }\n .bg-\\[\\#271200\\] {\n background-color: #271200;\n }\n .bg-\\[\\#f3ebda\\] {\n background-color: #f3ebda;\n }\n .bg-black {\n background-color: var(--color-black);\n }\n .bg-gray-200 {\n background-color: var(--color-gray-200);\n }\n .bg-gray-500 {\n background-color: var(--color-gray-500);\n }\n .bg-gray-800 {\n background-color: var(--color-gray-800);\n }\n .bg-transparent {\n background-color: transparent;\n }\n .bg-white {\n background-color: var(--color-white);\n }\n .object-contain {\n object-fit: contain;\n }\n .p-1 {\n padding: calc(var(--spacing) * 1);\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-4 {\n padding-inline: calc(var(--spacing) * 4);\n }\n .py-2 {\n padding-block: calc(var(--spacing) * 2);\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-4 {\n padding-right: calc(var(--spacing) * 4);\n }\n .pb-3 {\n padding-bottom: calc(var(--spacing) * 3);\n }\n .pl-2 {\n padding-left: calc(var(--spacing) * 2);\n }\n .pl-10 {\n padding-left: calc(var(--spacing) * 10);\n }\n .text-center {\n text-align: center;\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 .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-\\[\\#271200\\] {\n color: #271200;\n }\n .text-gray-400 {\n color: var(--color-gray-400);\n }\n .text-gray-500 {\n color: var(--color-gray-500);\n }\n .text-gray-600 {\n color: var(--color-gray-600);\n }\n .text-green-600 {\n color: var(--color-green-600);\n }\n .text-red-500 {\n color: var(--color-red-500);\n }\n .text-white {\n color: var(--color-white);\n }\n .underline {\n text-decoration-line: underline;\n }\n .accent-\\[\\#271200\\] {\n accent-color: #271200;\n }\n .opacity-0 {\n opacity: 0%;\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 .outline {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\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 .transition-opacity {\n transition-property: opacity;\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 .group-hover\\:opacity-100 {\n &:is(:where(.group):hover *) {\n @media (hover: hover) {\n opacity: 100%;\n }\n }\n }\n .hover\\:bg-\\[\\#964500\\] {\n &:hover {\n @media (hover: hover) {\n background-color: #964500;\n }\n }\n }\n .hover\\:bg-\\[\\#ffffff\\] {\n &:hover {\n @media (hover: hover) {\n background-color: #ffffff;\n }\n }\n }\n .hover\\:bg-gray-50 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-gray-50);\n }\n }\n }\n .hover\\:bg-gray-200 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-gray-200);\n }\n }\n }\n .hover\\:bg-gray-500 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-gray-500);\n }\n }\n }\n .hover\\:bg-white {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-white);\n }\n }\n }\n .hover\\:text-\\[\\#271200\\] {\n &:hover {\n @media (hover: hover) {\n color: #271200;\n }\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-\\[\\#964500\\] {\n &:focus {\n --tw-ring-color: #964500;\n }\n }\n .focus\\:ring-blue-500 {\n &:focus {\n --tw-ring-color: var(--color-blue-500);\n }\n }\n .focus\\:outline-none {\n &:focus {\n --tw-outline-style: none;\n outline-style: none;\n }\n }\n .lg\\:gap-4 {\n @media (width >= 64rem) {\n gap: calc(var(--spacing) * 4);\n }\n }\n .\\[\\&\\:\\:-moz-range-thumb\\]\\:h-4 {\n &::-moz-range-thumb {\n height: calc(var(--spacing) * 4);\n }\n }\n .\\[\\&\\:\\:-moz-range-thumb\\]\\:w-4 {\n &::-moz-range-thumb {\n width: calc(var(--spacing) * 4);\n }\n }\n .\\[\\&\\:\\:-moz-range-thumb\\]\\:cursor-pointer {\n &::-moz-range-thumb {\n cursor: pointer;\n }\n }\n .\\[\\&\\:\\:-moz-range-thumb\\]\\:appearance-none {\n &::-moz-range-thumb {\n appearance: none;\n }\n }\n .\\[\\&\\:\\:-moz-range-thumb\\]\\:rounded-full {\n &::-moz-range-thumb {\n border-radius: calc(infinity * 1px);\n }\n }\n .\\[\\&\\:\\:-moz-range-thumb\\]\\:bg-\\[\\#271200\\] {\n &::-moz-range-thumb {\n background-color: #271200;\n }\n }\n .\\[\\&\\:\\:-moz-range-track\\]\\:h-2 {\n &::-moz-range-track {\n height: calc(var(--spacing) * 2);\n }\n }\n .\\[\\&\\:\\:-moz-range-track\\]\\:rounded-full {\n &::-moz-range-track {\n border-radius: calc(infinity * 1px);\n }\n }\n .\\[\\&\\:\\:-moz-range-track\\]\\:bg-gray-200 {\n &::-moz-range-track {\n background-color: var(--color-gray-200);\n }\n }\n .\\[\\&\\:\\:-webkit-slider-runnable-track\\]\\:h-2 {\n &::-webkit-slider-runnable-track {\n height: 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-runnable-track\\]\\:bg-gray-200 {\n &::-webkit-slider-runnable-track {\n background-color: var(--color-gray-200);\n }\n }\n .\\[\\&\\:\\:-webkit-slider-runnable-track\\]\\:bg-white {\n &::-webkit-slider-runnable-track {\n background-color: var(--color-white);\n }\n }\n .\\[\\&\\:\\:-webkit-slider-thumb\\]\\:h-4 {\n &::-webkit-slider-thumb {\n height: calc(var(--spacing) * 4);\n }\n }\n .\\[\\&\\:\\:-webkit-slider-thumb\\]\\:h-\\[5px\\] {\n &::-webkit-slider-thumb {\n height: 5px;\n }\n }\n .\\[\\&\\:\\:-webkit-slider-thumb\\]\\:h-\\[10px\\] {\n &::-webkit-slider-thumb {\n height: 10px;\n }\n }\n .\\[\\&\\:\\:-webkit-slider-thumb\\]\\:h-\\[50px\\] {\n &::-webkit-slider-thumb {\n height: 50px;\n }\n }\n .\\[\\&\\:\\:-webkit-slider-thumb\\]\\:w-4 {\n &::-webkit-slider-thumb {\n width: calc(var(--spacing) * 4);\n }\n }\n .\\[\\&\\:\\:-webkit-slider-thumb\\]\\:w-\\[5px\\] {\n &::-webkit-slider-thumb {\n width: 5px;\n }\n }\n .\\[\\&\\:\\:-webkit-slider-thumb\\]\\:w-\\[10px\\] {\n &::-webkit-slider-thumb {\n width: 10px;\n }\n }\n .\\[\\&\\:\\:-webkit-slider-thumb\\]\\:w-\\[50px\\] {\n &::-webkit-slider-thumb {\n width: 50px;\n }\n }\n .\\[\\&\\:\\:-webkit-slider-thumb\\]\\:cursor-pointer {\n &::-webkit-slider-thumb {\n cursor: pointer;\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-\\[\\#271200\\] {\n &::-webkit-slider-thumb {\n background-color: #271200;\n }\n }\n .\\[\\&\\:\\:-webkit-slider-thumb\\]\\:bg-purple-500 {\n &::-webkit-slider-thumb {\n background-color: var(--color-purple-500);\n }\n }\n .\\[\\&\\:\\:-webkit-slider-thumb\\]\\:bg-white {\n &::-webkit-slider-thumb {\n background-color: var(--color-white);\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-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-outline-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-duration {\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-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-outline-style: solid;\n --tw-duration: initial;\n }\n }\n}\n";
|
|
877
876
|
|
|
878
|
-
const FACTOR = 1;
|
|
879
877
|
const MapDraw = /*@__PURE__*/ proxyCustomElement(class MapDraw extends H {
|
|
880
878
|
constructor() {
|
|
881
879
|
super();
|
|
@@ -887,6 +885,7 @@ const MapDraw = /*@__PURE__*/ proxyCustomElement(class MapDraw extends H {
|
|
|
887
885
|
longitude = null;
|
|
888
886
|
config = DEFAULT_SOLAR_EXPERT_CONFIG;
|
|
889
887
|
solarPanel = DEFAULT_SOLAR_PANEL_TYPE;
|
|
888
|
+
showInstructions = true;
|
|
890
889
|
zoom = 1;
|
|
891
890
|
loadingState = "empty";
|
|
892
891
|
rgbTiff = null;
|
|
@@ -920,6 +919,8 @@ const MapDraw = /*@__PURE__*/ proxyCustomElement(class MapDraw extends H {
|
|
|
920
919
|
componentDidLoad() {
|
|
921
920
|
if (this.latitude && this.longitude) {
|
|
922
921
|
this.loadingState = "loading";
|
|
922
|
+
this.getBuildingInsights();
|
|
923
|
+
this.getBuildingImages();
|
|
923
924
|
}
|
|
924
925
|
requestAnimationFrame(() => {
|
|
925
926
|
if (this.canvasElement) {
|
|
@@ -930,11 +931,48 @@ const MapDraw = /*@__PURE__*/ proxyCustomElement(class MapDraw extends H {
|
|
|
930
931
|
}
|
|
931
932
|
});
|
|
932
933
|
}
|
|
934
|
+
// // Initial size update
|
|
935
|
+
// requestAnimationFrame(() => {
|
|
936
|
+
// this.updateCanvasSize();
|
|
937
|
+
// });
|
|
938
|
+
// }
|
|
939
|
+
// disconnectedCallback() {
|
|
940
|
+
// if (this.resizeObserver) {
|
|
941
|
+
// this.resizeObserver.disconnect();
|
|
942
|
+
// }
|
|
943
|
+
// }
|
|
944
|
+
// private updateCanvasSize() {
|
|
945
|
+
// if (!this.containerRef || !this.canvasElement || !this.polygonCanvas) {
|
|
946
|
+
// return;
|
|
947
|
+
// }
|
|
948
|
+
// const containerRect = this.containerRef.getBoundingClientRect();
|
|
949
|
+
// const containerWidth = containerRect.width;
|
|
950
|
+
// const containerHeight = containerRect.height;
|
|
951
|
+
// // Calculate the scale to fit the image while maintaining aspect ratio
|
|
952
|
+
// if (this.rgbTiff) {
|
|
953
|
+
// const imageAspect = this.rgbTiff.width / this.rgbTiff.height;
|
|
954
|
+
// const containerAspect = containerWidth / containerHeight;
|
|
955
|
+
// let width, height;
|
|
956
|
+
// if (imageAspect > containerAspect) {
|
|
957
|
+
// width = containerWidth;
|
|
958
|
+
// height = containerWidth / imageAspect;
|
|
959
|
+
// } else {
|
|
960
|
+
// height = containerHeight;
|
|
961
|
+
// width = containerHeight * imageAspect;
|
|
962
|
+
// }
|
|
963
|
+
// // Set the canvas dimensions
|
|
964
|
+
// this.canvasElement.width = width;
|
|
965
|
+
// this.canvasElement.height = height;
|
|
966
|
+
// this.polygonCanvas.width = width;
|
|
967
|
+
// this.polygonCanvas.height = height;
|
|
968
|
+
// this.polygonCtx = this.polygonCanvas.getContext("2d");
|
|
969
|
+
// // Update zoom factor based on new size
|
|
970
|
+
// this.zoom = width / this.rgbTiff.width;
|
|
971
|
+
// // Force a redraw
|
|
972
|
+
// this.drawMap();
|
|
973
|
+
// }
|
|
974
|
+
// }
|
|
933
975
|
sizeCanvas(width, height) {
|
|
934
|
-
// if (this.canvasElement) {
|
|
935
|
-
// this.canvasElement.width = width;
|
|
936
|
-
// this.canvasElement.height = height;
|
|
937
|
-
// }
|
|
938
976
|
if (this.polygonCanvas) {
|
|
939
977
|
this.polygonCanvas.width = width;
|
|
940
978
|
this.polygonCanvas.height = height;
|
|
@@ -980,10 +1018,44 @@ const MapDraw = /*@__PURE__*/ proxyCustomElement(class MapDraw extends H {
|
|
|
980
1018
|
this.pixelInMeters = getPixelInMeters(this.rgbTiff);
|
|
981
1019
|
this.loadingState = "loaded";
|
|
982
1020
|
}
|
|
1021
|
+
convertToCanvasCoordinates(event) {
|
|
1022
|
+
const rect = this.polygonCanvas.getBoundingClientRect();
|
|
1023
|
+
const siteX = event.clientX - rect.left;
|
|
1024
|
+
const siteY = event.clientY - rect.top;
|
|
1025
|
+
return {
|
|
1026
|
+
x: siteX / (rect.right - rect.left) * this.canvasElement.width,
|
|
1027
|
+
y: siteY / (rect.bottom - rect.top) * this.canvasElement.height,
|
|
1028
|
+
};
|
|
1029
|
+
}
|
|
983
1030
|
async drawMap() {
|
|
984
1031
|
if (!this.canvasElement || !this.rgbTiff || !this.buildingInsights)
|
|
985
1032
|
return;
|
|
986
|
-
|
|
1033
|
+
// Get the container dimensions
|
|
1034
|
+
const container = this.canvasElement.parentElement;
|
|
1035
|
+
if (!container)
|
|
1036
|
+
return;
|
|
1037
|
+
const containerRect = container.getBoundingClientRect();
|
|
1038
|
+
const containerWidth = containerRect.width;
|
|
1039
|
+
const containerHeight = containerRect.height;
|
|
1040
|
+
// Calculate the scale to fit the image while maintaining aspect ratio
|
|
1041
|
+
const imageAspect = this.rgbTiff.width / this.rgbTiff.height;
|
|
1042
|
+
const containerAspect = containerWidth / containerHeight;
|
|
1043
|
+
let width, height;
|
|
1044
|
+
if (imageAspect > containerAspect) {
|
|
1045
|
+
width = containerWidth;
|
|
1046
|
+
height = containerWidth / imageAspect;
|
|
1047
|
+
}
|
|
1048
|
+
else {
|
|
1049
|
+
height = containerHeight;
|
|
1050
|
+
width = containerHeight * imageAspect;
|
|
1051
|
+
}
|
|
1052
|
+
// Set the canvas dimensions
|
|
1053
|
+
this.canvasElement.width = width;
|
|
1054
|
+
this.canvasElement.height = height;
|
|
1055
|
+
this.sizeCanvas(width, height);
|
|
1056
|
+
// this.sizeCanvas(this.rgbTiff.width, this.rgbTiff.height);
|
|
1057
|
+
// Update zoom factor based on new size
|
|
1058
|
+
this.zoom = width / this.rgbTiff.width;
|
|
987
1059
|
renderCombinedWithZoom({
|
|
988
1060
|
rgb: this.rgbTiff,
|
|
989
1061
|
zoom: this.zoom,
|
|
@@ -993,9 +1065,8 @@ const MapDraw = /*@__PURE__*/ proxyCustomElement(class MapDraw extends H {
|
|
|
993
1065
|
handleMouseMove(event) {
|
|
994
1066
|
if (!this.polygonCanvas || !this.polygonCtx)
|
|
995
1067
|
return;
|
|
996
|
-
|
|
997
|
-
const x
|
|
998
|
-
const y = event.clientY - rect.top;
|
|
1068
|
+
// translate the website pixel coordinates to the canvas coordinates
|
|
1069
|
+
const { x, y } = this.convertToCanvasCoordinates(event);
|
|
999
1070
|
this.mousePoint = { x, y };
|
|
1000
1071
|
const currentPolygon = this.getCurrentPolygon();
|
|
1001
1072
|
// Check for point hover
|
|
@@ -1147,10 +1218,7 @@ const MapDraw = /*@__PURE__*/ proxyCustomElement(class MapDraw extends H {
|
|
|
1147
1218
|
return;
|
|
1148
1219
|
if (!this.polygonCanvas.contains(event.target))
|
|
1149
1220
|
return;
|
|
1150
|
-
|
|
1151
|
-
const rect = this.polygonCanvas.getBoundingClientRect();
|
|
1152
|
-
let x = event.clientX - rect.left;
|
|
1153
|
-
let y = event.clientY - rect.top;
|
|
1221
|
+
let { x, y } = this.convertToCanvasCoordinates(event);
|
|
1154
1222
|
if (this.currentTool.name === "delete") {
|
|
1155
1223
|
if (!this.hoveredPolygon) {
|
|
1156
1224
|
return;
|
|
@@ -1215,6 +1283,7 @@ const MapDraw = /*@__PURE__*/ proxyCustomElement(class MapDraw extends H {
|
|
|
1215
1283
|
_id = newPolygon._id;
|
|
1216
1284
|
}
|
|
1217
1285
|
this.selectedPolygon = { _id, type: this.currentTool.name };
|
|
1286
|
+
this.drawPolygons();
|
|
1218
1287
|
return;
|
|
1219
1288
|
}
|
|
1220
1289
|
const { _id, type } = this.selectedPolygon;
|
|
@@ -1341,33 +1410,36 @@ const MapDraw = /*@__PURE__*/ proxyCustomElement(class MapDraw extends H {
|
|
|
1341
1410
|
render() {
|
|
1342
1411
|
const t = getLanguageStrings(this.language);
|
|
1343
1412
|
const currentPolygon = this.getCurrentPolygon();
|
|
1344
|
-
return (h("div", { key: '
|
|
1345
|
-
backgroundColor: "rgba(0, 0, 0, 0.
|
|
1346
|
-
} },
|
|
1347
|
-
this.loadingState !== "loaded") && (h("div", { key: '391c7ec94e59db3ec783e9b00558b9cd85bd6b16', class: "absolute flex items-center justify-center bg-white bg-opacity-75 z-20 pt-7 rounded-4xl" }, h("div", { key: '1a4c89acbb2289e7fe08b87d5f94d400ed5058c2', class: "animate-spin rounded-full h-16 w-16 border-t-2 border-b-2 border-[#271200]" }))), h("div", { key: '4549d63240b420c46136c42bd00d59b59d3b961b', class: "flex lg:gap-4 rounded-4xl bg-[#f3ebda] p-4" }, tools.map((tool) => {
|
|
1413
|
+
return (h("div", { key: '5c4bffa29e1584486b5f1b479fd00bc0495d60c3', class: "flex flex-col justify-center items-center w-full h-full gap-4" }, this.showInstructions && (h("div", { key: 'b1320f8e49b39f0c922c78781e1c74835fa1802b', class: "w-full rounded-4xl p-4", style: {
|
|
1414
|
+
backgroundColor: "rgba(0, 0, 0, 0.1)",
|
|
1415
|
+
} }, "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", " ", h("icon-selector", { key: '3592c6d05baaca45ea0ccc28c59600fea84ecd0b', name: "house", inline: true }), " ", ". If you have skylights or other obstructions where you don't want to add solar panels, mark those as well with the obstruction tool", " ", h("icon-selector", { key: 'b9430ece54f0c405970c00f8aec2df37f0eb4cc5', name: "octagon-minus", inline: true }), ". You can delete polygons with the delete tool", " ", h("icon-selector", { key: '48d24aac3f043f09b533cabd8593b951c38fbc55', name: "eraser", inline: true }), ". If you want to change the azimuth or pitch of a polygon, select the move tool", " ", h("icon-selector", { key: 'd69c5da3e5cbb7c1766a81abd3c2b165a33880b4', name: "move", inline: true }), ", select the polygon you want to change and drag and drop the edges.")), h("div", { key: 'd096fb986027c4532ae0a282000bf098be3d58c3', class: "flex lg:gap-4 rounded-4xl bg-[#f3ebda] p-4 flex-wrap justify-center w-full" }, tools.map((tool) => {
|
|
1348
1416
|
const toolStrings = t.mapDraw.tools[tool.name];
|
|
1349
|
-
return (h("button", { class: `px-4 py-2 rounded-4xl transition-colors duration-200 hover:bg-[#
|
|
1350
|
-
? "bg-[#271200] hover:bg-
|
|
1351
|
-
: "bg-[#f3ebda] hover:bg-[#
|
|
1417
|
+
return (h("button", { class: `px-4 py-2 rounded-4xl transition-colors duration-200 hover:bg-[#ffffff] ${this.currentTool.name === tool.name
|
|
1418
|
+
? "bg-[#271200] hover:bg-gray-500"
|
|
1419
|
+
: "bg-[#f3ebda] hover:bg-[#ffffff]"}`, style: {
|
|
1352
1420
|
color: this.currentTool.name === tool.name
|
|
1353
1421
|
? "#ffffff"
|
|
1354
1422
|
: "#000000",
|
|
1355
1423
|
}, "aria-label": toolStrings.ariaLabel, title: toolStrings.explanation, onClick: () => this.handleToolSelect(tool) }, h("div", { class: "flex items-center gap-1 flex-col" }, h("icon-selector", { name: tool.icon }), h("span", null, toolStrings.name))));
|
|
1356
|
-
})), h("div", { key: '
|
|
1357
|
-
|
|
1358
|
-
|
|
1359
|
-
|
|
1424
|
+
})), this.loadingState === "empty" && (h("div", { key: '16a1968748a9ade0dded7a43d8eb56de252f47d0', class: "w-full" }, h("p", { key: '7c1779caab5a9466fb200116cb4d8bee2739fe26', class: "text-white text-center flex items-center justify-center rounded-4xl p-4 w-full", style: {
|
|
1425
|
+
backgroundColor: "rgba(0, 0, 0, 0.5)",
|
|
1426
|
+
} }, t.mapDraw.noAddressSelected))), (this.latitude && this.longitude &&
|
|
1427
|
+
this.loadingState === "loading") && (h("div", { key: 'a2e36a6868392806295dd188d5a6dcf09ad375b3', class: "flex items-center justify-center w-full bg-opacity-75 z-20 pt-7 rounded-4xl" }, h("div", { key: '38730ad2043af72356f5b61aaf835aa1bf605f1a', class: "animate-spin rounded-full h-16 w-16 border-t-2 border-b-2 border-[#271200]" }))), h("div", { key: 'a727bc7ab694c998ea870085d2624ed71b190491', class: "flex items-start justify-center h-full w-full bg-[#f3ebda] rounded-4xl" }, h("div", { key: '25175a8d357fcc9535fc21a6d96b026978afcc0e', class: "relative h-full flex items-center justify-center w-full rounded-4xl bg-[#271200]", style: {
|
|
1428
|
+
aspectRatio: this.rgbTiff
|
|
1429
|
+
? `${this.rgbTiff.width}/${this.rgbTiff.height}`
|
|
1430
|
+
: "1/1",
|
|
1431
|
+
} }, h("canvas", { key: '662e580303a7b7b347bc05646bc0a71bade4692f', ref: (el) => this.canvasElement = el, class: "absolute top-0 left-0 w-full h-full rounded-4xl", style: {
|
|
1360
1432
|
cursor: this.currentTool.cursor,
|
|
1361
|
-
} }), h("canvas", { key: '
|
|
1433
|
+
} }), h("canvas", { key: '6bb0d1340336296a5ec4ebf42931422d0cf8d076', ref: (el) => this.polygonCanvas = el, class: "absolute top-0 left-0 w-full h-full rounded-4xl", style: {
|
|
1362
1434
|
cursor: this.currentTool.cursor,
|
|
1363
|
-
} }))), h("div", { key: '
|
|
1364
|
-
? (h("div", { class: "space-y-4" }, h("div", { class: "flex flex-col gap-2" }, h("button", { class: "px-4 py-2 bg-[#271200] rounded-4xl hover:bg-[#
|
|
1435
|
+
} }))), h("div", { key: 'f67881f3f696aa658aba1d3bc94ea31912c4bcc4', class: "flex gap-4 flex-row justify-center items-center w-full" }, h("div", { key: '8bc9da72573d53e564c97203d5f20a399b995cfd', class: "w-full bg-[#f3ebda] rounded-4xl p-4" }, h("h3", { key: 'fc679612cc3a3e77dfb79bb0fb69ae536a0f9bca', class: "text-lg font-semibold mb-4 text-center" }, t.mapDraw.information), currentPolygon?.details
|
|
1436
|
+
? (h("div", { class: "space-y-4" }, h("div", { class: "flex flex-col gap-2" }, h("button", { class: "px-4 py-2 bg-[#271200] rounded-4xl hover:bg-[#ffffff] hover:text-[#271200] transition-colors duration-200", onClick: () => this.calculateSolarPanels(), style: {
|
|
1365
1437
|
color: "#ffffff",
|
|
1366
1438
|
} }, t.mapDraw.calculateSolarPanels), this
|
|
1367
1439
|
.roofPolygonsSolarPanels[currentPolygon._id] && (h("p", { class: "text-lg text-center" }, this
|
|
1368
1440
|
.roofPolygonsSolarPanels[currentPolygon._id].positionedPanels
|
|
1369
1441
|
.length, " ", t.mapDraw.panels))), h("div", null, h("h4", { class: "text-sm font-medium text-gray-600" }, t.mapDraw.area), h("p", { class: "text-lg" }, currentPolygon.details?.area
|
|
1370
|
-
.toFixed(2), " m\u00B2")), h("div", null, h("h4", { class: "text-sm font-medium text-gray-600" },
|
|
1442
|
+
.toFixed(2), " m\u00B2")), h("div", null, h("h4", { class: "text-sm font-medium text-gray-600" }, t.mapDraw.azimuth), h("div", { class: "flex gap-2 flex-row justify-start bg-white rounded-4xl p-2" }, h("input", { class: "text-lg w-full", onKeyDown: (e) => {
|
|
1371
1443
|
if (e.key === "Enter") {
|
|
1372
1444
|
this.handleAzimuthChange(e);
|
|
1373
1445
|
e.target
|
|
@@ -1376,7 +1448,21 @@ const MapDraw = /*@__PURE__*/ proxyCustomElement(class MapDraw extends H {
|
|
|
1376
1448
|
}, value: currentPolygon
|
|
1377
1449
|
.details
|
|
1378
1450
|
?.azimuth }), "(", azimuthToCardinal(currentPolygon.details
|
|
1379
|
-
?.azimuth), ")")
|
|
1451
|
+
?.azimuth), ")"), h("input", { type: "range", min: "0", max: "360", class: "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-white", value: currentPolygon
|
|
1452
|
+
.details?.azimuth, onInput: (e) => {
|
|
1453
|
+
const target = e
|
|
1454
|
+
.target;
|
|
1455
|
+
const azimuth = parseFloat(target.value);
|
|
1456
|
+
currentPolygon.details
|
|
1457
|
+
.azimuth = azimuth;
|
|
1458
|
+
if (currentPolygon
|
|
1459
|
+
.type ===
|
|
1460
|
+
"roof" &&
|
|
1461
|
+
this.roofPolygonsSolarPanels[currentPolygon
|
|
1462
|
+
._id]) {
|
|
1463
|
+
this.calculateSolarPanels();
|
|
1464
|
+
}
|
|
1465
|
+
} })), h("div", null, h("h4", { class: "text-sm font-medium text-gray-600 pl-2" }, t.mapDraw.pitch), h("div", { class: "flex gap-2 flex-row justify-start bg-white rounded-4xl p-2" }, h("input", { class: "text-lg w-full", onKeyDown: (e) => {
|
|
1380
1466
|
if (e.key === "Enter") {
|
|
1381
1467
|
this.handlePitchChange(e);
|
|
1382
1468
|
e.target
|
|
@@ -1384,8 +1470,22 @@ const MapDraw = /*@__PURE__*/ proxyCustomElement(class MapDraw extends H {
|
|
|
1384
1470
|
}
|
|
1385
1471
|
}, value: currentPolygon
|
|
1386
1472
|
.details
|
|
1387
|
-
?.pitch }), "\u00B0")
|
|
1388
|
-
|
|
1473
|
+
?.pitch }), "\u00B0"), h("input", { type: "range", min: "0", max: "90", class: "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-white", value: currentPolygon
|
|
1474
|
+
.details?.pitch, onInput: (e) => {
|
|
1475
|
+
const target = e
|
|
1476
|
+
.target;
|
|
1477
|
+
const pitch = parseFloat(target.value);
|
|
1478
|
+
currentPolygon.details
|
|
1479
|
+
.pitch = pitch;
|
|
1480
|
+
if (currentPolygon
|
|
1481
|
+
.type ===
|
|
1482
|
+
"roof" &&
|
|
1483
|
+
this.roofPolygonsSolarPanels[currentPolygon
|
|
1484
|
+
._id]) {
|
|
1485
|
+
this.calculateSolarPanels();
|
|
1486
|
+
}
|
|
1487
|
+
} }))))
|
|
1488
|
+
: (h("p", { class: "text-gray-500 text-center" }, t.mapDraw.noPolygonSelected)))), h("div", { key: '4bf7b06b1ba3e654336eee59fadbd84acc106fa6', class: "w-full" }, h("solar-system-form", { key: 'd4f07caf0bf86edacd638e88f459a85076035168', systemConfigs: this.roofPolygonsSolarPanels, language: this.language, roofPolygons: this.roofPolygons, obstructionPolygons: this.obstructionPolygons }))));
|
|
1389
1489
|
}
|
|
1390
1490
|
static get watchers() { return {
|
|
1391
1491
|
"latitude": ["getBuildingInsights", "getBuildingImages"],
|
|
@@ -1402,6 +1502,7 @@ const MapDraw = /*@__PURE__*/ proxyCustomElement(class MapDraw extends H {
|
|
|
1402
1502
|
"longitude": [2],
|
|
1403
1503
|
"config": [16],
|
|
1404
1504
|
"solarPanel": [16, "solar-panel"],
|
|
1505
|
+
"showInstructions": [32],
|
|
1405
1506
|
"zoom": [32],
|
|
1406
1507
|
"loadingState": [32],
|
|
1407
1508
|
"rgbTiff": [32],
|
|
@@ -1477,6 +1578,6 @@ function defineCustomElement() {
|
|
|
1477
1578
|
defineCustomElement();
|
|
1478
1579
|
|
|
1479
1580
|
export { MapDraw as M, defineCustomElement as d };
|
|
1480
|
-
//# sourceMappingURL=p-
|
|
1581
|
+
//# sourceMappingURL=p-DEfwuR25.js.map
|
|
1481
1582
|
|
|
1482
|
-
//# sourceMappingURL=p-
|
|
1583
|
+
//# sourceMappingURL=p-DEfwuR25.js.map
|