1import{az as f,ai as S,T as P,aR as v,n as x,ɵ as O,D as w,r as k,s as D,z as T,u as E,t as z,b2 as j,b1 as e,a$ as M,b0 as t,bp as o,b3 as q,bu as u,aP as C,bd as N,aK as s,bv as p,ba as c,aO as y,b7 as F,br as V,bl as b,bt as _,bi as h}from"./index-B-9Bdbdi.js";function H(m,i){m&1&&(e(0,"div",24)(1,"span",28),o(2,"check_circle"),t(),o(3," Suggestion submitted successfully! Thank you. "),t())}function W(m,i){if(m&1&&(e(0,"div",25)(1,"span",28),o(2,"error"),t(),o(3),t()),m&2){const r=F();s(3),V(" ",r.submitError()," ")}}function A(m,i){m&1&&(M(0,"span",29),o(1," Submitting... "))}function L(m,i){m&1&&o(0," Submit ")}class g{formData=f({name:"",email:"",phone:"",message:""});submitting=f(!1);submitSuccess=f(!1);submitError=f("");suggestionsService=S(P);async onSubmit(){if(this.submitting())return;const i=this.formData();if(!i.name||!i.email||!i.message){this.submitError.set("Please fill in all required fields.");return}this.submitting.set(!0),this.submitError.set(""),this.submitSuccess.set(!1);try{await this.suggestionsService.submit({name:i.name,email:i.email,phone:i.phone,message:i.message}),this.submitSuccess.set(!0),this.formData.set({name:"",email:"",phone:"",message:""})}catch(r){this.submitError.set(r instanceof Error?r.message:"Submission failed. Please try again.")}finally{this.submitting.set(!1)}}static ɵfac=function(r){return new(r||g)};static ɵcmp=v({type:g,selectors:[["app-suggestions"]],hostAttrs:["ngSkipHydration",""],decls:44,vars:12,consts:[["suggestionsForm","ngForm"],[1,"contact-us-container"],[1,"contact-content"],[1,"contact-info"],[1,"logo-container"],["src","/eskimo-hut-logo-256.png","alt","Eskimo Hut Logo",1,"logo-image"],[1,"info-text"],[1,"headquarters-title"],[1,"contact-details"],[1,"contact-item"],["href","mailto:[email protected]",1,"contact-link"],["href","tel:+12818591994",1,"contact-link"],[1,"contact-form-section"],[1,"form-title"],[1,"contact-form",3,"ngSubmit"],[1,"form-group"],["for","name",1,"form-label"],["type","text","id","name","name","name","required","",1,"form-input",3,"ngModelChange","ngModel","disabled"],["for","email",1,"form-label"],["type","email","id","email","name","email","required","",1,"form-input",3,"ngModelChange","ngModel","disabled"],["for","phone",1,"form-label"],["type","tel","id","phone","name","phone",1,"form-input",3,"ngModelChange","ngModel","disabled"],["for","message",1,"form-label"],["id","message","name","message","rows","4","required","",1,"form-input","form-textarea",3,"ngModelChange","ngModel","disabled"],[1,"p-3","mb-4","bg-green-500/20","border-2","border-green-500/40","rounded","text-sm","text-white","font-semibold","text-center","flex","items-center","justify-center","gap-2"],[1,"p-3","mb-4","bg-red-500/20","border-2","border-red-500/40","rounded","text-sm","text-white","font-semibold","text-center","flex","items-center","justify-center","gap-2"],[1,"form-actions"],["type","submit",1,"submit-btn",3,"disabled"],[1,"material-symbols-outlined","text-lg"],[1,"inline-block","w-4","h-4","border-2","border-primary/60","border-t-primary","rounded-full","animate-spin","mr-2"]],template:function(r,n){if(r&1){const l=j();e(0,"div",1)(1,"div",2)(2,"div",3)(3,"div",4),M(4,"img",5),t(),e(5,"div",6)(6,"h2",7),o(7,"Eskimo Hut Headquarters"),t(),e(8,"div",8)(9,"p",9),o(10," Email: "),e(11,"a",10),o(12," [email protected] "),t()(),e(13,"p",9),o(14," Phone: "),e(15,"a",11),o(16," +1 281-859-1994 "),t()()()()(),e(17,"div",12)(18,"h2",13),o(19,"Send Us a Suggestion"),t(),e(20,"form",14,0),q("ngSubmit",function(){return n.onSubmit()}),e(22,"div",15)(23,"label",16),o(24,"Name:"),t(),e(25,"input",17),u("ngModelChange",function(a){return b(l),_(n.formData().name,a)||(n.formData().name=a),h(a)}),t()(),e(26,"div",15)(27,"label",18),o(28,"Email:"),t(),e(29,"input",19),u("ngModelChange",function(a){return b(l),_(n.formData().email,a)||(n.formData().email=a),h(a)}),t()(),e(30,"div",15)(31,"label",20),o(32,"Phone:"),t(),e(33,"input",21),u("ngModelChange",function(a){return b(l),_(n.formData().phone,a)||(n.formData().phone=a),h(a)}),t()(),e(34,"div",15)(35,"label",22),o(36,"Suggestion:"),t(),e(37,"textarea",23),u("ngModelChange",function(a){return b(l),_(n.formData().message,a)||(n.formData().message=a),h(a)}),t()(),C(38,H,4,0,"div",24),C(39,W,4,1,"div",25),e(40,"div",26)(41,"button",27),C(42,A,2,0)(43,L,1,0),t()()()()()()}if(r&2){const l=N(21);s(25),p("ngModel",n.formData().name),c("disabled",n.submitting()),s(4),p("ngModel",n.formData().email),c("disabled",n.submitting()),s(4),p("ngModel",n.formData().phone),c("disabled",n.submitting()),s(4),p("ngModel",n.formData().message),c("disabled",n.submitting()),s(),y(n.submitSuccess()?38:-1),s(),y(n.submitError()?39:-1),s(2),c("disabled",l.invali
1d||n.submitting()),s(),y(n.submitting()?42:43)}},dependencies:[x,O,w,k,D,T,E,z],styles:[`.contact-us-container[_ngcontent-%COMP%] { 2 min-height: 100vh; 3 background-color: var(--color-background); 4 padding: 2rem 1rem; 5 display: flex; 6 align-items: center; 7 justify-content: center; 8} 9 10.contact-content[_ngcontent-%COMP%] { 11 display: grid; 12 grid-template-columns: 1fr 1fr; 13 gap: 3rem; 14 max-width: 1000px; 15 width: 100%; 16 margin: 0 auto; 17} 18 19.contact-info[_ngcontent-%COMP%] { 20 display: flex; 21 flex-direction: column; 22 align-items: center; 23 justify-content: center; 24 text-align: center; 25 padding: 2rem 0; 26} 27 28.logo-container[_ngcontent-%COMP%] { 29 margin-bottom: 2rem; 30} 31 32.logo-image[_ngcontent-%COMP%] { 33 width: 256px; 34 height: auto; 35} 36 37.info-text[_ngcontent-%COMP%] { 38 color: var(--color-primary); 39} 40 41.headquarters-title[_ngcontent-%COMP%] { 42 font-family: var(--font-display); 43 font-size: 1.5rem; 44 font-weight: 700; 45 color: var(--color-primary); 46 margin-bottom: 1rem; 47 text-align: left; 48} 49 50.contact-details[_ngcontent-%COMP%] { 51 display: flex; 52 flex-direction: column; 53 gap: 0.5rem; 54 text-align: left; 55} 56 57.contact-item[_ngcontent-%COMP%] { 58 font-family: var(--font-body); 59 font-size: 1rem; 60 color: var(--color-primary); 61 margin: 0; 62} 63 64.contact-link[_ngcontent-%COMP%] { 65 color: var(--color-primary); 66 text-decoration: none; 67 transition: opacity 0.3s ease; 68} 69.contact-link[_ngcontent-%COMP%]:hover { 70 opacity: 0.8; 71 text-decoration: underline; 72} 73 74.contact-form-section[_ngcontent-%COMP%] .form-title[_ngcontent-%COMP%] { 75 font-family: var(--font-display); 76 font-size: 1.5rem; 77 font-weight: 700; 78 color: var(--color-primary); 79 margin-bottom: 1rem; 80} 81 82.contact-form[_ngcontent-%COMP%] { 83 background-color: var(--color-secondary); 84 padding: 1.5rem; 85 border-radius: 4px; 86} 87 88.form-group[_ngcontent-%COMP%] { 89 margin-bottom: 1rem; 90} 91.form-group[_ngcontent-%COMP%]:last-of-type { 92 margin-bottom: 1.5rem; 93} 94 95.form-label[_ngcontent-%COMP%] { 96 display: block; 97 font-family: var(--font-body); 98 font-size: 0.9375rem; 99 font-weight: 600; 100 color: #ffffff; 101 margin-bottom: 0.25rem; 102} 103 104.form-input[_ngcontent-%COMP%] { 105 width: 100%; 106 padding: 0.625rem; 107 font-family: var(--font-body); 108 font-size: 1rem; 109 border: none; 110 border-radius: 2px; 111 background-color: #ffffff; 112 color: var(--color-on-surface); 113 outline: none; 114 transition: box-shadow 0.3s ease; 115} 116.form-input[_ngcontent-%COMP%]:focus { 117 box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.5); 118} 119.form-input[_ngcontent-%COMP%]::placeholder { 120 color: rgba(107, 114, 128, 0.8); 121} 122 123.form-textarea[_ngcontent-%COMP%] { 124 resize: vertical; 125 min-height: 80px; 126} 127 128.form-actions[_ngcontent-%COMP%] { 129 display: flex; 130 justify-content: flex-end; 131} 132 133.submit-btn[_ngcontent-%COMP%] { 134 font-family: var(--font-body); 135 font-size: 1rem; 136 font-weight: 600; 137 padding: 0.625rem 2rem; 138 border: none; 139 border-radius: 2px; 140 background-color: #ffffff; 141 color: var(--color-secondary); 142 cursor: pointer; 143 transition: all 0.3s ease; 144} 145.submit-btn[_ngcontent-%COMP%]:hover { 146 opacity: 0.9; 147 transform: translateY(-1px); 148 box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); 149} 150.submit-btn[_ngcontent-%COMP%]:active { 151 transform: translateY(0); 152} 153.submit-btn[_ngcontent-%COMP%]:disabled { 154 opacity: 0.5; 155 cursor: not-allowed; 156 transform: none; 157 box-shadow: none; 158} 159 160@media (max-width: 768px) { 161 .contact-content[_ngcontent-%COMP%] { 162 grid-template-columns: 1fr; 163 gap: 2rem; 164 } 165 .contact-info[_ngcontent-%COMP%] { 166 padding: 1rem 0; 167 } 168 .logo-image[_ngcontent-%COMP%] { 169 width: 180px; 170 } 171 .contact-form[_ngcontent-%COMP%] { 172 padding: 1rem; 173 } 174}`]})}const Y=Object.freeze(Object.defineProperty({__proto__:null,SuggestionsComponent:g,default:g},Symbol.toStringTag,{value:"Module"})),B=Object.freeze(Object.defineProperty({__proto__:null,default:g},Symbol.toStringTag,{value:"Module"}));export{B as i,Y as s};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.