UNPKG

@lanaco/lnc-react-ui

Version:

React component library

342 lines (299 loc) 16.7 kB
"use strict";const t=require("react/jsx-runtime"),d=require("react"),b=require("./emotion-styled.browser.esm-DwHBgTPn.cjs"),y=require("./breakpoints-CcVm-gVm.cjs"),z=require("./Button.cjs"),L=require("./RangeSlider.cjs"),H=require("./DropdownItem.cjs"),O=require("./DropdownMenu.cjs"),D=require("./IconButton.cjs"),E=require("./BannerSectionWithList.cjs"),Y=require("./utils-BK6B_Y9X.cjs"),_=b.styled.div` display: flex; flex-direction: column; width: 100%; gap: 2.25rem; @media ${y.down("S")} { gap: 2rem; } `,K=b.styled.div` text-align: center; display: flex; justify-content: center; flex-direction: column; gap: 0.25rem; & .header-title { font-size: 1.5rem; font-weight: 600; } & .header-subtitle { color: var(--gray-600, #676e79); font-size: 1rem; font-weight: 500; } @media ${y.down("S")} { } `;b.styled.div` display: flex; flex-direction: column; gap: 0.25rem; font-size: 1.5rem; font-weight: 600; text-align: center; & .subtitle { font-size: 1rem; font-weight: 500; color: var(--gray-600, #676e79); } `;const P=b.styled.div` display: flex; flex-direction: column; gap: 2.25rem; align-items: center; & .btns-footer { display: flex; flex-direction: column; gap: 0.25rem; & button { width: 20rem; max-width: 20rem; } } @media ${y.down("S")} { gap: 2rem; & .btns-footer { width: 100%; align-items: center; & button { width: 100%; max-width: 13.75rem; } } } `,J=b.styled.div` display: grid; grid-template-columns: auto auto; width: fit-content; gap: 0.5rem; align-items: center; & .lnc-ui-button { padding-right: 0.75rem; padding-left: 0.75rem; } & .caluclating-group { display: flex; align-items: center; gap: 0.625rem; & .range-input-lnc { width: 22.75rem; } & .calculating-btn { min-width: 4.5rem; max-width: 4.5rem; } & .calculating-input { min-height: 2.25rem; max-height: 2.25rem; min-width: 4.5rem; max-width: 4.5rem; padding: 0.38rem; border-radius: 0.5rem; border: 1px solid var(--gray-95012, rgba(20, 22, 26, 0.12)); background: var(--white, #fff); text-align: center; } } & .btn-cnt { display: flex; align-items: center; gap: 0.38rem; & i { font-size: 1.5rem; } } & .grid-label { font-weight: 600; font-size: 1rem; min-width: 10rem; padding-top: 0.75rem; & .unit { font-weight: 400; color: var(--gray-600, #676e79); } } & .grid-label:first-of-type { padding-top: 0 !important; } @media ${y.down("S")} { gap: 0.25rem; grid-template-columns: auto; & .grid-label { font-size: 1rem; } & .caluclating-group { flex-wrap: wrap; gap: 1rem; & .range-input-lnc { width: unset; flex: 1; } } & .group-activity { button { width: 100%; } } & .grid-label { min-width: unset; } } `,Q=b.styled.div` border-radius: 0.75rem; border: 1px solid var(--neutral-95008); background: var(--white); padding: 1.25rem; /* drop-shadow */ box-shadow: 0px 1px 3px 0px rgba(0, 0, 0, 0.1), 0px 1px 2px 0px rgba(0, 0, 0, 0.06); display: flex; padding: 1.25rem; align-items: center; gap: 1rem; & .dropdown-group { display: flex; align-items: center; gap: 1rem; } & .vertical-line { width: 1px; height: 4rem; background-color: var(--gray-95008); margin: 0 0.62rem; } @media ${y.down("S")} { padding: 0.75rem; gap: 0.75rem; & .vertical-line { height: 100%; min-height: 5.25rem; } & .dropdown-group { gap: 0.75rem; align-items: start; } } `,U=b.styled.div` display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; flex: 1; @media ${y.down("S")} { grid-template-columns: repeat(2, 1fr); gap: 0.75rem; } `,S=b.styled.div` display: flex; flex-direction: column; gap: 0.75rem; min-width: 7.125rem; align-items: center; text-align: center; font-weight: 600; font-size: 1.375rem; & .subgroup { display: flex; flex-direction: column; gap: 0.75rem; } & .subtext { font-size: 1rem; font-weight: 400; color: var(--gray-600, #676e79); } & i { color: ${c=>c.color}; font-size: 3rem; } @media ${y.down("S")} { flex-direction: row; gap: 0.25rem; font-size: 0.875rem; font-weight: 500; align-items: start; & i { font-size: 1.75rem; } & .subtext { font-size: 0.75rem; font-weight: 400; } & .subgroup { gap: 0; } } `,X=b.styled.label` position: relative; display: inline-flex; align-items: center; cursor: pointer; background: var(--white, #fff); border-radius: 30px; user-select: none; font-family: Arial, sans-serif; font-weight: bold; font-size: 1rem; color: var(--gray-950, #14161a); transition: background-color 0.3s; min-height: 2.5rem; max-height: 2.5rem; font-size: 1rem; font-weight: 50; width: fit-content; & i { font-size: 1rem; } input { position: absolute; opacity: 0; width: 0; height: 0; } .knob { position: absolute; top: 0; bottom: 0; left: ${c=>c.checked?"4.6875rem":"0"}; background: var(--success-600, #059669); border-radius: 30px; transition: left 0.3s; width: fit-content; display: flex; justify-content: center; align-items: center; pointer-events: none; font-weight: normal; font-size: 0.9rem; color: var(--white, #fff); padding: 0 0.75rem; min-height: 2.5rem; max-height: 2.5rem; border: 1px solid var(--success-600, #059669); & .cont { min-width: 6.25rem; } } & .cont { min-width: 4.6875rem; justify-content: center; } .text { width: 100%; text-align: center; pointer-events: none; display: flex; gap: 0.5rem; padding: 0.75rem; border: 1px solid var(--gray-95012, #14161a1f); border-radius: 30px; min-height: 2.5rem; max-height: 2.5rem; & .hidden-txt { opacity: 0; } } & .cont { display: flex; align-items: center; gap: 0.38rem; } `,Z=d.forwardRef((c,v)=>{var u,m,h,f,x,o,N,w;const{onChange:g=()=>{},items:a=[{name:"Male",icon:"mng-lnc-male-02",value:"male"},{name:"Female",value:"female",icon:"mng-lnc-female-02"}],...i}=c,s=t.jsxs("div",{className:"cont",children:[t.jsx("i",{className:(u=a==null?void 0:a.at(0))==null?void 0:u.icon}),t.jsx("span",{children:(m=a==null?void 0:a.at(0))==null?void 0:m.name})]}),n=t.jsxs("div",{className:"cont",children:[t.jsx("span",{children:(h=a==null?void 0:a.at(1))==null?void 0:h.name}),t.jsx("i",{className:(f=a==null?void 0:a.at(1))==null?void 0:f.icon})]}),[e,r]=d.useState(!1),l=p=>{var k,T;r(p.target.checked),g&&g(p.target.checked===!0?(k=a==null?void 0:a.at(1))==null?void 0:k.value:(T=a==null?void 0:a.at(0))==null?void 0:T.value)};return t.jsxs(X,{ref:v,checked:e,...i,children:[t.jsx("input",{type:"checkbox",checked:e,onChange:l}),t.jsx("span",{className:"knob",children:e?n:s}),t.jsxs("span",{className:"text",children:[t.jsxs("div",{className:"cont",children:[t.jsx("i",{className:(x=a==null?void 0:a.at(0))==null?void 0:x.icon}),e===!0&&t.jsx("span",{className:"hidden-txt",children:(o=a==null?void 0:a.at(0))==null?void 0:o.name})]}),t.jsxs("div",{className:"cont",children:[e!==!0&&t.jsx("span",{className:"hidden-txt",children:(N=a==null?void 0:a.at(1))==null?void 0:N.name}),t.jsx("i",{className:(w=a==null?void 0:a.at(1))==null?void 0:w.icon})]})]})]})}),ee=d.forwardRef((c,v)=>{var w;const{yearsText:g,heightText:a,weightText:i,genderText:s="Gender",calculateText:n="Calculate",closeText:e="Close calculator",onClose:r=()=>{},genders:l=[{name:"Male",icon:"mng-lnc-male-02",value:"male"},{name:"Female",value:"female",icon:"mng-lnc-female-02"}],activityLevels:u=[{name:"Very low",code:"veryLow"},{name:"Moderate",code:"moderate"},{name:"Very active",code:"veryActive"}],activityLevelText:m,goalText:h,goals:f=[{name:"Lose weight",code:"loseWeight",icon:"mng-lnc-weight-scale"},{name:"Maintaining",code:"maintaining",icon:"mng-lnc-move"},{name:"Gain muscle",code:"gainMuscle",icon:"mng-lnc-muscule"}],onCalculate:x=()=>{}}=c,o=d.useRef({year:null,height:null,weight:null,gender:(w=l==null?void 0:l.at(0))==null?void 0:w.value,activityLevel:null,goal:null}),N=()=>{x==null||x(o==null?void 0:o.current)};return t.jsxs(P,{children:[t.jsxs(J,{className:"calorie-calculating",children:[t.jsx("div",{className:"grid-label",children:s}),t.jsx("div",{children:t.jsx(Z,{items:l,onChange:p=>o.current.gender=p})}),t.jsx(te,{text:g,onChange:p=>o.current.year=p}),t.jsx(ae,{text:a,onChange:p=>o.current.height=p}),t.jsx(ne,{text:i,onChange:p=>o.current.weight=p}),t.jsx(re,{text:m,activityLevels:u,onChange:p=>o.current.activityLevel=p}),t.jsx(ie,{text:h,goals:f,onChange:p=>o.current.goal=p})]}),t.jsxs("div",{className:"btns-footer",children:[t.jsx(z,{type:"button",color:"neutral",size:"medium",onClick:()=>{N()},children:n}),t.jsx(z,{type:"button",btnType:"basic",color:"gray",size:"medium",onClick:()=>r==null?void 0:r(),children:e})]})]})}),te=d.forwardRef((c,v)=>{const{text:g="Years",onChange:a=()=>{}}=c,[i,s]=d.useState(1);return t.jsxs(t.Fragment,{children:[t.jsx("div",{className:"grid-label",children:g}),t.jsxs("div",{className:"caluclating-group",children:[t.jsx(L,{className:"range-input-lnc",max:115,min:0,step:1,value:i,color:"success",defaultValue:0,onChange:n=>{var e,r;s((e=n==null?void 0:n.target)==null?void 0:e.value),a==null||a((r=n==null?void 0:n.target)==null?void 0:r.value)}}),t.jsx("input",{tabIndex:2,type:"text",className:"calculating-input",onChange:n=>{var e,r,l,u,m,h,f,x;!isNaN((e=n==null?void 0:n.target)==null?void 0:e.value)&&+((r=n==null?void 0:n.target)==null?void 0:r.value)>=0&&(s(((u=(l=n==null?void 0:n.target)==null?void 0:l.value)==null?void 0:u.length)>1?(h=(m=n==null?void 0:n.target)==null?void 0:m.value)==null?void 0:h.replace(/^0+/,""):(f=n==null?void 0:n.target)==null?void 0:f.value),a==null||a((x=n==null?void 0:n.target)==null?void 0:x.value))},value:i==null?void 0:i.toString()})]})]})}),ae=d.forwardRef((c,v)=>{const{text:g="Height",unitText:a="cm",onChange:i=()=>{}}=c,[s,n]=d.useState(1);return t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:"grid-label",children:[g," ",t.jsx("span",{className:"unit",children:`(${a})`})]}),t.jsxs("div",{className:"caluclating-group",children:[t.jsx(L,{className:"range-input-lnc",max:273,min:0,step:1,value:s,defaultValue:0,color:"success",onChange:e=>{var r,l;n((r=e==null?void 0:e.target)==null?void 0:r.value),i==null||i((l=e==null?void 0:e.target)==null?void 0:l.value)}}),t.jsx("input",{type:"text",tabIndex:2,className:"calculating-input",onChange:e=>{var r,l,u,m,h,f,x,o;!isNaN((r=e==null?void 0:e.target)==null?void 0:r.value)&&+((l=e==null?void 0:e.target)==null?void 0:l.value)>=0&&(n(((m=(u=e==null?void 0:e.target)==null?void 0:u.value)==null?void 0:m.length)>1?(f=(h=e==null?void 0:e.target)==null?void 0:h.value)==null?void 0:f.replace(/^0+/,""):(x=e==null?void 0:e.target)==null?void 0:x.value),i==null||i((o=e==null?void 0:e.target)==null?void 0:o.value))},value:s==null?void 0:s.toString()})]})]})}),ne=d.forwardRef((c,v)=>{const{text:g="Weight",unitText:a="kg",onChange:i=()=>{}}=c,[s,n]=d.useState(1);return t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:"grid-label",children:[g," ",t.jsx("span",{className:"unit",children:`(${a})`})]}),t.jsxs("div",{className:"caluclating-group",children:[t.jsx(L,{className:"range-input-lnc",max:400,min:0,step:1,value:s,color:"success",defaultValue:0,onChange:e=>{var r,l;n((r=e==null?void 0:e.target)==null?void 0:r.value),i==null||i((l=e==null?void 0:e.target)==null?void 0:l.value)}}),t.jsx("input",{tabIndex:2,type:"text",className:"calculating-input",onChange:e=>{var r,l,u,m,h,f,x,o;!isNaN((r=e==null?void 0:e.target)==null?void 0:r.value)&&+((l=e==null?void 0:e.target)==null?void 0:l.value)>=0&&(n(((m=(u=e==null?void 0:e.target)==null?void 0:u.value)==null?void 0:m.length)>1?(f=(h=e==null?void 0:e.target)==null?void 0:h.value)==null?void 0:f.replace(/^0+/,""):(x=e==null?void 0:e.target)==null?void 0:x.value),i==null||i((o=e==null?void 0:e.target)==null?void 0:o.value))},value:s==null?void 0:s.toString()})]})]})}),re=d.forwardRef((c,v)=>{const{text:g="Activity level",activityLevels:a,onChange:i=()=>{}}=c,[s,n]=d.useState(null);return t.jsxs(t.Fragment,{children:[t.jsx("div",{className:"grid-label",children:g}),t.jsx("div",{className:"caluclating-group",children:a==null?void 0:a.map((e,r)=>t.jsx(z,{type:"button",btnType:s===(e==null?void 0:e.code)?"filled":"tinted",color:"neutral",borderRadius:"curved",onClick:()=>{n(e==null?void 0:e.code),i(e==null?void 0:e.code)},children:e==null?void 0:e.name},r))})]})}),ie=d.forwardRef((c,v)=>{const{text:g="Goal",goals:a,onChange:i=()=>{}}=c,[s,n]=d.useState(null);return t.jsxs(t.Fragment,{children:[t.jsx("div",{className:"grid-label",children:g}),t.jsx("div",{className:"caluclating-group group-activity",children:a==null?void 0:a.map((e,r)=>t.jsx(z,{type:"button",btnType:s===(e==null?void 0:e.code)?"filled":"tinted",color:"neutral",borderRadius:"curved",onClick:()=>{n(e==null?void 0:e.code),i(e==null?void 0:e.code)},children:t.jsxs("div",{className:"btn-cnt",children:[t.jsx("i",{className:e==null?void 0:e.icon}),t.jsx("span",{children:e==null?void 0:e.name})]})},r))})]})}),le=d.forwardRef((c,v)=>{const{caloriesText:g="Calories",carbsText:a="Carbs",proteinText:i="Protein",fatsText:s="Fats",calculateAgainText:n="Calculate again",calories:e,carbs:r,protein:l,fats:u,onGoBack:m=()=>{}}=c;return t.jsxs(Q,{children:[t.jsxs(U,{children:[t.jsxs(S,{color:"var(--warning-600)",children:[t.jsx("i",{className:"mng-lnc-fire"}),t.jsxs("div",{className:"subgroup",children:[t.jsxs("div",{children:[e," kcal"]}),t.jsx("div",{className:"subtext",children:g})]})]}),t.jsxs(S,{color:"var(--secondary-400)",children:[t.jsx("i",{className:"mng-lnc-leaf"}),t.jsxs("div",{className:"subgroup",children:[t.jsxs("div",{children:[r,"g"]}),t.jsx("div",{className:"subtext",children:a})]})]}),t.jsxs(S,{color:"var(--info-500)",children:[t.jsx("i",{className:"mng-lnc-meat"}),t.jsxs("div",{className:"subgroup",children:[t.jsxs("div",{children:[l,"g"]}),t.jsx("div",{className:"subtext",children:i})]})]}),t.jsxs(S,{color:"var(--warning-300)",children:[t.jsx("i",{className:"mng-lnc-meat"}),t.jsxs("div",{className:"subgroup",children:[t.jsxs("div",{children:[u,"g"]}),t.jsx("div",{className:"subtext",children:s})]})]})]}),t.jsxs("div",{className:"dropdown-group",children:[t.jsx("div",{className:"vertical-line"}),t.jsx(O,{color:"neutral",control:t.jsx(D,{borderRadius:"curved",btnType:"basic",className:"dropdown-btn",color:"neutral",icon:"ellipsis",type:"button"}),offsetValue:-10,placement:"bottom-end",children:t.jsx(H,{icon:"star",onClick:m,children:n})})]})]})}),se=d.forwardRef((c,v)=>{const{caloriesText:g,carbsText:a,proteinText:i,fatsText:s,calculateAgainText:n,yearsText:e,heightText:r,weightText:l,genderText:u,calculateText:m,closeText:h,genders:f,activityLevels:x,activityLevelText:o,goalText:N,goals:w,title:p="Daily calorie calculator",subtitle:k="Lorem ipsum dolor sit amet",list:T=["Ovdje može pisati zašto je bitno da znamo kolika nam je dnevna kalorijska potreba.","Ovdje može pisati zašto je bitno da znamo kolikanam je dnevna kalorijska potreba.","From certified dealers from all over Europe"],buttonText:q="Calculate calorie needs"}=c,[R,C]=d.useState(1),[j,W]=d.useState(0),$=({gender:G,year:A,height:F,weight:B,activityLevel:I,goal:M})=>{const V=Y.calculateCalories({gender:G,age:A,heightCm:F,weightKg:B,activityLevel:I,goal:M});W(V),C(3)};return t.jsxs(_,{ref:v,children:[t.jsxs(K,{children:[t.jsx("div",{className:"header-title",children:p}),t.jsx("div",{className:"header-subtitle",children:k})]}),R===1&&t.jsx(E,{buttonText:q,onButtonAction:()=>{C(2)},list:T}),R===2&&t.jsx(ee,{yearsText:e,heightText:r,weightText:l,genderText:u,calculateText:m,closeText:h,onClose:()=>C(1),genders:f,activityLevels:x,activityLevelText:o,goalText:N,goals:w,onCalculate:$}),R===3&&t.jsx(le,{caloriesText:g,carbsText:a,proteinText:i,fatsText:s,calculateAgainText:n,onGoBack:()=>C(2),calories:j==null?void 0:j.calories,fats:j==null?void 0:j.fat,carbs:j==null?void 0:j.carbs,protein:j==null?void 0:j.protein})]})}),ce=d.forwardRef((c,v)=>t.jsx("div",{className:"lp-section lp-calorie-calculator-section",children:t.jsx(se,{ref:v,...c})}));module.exports=ce;