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