@hakit/components
Version:
A series of components to work with @hakit/core
161 lines (147 loc) • 307 kB
JavaScript
"use strict";const t=require("./emotion-react-jsx-runtime.browser.esm-CgJouFLh.cjs"),k=require("./emotion-styled-base.browser.esm-D0rcP917.cjs"),a=require("react"),d=require("@hakit/core"),co=require("./cjs/Shared/Form/TextField.js"),ue=require("@emotion/react"),he=require("framer-motion"),dn=require("use-long-press"),ce=require("lodash"),Z=require("react-error-boundary"),vt=require("react-dom");require("@emotion/serialize");require("@emotion/utils");require("@emotion/is-prop-valid");const Be=require("./cjs/Shared/Entity/Alarm/AlarmControls/shared.js"),Le=require("use-debounce"),pe=require("./cjs/ThemeProvider/breakpoints.js"),lo=require("./cjs/Shared/SvgGraph/index.js"),Y=require("./cjs/Shared/Row/index.js"),K=require("./cjs/Shared/Column/index.js"),ve=require("@iconify/react"),uo=require("./cjs/Cards/WeatherCard/helpers.js"),me=require("./cjs/Shared/Entity/Climate/ClimateControls/data.js"),Se=require("./cjs/Shared/Entity/Climate/ClimateControls/shared.js"),un=require("./cjs/Shared/Entity/Climate/ClimateControls/BigNumber.js"),yt=require("@use-gesture/react"),po=require("@fullcalendar/react"),fo=require("@fullcalendar/daygrid"),ho=require("@fullcalendar/interaction"),mo=require("@fullcalendar/list"),dr=require("react-resize-detector"),go=require("autolinker"),pn=require("./cjs/Cards/CameraCard/players/index.js"),bo=require("./cjs/Shared/Modal/ModalProvider/index.js"),Ar=require("./cjs/Shared/ControlSliderCircular/svg-arc.js"),ur=require("./cjs/Shared/PreloadImage/index.js"),qe=require("./cjs/Shared/Alert/index.js"),xo=require("./cjs/ThemeProvider/theme.js"),vo=require("./cjs/ThemeProvider/helpers.js"),fe=require("./cjs/ThemeProvider/constants.js"),zt=require("./cjs/ThemeProvider/store.js"),yo=require("@emotion/cache"),ht=require("react/jsx-runtime"),pr=require("react-use"),fn=require("./cjs/Shared/Entity/Vacuum/VacuumControls/shared.js"),hn=require("./cjs/Shared/Entity/Vacuum/VacuumControls/VacuumImage.js"),rt=require("./cjs/Cards/MediaPlayerCard/constants.js"),wo=require("./cjs/Cards/MediaPlayerCard/Marquee.js"),So=require("./cjs/Cards/MediaPlayerCard/Thumbnail.js"),Eo=require("./cjs/Cards/MediaPlayerCard/Clock.js"),No=require("./cjs/Cards/MediaPlayerCard/ProgressBar.js"),It=require("leaflet"),fr=require("react-leaflet"),mn=require("./cjs/Cards/TimeCard/formatter.js"),jt=require("./cjs/Cards/TimeCard/shared.js"),Ir=require("./cjs/utils/isValidProp.js"),Tr=require("./cjs/Shared/SvgGraph/constants.js");function gn(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 G=gn(a),Co=gn(vt);function dt(){const{useStore:e}=d.useHass(),r=e(u=>u.breakpoints),n=e(u=>u.windowContext)??window,s=a.useMemo(()=>pe.getBreakpoints(r),[r]),c={xxs:!1,xs:!1,sm:!1,md:!1,lg:!1,xlg:!1},[l,i]=a.useState(c);return a.useEffect(()=>{const u=(h,g)=>{i(v=>({...v,[h]:g.matches}))},m={xxs:n.matchMedia(s.xxs),xs:n.matchMedia(s.xs),sm:n.matchMedia(s.sm),md:n.matchMedia(s.md),lg:n.matchMedia(s.lg),xlg:n.matchMedia(s.xlg)};return Object.keys(m).forEach(h=>{u(h,m[h])}),Object.keys(m).forEach(h=>{m[h]?.addEventListener("change",v=>u(h,v.currentTarget))}),()=>{Object.keys(m).forEach(h=>{m[h]?.removeEventListener("change",v=>u(h,v.currentTarget))})}},[s,n]),l}var ko=function(r){var o=new WeakMap;return function(n){if(o.has(n))return o.get(n);var s=r(n);return o.set(n,s),s}};function bn(){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 jo=(e,r)=>{const o=he.motion[e];if(!o)throw new Error(`Failed to create a motion component for element type: ${e}`);return r?k.createStyled(o,process.env.NODE_ENV==="production"?{target:"e1xe7ch93"}:{target:"e1xe7ch93",label:"getMotionElement"})():k.createStyled(o,process.env.NODE_ENV==="production"?{shouldForwardProp:n=>Ir.isValidProp(n),target:"e1xe7ch92"}:{shouldForwardProp:n=>Ir.isValidProp(n),target:"e1xe7ch92",label:"getMotionElement"})("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: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;}",n=>!n.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);
}
}
`,";")},_o=k.createStyled(e=>t.jsx(yn,{...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:bn}),zr=k.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:bn}),Mr={xxs:12,xs:6,sm:6,md:4,lg:4,xlg:3},Do=function({as:r="div",entity:o,title:n,active:s,service:c,serviceData:l,children:i,disabled:u,longPressCallback:m,onClick:h,modalProps:g,disableRipples:v=!1,disableScale:p=!1,disableActiveState:b=!1,onlyFunctionality:y=!1,id:f,className:C,cssStyles:E,style:x,borderRadius:j="16px",rippleProps:w,disableColumns:_,whileTap:N,ref:T,key:$,relatedEntities:z,features:D,featureBarProps:A,graph:M,resizeDetectorProps:S,triggerClass:R,...I}){const V=a.useId(),{useStore:O}=d.useHass(),P=O(re=>re.globalComponentStyles),[B,H]=a.useState(!1),L=o?d.computeDomain(o):null,Q=d.useEntity(o??"unknown",{returnNullIfNotFound:!0}),U=a.useRef(null),{width:ne=0}=dr.useResizeDetector({refreshMode:"debounce",refreshRate:50,handleHeight:!1,skipOnMount:!1,targetRef:T??U,...S??{}}),de=d.useEntity(M?.entity??"unknown",{returnNullIfNotFound:!0,historyOptions:{disable:!1,...M?.historyOptions}}),W=a.useMemo(()=>typeof Q?.state=="string"?d.isUnavailableState(Q.state):!1,[Q?.state]),F=j,q=a.useMemo(()=>jo(r,y),[r,y]),X=dn.useLongPress(re=>{typeof m=="function"&&m(Q!==null?Q:null,re),typeof o=="string"&&!B&&H(!0)},{threshold:300,cancelOnMovement:!0,cancelOutsideElement:!0,filterEvents(re){return!("button"in re&&re.button===2)}}),te=a.useCallback(re=>{if(!u){if(typeof c=="string"&&Q&&!W){const Ne=Q.service[c];Ne(l)}typeof h=="function"&&h(Q!==null?Q:null,re)}},[c,u,Q,l,h,W]),ee=a.useMemo(()=>n||Q?.attributes?.friendly_name||(L!==null?ce.startCase(ce.lowerCase(L)):null),[n,Q,L]),ie=a.useMemo(()=>{const re=Object.entries(Mr).reduce((Ne,[Ke,oe])=>{const je=I[Ke];return{...Ne,[Ke]:je??oe}},Mr);return Object.entries(re).map(([Ne,Ke])=>`${Ne}-${Ke}`).join(" ")},[I.xxs,I.xs,I.sm,I.md,I.lg,I.xlg]),se=a.Children.toArray(z).filter(re=>a.isValidElement(re)),ae=a.Children.toArray(D).filter(re=>a.isValidElement(re)),ge=a.Children.map(ae,(re,Ne)=>a.isValidElement(re)?a.cloneElement(re,{key:re.key||`${V}${Ne}`,...re.props}):re),Ce=ae.length>0,we=Ce&&t.jsx(Fe,{layoutType:"bubble",className:"features",fullWidth:!0,gap:"0.5rem",...A,children:ge});function be(re){const Ne=Tr.SVG_WIDTH/Tr.SVG_HEIGHT;return`calc(${re/Ne}px - ${M?.adjustGraphSpaceBy??"0px"});`}const ke=be(ne),He=a.useMemo(()=>["card-base",C??"",_?"":ie,s?"active":"",W?"unavailable":"",u||W?"disabled":"",Ce?"has-features":"",de?"has-graph":""].filter(re=>!!re).join(" "),[s,C,ie,_,u,de,Ce,W]);return t.jsxs(t.Fragment,{children:[t.jsxs(q,{ref:T??U,id:f??"",className:He,css:ue.css("padding-bottom:",de?ke:"inherit",";",P.cardBase??""," ",E??"",";"+(process.env.NODE_ENV==="production"?"":";label:CardBase;")),style:{...x??{},borderRadius:F},whileTap:N??{scale:p||u||W?1:.9},disableActiveState:b,disabled:W||u,...X(),...I,children:[de&&t.jsx("div",{className:"graph-element history",children:de.history.loading?t.jsx(qe.Alert,{className:"loading",description:d.localize("loading")}):de.history.coordinates.length>0?t.jsx(lo.SvgGraph,{coordinates:de.history.coordinates,...M?.props}):t.jsx(qe.Alert,{className:"no-state-history",description:d.localize("no_state_history_found")})}),v?t.jsxs(zr,{className:`contents trigger-element ${R}`,onClick:te,children:[i,we]}):ue.createElement(_o,{...w,key:w?.key,borderRadius:F,disabled:u||W},t.jsxs(zr,{className:`contents trigger-element ${R}`,onClick:te,children:[i,we]})),a.Children.map(se,(re,Ne)=>a.isValidElement(re)?a.cloneElement(re,{key:re.key||`${V}${Ne}`,...re.props}):re)]},$),typeof o=="string"&&t.jsx(wr,{...g,entity:o,title:g?.title??ee??d.localize("unknown"),onClose:()=>{H(!1),g?.onClose&&g.onClose()},open:g?.open||B,id:V})]})},ye=a.memo(function(r){return t.jsx(Z.ErrorBoundary,{...J({prefix:"CardBase"}),children:t.jsx(Do,{...r})})}),Oo=k.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 Ro({entity:e,icon:r,iconProps:o,render:n,position:s,onClick:c,disabled:l,service:i,serviceData:u,...m}){const h=d.useEntity(e),g=d.useIcon(r??null,o),v=d.computeDomain(e),p=d.useIconByDomain(v===null?"unknown":v,o),b=d.useIconByEntity(e||"unknown",o),y=g??b??p,f=a.useMemo(()=>typeof h?.state=="string"?d.isUnavailableState(h.state):!1,[h?.state]),C=a.useCallback(E=>{if(!l){if(typeof i=="string"&&h&&!f){const x=h.service[i];x(u)}typeof c=="function"&&c(h!==null?h:null,E)}},[i,l,h,u,c,f]);return t.jsx(Oo,{position:s,onClick:C,...m,children:n?n(h,y):t.jsx(t.Fragment,{children:y})})}const Ao=a.memo(function(r){return t.jsx(Z.ErrorBoundary,{...J({prefix:"RelatedEntity"}),children:t.jsx(Ro,{...r})})});function Io({children:e,active:r,...o}){return t.jsx(_e,{as:"div",rippleProps:{preventPropagation:!0},active:r,cssStyles:`
&.button-bar-button {
.contents {
> div {
padding: 0.6rem;
}
}
}
`,...o,children:e})}const Ue=function(r){return t.jsx(Z.ErrorBoundary,{...J({prefix:"FeatureEntity"}),children:t.jsx(Io,{...r})})},To=k.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 zo({placement:e="top",title:r=null,children:o,ref:n,...s}){const c=a.useRef(null),l=a.useRef(null),{useStore:i}=d.useHass(),u=i(f=>f.portalRoot),h=i(f=>f.windowContext)??window,[g,v]=a.useState(!1),p=a.useCallback(f=>{const C=l.current?.getBoundingClientRect();if(typeof C>"u")return;let E=0,x=0;switch(e){case"top":E=C.top,x=C.left+C.width/2;break;case"right":E=C.top+C.height/2,x=C.right;break;case"bottom":E=C.bottom,x=C.left+C.width/2;break;case"left":E=C.top+C.height/2,x=C.left;break}f.style.top=`${E}px`,f.style.left=`${x}px`,setTimeout(()=>{f.style.opacity="1",f.style.visibility="visible"},0)},[e]),b=a.useCallback(()=>{v(!0)},[]),y=a.useCallback(()=>{const f=c.current;f&&(f.style.opacity="0",f.style.visibility="hidden",f.setAttribute("aria-hidden","true"),setTimeout(()=>{v(!1)},250))},[]);return r===null||r===""?o:t.jsxs("div",{ref:l,onBlur:y,onTouchEnd:y,onTouchStart:b,onMouseUp:y,onMouseEnter:b,onMouseLeave:y,...s,children:[a.Children.map(o,(f,C)=>a.isValidElement(f)?a.cloneElement(f,{...f.props,onClick(E,x){f.props.onClick?.(E,x),s?.onClick?.(x)},ref:n,key:f.key??C}):f),typeof document<"u"&&vt.createPortal(g&&t.jsx(To,{className:"tooltip-inner",placement:e,ref:f=>{f&&(c.current=f,p(f))},"aria-hidden":"false",children:r}),u??h.document.body)]})}function xe(e){return t.jsx(Z.ErrorBoundary,{...J({prefix:"Tooltip"}),children:t.jsx(zo,{...e})})}const J=({prefix:e})=>({fallbackRender({error:r,resetErrorBoundary:o}){return t.jsx(qe.Alert,{className:"error-boundary-alert",title:`${e?`${e} - `:""}${d.localize("unknown_error")}`,description:r.message,type:"error",onClick:()=>o()})}});function ut(){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 Mo=k.createStyled(ye,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:ut}),Vo=k.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:ut}),Po=k.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)",";"),$o=k.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;"),Fo=k.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;}"),Bo=k.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:ut}),Lo=k.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:ut}),Vr=k.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:ut}),_t=k.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:ut});function qo({entity:e,service:r,serviceData:o,iconProps:n,icon:s,fabProps:c,active:l,onClick:i,description:u,title:m,layoutType:h,disabled:g=!1,className:v,hideIcon:p=!1,hideState:b=!1,hideLastUpdated:y=!1,children:f,hideDetails:C=!1,cssStyles:E,key:x,hideToggle:j=!1,unitOfMeasurement:w,customRenderState:_,...N}){const{useStore:T}=d.useHass(),$=T(U=>U.globalComponentStyles),z=e?d.computeDomain(e):null,D=d.useEntity(e||"unknown",{returnNullIfNotFound:!0}),A=typeof s<"u"&&typeof s!="string"?s:null,M=d.useIconByDomain(z===null?"unknown":z,{...n??{}}),S=d.useIconByEntity(e||"unknown",{...n??{}}),R=h==="default"||h===void 0,I=h==="slim"||h==="slim-vertical",V=typeof D?.state=="string"?d.isUnavailableState(D.state):!1,O=D?D.state!=="off"&&!V&&!g:l||!1,P=d.useIcon(typeof s=="string"?s:null,{...n??{}}),B=a.useMemo(()=>m===null?null:m||D?.attributes.friendly_name||D?.entity_id||null,[m,D]),H=a.useMemo(()=>u||(z!==null&&e?d.computeDomainTitle(e,D?.attributes?.device_class):null),[u,z,D,e]);function L(){return b?null:_&&D?_(D):typeof l=="boolean"?l?`${d.localize(d.ON)}`:`${d.localize(d.OFF)}`:V?d.localize("unavailable"):D&&D.state===d.ON&&z==="light"?`${D.custom.brightnessValue}%`:D?D.attributes.unit_of_measurement?`${d.localize(D.state)}${w??D.attributes.unit_of_measurement}`:`${d.localize(D.state)}`:null}const Q=a.Children.toArray(N?.features).filter(U=>a.isValidElement(U)).length>0;return t.jsx(Mo,{as:"button",service:r,serviceData:o,active:l,entity:e,title:B??void 0,disabled:g||V,onClick:i,className:`${v??""} ${h??"default"} button-card`,triggerClass:"button-card-trigger",cssStyles:`
${$.buttonCard??""}
${E??""}
`,...N,children:t.jsxs(Vo,{className:`contents ${Q?"has-features":""}`,children:[t.jsxs(Bo,{className:`layout-between ${h==="slim-vertical"?"vertical":""}`,children:[!p&&t.jsx(Fo,{brightness:O&&D?.custom.brightness||"brightness(100%)",...c,className:`fab-card-inner icon ${c?.className} ${c?.style?"custom":""}`,style:{...c?.style,backgroundColor:c?.style?.backgroundColor??(O?z==="light"?D?.custom?.rgbaColor??"var(--ha-A400)":"var(--ha-A400)":"var(--ha-S400)"),color:c?.style?.color??(D?O?D.custom.rgbColor:"var(--ha-S500-contrast)":O?"var(--ha-A400)":"var(--ha-S500-contrast)")},children:A??P??S??M}),R&&!j&&t.jsx($o,{active:O,className:"toggle",children:!V&&t.jsx(Po,{active:O,className:"toggle-state"})}),I&&t.jsxs(K.Column,{fullWidth:!0,alignItems:h==="slim-vertical"?"center":"flex-start",children:[B&&t.jsx(Vr,{className:"title",children:B}),!C&&H&&t.jsxs(_t,{className:`description ${h??""}`,children:[H," ",b?"":` - ${L()}`]}),D&&!y&&t.jsxs(_t,{className:`description secondary ${h==="slim-vertical"?"center":""}`,children:[d.localize("last_updated"),": ",D.custom.relativeTime]})]})]}),R&&t.jsxs(Lo,{className:"footer",children:[B&&t.jsx(Vr,{className:"title",children:B}),!C&&H&&t.jsxs(_t,{className:"description",children:[H,D&&!b?` - ${L()}`:""]}),!C&&D&&!y&&t.jsxs(_t,{className:"description secondary",children:[d.localize("last_updated"),": ",D.custom.relativeTime]})]}),f&&t.jsx("div",{className:"children",children:f})]})},x)}function hr(e){const r={xxs:12,xs:6,sm:4,md:3,lg:2,xlg:2};return t.jsx(Z.ErrorBoundary,{...J({prefix:"ButtonCard"}),children:t.jsx(qo,{...r,...e})})}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 Wo=k.createStyled("div",process.env.NODE_ENV==="production"?{target:"eu3ltb74"}:{target:"eu3ltb74",label:"RangeSliderParent"})(),Ho=k.createStyled("div",process.env.NODE_ENV==="production"?{target:"eu3ltb73"}:{target:"eu3ltb73",label:"StyledRange"})(e=>`
min-width: 6rem;
width: 100%;
position: relative;
isolation: isolate;
${pe.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;
}
}
}
`,";"),Uo=k.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%;}"),Go=k.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:xn}),Yo=k.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:xn});function Qo({value:e,onChange:r,formatTooltipValue:o,hideTooltip:n,label:s,description:c,className:l,style:i,tooltipSize:u=2,handleSize:m=15,min:h=0,max:g=100,step:v=1,debounceThrottleValue:p=300,debounceType:b="debounce",onChangeComplete:y,cssStyles:f,...C}){const[E,x]=a.useState(e??0),[j,w]=a.useState(!1),_=a.useRef(null),N=a.useRef(null),T=a.useRef(null);a.useEffect(()=>{typeof e=="number"&&x(e)},[e]),a.useEffect(()=>{if(!_.current||n)return;const D=parseFloat(`${h??0}`),A=parseFloat(`${g??100}`),M=parseFloat(`${v??1}`),S=parseFloat(_.current.valueAsNumber.toFixed(M<1?Math.abs(Math.log10(M)):0)),R=(_.current.valueAsNumber-D)/(A-D)*100;if(T.current){T.current.style.left=`${R}%`;const I=typeof o=="function"?o(S):S;T.current.setAttribute("data-title",`${I}`)}},[E,h,g,v,o,n]);const z=(b==="debounce"?Le.useDebouncedCallback:Le.useThrottledCallback)(D=>{typeof y=="function"&&y(D.target.valueAsNumber,D),w(!1)},p,{leading:!0,trailing:!0});return t.jsxs(Wo,{className:`${l??""} ${j?"active":""} range-slider`,style:{position:"relative",...i??{}},css:ue.css(f??"",";"+(process.env.NODE_ENV==="production"?"":";label:InternalRangeSlider;")),children:[s&&t.jsx(Go,{className:"label",children:s}),c&&t.jsx(Yo,{className:"description",children:c}),t.jsxs(Ho,{ref:N,handleSize:m,className:`range-slider-inner ${j?"active":""}`,children:[t.jsx("input",{...C,min:h,max:g,step:v,ref:_,type:"range",className:"range-slider-range",value:E,onInput:D=>{x(D.target.valueAsNumber),j||w(!0)},onChange:D=>{typeof r=="function"&&r(D.target.valueAsNumber,D),z(D)}}),!n&&t.jsx("div",{className:"tooltip-holder",style:{position:"absolute",top:0,left:m/2,right:m/2},children:t.jsx(Uo,{size:u,ref:T})})]})]})}function Ge(e){return t.jsx(Z.ErrorBoundary,{...J({prefix:"RangeSlider"}),children:t.jsx(Qo,{...e})})}function Xo(){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 Ko={position:"relative",display:"inline-flex",overflow:"hidden"},Jo=k.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:Xo}),Zo=k.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;
`,";"),vn=a.memo(({duration:e=600,color:r="rgba(0, 0, 0, .3)",borderRadius:o="none",onClick:n,children:s,disabled:c,preventPropagation:l=!1,style:i,className:u,cssStyles:m,id:h,...g})=>{const v=a.useRef(null),p=a.useRef(null),{useStore:b}=d.useHass(),f=b(E=>E.windowContext)??window;a.useEffect(()=>()=>{p.current&&clearTimeout(p.current)},[]);const C=a.useCallback(E=>{if(E.stopPropagation(),c)return;p.current!==null&&clearTimeout(p.current);const{pageX:x,pageY:j,currentTarget:w}=E,_=w.getBoundingClientRect();let N=1;typeof f<"u"&&(N=f.scrollX);let T=1;typeof f<"u"&&(T=f.scrollY);const $=x-(_.left+N),z=j-(_.top+T),D=Math.max(_.width,_.height);if(v.current){const A={left:isNaN($)?"0px":`${$}px`,top:isNaN(z)?"0px":`${z}px`,opacity:1,transform:"translate(-50%, -50%)",transition:"initial",backgroundColor:r};Object.assign(v.current.style,A)}p.current=setTimeout(()=>{if(v.current){const A={opacity:0,transform:`scale(${D/9})`,transition:`all ${e}ms`};Object.assign(v.current.style,A)}p.current=null},50),typeof n=="function"&&n(E)},[r,e,c,n,f]);return t.jsx(Zo,{borderRadius:o,id:h??"",className:`ripple-parent ${u??""}`,css:ue.css(m??"",";"),style:{...i??{}},children:t.jsxs("div",{className:"ripple-inner",onPointerDownCapture:E=>{l&&E.stopPropagation()},...g,style:{width:"100%",...Ko,borderRadius:o},onClick:C,children:[s,t.jsx(Jo,{ref:v})]})})});vn.displayName="_Ripples";function yn(e){return t.jsx(Z.ErrorBoundary,{...J({prefix:"Ripples"}),children:t.jsx(vn,{...e})})}function Bt(){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 es=k.createStyled(ye,process.env.NODE_ENV==="production"?{target:"e17tod368"}:{target:"e17tod368",label:"StyledTriggerCard"})(),ts=k.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;",";"),rs=k.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;}"),ns=k.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:Bt}),os=k.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;"),ss=k.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:Bt}),Pr=k.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:Bt}),as=k.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:Bt}),is=k.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 cs({entity:e,title:r,description:o,onClick:n,disabled:s,icon:c,iconProps:l,sliderIconProps:i,sliderIcon:u,sliderTextActive:m,sliderTextInactive:h,activeStateDuration:g=5e3,hideArrow:v=!1,className:p,service:b,serviceData:y,key:f,cssStyles:C,...E}){const{useStore:x}=d.useHass(),j=x(P=>P.globalComponentStyles),w=d.computeDomain(e),_=d.useEntity(e),N=d.useIconByEntity(e,l),T=d.useIconByDomain(w,l),$=a.useRef(null),[z,D]=a.useState(!1),A=d.useIcon(c??null,l),M=d.useIcon(u??null,i),S=d.useIcon("mdi:power",l),R=d.useIcon("mingcute:arrows-right-line",{...l,style:{fontSize:"16px",...l?.style}}),I=d.isUnavailableState(_.state),V=s||I,O=a.useCallback(P=>{D(!0),typeof n=="function"&&!I&&n(_,P),$.current&&clearTimeout($.current),$.current=setTimeout(()=>{D(!1)},g)},[_,n,g,I]);return t.jsx(es,{as:"button",className:`${p??""} trigger-card`,disabled:V,entity:e,service:b,serviceData:y,onClick:O,cssStyles:`
${j?.triggerCard??""}
${C??""}
`,...E,children:t.jsxs(ss,{children:[t.jsxs(Pr,{className:"layout-between",children:[t.jsxs(is,{disabled:V,className:"description",children:[r||_.attributes.friendly_name||e,o&&t.jsx("span",{children:o})]}),A??N??T]}),t.jsx(ns,{className:"gap"}),t.jsxs(Pr,{className:"layout-between",children:[t.jsxs(as,{className:"title",children:[_.custom.relativeTime,V?` - ${_.state}`:""]}),t.jsx(os,{active:V?!1:z,className:"toggle",children:V?null:t.jsxs(t.Fragment,{children:[t.jsx(rs,{active:z,className:"toggle-state",children:M??S}),t.jsxs(ts,{hideArrow:v,active:z,className:"toggle-message",children:[z?m??d.localize("triggered_name",{search:" {name}",replace:""}):h??`${d.localize("run")} ${d.computeDomainTitle(e,_?.attributes?.device_class)}`," ",!z&&!v&&R]})]})})]})]})},f)}function ls(e){const r={xxs:12,xs:6,sm:6,md:4,lg:4,xlg:3};return t.jsx(Z.ErrorBoundary,{...J({prefix:"TriggerCard"}),children:t.jsx(cs,{...r,...e})})}function ds(){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 us=k.createStyled(ye,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:padding,background-color;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})=>`
${pe.mq(["xxs","xs"],`
padding: ${e?"1rem 0rem":"1.5rem 1rem 1rem"};
`)}
`,";"),ps=k.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:ds}),fs=k.createStyled("div",process.env.NODE_ENV==="production"?{target:"e16eobz11"}:{target:"e16eobz11",label:"Header"})(),hs=k.createStyled("h3",process.env.NODE_ENV==="production"?{target:"e16eobz10"}:{target:"e16eobz10",label:"Title"})();function ms({title:e,description:r,children:o,gap:n="0.5rem",justifyContent:s="center",alignItems:c="center",layout:l="row",collapsed:i=!1,collapsible:u=!0,className:m,onClick:h,...g}){const[v,p]=a.useState(i),b={gap:n,justifyContent:s,alignItems:c};return t.jsxs(us,{onlyFunctionality:!0,disableScale:!0,disableActiveState:!0,disableRipples:!0,borderRadius:"16px",className:`${m??""} group`,collapsed:v,collapsible:u,...g,children:[t.jsxs(fs,{onClick:y=>{u&&p(!v),h&&h(y)},className:"header-title",children:[t.jsx(hs,{className:"title",children:e}),r&&t.jsx(ps,{children:r})]}),t.jsx(he.AnimatePresence,{initial:!1,children:(!u||!v)&&t.jsx(he.motion.section,{className:"content",style:{overflow:"hidden"},initial:"collapsed",animate:"open",exit:"collapsed",variants:{open:{opacity:1,height:"auto"},collapsed:{opacity:0,height:0}},transition:{duration:.3,ease:[.04,.62,.23,.98]},children:l==="row"?t.jsx(Y.Row,{className:"row",...b,children:o}):t.jsx(K.Column,{className:"column",...b,children:o})},`content-${e}`)})]})}function mr(e){const r={xxs:12,xs:12,sm:12,md:12,lg:12,xlg:12};return t.jsx(Z.ErrorBoundary,{...J({prefix:"Group"}),children:t.jsx(ms,{...r,...e})})}function Ae(){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 gs=k.createStyled(ye,process.env.NODE_ENV==="production"?{target:"e15e1idt11"}:{target:"e15e1idt11",label:"Card"})(),bs=k.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:Ae}),xs=k.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:Ae}),vs=k.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:Ae}),ys=k.createStyled(ve.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:Ae}),ws=k.createStyled(ve.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:Ae});function Ss(e,r){const o={timeZone:r,weekday:"short",month:"short",day:"numeric",hour:"numeric",hour12:!0};return new Intl.DateTimeFormat("en-US",o).format(new Date(e))}function Es(e,r,o){const n=r*o,s=e.slice(0,n),c=[];let l=0;for(let i=0;i<r;i++){const u=Math.min(Math.ceil((s.length-l)/(r-i)),o);c.push(s.slice(l,l+u)),l+=u}return c}const Ns=k.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:Ae}),Cs=k.createStyled(ve.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:Ae}),ks=k.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:Ae}),js=k.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:Ae}),_s=k.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:Ae}),Ds=k.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:Ae}),Os=50;function Rs({entity:e,title:r,icon:o,iconProps:n,temperatureSuffix:s,includeTitle:c=!0,includeForecast:l=!0,includeCurrent:i=!0,includeTime:u=!0,includeDay:m=!0,details:h=[],apparentTemperatureAttribute:g="apparent_temperature",className:v,service:p,serviceData:b,forecastType:y="daily",forecastRows:f=1,allowForecastToggle:C=!0,cssStyles:E,key:x,...j}){const{useStore:w,getConfig:_}=d.useHass(),[N,T]=a.useState(0),$=w(F=>F.globalComponentStyles),z=Math.floor(N/Os),[D,A]=a.useState("UTC"),[M,S]=a.useState(y),R=d.useWeather(e,{type:M}),I=d.isUnavailableState(R.state),V=d.getIconByEntity("weather",R),{attributes:{friendly_name:O,temperature:P,temperature_unit:B}}=R,H=B.slice(0,-1);a.useEffect(()=>{async function F(){const q=await _();q&&A(q.time_zone)}F()},[_]);const L=a.useMemo(()=>d.getSupportedForecastTypes(R),[R]);a.useEffect(()=>{S(y)},[y]);const Q=a.useMemo(()=>{const{humidity:F,temperature:q,wind_speed:X,wind_speed_unit:te,temperature_unit:ee}=R.attributes,ie=uo.getAdditionalWeatherInformation(q,ee,X,te,F);return{apparent_temperature:R.attributes[g]??null,...R.attributes,...ie??{}}},[R.attributes,g]),U=Q.apparent_temperature??Q.feelsLike,ne=U===P?null:U,de=Es(R.forecast?.forecast??[],f,z),W=()=>t.jsx(t.Fragment,{children:de.map((F,q)=>t.jsx(Y.Row,{className:"row",fullHeight:!0,style:{justifyContent:"space-between"},children:F.map((X,te)=>{const ee=Ss(X.datetime,D),[ie,,se]=ee.split(",");return t.jsxs(Ns,{className:"forecast",children:[m&&t.jsx(ks,{className:"day",children:ie}),u&&t.jsx(js,{className:"time",children:se}),t.jsx(Cs,{className:"icon forecast-icon",icon:d.getIconByEntity("weather",{...R,state:X.condition}),...n??{}}),t.jsxs(_s,{className:"temperature",children:[X.temperature,s||H]}),X.templow&&t.jsxs(Ds,{className:"temperature-low",children:[X.templow,s||H]})]},te)})},`weather-${q}`))});return t.jsx(gs,{title:r,entity:e,service:p,serviceData:b,className:`${v??""} weather-card`,resizeDetectorProps:{refreshRate:50,refreshMode:"throttle",onResize({width:F}){F&&T(F)}},cssStyles:`
${$?.weatherCard??""}
${E??""}
`,...j,children:t.jsxs(bs,{children:[i&&!I&&t.jsxs(Y.Row,{className:"row",justifyContent:"space-between",fullWidth:!0,children:[t.jsxs(Y.Row,{wrap:"nowrap",children:[t.jsx(ys,{icon:V,className:"icon"}),t.jsxs(K.Column,{className:"column",children:[c&&t.jsxs(xs,{className:"title",children:[t.jsx(ws,{className:"location-icon icon",icon:o||"mdi:location"}),r||O]}),t.jsxs(vs,{className:"sub-title",children:[P,s||H,", ",ce.capitalize(R.state),ne?`, Feels like: ${Math.round(ne)}${s||H}`:""]})]})]}),l&&C&&t.jsx(Fe,{children:L.map((F,q)=>{const X=F==="daily"?"mdi:view-day":F==="twice_daily"?"mdi:hours-12":"mdi:hourglass";return t.jsx(_e,{onClick:()=>{S(F)},icon:X,noIcon:!1,title:F,active:M===F,rippleProps:{preventPropagation:!0}},q)})})]}),h&&h.length>0&&t.jsx(Y.Row,{gap:"0.5rem",className:"row",children:a.Children.map(h,(F,q)=>a.isValidElement(F)?a.cloneElement(F,{key:F.key||q}):F)}),l&&!I&&N>0&&W(),I&&R.state]})},x)}function wn(e){const r={xxs:12,xs:6,sm:6,md:4,lg:4,xlg:3};return t.jsx(Z.ErrorBoundary,{...J({prefix:"WeatherCard"}),children:t.jsx(Rs,{...r,...e})})}function As(){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 Is=k.createStyled(Y.Row,process.env.NODE_ENV==="production"?{target:"e1jqhbrg1"}:{target:"e1jqhbrg1",label:"DetailsRow"})("width:calc(50% - 1rem);",pe.mq(["xxs"],`
width: 100%;
`),";"),Ts=k.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:ellipsis"}:{name:"jljpb8",styles:"color:var(--ha-S500-contrast);font-size:0.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis",toString:As});function zs({icon:e,iconProps:r,entity:o,title:n,suffix:s,render:c,...l}){const i=d.useEntity(o),u=n??i.attributes.friendly_name??"";return t.jsx(Is,{className:"details",gap:"0rem",justifyContent:"flex-start",...l,children:t.jsx(xe,{title:u??d.localize("unknown"),children:t.jsxs(Y.Row,{className:"row",fullWidth:!0,gap:"0.5rem",justifyContent:"flex-start",children:[t.jsx(ve.Icon,{className:"icon",icon:e??i.attributes.icon??"mdi:info",...r??{}}),t.jsx(Ts,{className:"state",children:typeof c=="function"?c(i):`${u?`${u} - `:""}${i.stat