@maxio-com/react-ui-components 2.4.0 → 2.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.esm.js CHANGED
@@ -1 +1 @@
1
- import e,{useRef as a,useEffect as t,useState as n,createContext as i,useId as l,useContext as r,useCallback as o,useMemo as s,Children as c,isValidElement as m,cloneElement as d}from"react";import u from"classnames";import{useId as p,useButton as v,useLink as x,useSearchField as h,useProgressBar as b,useCheckboxGroupItem as g,useCheckboxGroup as E,useRadio as f,useRadioGroup as _,useTextField as N}from"react-aria";import{AnimatePresence as y,motion as w}from"framer-motion";import{useClick as k,useHover as I,useFocus as C,useDismiss as P,useFloating as O,offset as S,useInteractions as V,useRole as D,FloatingPortal as $}from"@floating-ui/react-dom-interactions";const T=({variant:a,white:t,className:n})=>e.createElement("i",{className:u("maxio-icon",`maxio-icon-${a}`,t&&"maxio-icon--white",n)}),F=({item:n,isSelected:i,role:l="option"})=>{const r=a(),o=a(!1),s=p();if(t((()=>{var e;i&&o.current&&(null===(e=r.current)||void 0===e||e.focus())}),[i]),t((()=>{o.current=!0}),[]),"divider"===n.type)return e.createElement("div",{className:"maxio-action-list__divider",role:"separator","aria-hidden":"true"});const{leadingIconName:c,trailingIconName:m,label:d,description:u,link:v}=n;return e.createElement("a",{"aria-labelledby":s,...v,className:"maxio-action-list__content",tabIndex:i?0:-1,ref:r,role:l},c&&e.createElement(T,{variant:c,className:"maxio-action-list__leading-icon"}),e.createElement("span",{className:"maxio-action-list__label",id:s},d),u&&e.createElement("span",{className:"maxio-action-list__description"},u),m&&e.createElement(T,{variant:m,className:"maxio-action-list__trailing-icon"}))},M=(e,a,t)=>0===e?e:1===e&&"divider"===a[e-1].type?t||e:"divider"===a[e-1].type?M(e-1,a,t||e):e-1,R=({items:a,isShadowed:t=!0,itemProps:i={},...l})=>{const r=u("maxio-action-list",{"maxio-action-list--shadow":t}),[o,s]=n((()=>a.findIndex((e=>"divider"!==e.type))));return 0===a.length?null:e.createElement("div",{className:r,onKeyDown:e=>{if("Space"===e.code||"Enter"===e.code){const e=a[o];e&&"divider"!==e.type&&window.open(e.link.href,e.link.target||"_self")}"ArrowUp"===e.code&&(e.preventDefault(),s((e=>M(e,a)))),"ArrowDown"===e.code&&(e.preventDefault(),s((e=>((e,a)=>{const t=a.findIndex(((a,t)=>"divider"!==a.type&&t>e));return-1===t?e:t})(e,a))))},role:"listbox",...l},a.map(((a,t)=>e.createElement(F,{item:a,key:`listbox-${a.id}`,isSelected:t===o,...i}))))},W=({className:a,src:t,alt:n="avatar"})=>e.createElement("img",{className:u("maxio-avatar",a),alt:n,src:t}),z=i({}),H=({children:a})=>{const[t,i]=n(!1),r=l(),o=l();return e.createElement(z.Provider,{value:{controlsId:r,buttonId:o,isOpen:t,onClose:()=>i(!1),onOpen:()=>i(!0),onToggle:()=>i((e=>!e))}},a)};function L(){const e=r(z);if(!e||"object"==typeof e&&0===Object.keys(e).length)throw new Error("useMenu hook must be used within a MenuProvider");return e}const A=({children:a})=>{const{isOpen:t,onToggle:n,onClose:i}=L();return e.createElement("details",{open:t,onToggle:n,className:"maxio-action-menu"},"function"==typeof a?a({isOpen:t,onClose:i}):a)},U=({children:a})=>e.createElement(H,null,e.createElement(A,null,a)),B=({items:a,alignItemsEnd:t=!1})=>{const n=u("maxio-action-menu__content",{"maxio-action-menu__content--align-end":t}),{controlsId:i,buttonId:l}=L();return e.createElement("div",{className:n,role:"presentation"},e.createElement(R,{role:"menu",itemProps:{role:"menuitem"},id:i,"aria-labelledby":l,items:a}))},G=({children:a,iconName:t="chevron-down","aria-label":n})=>{const i=u({"maxio-action-menu__chevron":"chevron-down"===t}),{isOpen:l,buttonId:r,controlsId:o}=L();return e.createElement("summary",{className:"maxio-header-button","aria-haspopup":"true","aria-label":n,"aria-expanded":l,"aria-controls":o,id:r},e.createElement("div",{className:"maxio-header-button__content"},a&&e.createElement("span",null,a),t&&e.createElement(T,{variant:t,className:i})))},K=({icon:a,variant:t="default"})=>e.createElement("i",{className:u("maxio-brand-logo",`maxio-brand-logo-${a}`,{[`maxio-brand-logo--${t}`]:"default"!==t})}),Y={click:k,hover:I,focus:C,dismiss:P},j=(e,a)=>a.map((a=>Y[a](e))),q=({placement:e="top",isActive:n=!1,interactions:i=["hover"],floatingElementOffset:l=0,onOverlayUpdate:r,autoHideMs:o})=>{const s=a(null),{strategy:c,x:m,y:d,context:u,floating:p,reference:v}=O({placement:e,open:n,onOpenChange:e=>r(e),middleware:[S(l)]}),{getReferenceProps:x,getFloatingProps:h}=V([...j(u,i),D(u,{role:"tooltip"})]);t((()=>{s.current&&clearTimeout(s.current),n&&o&&(s.current=setTimeout((()=>r(!1)),o))}),[n,o]);return{isActive:n,refs:{floating:p,reference:v},floatingElementCSSPosition:{position:c,top:null!=d?d:0,left:null!=m?m:0},getReferenceProps:x,getFloatingProps:h}};function X(e,i=0){const l=a((new Date).getTime()),r=a((new Date).getTime()),[o,s]=n(!1);return t((()=>{const a=()=>{l.current=(new Date).getTime(),s(!0)},t=()=>{r.current=(new Date).getTime(),setTimeout((()=>{l.current-r.current<=0&&s(!1)}),i)},n=e&&e.current;return n&&(n.addEventListener("mouseenter",a),n.addEventListener("mouseleave",t)),()=>{n&&(n.removeEventListener("mouseenter",a),n.removeEventListener("mouseleave",t))}}),[e]),o}function J(e=500){const[i,l]=n((()=>{const{innerWidth:e,innerHeight:a}=window;return{windowWitdh:e,windowHeight:a}})),r=a(null);return t((()=>{const a=()=>{const{innerWidth:a,innerHeight:t}=window;clearTimeout(r.current),r.current=setTimeout((()=>{l({windowWitdh:a,windowHeight:t})}),e)};return window.addEventListener("resize",a),()=>{window.removeEventListener("resize",a)}}),[e]),i}const Q=({children:a,usePortal:t=!1,isActive:n=!1,placement:i="top",interactions:l=["hover"],role:r="tooltip",renderOverlay:o,floatingElementOffset:s,motionSettings:c={},autoHideMs:m,onOverlayUpdate:d,className:p})=>{const{getReferenceProps:v,getFloatingProps:x,refs:{floating:h,reference:b},floatingElementCSSPosition:g}=q({role:r,isActive:n,onOverlayUpdate:d,autoHideMs:m,floatingElementOffset:s,interactions:l,placement:i}),E=e.createElement(y,null,n&&e.createElement(w.div,{ref:h,style:g,...c,...x()},o()));return e.createElement(e.Fragment,null,e.createElement("div",{ref:b,className:u("maxio-inline-flex",p),...v(),"data-testid":"overlay-trigger"},a),t?e.createElement($,{id:"maxio-ui-portal"},E):E)},Z=({children:t,loading:n=!1,fullWidth:i=!1,className:l,variant:r="primary",size:o="lg",disabled:s,icon:c,...m})=>{const d=a(),{buttonProps:p}=v({...m,isDisabled:s},d),x=u("maxio-button",l,{[`maxio-button--${o}`]:o,[`maxio-button--${r}`]:r,"maxio-button--loading":n,"maxio-button--full-width":i}),h=u("maxio-button__loader",{"maxio-button__loader--white":["primary","secondary","danger"].includes(r)});return e.createElement("button",{...p,className:x},t,!n&&c,n&&e.createElement("div",{className:h}))},ee=({icon:a,...t})=>e.createElement(Z,{icon:a,className:"maxio-button--icon",...t},null),ae=({defaultChecked:a,checked:t,onChange:n,disabled:i,valueDescription:r,valueDescriptionPosition:s,className:c,name:m,id:d,...p})=>{const v=l(),x="boolean"==typeof a,h=d||v,b="left"===s?"row":"row-reverse",g=r&&s,E=o((e=>{if("Enter"===e.code||"Space"===e.code){e.preventDefault();const a=e.currentTarget.checked;x&&(e.currentTarget.checked=!a),n&&n(!a,e)}}),[x,n]),f=p["aria-label"]||(g?void 0:r);return e.createElement("div",{className:u("maxio-toggle",c,{"maxio-toggle--disabled":i}),style:{display:"inline-flex",flexDirection:b},"data-testid":"toggle-container"},g?e.createElement("label",{className:"maxio-toggle__label",htmlFor:h},r):null,e.createElement("div",{className:"maxio-toggle__container"},e.createElement("input",{type:"checkbox",defaultChecked:a,checked:t,onChange:e=>{n&&n(e.target.checked,e)},onKeyDown:E,disabled:i,className:"maxio-toggle__checkbox",id:h,name:m,"aria-label":f}),e.createElement("div",{className:"maxio-toggle__track",role:"switch","aria-checked":t,"aria-hidden":"true"},e.createElement("div",{className:"maxio-toggle__handle"}),e.createElement("span",{className:"maxio-toggle__icon"},e.createElement("i",{className:"maxio-toggle__icon-on"})),e.createElement("span",{className:"maxio-toggle__icon"},e.createElement("i",{className:"maxio-toggle__icon-off"})))))},te=({children:a,arrowPosition:t,size:n="regular",maxWidth:i=160})=>e.createElement("div",{"data-testid":"tooltip",className:u("maxio-tooltip",`maxio-tooltip--${n}`,{[`maxio-tooltip--arrow-${t}`]:t})},e.createElement("div",{className:"maxio-tooltip__content",style:{maxWidth:i}},a)),ne={top:"bottom",right:"left",bottom:"top",left:"right","top-start":"bottom-left","top-end":"bottom-right","right-start":"left-top","right-end":"left-bottom","bottom-start":"top-left","bottom-end":"top-right","left-start":"right-top","left-end":"right-bottom"},ie=({children:a,interactions:t=["hover"],placement:i="right",maxWidth:l=160,size:r="regular",renderContent:c,autoHideMs:m,isVisible:d,usePortal:u,className:p,onVisibilityUpdate:v,floatingElementOffset:x=5})=>{const[h,b]=n(!1),g=void 0!==d,E=o((e=>{g||b(e),v&&v(e)}),[d]),f=s((()=>(e=>{const a=e.startsWith("top")||e.startsWith("bottom")?"Y":"X",t=`translate${a}(${e.startsWith("bottom")||e.startsWith("right")?"-":""}10px)`;return{initial:{opacity:0,visibility:"hidden",transform:t},animate:{opacity:1,visibility:"visible",transform:`translate${a}(0px)`},exit:{opacity:0,visibility:"hidden",transform:t},transition:{ease:[.4,0,.5,1],duration:.2}}})(i)),[i]);return e.createElement(Q,{role:"tooltip",className:p,floatingElementOffset:x,motionSettings:f,isActive:g?d:h,onOverlayUpdate:E,autoHideMs:m,usePortal:u,placement:i,interactions:t,renderOverlay:()=>e.createElement(te,{size:r,arrowPosition:ne[i],maxWidth:l},c())},a)},le=({children:a,as:t,iconName:n,noPadding:i,className:l,...r})=>{const o=e.useRef(null);let{buttonProps:s}=v(r,o),{linkProps:c}=x(r,o);const m="a"===t?c:s,d=t||"button";return e.createElement(d,{className:u("maxio-header-button",l,{"maxio-header-button--no-padding":i}),ref:o,...m},e.createElement("div",{className:"maxio-header-button__content"},a||null,n&&e.createElement(T,{variant:n})))},re=({items:a})=>e.createElement("ul",{className:"maxio-header-nav"},a.map((({label:a,id:t,isActive:n,...i})=>e.createElement("li",{className:"maxio-header-nav__item",key:`header-nav-list-item-${t}`},e.createElement("a",{className:u("maxio-header-nav__link",{"maxio-header-nav__link--active":n}),...i},a))))),oe=({className:a,innerRef:t,...n})=>{const[i,l]=e.useState(n.value||""),{inputProps:r}=h({value:n.value,"aria-label":"Search",placeholder:"Search",name:"search"},{value:i,setValue:l},t);return e.createElement("div",{className:u("maxio-header-search-field",a)},e.createElement("div",{className:"maxio-header-search-field__button"},e.createElement(T,{variant:"search"})),e.createElement("input",{ref:t,className:"maxio-header-search-field__input",type:"search",...r}))};oe.displayName="SearchField";const se=({options:a,innerRef:t,...n})=>e.createElement("div",{className:"maxio-header-search-menu",role:"button"},e.createElement("select",{name:"entity",className:"maxio-header-search-menu__select","aria-label":"Menu",ref:t,...n},a.map((({label:a,value:t})=>e.createElement("option",{key:`${a}-${t}`,value:t},a)))),e.createElement("div",{className:"maxio-header-search-menu__icon"},e.createElement(T,{variant:"chevron-down"})));se.displayName="SearchMenu";const ce=({options:t,onSubmit:n})=>{const i=a(null),l=a(null);return e.createElement("form",{className:"maxio-header-search-input",onSubmit:function(e){var a,t;e.preventDefault(),n({searchField:(null===(a=i.current)||void 0===a?void 0:a.value)||"",selectField:(null===(t=l.current)||void 0===t?void 0:t.value)||""})}},e.createElement(se,{innerRef:l,options:t}),e.createElement(oe,{innerRef:i}),e.createElement(le,{type:"submit","aria-label":"Submit search",iconName:"arrow-right"}))},me=({leadingIcon:a,trailingIcon:t,type:n="menu",children:i,leadingIconClassName:l,isTooltipVisible:r=!1})=>e.createElement(e.Fragment,null,e.createElement(ie,{usePortal:!1,isVisible:r,renderContent:()=>i,floatingElementOffset:12},a&&e.createElement("span",{className:"maxio-side-nav__icon"},e.createElement(T,{variant:a,className:l}))),e.createElement("span",{className:`maxio-side-nav__${n}-title`,"data-testid":"maxio-sidebar-section-name"},i),t&&e.createElement("span",{className:"maxio-side-nav__menu-chevron"},e.createElement(T,{variant:t}))),de=i({}),ue=()=>r(de),pe=({children:a,withIcons:i=!0,sections:l,shouldToggleSidebar:r=!0,topDropdownItems:o,collapseBreakpoint:s=800})=>{const[c,m]=n((()=>!r||("undefined"==typeof window||window.innerWidth>s))),[d,u]=n(l),p=()=>m(!0),v=()=>m(!1),{windowWitdh:x}=J();t((()=>{!function(e){if(!r)return;e<s&&c&&h();e>s&&!c&&b()}(x)}),[x]),t((()=>{c?b():h()}),[]);return e.createElement(de.Provider,{value:{sections:d,topDropdownItems:o,onSectionOpen:e=>{const a=g();u((t=>t.map((t=>{var n;const i=t.name===e&&!t.isOpen;return a&&(null===(n=t.items)||void 0===n?void 0:n.includes(a))?{...t,isOpen:i,isCurrent:!i}:{...t,isOpen:i}}))))},isOpen:c,onOpen:p,onClose:v,onToggle:()=>m((e=>!e)),withIcons:i}},a);function h(){const e=g();e&&(u((a=>a.map((a=>{var t;return{...a,isOpen:!1,isCurrent:(null===(t=a.items)||void 0===t?void 0:t.includes(e))||!1}})))),v())}function b(){const e=g();e&&(u((a=>a.map((a=>{var t;return{...a,isOpen:(null===(t=a.items)||void 0===t?void 0:t.includes(e))||!1,isCurrent:!1}})))),p())}function g(){return d.map((e=>e.items)).flat().filter((e=>null!=e)).find((e=>e.isCurrent))}},ve=()=>{const{onOpen:t,topDropdownItems:n,isOpen:i}=ue(),{mainItem:l,otherItems:r,actions:o}=n,c=a(null),m=X(c),d=e=>({id:e.id,label:e.title,leadingIconName:e.icon,link:{href:e.url}}),u=s((()=>[...r.map(d),r.length>0&&{type:"divider",id:"item-divider"},...o.map(d)].filter((e=>null!=e))),[o,r]),p=r.length+o.length;return e.createElement(e.Fragment,null,0===p?e.createElement("a",{className:"maxio-side-nav__menu-button maxio-side-nav__menu-button--large",href:l.url,onClick:t},e.createElement("span",{className:"maxio-side-nav__menu-title"},l.title)):e.createElement("details",{className:"maxio-action-menu maxio-side-nav--action-menu"},e.createElement("summary",{onClick:t,className:"maxio-side-nav__menu-button maxio-side-nav__menu-button--large","aria-haspopup":"true",ref:c},l.url?e.createElement(e.Fragment,null,e.createElement(me,{type:"menu",isTooltipVisible:!i&&m,leadingIcon:l.icon,trailingIcon:"chevron-down",leadingIconClassName:"maxio-icon-circle-small-fill maxio-icon--success"},l.title)):e.createElement(me,{type:"menu",trailingIcon:"chevron-down"},l.title)),e.createElement(R,{"aria-label":"Action list",items:u})))},xe=({section:t})=>{const{isOpen:n}=ue(),i=a(null),l=X(i);return e.createElement("li",{className:"maxio-side-nav__item","data-key":t.key,"data-testid":"maxio-sidebar-section"},e.createElement("a",{className:"maxio-side-nav__link","aria-current":t.isCurrent?"page":void 0,role:"button",href:t.href,ref:i},e.createElement(me,{isTooltipVisible:l&&!n,type:"menu",leadingIcon:t.icon},t.name)))},he=({section:t})=>{var n;const{onOpen:i,onSectionOpen:l,isOpen:r,withIcons:o}=ue();const s=a(null),c=X(s);return t.Component?e.createElement(t.Component,{section:t}):t.href?e.createElement(xe,{section:t}):e.createElement("li",{className:u("maxio-side-nav__item",{"maxio-side-nav__item--active":t.isCurrent,"maxio-side-nav__item--icon":o}),"data-testid":"maxio-sidebar-section"},e.createElement("button",{className:"maxio-side-nav__menu-button",ref:s,"aria-expanded":t.isOpen,"aria-current":t.isCurrent?"page":void 0,type:"button",onClick:function(){l(t.name),i()}},e.createElement(me,{type:"menu",isTooltipVisible:!r&&c,leadingIcon:t.icon,trailingIcon:(null===(n=t.items)||void 0===n?void 0:n.length)?"chevron-down":void 0},t.name)),t.isOpen&&e.createElement("ul",{className:"maxio-side-nav__menu"},t.items.map((a=>e.createElement("li",{key:`section-sub-item-${a.name}`,className:"maxio-side-nav__item","data-testid":"maxio-section-item"},e.createElement("a",{className:"maxio-side-nav__link",href:a.href,"aria-current":a.isCurrent?"page":void 0},e.createElement("span",{className:"maxio-side-nav__link-title"},a.name)))))))},be=()=>{const{sections:a}=ue();return e.createElement("ul",{className:"maxio-side-nav__items"},a.map((a=>e.createElement(he,{key:`section-${a.name}`,section:a}))))},ge=()=>{const{isOpen:a}=ue();return e.createElement("nav",{className:u("maxio-side-nav",{"maxio-side-nav--collapsed":!a})},e.createElement(ve,null),e.createElement("hr",{className:"maxio-side-nav__divider"}),e.createElement(be,null))},Ee=({withIcons:a,shouldToggleSidebar:t,topDropdownItems:n,sections:i,collapseBreakpoint:l=800})=>e.createElement(pe,{collapseBreakpoint:l,withIcons:a,shouldToggleSidebar:t,topDropdownItems:n,sections:i},e.createElement(ge,null)),fe=({label:a,helperText:t,size:n="md",variant:i="default",status:l,value:r,maxValue:o=100})=>{const s=p(),c=p(),m=l&&!!a&&!!r&&!("inline"===i),d=t&&!("inline"===i),v=t&&"inline"===i,{progressBarProps:x,labelProps:h}=b({maxValue:o,value:r,label:a}),g=u("maxio-progress-bar",{"maxio-progress-bar--lg":"lg"===n,"maxio-progress-bar--success":r&&!("inline"===i)&&"success"===l,"maxio-progress-bar--error":r&&!("inline"===i)&&"error"===l,"maxio-progress-bar--indent":"indent"===i,"maxio-progress-bar--inline":"inline"===i,"maxio-progress-bar--indeterminate":void 0===r});return e.createElement("div",{className:g,...x},e.createElement("div",{id:s,className:"maxio-progress-bar__label",...h},a),v&&e.createElement("div",{id:c,className:"maxio-progress-bar__helper-text"},t),e.createElement("div",{className:"maxio-progress-bar__track"},e.createElement("div",{className:"maxio-progress-bar__progress",style:{"--tw-scale-x":`${r}%`}})),m&&e.createElement("div",{className:`maxio-progress-bar__${l}-icon`}),d&&e.createElement("div",{id:c,className:"maxio-progress-bar__helper-text"},t))},_e=({as:a="div",children:t,compact:n=!1,size:i="md",className:l,...r})=>{const o=a,s=u({[`maxio-body-${i}`]:!n,[`maxio-body-${i}-compact`]:n},l);return e.createElement(o,{className:s,...r},t)},Ne={sm:"h3",md:"h2",lg:"h1"},ye=({children:a,size:t="sm",className:n,...i})=>{const l=Ne[t],r=u(`maxio-heading-${t}`,n);return e.createElement(l,{className:r,...i},a)},we=({as:a="div",children:t,size:n="md",className:i,...l})=>{const r=a,o=u(`maxio-display-${n}`,i);return e.createElement(r,{className:o,...l},t)},ke=({as:a="div",children:t,className:n,...i})=>{const l=a,r=u("maxio-code",n);return e.createElement(l,{className:r,...i},t)},Ie=({as:a="div",children:t,size:n="sm",className:i,...l})=>{const r=a,o=u(`maxio-label-${n}`,i);return e.createElement(r,{className:o,...l},t)},Ce=i({}),Pe=()=>r(Ce),Oe=({children:a,variant:i,withDivider:l,defaultIndex:r=0,onChange:o,index:s})=>{const[c,m]=n((()=>void 0!==s?s:r));t((()=>{void 0===s&&m(r),"number"==typeof s&&m(s)}),[r,s]);return e.createElement(Ce.Provider,{value:{currentIndex:c,variant:i,withDivider:l,onChange:e=>{let a;a="function"==typeof e?e(c):e,void 0===s&&m(a),"function"==typeof o&&o(a)}}},a)},Se=({disabled:n=!1,value:i=0,isCurrent:l,...r})=>{const{onChange:o,currentIndex:s}=Pe(),c=u("maxio-tabs__tab",{"maxio-tabs__tab--active":s===i,"maxio-tabs__tab--disabled":n,"maxio-tabs__tab--icon":"icon"===r.type}),m=()=>{o(i)},d={"aria-selected":l,id:`tab-${i}`,"aria-controls":`panel-${i}`,role:"tab",tabIndex:l?0:-1},p=a(null),v=a(!1);if(t((()=>{l&&v.current&&p.current.focus()}),[l]),t((()=>{v.current=!0}),[]),"icon"===r.type){const{icon:a,...t}=r;return e.createElement("div",{className:c,ref:p,onClick:m,...d,...t},e.createElement("div",{className:"maxio-tabs__tab__content"},a))}const{children:x,rightIcon:h,...b}=r;return e.createElement("div",{role:"tab",ref:p,className:c,onClick:m,...d,...b},e.createElement("div",{className:"maxio-tabs__tab__content"},x,h||null))},Ve=({children:a,variant:t="line",withDivider:n=!1,defaultIndex:i=0,index:l,onChange:r})=>e.createElement(Oe,{defaultIndex:i,variant:t,withDivider:n,index:l,onChange:r},a),De=({children:a,value:t,...n})=>{const{currentIndex:i}=Pe();return e.createElement("div",{...n,...t?{id:`panel-${t}`}:{},role:"tabpanel","aria-labelledby":`tab-${t}`,hidden:i!==t},a)},$e=({children:a})=>{const{currentIndex:t}=Pe();return e.createElement(e.Fragment,null,c.map(a,((e,a)=>{if(m(e)&&e.type===De)return a===t?d(e,{value:a}):null;throw new Error("You can only pass <TabPanel /> component as children")})))},Te=(e,a,t)=>0===e?e:1===e&&a[e-1].disabled?t||e:a[e-1].disabled?Te(e-1,a,t||e):e-1,Fe=({children:t,className:n,ariaLabel:i,...l})=>{const{variant:r,withDivider:o,currentIndex:s,onChange:p}=Pe(),v=u("maxio-tabs",n,{"maxio-tabs--contained":"contained"===r,"maxio-tabs--divider":o}),x=a(),h=()=>c.map(t,(e=>e.props));return e.createElement("div",{className:v,role:"tablist","aria-label":i,"aria-orientation":"horizontal",ref:x,onKeyDown:e=>{"ArrowRight"===e.key&&p((e=>((e,a)=>{const t=a.findIndex(((a,t)=>!a.disabled&&t>e));return-1===t?e:t})(e,h()))),"ArrowLeft"===e.key&&p((e=>Te(e,h()))),x.current.focus()},...l},c.map(t,((e,a)=>{if(m(e)&&e.type===Se)return d(e,{value:a,isCurrent:s===a});throw new Error("You can only pass <Tab /> component as children")})))},Me=({className:a,children:t,disabled:n=!1,external:i=!1,icon:l="arrow-right",noArrow:r=!1,size:o="md",...s})=>{const c=u("maxio-link",{[`maxio-link--${o}`]:!0,"maxio-link--disabled":n},a),m=i?"_blank":"_self";return l=i?"arrow-up-right":l,e.createElement("a",{className:c,target:m,...s},e.createElement("span",{className:"maxio-link__text"},t),!r&&e.createElement(T,{variant:l}))},Re=i({}),We=()=>r(Re),ze=({name:a,values:t,onChange:i,disabled:l=!1,invalid:r=!1,children:o})=>{const[s,c]=n(t||[]);return e.createElement(Re.Provider,{value:{disabled:l,invalid:r,name:a,values:s,onChange:e=>{let a=[];a=s.includes(e)?s.filter((a=>a!==e)):[...s,e],c(a),i&&i(a)}}},o)},He=({label:t,error:n=!1,className:i,indeterminate:l,...r})=>{const o=a(null),{name:s,disabled:c,invalid:m,onChange:d,values:p=[]}=We(),v=!!s,x=c||r.disabled,h=m||n,b=v?p.includes(r.value):r.checked,E=u("maxio-checkbox",{"maxio-checkbox--checked":b,"maxio-checkbox--disabled":x,"maxio-checkbox--error":h,"maxio-checkbox--indeterminate":l},i),{inputProps:f}=g({value:r.value,"aria-label":t},{isDisabled:x,isReadOnly:x,setValue:d,addValue:d,toggleValue:d,removeValue:d,value:p,isSelected:e=>p.includes(e),validationState:n?"invalid":"valid",isInvalid:!!n},o);return e.createElement("label",{className:E},e.createElement("input",{type:"checkbox",role:"checkbox",className:"maxio-checkbox__input",ref:o,...v?f:r}),e.createElement("span",{className:"maxio-checkbox__control"},n&&e.createElement("span",{className:"maxio-checkbox__control-error"})),e.createElement("span",{className:"maxio-checkbox__label"},t))},Le=({children:a,className:t,...n})=>e.createElement("div",{className:u("maxio-form-helper-text",t),...n},a),Ae=({children:a,className:t,...n})=>e.createElement("div",{className:u("maxio-form-error",t),...n},e.createElement("i",{className:"maxio-form-error__icon"}),e.createElement("div",{className:"maxio-form-error__text"},a)),Ue=({className:a,children:t,label:n,errorMessage:i,helperText:l,disabled:r})=>{const{values:o,onChange:s,name:c}=We(),{descriptionProps:m,errorMessageProps:d,groupProps:p,labelProps:v}=E({name:c,label:n},{validationState:i?"invalid":"valid",isDisabled:r,isInvalid:!!i,isReadOnly:r,setValue:s,addValue:s,toggleValue:s,removeValue:s,value:o,isSelected:e=>o.includes(e)}),x=u("maxio-checkbox-group",{"maxio-checkbox-group--disabled":r},a),h=l&&!i;return e.createElement("div",{className:x,...p},n&&e.createElement("label",{className:"maxio-checkbox-group__label",...v},n),t,h&&e.createElement(Le,{...m},l),i&&e.createElement(Ae,{...d},i))},Be=a=>e.createElement(ze,{...a},e.createElement(Ue,{...a},a.children)),Ge=i({}),Ke=()=>r(Ge),Ye=({children:a,onChange:i,value:l,defaultValue:r="",name:o,indent:s,disabled:c})=>{const[m,d]=n(r),[u,p]=n(null);t((()=>{d(l)}),[l]);return e.createElement(Ge.Provider,{value:{onChange:e=>{d(e),i&&i(e)},name:o,value:m,indent:s,disabled:c,lastFocusedValue:u,setLastFocusedValue:p}},a)},je=({indent:t=!1,disabled:n=!1,invalid:i=!1,label:l,...r})=>{const o=a(null),{disabled:s,indent:c,invalid:m,name:d,onChange:p,value:v,setLastFocusedValue:x=(()=>{}),lastFocusedValue:h=null}=Ke(),b=!!d,g=m||i,E=s||n,_=u("maxio-radio",{"maxio-radio--indent":c||t,"maxio-radio--disabled":E,"maxio-radio--error":g}),{inputProps:N}=f({...r,children:l,value:(r.value||"").toString()},{isDisabled:E,isReadOnly:E,isRequired:!1,name:d,validationState:g?"invalid":"valid",isInvalid:g,selectedValue:v,setSelectedValue:p,setLastFocusedValue:x,lastFocusedValue:h},o);return e.createElement("label",{className:_},e.createElement("input",{ref:o,type:"radio",className:"maxio-radio__input",...b?N:r}),e.createElement("span",{className:"maxio-radio__control",tabIndex:0}),e.createElement("span",{className:"maxio-radio__label"},l))},qe=({children:a,label:t,errorMessage:n,helperText:i,disabled:l=!1,invalid:r=!1})=>{const{name:o,onChange:s,value:c,lastFocusedValue:m,setLastFocusedValue:d}=Ke(),{radioGroupProps:u,labelProps:p,descriptionProps:v,errorMessageProps:x}=_({name:o,label:t},{name:o,validationState:r?"invalid":"valid",isDisabled:l,isInvalid:r,isReadOnly:l,isRequired:!1,selectedValue:c,lastFocusedValue:m,setLastFocusedValue:d,setSelectedValue:s});return e.createElement(e.Fragment,null,e.createElement("div",{className:"maxio-radio-group",...u},t&&e.createElement("label",{className:"maxio-radio-group__label",...p},t),a,n&&r&&e.createElement(Ae,{...x},n),i&&!n&&e.createElement(Le,{...v},i)))},Xe=a=>e.createElement(Ye,{...a},e.createElement(qe,{...a},a.children)),Je=({disabled:t=!1,invalid:n=!1,readOnly:i=!1,size:l="md",label:r,helperText:o,errorMessage:s,leftElement:c=null,rightElement:m=null,onChange:d,...p})=>{var v,x;const h=a(null),{labelProps:b,inputProps:g,descriptionProps:E,errorMessageProps:f}=N({...p,label:r,description:o,errorMessage:s,defaultValue:null===(v=p.defaultValue)||void 0===v?void 0:v.toString(),value:null===(x=p.value)||void 0===x?void 0:x.toString()},h),_=u("maxio-text-field",`maxio-text-field--${l}`,{"maxio-text-field--disabled":t,"maxio-text-field--error":n,"maxio-text-field--readonly":i}),y=n&&s;return e.createElement("div",{className:_},e.createElement("label",{className:"maxio-text-field__label",...b},r),e.createElement("div",{className:"maxio-text-field__items"},c&&e.createElement("div",{className:"maxio-text-field__left-element"},c),n&&e.createElement("div",{className:"maxio-text-field__right-element"},e.createElement(T,{variant:"warning-circle-fill"})),e.createElement("input",{ref:h,type:"text",className:"maxio-text-field__input",onChange:d,...g}),m&&!n&&e.createElement("div",{className:"maxio-text-field__right-element"},m)),o&&!y&&e.createElement("div",{className:"maxio-form-helper-text",...E},o),y&&e.createElement("div",{className:"maxio-form-error",...f},e.createElement("div",{className:"maxio-form-error__text"},s)))};export{R as ActionList,W as Avatar,_e as Body,K as BrandLogo,Z as Button,He as Checkbox,Be as CheckboxGroup,ke as Code,we as Display,Ae as FormErrorMessage,Le as FormHelperText,le as HeaderButton,re as HeaderNav,oe as HeaderSearchField,ce as HeaderSearchInput,se as HeaderSearchMenu,ye as Heading,T as Icon,ee as IconButton,Ie as Label,Me as Link,U as Menu,G as MenuButton,B as MenuList,Q as OverlayTrigger,fe as ProgressBar,je as Radio,Xe as RadioGroup,Ee as SideNav,Se as Tab,Fe as TabList,De as TabPanel,$e as TabPanels,Ve as Tabs,Je as TextInput,ae as Toggle,te as Tooltip,ie as TooltipTrigger,X as useHover,q as useOverlayTrigger,J as useWindowSize};
1
+ import e,{useRef as a,useEffect as t,useState as n,createContext as i,useId as r,useContext as l,useCallback as o,useMemo as s,Children as c,isValidElement as m,cloneElement as d}from"react";import u from"classnames";import{useId as p,useButton as v,useLink as h,useSearchField as x,useProgressBar as b,useCheckboxGroupItem as g,useCheckboxGroup as E,useRadio as f,useRadioGroup as _,useTextField as N}from"react-aria";import{AnimatePresence as w,motion as y}from"framer-motion";import{useClick as k,useHover as I,useFocus as C,useDismiss as P,useFloating as O,offset as S,useInteractions as V,useRole as D,FloatingPortal as $}from"@floating-ui/react-dom-interactions";const T=({variant:a,white:t,className:n})=>e.createElement("i",{className:u("maxio-icon",`maxio-icon-${a}`,t&&"maxio-icon--white",n)}),F=({item:n,isSelected:i,role:r="option"})=>{const l=a(),o=a(!1),s=p();if(t((()=>{var e;i&&o.current&&(null===(e=l.current)||void 0===e||e.focus())}),[i]),t((()=>{o.current=!0}),[]),"divider"===n.type)return e.createElement("div",{className:"maxio-action-list__divider",role:"separator","aria-hidden":"true"});const{leadingIconName:c,trailingIconName:m,label:d,description:u,link:v}=n;return e.createElement("a",{"aria-labelledby":s,...v,className:"maxio-action-list__content",tabIndex:i?0:-1,ref:l,role:r},c&&e.createElement(T,{variant:c,className:"maxio-action-list__leading-icon"}),e.createElement("span",{className:"maxio-action-list__label",id:s},d),u&&e.createElement("span",{className:"maxio-action-list__description"},u),m&&e.createElement(T,{variant:m,className:"maxio-action-list__trailing-icon"}))},M=(e,a,t)=>0===e?e:1===e&&"divider"===a[e-1].type?t||e:"divider"===a[e-1].type?M(e-1,a,t||e):e-1,R=({items:a,isShadowed:t=!0,itemProps:i={},...r})=>{const l=u("maxio-action-list",{"maxio-action-list--shadow":t}),[o,s]=n((()=>a.findIndex((e=>"divider"!==e.type))));return 0===a.length?null:e.createElement("div",{className:l,onKeyDown:e=>{if("Space"===e.code||"Enter"===e.code){const e=a[o];e&&"divider"!==e.type&&window.open(e.link.href,e.link.target||"_self")}"ArrowUp"===e.code&&(e.preventDefault(),s((e=>M(e,a)))),"ArrowDown"===e.code&&(e.preventDefault(),s((e=>((e,a)=>{const t=a.findIndex(((a,t)=>"divider"!==a.type&&t>e));return-1===t?e:t})(e,a))))},role:"listbox",...r},a.map(((a,t)=>e.createElement(F,{item:a,key:`listbox-${a.id}`,isSelected:t===o,...i}))))},z=({className:a,src:t,alt:n="avatar"})=>e.createElement("img",{className:u("maxio-avatar",a),alt:n,src:t}),W=i({}),L=({children:a})=>{const[t,i]=n(!1),l=r(),o=r();return e.createElement(W.Provider,{value:{controlsId:l,buttonId:o,isOpen:t,onClose:()=>i(!1),onOpen:()=>i(!0),onToggle:()=>i((e=>!e))}},a)};function A(){const e=l(W);if(!e||"object"==typeof e&&0===Object.keys(e).length)throw new Error("useMenu hook must be used within a MenuProvider");return e}const H=({children:a})=>{const{isOpen:t,onToggle:n,onClose:i}=A();return e.createElement("details",{open:t,onToggle:n,className:"maxio-action-menu"},"function"==typeof a?a({isOpen:t,onClose:i}):a)},B=({children:a})=>e.createElement(L,null,e.createElement(H,null,a)),U=({items:a,alignItemsEnd:t=!1})=>{const n=u("maxio-action-menu__content",{"maxio-action-menu__content--align-end":t}),{controlsId:i,buttonId:r}=A();return e.createElement("div",{className:n,role:"presentation"},e.createElement(R,{role:"menu",itemProps:{role:"menuitem"},id:i,"aria-labelledby":r,items:a}))},q=({children:a,iconName:t="chevron-down","aria-label":n})=>{const i=u({"maxio-action-menu__chevron":"chevron-down"===t}),{isOpen:r,buttonId:l,controlsId:o}=A();return e.createElement("summary",{className:"maxio-header-button","aria-haspopup":"true","aria-label":n,"aria-expanded":r,"aria-controls":o,id:l},e.createElement("div",{className:"maxio-header-button__content"},a&&e.createElement("span",null,a),t&&e.createElement(T,{variant:t,className:i})))},G=({icon:a,variant:t="default"})=>e.createElement("i",{className:u("maxio-brand-logo",`maxio-brand-logo-${a}`,{[`maxio-brand-logo--${t}`]:"default"!==t})}),K={click:k,hover:I,focus:C,dismiss:P},Y=(e,a)=>a.map((a=>K[a](e))),j=({placement:e="top",isActive:n=!1,interactions:i=["hover"],floatingElementOffset:r=0,onOverlayUpdate:l,autoHideMs:o})=>{const s=a(null),{strategy:c,x:m,y:d,context:u,floating:p,reference:v}=O({placement:e,open:n,onOpenChange:e=>l(e),middleware:[S(r)]}),{getReferenceProps:h,getFloatingProps:x}=V([...Y(u,i),D(u,{role:"tooltip"})]);t((()=>{s.current&&clearTimeout(s.current),n&&o&&(s.current=setTimeout((()=>l(!1)),o))}),[n,o]);return{isActive:n,refs:{floating:p,reference:v},floatingElementCSSPosition:{position:c,top:null!=d?d:0,left:null!=m?m:0},getReferenceProps:h,getFloatingProps:x}};function X(e,i=0){const r=a((new Date).getTime()),l=a((new Date).getTime()),[o,s]=n(!1);return t((()=>{const a=()=>{r.current=(new Date).getTime(),s(!0)},t=()=>{l.current=(new Date).getTime(),setTimeout((()=>{r.current-l.current<=0&&s(!1)}),i)},n=e&&e.current;return n&&(n.addEventListener("mouseenter",a),n.addEventListener("mouseleave",t)),()=>{n&&(n.removeEventListener("mouseenter",a),n.removeEventListener("mouseleave",t))}}),[e]),o}function J(e=500){const[i,r]=n((()=>{const{innerWidth:e,innerHeight:a}=window;return{windowWitdh:e,windowHeight:a}})),l=a(null);return t((()=>{const a=()=>{const{innerWidth:a,innerHeight:t}=window;clearTimeout(l.current),l.current=setTimeout((()=>{r({windowWitdh:a,windowHeight:t})}),e)};return window.addEventListener("resize",a),()=>{window.removeEventListener("resize",a)}}),[e]),i}const Q=({children:a,usePortal:t=!1,isActive:n=!1,placement:i="top",interactions:r=["hover"],role:l="tooltip",renderOverlay:o,floatingElementOffset:s,motionSettings:c={},autoHideMs:m,onOverlayUpdate:d,className:p})=>{const{getReferenceProps:v,getFloatingProps:h,refs:{floating:x,reference:b},floatingElementCSSPosition:g}=j({role:l,isActive:n,onOverlayUpdate:d,autoHideMs:m,floatingElementOffset:s,interactions:r,placement:i}),E=e.createElement(w,null,n&&e.createElement(y.div,{ref:x,style:g,...c,...h()},o()));return e.createElement(e.Fragment,null,e.createElement("div",{ref:b,className:u("maxio-inline-flex",p),...v(),"data-testid":"overlay-trigger"},a),t?e.createElement($,{id:"maxio-ui-portal"},E):E)},Z=({children:t,loading:n=!1,fullWidth:i=!1,className:r,variant:l="primary",size:o="lg",disabled:s,icon:c,...m})=>{const d=a(),{buttonProps:p}=v({...m,isDisabled:s},d),h=u("maxio-button",r,{[`maxio-button--${o}`]:o,[`maxio-button--${l}`]:l,"maxio-button--loading":n,"maxio-button--full-width":i}),x=u("maxio-button__loader",{"maxio-button__loader--white":["primary","secondary","danger"].includes(l)});return e.createElement("button",{...p,className:h},t,!n&&c,n&&e.createElement("div",{className:x}))},ee=({icon:a,...t})=>e.createElement(Z,{icon:a,className:"maxio-button--icon",...t},null),ae=({defaultChecked:a,checked:t,onChange:n,disabled:i,valueDescription:l,valueDescriptionPosition:s,className:c,name:m,id:d,...p})=>{const v=r(),h="boolean"==typeof a,x=d||v,b="left"===s?"row":"row-reverse",g=l&&s,E=o((e=>{if("Enter"===e.code||"Space"===e.code){e.preventDefault();const a=e.currentTarget.checked;h&&(e.currentTarget.checked=!a),n&&n(!a,e)}}),[h,n]),f=p["aria-label"]||(g?void 0:l);return e.createElement("div",{className:u("maxio-toggle",c,{"maxio-toggle--disabled":i}),style:{display:"inline-flex",flexDirection:b},"data-testid":"toggle-container"},g?e.createElement("label",{className:"maxio-toggle__label",htmlFor:x},l):null,e.createElement("div",{className:"maxio-toggle__container"},e.createElement("input",{type:"checkbox",defaultChecked:a,checked:t,onChange:e=>{n&&n(e.target.checked,e)},onKeyDown:E,disabled:i,className:"maxio-toggle__checkbox",id:x,name:m,"aria-label":f}),e.createElement("div",{className:"maxio-toggle__track",role:"switch","aria-checked":t,"aria-hidden":"true"},e.createElement("div",{className:"maxio-toggle__handle"}),e.createElement("span",{className:"maxio-toggle__icon"},e.createElement("i",{className:"maxio-toggle__icon-on"})),e.createElement("span",{className:"maxio-toggle__icon"},e.createElement("i",{className:"maxio-toggle__icon-off"})))))},te=({children:a,arrowPosition:t,size:n="regular",maxWidth:i=160})=>e.createElement("div",{"data-testid":"tooltip",className:u("maxio-tooltip",`maxio-tooltip--${n}`,{[`maxio-tooltip--arrow-${t}`]:t})},e.createElement("div",{className:"maxio-tooltip__content",style:{maxWidth:i}},a)),ne={top:"bottom",right:"left",bottom:"top",left:"right","top-start":"bottom-left","top-end":"bottom-right","right-start":"left-top","right-end":"left-bottom","bottom-start":"top-left","bottom-end":"top-right","left-start":"right-top","left-end":"right-bottom"},ie=({children:a,interactions:t=["hover"],placement:i="right",maxWidth:r=160,size:l="regular",renderContent:c,autoHideMs:m,isVisible:d,usePortal:u,className:p,onVisibilityUpdate:v,floatingElementOffset:h=5})=>{const[x,b]=n(!1),g=void 0!==d,E=o((e=>{g||b(e),v&&v(e)}),[d]),f=s((()=>(e=>{const a=e.startsWith("top")||e.startsWith("bottom")?"Y":"X",t=`translate${a}(${e.startsWith("bottom")||e.startsWith("right")?"-":""}10px)`;return{initial:{opacity:0,visibility:"hidden",transform:t},animate:{opacity:1,visibility:"visible",transform:`translate${a}(0px)`},exit:{opacity:0,visibility:"hidden",transform:t},transition:{ease:[.4,0,.5,1],duration:.2}}})(i)),[i]);return e.createElement(Q,{role:"tooltip",className:p,floatingElementOffset:h,motionSettings:f,isActive:g?d:x,onOverlayUpdate:E,autoHideMs:m,usePortal:u,placement:i,interactions:t,renderOverlay:()=>e.createElement(te,{size:l,arrowPosition:ne[i],maxWidth:r},c())},a)},re=({children:a,as:t,iconName:n,noPadding:i,className:r,...l})=>{const o=e.useRef(null);let{buttonProps:s}=v(l,o),{linkProps:c}=h(l,o);const m="a"===t?c:s,d=t||"button";return e.createElement(d,{className:u("maxio-header-button",r,{"maxio-header-button--no-padding":i}),ref:o,...m},e.createElement("div",{className:"maxio-header-button__content"},a||null,n&&e.createElement(T,{variant:n})))},le=({items:a})=>e.createElement("ul",{className:"maxio-header-nav"},a.map((({label:a,id:t,isActive:n,...i})=>e.createElement("li",{className:"maxio-header-nav__item",key:`header-nav-list-item-${t}`},e.createElement("a",{className:u("maxio-header-nav__link",{"maxio-header-nav__link--active":n}),...i},a))))),oe=({className:a,innerRef:t,...n})=>{const[i,r]=e.useState(n.value||""),{inputProps:l}=x({value:n.value,"aria-label":"Search",placeholder:"Search",name:"search"},{value:i,setValue:r},t);return e.createElement("div",{className:u("maxio-header-search-field",a)},e.createElement("div",{className:"maxio-header-search-field__button"},e.createElement(T,{variant:"search"})),e.createElement("input",{ref:t,className:"maxio-header-search-field__input",type:"search",...l}))};oe.displayName="SearchField";const se=({options:a,innerRef:t,...n})=>e.createElement("div",{className:"maxio-header-search-menu",role:"button"},e.createElement("select",{name:"entity",className:"maxio-header-search-menu__select","aria-label":"Menu",ref:t,...n},a.map((({label:a,value:t})=>e.createElement("option",{key:`${a}-${t}`,value:t},a)))),e.createElement("div",{className:"maxio-header-search-menu__icon"},e.createElement(T,{variant:"chevron-down"})));se.displayName="SearchMenu";const ce=({options:t,onSubmit:n})=>{const i=a(null),r=a(null);return e.createElement("form",{className:"maxio-header-search-input",onSubmit:function(e){var a,t;e.preventDefault(),n({searchField:(null===(a=i.current)||void 0===a?void 0:a.value)||"",selectField:(null===(t=r.current)||void 0===t?void 0:t.value)||""})}},e.createElement(se,{innerRef:r,options:t}),e.createElement(oe,{innerRef:i}),e.createElement(re,{type:"submit","aria-label":"Submit search",iconName:"arrow-right"}))},me=({leadingIcon:a,trailingIcon:t,type:n="menu",children:i,leadingIconClassName:r,isTooltipVisible:l=!1})=>e.createElement(e.Fragment,null,e.createElement(ie,{usePortal:!0,isVisible:l,renderContent:()=>i,floatingElementOffset:12},a&&e.createElement("span",{className:"maxio-side-nav__icon"},e.createElement(T,{variant:a,className:r}))),e.createElement("span",{className:`maxio-side-nav__${n}-title`,"data-testid":"maxio-sidebar-section-name"},i),t&&e.createElement("span",{className:"maxio-side-nav__menu-chevron"},e.createElement(T,{variant:t}))),de=i({}),ue=()=>l(de),pe=({children:a,isOpen:i,onChange:r,withIcons:l=!0,sections:o,shouldToggleSidebar:s=!0,topDropdownItems:c,collapseBreakpoint:m=800})=>{const[d,u]=n((()=>!s||("boolean"==typeof i?i:"undefined"==typeof window||window.innerWidth>m)));t((()=>{"boolean"==typeof i&&(u(i),r&&r(i))}),[i]);const[p,v]=n(o),h=()=>{u(!1),r&&r(!1)},{windowWitdh:x}=J(200);t((()=>{!function(e){if(!s)return;e<m&&d&&h()}(x)}),[x]),t((()=>{!function(){const e=b();e&&v((a=>a.map((a=>{var t;return{...a,...(null===(t=a.items)||void 0===t?void 0:t.includes(e))&&{isCurrent:!0,isOpen:!0}}}))))}()}),[]);return e.createElement(de.Provider,{value:{sections:p,topDropdownItems:c,onSectionOpen:e=>{const a=b();v((t=>t.map((t=>{var n;if(!d)return{...t,isOpen:t.name===e};const i=t.name===e&&!t.isOpen;return a&&(null===(n=t.items)||void 0===n||n.includes(a)),{...t,isOpen:i}}))))},isOpen:d,onOpen:()=>{u(!0),r&&r(!0)},onClose:h,onToggle:()=>{u((e=>(r&&r(!e),!e)))},withIcons:l}},a);function b(){return p.map((e=>e.items)).flat().filter((e=>null!=e)).find((e=>e.isCurrent))}},ve=()=>{const{onOpen:t,topDropdownItems:n,isOpen:i}=ue(),{mainItem:r,otherItems:l,actions:o}=n,c=a(null),m=X(c),d=e=>({id:e.id,label:e.title,leadingIconName:e.icon,link:{href:e.url}}),u=s((()=>[...l.map(d),l.length>0&&{type:"divider",id:"item-divider"},...o.map(d)].filter((e=>null!=e))),[o,l]),p=l.length+o.length;return e.createElement(e.Fragment,null,0===p?e.createElement("a",{className:"maxio-side-nav__menu-button maxio-side-nav__menu-button--large",href:r.url,onClick:t},e.createElement("span",{className:"maxio-side-nav__menu-title"},r.title)):e.createElement("details",{className:"maxio-action-menu maxio-side-nav--action-menu"},e.createElement("summary",{onClick:t,className:"maxio-side-nav__menu-button maxio-side-nav__menu-button--large","aria-haspopup":"true",ref:c},r.url?e.createElement(e.Fragment,null,e.createElement(me,{type:"menu",isTooltipVisible:!i&&m,leadingIcon:r.icon,trailingIcon:"chevron-down",leadingIconClassName:"maxio-icon-circle-small-fill maxio-icon--success"},r.title)):e.createElement(me,{type:"menu",trailingIcon:"chevron-down"},r.title)),e.createElement(R,{"aria-label":"Action list",items:u})))},he=({section:t})=>{const{isOpen:n}=ue(),i=a(null),r=X(i);return e.createElement("li",{className:"maxio-side-nav__item","data-key":t.key,"data-testid":"maxio-sidebar-section"},e.createElement("a",{className:"maxio-side-nav__link","aria-current":t.isCurrent?"page":void 0,role:"button",href:t.href,ref:i},e.createElement(me,{isTooltipVisible:r&&!n,type:"menu",leadingIcon:t.icon},t.name)))},xe=({section:t})=>{var n;const{onOpen:i,onSectionOpen:r,isOpen:l,withIcons:o}=ue();const c=s((()=>{var e;const a=null===(e=t.items)||void 0===e?void 0:e.some((e=>e.isCurrent));return l?t.isCurrent&&!a||!t.isOpen&&t.isCurrent:t.isCurrent}),[t,l]),m=a(null),d=X(m);return t.Component?e.createElement(t.Component,{section:t}):t.href?e.createElement(he,{section:t}):e.createElement("li",{className:u("maxio-side-nav__item",{"maxio-side-nav__item--active":c,"maxio-side-nav__item--icon":o}),"data-testid":"maxio-sidebar-section"},e.createElement("button",{className:"maxio-side-nav__menu-button",ref:m,"aria-expanded":t.isOpen,"aria-current":c?"page":void 0,type:"button",onClick:function(){r(t.name),i()}},e.createElement(me,{type:"menu",isTooltipVisible:!l&&d,leadingIcon:t.icon,trailingIcon:(null===(n=t.items)||void 0===n?void 0:n.length)?"chevron-down":void 0},t.name)),t.isOpen&&l&&e.createElement("ul",{className:"maxio-side-nav__menu"},t.items.map((a=>e.createElement("li",{key:`section-sub-item-${a.name}`,className:"maxio-side-nav__item","data-testid":"maxio-section-item"},e.createElement("a",{className:"maxio-side-nav__link",href:a.href,"aria-current":a.isCurrent?"page":void 0},e.createElement("span",{className:"maxio-side-nav__link-title"},a.name)))))))},be=()=>{const{sections:a}=ue();return e.createElement("ul",{className:"maxio-side-nav__items"},a.map((a=>e.createElement(xe,{key:`section-${a.name}`,section:a}))))},ge=()=>{const{isOpen:a}=ue();return e.createElement("nav",{className:u("maxio-side-nav",{"maxio-side-nav--collapsed":!a})},e.createElement("div",null,e.createElement(ve,null),e.createElement("hr",{className:"maxio-side-nav__divider"}),e.createElement(be,null)))},Ee=({withIcons:a,shouldToggleSidebar:t,topDropdownItems:n,sections:i,collapseBreakpoint:r=800,isOpen:l,onChange:o})=>e.createElement(pe,{isOpen:l,onChange:o,collapseBreakpoint:r,withIcons:a,shouldToggleSidebar:t,topDropdownItems:n,sections:i},e.createElement(ge,null)),fe=({label:a,helperText:t,size:n="md",variant:i="default",status:r,value:l,maxValue:o=100})=>{const s=p(),c=p(),m=r&&!!a&&!!l&&!("inline"===i),d=t&&!("inline"===i),v=t&&"inline"===i,{progressBarProps:h,labelProps:x}=b({maxValue:o,value:l,label:a}),g=u("maxio-progress-bar",{"maxio-progress-bar--lg":"lg"===n,"maxio-progress-bar--success":l&&!("inline"===i)&&"success"===r,"maxio-progress-bar--error":l&&!("inline"===i)&&"error"===r,"maxio-progress-bar--indent":"indent"===i,"maxio-progress-bar--inline":"inline"===i,"maxio-progress-bar--indeterminate":void 0===l});return e.createElement("div",{className:g,...h},e.createElement("div",{id:s,className:"maxio-progress-bar__label",...x},a),v&&e.createElement("div",{id:c,className:"maxio-progress-bar__helper-text"},t),e.createElement("div",{className:"maxio-progress-bar__track"},e.createElement("div",{className:"maxio-progress-bar__progress",style:{"--tw-scale-x":`${l}%`}})),m&&e.createElement("div",{className:`maxio-progress-bar__${r}-icon`}),d&&e.createElement("div",{id:c,className:"maxio-progress-bar__helper-text"},t))},_e=({as:a="div",children:t,compact:n=!1,size:i="md",className:r,...l})=>{const o=a,s=u({[`maxio-body-${i}`]:!n,[`maxio-body-${i}-compact`]:n},r);return e.createElement(o,{className:s,...l},t)},Ne={sm:"h3",md:"h2",lg:"h1"},we=({children:a,size:t="sm",className:n,...i})=>{const r=Ne[t],l=u(`maxio-heading-${t}`,n);return e.createElement(r,{className:l,...i},a)},ye=({as:a="div",children:t,size:n="md",className:i,...r})=>{const l=a,o=u(`maxio-display-${n}`,i);return e.createElement(l,{className:o,...r},t)},ke=({as:a="div",children:t,className:n,...i})=>{const r=a,l=u("maxio-code",n);return e.createElement(r,{className:l,...i},t)},Ie=({as:a="div",children:t,size:n="sm",className:i,...r})=>{const l=a,o=u(`maxio-label-${n}`,i);return e.createElement(l,{className:o,...r},t)},Ce=i({}),Pe=()=>l(Ce),Oe=({children:a,variant:i,withDivider:r,defaultIndex:l=0,onChange:o,index:s})=>{const[c,m]=n((()=>void 0!==s?s:l));t((()=>{void 0===s&&m(l),"number"==typeof s&&m(s)}),[l,s]);return e.createElement(Ce.Provider,{value:{currentIndex:c,variant:i,withDivider:r,onChange:e=>{let a;a="function"==typeof e?e(c):e,void 0===s&&m(a),"function"==typeof o&&o(a)}}},a)},Se=({disabled:n=!1,value:i=0,isCurrent:r,...l})=>{const{onChange:o,currentIndex:s}=Pe(),c=u("maxio-tabs__tab",{"maxio-tabs__tab--active":s===i,"maxio-tabs__tab--disabled":n,"maxio-tabs__tab--icon":"icon"===l.type}),m=()=>{o(i)},d={"aria-selected":r,id:`tab-${i}`,"aria-controls":`panel-${i}`,role:"tab",tabIndex:r?0:-1},p=a(null),v=a(!1);if(t((()=>{r&&v.current&&p.current.focus()}),[r]),t((()=>{v.current=!0}),[]),"icon"===l.type){const{icon:a,...t}=l;return e.createElement("div",{className:c,ref:p,onClick:m,...d,...t},e.createElement("div",{className:"maxio-tabs__tab__content"},a))}const{children:h,rightIcon:x,...b}=l;return e.createElement("div",{role:"tab",ref:p,className:c,onClick:m,...d,...b},e.createElement("div",{className:"maxio-tabs__tab__content"},h,x||null))},Ve=({children:a,variant:t="line",withDivider:n=!1,defaultIndex:i=0,index:r,onChange:l})=>e.createElement(Oe,{defaultIndex:i,variant:t,withDivider:n,index:r,onChange:l},a),De=({children:a,value:t,...n})=>{const{currentIndex:i}=Pe();return e.createElement("div",{...n,...t?{id:`panel-${t}`}:{},role:"tabpanel","aria-labelledby":`tab-${t}`,hidden:i!==t},a)},$e=({children:a})=>{const{currentIndex:t}=Pe();return e.createElement(e.Fragment,null,c.map(a,((e,a)=>{if(m(e)&&e.type===De)return a===t?d(e,{value:a}):null;throw new Error("You can only pass <TabPanel /> component as children")})))},Te=(e,a,t)=>0===e?e:1===e&&a[e-1].disabled?t||e:a[e-1].disabled?Te(e-1,a,t||e):e-1,Fe=({children:t,className:n,ariaLabel:i,...r})=>{const{variant:l,withDivider:o,currentIndex:s,onChange:p}=Pe(),v=u("maxio-tabs",n,{"maxio-tabs--contained":"contained"===l,"maxio-tabs--divider":o}),h=a(),x=()=>c.map(t,(e=>e.props));return e.createElement("div",{className:v,role:"tablist","aria-label":i,"aria-orientation":"horizontal",ref:h,onKeyDown:e=>{"ArrowRight"===e.key&&p((e=>((e,a)=>{const t=a.findIndex(((a,t)=>!a.disabled&&t>e));return-1===t?e:t})(e,x()))),"ArrowLeft"===e.key&&p((e=>Te(e,x()))),h.current.focus()},...r},c.map(t,((e,a)=>{if(m(e)&&e.type===Se)return d(e,{value:a,isCurrent:s===a});throw new Error("You can only pass <Tab /> component as children")})))},Me=({className:a,children:t,disabled:n=!1,external:i=!1,icon:r="arrow-right",noArrow:l=!1,size:o="md",...s})=>{const c=u("maxio-link",{[`maxio-link--${o}`]:!0,"maxio-link--disabled":n},a),m=i?"_blank":"_self";return r=i?"arrow-up-right":r,e.createElement("a",{className:c,target:m,...s},e.createElement("span",{className:"maxio-link__text"},t),!l&&e.createElement(T,{variant:r}))},Re=i({}),ze=()=>l(Re),We=({name:a,values:t,onChange:i,disabled:r=!1,invalid:l=!1,children:o})=>{const[s,c]=n(t||[]);return e.createElement(Re.Provider,{value:{disabled:r,invalid:l,name:a,values:s,onChange:e=>{let a=[];a=s.includes(e)?s.filter((a=>a!==e)):[...s,e],c(a),i&&i(a)}}},o)},Le=({label:t,error:n=!1,className:i,indeterminate:r,...l})=>{const o=a(null),{name:s,disabled:c,invalid:m,onChange:d,values:p=[]}=ze(),v=!!s,h=c||l.disabled,x=m||n,b=v?p.includes(l.value):l.checked,E=u("maxio-checkbox",{"maxio-checkbox--checked":b,"maxio-checkbox--disabled":h,"maxio-checkbox--error":x,"maxio-checkbox--indeterminate":r},i),{inputProps:f}=g({value:l.value,"aria-label":t},{isDisabled:h,isReadOnly:h,setValue:d,addValue:d,toggleValue:d,removeValue:d,value:p,isSelected:e=>p.includes(e),validationState:n?"invalid":"valid",isInvalid:!!n},o);return e.createElement("label",{className:E},e.createElement("input",{type:"checkbox",role:"checkbox",className:"maxio-checkbox__input",ref:o,...v?f:l}),e.createElement("span",{className:"maxio-checkbox__control"},n&&e.createElement("span",{className:"maxio-checkbox__control-error"})),e.createElement("span",{className:"maxio-checkbox__label"},t))},Ae=({children:a,className:t,...n})=>e.createElement("div",{className:u("maxio-form-helper-text",t),...n},a),He=({children:a,className:t,...n})=>e.createElement("div",{className:u("maxio-form-error",t),...n},e.createElement("i",{className:"maxio-form-error__icon"}),e.createElement("div",{className:"maxio-form-error__text"},a)),Be=({className:a,children:t,label:n,errorMessage:i,helperText:r,disabled:l})=>{const{values:o,onChange:s,name:c}=ze(),{descriptionProps:m,errorMessageProps:d,groupProps:p,labelProps:v}=E({name:c,label:n},{validationState:i?"invalid":"valid",isDisabled:l,isInvalid:!!i,isReadOnly:l,setValue:s,addValue:s,toggleValue:s,removeValue:s,value:o,isSelected:e=>o.includes(e)}),h=u("maxio-checkbox-group",{"maxio-checkbox-group--disabled":l},a),x=r&&!i;return e.createElement("div",{className:h,...p},n&&e.createElement("label",{className:"maxio-checkbox-group__label",...v},n),t,x&&e.createElement(Ae,{...m},r),i&&e.createElement(He,{...d},i))},Ue=a=>e.createElement(We,{...a},e.createElement(Be,{...a},a.children)),qe=i({}),Ge=()=>l(qe),Ke=({children:a,onChange:i,value:r,defaultValue:l="",name:o,indent:s,disabled:c})=>{const[m,d]=n(l),[u,p]=n(null);t((()=>{d(r)}),[r]);return e.createElement(qe.Provider,{value:{onChange:e=>{d(e),i&&i(e)},name:o,value:m,indent:s,disabled:c,lastFocusedValue:u,setLastFocusedValue:p}},a)},Ye=({indent:t=!1,disabled:n=!1,invalid:i=!1,label:r,...l})=>{const o=a(null),{disabled:s,indent:c,invalid:m,name:d,onChange:p,value:v,setLastFocusedValue:h=(()=>{}),lastFocusedValue:x=null}=Ge(),b=!!d,g=m||i,E=s||n,_=u("maxio-radio",{"maxio-radio--indent":c||t,"maxio-radio--disabled":E,"maxio-radio--error":g}),{inputProps:N}=f({...l,children:r,value:(l.value||"").toString()},{isDisabled:E,isReadOnly:E,isRequired:!1,name:d,validationState:g?"invalid":"valid",isInvalid:g,selectedValue:v,setSelectedValue:p,setLastFocusedValue:h,lastFocusedValue:x},o);return e.createElement("label",{className:_},e.createElement("input",{ref:o,type:"radio",className:"maxio-radio__input",...b?N:l}),e.createElement("span",{className:"maxio-radio__control",tabIndex:0}),e.createElement("span",{className:"maxio-radio__label"},r))},je=({children:a,label:t,errorMessage:n,helperText:i,disabled:r=!1,invalid:l=!1})=>{const{name:o,onChange:s,value:c,lastFocusedValue:m,setLastFocusedValue:d}=Ge(),{radioGroupProps:u,labelProps:p,descriptionProps:v,errorMessageProps:h}=_({name:o,label:t},{name:o,validationState:l?"invalid":"valid",isDisabled:r,isInvalid:l,isReadOnly:r,isRequired:!1,selectedValue:c,lastFocusedValue:m,setLastFocusedValue:d,setSelectedValue:s});return e.createElement(e.Fragment,null,e.createElement("div",{className:"maxio-radio-group",...u},t&&e.createElement("label",{className:"maxio-radio-group__label",...p},t),a,n&&l&&e.createElement(He,{...h},n),i&&!n&&e.createElement(Ae,{...v},i)))},Xe=a=>e.createElement(Ke,{...a},e.createElement(je,{...a},a.children)),Je=({disabled:t=!1,invalid:n=!1,readOnly:i=!1,size:r="md",label:l,helperText:o,errorMessage:s,leftElement:c=null,rightElement:m=null,onChange:d,...p})=>{var v,h;const x=a(null),{labelProps:b,inputProps:g,descriptionProps:E,errorMessageProps:f}=N({...p,label:l,description:o,errorMessage:s,defaultValue:null===(v=p.defaultValue)||void 0===v?void 0:v.toString(),value:null===(h=p.value)||void 0===h?void 0:h.toString()},x),_=u("maxio-text-field",`maxio-text-field--${r}`,{"maxio-text-field--disabled":t,"maxio-text-field--error":n,"maxio-text-field--readonly":i}),w=n&&s;return e.createElement("div",{className:_},e.createElement("label",{className:"maxio-text-field__label",...b},l),e.createElement("div",{className:"maxio-text-field__items"},c&&e.createElement("div",{className:"maxio-text-field__left-element"},c),n&&e.createElement("div",{className:"maxio-text-field__right-element"},e.createElement(T,{variant:"warning-circle-fill"})),e.createElement("input",{ref:x,type:"text",className:"maxio-text-field__input",onChange:d,...g}),m&&!n&&e.createElement("div",{className:"maxio-text-field__right-element"},m)),o&&!w&&e.createElement("div",{className:"maxio-form-helper-text",...E},o),w&&e.createElement("div",{className:"maxio-form-error",...f},e.createElement("div",{className:"maxio-form-error__text"},s)))},Qe=({children:a,className:t,to:n,...i})=>{const r=n?e.createElement(Me,{size:"sm",noArrow:!0,href:n},a):a;return e.createElement("li",{className:u("maxio-breadcrumbs__item",t),...i},r)},Ze="Breadcrumbs requires at least one BreadcrumbsItem as children",ea='Last BreadcrumbsItem should not have "to" prop. It is the current page.',aa="Breadcrumbs only accepts BreadcrumbsItem as children",ta=({className:a,children:t,...n})=>{const i=c.count(t);if(0===i)throw new Error(Ze);const r=c.map(t,((e,a)=>{if(m(e)&&e.type==Qe){if(a===i-1&&e.props.to)throw new Error(ea);return d(e,{"aria-current":a===i-1?"page":void 0})}throw new Error(aa)}));return e.createElement("nav",{"aria-label":"Breadcrumb",...n},e.createElement("ol",{className:u("maxio-breadcrumbs",a)},r))};export{R as ActionList,z as Avatar,_e as Body,G as BrandLogo,ta as Breadcrumbs,Qe as BreadcrumbsItem,Z as Button,Le as Checkbox,Ue as CheckboxGroup,ke as Code,ye as Display,He as FormErrorMessage,Ae as FormHelperText,re as HeaderButton,le as HeaderNav,oe as HeaderSearchField,ce as HeaderSearchInput,se as HeaderSearchMenu,we as Heading,T as Icon,ee as IconButton,Ie as Label,Me as Link,B as Menu,q as MenuButton,U as MenuList,Q as OverlayTrigger,fe as ProgressBar,Ye as Radio,Xe as RadioGroup,Ee as SideNav,Se as Tab,Fe as TabList,De as TabPanel,$e as TabPanels,Ve as Tabs,Je as TextInput,ae as Toggle,te as Tooltip,ie as TooltipTrigger,X as useHover,j as useOverlayTrigger,J as useWindowSize};
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("react"),t=require("classnames"),a=require("react-aria"),n=require("framer-motion"),i=require("@floating-ui/react-dom-interactions");const r=({variant:a,white:n,className:i})=>e.createElement("i",{className:t("maxio-icon",`maxio-icon-${a}`,n&&"maxio-icon--white",i)}),l=({item:t,isSelected:n,role:i="option"})=>{const l=e.useRef(),o=e.useRef(!1),s=a.useId();if(e.useEffect((()=>{var e;n&&o.current&&(null===(e=l.current)||void 0===e||e.focus())}),[n]),e.useEffect((()=>{o.current=!0}),[]),"divider"===t.type)return e.createElement("div",{className:"maxio-action-list__divider",role:"separator","aria-hidden":"true"});const{leadingIconName:c,trailingIconName:m,label:d,description:u,link:p}=t;return e.createElement("a",{"aria-labelledby":s,...p,className:"maxio-action-list__content",tabIndex:n?0:-1,ref:l,role:i},c&&e.createElement(r,{variant:c,className:"maxio-action-list__leading-icon"}),e.createElement("span",{className:"maxio-action-list__label",id:s},d),u&&e.createElement("span",{className:"maxio-action-list__description"},u),m&&e.createElement(r,{variant:m,className:"maxio-action-list__trailing-icon"}))},o=(e,t,a)=>0===e?e:1===e&&"divider"===t[e-1].type?a||e:"divider"===t[e-1].type?o(e-1,t,a||e):e-1,s=({items:a,isShadowed:n=!0,itemProps:i={},...r})=>{const s=t("maxio-action-list",{"maxio-action-list--shadow":n}),[c,m]=e.useState((()=>a.findIndex((e=>"divider"!==e.type))));return 0===a.length?null:e.createElement("div",{className:s,onKeyDown:e=>{if("Space"===e.code||"Enter"===e.code){const e=a[c];e&&"divider"!==e.type&&window.open(e.link.href,e.link.target||"_self")}"ArrowUp"===e.code&&(e.preventDefault(),m((e=>o(e,a)))),"ArrowDown"===e.code&&(e.preventDefault(),m((e=>((e,t)=>{const a=t.findIndex(((t,a)=>"divider"!==t.type&&a>e));return-1===a?e:a})(e,a))))},role:"listbox",...r},a.map(((t,a)=>e.createElement(l,{item:t,key:`listbox-${t.id}`,isSelected:a===c,...i}))))},c=e.createContext({}),m=({children:t})=>{const[a,n]=e.useState(!1),i=e.useId(),r=e.useId();return e.createElement(c.Provider,{value:{controlsId:i,buttonId:r,isOpen:a,onClose:()=>n(!1),onOpen:()=>n(!0),onToggle:()=>n((e=>!e))}},t)};function d(){const t=e.useContext(c);if(!t||"object"==typeof t&&0===Object.keys(t).length)throw new Error("useMenu hook must be used within a MenuProvider");return t}const u=({children:t})=>{const{isOpen:a,onToggle:n,onClose:i}=d();return e.createElement("details",{open:a,onToggle:n,className:"maxio-action-menu"},"function"==typeof t?t({isOpen:a,onClose:i}):t)},p={click:i.useClick,hover:i.useHover,focus:i.useFocus,dismiss:i.useDismiss},x=(e,t)=>t.map((t=>p[t](e))),v=({placement:t="top",isActive:a=!1,interactions:n=["hover"],floatingElementOffset:r=0,onOverlayUpdate:l,autoHideMs:o})=>{const s=e.useRef(null),{strategy:c,x:m,y:d,context:u,floating:p,reference:v}=i.useFloating({placement:t,open:a,onOpenChange:e=>l(e),middleware:[i.offset(r)]}),{getReferenceProps:h,getFloatingProps:b}=i.useInteractions([...x(u,n),i.useRole(u,{role:"tooltip"})]);e.useEffect((()=>{s.current&&clearTimeout(s.current),a&&o&&(s.current=setTimeout((()=>l(!1)),o))}),[a,o]);return{isActive:a,refs:{floating:p,reference:v},floatingElementCSSPosition:{position:c,top:null!=d?d:0,left:null!=m?m:0},getReferenceProps:h,getFloatingProps:b}};function h(t,a=0){const n=e.useRef((new Date).getTime()),i=e.useRef((new Date).getTime()),[r,l]=e.useState(!1);return e.useEffect((()=>{const e=()=>{n.current=(new Date).getTime(),l(!0)},r=()=>{i.current=(new Date).getTime(),setTimeout((()=>{n.current-i.current<=0&&l(!1)}),a)},o=t&&t.current;return o&&(o.addEventListener("mouseenter",e),o.addEventListener("mouseleave",r)),()=>{o&&(o.removeEventListener("mouseenter",e),o.removeEventListener("mouseleave",r))}}),[t]),r}function b(t=500){const[a,n]=e.useState((()=>{const{innerWidth:e,innerHeight:t}=window;return{windowWitdh:e,windowHeight:t}})),i=e.useRef(null);return e.useEffect((()=>{const e=()=>{const{innerWidth:e,innerHeight:a}=window;clearTimeout(i.current),i.current=setTimeout((()=>{n({windowWitdh:e,windowHeight:a})}),t)};return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}}),[t]),a}const g=({children:a,usePortal:r=!1,isActive:l=!1,placement:o="top",interactions:s=["hover"],role:c="tooltip",renderOverlay:m,floatingElementOffset:d,motionSettings:u={},autoHideMs:p,onOverlayUpdate:x,className:h})=>{const{getReferenceProps:b,getFloatingProps:g,refs:{floating:f,reference:E},floatingElementCSSPosition:_}=v({role:c,isActive:l,onOverlayUpdate:x,autoHideMs:p,floatingElementOffset:d,interactions:s,placement:o}),N=e.createElement(n.AnimatePresence,null,l&&e.createElement(n.motion.div,{ref:f,style:_,...u,...g()},m()));return e.createElement(e.Fragment,null,e.createElement("div",{ref:E,className:t("maxio-inline-flex",h),...b(),"data-testid":"overlay-trigger"},a),r?e.createElement(i.FloatingPortal,{id:"maxio-ui-portal"},N):N)},f=({children:n,loading:i=!1,fullWidth:r=!1,className:l,variant:o="primary",size:s="lg",disabled:c,icon:m,...d})=>{const u=e.useRef(),{buttonProps:p}=a.useButton({...d,isDisabled:c},u),x=t("maxio-button",l,{[`maxio-button--${s}`]:s,[`maxio-button--${o}`]:o,"maxio-button--loading":i,"maxio-button--full-width":r}),v=t("maxio-button__loader",{"maxio-button__loader--white":["primary","secondary","danger"].includes(o)});return e.createElement("button",{...p,className:x},n,!i&&m,i&&e.createElement("div",{className:v}))},E=({children:a,arrowPosition:n,size:i="regular",maxWidth:r=160})=>e.createElement("div",{"data-testid":"tooltip",className:t("maxio-tooltip",`maxio-tooltip--${i}`,{[`maxio-tooltip--arrow-${n}`]:n})},e.createElement("div",{className:"maxio-tooltip__content",style:{maxWidth:r}},a)),_={top:"bottom",right:"left",bottom:"top",left:"right","top-start":"bottom-left","top-end":"bottom-right","right-start":"left-top","right-end":"left-bottom","bottom-start":"top-left","bottom-end":"top-right","left-start":"right-top","left-end":"right-bottom"},N=({children:t,interactions:a=["hover"],placement:n="right",maxWidth:i=160,size:r="regular",renderContent:l,autoHideMs:o,isVisible:s,usePortal:c,className:m,onVisibilityUpdate:d,floatingElementOffset:u=5})=>{const[p,x]=e.useState(!1),v=void 0!==s,h=e.useCallback((e=>{v||x(e),d&&d(e)}),[s]),b=e.useMemo((()=>(e=>{const t=e.startsWith("top")||e.startsWith("bottom")?"Y":"X",a=`translate${t}(${e.startsWith("bottom")||e.startsWith("right")?"-":""}10px)`;return{initial:{opacity:0,visibility:"hidden",transform:a},animate:{opacity:1,visibility:"visible",transform:`translate${t}(0px)`},exit:{opacity:0,visibility:"hidden",transform:a},transition:{ease:[.4,0,.5,1],duration:.2}}})(n)),[n]);return e.createElement(g,{role:"tooltip",className:m,floatingElementOffset:u,motionSettings:b,isActive:v?s:p,onOverlayUpdate:h,autoHideMs:o,usePortal:c,placement:n,interactions:a,renderOverlay:()=>e.createElement(E,{size:r,arrowPosition:_[n],maxWidth:i},l())},t)},y=({children:n,as:i,iconName:l,noPadding:o,className:s,...c})=>{const m=e.useRef(null);let{buttonProps:d}=a.useButton(c,m),{linkProps:u}=a.useLink(c,m);const p="a"===i?u:d,x=i||"button";return e.createElement(x,{className:t("maxio-header-button",s,{"maxio-header-button--no-padding":o}),ref:m,...p},e.createElement("div",{className:"maxio-header-button__content"},n||null,l&&e.createElement(r,{variant:l})))},w=({className:n,innerRef:i,...l})=>{const[o,s]=e.useState(l.value||""),{inputProps:c}=a.useSearchField({value:l.value,"aria-label":"Search",placeholder:"Search",name:"search"},{value:o,setValue:s},i);return e.createElement("div",{className:t("maxio-header-search-field",n)},e.createElement("div",{className:"maxio-header-search-field__button"},e.createElement(r,{variant:"search"})),e.createElement("input",{ref:i,className:"maxio-header-search-field__input",type:"search",...c}))};w.displayName="SearchField";const k=({options:t,innerRef:a,...n})=>e.createElement("div",{className:"maxio-header-search-menu",role:"button"},e.createElement("select",{name:"entity",className:"maxio-header-search-menu__select","aria-label":"Menu",ref:a,...n},t.map((({label:t,value:a})=>e.createElement("option",{key:`${t}-${a}`,value:a},t)))),e.createElement("div",{className:"maxio-header-search-menu__icon"},e.createElement(r,{variant:"chevron-down"})));k.displayName="SearchMenu";const C=({leadingIcon:t,trailingIcon:a,type:n="menu",children:i,leadingIconClassName:l,isTooltipVisible:o=!1})=>e.createElement(e.Fragment,null,e.createElement(N,{usePortal:!1,isVisible:o,renderContent:()=>i,floatingElementOffset:12},t&&e.createElement("span",{className:"maxio-side-nav__icon"},e.createElement(r,{variant:t,className:l}))),e.createElement("span",{className:`maxio-side-nav__${n}-title`,"data-testid":"maxio-sidebar-section-name"},i),a&&e.createElement("span",{className:"maxio-side-nav__menu-chevron"},e.createElement(r,{variant:a}))),I=e.createContext({}),S=()=>e.useContext(I),P=({children:t,withIcons:a=!0,sections:n,shouldToggleSidebar:i=!0,topDropdownItems:r,collapseBreakpoint:l=800})=>{const[o,s]=e.useState((()=>!i||("undefined"==typeof window||window.innerWidth>l))),[c,m]=e.useState(n),d=()=>s(!0),u=()=>s(!1),{windowWitdh:p}=b();e.useEffect((()=>{!function(e){if(!i)return;e<l&&o&&x();e>l&&!o&&v()}(p)}),[p]),e.useEffect((()=>{o?v():x()}),[]);return e.createElement(I.Provider,{value:{sections:c,topDropdownItems:r,onSectionOpen:e=>{const t=h();m((a=>a.map((a=>{var n;const i=a.name===e&&!a.isOpen;return t&&(null===(n=a.items)||void 0===n?void 0:n.includes(t))?{...a,isOpen:i,isCurrent:!i}:{...a,isOpen:i}}))))},isOpen:o,onOpen:d,onClose:u,onToggle:()=>s((e=>!e)),withIcons:a}},t);function x(){const e=h();e&&(m((t=>t.map((t=>{var a;return{...t,isOpen:!1,isCurrent:(null===(a=t.items)||void 0===a?void 0:a.includes(e))||!1}})))),u())}function v(){const e=h();e&&(m((t=>t.map((t=>{var a;return{...t,isOpen:(null===(a=t.items)||void 0===a?void 0:a.includes(e))||!1,isCurrent:!1}})))),d())}function h(){return c.map((e=>e.items)).flat().filter((e=>null!=e)).find((e=>e.isCurrent))}},O=()=>{const{onOpen:t,topDropdownItems:a,isOpen:n}=S(),{mainItem:i,otherItems:r,actions:l}=a,o=e.useRef(null),c=h(o),m=e=>({id:e.id,label:e.title,leadingIconName:e.icon,link:{href:e.url}}),d=e.useMemo((()=>[...r.map(m),r.length>0&&{type:"divider",id:"item-divider"},...l.map(m)].filter((e=>null!=e))),[l,r]),u=r.length+l.length;return e.createElement(e.Fragment,null,0===u?e.createElement("a",{className:"maxio-side-nav__menu-button maxio-side-nav__menu-button--large",href:i.url,onClick:t},e.createElement("span",{className:"maxio-side-nav__menu-title"},i.title)):e.createElement("details",{className:"maxio-action-menu maxio-side-nav--action-menu"},e.createElement("summary",{onClick:t,className:"maxio-side-nav__menu-button maxio-side-nav__menu-button--large","aria-haspopup":"true",ref:o},i.url?e.createElement(e.Fragment,null,e.createElement(C,{type:"menu",isTooltipVisible:!n&&c,leadingIcon:i.icon,trailingIcon:"chevron-down",leadingIconClassName:"maxio-icon-circle-small-fill maxio-icon--success"},i.title)):e.createElement(C,{type:"menu",trailingIcon:"chevron-down"},i.title)),e.createElement(s,{"aria-label":"Action list",items:d})))},T=({section:t})=>{const{isOpen:a}=S(),n=e.useRef(null),i=h(n);return e.createElement("li",{className:"maxio-side-nav__item","data-key":t.key,"data-testid":"maxio-sidebar-section"},e.createElement("a",{className:"maxio-side-nav__link","aria-current":t.isCurrent?"page":void 0,role:"button",href:t.href,ref:n},e.createElement(C,{isTooltipVisible:i&&!a,type:"menu",leadingIcon:t.icon},t.name)))},R=({section:a})=>{var n;const{onOpen:i,onSectionOpen:r,isOpen:l,withIcons:o}=S();const s=e.useRef(null),c=h(s);return a.Component?e.createElement(a.Component,{section:a}):a.href?e.createElement(T,{section:a}):e.createElement("li",{className:t("maxio-side-nav__item",{"maxio-side-nav__item--active":a.isCurrent,"maxio-side-nav__item--icon":o}),"data-testid":"maxio-sidebar-section"},e.createElement("button",{className:"maxio-side-nav__menu-button",ref:s,"aria-expanded":a.isOpen,"aria-current":a.isCurrent?"page":void 0,type:"button",onClick:function(){r(a.name),i()}},e.createElement(C,{type:"menu",isTooltipVisible:!l&&c,leadingIcon:a.icon,trailingIcon:(null===(n=a.items)||void 0===n?void 0:n.length)?"chevron-down":void 0},a.name)),a.isOpen&&e.createElement("ul",{className:"maxio-side-nav__menu"},a.items.map((t=>e.createElement("li",{key:`section-sub-item-${t.name}`,className:"maxio-side-nav__item","data-testid":"maxio-section-item"},e.createElement("a",{className:"maxio-side-nav__link",href:t.href,"aria-current":t.isCurrent?"page":void 0},e.createElement("span",{className:"maxio-side-nav__link-title"},t.name)))))))},V=()=>{const{sections:t}=S();return e.createElement("ul",{className:"maxio-side-nav__items"},t.map((t=>e.createElement(R,{key:`section-${t.name}`,section:t}))))},D=()=>{const{isOpen:a}=S();return e.createElement("nav",{className:t("maxio-side-nav",{"maxio-side-nav--collapsed":!a})},e.createElement(O,null),e.createElement("hr",{className:"maxio-side-nav__divider"}),e.createElement(V,null))},F={sm:"h3",md:"h2",lg:"h1"},$=e.createContext({}),M=()=>e.useContext($),L=({children:t,variant:a,withDivider:n,defaultIndex:i=0,onChange:r,index:l})=>{const[o,s]=e.useState((()=>void 0!==l?l:i));e.useEffect((()=>{void 0===l&&s(i),"number"==typeof l&&s(l)}),[i,l]);return e.createElement($.Provider,{value:{currentIndex:o,variant:a,withDivider:n,onChange:e=>{let t;t="function"==typeof e?e(o):e,void 0===l&&s(t),"function"==typeof r&&r(t)}}},t)},H=({disabled:a=!1,value:n=0,isCurrent:i,...r})=>{const{onChange:l,currentIndex:o}=M(),s=t("maxio-tabs__tab",{"maxio-tabs__tab--active":o===n,"maxio-tabs__tab--disabled":a,"maxio-tabs__tab--icon":"icon"===r.type}),c=()=>{l(n)},m={"aria-selected":i,id:`tab-${n}`,"aria-controls":`panel-${n}`,role:"tab",tabIndex:i?0:-1},d=e.useRef(null),u=e.useRef(!1);if(e.useEffect((()=>{i&&u.current&&d.current.focus()}),[i]),e.useEffect((()=>{u.current=!0}),[]),"icon"===r.type){const{icon:t,...a}=r;return e.createElement("div",{className:s,ref:d,onClick:c,...m,...a},e.createElement("div",{className:"maxio-tabs__tab__content"},t))}const{children:p,rightIcon:x,...v}=r;return e.createElement("div",{role:"tab",ref:d,className:s,onClick:c,...m,...v},e.createElement("div",{className:"maxio-tabs__tab__content"},p,x||null))},W=({children:t,value:a,...n})=>{const{currentIndex:i}=M();return e.createElement("div",{...n,...a?{id:`panel-${a}`}:{},role:"tabpanel","aria-labelledby":`tab-${a}`,hidden:i!==a},t)},z=(e,t,a)=>0===e?e:1===e&&t[e-1].disabled?a||e:t[e-1].disabled?z(e-1,t,a||e):e-1,A=e.createContext({}),B=()=>e.useContext(A),q=({name:t,values:a,onChange:n,disabled:i=!1,invalid:r=!1,children:l})=>{const[o,s]=e.useState(a||[]);return e.createElement(A.Provider,{value:{disabled:i,invalid:r,name:t,values:o,onChange:e=>{let t=[];t=o.includes(e)?o.filter((t=>t!==e)):[...o,e],s(t),n&&n(t)}}},l)},G=({children:a,className:n,...i})=>e.createElement("div",{className:t("maxio-form-helper-text",n),...i},a),U=({children:a,className:n,...i})=>e.createElement("div",{className:t("maxio-form-error",n),...i},e.createElement("i",{className:"maxio-form-error__icon"}),e.createElement("div",{className:"maxio-form-error__text"},a)),K=({className:n,children:i,label:r,errorMessage:l,helperText:o,disabled:s})=>{const{values:c,onChange:m,name:d}=B(),{descriptionProps:u,errorMessageProps:p,groupProps:x,labelProps:v}=a.useCheckboxGroup({name:d,label:r},{validationState:l?"invalid":"valid",isDisabled:s,isInvalid:!!l,isReadOnly:s,setValue:m,addValue:m,toggleValue:m,removeValue:m,value:c,isSelected:e=>c.includes(e)}),h=t("maxio-checkbox-group",{"maxio-checkbox-group--disabled":s},n),b=o&&!l;return e.createElement("div",{className:h,...x},r&&e.createElement("label",{className:"maxio-checkbox-group__label",...v},r),i,b&&e.createElement(G,{...u},o),l&&e.createElement(U,{...p},l))},Y=e.createContext({}),j=()=>e.useContext(Y),X=({children:t,onChange:a,value:n,defaultValue:i="",name:r,indent:l,disabled:o})=>{const[s,c]=e.useState(i),[m,d]=e.useState(null);e.useEffect((()=>{c(n)}),[n]);return e.createElement(Y.Provider,{value:{onChange:e=>{c(e),a&&a(e)},name:r,value:s,indent:l,disabled:o,lastFocusedValue:m,setLastFocusedValue:d}},t)},J=({children:t,label:n,errorMessage:i,helperText:r,disabled:l=!1,invalid:o=!1})=>{const{name:s,onChange:c,value:m,lastFocusedValue:d,setLastFocusedValue:u}=j(),{radioGroupProps:p,labelProps:x,descriptionProps:v,errorMessageProps:h}=a.useRadioGroup({name:s,label:n},{name:s,validationState:o?"invalid":"valid",isDisabled:l,isInvalid:o,isReadOnly:l,isRequired:!1,selectedValue:m,lastFocusedValue:d,setLastFocusedValue:u,setSelectedValue:c});return e.createElement(e.Fragment,null,e.createElement("div",{className:"maxio-radio-group",...p},n&&e.createElement("label",{className:"maxio-radio-group__label",...x},n),t,i&&o&&e.createElement(U,{...h},i),r&&!i&&e.createElement(G,{...v},r)))};exports.ActionList=s,exports.Avatar=({className:a,src:n,alt:i="avatar"})=>e.createElement("img",{className:t("maxio-avatar",a),alt:i,src:n}),exports.Body=({as:a="div",children:n,compact:i=!1,size:r="md",className:l,...o})=>{const s=a,c=t({[`maxio-body-${r}`]:!i,[`maxio-body-${r}-compact`]:i},l);return e.createElement(s,{className:c,...o},n)},exports.BrandLogo=({icon:a,variant:n="default"})=>e.createElement("i",{className:t("maxio-brand-logo",`maxio-brand-logo-${a}`,{[`maxio-brand-logo--${n}`]:"default"!==n})}),exports.Button=f,exports.Checkbox=({label:n,error:i=!1,className:r,indeterminate:l,...o})=>{const s=e.useRef(null),{name:c,disabled:m,invalid:d,onChange:u,values:p=[]}=B(),x=!!c,v=m||o.disabled,h=d||i,b=x?p.includes(o.value):o.checked,g=t("maxio-checkbox",{"maxio-checkbox--checked":b,"maxio-checkbox--disabled":v,"maxio-checkbox--error":h,"maxio-checkbox--indeterminate":l},r),{inputProps:f}=a.useCheckboxGroupItem({value:o.value,"aria-label":n},{isDisabled:v,isReadOnly:v,setValue:u,addValue:u,toggleValue:u,removeValue:u,value:p,isSelected:e=>p.includes(e),validationState:i?"invalid":"valid",isInvalid:!!i},s);return e.createElement("label",{className:g},e.createElement("input",{type:"checkbox",role:"checkbox",className:"maxio-checkbox__input",ref:s,...x?f:o}),e.createElement("span",{className:"maxio-checkbox__control"},i&&e.createElement("span",{className:"maxio-checkbox__control-error"})),e.createElement("span",{className:"maxio-checkbox__label"},n))},exports.CheckboxGroup=t=>e.createElement(q,{...t},e.createElement(K,{...t},t.children)),exports.Code=({as:a="div",children:n,className:i,...r})=>{const l=a,o=t("maxio-code",i);return e.createElement(l,{className:o,...r},n)},exports.Display=({as:a="div",children:n,size:i="md",className:r,...l})=>{const o=a,s=t(`maxio-display-${i}`,r);return e.createElement(o,{className:s,...l},n)},exports.FormErrorMessage=U,exports.FormHelperText=G,exports.HeaderButton=y,exports.HeaderNav=({items:a})=>e.createElement("ul",{className:"maxio-header-nav"},a.map((({label:a,id:n,isActive:i,...r})=>e.createElement("li",{className:"maxio-header-nav__item",key:`header-nav-list-item-${n}`},e.createElement("a",{className:t("maxio-header-nav__link",{"maxio-header-nav__link--active":i}),...r},a))))),exports.HeaderSearchField=w,exports.HeaderSearchInput=({options:t,onSubmit:a})=>{const n=e.useRef(null),i=e.useRef(null);return e.createElement("form",{className:"maxio-header-search-input",onSubmit:function(e){var t,r;e.preventDefault(),a({searchField:(null===(t=n.current)||void 0===t?void 0:t.value)||"",selectField:(null===(r=i.current)||void 0===r?void 0:r.value)||""})}},e.createElement(k,{innerRef:i,options:t}),e.createElement(w,{innerRef:n}),e.createElement(y,{type:"submit","aria-label":"Submit search",iconName:"arrow-right"}))},exports.HeaderSearchMenu=k,exports.Heading=({children:a,size:n="sm",className:i,...r})=>{const l=F[n],o=t(`maxio-heading-${n}`,i);return e.createElement(l,{className:o,...r},a)},exports.Icon=r,exports.IconButton=({icon:t,...a})=>e.createElement(f,{icon:t,className:"maxio-button--icon",...a},null),exports.Label=({as:a="div",children:n,size:i="sm",className:r,...l})=>{const o=a,s=t(`maxio-label-${i}`,r);return e.createElement(o,{className:s,...l},n)},exports.Link=({className:a,children:n,disabled:i=!1,external:l=!1,icon:o="arrow-right",noArrow:s=!1,size:c="md",...m})=>{const d=t("maxio-link",{[`maxio-link--${c}`]:!0,"maxio-link--disabled":i},a),u=l?"_blank":"_self";return o=l?"arrow-up-right":o,e.createElement("a",{className:d,target:u,...m},e.createElement("span",{className:"maxio-link__text"},n),!s&&e.createElement(r,{variant:o}))},exports.Menu=({children:t})=>e.createElement(m,null,e.createElement(u,null,t)),exports.MenuButton=({children:a,iconName:n="chevron-down","aria-label":i})=>{const l=t({"maxio-action-menu__chevron":"chevron-down"===n}),{isOpen:o,buttonId:s,controlsId:c}=d();return e.createElement("summary",{className:"maxio-header-button","aria-haspopup":"true","aria-label":i,"aria-expanded":o,"aria-controls":c,id:s},e.createElement("div",{className:"maxio-header-button__content"},a&&e.createElement("span",null,a),n&&e.createElement(r,{variant:n,className:l})))},exports.MenuList=({items:a,alignItemsEnd:n=!1})=>{const i=t("maxio-action-menu__content",{"maxio-action-menu__content--align-end":n}),{controlsId:r,buttonId:l}=d();return e.createElement("div",{className:i,role:"presentation"},e.createElement(s,{role:"menu",itemProps:{role:"menuitem"},id:r,"aria-labelledby":l,items:a}))},exports.OverlayTrigger=g,exports.ProgressBar=({label:n,helperText:i,size:r="md",variant:l="default",status:o,value:s,maxValue:c=100})=>{const m=a.useId(),d=a.useId(),u=o&&!!n&&!!s&&!("inline"===l),p=i&&!("inline"===l),x=i&&"inline"===l,{progressBarProps:v,labelProps:h}=a.useProgressBar({maxValue:c,value:s,label:n}),b=t("maxio-progress-bar",{"maxio-progress-bar--lg":"lg"===r,"maxio-progress-bar--success":s&&!("inline"===l)&&"success"===o,"maxio-progress-bar--error":s&&!("inline"===l)&&"error"===o,"maxio-progress-bar--indent":"indent"===l,"maxio-progress-bar--inline":"inline"===l,"maxio-progress-bar--indeterminate":void 0===s});return e.createElement("div",{className:b,...v},e.createElement("div",{id:m,className:"maxio-progress-bar__label",...h},n),x&&e.createElement("div",{id:d,className:"maxio-progress-bar__helper-text"},i),e.createElement("div",{className:"maxio-progress-bar__track"},e.createElement("div",{className:"maxio-progress-bar__progress",style:{"--tw-scale-x":`${s}%`}})),u&&e.createElement("div",{className:`maxio-progress-bar__${o}-icon`}),p&&e.createElement("div",{id:d,className:"maxio-progress-bar__helper-text"},i))},exports.Radio=({indent:n=!1,disabled:i=!1,invalid:r=!1,label:l,...o})=>{const s=e.useRef(null),{disabled:c,indent:m,invalid:d,name:u,onChange:p,value:x,setLastFocusedValue:v=(()=>{}),lastFocusedValue:h=null}=j(),b=!!u,g=d||r,f=c||i,E=t("maxio-radio",{"maxio-radio--indent":m||n,"maxio-radio--disabled":f,"maxio-radio--error":g}),{inputProps:_}=a.useRadio({...o,children:l,value:(o.value||"").toString()},{isDisabled:f,isReadOnly:f,isRequired:!1,name:u,validationState:g?"invalid":"valid",isInvalid:g,selectedValue:x,setSelectedValue:p,setLastFocusedValue:v,lastFocusedValue:h},s);return e.createElement("label",{className:E},e.createElement("input",{ref:s,type:"radio",className:"maxio-radio__input",...b?_:o}),e.createElement("span",{className:"maxio-radio__control",tabIndex:0}),e.createElement("span",{className:"maxio-radio__label"},l))},exports.RadioGroup=t=>e.createElement(X,{...t},e.createElement(J,{...t},t.children)),exports.SideNav=({withIcons:t,shouldToggleSidebar:a,topDropdownItems:n,sections:i,collapseBreakpoint:r=800})=>e.createElement(P,{collapseBreakpoint:r,withIcons:t,shouldToggleSidebar:a,topDropdownItems:n,sections:i},e.createElement(D,null)),exports.Tab=H,exports.TabList=({children:a,className:n,ariaLabel:i,...r})=>{const{variant:l,withDivider:o,currentIndex:s,onChange:c}=M(),m=t("maxio-tabs",n,{"maxio-tabs--contained":"contained"===l,"maxio-tabs--divider":o}),d=e.useRef(),u=()=>e.Children.map(a,(e=>e.props));return e.createElement("div",{className:m,role:"tablist","aria-label":i,"aria-orientation":"horizontal",ref:d,onKeyDown:e=>{"ArrowRight"===e.key&&c((e=>((e,t)=>{const a=t.findIndex(((t,a)=>!t.disabled&&a>e));return-1===a?e:a})(e,u()))),"ArrowLeft"===e.key&&c((e=>z(e,u()))),d.current.focus()},...r},e.Children.map(a,((t,a)=>{if(e.isValidElement(t)&&t.type===H)return e.cloneElement(t,{value:a,isCurrent:s===a});throw new Error("You can only pass <Tab /> component as children")})))},exports.TabPanel=W,exports.TabPanels=({children:t})=>{const{currentIndex:a}=M();return e.createElement(e.Fragment,null,e.Children.map(t,((t,n)=>{if(e.isValidElement(t)&&t.type===W)return n===a?e.cloneElement(t,{value:n}):null;throw new Error("You can only pass <TabPanel /> component as children")})))},exports.Tabs=({children:t,variant:a="line",withDivider:n=!1,defaultIndex:i=0,index:r,onChange:l})=>e.createElement(L,{defaultIndex:i,variant:a,withDivider:n,index:r,onChange:l},t),exports.TextInput=({disabled:n=!1,invalid:i=!1,readOnly:l=!1,size:o="md",label:s,helperText:c,errorMessage:m,leftElement:d=null,rightElement:u=null,onChange:p,...x})=>{var v,h;const b=e.useRef(null),{labelProps:g,inputProps:f,descriptionProps:E,errorMessageProps:_}=a.useTextField({...x,label:s,description:c,errorMessage:m,defaultValue:null===(v=x.defaultValue)||void 0===v?void 0:v.toString(),value:null===(h=x.value)||void 0===h?void 0:h.toString()},b),N=t("maxio-text-field",`maxio-text-field--${o}`,{"maxio-text-field--disabled":n,"maxio-text-field--error":i,"maxio-text-field--readonly":l}),y=i&&m;return e.createElement("div",{className:N},e.createElement("label",{className:"maxio-text-field__label",...g},s),e.createElement("div",{className:"maxio-text-field__items"},d&&e.createElement("div",{className:"maxio-text-field__left-element"},d),i&&e.createElement("div",{className:"maxio-text-field__right-element"},e.createElement(r,{variant:"warning-circle-fill"})),e.createElement("input",{ref:b,type:"text",className:"maxio-text-field__input",onChange:p,...f}),u&&!i&&e.createElement("div",{className:"maxio-text-field__right-element"},u)),c&&!y&&e.createElement("div",{className:"maxio-form-helper-text",...E},c),y&&e.createElement("div",{className:"maxio-form-error",..._},e.createElement("div",{className:"maxio-form-error__text"},m)))},exports.Toggle=({defaultChecked:a,checked:n,onChange:i,disabled:r,valueDescription:l,valueDescriptionPosition:o,className:s,name:c,id:m,...d})=>{const u=e.useId(),p="boolean"==typeof a,x=m||u,v="left"===o?"row":"row-reverse",h=l&&o,b=e.useCallback((e=>{if("Enter"===e.code||"Space"===e.code){e.preventDefault();const t=e.currentTarget.checked;p&&(e.currentTarget.checked=!t),i&&i(!t,e)}}),[p,i]),g=d["aria-label"]||(h?void 0:l);return e.createElement("div",{className:t("maxio-toggle",s,{"maxio-toggle--disabled":r}),style:{display:"inline-flex",flexDirection:v},"data-testid":"toggle-container"},h?e.createElement("label",{className:"maxio-toggle__label",htmlFor:x},l):null,e.createElement("div",{className:"maxio-toggle__container"},e.createElement("input",{type:"checkbox",defaultChecked:a,checked:n,onChange:e=>{i&&i(e.target.checked,e)},onKeyDown:b,disabled:r,className:"maxio-toggle__checkbox",id:x,name:c,"aria-label":g}),e.createElement("div",{className:"maxio-toggle__track",role:"switch","aria-checked":n,"aria-hidden":"true"},e.createElement("div",{className:"maxio-toggle__handle"}),e.createElement("span",{className:"maxio-toggle__icon"},e.createElement("i",{className:"maxio-toggle__icon-on"})),e.createElement("span",{className:"maxio-toggle__icon"},e.createElement("i",{className:"maxio-toggle__icon-off"})))))},exports.Tooltip=E,exports.TooltipTrigger=N,exports.useHover=h,exports.useOverlayTrigger=v,exports.useWindowSize=b;
1
+ "use strict";var e=require("react"),t=require("classnames"),a=require("react-aria"),n=require("framer-motion"),i=require("@floating-ui/react-dom-interactions");const r=({variant:a,white:n,className:i})=>e.createElement("i",{className:t("maxio-icon",`maxio-icon-${a}`,n&&"maxio-icon--white",i)}),l=({item:t,isSelected:n,role:i="option"})=>{const l=e.useRef(),o=e.useRef(!1),s=a.useId();if(e.useEffect((()=>{var e;n&&o.current&&(null===(e=l.current)||void 0===e||e.focus())}),[n]),e.useEffect((()=>{o.current=!0}),[]),"divider"===t.type)return e.createElement("div",{className:"maxio-action-list__divider",role:"separator","aria-hidden":"true"});const{leadingIconName:c,trailingIconName:m,label:d,description:u,link:p}=t;return e.createElement("a",{"aria-labelledby":s,...p,className:"maxio-action-list__content",tabIndex:n?0:-1,ref:l,role:i},c&&e.createElement(r,{variant:c,className:"maxio-action-list__leading-icon"}),e.createElement("span",{className:"maxio-action-list__label",id:s},d),u&&e.createElement("span",{className:"maxio-action-list__description"},u),m&&e.createElement(r,{variant:m,className:"maxio-action-list__trailing-icon"}))},o=(e,t,a)=>0===e?e:1===e&&"divider"===t[e-1].type?a||e:"divider"===t[e-1].type?o(e-1,t,a||e):e-1,s=({items:a,isShadowed:n=!0,itemProps:i={},...r})=>{const s=t("maxio-action-list",{"maxio-action-list--shadow":n}),[c,m]=e.useState((()=>a.findIndex((e=>"divider"!==e.type))));return 0===a.length?null:e.createElement("div",{className:s,onKeyDown:e=>{if("Space"===e.code||"Enter"===e.code){const e=a[c];e&&"divider"!==e.type&&window.open(e.link.href,e.link.target||"_self")}"ArrowUp"===e.code&&(e.preventDefault(),m((e=>o(e,a)))),"ArrowDown"===e.code&&(e.preventDefault(),m((e=>((e,t)=>{const a=t.findIndex(((t,a)=>"divider"!==t.type&&a>e));return-1===a?e:a})(e,a))))},role:"listbox",...r},a.map(((t,a)=>e.createElement(l,{item:t,key:`listbox-${t.id}`,isSelected:a===c,...i}))))},c=e.createContext({}),m=({children:t})=>{const[a,n]=e.useState(!1),i=e.useId(),r=e.useId();return e.createElement(c.Provider,{value:{controlsId:i,buttonId:r,isOpen:a,onClose:()=>n(!1),onOpen:()=>n(!0),onToggle:()=>n((e=>!e))}},t)};function d(){const t=e.useContext(c);if(!t||"object"==typeof t&&0===Object.keys(t).length)throw new Error("useMenu hook must be used within a MenuProvider");return t}const u=({children:t})=>{const{isOpen:a,onToggle:n,onClose:i}=d();return e.createElement("details",{open:a,onToggle:n,className:"maxio-action-menu"},"function"==typeof t?t({isOpen:a,onClose:i}):t)},p={click:i.useClick,hover:i.useHover,focus:i.useFocus,dismiss:i.useDismiss},x=(e,t)=>t.map((t=>p[t](e))),v=({placement:t="top",isActive:a=!1,interactions:n=["hover"],floatingElementOffset:r=0,onOverlayUpdate:l,autoHideMs:o})=>{const s=e.useRef(null),{strategy:c,x:m,y:d,context:u,floating:p,reference:v}=i.useFloating({placement:t,open:a,onOpenChange:e=>l(e),middleware:[i.offset(r)]}),{getReferenceProps:h,getFloatingProps:b}=i.useInteractions([...x(u,n),i.useRole(u,{role:"tooltip"})]);e.useEffect((()=>{s.current&&clearTimeout(s.current),a&&o&&(s.current=setTimeout((()=>l(!1)),o))}),[a,o]);return{isActive:a,refs:{floating:p,reference:v},floatingElementCSSPosition:{position:c,top:null!=d?d:0,left:null!=m?m:0},getReferenceProps:h,getFloatingProps:b}};function h(t,a=0){const n=e.useRef((new Date).getTime()),i=e.useRef((new Date).getTime()),[r,l]=e.useState(!1);return e.useEffect((()=>{const e=()=>{n.current=(new Date).getTime(),l(!0)},r=()=>{i.current=(new Date).getTime(),setTimeout((()=>{n.current-i.current<=0&&l(!1)}),a)},o=t&&t.current;return o&&(o.addEventListener("mouseenter",e),o.addEventListener("mouseleave",r)),()=>{o&&(o.removeEventListener("mouseenter",e),o.removeEventListener("mouseleave",r))}}),[t]),r}function b(t=500){const[a,n]=e.useState((()=>{const{innerWidth:e,innerHeight:t}=window;return{windowWitdh:e,windowHeight:t}})),i=e.useRef(null);return e.useEffect((()=>{const e=()=>{const{innerWidth:e,innerHeight:a}=window;clearTimeout(i.current),i.current=setTimeout((()=>{n({windowWitdh:e,windowHeight:a})}),t)};return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}}),[t]),a}const g=({children:a,usePortal:r=!1,isActive:l=!1,placement:o="top",interactions:s=["hover"],role:c="tooltip",renderOverlay:m,floatingElementOffset:d,motionSettings:u={},autoHideMs:p,onOverlayUpdate:x,className:h})=>{const{getReferenceProps:b,getFloatingProps:g,refs:{floating:f,reference:E},floatingElementCSSPosition:_}=v({role:c,isActive:l,onOverlayUpdate:x,autoHideMs:p,floatingElementOffset:d,interactions:s,placement:o}),N=e.createElement(n.AnimatePresence,null,l&&e.createElement(n.motion.div,{ref:f,style:_,...u,...g()},m()));return e.createElement(e.Fragment,null,e.createElement("div",{ref:E,className:t("maxio-inline-flex",h),...b(),"data-testid":"overlay-trigger"},a),r?e.createElement(i.FloatingPortal,{id:"maxio-ui-portal"},N):N)},f=({children:n,loading:i=!1,fullWidth:r=!1,className:l,variant:o="primary",size:s="lg",disabled:c,icon:m,...d})=>{const u=e.useRef(),{buttonProps:p}=a.useButton({...d,isDisabled:c},u),x=t("maxio-button",l,{[`maxio-button--${s}`]:s,[`maxio-button--${o}`]:o,"maxio-button--loading":i,"maxio-button--full-width":r}),v=t("maxio-button__loader",{"maxio-button__loader--white":["primary","secondary","danger"].includes(o)});return e.createElement("button",{...p,className:x},n,!i&&m,i&&e.createElement("div",{className:v}))},E=({children:a,arrowPosition:n,size:i="regular",maxWidth:r=160})=>e.createElement("div",{"data-testid":"tooltip",className:t("maxio-tooltip",`maxio-tooltip--${i}`,{[`maxio-tooltip--arrow-${n}`]:n})},e.createElement("div",{className:"maxio-tooltip__content",style:{maxWidth:r}},a)),_={top:"bottom",right:"left",bottom:"top",left:"right","top-start":"bottom-left","top-end":"bottom-right","right-start":"left-top","right-end":"left-bottom","bottom-start":"top-left","bottom-end":"top-right","left-start":"right-top","left-end":"right-bottom"},N=({children:t,interactions:a=["hover"],placement:n="right",maxWidth:i=160,size:r="regular",renderContent:l,autoHideMs:o,isVisible:s,usePortal:c,className:m,onVisibilityUpdate:d,floatingElementOffset:u=5})=>{const[p,x]=e.useState(!1),v=void 0!==s,h=e.useCallback((e=>{v||x(e),d&&d(e)}),[s]),b=e.useMemo((()=>(e=>{const t=e.startsWith("top")||e.startsWith("bottom")?"Y":"X",a=`translate${t}(${e.startsWith("bottom")||e.startsWith("right")?"-":""}10px)`;return{initial:{opacity:0,visibility:"hidden",transform:a},animate:{opacity:1,visibility:"visible",transform:`translate${t}(0px)`},exit:{opacity:0,visibility:"hidden",transform:a},transition:{ease:[.4,0,.5,1],duration:.2}}})(n)),[n]);return e.createElement(g,{role:"tooltip",className:m,floatingElementOffset:u,motionSettings:b,isActive:v?s:p,onOverlayUpdate:h,autoHideMs:o,usePortal:c,placement:n,interactions:a,renderOverlay:()=>e.createElement(E,{size:r,arrowPosition:_[n],maxWidth:i},l())},t)},y=({children:n,as:i,iconName:l,noPadding:o,className:s,...c})=>{const m=e.useRef(null);let{buttonProps:d}=a.useButton(c,m),{linkProps:u}=a.useLink(c,m);const p="a"===i?u:d,x=i||"button";return e.createElement(x,{className:t("maxio-header-button",s,{"maxio-header-button--no-padding":o}),ref:m,...p},e.createElement("div",{className:"maxio-header-button__content"},n||null,l&&e.createElement(r,{variant:l})))},w=({className:n,innerRef:i,...l})=>{const[o,s]=e.useState(l.value||""),{inputProps:c}=a.useSearchField({value:l.value,"aria-label":"Search",placeholder:"Search",name:"search"},{value:o,setValue:s},i);return e.createElement("div",{className:t("maxio-header-search-field",n)},e.createElement("div",{className:"maxio-header-search-field__button"},e.createElement(r,{variant:"search"})),e.createElement("input",{ref:i,className:"maxio-header-search-field__input",type:"search",...c}))};w.displayName="SearchField";const C=({options:t,innerRef:a,...n})=>e.createElement("div",{className:"maxio-header-search-menu",role:"button"},e.createElement("select",{name:"entity",className:"maxio-header-search-menu__select","aria-label":"Menu",ref:a,...n},t.map((({label:t,value:a})=>e.createElement("option",{key:`${t}-${a}`,value:a},t)))),e.createElement("div",{className:"maxio-header-search-menu__icon"},e.createElement(r,{variant:"chevron-down"})));C.displayName="SearchMenu";const k=({leadingIcon:t,trailingIcon:a,type:n="menu",children:i,leadingIconClassName:l,isTooltipVisible:o=!1})=>e.createElement(e.Fragment,null,e.createElement(N,{usePortal:!0,isVisible:o,renderContent:()=>i,floatingElementOffset:12},t&&e.createElement("span",{className:"maxio-side-nav__icon"},e.createElement(r,{variant:t,className:l}))),e.createElement("span",{className:`maxio-side-nav__${n}-title`,"data-testid":"maxio-sidebar-section-name"},i),a&&e.createElement("span",{className:"maxio-side-nav__menu-chevron"},e.createElement(r,{variant:a}))),I=e.createContext({}),S=()=>e.useContext(I),P=({children:t,isOpen:a,onChange:n,withIcons:i=!0,sections:r,shouldToggleSidebar:l=!0,topDropdownItems:o,collapseBreakpoint:s=800})=>{const[c,m]=e.useState((()=>!l||("boolean"==typeof a?a:"undefined"==typeof window||window.innerWidth>s)));e.useEffect((()=>{"boolean"==typeof a&&(m(a),n&&n(a))}),[a]);const[d,u]=e.useState(r),p=()=>{m(!1),n&&n(!1)},{windowWitdh:x}=b(200);e.useEffect((()=>{!function(e){if(!l)return;e<s&&c&&p()}(x)}),[x]),e.useEffect((()=>{!function(){const e=v();e&&u((t=>t.map((t=>{var a;return{...t,...(null===(a=t.items)||void 0===a?void 0:a.includes(e))&&{isCurrent:!0,isOpen:!0}}}))))}()}),[]);return e.createElement(I.Provider,{value:{sections:d,topDropdownItems:o,onSectionOpen:e=>{const t=v();u((a=>a.map((a=>{var n;if(!c)return{...a,isOpen:a.name===e};const i=a.name===e&&!a.isOpen;return t&&(null===(n=a.items)||void 0===n||n.includes(t)),{...a,isOpen:i}}))))},isOpen:c,onOpen:()=>{m(!0),n&&n(!0)},onClose:p,onToggle:()=>{m((e=>(n&&n(!e),!e)))},withIcons:i}},t);function v(){return d.map((e=>e.items)).flat().filter((e=>null!=e)).find((e=>e.isCurrent))}},O=()=>{const{onOpen:t,topDropdownItems:a,isOpen:n}=S(),{mainItem:i,otherItems:r,actions:l}=a,o=e.useRef(null),c=h(o),m=e=>({id:e.id,label:e.title,leadingIconName:e.icon,link:{href:e.url}}),d=e.useMemo((()=>[...r.map(m),r.length>0&&{type:"divider",id:"item-divider"},...l.map(m)].filter((e=>null!=e))),[l,r]),u=r.length+l.length;return e.createElement(e.Fragment,null,0===u?e.createElement("a",{className:"maxio-side-nav__menu-button maxio-side-nav__menu-button--large",href:i.url,onClick:t},e.createElement("span",{className:"maxio-side-nav__menu-title"},i.title)):e.createElement("details",{className:"maxio-action-menu maxio-side-nav--action-menu"},e.createElement("summary",{onClick:t,className:"maxio-side-nav__menu-button maxio-side-nav__menu-button--large","aria-haspopup":"true",ref:o},i.url?e.createElement(e.Fragment,null,e.createElement(k,{type:"menu",isTooltipVisible:!n&&c,leadingIcon:i.icon,trailingIcon:"chevron-down",leadingIconClassName:"maxio-icon-circle-small-fill maxio-icon--success"},i.title)):e.createElement(k,{type:"menu",trailingIcon:"chevron-down"},i.title)),e.createElement(s,{"aria-label":"Action list",items:d})))},T=({section:t})=>{const{isOpen:a}=S(),n=e.useRef(null),i=h(n);return e.createElement("li",{className:"maxio-side-nav__item","data-key":t.key,"data-testid":"maxio-sidebar-section"},e.createElement("a",{className:"maxio-side-nav__link","aria-current":t.isCurrent?"page":void 0,role:"button",href:t.href,ref:n},e.createElement(k,{isTooltipVisible:i&&!a,type:"menu",leadingIcon:t.icon},t.name)))},R=({section:a})=>{var n;const{onOpen:i,onSectionOpen:r,isOpen:l,withIcons:o}=S();const s=e.useMemo((()=>{var e;const t=null===(e=a.items)||void 0===e?void 0:e.some((e=>e.isCurrent));return l?a.isCurrent&&!t||!a.isOpen&&a.isCurrent:a.isCurrent}),[a,l]),c=e.useRef(null),m=h(c);return a.Component?e.createElement(a.Component,{section:a}):a.href?e.createElement(T,{section:a}):e.createElement("li",{className:t("maxio-side-nav__item",{"maxio-side-nav__item--active":s,"maxio-side-nav__item--icon":o}),"data-testid":"maxio-sidebar-section"},e.createElement("button",{className:"maxio-side-nav__menu-button",ref:c,"aria-expanded":a.isOpen,"aria-current":s?"page":void 0,type:"button",onClick:function(){r(a.name),i()}},e.createElement(k,{type:"menu",isTooltipVisible:!l&&m,leadingIcon:a.icon,trailingIcon:(null===(n=a.items)||void 0===n?void 0:n.length)?"chevron-down":void 0},a.name)),a.isOpen&&l&&e.createElement("ul",{className:"maxio-side-nav__menu"},a.items.map((t=>e.createElement("li",{key:`section-sub-item-${t.name}`,className:"maxio-side-nav__item","data-testid":"maxio-section-item"},e.createElement("a",{className:"maxio-side-nav__link",href:t.href,"aria-current":t.isCurrent?"page":void 0},e.createElement("span",{className:"maxio-side-nav__link-title"},t.name)))))))},V=()=>{const{sections:t}=S();return e.createElement("ul",{className:"maxio-side-nav__items"},t.map((t=>e.createElement(R,{key:`section-${t.name}`,section:t}))))},D=()=>{const{isOpen:a}=S();return e.createElement("nav",{className:t("maxio-side-nav",{"maxio-side-nav--collapsed":!a})},e.createElement("div",null,e.createElement(O,null),e.createElement("hr",{className:"maxio-side-nav__divider"}),e.createElement(V,null)))},F={sm:"h3",md:"h2",lg:"h1"},$=e.createContext({}),M=()=>e.useContext($),B=({children:t,variant:a,withDivider:n,defaultIndex:i=0,onChange:r,index:l})=>{const[o,s]=e.useState((()=>void 0!==l?l:i));e.useEffect((()=>{void 0===l&&s(i),"number"==typeof l&&s(l)}),[i,l]);return e.createElement($.Provider,{value:{currentIndex:o,variant:a,withDivider:n,onChange:e=>{let t;t="function"==typeof e?e(o):e,void 0===l&&s(t),"function"==typeof r&&r(t)}}},t)},L=({disabled:a=!1,value:n=0,isCurrent:i,...r})=>{const{onChange:l,currentIndex:o}=M(),s=t("maxio-tabs__tab",{"maxio-tabs__tab--active":o===n,"maxio-tabs__tab--disabled":a,"maxio-tabs__tab--icon":"icon"===r.type}),c=()=>{l(n)},m={"aria-selected":i,id:`tab-${n}`,"aria-controls":`panel-${n}`,role:"tab",tabIndex:i?0:-1},d=e.useRef(null),u=e.useRef(!1);if(e.useEffect((()=>{i&&u.current&&d.current.focus()}),[i]),e.useEffect((()=>{u.current=!0}),[]),"icon"===r.type){const{icon:t,...a}=r;return e.createElement("div",{className:s,ref:d,onClick:c,...m,...a},e.createElement("div",{className:"maxio-tabs__tab__content"},t))}const{children:p,rightIcon:x,...v}=r;return e.createElement("div",{role:"tab",ref:d,className:s,onClick:c,...m,...v},e.createElement("div",{className:"maxio-tabs__tab__content"},p,x||null))},H=({children:t,value:a,...n})=>{const{currentIndex:i}=M();return e.createElement("div",{...n,...a?{id:`panel-${a}`}:{},role:"tabpanel","aria-labelledby":`tab-${a}`,hidden:i!==a},t)},z=(e,t,a)=>0===e?e:1===e&&t[e-1].disabled?a||e:t[e-1].disabled?z(e-1,t,a||e):e-1,A=({className:a,children:n,disabled:i=!1,external:l=!1,icon:o="arrow-right",noArrow:s=!1,size:c="md",...m})=>{const d=t("maxio-link",{[`maxio-link--${c}`]:!0,"maxio-link--disabled":i},a),u=l?"_blank":"_self";return o=l?"arrow-up-right":o,e.createElement("a",{className:d,target:u,...m},e.createElement("span",{className:"maxio-link__text"},n),!s&&e.createElement(r,{variant:o}))},W=e.createContext({}),q=()=>e.useContext(W),G=({name:t,values:a,onChange:n,disabled:i=!1,invalid:r=!1,children:l})=>{const[o,s]=e.useState(a||[]);return e.createElement(W.Provider,{value:{disabled:i,invalid:r,name:t,values:o,onChange:e=>{let t=[];t=o.includes(e)?o.filter((t=>t!==e)):[...o,e],s(t),n&&n(t)}}},l)},U=({children:a,className:n,...i})=>e.createElement("div",{className:t("maxio-form-helper-text",n),...i},a),K=({children:a,className:n,...i})=>e.createElement("div",{className:t("maxio-form-error",n),...i},e.createElement("i",{className:"maxio-form-error__icon"}),e.createElement("div",{className:"maxio-form-error__text"},a)),Y=({className:n,children:i,label:r,errorMessage:l,helperText:o,disabled:s})=>{const{values:c,onChange:m,name:d}=q(),{descriptionProps:u,errorMessageProps:p,groupProps:x,labelProps:v}=a.useCheckboxGroup({name:d,label:r},{validationState:l?"invalid":"valid",isDisabled:s,isInvalid:!!l,isReadOnly:s,setValue:m,addValue:m,toggleValue:m,removeValue:m,value:c,isSelected:e=>c.includes(e)}),h=t("maxio-checkbox-group",{"maxio-checkbox-group--disabled":s},n),b=o&&!l;return e.createElement("div",{className:h,...x},r&&e.createElement("label",{className:"maxio-checkbox-group__label",...v},r),i,b&&e.createElement(U,{...u},o),l&&e.createElement(K,{...p},l))},j=e.createContext({}),X=()=>e.useContext(j),J=({children:t,onChange:a,value:n,defaultValue:i="",name:r,indent:l,disabled:o})=>{const[s,c]=e.useState(i),[m,d]=e.useState(null);e.useEffect((()=>{c(n)}),[n]);return e.createElement(j.Provider,{value:{onChange:e=>{c(e),a&&a(e)},name:r,value:s,indent:l,disabled:o,lastFocusedValue:m,setLastFocusedValue:d}},t)},Q=({children:t,label:n,errorMessage:i,helperText:r,disabled:l=!1,invalid:o=!1})=>{const{name:s,onChange:c,value:m,lastFocusedValue:d,setLastFocusedValue:u}=X(),{radioGroupProps:p,labelProps:x,descriptionProps:v,errorMessageProps:h}=a.useRadioGroup({name:s,label:n},{name:s,validationState:o?"invalid":"valid",isDisabled:l,isInvalid:o,isReadOnly:l,isRequired:!1,selectedValue:m,lastFocusedValue:d,setLastFocusedValue:u,setSelectedValue:c});return e.createElement(e.Fragment,null,e.createElement("div",{className:"maxio-radio-group",...p},n&&e.createElement("label",{className:"maxio-radio-group__label",...x},n),t,i&&o&&e.createElement(K,{...h},i),r&&!i&&e.createElement(U,{...v},r)))},Z=({children:a,className:n,to:i,...r})=>{const l=i?e.createElement(A,{size:"sm",noArrow:!0,href:i},a):a;return e.createElement("li",{className:t("maxio-breadcrumbs__item",n),...r},l)},ee="Breadcrumbs requires at least one BreadcrumbsItem as children",te='Last BreadcrumbsItem should not have "to" prop. It is the current page.',ae="Breadcrumbs only accepts BreadcrumbsItem as children";exports.ActionList=s,exports.Avatar=({className:a,src:n,alt:i="avatar"})=>e.createElement("img",{className:t("maxio-avatar",a),alt:i,src:n}),exports.Body=({as:a="div",children:n,compact:i=!1,size:r="md",className:l,...o})=>{const s=a,c=t({[`maxio-body-${r}`]:!i,[`maxio-body-${r}-compact`]:i},l);return e.createElement(s,{className:c,...o},n)},exports.BrandLogo=({icon:a,variant:n="default"})=>e.createElement("i",{className:t("maxio-brand-logo",`maxio-brand-logo-${a}`,{[`maxio-brand-logo--${n}`]:"default"!==n})}),exports.Breadcrumbs=({className:a,children:n,...i})=>{const r=e.Children.count(n);if(0===r)throw new Error(ee);const l=e.Children.map(n,((t,a)=>{if(e.isValidElement(t)&&t.type==Z){if(a===r-1&&t.props.to)throw new Error(te);return e.cloneElement(t,{"aria-current":a===r-1?"page":void 0})}throw new Error(ae)}));return e.createElement("nav",{"aria-label":"Breadcrumb",...i},e.createElement("ol",{className:t("maxio-breadcrumbs",a)},l))},exports.BreadcrumbsItem=Z,exports.Button=f,exports.Checkbox=({label:n,error:i=!1,className:r,indeterminate:l,...o})=>{const s=e.useRef(null),{name:c,disabled:m,invalid:d,onChange:u,values:p=[]}=q(),x=!!c,v=m||o.disabled,h=d||i,b=x?p.includes(o.value):o.checked,g=t("maxio-checkbox",{"maxio-checkbox--checked":b,"maxio-checkbox--disabled":v,"maxio-checkbox--error":h,"maxio-checkbox--indeterminate":l},r),{inputProps:f}=a.useCheckboxGroupItem({value:o.value,"aria-label":n},{isDisabled:v,isReadOnly:v,setValue:u,addValue:u,toggleValue:u,removeValue:u,value:p,isSelected:e=>p.includes(e),validationState:i?"invalid":"valid",isInvalid:!!i},s);return e.createElement("label",{className:g},e.createElement("input",{type:"checkbox",role:"checkbox",className:"maxio-checkbox__input",ref:s,...x?f:o}),e.createElement("span",{className:"maxio-checkbox__control"},i&&e.createElement("span",{className:"maxio-checkbox__control-error"})),e.createElement("span",{className:"maxio-checkbox__label"},n))},exports.CheckboxGroup=t=>e.createElement(G,{...t},e.createElement(Y,{...t},t.children)),exports.Code=({as:a="div",children:n,className:i,...r})=>{const l=a,o=t("maxio-code",i);return e.createElement(l,{className:o,...r},n)},exports.Display=({as:a="div",children:n,size:i="md",className:r,...l})=>{const o=a,s=t(`maxio-display-${i}`,r);return e.createElement(o,{className:s,...l},n)},exports.FormErrorMessage=K,exports.FormHelperText=U,exports.HeaderButton=y,exports.HeaderNav=({items:a})=>e.createElement("ul",{className:"maxio-header-nav"},a.map((({label:a,id:n,isActive:i,...r})=>e.createElement("li",{className:"maxio-header-nav__item",key:`header-nav-list-item-${n}`},e.createElement("a",{className:t("maxio-header-nav__link",{"maxio-header-nav__link--active":i}),...r},a))))),exports.HeaderSearchField=w,exports.HeaderSearchInput=({options:t,onSubmit:a})=>{const n=e.useRef(null),i=e.useRef(null);return e.createElement("form",{className:"maxio-header-search-input",onSubmit:function(e){var t,r;e.preventDefault(),a({searchField:(null===(t=n.current)||void 0===t?void 0:t.value)||"",selectField:(null===(r=i.current)||void 0===r?void 0:r.value)||""})}},e.createElement(C,{innerRef:i,options:t}),e.createElement(w,{innerRef:n}),e.createElement(y,{type:"submit","aria-label":"Submit search",iconName:"arrow-right"}))},exports.HeaderSearchMenu=C,exports.Heading=({children:a,size:n="sm",className:i,...r})=>{const l=F[n],o=t(`maxio-heading-${n}`,i);return e.createElement(l,{className:o,...r},a)},exports.Icon=r,exports.IconButton=({icon:t,...a})=>e.createElement(f,{icon:t,className:"maxio-button--icon",...a},null),exports.Label=({as:a="div",children:n,size:i="sm",className:r,...l})=>{const o=a,s=t(`maxio-label-${i}`,r);return e.createElement(o,{className:s,...l},n)},exports.Link=A,exports.Menu=({children:t})=>e.createElement(m,null,e.createElement(u,null,t)),exports.MenuButton=({children:a,iconName:n="chevron-down","aria-label":i})=>{const l=t({"maxio-action-menu__chevron":"chevron-down"===n}),{isOpen:o,buttonId:s,controlsId:c}=d();return e.createElement("summary",{className:"maxio-header-button","aria-haspopup":"true","aria-label":i,"aria-expanded":o,"aria-controls":c,id:s},e.createElement("div",{className:"maxio-header-button__content"},a&&e.createElement("span",null,a),n&&e.createElement(r,{variant:n,className:l})))},exports.MenuList=({items:a,alignItemsEnd:n=!1})=>{const i=t("maxio-action-menu__content",{"maxio-action-menu__content--align-end":n}),{controlsId:r,buttonId:l}=d();return e.createElement("div",{className:i,role:"presentation"},e.createElement(s,{role:"menu",itemProps:{role:"menuitem"},id:r,"aria-labelledby":l,items:a}))},exports.OverlayTrigger=g,exports.ProgressBar=({label:n,helperText:i,size:r="md",variant:l="default",status:o,value:s,maxValue:c=100})=>{const m=a.useId(),d=a.useId(),u=o&&!!n&&!!s&&!("inline"===l),p=i&&!("inline"===l),x=i&&"inline"===l,{progressBarProps:v,labelProps:h}=a.useProgressBar({maxValue:c,value:s,label:n}),b=t("maxio-progress-bar",{"maxio-progress-bar--lg":"lg"===r,"maxio-progress-bar--success":s&&!("inline"===l)&&"success"===o,"maxio-progress-bar--error":s&&!("inline"===l)&&"error"===o,"maxio-progress-bar--indent":"indent"===l,"maxio-progress-bar--inline":"inline"===l,"maxio-progress-bar--indeterminate":void 0===s});return e.createElement("div",{className:b,...v},e.createElement("div",{id:m,className:"maxio-progress-bar__label",...h},n),x&&e.createElement("div",{id:d,className:"maxio-progress-bar__helper-text"},i),e.createElement("div",{className:"maxio-progress-bar__track"},e.createElement("div",{className:"maxio-progress-bar__progress",style:{"--tw-scale-x":`${s}%`}})),u&&e.createElement("div",{className:`maxio-progress-bar__${o}-icon`}),p&&e.createElement("div",{id:d,className:"maxio-progress-bar__helper-text"},i))},exports.Radio=({indent:n=!1,disabled:i=!1,invalid:r=!1,label:l,...o})=>{const s=e.useRef(null),{disabled:c,indent:m,invalid:d,name:u,onChange:p,value:x,setLastFocusedValue:v=(()=>{}),lastFocusedValue:h=null}=X(),b=!!u,g=d||r,f=c||i,E=t("maxio-radio",{"maxio-radio--indent":m||n,"maxio-radio--disabled":f,"maxio-radio--error":g}),{inputProps:_}=a.useRadio({...o,children:l,value:(o.value||"").toString()},{isDisabled:f,isReadOnly:f,isRequired:!1,name:u,validationState:g?"invalid":"valid",isInvalid:g,selectedValue:x,setSelectedValue:p,setLastFocusedValue:v,lastFocusedValue:h},s);return e.createElement("label",{className:E},e.createElement("input",{ref:s,type:"radio",className:"maxio-radio__input",...b?_:o}),e.createElement("span",{className:"maxio-radio__control",tabIndex:0}),e.createElement("span",{className:"maxio-radio__label"},l))},exports.RadioGroup=t=>e.createElement(J,{...t},e.createElement(Q,{...t},t.children)),exports.SideNav=({withIcons:t,shouldToggleSidebar:a,topDropdownItems:n,sections:i,collapseBreakpoint:r=800,isOpen:l,onChange:o})=>e.createElement(P,{isOpen:l,onChange:o,collapseBreakpoint:r,withIcons:t,shouldToggleSidebar:a,topDropdownItems:n,sections:i},e.createElement(D,null)),exports.Tab=L,exports.TabList=({children:a,className:n,ariaLabel:i,...r})=>{const{variant:l,withDivider:o,currentIndex:s,onChange:c}=M(),m=t("maxio-tabs",n,{"maxio-tabs--contained":"contained"===l,"maxio-tabs--divider":o}),d=e.useRef(),u=()=>e.Children.map(a,(e=>e.props));return e.createElement("div",{className:m,role:"tablist","aria-label":i,"aria-orientation":"horizontal",ref:d,onKeyDown:e=>{"ArrowRight"===e.key&&c((e=>((e,t)=>{const a=t.findIndex(((t,a)=>!t.disabled&&a>e));return-1===a?e:a})(e,u()))),"ArrowLeft"===e.key&&c((e=>z(e,u()))),d.current.focus()},...r},e.Children.map(a,((t,a)=>{if(e.isValidElement(t)&&t.type===L)return e.cloneElement(t,{value:a,isCurrent:s===a});throw new Error("You can only pass <Tab /> component as children")})))},exports.TabPanel=H,exports.TabPanels=({children:t})=>{const{currentIndex:a}=M();return e.createElement(e.Fragment,null,e.Children.map(t,((t,n)=>{if(e.isValidElement(t)&&t.type===H)return n===a?e.cloneElement(t,{value:n}):null;throw new Error("You can only pass <TabPanel /> component as children")})))},exports.Tabs=({children:t,variant:a="line",withDivider:n=!1,defaultIndex:i=0,index:r,onChange:l})=>e.createElement(B,{defaultIndex:i,variant:a,withDivider:n,index:r,onChange:l},t),exports.TextInput=({disabled:n=!1,invalid:i=!1,readOnly:l=!1,size:o="md",label:s,helperText:c,errorMessage:m,leftElement:d=null,rightElement:u=null,onChange:p,...x})=>{var v,h;const b=e.useRef(null),{labelProps:g,inputProps:f,descriptionProps:E,errorMessageProps:_}=a.useTextField({...x,label:s,description:c,errorMessage:m,defaultValue:null===(v=x.defaultValue)||void 0===v?void 0:v.toString(),value:null===(h=x.value)||void 0===h?void 0:h.toString()},b),N=t("maxio-text-field",`maxio-text-field--${o}`,{"maxio-text-field--disabled":n,"maxio-text-field--error":i,"maxio-text-field--readonly":l}),y=i&&m;return e.createElement("div",{className:N},e.createElement("label",{className:"maxio-text-field__label",...g},s),e.createElement("div",{className:"maxio-text-field__items"},d&&e.createElement("div",{className:"maxio-text-field__left-element"},d),i&&e.createElement("div",{className:"maxio-text-field__right-element"},e.createElement(r,{variant:"warning-circle-fill"})),e.createElement("input",{ref:b,type:"text",className:"maxio-text-field__input",onChange:p,...f}),u&&!i&&e.createElement("div",{className:"maxio-text-field__right-element"},u)),c&&!y&&e.createElement("div",{className:"maxio-form-helper-text",...E},c),y&&e.createElement("div",{className:"maxio-form-error",..._},e.createElement("div",{className:"maxio-form-error__text"},m)))},exports.Toggle=({defaultChecked:a,checked:n,onChange:i,disabled:r,valueDescription:l,valueDescriptionPosition:o,className:s,name:c,id:m,...d})=>{const u=e.useId(),p="boolean"==typeof a,x=m||u,v="left"===o?"row":"row-reverse",h=l&&o,b=e.useCallback((e=>{if("Enter"===e.code||"Space"===e.code){e.preventDefault();const t=e.currentTarget.checked;p&&(e.currentTarget.checked=!t),i&&i(!t,e)}}),[p,i]),g=d["aria-label"]||(h?void 0:l);return e.createElement("div",{className:t("maxio-toggle",s,{"maxio-toggle--disabled":r}),style:{display:"inline-flex",flexDirection:v},"data-testid":"toggle-container"},h?e.createElement("label",{className:"maxio-toggle__label",htmlFor:x},l):null,e.createElement("div",{className:"maxio-toggle__container"},e.createElement("input",{type:"checkbox",defaultChecked:a,checked:n,onChange:e=>{i&&i(e.target.checked,e)},onKeyDown:b,disabled:r,className:"maxio-toggle__checkbox",id:x,name:c,"aria-label":g}),e.createElement("div",{className:"maxio-toggle__track",role:"switch","aria-checked":n,"aria-hidden":"true"},e.createElement("div",{className:"maxio-toggle__handle"}),e.createElement("span",{className:"maxio-toggle__icon"},e.createElement("i",{className:"maxio-toggle__icon-on"})),e.createElement("span",{className:"maxio-toggle__icon"},e.createElement("i",{className:"maxio-toggle__icon-off"})))))},exports.Tooltip=E,exports.TooltipTrigger=N,exports.useHover=h,exports.useOverlayTrigger=v,exports.useWindowSize=b;
2
2
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@maxio-com/react-ui-components",
3
- "version": "2.4.0",
3
+ "version": "2.6.0",
4
4
  "description": "React UI components",
5
5
  "license": "MIT",
6
6
  "main": "dist/index.js",
@@ -49,5 +49,5 @@
49
49
  "framer-motion": "^7.6.4",
50
50
  "react-aria": "^3.28.0"
51
51
  },
52
- "gitHead": "58eaedf085c191a8df8ebfe463cae98d497e4688"
52
+ "gitHead": "7d256c9ba6741e7aae3a6618fb5519506308184d"
53
53
  }
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import * as React$1 from 'react';
3
- import React__default, { ReactNode, RefObject, FC, MutableRefObject, ElementType, AnchorHTMLAttributes, InputHTMLAttributes } from 'react';
3
+ import React__default, { ReactNode, RefObject, FC, MutableRefObject, ElementType, AnchorHTMLAttributes, InputHTMLAttributes, HTMLAttributes, LiHTMLAttributes } from 'react';
4
4
  import * as _floating_ui_react_dom_interactions from '@floating-ui/react-dom-interactions';
5
5
  import { AnimationProps } from 'framer-motion';
6
6
 
@@ -253,10 +253,6 @@ interface SingleSection {
253
253
  name: string;
254
254
  key: string;
255
255
  isCurrent?: boolean;
256
- options?: {
257
- upgradePlan: boolean;
258
- text: string;
259
- } | null;
260
256
  }
261
257
  interface SingleSectionWithItems extends SingleSection {
262
258
  isOpen?: boolean;
@@ -275,6 +271,8 @@ interface SideNavProviderProps {
275
271
  sections: Section[];
276
272
  collapseBreakpoint?: number;
277
273
  topDropdownItems: SideNavTopDropdown;
274
+ isOpen?: boolean;
275
+ onChange?: (isOpen: boolean) => void;
278
276
  }
279
277
  interface SideNavTopDropdown {
280
278
  mainItem: SideNavTopDropdownItem;
@@ -289,8 +287,8 @@ interface SideNavTopDropdownItem {
289
287
  rel?: string;
290
288
  }
291
289
 
292
- declare const SideNavWrapper: ({ withIcons, shouldToggleSidebar, topDropdownItems, sections, collapseBreakpoint, }: Pick<SideNavProviderProps, 'withIcons' | 'shouldToggleSidebar' | 'topDropdownItems' | 'sections' | 'collapseBreakpoint'>) => JSX.Element;
293
- //# sourceMappingURL=SideNav.d.ts.map
290
+ declare type SideNavWrapperProps = Omit<SideNavProviderProps, 'children'>;
291
+ declare const SideNavWrapper: ({ withIcons, shouldToggleSidebar, topDropdownItems, sections, collapseBreakpoint, isOpen, onChange, }: SideNavWrapperProps) => JSX.Element;
294
292
 
295
293
  interface ProgressBarProps {
296
294
  label: string;
@@ -488,4 +486,15 @@ interface FormHelperTextProps extends React__default.HtmlHTMLAttributes<HTMLDivE
488
486
  declare const FormHelperText: ({ children, className, ...props }: FormHelperTextProps) => JSX.Element;
489
487
  //# sourceMappingURL=FormHelperText.d.ts.map
490
488
 
491
- export { ActionList, Avatar, Body, BrandLogo, Button, Checkbox, CheckboxGroup, Code, Display, FormErrorMessage, FormHelperText, HeaderButton, HeaderNav, SearchField as HeaderSearchField, SearchInput as HeaderSearchInput, SearchMenu as HeaderSearchMenu, Heading, Icon, IconButton, Interactions, Label, Link, Menu, MenuButton, MenuList, OverlayAriaRole, OverlayTrigger, Placement, ProgressBar, Radio, RadioGroup, SideNavWrapper as SideNav, Tab, TabList, TabPanel, TabPanels, Tabs, TextInput, Toggle, Tooltip, TooltipTrigger, useHover, useOverlayTrigger, useWindowSize };
489
+ declare type BreadcrumbsProps = HTMLAttributes<HTMLElement>;
490
+ declare type BreadcrumbsItemProps = {
491
+ to?: string;
492
+ } & LiHTMLAttributes<HTMLLIElement>;
493
+
494
+ declare const Breadcrumbs: React__default.FC<BreadcrumbsProps>;
495
+ //# sourceMappingURL=Breadcrumbs.d.ts.map
496
+
497
+ declare const BreadcrumbsItem: React__default.FC<BreadcrumbsItemProps>;
498
+ //# sourceMappingURL=BreadcrumbsItem.d.ts.map
499
+
500
+ export { ActionList, Avatar, Body, BrandLogo, Breadcrumbs, BreadcrumbsItem, Button, Checkbox, CheckboxGroup, Code, Display, FormErrorMessage, FormHelperText, HeaderButton, HeaderNav, SearchField as HeaderSearchField, SearchInput as HeaderSearchInput, SearchMenu as HeaderSearchMenu, Heading, Icon, IconButton, Interactions, Label, Link, Menu, MenuButton, MenuList, OverlayAriaRole, OverlayTrigger, Placement, ProgressBar, Radio, RadioGroup, SideNavWrapper as SideNav, Tab, TabList, TabPanel, TabPanels, Tabs, TextInput, Toggle, Tooltip, TooltipTrigger, useHover, useOverlayTrigger, useWindowSize };