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.
Files changed (130) hide show
  1. 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
  2. package/dist/cjs/eraser-icon_9.cjs.entry.js +388 -15110
  3. package/dist/cjs/eraser-icon_9.cjs.entry.js.map +1 -1
  4. package/dist/cjs/{index-BFx4q5Ui.js → index-GZ-kuJi4.js} +8 -28
  5. package/dist/{esm/index-D0YnIAAN.js.map → cjs/index-GZ-kuJi4.js.map} +1 -1
  6. package/dist/cjs/loader.cjs.js +2 -2
  7. package/dist/cjs/loading-widget.cjs.entry.js +20 -0
  8. package/dist/cjs/loading-widget.cjs.entry.js.map +1 -0
  9. package/dist/cjs/loading-widget.entry.cjs.js.map +1 -0
  10. package/dist/cjs/solar-calculator.cjs.entry.js +3 -3
  11. package/dist/cjs/solar-calculator.cjs.entry.js.map +1 -1
  12. package/dist/cjs/solar-calculator.entry.cjs.js.map +1 -1
  13. package/dist/cjs/stencil-library.cjs.js +2 -2
  14. package/dist/collection/collection-manifest.json +2 -1
  15. package/dist/collection/components/icons/eraser.js +26 -1
  16. package/dist/collection/components/icons/eraser.js.map +1 -1
  17. package/dist/collection/components/icons/house.js +26 -1
  18. package/dist/collection/components/icons/house.js.map +1 -1
  19. package/dist/collection/components/icons/icon.js +27 -6
  20. package/dist/collection/components/icons/icon.js.map +1 -1
  21. package/dist/collection/components/icons/move.js +26 -1
  22. package/dist/collection/components/icons/move.js.map +1 -1
  23. package/dist/collection/components/icons/octagonMinus.js +26 -1
  24. package/dist/collection/components/icons/octagonMinus.js.map +1 -1
  25. package/dist/collection/components/icons/search.js +26 -1
  26. package/dist/collection/components/icons/search.js.map +1 -1
  27. package/dist/collection/components/map-draw/map-draw.js +133 -31
  28. package/dist/collection/components/map-draw/map-draw.js.map +1 -1
  29. package/dist/collection/components/solar-calculator/solar-calculator.js +1 -1
  30. package/dist/collection/components/solar-expert/solar-expert.js +3 -3
  31. package/dist/collection/components/solar-expert/solar-expert.js.map +1 -1
  32. package/dist/collection/components/solar-system-form/solar-system-form.js +86 -84
  33. package/dist/collection/components/solar-system-form/solar-system-form.js.map +1 -1
  34. package/dist/collection/components/widgets/loading-widget.js +18 -0
  35. package/dist/collection/components/widgets/loading-widget.js.map +1 -0
  36. package/dist/collection/output.css +284 -0
  37. package/dist/collection/utils/geometry/gridMatch.js +0 -1
  38. package/dist/collection/utils/geometry/gridMatch.js.map +1 -1
  39. package/dist/collection/utils/lang/english.js +1 -1
  40. package/dist/collection/utils/lang/english.js.map +1 -1
  41. package/dist/collection/utils/lang/german.js +3 -3
  42. package/dist/collection/utils/lang/german.js.map +1 -1
  43. package/dist/collection/utils/lang/spanish.js +1 -1
  44. package/dist/collection/utils/lang/spanish.js.map +1 -1
  45. package/dist/components/eraser-icon.js +1 -1
  46. package/dist/components/house-icon.js +1 -1
  47. package/dist/components/icon-selector.js +1 -1
  48. package/dist/components/index.js +7 -22
  49. package/dist/components/index.js.map +1 -1
  50. package/dist/components/loading-widget.d.ts +11 -0
  51. package/dist/components/loading-widget.js +36 -0
  52. package/dist/components/loading-widget.js.map +1 -0
  53. package/dist/components/map-draw.js +1 -1
  54. package/dist/components/move-icon.js +1 -1
  55. package/dist/components/octagon-minus-icon.js +1 -1
  56. package/dist/components/p-BGspvo5S.js +36 -0
  57. package/dist/components/p-BGspvo5S.js.map +1 -0
  58. package/dist/components/p-C46bD4Bg.js +36 -0
  59. package/dist/components/p-C46bD4Bg.js.map +1 -0
  60. package/dist/components/p-CB8h41UZ.js +36 -0
  61. package/dist/components/p-CB8h41UZ.js.map +1 -0
  62. package/dist/components/p-CHsmfSJD.js +36 -0
  63. package/dist/components/p-CHsmfSJD.js.map +1 -0
  64. package/dist/components/p-Cg3h6HF4.js +83 -0
  65. package/dist/components/p-Cg3h6HF4.js.map +1 -0
  66. package/dist/components/p-D6cs3r7j.js +621 -0
  67. package/dist/components/p-D6cs3r7j.js.map +1 -0
  68. package/dist/components/{p-CtPeF0hC.js → p-DEfwuR25.js} +143 -42
  69. package/dist/components/p-DEfwuR25.js.map +1 -0
  70. package/dist/components/p-DP1y5q1K.js +36 -0
  71. package/dist/components/p-DP1y5q1K.js.map +1 -0
  72. package/dist/components/search-icon.js +1 -1
  73. package/dist/components/solar-calculator.js +2 -2
  74. package/dist/components/solar-calculator.js.map +1 -1
  75. package/dist/components/solar-expert.js +12 -12
  76. package/dist/components/solar-expert.js.map +1 -1
  77. package/dist/components/solar-system-form.js +1 -1
  78. 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
  79. package/dist/esm/eraser-icon_9.entry.js +370 -15092
  80. package/dist/esm/eraser-icon_9.entry.js.map +1 -1
  81. package/dist/esm/{index-D0YnIAAN.js → index-CnQR_-WL.js} +8 -28
  82. package/dist/{cjs/index-BFx4q5Ui.js.map → esm/index-CnQR_-WL.js.map} +1 -1
  83. package/dist/esm/loader.js +3 -3
  84. package/dist/esm/loading-widget.entry.js +18 -0
  85. package/dist/esm/loading-widget.entry.js.map +1 -0
  86. package/dist/esm/solar-calculator.entry.js +3 -3
  87. package/dist/esm/solar-calculator.entry.js.map +1 -1
  88. package/dist/esm/stencil-library.js +3 -3
  89. 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
  90. package/dist/stencil-library/loading-widget.entry.esm.js.map +1 -0
  91. package/dist/stencil-library/p-25e04c7a.entry.js +2 -0
  92. package/dist/stencil-library/p-25e04c7a.entry.js.map +1 -0
  93. package/dist/stencil-library/p-642b4ce9.entry.js +32 -0
  94. package/dist/stencil-library/{p-ded21f18.entry.js.map → p-642b4ce9.entry.js.map} +1 -1
  95. package/dist/stencil-library/p-CnQR_-WL.js +3 -0
  96. package/dist/stencil-library/{p-D0YnIAAN.js.map → p-CnQR_-WL.js.map} +1 -1
  97. package/dist/stencil-library/p-a8d15c85.entry.js +2 -0
  98. package/dist/stencil-library/p-a8d15c85.entry.js.map +1 -0
  99. package/dist/stencil-library/solar-calculator.entry.esm.js.map +1 -1
  100. package/dist/stencil-library/stencil-library.esm.js +1 -1
  101. package/dist/types/components/icons/eraser.d.ts +1 -0
  102. package/dist/types/components/icons/house.d.ts +1 -0
  103. package/dist/types/components/icons/icon.d.ts +1 -0
  104. package/dist/types/components/icons/move.d.ts +1 -0
  105. package/dist/types/components/icons/octagonMinus.d.ts +1 -0
  106. package/dist/types/components/icons/search.d.ts +1 -0
  107. package/dist/types/components/map-draw/map-draw.d.ts +2 -0
  108. package/dist/types/components/solar-system-form/solar-system-form.d.ts +3 -2
  109. package/dist/types/components/widgets/loading-widget.d.ts +3 -0
  110. package/dist/types/components.d.ts +25 -0
  111. package/package.json +1 -1
  112. package/dist/components/p-BL_DlPdu.js +0 -33
  113. package/dist/components/p-BL_DlPdu.js.map +0 -1
  114. package/dist/components/p-BcT1n-3A.js +0 -15447
  115. package/dist/components/p-BcT1n-3A.js.map +0 -1
  116. package/dist/components/p-CC3tp0bK.js +0 -33
  117. package/dist/components/p-CC3tp0bK.js.map +0 -1
  118. package/dist/components/p-CtPeF0hC.js.map +0 -1
  119. package/dist/components/p-D064AshY.js +0 -33
  120. package/dist/components/p-D064AshY.js.map +0 -1
  121. package/dist/components/p-DQwOnYzQ.js +0 -33
  122. package/dist/components/p-DQwOnYzQ.js.map +0 -1
  123. package/dist/components/p-DbEU_5GR.js +0 -33
  124. package/dist/components/p-DbEU_5GR.js.map +0 -1
  125. package/dist/components/p-Dv86mKXd.js +0 -81
  126. package/dist/components/p-Dv86mKXd.js.map +0 -1
  127. package/dist/stencil-library/p-7512b392.entry.js +0 -20
  128. package/dist/stencil-library/p-7512b392.entry.js.map +0 -1
  129. package/dist/stencil-library/p-D0YnIAAN.js +0 -3
  130. 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-BcT1n-3A.js';
4
- import { d as defineCustomElement$7 } from './p-DQwOnYzQ.js';
5
- import { d as defineCustomElement$6 } from './p-CC3tp0bK.js';
6
- import { d as defineCustomElement$5 } from './p-Dv86mKXd.js';
7
- import { d as defineCustomElement$4 } from './p-DbEU_5GR.js';
8
- import { d as defineCustomElement$3 } from './p-D064AshY.js';
9
- import { d as defineCustomElement$2 } from './p-BL_DlPdu.js';
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
- this.sizeCanvas(this.rgbTiff.width, this.rgbTiff.height);
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
- const rect = this.polygonCanvas.getBoundingClientRect();
997
- const x = event.clientX - rect.left;
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
- // get the mouse position in the polygon canvas
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: '16a466a7726ff3fa023dadcc42dcd8afda72243c', class: "flex flex-col justify-center items-center w-full h-full gap-4" }, this.loadingState === "empty" && (h("div", { key: '52a8c08765bf0d9df5035e28c9f83887b0c92954', class: "absolute h-16" }, h("p", { key: 'c841d9e3556a0036bacdb9636854051b9dabce93', class: "text-white text-center h-full flex items-center justify-center rounded-4xl p-4", style: {
1345
- backgroundColor: "rgba(0, 0, 0, 0.5)",
1346
- } }, t.mapDraw.noAddressSelected))), (this.latitude && this.longitude &&
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-[#964500] ${this.currentTool.name === tool.name
1350
- ? "bg-[#271200] hover:bg-[#964500]"
1351
- : "bg-[#f3ebda] hover:bg-[#964500]"}`, style: {
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: '1d36068f300962b0f2ccbccd484076915412fbf1', class: "flex gap-4 items-start justify-center h-full" }, h("div", { key: '6a2492de11750cacedc3ffc9a9e01c66fa6e6031', class: "relative flex-1 h-full p-4 rounded-4xl flex items-center justify-center", style: {
1357
- width: `${this.rgbTiff?.width * FACTOR || 0}px`,
1358
- height: `${this.rgbTiff?.height * FACTOR || 0}px`,
1359
- } }, h("canvas", { key: '93a50ba293f226152e614718767df0ffa274a08a', ref: (el) => this.canvasElement = el, class: `absolute top-0 left-0 z-1 rounded-4xl m-auto`, style: {
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: '4207b77d0f4b4cbcbb91d800328c9dc33740935e', ref: (el) => this.polygonCanvas = el, class: `absolute top-0 left-0 z-10 rounded-4xl m-auto`, style: {
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: '89780b73df8b242f9b3da63ecdcc59a3bd72eb54', class: "flex gap-4 flex-row justify-center items-center" }, h("div", { key: '1505f155bff334fb693c606d9e6eaca62c355d1e', class: "w-52 bg-[#f3ebda] rounded-4xl p-4" }, h("h3", { key: 'aee747835a6458d930170d5a88e1225a0414ad2a', class: "text-lg font-semibold mb-4 text-center" }, t.mapDraw.information), currentPolygon?.details
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-[#964500] transition-colors duration-200", onClick: () => this.calculateSolarPanels(), style: {
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" }, "Orientation"), h("div", { class: "flex gap-2 flex-row justify-start" }, h("input", { class: "text-lg w-full", onKeyDown: (e) => {
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), ")")), h("div", null, h("h4", { class: "text-sm font-medium text-gray-600" }, t.mapDraw.pitch), h("div", { class: "flex gap-2 flex-row justify-start" }, h("input", { class: "text-lg w-full", onKeyDown: (e) => {
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
- : (h("p", { class: "text-gray-500 text-center" }, t.mapDraw.noPolygonSelected)))), h("solar-system-form", { key: '89f1027028058c0c01f2be0f57ef099792805720', systemConfigs: this.roofPolygonsSolarPanels, language: this.language, roofPolygons: this.roofPolygons, obstructionPolygons: this.obstructionPolygons })));
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-CtPeF0hC.js.map
1581
+ //# sourceMappingURL=p-DEfwuR25.js.map
1481
1582
 
1482
- //# sourceMappingURL=p-CtPeF0hC.js.map
1583
+ //# sourceMappingURL=p-DEfwuR25.js.map