UNPKG

@hakit/components

Version:
161 lines (147 loc) 312 kB
"use strict";const t=require("./emotion-react-jsx-runtime.browser.esm-D6BfYa4f.cjs"),_=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"),Z=require("./cjs/Shared/Column/index.js"),be=require("@iconify/react"),go=require("./cjs/Cards/WeatherCard/helpers.js"),me=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"),he=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(l=>l.breakpoints),o=i.useHass(l=>l.windowContext)??window,n=s.useMemo(()=>ce.getBreakpoints(e),[e]),[a,d]=s.useState(()=>Object.fromEntries(ce.allBreakpoints.map(l=>[l,!1])));return s.useEffect(()=>{const l=o||window,c=new Map,u=()=>{const h=Object.fromEntries(ce.allBreakpoints.map(p=>[p,!1]));for(const p of ce.allBreakpoints)if(typeof n[p]=="string"&&c.get(p)?.matches){h[p]=!0;break}d(h)};for(const h of ce.allBreakpoints){const p=n[h];if(typeof p=="string"){const x=l.matchMedia(p);if(!x)continue;c.set(h,x),x.addEventListener("change",u)}}return u(),()=>{for(const h of c.values())h&&h.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?_.createStyled(e,process.env.NODE_ENV==="production"?{target:"e1xe7ch93"}:{target:"e1xe7ch93",label:"getBaseElement"})():_.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=_.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=_.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:d,serviceData:l,children:c,disabled:u,longPressCallback:h,onClick:p,disableModal:x=!1,modalProps:S,disableRipples:f=!1,disableScale:b=!1,disableActiveState:y=!1,onlyFunctionality:g=!1,id:N,className:w,cssStyles:E,style:k,borderRadius:m="16px",rippleProps:D,disableColumns:O,refCallback:A,key:j,relatedEntities:v,features:C,featureBarProps:T,graph:V,resizeDetectorProps:$,triggerClass:I,...z}){const M=s.useId(),R=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,...$??{}}),ee=i.useEntity(V?.entity??"unknown",{returnNullIfNotFound:!0,historyOptions:{disable:!1,...V?.historyOptions}}),Y=s.useMemo(()=>typeof H?.state=="string"?i.isUnavailableState(H.state):!1,[H?.state]),ue=m,F=s.useMemo(()=>Io(r,g),[r,g]),B=hn.useLongPress(q=>{typeof h=="function"&&h(H!==null?H:null,q),typeof o=="string"&&!L&&!x&&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 d=="string"&&H&&!Y){const pe=H.service[d];pe(l)}typeof p=="function"&&p(H!==null?H:null,q)}},[d,u,H,l,p,Y]),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((pe,[Ee,Pe])=>{const Ct=z[Ee];return{...pe,[Ee]:Ct??Pe}},zr);return Object.entries(q).map(([pe,Ee])=>`${pe}-${Ee}`).join(" ")},[z.xxs,z.xs,z.sm,z.md,z.lg,z.xlg]),oe=s.Children.toArray(v).filter(q=>s.isValidElement(q)),se=s.Children.toArray(C).filter(q=>s.isValidElement(q)),fe=s.Children.map(se,(q,pe)=>s.isValidElement(q)?s.cloneElement(q,{key:q.key||`${M}${pe}`,...q.props}):q),le=se.length>0,ye=le&&t.jsx(Ve,{layoutType:"bubble",className:"features",fullWidth:!0,gap:"0.5rem",...T,children:fe});function ve(q){const pe=Ar.SVG_WIDTH/Ar.SVG_HEIGHT;return`calc(${q/pe}px - ${V?.adjustGraphSpaceBy??"0px"});`}const _e=ve(W),ze=s.useMemo(()=>["card-base",w??"",O?"":te,b?"disable-scale-effect":"",a?"active":"",Y?"unavailable":"",u||Y?"disabled":"",le?"has-features":"",ee?"has-graph":""].filter(q=>!!q).join(" "),[a,w,te,b,O,u,ee,le,Y]),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:N??"",className:ze,css:de.css("padding-bottom:",ee?_e:"inherit",";",R.cardBase??""," ",E??"",";"+(process.env.NODE_ENV==="production"?"":";label:CardBase;")),style:{...k??{},borderRadius:ue},disableActiveState:y,disabled:Y||u,...B(),...z,children:[ee&&t.jsx("div",{className:"graph-element history",children:ee.history.loading?t.jsx(Be.Alert,{className:"loading",description:i.localize("loading")}):ee.history.coordinates.length>0?t.jsx(mo.SvgGraph,{coordinates:ee.history.coordinates,...V?.props}):t.jsx(Be.Alert,{className:"no-state-history",description:i.localize("no_state_history_found")})}),f?t.jsxs(Tr,{className:`contents trigger-element ${I}`,onClick:G,onPointerDown:Et,onPointerUp:Nt,children:[c,ye]}):de.createElement(Ao,{...D,key:D?.key,borderRadius:ue,disabled:u||Y},t.jsxs(Tr,{className:`contents trigger-element ${I}`,onClick:G,onPointerDown:Et,onPointerUp:Nt,children:[c,ye]})),s.Children.map(oe,(q,pe)=>s.isValidElement(q)?s.cloneElement(q,{key:q.key||`${M}${pe}`,...q.props}):q)]},j),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=_.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:d,disabled:l,service:c,serviceData:u,...h}){const p=i.useEntity(e),x=i.useIcon(r??null,o),S=i.computeDomain(e),f=i.useIconByDomain(S===null?"unknown":S,o),b=i.useIconByEntity(e||"unknown",o),y=x??b??f,g=s.useMemo(()=>typeof p?.state=="string"?i.isUnavailableState(p.state):!1,[p?.state]),N=s.useCallback(w=>{if(!l){if(typeof c=="string"&&p&&!g){const E=p.service[c];E(u)}typeof d=="function"&&d(p!==null?p:null,w)}},[c,l,p,u,d,g]);return t.jsx(zo,{position:a,onClick:N,...h,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=_.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",offsetX:r=0,offsetY:o=0,title:n=null,children:a,ref:d,...l}){const c=s.useRef(null),u=s.useRef(null),h=i.useHass(N=>N.portalRoot),x=i.useHass(N=>N.windowContext)??window,[S,f]=s.useState(!1),b=s.useCallback(N=>{const w=u.current?.getBoundingClientRect();if(typeof w>"u")return;let E=0,k=0;switch(e){case"top":E=w.top,k=w.left+w.width/2;break;case"right":E=w.top+w.height/2,k=w.right;break;case"bottom":E=w.bottom,k=w.left+w.width/2;break;case"left":E=w.top+w.height/2,k=w.left;break}E=E+o,k=k+r,N.style.top=`${E}px`,N.style.left=`${k}px`,setTimeout(()=>{N.style.opacity="1",N.style.visibility="visible"},0)},[e,r,o]),y=s.useCallback(()=>{f(!0)},[]),g=s.useCallback(()=>{const N=c.current;N&&(N.style.opacity="0",N.style.visibility="hidden",N.setAttribute("aria-hidden","true"),setTimeout(()=>{f(!1)},250))},[]);return n===null||n===""?a:t.jsxs("div",{ref:u,onBlur:g,onTouchEnd:g,onTouchStart:y,onMouseUp:g,onMouseEnter:y,onMouseLeave:g,...l,children:[s.Children.map(a,(N,w)=>s.isValidElement(N)?s.cloneElement(N,{...N.props,onClick(E,k){N.props.onClick?.(E,k),l?.onClick?.(k)},ref:d,key:N.key??w}):N),typeof document<"u"&&mt.createPortal(S&&t.jsx($o,{className:"tooltip-inner",placement:e,ref:N=>{N&&(c.current=N,b(N))},"aria-hidden":"false",children:n}),h??x.document.body)]})}function ge(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=_.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=_.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=_.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;box-shadow:0 0 4px rgba(0, 0, 0, 0.5);transition:var(--ha-transition-duration) var(--ha-easing);transition-property:left,transform;left:",e=>e.active?"100%":0,";transform:",e=>e.active?"translate3d(calc(-100% - 2px), 0, 0)":"translate3d(calc(0% + 2px), 0, 0)",";"),qo=_.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=_.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:0 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=_.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=_.createStyled("div",process.env.NODE_ENV==="production"?{target:"e1cw8oq32"}:{target:"e1cw8oq32",label:"Footer"})(process.env.NODE_ENV==="production"?{name:"z1bcv1",styles:"display:flex;align-items:flex-start;justify-content:flex-start;flex-direction:column;width:100%"}:{name:"z1bcv1",styles:"display:flex;align-items:flex-start;justify-content:flex-start;flex-direction:column;width:100%",toString:it}),Mr=_.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=_.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:d,active:l,onClick:c,description:u,title:h,layoutType:p,disabled:x=!1,className:S,hideIcon:f=!1,hideState:b=!1,hideLastUpdated:y=!1,children:g,hideDetails:N=!1,cssStyles:w,key:E,hideToggle:k=!1,customRenderState:m,...D}){const O=i.useHass(Y=>Y.globalComponentStyles),A=i.useHass(Y=>Y.formatter),j=e?i.computeDomain(e):null,v=i.useEntity(e||"unknown",{returnNullIfNotFound:!0}),C=typeof a<"u"&&typeof a!="string"?a:null,T=i.useIconByDomain(j===null?"unknown":j,{...n??{}}),V=i.useIconByEntity(e||"unknown",{...n??{}}),$=p==="default"||p===void 0,I=p==="slim"||p==="slim-vertical",z=typeof v?.state=="string"?i.isUnavailableState(v.state):!1,M=v?v.state!=="off"&&!z&&!x:l||!1,R=i.useIcon(typeof a=="string"?a:null,{...n??{}}),L=s.useMemo(()=>h===null?null:h||v?.attributes.friendly_name||v?.entity_id||null,[h,v]);function P(){return b?null:m&&v?m(v):typeof l=="boolean"?l?`${i.localize(i.ON)}`:`${i.localize(i.OFF)}`:v&&v.state===i.ON&&j==="light"?A.attributeValue(v,"brightness"):v?A.stateValue(v):null}const J=s.Children.toArray(D?.features).filter(Y=>s.isValidElement(Y)).length>0,H=P(),U=D.descriptionSeparator??"-";function W(Y,ue){return!Y&&!ue?null:Y&&ue?t.jsxs(t.Fragment,{children:[Y," ",t.jsx("span",{className:"description-separator",children:U})," ",ue]}):Y||ue}const ee=!f||$&&!k||I;return t.jsx(Bo,{as:"button",service:r,serviceData:o,active:l,entity:e,title:L??void 0,disabled:x||z,onClick:c,className:`${S??""} ${p??"default"} button-card`,triggerClass:"button-card-trigger",cssStyles:` ${O.buttonCard??""} ${w??""} `,...D,children:t.jsxs(Lo,{className:`contents ${J?"has-features":""}`,children:[ee&&t.jsxs(Uo,{className:`layout-between ${p==="slim-vertical"?"vertical":""}`,style:$||g?{marginBottom:"20px"}:void 0,children:[!f&&t.jsx(Wo,{brightness:M&&v?.custom.brightness||"brightness(100%)",...d,className:`fab-card-inner icon ${d?.className} ${d?.style?"custom":""}`,style:{...d?.style,backgroundColor:d?.style?.backgroundColor??(M?j==="light"?v?.custom?.rgbaColor??"var(--ha-A400)":"var(--ha-A400)":"var(--ha-S400)"),color:d?.style?.color??(v?M?v.custom.rgbColor:"var(--ha-S500-contrast)":M?"var(--ha-A400)":"var(--ha-S500-contrast)")},children:C??R??V??T}),$&&!k&&t.jsx(qo,{active:M,className:"toggle",children:!z&&t.jsx(Ho,{active:M,className:"toggle-state"})}),I&&t.jsxs(Z.Column,{fullWidth:!0,alignItems:p==="slim-vertical"?"center":"flex-start",children:[L&&t.jsx(Mr,{className:"title",children:L}),!N&&t.jsx(kt,{className:`description ${p??""}`,children:W(u,H)}),v&&!y&&t.jsxs(kt,{className:`description secondary ${p==="slim-vertical"?"center":""}`,children:[i.localize("last_updated"),": ",v.custom.relativeTime]})]})]}),$&&t.jsxs(Go,{className:"footer",children:[L&&t.jsx(Mr,{className:"title",children:L}),!N&&t.jsx(kt,{className:"description",children:W(u,H)}),!N&&v&&!y&&t.jsxs(kt,{className:"description secondary",children:[i.localize("last_updated"),": ",v.custom.relativeTime]})]}),g&&t.jsx("div",{className:"children",children:g})]})},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=_.createStyled("div",process.env.NODE_ENV==="production"?{target:"eu3ltb74"}:{target:"eu3ltb74",label:"RangeSliderParent"})(),Qo=_.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=_.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=_.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=_.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:d,className:l,style:c,tooltipSize:u=2,handleSize:h=15,min:p=0,max:x=100,step:S=1,debounceThrottleValue:f=300,debounceType:b="debounce",onChangeComplete:y,cssStyles:g,...N}){const[w,E]=s.useState(e??0),[k,m]=s.useState(!1),D=s.useRef(null),O=s.useRef(null),A=s.useRef(null);s.useEffect(()=>{typeof e=="number"&&E(e)},[e]),s.useEffect(()=>{if(!D.current||n)return;const C=parseFloat(`${p??0}`),T=parseFloat(`${x??100}`),V=parseFloat(`${S??1}`),$=parseFloat(D.current.valueAsNumber.toFixed(V<1?Math.abs(Math.log10(V)):0)),I=(D.current.valueAsNumber-C)/(T-C)*100;if(A.current){A.current.style.left=`${I}%`;const z=typeof o=="function"?o($):$;A.current.setAttribute("data-title",`${z}`)}},[w,p,x,S,o,n]);const v=(b==="debounce"?Fe.useDebouncedCallback:Fe.useThrottledCallback)(C=>{typeof y=="function"&&y(C.target.valueAsNumber,C),m(!1)},f,{leading:!0,trailing:!0});return t.jsxs(Xo,{className:`${l??""} ${k?"active":""} range-slider`,style:{position:"relative",...c??{}},css:de.css(g??"",";"+(process.env.NODE_ENV==="production"?"":";label:InternalRangeSlider;")),children:[a&&t.jsx(Jo,{className:"label",children:a}),d&&t.jsx(Zo,{className:"description",children:d}),t.jsxs(Qo,{ref:O,handleSize:h,className:`range-slider-inner ${k?"active":""}`,children:[t.jsx("input",{...N,min:p,max:x,step:S,ref:D,type:"range",className:"range-slider-range",value:w,onInput:C=>{E(C.target.valueAsNumber),k||m(!0)},onChange:C=>{typeof r=="function"&&r(C.target.valueAsNumber,C),v(C)}}),!n&&t.jsx("div",{className:"tooltip-holder",style:{position:"absolute",top:0,left:h/2,right:h/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=_.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=_.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:d,preventPropagation:l=!1,style:c,className:u,cssStyles:h,id:p,...x})=>{const S=s.useRef(null),f=s.useRef(null),y=i.useHass(N=>N.windowContext)??window;s.useEffect(()=>()=>{f.current&&clearTimeout(f.current)},[]);const g=s.useCallback(N=>{if(N.stopPropagation(),d)return;f.current!==null&&clearTimeout(f.current);const{pageX:w,pageY:E,currentTarget:k}=N,m=k.getBoundingClientRect();let D=1;typeof y<"u"&&(D=y.scrollX);let O=1;typeof y<"u"&&(O=y.scrollY);const A=w-(m.left+D),j=E-(m.top+O),v=Math.max(m.width,m.height);if(S.current){const C={left:isNaN(A)?"0px":`${A}px`,top:isNaN(j)?"0px":`${j}px`,opacity:1,transform:"translate(-50%, -50%)",transition:"initial",backgroundColor:r};Object.assign(S.current.style,C)}f.current=setTimeout(()=>{if(S.current){const C={opacity:0,transform:`scale(${v/9})`,transition:`all ${e}ms`};Object.assign(S.current.style,C)}f.current=null},50),typeof n=="function"&&n(N)},[r,e,d,n,y]);return t.jsx(os,{borderRadius:o,id:p??"",className:`ripple-parent ${u??""}`,css:de.css(h??"",";"),style:{...c??{}},children:t.jsxs("div",{className:"ripple-inner",onPointerDownCapture:N=>{l&&N.stopPropagation()},...x,style:{width:"100%",...rs,borderRadius:o},onClick:g,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=_.createStyled(xe,process.env.NODE_ENV==="production"?{target:"e17tod368"}:{target:"e17tod368",label:"StyledTriggerCard"})(),as=_.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=_.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=_.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=_.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=_.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=_.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=_.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=_.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:d,iconProps:l,sliderIconProps:c,sliderIcon:u,sliderTextActive:h,sliderTextInactive:p,activeStateDuration:x=5e3,hideArrow:S=!1,className:f,service:b,serviceData:y,key:g,cssStyles:N,...w}){const E=i.useHass(R=>R.globalComponentStyles),k=i.computeDomain(e),m=i.useEntity(e),D=i.useIconByEntity(e,l),O=i.useIconByDomain(k,l),A=s.useRef(null),[j,v]=s.useState(!1),C=i.useIcon(d??null,l),T=i.useIcon(u??null,c),V=i.useIcon("mdi:power",l),$=i.useIcon("mingcute:arrows-right-line",{...l,style:{fontSize:"16px",...l?.style}}),I=i.isUnavailableState(m.state),z=a||I,M=s.useCallback(R=>{v(!0),typeof n=="function"&&!I&&n(m,R),A.current&&clearTimeout(A.current),A.current=setTimeout(()=>{v(!1)},x)},[m,n,x,I]);return t.jsx(ss,{as:"button",className:`${f??""} trigger-card`,disabled:z,entity:e,service:b,serviceData:y,onClick:M,cssStyles:` ${E?.triggerCard??""} ${N??""} `,...w,children:t.jsxs(ds,{children:[t.jsxs(Vr,{className:"layout-between",children:[t.jsxs(ps,{disabled:z,className:"description",children:[r||m.attributes.friendly_name||e,o&&t.jsx("span",{children:o})]}),C??D??O]}),t.jsx(cs,{className:"gap"}),t.jsxs(Vr,{className:"layout-between",children:[t.jsxs(us,{className:"title",children:[m.custom.relativeTime,z?` - ${m.state}`:""]}),t.jsx(ls,{active:z?!1:j,className:"toggle",children:z?null:t.jsxs(t.Fragment,{children:[t.jsx(is,{active:j,className:"toggle-state",children:T??V}),t.jsxs(as,{hideArrow:S,active:j,className:"toggle-message",children:[j?h??i.localize("triggered_name",{search:" {name}",replace:""}):p??`${i.localize("run")} ${i.computeDomainTitle(e,m?.attributes?.device_class)}`," ",!j&&!S&&$]})]})})]})]})},g)}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=_.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=_.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=_.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=_.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:d="center",layout:l="row",collapsed:c=!1,collapsible:u=!0,className:h,onClick:p,...x}){const[S,f]=s.useState(c),b={gap:n,justifyContent:a,alignItems:d},y=s.useCallback(()=>{f(!0)},[]),g=s.useCallback(N=>{u&&f(!S),p&&p(N)},[S,u,p]);return t.jsxs(ms,{onlyFunctionality:!0,disableScale:!0,disableActiveState:!0,disableRipples:!0,borderRadius:"16px",className:`${h??""} ${S?"collapsed":"expanded"} group`,collapsed:S,collapsible:u,...x,children:[t.jsxs(bs,{onClick:g,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:l==="row"?t.jsx(K.Row,{className:"row",...b,children:o}):t.jsx(Z.Column,{className:"column",...b,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=_.createStyled(xe,process.env.NODE_ENV==="production"?{target:"e15e1idt11"}:{target:"e15e1idt11",label:"Card"})(),ws=_.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=_.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=_.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=_.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=_.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),d=[];let l=0;for(let c=0;c<r;c++){const u=Math.min(Math.ceil((a.length-l)/(r-c)),o);d.push(a.slice(l,l+u)),l+=u}return d}const _s=_.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=_.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=_.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=_.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=_.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=_.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:d=!0,includeForecast:l=!0,includeCurrent:c=!0,includeTime:u=!0,includeDay:h=!0,details:p=[],apparentTemperatureAttribute:x="apparent_temperature",className:S,service:f,serviceData:b,forecastType:y="daily",forecastRows:g=1,allowForecastToggle:N=!0,cssStyles:w,key:E,...k}){const m=i.useHass(B=>B.config),[D,O]=s.useState(0),A=i.useHass(B=>B.globalComponentStyles),j=Math.floor(D/As),[v,C]=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}),R=i.isUnavailableState(M.state),L=i.getIconByEntity("weather",M),{attributes:{friendly_name:P,temperature:J,temperature_unit:H}}=M;s.useEffect(()=>{m?.time_zone&&v!==m.time_zone&&C(m.time_zone)},[m,v]);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[x]??null,...M.attributes,...se??{}}},[M.attributes,x]),ee=W.apparent_temperature??W.feelsLike,Y=ee===J?null:ee,ue=ks(M.forecast?.forecast??[],g,j),F=()=>t.jsx(t.Fragment,{children:ue.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),fe=T.formatHour(oe),le=$?T.formatAmPmSuffix(oe):"",ye=$?`${fe} ${le}`:fe;return t.jsxs(_s,{className:"forecast",children:[h&&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:f,serviceData:b,className:`${S??""} weather-card`,resizeDetectorProps:{refreshRate:50,refreshMode:"throttle",onResize({width:B}){B&&O(B)}},cssStyles:` ${A?.weatherCard??""} ${w??""} `,...k,children:t.jsxs(ws,{children:[c&&!R&&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(Z.Column,{className:"column",alignItems:"flex-start",justifyContent:"center",children:[d&&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)})]})})]})]}),l&&N&&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 Y=="number")&&t.jsxs(K.Row,{gap:"0.5rem",className:"row",alignItems:"flex-start",justifyContent:"space-between",fullWidth:!0,children:[typeof Y=="number"&&t.jsx(Cn,{entity:e,title:i.localize("apparent_temperature"),render:()=>`${i.localize("apparent_temperature")} - ${Math.round(Y)}${a||H}`}),s.Children.map(p,(B,G)=>s.isValidElement(B)?s.cloneElement(B,{key:B.key||G}):B)]}),l&&!R&&D>0&&F(),R&&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=_.createStyled(K.Row,process.env.NODE_ENV==="production"?{target:"e1jqhbrg1"}:{target:"e1jqhbrg1",label:"DetailsRow"})("width:auto;",ce.mq(["xxs"],` width: 100%; `),";"),Vs=_.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);