UNPKG

@hakit/components

Version:
161 lines (147 loc) 312 kB
"use strict";const t=require("./emotion-react-jsx-runtime.browser.esm-D6BfYa4f.cjs"),j=require("./emotion-styled-base.browser.esm-BenTvX6I.cjs"),s=require("react"),ce=require("./cjs/ThemeProvider/breakpoints.js"),i=require("@hakit/core"),fo=require("./cjs/Shared/Form/TextField.js"),de=require("@emotion/react"),hn=require("use-long-press"),ie=require("lodash"),ne=require("react-error-boundary"),mt=require("react-dom");require("@emotion/serialize");require("@emotion/utils");require("@emotion/is-prop-valid");const $e=require("./cjs/Shared/Entity/Alarm/AlarmControls/shared.js"),Fe=require("use-debounce"),mo=require("./cjs/Shared/SvgGraph/index.js"),K=require("./cjs/Shared/Row/index.js"),ee=require("./cjs/Shared/Column/index.js"),be=require("@iconify/react"),go=require("./cjs/Cards/WeatherCard/helpers.js"),fe=require("./cjs/Shared/Entity/Climate/ClimateControls/data.js"),we=require("./cjs/Shared/Entity/Climate/ClimateControls/shared.js"),fn=require("./cjs/Shared/Entity/Climate/ClimateControls/BigNumber.js"),gt=require("@use-gesture/react"),bo=require("@fullcalendar/react"),vo=require("@fullcalendar/daygrid"),xo=require("@fullcalendar/interaction"),yo=require("@fullcalendar/list"),dr=require("react-resize-detector"),wo=require("autolinker"),mn=require("./cjs/Cards/CameraCard/players/index.js"),Rr=require("./cjs/Shared/ControlSliderCircular/svg-arc.js"),ur=require("./cjs/Shared/PreloadImage/index.js"),Be=require("./cjs/Shared/Alert/index.js"),So=require("./cjs/ThemeProvider/theme.js"),Eo=require("./cjs/ThemeProvider/helpers.js"),pe=require("./cjs/ThemeProvider/constants.js"),We=require("./cjs/ThemeProvider/store.js"),No=require("@emotion/cache"),dt=require("react/jsx-runtime"),pr=require("react-use"),gn=require("./cjs/Shared/Entity/Vacuum/VacuumControls/shared.js"),bn=require("./cjs/Shared/Entity/Vacuum/VacuumControls/VacuumImage.js"),Je=require("./cjs/Cards/MediaPlayerCard/constants.js"),Co=require("./cjs/Cards/MediaPlayerCard/Marquee.js"),ko=require("./cjs/Cards/MediaPlayerCard/Thumbnail.js"),_o=require("./cjs/Cards/MediaPlayerCard/Clock.js"),jo=require("./cjs/Cards/MediaPlayerCard/ProgressBar.js"),Rt=require("leaflet"),hr=require("react-leaflet"),tr=require("./cjs/Cards/TimeCard/formatter.js"),Xe=require("./cjs/Cards/TimeCard/shared.js"),Do=require("./cjs/Shared/AutoHeight/index.js"),Ir=require("./cjs/utils/isValidProp.js"),Ar=require("./cjs/Shared/SvgGraph/constants.js");function vn(e){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const o in e)if(o!=="default"){const n=Object.getOwnPropertyDescriptor(e,o);Object.defineProperty(r,o,n.get?n:{enumerable:!0,get:()=>e[o]})}}return r.default=e,Object.freeze(r)}const Q=vn(s),Oo=vn(mt);function at(){const e=We.useThemeStore(d=>d.breakpoints),o=i.useHass(d=>d.windowContext)??window,n=s.useMemo(()=>ce.getBreakpoints(e),[e]),[a,l]=s.useState(()=>Object.fromEntries(ce.allBreakpoints.map(d=>[d,!1])));return s.useEffect(()=>{const d=o||window,c=new Map,u=()=>{const m=Object.fromEntries(ce.allBreakpoints.map(p=>[p,!1]));for(const p of ce.allBreakpoints)if(typeof n[p]=="string"&&c.get(p)?.matches){m[p]=!0;break}l(m)};for(const m of ce.allBreakpoints){const p=n[m];if(typeof p=="string"){const v=d.matchMedia(p);if(!v)continue;c.set(m,v),v.addEventListener("change",u)}}return u(),()=>{for(const m of c.values())m&&m.removeEventListener("change",u)}},[n,o]),a}var Ro=function(r){var o=new WeakMap;return function(n){if(o.has(n))return o.get(n);var a=r(n);return o.set(n,a),a}};function xn(){return"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."}const Io=(e,r)=>r?j.createStyled(e,process.env.NODE_ENV==="production"?{target:"e1xe7ch93"}:{target:"e1xe7ch93",label:"getBaseElement"})():j.createStyled(e,process.env.NODE_ENV==="production"?{shouldForwardProp:o=>Ir.isValidProp(o),target:"e1xe7ch92"}:{shouldForwardProp:o=>Ir.isValidProp(o),target:"e1xe7ch92",label:"getBaseElement"})("outline:none;border:0;box-sizing:border-box;padding:0;position:relative;overflow:hidden;display:flex;width:100%;cursor:pointer;background-color:var(--ha-S300);box-shadow:0px 0px 0px rgba(0, 0, 0, 0);transform:scale(1) translate3d(0, 0, 0);transition:var(--ha-transition-duration) var(--ha-easing);transition-property:transform,background-color,background-image;color:var(--ha-S200-contrast);flex-shrink:1;user-select:none;svg{color:var(--ha-S200-contrast);transition:color var(--ha-transition-duration) var(--ha-easing);}.graph-element{position:absolute;bottom:0;left:0;right:0;}&:not(.disabled):not(:disabled):not(:focus):hover{background-color:var(--ha-S400);color:var(--ha-500-contrast);svg{color:var(--ha-S400-contrast);}}&:disabled,&.disabled{cursor:not-allowed;opacity:0.8;}&.card-base-active:active:not(.disable-scale-effect):not(.disabled):not(.unavailable){transform:scale(0.9) translate3d(0, 0, 0);}",o=>!o.disableActiveState&&` &.active, &:active { background-color: var(--ha-A400); color: var(--ha-900-contrast); svg { color: var(--ha-900-contrast); } &:not(:disabled):not(.disabled):hover { background-color: var(--ha-A700); color: var(--ha-900-contrast); } } `,";"),Ao=j.createStyled(e=>t.jsx(Sn,{...e}),process.env.NODE_ENV==="production"?{target:"e1xe7ch91"}:{target:"e1xe7ch91",label:"StyledRipples"})(process.env.NODE_ENV==="production"?{name:"1513zut",styles:"flex-shrink:1;width:100%;height:100%"}:{name:"1513zut",styles:"flex-shrink:1;width:100%;height:100%",toString:xn}),Tr=j.createStyled("div",process.env.NODE_ENV==="production"?{target:"e1xe7ch90"}:{target:"e1xe7ch90",label:"Trigger"})(process.env.NODE_ENV==="production"?{name:"1rw17cg",styles:"width:100%;height:100%;&:has(.features){display:flex;flex-direction:column;}>.features{padding:0 1rem 1rem;>.fit-content>.button-group-inner>*{width:auto;flex-grow:1;>.button-bar-button{width:auto;flex-grow:1;}}}"}:{name:"1rw17cg",styles:"width:100%;height:100%;&:has(.features){display:flex;flex-direction:column;}>.features{padding:0 1rem 1rem;>.fit-content>.button-group-inner>*{width:auto;flex-grow:1;>.button-bar-button{width:auto;flex-grow:1;}}}",toString:xn}),zr={xxs:12,xs:6,sm:6,md:4,lg:4,xlg:3},To=function({as:r="div",entity:o,title:n,active:a,service:l,serviceData:d,children:c,disabled:u,longPressCallback:m,onClick:p,disableModal:v=!1,modalProps:S,disableRipples:g=!1,disableScale:h=!1,disableActiveState:y=!1,onlyFunctionality:f=!1,id:C,className:w,cssStyles:E,style:k,borderRadius:x="16px",rippleProps:_,disableColumns:R,refCallback:A,key:D,relatedEntities:b,features:N,featureBarProps:T,graph:V,resizeDetectorProps:$,triggerClass:I,...z}){const M=s.useId(),O=i.useHass(q=>q.globalComponentStyles),[L,P]=s.useState(!1),J=o?i.computeDomain(o):null,H=i.useEntity(o??"unknown",{returnNullIfNotFound:!0}),U=s.useRef(null),{width:W=0}=dr.useResizeDetector({refreshMode:"debounce",refreshRate:50,handleHeight:!1,skipOnMount:!1,targetRef:U,...$??{}}),Y=i.useEntity(V?.entity??"unknown",{returnNullIfNotFound:!0,historyOptions:{disable:!1,...V?.historyOptions}}),Z=s.useMemo(()=>typeof H?.state=="string"?i.isUnavailableState(H.state):!1,[H?.state]),ge=x,F=s.useMemo(()=>Io(r,f),[r,f]),B=hn.useLongPress(q=>{typeof m=="function"&&m(H!==null?H:null,q),typeof o=="string"&&!L&&!v&&P(!0),U.current?.classList.remove("card-base-active")},{threshold:300,cancelOnMovement:!0,cancelOutsideElement:!0,filterEvents(q){return!("button"in q&&q.button===2)}}),G=s.useCallback(q=>{if(!u){if(typeof l=="string"&&H&&!Z){const ue=H.service[l];ue(d)}typeof p=="function"&&p(H!==null?H:null,q)}},[l,u,H,d,p,Z]),X=s.useMemo(()=>n||H?.attributes?.friendly_name||(J!==null?ie.startCase(ie.lowerCase(J)):null),[n,H,J]),te=s.useMemo(()=>{const q=Object.entries(zr).reduce((ue,[Ee,Pe])=>{const Ct=z[Ee];return{...ue,[Ee]:Ct??Pe}},zr);return Object.entries(q).map(([ue,Ee])=>`${ue}-${Ee}`).join(" ")},[z.xxs,z.xs,z.sm,z.md,z.lg,z.xlg]),oe=s.Children.toArray(b).filter(q=>s.isValidElement(q)),se=s.Children.toArray(N).filter(q=>s.isValidElement(q)),he=s.Children.map(se,(q,ue)=>s.isValidElement(q)?s.cloneElement(q,{key:q.key||`${M}${ue}`,...q.props}):q),le=se.length>0,ye=le&&t.jsx(Ve,{layoutType:"bubble",className:"features",fullWidth:!0,gap:"0.5rem",...T,children:he});function ve(q){const ue=Ar.SVG_WIDTH/Ar.SVG_HEIGHT;return`calc(${q/ue}px - ${V?.adjustGraphSpaceBy??"0px"});`}const _e=ve(W),ze=s.useMemo(()=>["card-base",w??"",R?"":te,h?"disable-scale-effect":"",a?"active":"",Z?"unavailable":"",u||Z?"disabled":"",le?"has-features":"",Y?"has-graph":""].filter(q=>!!q).join(" "),[a,w,te,h,R,u,Y,le,Z]),Et=()=>{U.current?.classList.add("card-base-active")},Nt=()=>{U.current?.classList.remove("card-base-active")};return t.jsxs(t.Fragment,{children:[t.jsxs(F,{ref:q=>{U.current=q,A&&A(U)},id:C??"",className:ze,css:de.css("padding-bottom:",Y?_e:"inherit",";",O.cardBase??""," ",E??"",";"+(process.env.NODE_ENV==="production"?"":";label:CardBase;")),style:{...k??{},borderRadius:ge},disableActiveState:y,disabled:Z||u,...B(),...z,children:[Y&&t.jsx("div",{className:"graph-element history",children:Y.history.loading?t.jsx(Be.Alert,{className:"loading",description:i.localize("loading")}):Y.history.coordinates.length>0?t.jsx(mo.SvgGraph,{coordinates:Y.history.coordinates,...V?.props}):t.jsx(Be.Alert,{className:"no-state-history",description:i.localize("no_state_history_found")})}),g?t.jsxs(Tr,{className:`contents trigger-element ${I}`,onClick:G,onPointerDown:Et,onPointerUp:Nt,children:[c,ye]}):de.createElement(Ao,{..._,key:_?.key,borderRadius:ge,disabled:u||Z},t.jsxs(Tr,{className:`contents trigger-element ${I}`,onClick:G,onPointerDown:Et,onPointerUp:Nt,children:[c,ye]})),s.Children.map(oe,(q,ue)=>s.isValidElement(q)?s.cloneElement(q,{key:q.key||`${M}${ue}`,...q.props}):q)]},D),typeof o=="string"&&t.jsx(Sr,{...S,entity:o,title:S?.title??X??i.localize("unknown"),onClose:()=>{P(!1),S?.onClose&&S.onClose()},open:S?.open||L,id:M})]})},xe=s.memo(function(r){return t.jsx(ne.ErrorBoundary,{...re({prefix:"CardBase"}),children:To(r)})}),zo=j.createStyled("div",process.env.NODE_ENV==="production"?{target:"e1q4f2q20"}:{target:"e1q4f2q20",label:"RelatedEntityEl"})("position:absolute;margin:",e=>e.margin||"1rem",";padding:",e=>e.padding||"0",";cursor:",e=>e.onClick?"pointer":"default",";",e=>{switch(e.position){case"left top":return"top: 0; left: 0;";case"left center":return"top: 50%; left: 0; transform: translateY(-50%);";case"left bottom":return"bottom: 0; left: 0;";case"center top":return"top: 0; left: 50%; transform: translateX(-50%);";case"center center":return"top: 50%; left: 50%; transform: translate(-50%, -50%);";case"center bottom":return"bottom: 0; left: 50%; transform: translateX(-50%);";case"right top":return"top: 0; right: 0;";case"right center":return"top: 50%; right: 0; transform: translateY(-50%);";case"right bottom":return"bottom: 0; right: 0;";default:return"top: 0; right: 0;"}},";");function Mo({entity:e,icon:r,iconProps:o,render:n,position:a,onClick:l,disabled:d,service:c,serviceData:u,...m}){const p=i.useEntity(e),v=i.useIcon(r??null,o),S=i.computeDomain(e),g=i.useIconByDomain(S===null?"unknown":S,o),h=i.useIconByEntity(e||"unknown",o),y=v??h??g,f=s.useMemo(()=>typeof p?.state=="string"?i.isUnavailableState(p.state):!1,[p?.state]),C=s.useCallback(w=>{if(!d){if(typeof c=="string"&&p&&!f){const E=p.service[c];E(u)}typeof l=="function"&&l(p!==null?p:null,w)}},[c,d,p,u,l,f]);return t.jsx(zo,{position:a,onClick:C,...m,children:n?n(p,y):t.jsx(t.Fragment,{children:y})})}const Vo=s.memo(function(r){return t.jsx(ne.ErrorBoundary,{...re({prefix:"RelatedEntity"}),children:t.jsx(Mo,{...r})})});function Po({children:e,active:r,...o}){return t.jsx(Ne,{as:"div",rippleProps:{preventPropagation:!0},active:r,cssStyles:` &.button-bar-button { .contents { > div { padding: 0.6rem; } } } `,...o,children:e})}const He=function(r){return t.jsx(ne.ErrorBoundary,{...re({prefix:"FeatureEntity"}),children:t.jsx(Po,{...r})})},$o=j.createStyled("span",process.env.NODE_ENV==="production"?{target:"e9g8avo0"}:{target:"e9g8avo0",label:"TooltipSpan"})("position:fixed;top:0;left:0;background-color:var(--ha-S300);color:var(--ha-S100-contrast);padding:8px;border-radius:4px;box-shadow:0px 2px 4px var(--ha-S100);font-size:0.9rem;z-index:1000;visibility:hidden;opacity:0;transition:var(--ha-transition-duration) var(--ha-easing);transition-property:opacity,visibility;pointer-events:none;transform:",e=>{switch(e.placement){default:case"top":return"translateY(calc(-100% - 10px)) translateX(-50%)";case"right":return"translateX(10px) translateY(-50%)";case"bottom":return"translateY(10px) translateX(-50%)";case"left":return"translateX(calc(-100% - 10px)) translateY(-50%)"}},';&::before{content:"";position:absolute;width:0;height:0;border-style:solid;display:block;',e=>{switch(e.placement){default:case"top":return` border-width: 6px 6px 0 6px; border-color: var(--ha-S300) transparent transparent transparent; top: 100%; left: 50%; transform: translateX(-50%); `;case"right":return` border-width: 6px 6px 6px 0; border-color: transparent var(--ha-S300) transparent transparent; left: 0; top: 50%; transform: translate(-100%, -50%); `;case"bottom":return` border-width: 0 6px 6px 6px; border-color: transparent transparent var(--ha-S300) transparent; bottom: 100%; left: 50%; transform: translateX(-50%); `;case"left":return` border-width: 6px 0 6px 6px; border-color: transparent transparent transparent var(--ha-S300); right: 0; top: 50%; transform: translate(100%, -50%); `}},";}");function Fo({placement:e="top",title:r=null,children:o,ref:n,...a}){const l=s.useRef(null),d=s.useRef(null),c=i.useHass(y=>y.portalRoot),m=i.useHass(y=>y.windowContext)??window,[p,v]=s.useState(!1),S=s.useCallback(y=>{const f=d.current?.getBoundingClientRect();if(typeof f>"u")return;let C=0,w=0;switch(e){case"top":C=f.top,w=f.left+f.width/2;break;case"right":C=f.top+f.height/2,w=f.right;break;case"bottom":C=f.bottom,w=f.left+f.width/2;break;case"left":C=f.top+f.height/2,w=f.left;break}y.style.top=`${C}px`,y.style.left=`${w}px`,setTimeout(()=>{y.style.opacity="1",y.style.visibility="visible"},0)},[e]),g=s.useCallback(()=>{v(!0)},[]),h=s.useCallback(()=>{const y=l.current;y&&(y.style.opacity="0",y.style.visibility="hidden",y.setAttribute("aria-hidden","true"),setTimeout(()=>{v(!1)},250))},[]);return r===null||r===""?o:t.jsxs("div",{ref:d,onBlur:h,onTouchEnd:h,onTouchStart:g,onMouseUp:h,onMouseEnter:g,onMouseLeave:h,...a,children:[s.Children.map(o,(y,f)=>s.isValidElement(y)?s.cloneElement(y,{...y.props,onClick(C,w){y.props.onClick?.(C,w),a?.onClick?.(w)},ref:n,key:y.key??f}):y),typeof document<"u"&&mt.createPortal(p&&t.jsx($o,{className:"tooltip-inner",placement:e,ref:y=>{y&&(l.current=y,S(y))},"aria-hidden":"false",children:r}),c??m.document.body)]})}function me(e){return t.jsx(ne.ErrorBoundary,{...re({prefix:"Tooltip"}),children:t.jsx(Fo,{...e})})}const re=({prefix:e})=>({fallbackRender({error:r,resetErrorBoundary:o}){return t.jsx(Be.Alert,{className:"error-boundary-alert",title:`${e?`${e} - `:""}${i.localize("unknown_error")}`,description:r.message,type:"error",onClick:()=>o()})}});function it(){return"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."}const Bo=j.createStyled(xe,process.env.NODE_ENV==="production"?{target:"e1cw8oq38"}:{target:"e1cw8oq38",label:"StyledButtonCard"})(process.env.NODE_ENV==="production"?{name:"1uus07k",styles:"&.slim{justify-content:center;.fab-card-inner{width:3rem;height:3rem;}.button-card-trigger{align-items:center;>.contents{width:100%;}}}.button-card-trigger>.features{width:100%;}.button-card-trigger>.features>.fit-content{flex-basis:100%;}.children{width:100%;}&.slim-vertical{justify-content:center;.fab-card-inner{width:3rem;height:3rem;}.button-card-trigger{align-items:center;}}.footer>.title{text-align:left;}&:not(.disabled),&:not(:disabled){&:not(:focus):hover{.fab-card-inner:not(.custom){background-color:var(--ha-S500);color:var(--ha-S500-contrast);}}}"}:{name:"1uus07k",styles:"&.slim{justify-content:center;.fab-card-inner{width:3rem;height:3rem;}.button-card-trigger{align-items:center;>.contents{width:100%;}}}.button-card-trigger>.features{width:100%;}.button-card-trigger>.features>.fit-content{flex-basis:100%;}.children{width:100%;}&.slim-vertical{justify-content:center;.fab-card-inner{width:3rem;height:3rem;}.button-card-trigger{align-items:center;}}.footer>.title{text-align:left;}&:not(.disabled),&:not(:disabled){&:not(:focus):hover{.fab-card-inner:not(.custom){background-color:var(--ha-S500);color:var(--ha-S500-contrast);}}}",toString:it}),Lo=j.createStyled("div",process.env.NODE_ENV==="production"?{target:"e1cw8oq37"}:{target:"e1cw8oq37",label:"Contents"})(process.env.NODE_ENV==="production"?{name:"104hu76",styles:"padding:1rem;display:flex;flex-direction:column;align-items:center;justify-content:stretch;height:100%"}:{name:"104hu76",styles:"padding:1rem;display:flex;flex-direction:column;align-items:center;justify-content:stretch;height:100%",toString:it}),Ho=j.createStyled("div",process.env.NODE_ENV==="production"?{target:"e1cw8oq36"}:{target:"e1cw8oq36",label:"ToggleState"})("background-color:var(--ha-100);border-radius:100%;width:16px;height:16px;position:absolute;top:2px;left:0;box-shadow:0px 0px 4px rgba(0, 0, 0, 0.5);transition:var(--ha-transition-duration) var(--ha-easing);transition-property:left,transform;left:",e=>e.active?"100%":"0px",";transform:",e=>e.active?"translate3d(calc(-100% - 2px), 0, 0)":"translate3d(calc(0% + 2px), 0, 0)",";"),qo=j.createStyled("div",process.env.NODE_ENV==="production"?{target:"e1cw8oq35"}:{target:"e1cw8oq35",label:"Toggle"})("position:relative;background-color:",e=>e.active?"var(--ha-A400)":"var(--ha-S100)",";border-radius:10px;width:40px;height:20px;flex-grow:0;flex-shrink:0;transition:background-color var(--ha-transition-duration) var(--ha-easing);margin-left:20px;"),Wo=j.createStyled("div",process.env.NODE_ENV==="production"?{target:"e1cw8oq34"}:{target:"e1cw8oq34",label:"Fab"})("border-radius:100%;padding:6px;width:2rem;height:2rem;display:flex;flex-shrink:0;align-items:center;justify-content:center;box-shadow:0px 1px 4px rgba(0, 0, 0, 0.2);",e=>e.brightness&&` filter: ${e.brightness}; `," transition:var(--ha-transition-duration) var(--ha-easing);transition-property:background-color,color,filter;svg{transition:var(--ha-transition-duration) var(--ha-easing);transition-property:color;}"),Uo=j.createStyled("div",process.env.NODE_ENV==="production"?{target:"e1cw8oq33"}:{target:"e1cw8oq33",label:"LayoutBetween"})(process.env.NODE_ENV==="production"?{name:"1fkysi1",styles:"display:flex;align-items:center;justify-content:space-between;flex-direction:row;gap:10px;width:100%;&.vertical{flex-direction:column;height:100%;}"}:{name:"1fkysi1",styles:"display:flex;align-items:center;justify-content:space-between;flex-direction:row;gap:10px;width:100%;&.vertical{flex-direction:column;height:100%;}",toString:it}),Go=j.createStyled("div",process.env.NODE_ENV==="production"?{target:"e1cw8oq32"}:{target:"e1cw8oq32",label:"Footer"})(process.env.NODE_ENV==="production"?{name:"1cgwlg6",styles:"display:flex;align-items:flex-start;justify-content:flex-start;flex-direction:column;margin-top:20px;width:100%"}:{name:"1cgwlg6",styles:"display:flex;align-items:flex-start;justify-content:flex-start;flex-direction:column;margin-top:20px;width:100%",toString:it}),Mr=j.createStyled("div",process.env.NODE_ENV==="production"?{target:"e1cw8oq31"}:{target:"e1cw8oq31",label:"Title"})(process.env.NODE_ENV==="production"?{name:"ph2n02",styles:"color:var(--ha-S100-contrast);font-size:0.9rem;font-weight:bold;margin-bottom:0.25rem"}:{name:"ph2n02",styles:"color:var(--ha-S100-contrast);font-size:0.9rem;font-weight:bold;margin-bottom:0.25rem",toString:it}),kt=j.createStyled("div",process.env.NODE_ENV==="production"?{target:"e1cw8oq30"}:{target:"e1cw8oq30",label:"Description"})(process.env.NODE_ENV==="production"?{name:"2pojne",styles:"color:var(--ha-S300-contrast);font-size:0.7rem;margin:2px 0;text-align:left;width:100%;&.center{text-align:center;}&.secondary{color:var(--ha-S500-contrast);}&.slim-vertical{text-align:center;}"}:{name:"2pojne",styles:"color:var(--ha-S300-contrast);font-size:0.7rem;margin:2px 0;text-align:left;width:100%;&.center{text-align:center;}&.secondary{color:var(--ha-S500-contrast);}&.slim-vertical{text-align:center;}",toString:it});function Yo({entity:e,service:r,serviceData:o,iconProps:n,icon:a,fabProps:l,active:d,onClick:c,description:u,title:m,layoutType:p,disabled:v=!1,className:S,hideIcon:g=!1,hideState:h=!1,hideLastUpdated:y=!1,children:f,hideDetails:C=!1,cssStyles:w,key:E,hideToggle:k=!1,customRenderState:x,..._}){const R=i.useHass(Y=>Y.globalComponentStyles),A=i.useHass(Y=>Y.formatter),D=e?i.computeDomain(e):null,b=i.useEntity(e||"unknown",{returnNullIfNotFound:!0}),N=typeof a<"u"&&typeof a!="string"?a:null,T=i.useIconByDomain(D===null?"unknown":D,{...n??{}}),V=i.useIconByEntity(e||"unknown",{...n??{}}),$=p==="default"||p===void 0,I=p==="slim"||p==="slim-vertical",z=typeof b?.state=="string"?i.isUnavailableState(b.state):!1,M=b?b.state!=="off"&&!z&&!v:d||!1,O=i.useIcon(typeof a=="string"?a:null,{...n??{}}),L=s.useMemo(()=>m===null?null:m||b?.attributes.friendly_name||b?.entity_id||null,[m,b]);function P(){return h?null:x&&b?x(b):typeof d=="boolean"?d?`${i.localize(i.ON)}`:`${i.localize(i.OFF)}`:b&&b.state===i.ON&&D==="light"?A.attributeValue(b,"brightness"):b?A.stateValue(b):null}const J=s.Children.toArray(_?.features).filter(Y=>s.isValidElement(Y)).length>0,H=P(),U=_.descriptionSeparator??"-";function W(Y,Z){return!Y&&!Z?null:Y&&Z?t.jsxs(t.Fragment,{children:[Y," ",t.jsx("span",{className:"description-separator",children:U})," ",Z]}):Y||Z}return t.jsx(Bo,{as:"button",service:r,serviceData:o,active:d,entity:e,title:L??void 0,disabled:v||z,onClick:c,className:`${S??""} ${p??"default"} button-card`,triggerClass:"button-card-trigger",cssStyles:` ${R.buttonCard??""} ${w??""} `,..._,children:t.jsxs(Lo,{className:`contents ${J?"has-features":""}`,children:[t.jsxs(Uo,{className:`layout-between ${p==="slim-vertical"?"vertical":""}`,children:[!g&&t.jsx(Wo,{brightness:M&&b?.custom.brightness||"brightness(100%)",...l,className:`fab-card-inner icon ${l?.className} ${l?.style?"custom":""}`,style:{...l?.style,backgroundColor:l?.style?.backgroundColor??(M?D==="light"?b?.custom?.rgbaColor??"var(--ha-A400)":"var(--ha-A400)":"var(--ha-S400)"),color:l?.style?.color??(b?M?b.custom.rgbColor:"var(--ha-S500-contrast)":M?"var(--ha-A400)":"var(--ha-S500-contrast)")},children:N??O??V??T}),$&&!k&&t.jsx(qo,{active:M,className:"toggle",children:!z&&t.jsx(Ho,{active:M,className:"toggle-state"})}),I&&t.jsxs(ee.Column,{fullWidth:!0,alignItems:p==="slim-vertical"?"center":"flex-start",children:[L&&t.jsx(Mr,{className:"title",children:L}),!C&&t.jsx(kt,{className:`description ${p??""}`,children:W(u,H)}),b&&!y&&t.jsxs(kt,{className:`description secondary ${p==="slim-vertical"?"center":""}`,children:[i.localize("last_updated"),": ",b.custom.relativeTime]})]})]}),$&&t.jsxs(Go,{className:"footer",children:[L&&t.jsx(Mr,{className:"title",children:L}),!C&&t.jsx(kt,{className:"description",children:W(u,H)}),!C&&b&&!y&&t.jsxs(kt,{className:"description secondary",children:[i.localize("last_updated"),": ",b.custom.relativeTime]})]}),f&&t.jsx("div",{className:"children",children:f})]})},E)}function fr(e){const r={xxs:12,xs:6,sm:4,md:3,lg:2,xlg:2};return t.jsx(ne.ErrorBoundary,{...re({prefix:"ButtonCard"}),children:t.jsx(Yo,{...r,...e})})}function yn(){return"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."}const Xo=j.createStyled("div",process.env.NODE_ENV==="production"?{target:"eu3ltb74"}:{target:"eu3ltb74",label:"RangeSliderParent"})(),Qo=j.createStyled("div",process.env.NODE_ENV==="production"?{target:"eu3ltb73"}:{target:"eu3ltb73",label:"StyledRange"})(e=>` min-width: 6rem; width: 100%; position: relative; isolation: isolate; ${ce.mq(["xxs","xs","sm"],` min-width: 0; `)} z-index: 1; .range-slider-range { position: relative; -webkit-appearance: none; width: 100%; height: 0.7rem; border-radius: 5px; background: var(--ha-S400); outline: none; padding: 0; margin: 0; z-index: 1; &::-webkit-slider-thumb { appearance: none; width: ${e.handleSize}px; height: ${e.handleSize}px; border-radius: 50%; background: var(--ha-A400); cursor: pointer; transition: background var(--ha-transition-duration) var(--ha-easing); position: relative; z-index: 1; &:hover { background: var(--ha-A200); } } &:active::-webkit-slider-thumb { background: var(--ha-A400); } &::-moz-range-thumb { width: ${e.handleSize}px; height: ${e.handleSize}px; border: 0; border-radius: 50%; background: var(--ha-A400); cursor: pointer; transition: background var(--ha-transition-duration) var(--ha-easing); z-index: 1; &:hover { background: var(--ha-A200); } } &:active::-moz-range-thumb { background: var(--ha-A400); } &:focus { &::-webkit-slider-thumb { box-shadow: 0 0 0 3px var(--ha-A100); } } } // Firefox Overrides ::-moz-range-track { background: var(--ha-S400); border: 0; } input::-moz-focus-inner, input::-moz-focus-outer { border: 0; } &:hover, &.active { .tooltip-holder { > div { transform: translate(-50%, -1rem) rotate(-45deg) scale(1); opacity: 1; } } } `,";"),Ko=j.createStyled("div",process.env.NODE_ENV==="production"?{target:"eu3ltb72"}:{target:"eu3ltb72",label:"Tooltip"})("opacity:0;position:absolute;bottom:100%;width:",({size:e})=>`${e}rem`,";height:",({size:e})=>`${e}rem`,";border-radius:50% 50% 50% 0;left:0;transform:translate(-50%, 1rem) rotate(-45deg) scale(0);transition:var(--ha-transition-duration) var(--ha-easing);transition-property:transform,opacity;background-color:var(--ha-A400);white-space:nowrap;pointer-events:none;z-index:0;&:after{content:attr(data-title);font-size:0.7rem;display:flex;align-items:center;justify-content:center;color:white;transform:rotate(45deg);position:absolute;inset:0;border-radius:50%;}"),Jo=j.createStyled("label",process.env.NODE_ENV==="production"?{target:"eu3ltb71"}:{target:"eu3ltb71",label:"Label"})(process.env.NODE_ENV==="production"?{name:"1cboe98",styles:"display:block;margin-bottom:0.5rem;font-size:0.9rem;color:var(--ha-S50-contrast)"}:{name:"1cboe98",styles:"display:block;margin-bottom:0.5rem;font-size:0.9rem;color:var(--ha-S50-contrast)",toString:yn}),Zo=j.createStyled("span",process.env.NODE_ENV==="production"?{target:"eu3ltb70"}:{target:"eu3ltb70",label:"Description"})(process.env.NODE_ENV==="production"?{name:"imenuv",styles:"display:block;font-size:0.8rem;margin-bottom:0.5rem;color:var(--ha-S500-contrast)"}:{name:"imenuv",styles:"display:block;font-size:0.8rem;margin-bottom:0.5rem;color:var(--ha-S500-contrast)",toString:yn});function es({value:e,onChange:r,formatTooltipValue:o,hideTooltip:n,label:a,description:l,className:d,style:c,tooltipSize:u=2,handleSize:m=15,min:p=0,max:v=100,step:S=1,debounceThrottleValue:g=300,debounceType:h="debounce",onChangeComplete:y,cssStyles:f,...C}){const[w,E]=s.useState(e??0),[k,x]=s.useState(!1),_=s.useRef(null),R=s.useRef(null),A=s.useRef(null);s.useEffect(()=>{typeof e=="number"&&E(e)},[e]),s.useEffect(()=>{if(!_.current||n)return;const N=parseFloat(`${p??0}`),T=parseFloat(`${v??100}`),V=parseFloat(`${S??1}`),$=parseFloat(_.current.valueAsNumber.toFixed(V<1?Math.abs(Math.log10(V)):0)),I=(_.current.valueAsNumber-N)/(T-N)*100;if(A.current){A.current.style.left=`${I}%`;const z=typeof o=="function"?o($):$;A.current.setAttribute("data-title",`${z}`)}},[w,p,v,S,o,n]);const b=(h==="debounce"?Fe.useDebouncedCallback:Fe.useThrottledCallback)(N=>{typeof y=="function"&&y(N.target.valueAsNumber,N),x(!1)},g,{leading:!0,trailing:!0});return t.jsxs(Xo,{className:`${d??""} ${k?"active":""} range-slider`,style:{position:"relative",...c??{}},css:de.css(f??"",";"+(process.env.NODE_ENV==="production"?"":";label:InternalRangeSlider;")),children:[a&&t.jsx(Jo,{className:"label",children:a}),l&&t.jsx(Zo,{className:"description",children:l}),t.jsxs(Qo,{ref:R,handleSize:m,className:`range-slider-inner ${k?"active":""}`,children:[t.jsx("input",{...C,min:p,max:v,step:S,ref:_,type:"range",className:"range-slider-range",value:w,onInput:N=>{E(N.target.valueAsNumber),k||x(!0)},onChange:N=>{typeof r=="function"&&r(N.target.valueAsNumber,N),b(N)}}),!n&&t.jsx("div",{className:"tooltip-holder",style:{position:"absolute",top:0,left:m/2,right:m/2},children:t.jsx(Ko,{size:u,ref:A})})]})]})}function qe(e){return t.jsx(ne.ErrorBoundary,{...re({prefix:"RangeSlider"}),children:t.jsx(es,{...e})})}function ts(){return"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."}const rs={position:"relative",display:"inline-flex",overflow:"hidden"},ns=j.createStyled("div",process.env.NODE_ENV==="production"?{target:"ekpqrw61"}:{target:"ekpqrw61",label:"StyledRipple"})(process.env.NODE_ENV==="production"?{name:"zomlrg",styles:"position:absolute;border-radius:50%;opacity:0;width:35px;height:35px;transform:translate(-50%, -50%);pointer-events:none;flex-shrink:0"}:{name:"zomlrg",styles:"position:absolute;border-radius:50%;opacity:0;width:35px;height:35px;transform:translate(-50%, -50%);pointer-events:none;flex-shrink:0",toString:ts}),os=j.createStyled("div",process.env.NODE_ENV==="production"?{target:"ekpqrw60"}:{target:"ekpqrw60",label:"ParentRipple"})(e=>e.borderRadius&&` border-radius: ${e.borderRadius}; overflow: hidden; display: inline-flex; `,";"),wn=s.memo(({duration:e=600,color:r="rgba(0, 0, 0, .3)",borderRadius:o="none",onClick:n,children:a,disabled:l,preventPropagation:d=!1,style:c,className:u,cssStyles:m,id:p,...v})=>{const S=s.useRef(null),g=s.useRef(null),y=i.useHass(C=>C.windowContext)??window;s.useEffect(()=>()=>{g.current&&clearTimeout(g.current)},[]);const f=s.useCallback(C=>{if(C.stopPropagation(),l)return;g.current!==null&&clearTimeout(g.current);const{pageX:w,pageY:E,currentTarget:k}=C,x=k.getBoundingClientRect();let _=1;typeof y<"u"&&(_=y.scrollX);let R=1;typeof y<"u"&&(R=y.scrollY);const A=w-(x.left+_),D=E-(x.top+R),b=Math.max(x.width,x.height);if(S.current){const N={left:isNaN(A)?"0px":`${A}px`,top:isNaN(D)?"0px":`${D}px`,opacity:1,transform:"translate(-50%, -50%)",transition:"initial",backgroundColor:r};Object.assign(S.current.style,N)}g.current=setTimeout(()=>{if(S.current){const N={opacity:0,transform:`scale(${b/9})`,transition:`all ${e}ms`};Object.assign(S.current.style,N)}g.current=null},50),typeof n=="function"&&n(C)},[r,e,l,n,y]);return t.jsx(os,{borderRadius:o,id:p??"",className:`ripple-parent ${u??""}`,css:de.css(m??"",";"),style:{...c??{}},children:t.jsxs("div",{className:"ripple-inner",onPointerDownCapture:C=>{d&&C.stopPropagation()},...v,style:{width:"100%",...rs,borderRadius:o},onClick:f,children:[a,t.jsx(ns,{ref:S})]})})});wn.displayName="_Ripples";function Sn(e){return t.jsx(ne.ErrorBoundary,{...re({prefix:"Ripples"}),children:t.jsx(wn,{...e})})}function Pt(){return"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."}const ss=j.createStyled(xe,process.env.NODE_ENV==="production"?{target:"e17tod368"}:{target:"e17tod368",label:"StyledTriggerCard"})(),as=j.createStyled("span",process.env.NODE_ENV==="production"?{target:"e17tod367"}:{target:"e17tod367",label:"ToggleMessage"})("font-size:0.6rem;display:flex;align-items:center;justify-content:flex-end;height:100%;padding:0 0.4rem 0 0.8rem;transition:var(--ha-transition-duration) var(--ha-easing);transition-property:justify-content,color;justify-content:",e=>e.active?"flex-start":"flex-end",";color:",e=>e.active?"var(--ha-300-contrast)":"var(--ha-300)",";",e=>e.hideArrow&&"padding-right: 0.8rem;",";"),is=j.createStyled("div",process.env.NODE_ENV==="production"?{target:"e17tod366"}:{target:"e17tod366",label:"ToggleState"})("background-color:var(--ha-S200);border-radius:100%;width:1.9rem;height:1.9rem;position:absolute;top:5px;left:0px;display:flex;align-items:center;justify-content:center;transition:var(--ha-transition-duration) var(--ha-easing);transition-property:left,transform;left:",e=>e.active?"100%":"0px",";transform:",e=>e.active?"translate3d(calc(-100% - 5px), 0, 0)":"translate3d(calc(0% + 5px), 0, 0)",";svg{color:",e=>e.active?"var(--ha-A400)":"var(--ha-200)",";font-size:40px;}"),cs=j.createStyled("div",process.env.NODE_ENV==="production"?{target:"e17tod365"}:{target:"e17tod365",label:"Gap"})(process.env.NODE_ENV==="production"?{name:"rhxkjj",styles:"height:20px"}:{name:"rhxkjj",styles:"height:20px",toString:Pt}),ls=j.createStyled("div",process.env.NODE_ENV==="production"?{target:"e17tod364"}:{target:"e17tod364",label:"Toggle"})("position:relative;background-color:",e=>e.active?"var(--ha-300)":"var(--ha-S200)",";border-radius:3rem;width:10rem;height:2.5rem;flex-grow:0;flex-shrink:0;transition:background-color var(--ha-transition-duration) var(--ha-easing);margin-left:1.5rem;overflow:hidden;"),ds=j.createStyled("div",process.env.NODE_ENV==="production"?{target:"e17tod363"}:{target:"e17tod363",label:"Contents"})(process.env.NODE_ENV==="production"?{name:"dpr5ta",styles:"padding:1rem;height:100%;display:flex;flex-direction:column;justify-content:center"}:{name:"dpr5ta",styles:"padding:1rem;height:100%;display:flex;flex-direction:column;justify-content:center",toString:Pt}),Vr=j.createStyled("div",process.env.NODE_ENV==="production"?{target:"e17tod362"}:{target:"e17tod362",label:"LayoutBetween"})(process.env.NODE_ENV==="production"?{name:"fycgd8",styles:"display:flex;align-items:center;justify-content:space-between;flex-direction:row"}:{name:"fycgd8",styles:"display:flex;align-items:center;justify-content:space-between;flex-direction:row",toString:Pt}),us=j.createStyled("div",process.env.NODE_ENV==="production"?{target:"e17tod361"}:{target:"e17tod361",label:"Description"})(process.env.NODE_ENV==="production"?{name:"bme980",styles:"color:var(--ha-S500-contrast);font-size:0.7rem;text-align:left"}:{name:"bme980",styles:"color:var(--ha-S500-contrast);font-size:0.7rem;text-align:left",toString:Pt}),ps=j.createStyled("div",process.env.NODE_ENV==="production"?{target:"e17tod360"}:{target:"e17tod360",label:"Title"})("color:var(--ha-S300-contrast);font-size:0.9rem;font-weight:bold;",e=>e.disabled&&"color: var(--ha-S50-contrast);"," text-align:left;span{display:block;width:100%;color:var(--ha-S50-contrast);margin-top:0.3rem;line-height:1rem;font-size:0.7rem;}");function hs({entity:e,title:r,description:o,onClick:n,disabled:a,icon:l,iconProps:d,sliderIconProps:c,sliderIcon:u,sliderTextActive:m,sliderTextInactive:p,activeStateDuration:v=5e3,hideArrow:S=!1,className:g,service:h,serviceData:y,key:f,cssStyles:C,...w}){const E=i.useHass(O=>O.globalComponentStyles),k=i.computeDomain(e),x=i.useEntity(e),_=i.useIconByEntity(e,d),R=i.useIconByDomain(k,d),A=s.useRef(null),[D,b]=s.useState(!1),N=i.useIcon(l??null,d),T=i.useIcon(u??null,c),V=i.useIcon("mdi:power",d),$=i.useIcon("mingcute:arrows-right-line",{...d,style:{fontSize:"16px",...d?.style}}),I=i.isUnavailableState(x.state),z=a||I,M=s.useCallback(O=>{b(!0),typeof n=="function"&&!I&&n(x,O),A.current&&clearTimeout(A.current),A.current=setTimeout(()=>{b(!1)},v)},[x,n,v,I]);return t.jsx(ss,{as:"button",className:`${g??""} trigger-card`,disabled:z,entity:e,service:h,serviceData:y,onClick:M,cssStyles:` ${E?.triggerCard??""} ${C??""} `,...w,children:t.jsxs(ds,{children:[t.jsxs(Vr,{className:"layout-between",children:[t.jsxs(ps,{disabled:z,className:"description",children:[r||x.attributes.friendly_name||e,o&&t.jsx("span",{children:o})]}),N??_??R]}),t.jsx(cs,{className:"gap"}),t.jsxs(Vr,{className:"layout-between",children:[t.jsxs(us,{className:"title",children:[x.custom.relativeTime,z?` - ${x.state}`:""]}),t.jsx(ls,{active:z?!1:D,className:"toggle",children:z?null:t.jsxs(t.Fragment,{children:[t.jsx(is,{active:D,className:"toggle-state",children:T??V}),t.jsxs(as,{hideArrow:S,active:D,className:"toggle-message",children:[D?m??i.localize("triggered_name",{search:" {name}",replace:""}):p??`${i.localize("run")} ${i.computeDomainTitle(e,x?.attributes?.device_class)}`," ",!D&&!S&&$]})]})})]})]})},f)}function fs(e){const r={xxs:12,xs:6,sm:6,md:4,lg:4,xlg:3};return t.jsx(ne.ErrorBoundary,{...re({prefix:"TriggerCard"}),children:t.jsx(hs,{...r,...e})})}function En(){return"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."}const ms=j.createStyled(xe,process.env.NODE_ENV==="production"?{target:"e16eobz13"}:{target:"e16eobz13",label:"StyledGroup"})("background-color:var(--ha-S200);color:var(--ha-S200-contrast);padding:",({collapsed:e})=>e?"0 2rem":"0 2rem 2rem",";transition:var(--ha-transition-duration) var(--ha-easing);transition-property:height,padding,background-color;&.expanded{height:calc-size(auto);}width:100%;>div.contents>.header-title{cursor:pointer;padding:",({collapsed:e})=>e?"1.5rem 0":"2rem 0",";>h3{color:var(--ha-S100-contrast);margin:0;display:flex;align-items:center;transition:padding var(--ha-transition-duration) var(--ha-easing);",({collapsible:e,collapsed:r})=>e&&`&:before { content: "${r?"+":"-"}"; display: inline-block; color: var(--ha-A400); width: 1rem; }`,";}}",({collapsed:e})=>` ${ce.mq(["xxs","xs"],` padding: ${e?"1rem 0rem":"1.5rem 1rem 1rem"}; `)} `,";"),gs=j.createStyled("span",process.env.NODE_ENV==="production"?{target:"e16eobz12"}:{target:"e16eobz12",label:"Description"})(process.env.NODE_ENV==="production"?{name:"qzd1ts",styles:"color:var(--ha-S300-contrast);font-size:0.9rem;margin:0.5rem 0 0;width:100%;display:block;padding-left:1rem"}:{name:"qzd1ts",styles:"color:var(--ha-S300-contrast);font-size:0.9rem;margin:0.5rem 0 0;width:100%;display:block;padding-left:1rem",toString:En}),bs=j.createStyled("div",process.env.NODE_ENV==="production"?{target:"e16eobz11"}:{target:"e16eobz11",label:"Header"})(process.env.NODE_ENV==="production"?{name:"dslko4",styles:"transition:padding var(--ha-transition-duration) var(--ha-easing)"}:{name:"dslko4",styles:"transition:padding var(--ha-transition-duration) var(--ha-easing)",toString:En}),vs=j.createStyled("h3",process.env.NODE_ENV==="production"?{target:"e16eobz10"}:{target:"e16eobz10",label:"Title"})();function xs({title:e,description:r,children:o,gap:n="0.5rem",justifyContent:a="center",alignItems:l="center",layout:d="row",collapsed:c=!1,collapsible:u=!0,className:m,onClick:p,...v}){const[S,g]=s.useState(c),h={gap:n,justifyContent:a,alignItems:l},y=s.useCallback(()=>{g(!0)},[]),f=s.useCallback(C=>{u&&g(!S),p&&p(C)},[S,u,p]);return t.jsxs(ms,{onlyFunctionality:!0,disableScale:!0,disableActiveState:!0,disableRipples:!0,borderRadius:"16px",className:`${m??""} ${S?"collapsed":"expanded"} group`,collapsed:S,collapsible:u,...v,children:[t.jsxs(bs,{onClick:f,className:"header-title",children:[t.jsx(vs,{className:"title",children:e}),r&&t.jsx(gs,{children:r})]}),t.jsx(Do.AutoHeight,{isOpen:!S||!u,className:"content",onCollapseComplete:y,children:d==="row"?t.jsx(K.Row,{className:"row",...h,children:o}):t.jsx(ee.Column,{className:"column",...h,children:o})})]})}function mr(e){const r={xxs:12,xs:12,sm:12,md:12,lg:12,xlg:12};return t.jsx(ne.ErrorBoundary,{...re({prefix:"Group"}),children:t.jsx(xs,{...r,...e})})}function De(){return"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."}const ys=j.createStyled(xe,process.env.NODE_ENV==="production"?{target:"e15e1idt11"}:{target:"e15e1idt11",label:"Card"})(),ws=j.createStyled("div",process.env.NODE_ENV==="production"?{target:"e15e1idt10"}:{target:"e15e1idt10",label:"Contents"})(process.env.NODE_ENV==="production"?{name:"a4fcxv",styles:"padding:1rem;gap:1rem;flex-direction:column;display:flex;width:100%;height:100%"}:{name:"a4fcxv",styles:"padding:1rem;gap:1rem;flex-direction:column;display:flex;width:100%;height:100%",toString:De}),Ss=j.createStyled("h4",process.env.NODE_ENV==="production"?{target:"e15e1idt9"}:{target:"e15e1idt9",label:"Title"})(process.env.NODE_ENV==="production"?{name:"jwzzvx",styles:"all:unset;font-family:var(--ha-font-family);font-size:0.8rem;color:var(--ha-S100-contrast);display:flex;align-items:center;justify-content:flex-start"}:{name:"jwzzvx",styles:"all:unset;font-family:var(--ha-font-family);font-size:0.8rem;color:var(--ha-S100-contrast);display:flex;align-items:center;justify-content:flex-start",toString:De}),Es=j.createStyled("h4",process.env.NODE_ENV==="production"?{target:"e15e1idt8"}:{target:"e15e1idt8",label:"SubTitle"})(process.env.NODE_ENV==="production"?{name:"p73dxp",styles:"all:unset;font-family:var(--ha-font-family);font-size:1rem;color:var(--ha-S500-contrast);margin-top:0.3rem;margin-left:1.1rem"}:{name:"p73dxp",styles:"all:unset;font-family:var(--ha-font-family);font-size:1rem;color:var(--ha-S500-contrast);margin-top:0.3rem;margin-left:1.1rem",toString:De}),Ns=j.createStyled(be.Icon,process.env.NODE_ENV==="production"?{target:"e15e1idt7"}:{target:"e15e1idt7",label:"StyledIcon"})(process.env.NODE_ENV==="production"?{name:"1d2jak5",styles:"font-size:3rem;color:var(--ha-A100)!important"}:{name:"1d2jak5",styles:"font-size:3rem;color:var(--ha-A100)!important",toString:De}),Cs=j.createStyled(be.Icon,process.env.NODE_ENV==="production"?{target:"e15e1idt6"}:{target:"e15e1idt6",label:"LocationIcon"})(process.env.NODE_ENV==="production"?{name:"1nqb1ni",styles:"font-size:1rem;color:var(--ha-A400)!important;margin-right:0.2rem"}:{name:"1nqb1ni",styles:"font-size:1rem;color:var(--ha-A400)!important;margin-right:0.2rem",toString:De});function ks(e,r,o){const n=r*o,a=e.slice(0,n),l=[];let d=0;for(let c=0;c<r;c++){const u=Math.min(Math.ceil((a.length-d)/(r-c)),o);l.push(a.slice(d,d+u)),d+=u}return l}const _s=j.createStyled("div",process.env.NODE_ENV==="production"?{target:"e15e1idt5"}:{target:"e15e1idt5",label:"Forecast"})(process.env.NODE_ENV==="production"?{name:"lywmg8",styles:"display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:0.5rem;height:100%"}:{name:"lywmg8",styles:"display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:0.5rem;height:100%",toString:De}),js=j.createStyled(be.Icon,process.env.NODE_ENV==="production"?{target:"e15e1idt4"}:{target:"e15e1idt4",label:"ForecastIcon"})(process.env.NODE_ENV==="production"?{name:"18ku6o8",styles:"font-size:1.5rem;color:var(--ha-A100)!important"}:{name:"18ku6o8",styles:"font-size:1.5rem;color:var(--ha-A100)!important",toString:De}),Ds=j.createStyled("div",process.env.NODE_ENV==="production"?{target:"e15e1idt3"}:{target:"e15e1idt3",label:"Day"})(process.env.NODE_ENV==="production"?{name:"2pu5xu",styles:"color:var(--ha-S50-contrast)"}:{name:"2pu5xu",styles:"color:var(--ha-S50-contrast)",toString:De}),Os=j.createStyled("div",process.env.NODE_ENV==="production"?{target:"e15e1idt2"}:{target:"e15e1idt2",label:"Time"})(process.env.NODE_ENV==="production"?{name:"1syrqdo",styles:"color:var(--ha-S200-contrast);font-size:0.8rem"}:{name:"1syrqdo",styles:"color:var(--ha-S200-contrast);font-size:0.8rem",toString:De}),Rs=j.createStyled("div",process.env.NODE_ENV==="production"?{target:"e15e1idt1"}:{target:"e15e1idt1",label:"Temperature"})(process.env.NODE_ENV==="production"?{name:"1pdq2t8",styles:"color:var(--ha-S50-contrast);font-size:0.8rem"}:{name:"1pdq2t8",styles:"color:var(--ha-S50-contrast);font-size:0.8rem",toString:De}),Is=j.createStyled("div",process.env.NODE_ENV==="production"?{target:"e15e1idt0"}:{target:"e15e1idt0",label:"TemperatureLow"})(process.env.NODE_ENV==="production"?{name:"1wvg1a4",styles:"color:var(--ha-S500-contrast);font-size:0.75rem"}:{name:"1wvg1a4",styles:"color:var(--ha-S500-contrast);font-size:0.75rem",toString:De}),As=50;function Ts({entity:e,title:r,icon:o,iconProps:n,temperatureSuffix:a,includeTitle:l=!0,includeForecast:d=!0,includeCurrent:c=!0,includeTime:u=!0,includeDay:m=!0,details:p=[],apparentTemperatureAttribute:v="apparent_temperature",className:S,service:g,serviceData:h,forecastType:y="daily",forecastRows:f=1,allowForecastToggle:C=!0,cssStyles:w,key:E,...k}){const x=i.useHass(B=>B.config),[_,R]=s.useState(0),A=i.useHass(B=>B.globalComponentStyles),D=Math.floor(_/As),[b,N]=s.useState("UTC"),T=i.useHass(B=>B.formatter),$=i.useHass(B=>B.helpers).dateTime.shouldUseAmPm(),[I,z]=s.useState(y),M=i.useWeather(e,{type:I}),O=i.isUnavailableState(M.state),L=i.getIconByEntity("weather",M),{attributes:{friendly_name:P,temperature:J,temperature_unit:H}}=M;s.useEffect(()=>{x?.time_zone&&b!==x.time_zone&&N(x.time_zone)},[x,b]);const U=s.useMemo(()=>i.getSupportedForecastTypes(M),[M]);s.useEffect(()=>{z(y)},[y]);const W=s.useMemo(()=>{const{humidity:B,temperature:G,wind_speed:X,wind_speed_unit:te,temperature_unit:oe}=M.attributes,se=go.getAdditionalWeatherInformation(G,oe,X,te,B);return{apparent_temperature:M.attributes[v]??null,...M.attributes,...se??{}}},[M.attributes,v]),Y=W.apparent_temperature??W.feelsLike,Z=Y===J?null:Y,ge=ks(M.forecast?.forecast??[],f,D),F=()=>t.jsx(t.Fragment,{children:ge.map((B,G)=>t.jsx(K.Row,{className:"row",fullHeight:!0,style:{justifyContent:"space-between"},children:B.map((X,te)=>{const oe=new Date(X.datetime),se=T.formatDateWeekdayShort(oe),he=T.formatHour(oe),le=$?T.formatAmPmSuffix(oe):"",ye=$?`${he} ${le}`:he;return t.jsxs(_s,{className:"forecast",children:[m&&t.jsx(Ds,{className:"day",children:se}),u&&t.jsx(Os,{className:"time",children:ye}),t.jsx(js,{className:"icon forecast-icon",icon:i.getIconByEntity("weather",{...M,state:X.condition}),...n??{}}),t.jsxs(Rs,{className:"temperature",children:[X.temperature,a||H]}),X.templow&&t.jsxs(Is,{className:"temperature-low",children:[X.templow,a||H]})]},te)})},`weather-${G}`))});return t.jsx(ys,{title:r,entity:e,service:g,serviceData:h,className:`${S??""} weather-card`,resizeDetectorProps:{refreshRate:50,refreshMode:"throttle",onResize({width:B}){B&&R(B)}},cssStyles:` ${A?.weatherCard??""} ${w??""} `,...k,children:t.jsxs(ws,{children:[c&&!O&&t.jsxs(K.Row,{className:"row",justifyContent:"space-between",fullWidth:!0,wrap:"nowrap",children:[t.jsxs(K.Row,{wrap:"nowrap",children:[t.jsx(Ns,{icon:L,className:"icon"}),t.jsxs(ee.Column,{className:"column",alignItems:"flex-start",justifyContent:"center",children:[l&&t.jsxs(Ss,{className:"title",children:[t.jsx(Cs,{className:"location-icon icon",icon:o||"mdi:location"}),r||P]}),t.jsx(Es,{className:"sub-title",children:t.jsxs(K.Row,{"align-items":"center",justifyContent:"flex-start",children:[t.jsx("span",{className:"temperature-value",children:T.attributeValue(M,"temperature")}),t.jsx("span",{className:"sub-title-separator",children:", "}),t.jsx("span",{className:"state-value",children:T.stateValue(M)})]})})]})]}),d&&C&&t.jsx(Ve,{children:U.map((B,G)=>{const X=B==="daily"?"mdi:view-day":B==="twice_daily"?"mdi:hours-12":"mdi:hourglass";return t.jsx(Ne,{onClick:()=>{z(B)},icon:X,noIcon:!1,title:B,active:I===B,rippleProps:{preventPropagation:!0}},G)})})]}),(p&&p.length>0||typeof Z=="number")&&t.jsxs(K.Row,{gap:"0.5rem",className:"row",alignItems:"flex-start",justifyContent:"space-between",fullWidth:!0,children:[typeof Z=="number"&&t.jsx(Cn,{entity:e,title:i.localize("apparent_temperature"),render:()=>`${i.localize("apparent_temperature")} - ${Math.round(Z)}${a||H}`}),s.Children.map(p,(B,G)=>s.isValidElement(B)?s.cloneElement(B,{key:B.key||G}):B)]}),d&&!O&&_>0&&F(),O&&i.localize("unavailable")]})},E)}function Nn(e){const r={xxs:12,xs:6,sm:6,md:4,lg:4,xlg:3};return t.jsx(ne.ErrorBoundary,{...re({prefix:"WeatherCard"}),children:t.jsx(Ts,{...r,...e})})}function zs(){return"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."}const Ms=j.createStyled(K.Row,process.env.NODE_ENV==="production"?{target:"e1jqhbrg1"}:{target:"e1jqhbrg1",label:"DetailsRow"})("width:auto;",ce.mq(["xxs"],` width: 100%; `),";"),Vs=j.createStyled("div",process.env.NODE_ENV==="production"?{target:"e1jqhbrg0"}:{target:"e1jqhbrg0",label:"State"})(process.env.NODE_ENV==="production"?{name:"jljpb8",styles:"color:var(--ha-S500-contrast);font-size:0.8rem;white-space:nowrap;overflow:hidden;text-overflow:e