rich-react-component 0.3.0 → 0.3.2
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/README.md +40 -1
- package/dist/base/ContextMenu.d.ts +87 -0
- package/dist/base/DataGrid.d.ts +27 -1
- package/dist/base/RichComponentBase.d.ts +12 -0
- package/dist/base/contextMenuModel.d.ts +49 -0
- package/dist/base/contextMenuPosition.d.ts +41 -0
- package/dist/base/dataGridResponsive.d.ts +169 -0
- package/dist/base/index.d.ts +15 -0
- package/dist/base/shared/Portal.d.ts +20 -0
- package/dist/base/shared/composeRefs.d.ts +3 -0
- package/dist/base/shared/useElementResize.d.ts +16 -0
- package/dist/base/shared/useIsomorphicLayoutEffect.d.ts +12 -0
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +2261 -1615
- package/dist/index.js.map +1 -1
- package/dist/style.css +1 -1
- package/package.json +72 -72
package/dist/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),m=require("react");function h(...e){return e.filter(Boolean).join(" ")}function sr({htmlFor:e,required:r,className:t,children:s}){return n.jsxs("label",{htmlFor:e,className:h("form-label","rrc-label",t),children:[s,r&&n.jsx("span",{className:"text-danger",children:" *"})]})}function _e({error:e,helpText:r,className:t}){return e?n.jsx("div",{className:h("invalid-feedback d-block","rrc-field__error",t),children:e}):r?n.jsx("div",{className:h("form-text","rrc-field__help",t),children:r}):null}function U({id:e,label:r,required:t,error:s,helpText:a,className:o,children:i}){return n.jsxs("div",{className:h("mb-3","rrc-field",o),children:[r&&n.jsx(sr,{htmlFor:e,required:t,children:r}),i,n.jsx(_e,{error:s,helpText:a})]})}function A({value:e,defaultValue:r,onChange:t}){const s=e!==void 0,a=m.useRef(s);process.env.NODE_ENV!=="production"&&a.current!==s&&console.error("[react-components] A component switched between controlled and uncontrolled `value`. Decide between passing `value` (controlled) or `defaultValue` (uncontrolled) for the lifetime of the component, per the library's controlled/uncontrolled policy.");const[o,i]=m.useState(r),c=s?e:o,l=m.useCallback(d=>{s||i(d),t==null||t(d)},[s,t]);return[c,l]}function re(e){const{id:r,name:t,disabled:s,readOnly:a,required:o,className:i,label:c,placeholder:l,helpText:d,error:u,value:p,defaultValue:f,onChange:b,onBlur:j,type:w="text",maxLength:S,autoFocus:k,inputProps:_,endAdornment:x}=e,[y,v]=A({value:p,defaultValue:f??"",onChange:b}),N=m.useId(),g=r??N,C=n.jsx("input",{id:g,name:t,className:h("form-control","rrc-input",u&&"is-invalid"),disabled:s,readOnly:a,required:o,placeholder:l,maxLength:S,autoFocus:k,value:y,onChange:R=>v(R.target.value),onBlur:j,type:w,..._});return n.jsx(U,{id:g,label:c,required:o,error:u,helpText:d,className:i,children:x?n.jsxs("div",{className:"input-group rrc-input-group",children:[C,x]}):C})}function Zr(e){const{id:r,name:t,disabled:s,readOnly:a,required:o,className:i,label:c,placeholder:l,helpText:d,error:u,value:p,defaultValue:f,onChange:b,onBlur:j,rows:w=3,maxLength:S}=e,[k,_]=A({value:p,defaultValue:f??"",onChange:b}),x=m.useId(),y=r??x;return n.jsx(U,{id:y,label:c,required:o,error:u,helpText:d,className:i,children:n.jsx("textarea",{id:y,name:t,className:h("form-control","rrc-input",u&&"is-invalid"),disabled:s,readOnly:a,required:o,placeholder:l,rows:w,maxLength:S,value:k,onChange:v=>_(v.target.value),onBlur:j})})}function Qr({value:e,defaultValue:r,onChange:t,min:s,max:a,step:o,...i}){const[c,l]=A({value:e,defaultValue:r??null,onChange:t});return n.jsx(re,{...i,value:c===null?"":String(c),onChange:d=>{if(d.trim()===""){l(null);return}const u=Number(d);Number.isNaN(u)||l(u)},inputProps:{inputMode:"decimal",min:s,max:a,step:o}})}function Xr(e){const[r,t]=m.useState(!1);return n.jsx(re,{...e,inputProps:{type:r?"text":"password",autoComplete:"current-password"},endAdornment:n.jsx("button",{type:"button",className:"btn btn-outline-secondary rrc-btn rrc-input-group__action","aria-label":r?"Hide password":"Show password","aria-pressed":r,onClick:()=>t(s=>!s),children:r?"Hide":"Show"})})}function et({id:e,name:r,disabled:t,required:s,className:a,label:o,helpText:i,error:c,accept:l,multiple:d,onChange:u}){const p=m.useId(),f=e??p;return n.jsx(U,{id:f,label:o,required:s,error:c,helpText:i,className:a,children:n.jsx("input",{id:f,name:r,type:"file",className:h("form-control","rrc-input",c&&"is-invalid"),disabled:t,required:s,accept:l,multiple:d,onChange:b=>u==null?void 0:u(b.target.files)})})}function ar({id:e,name:r,disabled:t,required:s,wrapperClassName:a,role:o,label:i,helpText:c,error:l,checked:d,onChange:u,className:p}){const f=m.useId(),b=e??f;return n.jsxs("div",{className:h(a,p),children:[n.jsx("input",{id:b,name:r,type:"checkbox",role:o,className:h("form-check-input","rrc-check",l&&"is-invalid"),disabled:t,required:s,checked:d,onChange:j=>u(j.target.checked)}),i&&n.jsx("label",{htmlFor:b,className:"form-check-label rrc-check__label",children:i}),n.jsx(_e,{error:l,helpText:c})]})}function rt(e){const[r,t]=A({value:e.checked,defaultValue:e.defaultChecked??!1,onChange:e.onChange});return n.jsx(ar,{id:e.id,name:e.name,disabled:e.disabled,required:e.required,className:e.className,wrapperClassName:"form-check mb-3",label:e.label,helpText:e.helpText,error:e.error,checked:r,onChange:t})}function tt(e){const[r,t]=A({value:e.checked,defaultValue:e.defaultChecked??!1,onChange:e.onChange});return n.jsx(ar,{id:e.id,name:e.name,disabled:e.disabled,required:e.required,className:e.className,wrapperClassName:"form-check form-switch mb-3",role:"switch",label:e.label,helpText:e.helpText,error:e.error,checked:r,onChange:t})}function or({id:e,name:r,value:t,label:s,checked:a,disabled:o,className:i,onChange:c}){const l=m.useId(),d=e??l;return n.jsxs("div",{className:h("form-check","rrc-check-row",i),children:[n.jsx("input",{id:d,name:r,type:"radio",className:"form-check-input rrc-check",value:String(t),checked:a,disabled:o,onChange:()=>c==null?void 0:c(t)}),s&&n.jsx("label",{htmlFor:d,className:"form-check-label rrc-check__label",children:s})]})}function nt({options:e,value:r,defaultValue:t,onChange:s,inline:a,id:o,name:i,disabled:c,required:l,className:d,label:u,helpText:p,error:f}){const[b,j]=A({value:r,defaultValue:t??null,onChange:k=>{k!==null&&(s==null||s(k))}}),w=m.useId(),S=i??o??w;return n.jsx(U,{label:u,required:l,error:f,helpText:p,className:d,children:n.jsx("div",{role:"radiogroup","aria-label":u,"aria-required":l,className:h("rrc-radio-group",a&&"d-flex gap-3 rrc-radio-group--inline"),children:e.map(k=>n.jsx(or,{name:S,value:k.value,label:k.label,checked:k.value===b,disabled:c||k.disabled,onChange:_=>j(_)},String(k.value)))})})}function ir({options:e,value:r,defaultValue:t,onChange:s,placeholder:a,loading:o,id:i,name:c,disabled:l,readOnly:d,required:u,className:p,label:f,helpText:b,error:j}){const[w,S]=A({value:r,defaultValue:t??null,onChange:s}),k=m.useId(),_=i??k;return n.jsx(U,{id:_,label:f,required:u,error:j,helpText:b,className:p,children:n.jsxs("select",{id:_,name:c,className:h("form-select","rrc-select",j&&"is-invalid"),disabled:l||d||o,required:u,value:w===null?"":String(w),onChange:x=>{const y=x.target.value;if(y===""){S(null);return}const v=e.find(N=>String(N.value)===y);S(v?v.value:null)},children:[o&&n.jsx("option",{value:"",children:"Loading…"}),!o&&a&&n.jsx("option",{value:"",children:a}),e.map(x=>n.jsx("option",{value:String(x.value),disabled:x.disabled,children:x.label},String(x.value)))]})})}function be(e,r){m.useEffect(()=>{if(!e)return;function t(s){s.key==="Escape"&&r()}return document.addEventListener("keydown",t),()=>document.removeEventListener("keydown",t)},[e,r])}function Z({open:e,onClose:r,anchorRef:t,className:s,role:a,children:o}){const i=m.useRef(null);return be(e,r),m.useEffect(()=>{if(!e)return;function c(l){var u,p;const d=l.target;(u=i.current)!=null&&u.contains(d)||(p=t.current)!=null&&p.contains(d)||r()}return document.addEventListener("mousedown",c),()=>document.removeEventListener("mousedown",c)},[e,r,t]),e?n.jsx("div",{ref:i,className:h("show","rrc-popup",s),role:a,children:o}):null}function ve({itemCount:e,isOpen:r,onSelect:t,onClose:s}){const[a,o]=m.useState(-1);m.useEffect(()=>{r||o(-1)},[r]),be(r,s);const i=m.useCallback(c=>{if(!r){(c.key==="ArrowDown"||c.key==="Enter")&&c.preventDefault();return}switch(c.key){case"ArrowDown":c.preventDefault(),o(l=>e===0?-1:(l+1)%e);break;case"ArrowUp":c.preventDefault(),o(l=>e===0?-1:(l-1+e)%e);break;case"Home":c.preventDefault(),o(e===0?-1:0);break;case"End":c.preventDefault(),o(e===0?-1:e-1);break;case"Enter":a>=0&&(c.preventDefault(),t(a));break}},[r,e,a,t]);return{activeIndex:a,setActiveIndex:o,handleKeyDown:i}}function lr({options:e,values:r,defaultValues:t,onChange:s,loading:a,emptyText:o="No options",id:i,name:c,disabled:l,readOnly:d,required:u,className:p,label:f,placeholder:b="Select...",helpText:j,error:w}){const[S,k]=A({value:r,defaultValue:t??[],onChange:s}),[_,x]=m.useState(!1),y=m.useRef(null),v=m.useId(),N=i??v,g=new Set(S),C=m.useCallback(()=>x(!1),[]),R=m.useCallback(E=>{const $=e[E];if(!$||$.disabled)return;const T=g.has($.value)?S.filter(G=>G!==$.value):[...S,$.value];k(T)},[e,S,g,k]),{activeIndex:V,setActiveIndex:B,handleKeyDown:H}=ve({itemCount:e.length,isOpen:_,onSelect:R,onClose:C}),D=e.filter(E=>g.has(E.value)).map(E=>E.label).join(", ");return n.jsx(U,{id:N,label:f,required:u,error:w,helpText:j,className:p,children:n.jsxs("div",{className:"position-relative",children:[n.jsx("button",{ref:y,id:N,type:"button",name:c,className:h("form-select text-start","rrc-select","rrc-select__trigger",w&&"is-invalid"),disabled:l||d,"aria-haspopup":"listbox","aria-expanded":_,onClick:()=>x(E=>!E),onKeyDown:H,children:D||n.jsx("span",{className:"text-body-secondary",children:b})}),n.jsx(Z,{open:_,onClose:C,anchorRef:y,className:"dropdown-menu w-100 rrc-menu rrc-select__menu",role:"listbox",children:a?n.jsx("div",{className:"px-3 py-2 text-body-secondary",children:"Loading…"}):e.length===0?n.jsx("div",{className:"px-3 py-2 text-body-secondary",children:o}):e.map((E,$)=>n.jsxs("div",{role:"option","aria-selected":g.has(E.value),className:h("dropdown-item d-flex align-items-center gap-2",$===V&&"active",E.disabled&&"disabled"),onMouseEnter:()=>B($),onMouseDown:T=>{T.preventDefault(),E.disabled||R($)},children:[n.jsx("input",{type:"checkbox",className:"form-check-input m-0",checked:g.has(E.value),readOnly:!0,tabIndex:-1}),E.label]},String(E.value)))})]})})}function Y(e){if(!e)return"";const r=e.getFullYear(),t=String(e.getMonth()+1).padStart(2,"0"),s=String(e.getDate()).padStart(2,"0");return`${r}-${t}-${s}`}function Ce(e){if(!e)return null;const r=e.split("-").map(Number),[t,s,a]=r;return!t||!s||!a?null:new Date(t,s-1,a)}function cr({value:e,defaultValue:r,onChange:t,min:s,max:a,...o}){const[i,c]=A({value:e,defaultValue:r??null,onChange:t});return n.jsx(re,{...o,value:Y(i),onChange:l=>c(Ce(l)),inputProps:{type:"date",min:s?Y(s):void 0,max:a?Y(a):void 0}})}function Ie(e){if(!e)return"";const r=String(e.getHours()).padStart(2,"0"),t=String(e.getMinutes()).padStart(2,"0");return`${r}:${t}`}function Ee(e){if(!e)return null;const[r,t]=e.split(":").map(Number);return r===void 0||t===void 0||Number.isNaN(r)||Number.isNaN(t)?null:new Date(1970,0,1,r,t,0,0)}function st({value:e,defaultValue:r,onChange:t,step:s,...a}){const[o,i]=A({value:e,defaultValue:r??null,onChange:t});return n.jsx(re,{...a,value:Ie(o),onChange:c=>i(Ee(c)),inputProps:{type:"time",step:s}})}function Ze(e,r){const t=Ce(e);if(!t)return null;const s=Ee(r||"00:00");return s&&t.setHours(s.getHours(),s.getMinutes(),0,0),t}function at({value:e,defaultValue:r,onChange:t,min:s,max:a,id:o,name:i,disabled:c,readOnly:l,required:d,className:u,label:p,helpText:f,error:b}){const[j,w]=A({value:e,defaultValue:r??null,onChange:t}),S=m.useId(),k=o??S,_=Y(j),x=Ie(j);return n.jsx(U,{id:k,label:p,required:d,error:b,helpText:f,className:u,children:n.jsxs("div",{className:"d-flex gap-2",children:[n.jsx("input",{id:k,name:i?`${i}-date`:void 0,type:"date",className:h("form-control","rrc-input",b&&"is-invalid"),disabled:c,readOnly:l,required:d,min:s?Y(s):void 0,max:a?Y(a):void 0,value:_,onChange:y=>w(Ze(y.target.value,x))}),n.jsx("input",{name:i?`${i}-time`:void 0,type:"time",className:h("form-control","rrc-input",b&&"is-invalid"),disabled:c,readOnly:l,required:d,value:x,onChange:y=>w(Ze(_||Y(new Date),y.target.value))})]})})}function dr({options:e,value:r,defaultValue:t,onChange:s,loading:a,emptyText:o="No options",id:i,name:c,disabled:l,readOnly:d,required:u,className:p,label:f,placeholder:b="Select...",helpText:j,error:w}){const[S,k]=A({value:r,defaultValue:t??null,onChange:s}),[_,x]=m.useState(!1),y=m.useRef(null),v=m.useId(),N=i??v,g=e.find(L=>L.value===S)??null,C=m.useCallback(()=>x(!1),[]),R=m.useCallback(L=>{const D=e[L];!D||D.disabled||(k(D.value),C())},[e,k,C]),{activeIndex:V,setActiveIndex:B,handleKeyDown:H}=ve({itemCount:e.length,isOpen:_,onSelect:R,onClose:C});return n.jsx(U,{id:N,label:f,required:u,error:w,helpText:j,className:p,children:n.jsxs("div",{className:"position-relative",children:[n.jsx("button",{ref:y,id:N,type:"button",name:c,className:h("form-select text-start","rrc-select","rrc-select__trigger",w&&"is-invalid"),disabled:l||d,"aria-haspopup":"listbox","aria-expanded":_,onClick:()=>x(L=>!L),onKeyDown:H,children:g?g.label:n.jsx("span",{className:"text-body-secondary",children:b})}),n.jsx(Z,{open:_,onClose:C,anchorRef:y,className:"dropdown-menu w-100 rrc-menu rrc-select__menu",role:"listbox",children:a?n.jsx("div",{className:"px-3 py-2 text-body-secondary",children:"Loading…"}):e.length===0?n.jsx("div",{className:"px-3 py-2 text-body-secondary",children:o}):e.map((L,D)=>n.jsx("div",{role:"option","aria-selected":L.value===S,className:h("dropdown-item","rrc-menu__item",D===V&&"active",L.disabled&&"disabled"),onMouseEnter:()=>B(D),onMouseDown:E=>{E.preventDefault(),L.disabled||R(D)},children:L.label},String(L.value)))})]})})}function ot(e,r){return r?e.label.toLowerCase().includes(r.toLowerCase()):!0}function ur({options:e,value:r,defaultValue:t,onChange:s,inputValue:a,onInputValueChange:o,loading:i,emptyText:c="No results",filter:l,id:d,name:u,disabled:p,readOnly:f,required:b,className:j,label:w,placeholder:S,helpText:k,error:_}){const[x,y]=A({value:r,defaultValue:t??null,onChange:s}),v=e.find(P=>P.value===x)??null,[N,g]=A({value:a,defaultValue:(v==null?void 0:v.label)??"",onChange:o}),[C,R]=m.useState(!1),V=m.useRef(null),B=m.useId(),H=d??B,L=l??ot,D=e.filter(P=>L(P,N)),E=m.useCallback(()=>R(!1),[]),$=m.useCallback(P=>{const F=D[P];!F||F.disabled||(y(F.value),g(F.label),E())},[D,y,g,E]),{activeIndex:T,setActiveIndex:G,handleKeyDown:q}=ve({itemCount:D.length,isOpen:C,onSelect:$,onClose:E});return n.jsx(U,{id:H,label:w,required:b,error:_,helpText:k,className:j,children:n.jsxs("div",{className:"position-relative",children:[n.jsx("input",{ref:V,id:H,name:u,type:"text",className:h("form-control","rrc-input",_&&"is-invalid"),disabled:p,readOnly:f,required:b,placeholder:S,autoComplete:"off",role:"combobox","aria-expanded":C,"aria-haspopup":"listbox",value:N,onFocus:()=>R(!0),onChange:P=>{const F=P.target.value;g(F),R(!0),x!==null&&y(null)},onKeyDown:q}),n.jsx(Z,{open:C,onClose:E,anchorRef:V,className:"dropdown-menu w-100 rrc-menu rrc-select__menu",role:"listbox",children:i?n.jsx("div",{className:"px-3 py-2 text-body-secondary",children:"Loading…"}):D.length===0?n.jsx("div",{className:"px-3 py-2 text-body-secondary",children:c}):D.map((P,F)=>n.jsx("div",{role:"option","aria-selected":P.value===x,className:h("dropdown-item","rrc-menu__item",F===T&&"active",P.disabled&&"disabled"),onMouseEnter:()=>G(F),onMouseDown:I=>{I.preventDefault(),P.disabled||$(F)},children:P.label},String(P.value)))})]})})}function it(e){return n.jsx(U,{...e})}function mr({open:e,onClose:r,title:t,children:s,footer:a,className:o}){return be(e,r),e?n.jsxs(n.Fragment,{children:[n.jsx("div",{className:"modal d-block rrc-modal",tabIndex:-1,role:"dialog","aria-modal":"true",children:n.jsx("div",{className:h("modal-dialog","rrc-modal__dialog",o),role:"document",children:n.jsxs("div",{className:"modal-content rrc-modal__content",children:[n.jsxs("div",{className:"modal-header rrc-modal__header",children:[t&&n.jsx("h5",{className:"modal-title",children:t}),n.jsx("button",{type:"button",className:"btn-close","aria-label":"Close",onClick:r})]}),n.jsx("div",{className:"modal-body rrc-modal__body",children:s}),a&&n.jsx("div",{className:"modal-footer rrc-modal__footer",children:a})]})})}),n.jsx("div",{className:"modal-backdrop show rrc-modal__backdrop",onClick:r})]}):null}function lt(e,r,t){const s=[],a=Math.max(1,e-t),o=Math.min(r,e+t);a>1&&(s.push(1),a>2&&s.push("ellipsis"));for(let i=a;i<=o;i++)s.push(i);return o<r&&(o<r-1&&s.push("ellipsis"),s.push(r)),s}function fr({currentPage:e,pageSize:r,totalItems:t,onPageChange:s,siblingCount:a=1,className:o}){const i=Math.max(1,Math.ceil(t/r)),c=lt(e,i,a);return n.jsx("nav",{"aria-label":"Pagination",className:o,children:n.jsxs("ul",{className:"pagination mb-0 rrc-pagination",children:[n.jsx("li",{className:h("page-item",e<=1&&"disabled"),children:n.jsx("button",{type:"button",className:"page-link",disabled:e<=1,onClick:()=>s(e-1),children:"Previous"})}),c.map((l,d)=>l==="ellipsis"?n.jsx("li",{className:"page-item disabled",children:n.jsx("span",{className:"page-link",children:"…"})},`ellipsis-${d}`):n.jsx("li",{className:h("page-item",l===e&&"active"),children:n.jsx("button",{type:"button",className:"page-link","aria-current":l===e?"page":void 0,onClick:()=>s(l),children:l})},l)),n.jsx("li",{className:h("page-item",e>=i&&"disabled"),children:n.jsx("button",{type:"button",className:"page-link",disabled:e>=i,onClick:()=>s(e+1),children:"Next"})})]})})}const pr={text:e=>e==null?"":String(e),boolean:e=>e?"Yes":"No",date:e=>{if(e==null||e==="")return"";const r=e instanceof Date?e:new Date(String(e));return Number.isNaN(r.getTime())?String(e):r.toLocaleDateString()},currency:e=>{const r=Number(e);return Number.isFinite(r)?r.toLocaleString(void 0,{style:"currency",currency:"USD"}):String(e??"")}};function ct(e,r){return!e||e.key!==r?{key:r,direction:"asc"}:e.direction==="asc"?{key:r,direction:"desc"}:null}function Qe(e){return e.key??e.field??e.header}function dt(e,r){const t=e.field??e.key;return t?r[t]:void 0}function ut(e,r){if(e.render)return e.render(r);const t=dt(e,r);return e.formatter?e.formatter(t,r):e.format?pr[e.format](t):t==null?"":String(t)}function Xe(e){return e&&`text-${e}`}function hr({columns:e,rows:r,rowKey:t,loading:s,error:a,emptyText:o="No data",className:i,selectedRowKeys:c,onSelectionChange:l,sort:d,onSortChange:u,page:p,pageSize:f,totalCount:b,onPageChange:j}){const w=!!l,S=new Set(c??[]),k=p!==void 0&&f!==void 0&&b!==void 0,_=k?Math.max(1,Math.ceil(b/f)):1;function x(){l&&(S.size===r.length?l([]):l(r.map(t)))}function y(v){if(!l)return;const N=new Set(S);N.has(v)?N.delete(v):N.add(v),l(Array.from(N))}return n.jsxs("div",{className:h("table-responsive","rrc-data-grid",i),children:[n.jsxs("table",{className:"table table-hover align-middle rrc-data-grid__table",children:[n.jsx("thead",{children:n.jsxs("tr",{children:[w&&n.jsx("th",{style:{width:"2.5rem"},children:n.jsx("input",{type:"checkbox",className:"form-check-input",checked:r.length>0&&S.size===r.length,onChange:x,"aria-label":"Select all rows"})}),e.map(v=>{const N=Qe(v);return n.jsxs("th",{className:Xe(v.headerAlign??v.align),style:{width:v.width,minWidth:v.minWidth,maxWidth:v.maxWidth},role:v.sortable?"button":void 0,onClick:v.sortable&&u?()=>u(ct(d,N)):void 0,children:[v.header,v.sortable&&(d==null?void 0:d.key)===N&&n.jsxs("span",{"aria-hidden":"true",children:[" ",d.direction==="asc"?"▲":"▼"]})]},N)})]})}),n.jsx("tbody",{children:s?n.jsx("tr",{children:n.jsx("td",{colSpan:e.length+(w?1:0),className:"text-center text-body-secondary py-4",children:"Loading…"})}):a?n.jsx("tr",{children:n.jsx("td",{colSpan:e.length+(w?1:0),className:"text-center text-danger py-4",children:a})}):r.length===0?n.jsx("tr",{children:n.jsx("td",{colSpan:e.length+(w?1:0),className:"text-center text-body-secondary py-4",children:o})}):r.map(v=>{const N=t(v);return n.jsxs("tr",{children:[w&&n.jsx("td",{children:n.jsx("input",{type:"checkbox",className:"form-check-input",checked:S.has(N),onChange:()=>y(N),"aria-label":"Select row"})}),e.map(g=>n.jsx("td",{className:Xe(g.align),children:ut(g,v)},Qe(g)))]},N)})})]}),k&&n.jsxs("div",{className:"d-flex justify-content-between align-items-center mt-2 rrc-data-grid__footer",children:[n.jsxs("span",{className:"text-body-secondary small",children:["Page ",p," of ",_," (",b," rows)"]}),n.jsx(fr,{currentPage:p,pageSize:f,totalItems:b,onPageChange:j})]})]})}function br({size:e="md",variant:r,className:t,label:s="Loading..."}){return n.jsx("span",{className:h("spinner-border","rrc-spinner",e==="sm"&&"spinner-border-sm",r&&`text-${r}`,t),role:"status",children:n.jsx("span",{className:"visually-hidden",children:s})})}function le({variant:e="primary",size:r,disabled:t,loading:s,type:a="button",className:o,children:i,onClick:c,...l}){const d=t||s;return n.jsxs("button",{type:a,className:h("btn",`btn-${e}`,r&&`btn-${r}`,"rrc-btn",`rrc-btn--${e}`,o),disabled:d,"aria-busy":s||void 0,onClick:d?void 0:c,...l,children:[s&&n.jsx(br,{size:"sm",className:"me-2",label:""}),i]})}function Re({variant:e="info",dismissible:r,onDismiss:t,className:s,children:a}){return n.jsxs("div",{className:h("alert",`alert-${e}`,r&&"alert-dismissible","rrc-alert",`rrc-alert--${e}`,s),role:"alert",children:[a,r&&n.jsx("button",{type:"button",className:"btn-close","aria-label":"Close",onClick:t})]})}const vr=m.createContext(null),mt=4e3;function ft({children:e}){const[r,t]=m.useState([]),s=m.useRef(0),a=m.useRef(new Map);m.useEffect(()=>{const l=a.current;return()=>{l.forEach(clearTimeout),l.clear()}},[]);const o=m.useCallback(l=>{const d=a.current.get(l);d&&(clearTimeout(d),a.current.delete(l)),t(u=>u.filter(p=>p.id!==l))},[]),i=m.useCallback((l,d)=>{const u=s.current++,p=(d==null?void 0:d.variant)??"info",f=(d==null?void 0:d.duration)??mt;return t(b=>[...b,{id:u,message:l,variant:p}]),f>0&&a.current.set(u,setTimeout(()=>o(u),f)),u},[o]),c=m.useMemo(()=>({show:i,dismiss:o,success:(l,d)=>i(l,{...d,variant:"success"}),error:(l,d)=>i(l,{...d,variant:"danger"}),info:(l,d)=>i(l,{...d,variant:"info"}),warning:(l,d)=>i(l,{...d,variant:"warning"})}),[i,o]);return n.jsxs(vr.Provider,{value:c,children:[e,n.jsx("div",{className:"toast-container position-fixed bottom-0 end-0 p-3 rrc-toast-container",style:{zIndex:1090},children:r.map(l=>n.jsx(Re,{variant:l.variant,dismissible:!0,onDismiss:()=>o(l.id),className:"shadow-sm",children:l.message},l.id))})]})}function pt(){const e=m.useContext(vr);if(!e)throw new Error("useToast must be used within a ToastProvider");return e}const xr=m.createContext(null);function ht({children:e}){const[r,t]=m.useState(null),s=m.useCallback(o=>new Promise(i=>{t({...o,resolve:i})}),[]),a=m.useCallback(o=>{r==null||r.resolve(o),t(null)},[r]);return n.jsxs(xr.Provider,{value:s,children:[e,n.jsx(mr,{open:r!==null,onClose:()=>a(!1),title:(r==null?void 0:r.title)??"Confirm",footer:n.jsxs(n.Fragment,{children:[n.jsx(le,{variant:"outline-secondary",onClick:()=>a(!1),children:(r==null?void 0:r.cancelLabel)??"Cancel"}),n.jsx(le,{variant:(r==null?void 0:r.confirmVariant)??"danger",onClick:()=>a(!0),children:(r==null?void 0:r.confirmLabel)??"Confirm"})]}),children:r==null?void 0:r.message})]})}function bt(){const e=m.useContext(xr);if(!e)throw new Error("useConfirm must be used within a ConfirmProvider");return e}function gr({variant:e="primary",appearance:r="solid",pill:t,className:s,children:a}){return n.jsx("span",{className:h("badge",r==="solid"&&`bg-${e}`,t&&"rounded-pill","rrc-badge",`rrc-badge--${e}`,`rrc-badge--${r}`,s),children:a})}const vt={sm:"0.875em",lg:"1.5em",xl:"2em"};function xe({name:e,size:r,className:t,label:s}){return n.jsx("i",{className:h(e,"rrc-icon",t),style:r?{fontSize:vt[r]}:void 0,role:s?"img":void 0,"aria-label":s,"aria-hidden":s?void 0:!0})}function xt(e){switch(e){case"pill":return"nav-pills";case"underline":return"nav-underline";case"card":return"nav-tabs card-header-tabs";default:return"nav-tabs"}}const gt={sm:"small",lg:"fs-5"};function yt({items:e,activeKey:r,defaultActiveKey:t,onChange:s,variant:a="default",orientation:o="horizontal",size:i,stretch:c,className:l}){var y;const[d,u]=A({value:r,defaultValue:t??((y=e[0])==null?void 0:y.key)??"",onChange:s}),p=e.find(v=>v.key===d),f=a==="button",b=o==="vertical",j=m.useRef([]);function w(v,N){var C;const g=e[v];g&&(u(g.key),N&&((C=j.current[v])==null||C.focus()))}function S(v,N){var C;if(e.length===0)return v;let g=v;for(let R=0;R<e.length;R++)if(g=(g+N+e.length)%e.length,!((C=e[g])!=null&&C.disabled))return g;return v}function k(v){var R;const N=e.findIndex(V=>V.key===d),g=b?"ArrowDown":"ArrowRight",C=b?"ArrowUp":"ArrowLeft";if(v.key===g)v.preventDefault(),w(S(N,1),!0);else if(v.key===C)v.preventDefault(),w(S(N,-1),!0);else if(v.key==="Home"){v.preventDefault();const V=e.findIndex(B=>!B.disabled);V>=0&&w(V,!0)}else if(v.key==="End"){v.preventDefault();for(let V=e.length-1;V>=0;V--)if(!((R=e[V])!=null&&R.disabled)){w(V,!0);break}}}const _=n.jsx("div",{className:h(f?"btn-group":"nav","rrc-tabs__list",`rrc-tabs__list--${a}`,!f&&xt(a),!f&&b&&"flex-column",!f&&c&&"nav-fill",!f&&i&>[i]),role:"tablist","aria-orientation":o,onKeyDown:k,children:e.map((v,N)=>{const g=v.key===d,C=n.jsxs(n.Fragment,{children:[v.icon&&n.jsx(xe,{name:v.icon,size:"sm",className:"me-1"}),v.label,v.badge!=null&&n.jsx(gr,{variant:g&&!f?"primary":"secondary",appearance:"light",pill:!0,className:"ms-2",children:v.badge})]}),R=n.jsx("button",{ref:V=>{j.current[N]=V},type:"button",id:`tab-${v.key}`,className:h(f?h("btn",i?`btn-${i}`:"btn-sm",g?"btn-primary":"btn-outline-primary"):h("nav-link","rrc-tabs__link",g&&"active")),role:"tab","aria-selected":g,"aria-controls":`tabpanel-${v.key}`,tabIndex:g?0:-1,disabled:v.disabled,onClick:()=>w(N,!1),children:C},v.key);return f?R:n.jsx("div",{className:"nav-item",role:"presentation",children:R},v.key)})}),x=(p==null?void 0:p.content)!=null&&n.jsx("div",{id:`tabpanel-${p.key}`,className:h("tab-content","rrc-tabs__panel",!b&&"pt-3"),role:"tabpanel","aria-labelledby":`tab-${p.key}`,children:p.content});return b?n.jsxs("div",{className:h("d-flex align-items-start gap-3","rrc-tabs","rrc-tabs--vertical",l),children:[_,x&&n.jsx("div",{className:"flex-grow-1",children:x})]}):n.jsxs("div",{className:h("rrc-tabs",l),children:[_,x]})}function jt({items:e,multiple:r=!1,openKeys:t,defaultOpenKeys:s,onChange:a,className:o}){const[i,c]=A({value:t,defaultValue:s??[],onChange:a}),l=new Set(i);function d(u){l.has(u)?c(i.filter(p=>p!==u)):c(r?[...i,u]:[u])}return n.jsx("div",{className:h("accordion","rrc-accordion",o),children:e.map(u=>{const p=l.has(u.key);return n.jsxs("div",{className:"accordion-item rrc-accordion__item",children:[n.jsx("h2",{className:"accordion-header",children:n.jsx("button",{type:"button",className:h("accordion-button","rrc-accordion__button",!p&&"collapsed"),"aria-expanded":p,disabled:u.disabled,onClick:()=>d(u.key),children:u.header})}),p&&n.jsx("div",{className:"accordion-collapse",children:n.jsx("div",{className:"accordion-body rrc-accordion__body",children:u.content})})]},u.key)})})}function Ae({content:e,children:r,placement:t="top",className:s,wrapperClassName:a}){const[o,i]=m.useState(!1),c=m.useRef(null),l=m.useId();return n.jsxs("span",{ref:c,className:h("position-relative",a??"d-inline-block"),onMouseEnter:()=>i(!0),onMouseLeave:()=>i(!1),onFocus:()=>i(!0),onBlur:()=>i(!1),"aria-describedby":o?l:void 0,children:[r,n.jsx(Z,{open:o,onClose:()=>i(!1),anchorRef:c,className:h("tooltip show",`bs-tooltip-${t}`,"position-absolute","w-auto","rrc-tooltip",s),children:n.jsx("span",{id:l,role:"tooltip",className:"tooltip-inner",children:e})})]})}function Nt({title:e,content:r,children:t,placement:s="bottom",className:a}){const[o,i]=m.useState(!1),c=m.useRef(null);return n.jsxs("span",{ref:c,className:"position-relative d-inline-block",onClick:()=>i(l=>!l),children:[t,n.jsxs(Z,{open:o,onClose:()=>i(!1),anchorRef:c,className:h("popover show",`bs-popover-${s}`,"position-absolute","w-auto","rrc-popover",a),children:[e&&n.jsx("h3",{className:"popover-header rrc-popover__header",children:e}),n.jsx("div",{className:"popover-body rrc-popover__body",children:r})]})]})}function ie({width:e="100%",height:r="1rem",circle:t,className:s}){return n.jsx("span",{className:h("placeholder-glow d-inline-block","rrc-skeleton",s),style:{width:e,height:r},"aria-hidden":"true",children:n.jsx("span",{className:h("placeholder w-100 h-100 d-block",t&&"rounded-circle")})})}function De({direction:e="column",gap:r=2,align:t,justify:s,wrap:a,className:o,children:i}){return n.jsx("div",{className:h("d-flex","rrc-stack",e==="row"?"flex-row":"flex-column",`gap-${r}`,t&&`align-items-${t}`,s&&`justify-content-${s}`,a&&"flex-wrap",o),children:i})}const kt={xs:"0.75rem",sm:"0.875rem",md:"1rem",lg:"1.25rem",xl:"1.5rem"},St={normal:"fw-normal",medium:"fw-medium",semibold:"fw-semibold",bold:"fw-bold"},wt={default:void 0,muted:"text-body-secondary",primary:"text-primary",success:"text-success",danger:"text-danger",warning:"text-warning",info:"text-info"};function J({as:e,size:r="md",weight:t,tone:s="default",align:a,truncate:o,wrap:i=!0,className:c,children:l}){const d=e??"span";return n.jsx(d,{className:h("rrc-text",t&&St[t],wt[s],a&&`text-${a}`,o&&"text-truncate",!i&&!o&&"text-nowrap",c),style:{fontSize:kt[r]},children:l})}function _t({title:e,subtitle:r,icon:t,avatar:s,actions:a}){return n.jsxs("div",{className:"d-flex align-items-center justify-content-between gap-3 rrc-card__header-row",children:[n.jsxs("div",{className:"d-flex align-items-center gap-3",style:{minWidth:0},children:[s||t&&n.jsx("span",{className:"fs-2 lh-1",children:t}),(e||r)&&n.jsxs("div",{style:{minWidth:0},children:[e&&n.jsx(J,{as:"div",size:"lg",weight:"semibold",truncate:!0,children:e}),r&&n.jsx(J,{as:"div",size:"sm",tone:"muted",truncate:!0,children:r})]})]}),a&&n.jsx("div",{className:"d-flex align-items-center gap-2 flex-shrink-0",children:a})]})}function Ct({title:e,subtitle:r,icon:t,avatar:s,actions:a,header:o,footer:i,loading:c,className:l,children:d}){const p=o??(!!(e||r||t||s||a)?n.jsx(_t,{title:e,subtitle:r,icon:t,avatar:s,actions:a}):void 0);return n.jsxs("div",{className:h("card","rrc-card",l),children:[p&&n.jsx("div",{className:"card-header rrc-card__header",children:p}),n.jsx("div",{className:"card-body rrc-card__body",children:c?n.jsxs(De,{gap:2,children:[n.jsx(ie,{height:"1rem",width:"60%"}),n.jsx(ie,{height:"1rem"}),n.jsx(ie,{height:"1rem",width:"80%"})]}):d}),i&&n.jsx("div",{className:"card-footer rrc-card__footer",children:i})]})}function yr({className:e,vertical:r,label:t}){return r?n.jsx("div",{className:h("vr","rrc-divider",e),role:"separator","aria-orientation":"vertical"}):t?n.jsxs("div",{className:h("d-flex align-items-center gap-2 my-3","rrc-divider","rrc-divider--labelled",e),role:"separator",children:[n.jsx("hr",{className:"flex-grow-1 m-0"}),n.jsx("span",{className:"text-body-secondary small",children:t}),n.jsx("hr",{className:"flex-grow-1 m-0"})]}):n.jsx("hr",{className:h("my-3","rrc-divider",e),role:"separator"})}function It({fluid:e,className:r,children:t}){return n.jsx("div",{className:h(e?"container-fluid":"container","rrc-container",r),children:t})}function Et({className:e,children:r}){return n.jsx("div",{className:h("row","rrc-row",e),children:r})}function Rt({span:e,sm:r,md:t,lg:s,xl:a,className:o,children:i}){return n.jsx("div",{className:h(e?`col-${e}`:"col","rrc-col",r?`col-sm-${r}`:void 0,t?`col-md-${t}`:void 0,s?`col-lg-${s}`:void 0,a?`col-xl-${a}`:void 0,o),children:i})}function jr({items:e,className:r}){return n.jsx("nav",{"aria-label":"breadcrumb",className:h("rrc-breadcrumb",r),children:n.jsx("ol",{className:"breadcrumb mb-0 rrc-breadcrumb__list",children:e.map((t,s)=>{const a=s===e.length-1,o=!a&&(t.href||t.onClick);return n.jsx("li",{className:h("breadcrumb-item",a&&"active"),"aria-current":a?"page":void 0,children:o?n.jsx("a",{href:t.href??"#",onClick:i=>{var c;t.href||i.preventDefault(),(c=t.onClick)==null||c.call(t)},children:t.label}):t.label},s)})})})}function At({items:e,children:r,placement:t="start",className:s}){const[a,o]=m.useState(!1),i=m.useRef(null),c=m.useCallback(()=>o(!1),[]),l=m.useCallback(f=>{var j;const b=e[f];!b||b.disabled||((j=b.onSelect)==null||j.call(b),c())},[e,c]),{activeIndex:d,setActiveIndex:u,handleKeyDown:p}=ve({itemCount:e.length,isOpen:a,onSelect:l,onClose:c});return n.jsxs("span",{ref:i,className:"position-relative d-inline-block",onClick:()=>o(f=>!f),onKeyDown:p,children:[r,n.jsx(Z,{open:a,onClose:c,anchorRef:i,role:"menu",className:h("dropdown-menu show",t==="end"&&"dropdown-menu-end","rrc-menu",s),children:e.map((f,b)=>n.jsx("button",{type:"button",role:"menuitem",className:h("dropdown-item","rrc-menu__item",b===d&&"active",f.disabled&&"disabled",f.danger&&"text-danger"),disabled:f.disabled,onMouseEnter:()=>u(b),onMouseDown:j=>j.preventDefault(),onClick:j=>{j.stopPropagation(),l(b)},children:f.label},f.key))})]})}function Dt({steps:e,currentStep:r,className:t}){return n.jsx("ol",{className:h("d-flex list-unstyled align-items-center","rrc-stepper",t),children:e.map((s,a)=>{const o=a<r?"complete":a===r?"active":"upcoming",i=a===e.length-1;return n.jsxs("li",{className:h("d-flex align-items-center",!i&&"flex-grow-1"),children:[n.jsxs("div",{className:"d-flex align-items-center gap-2",children:[n.jsx("span",{className:h("d-flex align-items-center justify-content-center rounded-circle flex-shrink-0",o==="complete"?"bg-primary text-white":o==="active"?"border border-primary text-primary":"border text-body-secondary"),style:{width:"2rem",height:"2rem"},"aria-current":o==="active"?"step":void 0,children:o==="complete"?"✓":a+1}),n.jsxs("div",{children:[n.jsx("div",{className:h("small fw-semibold",o==="upcoming"&&"text-body-secondary"),children:s.label}),s.description&&n.jsx("div",{className:"small text-body-secondary",children:s.description})]})]}),!i&&n.jsx("hr",{className:"flex-grow-1 mx-2"})]},s.key)})})}function Tt(e){var a,o;const r=e.trim().split(/\s+/),t=((a=r[0])==null?void 0:a[0])??"",s=r.length>1?((o=r[r.length-1])==null?void 0:o[0])??"":"";return(t+s).toUpperCase()}const Mt={sm:"1.75rem",md:"2.5rem",lg:"3.5rem"};function Vt({src:e,name:r,size:t="md",className:s}){const a=Mt[t];return e?n.jsx("img",{src:e,alt:r??"",className:h("rounded-circle","rrc-avatar",s),style:{width:a,height:a,objectFit:"cover"}}):n.jsx("span",{className:h("d-inline-flex align-items-center justify-content-center rounded-circle bg-secondary text-white","rrc-avatar","rrc-avatar--initials",s),style:{width:a,height:a,fontSize:`calc(${a} * 0.4)`},role:r?"img":void 0,"aria-label":r,children:r?Tt(r):null})}function Lt({variant:e="secondary",appearance:r="solid",onRemove:t,className:s,children:a}){return n.jsxs("span",{className:h("badge d-inline-flex align-items-center gap-1",r==="solid"&&`bg-${e}`,"rrc-tag",`rrc-tag--${e}`,`rrc-tag--${r}`,s),children:[a,t&&n.jsx("button",{type:"button",className:"btn-close btn-close-white",style:{fontSize:"0.55rem"},"aria-label":"Remove",onClick:t})]})}function Pt({value:e,defaultValue:r,onChange:t,min:s=0,max:a=100,step:o=1,id:i,name:c,disabled:l,required:d,className:u,label:p,helpText:f,error:b}){const[j,w]=A({value:e,defaultValue:r??s,onChange:t}),S=m.useId(),k=i??S;return n.jsxs(U,{id:k,label:p,required:d,error:b,helpText:f,className:u,children:[n.jsx("input",{id:k,name:c,type:"range",className:"form-range rrc-range",disabled:l,required:d,min:s,max:a,step:o,value:j,onChange:_=>w(Number(_.target.value))}),n.jsx("div",{className:"small text-body-secondary",children:j})]})}function Ot({value:e,defaultValue:r,onChange:t,max:s=5,disabled:a,className:o}){const[i,c]=A({value:e,defaultValue:r??0,onChange:t});return n.jsx("div",{className:h("d-inline-flex gap-1","rrc-rating",o),role:"radiogroup","aria-label":"Rating",children:Array.from({length:s},(l,d)=>d+1).map(l=>n.jsx("button",{type:"button",className:"btn btn-link p-0 border-0 rrc-rating__star",disabled:a,role:"radio","aria-checked":l===i,"aria-label":`${l} star${l>1?"s":""}`,onClick:()=>c(l),children:n.jsx("span",{"aria-hidden":"true",style:{fontSize:"1.25rem",color:l<=i?"#f5b301":"#ced4da"},children:"★"})},l))})}function $t({value:e,variant:r="primary",label:t,className:s}){const a=Math.max(0,Math.min(100,e));return n.jsx("div",{className:h("progress","rrc-progress",s),role:"progressbar","aria-valuenow":a,"aria-valuemin":0,"aria-valuemax":100,children:n.jsx("div",{className:h("progress-bar","rrc-progress__bar",`bg-${r}`),style:{width:`${a}%`},children:t?`${Math.round(a)}%`:null})})}function Ft({brand:e,start:r,end:t,variant:s="light",className:a}){return n.jsx("nav",{className:h("navbar navbar-expand-lg border-bottom","rrc-navbar",s==="dark"?"navbar-dark bg-dark":"navbar-light bg-light",a),children:n.jsxs("div",{className:"container-fluid",children:[e&&n.jsx("span",{className:"navbar-brand mb-0",children:e}),r&&n.jsx("div",{className:"d-flex align-items-center gap-3",children:r}),t&&n.jsx("div",{className:"d-flex align-items-center gap-3 ms-auto",children:t})]})})}const Te=["primary","primaryActive","primaryLight","primaryInverse","primaryRgb","componentActiveColor","componentActiveBg","componentHoverColor","componentHoverBg","componentCheckedColor","componentCheckedBg","menuLinkColorHover","menuLinkColorShow","menuLinkColorHere","menuLinkColorActive"];function Nr(e){if(typeof e!="object"||e===null)return!1;const r=e;if(typeof r.id!="string"||r.id.length===0||typeof r.tokens!="object"||r.tokens===null)return!1;const t=r.tokens;return Te.every(s=>typeof t[s]=="string"&&t[s].length>0)}function oe(e){const{id:r,primary:t,primaryActive:s,primaryLight:a,primaryInverse:o,primaryRgb:i,swatch:c}=e;return{id:r,...c!==void 0?{swatch:c}:{},tokens:{primary:t,primaryActive:s,primaryLight:a,primaryInverse:o,primaryRgb:i,componentActiveColor:o,componentActiveBg:t,componentHoverColor:s,componentHoverBg:a,componentCheckedColor:o,componentCheckedBg:t,menuLinkColorHover:s,menuLinkColorShow:s,menuLinkColorHere:s,menuLinkColorActive:t}}}const Bt=[oe({id:"blue",primary:"#0d6efd",primaryActive:"#0a58ca",primaryLight:"#cfe2ff",primaryInverse:"#ffffff",primaryRgb:"13, 110, 253"}),oe({id:"indigo",primary:"#6610f2",primaryActive:"#520dc2",primaryLight:"#e0cffc",primaryInverse:"#ffffff",primaryRgb:"102, 16, 242"}),oe({id:"teal",primary:"#13795b",primaryActive:"#0d503c",primaryLight:"#d2f4ea",primaryInverse:"#ffffff",primaryRgb:"19, 121, 91",swatch:"#20c997"}),oe({id:"green",primary:"#198754",primaryActive:"#146c43",primaryLight:"#d1e7dd",primaryInverse:"#ffffff",primaryRgb:"25, 135, 84"})],ge="blue",ce=new Map(Bt.map(e=>[e.id,e]));function Kt(e){if(!Nr(e))throw new Error("[react-components] registerColorScheme() requires a complete token family: "+Te.join(", ")+".");ce.set(e.id,e)}function kr(e){return ce.get(e)}function Sr(){return[...ce.values()]}function wr(e){const r=e!==void 0?ce.get(e):void 0;return r||ce.get(ge)}function _r(e){const r=e.tokens;return{"--bs-primary":r.primary,"--bs-primary-rgb":r.primaryRgb,"--bs-primary-active":r.primaryActive,"--bs-primary-light":r.primaryLight,"--bs-primary-inverse":r.primaryInverse,"--bs-component-active-color":r.componentActiveColor,"--bs-component-active-bg":r.componentActiveBg,"--bs-component-hover-color":r.componentHoverColor,"--bs-component-hover-bg":r.componentHoverBg,"--bs-component-checked-color":r.componentCheckedColor,"--bs-component-checked-bg":r.componentCheckedBg,"--bs-menu-link-color-hover":r.menuLinkColorHover,"--bs-menu-link-color-show":r.menuLinkColorShow,"--bs-menu-link-color-here":r.menuLinkColorHere,"--bs-menu-link-color-active":r.menuLinkColorActive,"--rrc-primary":r.primary,"--rrc-primary-rgb":r.primaryRgb,"--rrc-primary-active":r.primaryActive,"--rrc-primary-inverse":r.primaryInverse,"--rrc-component-active-color":r.componentActiveColor,"--rrc-component-active-bg":r.componentActiveBg,"--rrc-component-hover-bg":r.componentHoverBg,"--rrc-component-checked-color":r.componentCheckedColor,"--rrc-component-checked-bg":r.componentCheckedBg}}const Me=["light","dark","system"],Ve=["compact","grouped"],Le=["light","dark","auto"],Pe=m.createContext(void 0);function Ht(e){return typeof e=="string"&&Me.includes(e)}function Gt(e){return typeof e=="string"&&Ve.includes(e)}function Ut(e){return typeof e=="string"&&Le.includes(e)}function qt(e,r){let t;try{t=e.getItem(r)}catch{return{}}if(!t)return{};let s;try{s=JSON.parse(t)}catch{return{}}if(typeof s!="object"||s===null)return{};const a=s,o={};return Ht(a.mode)&&(o.mode=a.mode),Gt(a.sidebarPresentation)&&(o.sidebarPresentation=a.sidebarPresentation),Ut(a.sidebarTone)&&(o.sidebarTone=a.sidebarTone),typeof a.colorSchemeId=="string"&&kr(a.colorSchemeId)&&(o.colorSchemeId=a.colorSchemeId),o}function zt({children:e,mode:r,defaultMode:t,onModeChange:s,sidebarPresentation:a,defaultSidebarPresentation:o,onSidebarPresentationChange:i,sidebarTone:c,defaultSidebarTone:l,onSidebarToneChange:d,colorSchemeId:u,defaultColorSchemeId:p,onColorSchemeIdChange:f,storage:b,storageKey:j,applyTo:w="none",themeAttribute:S="data-bs-theme"}){const[k,_]=A({value:r,defaultValue:t??"system",onChange:s}),[x,y]=A({value:a,defaultValue:o??"grouped",onChange:i}),[v,N]=A({value:c,defaultValue:l??"auto",onChange:d}),[g,C]=A({value:u,defaultValue:p??ge,onChange:f}),[R,V]=m.useState("light");m.useEffect(()=>{if(typeof window>"u"||typeof window.matchMedia!="function")return;const I=window.matchMedia("(prefers-color-scheme: dark)");V(I.matches?"dark":"light");const O=K=>V(K.matches?"dark":"light");if(typeof I.addEventListener=="function")return I.addEventListener("change",O),()=>I.removeEventListener("change",O);if(typeof I.addListener=="function")return I.addListener(O),()=>I.removeListener(O)},[]);const B=b!==void 0&&j!==void 0,[H,L]=m.useState(!1),D={mode:r!==void 0,sidebarPresentation:a!==void 0,sidebarTone:c!==void 0,colorSchemeId:u!==void 0},E=m.useRef(D);E.current=D;const $=m.useRef({setMode:_,setSidebarPresentation:y,setSidebarTone:N,setColorSchemeId:C});$.current={setMode:_,setSidebarPresentation:y,setSidebarTone:N,setColorSchemeId:C},m.useEffect(()=>{if(!B)return;const I=qt(b,j),O=E.current,K=$.current;I.mode!==void 0&&!O.mode&&K.setMode(I.mode),I.sidebarPresentation!==void 0&&!O.sidebarPresentation&&K.setSidebarPresentation(I.sidebarPresentation),I.sidebarTone!==void 0&&!O.sidebarTone&&K.setSidebarTone(I.sidebarTone),I.colorSchemeId!==void 0&&!O.colorSchemeId&&K.setColorSchemeId(I.colorSchemeId),L(!0)},[B,b,j]),m.useEffect(()=>{if(!(!B||!H))try{b.setItem(j,JSON.stringify({mode:k,sidebarPresentation:x,sidebarTone:v,colorSchemeId:g}))}catch{}},[B,H,b,j,k,x,v,g]);const T=k==="system"?R:k,G=wr(g),q=m.useMemo(()=>_r(G),[G]);m.useEffect(()=>{if(w==="none"||typeof document>"u")return;const I=w==="body"?document.body:document.documentElement;if(!I)return;const O=I.getAttribute(S);I.setAttribute(S,T);for(const[K,X]of Object.entries(q))I.style.setProperty(K,X);return()=>{O===null?I.removeAttribute(S):I.setAttribute(S,O);for(const K of Object.keys(q))I.style.removeProperty(K)}},[w,S,T,q]);const P=m.useMemo(()=>({"data-bs-theme":T,style:q}),[T,q]),F=m.useMemo(()=>({mode:k,sidebarPresentation:x,sidebarTone:v,colorSchemeId:g,resolvedTheme:T,systemTheme:R,colorScheme:G,setMode:_,setSidebarPresentation:y,setSidebarTone:N,setColorSchemeId:C,appearanceProps:P}),[k,x,v,g,T,R,G,_,y,N,C,P]);return n.jsx(Pe.Provider,{value:F,children:e})}function Wt(){const e=m.useContext(Pe);if(!e)throw new Error("[react-components] useAppearance() must be used inside an <AppearanceProvider>.");return e}function Cr(){return m.useContext(Pe)}function Jt({storageKey:e,themeAttribute:r="data-bs-theme",target:t="documentElement",defaultMode:s="system"}){const a=d=>JSON.stringify(d).replace(/</g,"\\u003C"),o=a(e),i=a(r),c=a(s),l=t==="body"?"document.body":"document.documentElement";return"(function(){try{var raw=window.localStorage.getItem("+o+");var mode="+c+";if(raw){var parsed=JSON.parse(raw);if(parsed&&typeof parsed.mode==='string'){mode=parsed.mode;}}var dark=mode==='dark'||(mode==='system'&&window.matchMedia('(prefers-color-scheme: dark)').matches);"+l+".setAttribute("+i+",dark?'dark':'light');}catch(e){}})();"}function Ir(e){return e.type==="collapsible"||e.type==="group"}function Oe(e){return e.type==="collapsible"||e.type==="group"&&e.collapsible===!0}function $e(e){return"items"in e}function Er(e){return e.map(r=>$e(r)?Yt(r):Rr(r))}function Yt(e){return{type:"group",key:e.key,label:e.label,collapsible:!0,children:e.items.map(Rr)}}function Rr(e){const r={key:e.key,label:e.label,...e.icon!==void 0?{icon:e.icon}:{},...e.disabled!==void 0?{disabled:e.disabled}:{}},t=e.onClick?()=>{var s;return(s=e.onClick)==null?void 0:s.call(e)}:void 0;return e.href!==void 0?{...r,type:"link",href:e.href,...t?{onSelect:t}:{}}:{...r,type:"action",...t?{onSelect:t}:{}}}function Ar(e){return e.filter($e).filter(r=>r.defaultOpen).map(r=>r.key)}function Dr(e){for(const r of e)if($e(r)){const t=r.items.find(s=>s.active);if(t)return t.key}else if(r.active)return r.key}function Zt(e){const r=new Map,t=[],s=[];function a(i,c,l){const d=[];for(const u of i){const p={item:u,key:u.key,depth:c,ancestors:l,children:[]};r.has(u.key)?s.push(u.key):(r.set(u.key,p),t.push(u.key)),Ir(u)&&(p.children=a(u.children,c+1,[...l,u.key])),d.push(p)}return d}return{roots:a(e,0,[]),byKey:r,order:t,duplicateKeys:s}}function ee(e,r){const t=new Set(r),s=e.filter(o=>t.has(o)),a=new Set(s);for(const o of t)a.has(o)||s.push(o);return s}function Qt(e,r,t,s){const a=e.byKey.get(t),o=new Set(r);if(o.has(t)){if(o.delete(t),a)for(const i of Tr(a))o.delete(i);return ee(e.order,o)}if(s==="single"){const i=new Set(a?a.ancestors:[]);return i.add(t),ee(e.order,i)}if(o.add(t),a)for(const i of a.ancestors)o.add(i);return ee(e.order,o)}function er(e,r,t,s){if(t.length===0)return ee(e.order,new Set(r));if(s==="single")return ee(e.order,new Set(t));const a=new Set(r);for(const o of t)a.add(o);return ee(e.order,a)}function Xt(e,r){return e.length===r.length&&e.every((t,s)=>t===r[s])}function Tr(e){const r=[];for(const t of e.children)r.push(t.key),r.push(...Tr(t));return r}function Mr(e,r){var t;return r===void 0?[]:((t=e.byKey.get(r))==null?void 0:t.ancestors)??[]}function rr(e,r){return Mr(e,r).filter(t=>{const s=e.byKey.get(t);return s!==void 0&&Oe(s.item)})}const en=typeof document<"u"?m.useLayoutEffect:m.useEffect,rn=Symbol("unresolved-active-key");function tn(e){if(e.type!=="divider")return e.ariaLabel!==void 0?e.ariaLabel:typeof e.label=="string"?e.label:void 0}function nn(e,r){return`${e}-${r.replace(/[^A-Za-z0-9_-]/g,"_")}`}function ke({node:e,expandable:r}){const t=e.item;return t.type==="divider"?null:n.jsxs(n.Fragment,{children:[t.icon!==void 0&&n.jsx("span",{className:"rrc-sidebar__icon","aria-hidden":"true",children:t.icon}),n.jsx("span",{className:"rrc-sidebar__label",children:t.label}),t.badge!==void 0&&n.jsx("span",{className:"rrc-sidebar__badge",children:t.badge}),r&&n.jsx("span",{className:"rrc-sidebar__arrow","aria-hidden":"true"})]})}function Se({name:e,children:r}){return e===void 0?n.jsx(n.Fragment,{children:r}):n.jsx(Ae,{content:e,placement:"bottom",wrapperClassName:"rrc-sidebar__tooltip",children:r})}function sn(e){if(!e)return;const r=e.getBoundingClientRect(),t=(e.closest(".rrc-sidebar")??e).getBoundingClientRect(),s=getComputedStyle(e).direction==="rtl",a=document.documentElement.clientWidth;e.style.setProperty("--rrc-rail-tip-block-start",`${Math.round(r.top+r.height/2)}px`),e.style.setProperty("--rrc-rail-tip-inline-start",`${Math.round(s?a-t.left:t.right)}px`)}function we(e){if(!e)return{};const r=t=>sn(t.currentTarget);return{onPointerEnter:r,onFocusCapture:r}}function he({node:e,ctx:r}){const t=e.item,s=m.useRef(null),[a,o]=m.useState(!1),i=m.useCallback(()=>o(!1),[]);if(en(()=>{const x=s.current;if(!a||!x)return;const y=()=>{const v=x.getBoundingClientRect(),N=(x.closest(".rrc-sidebar")??x).getBoundingClientRect(),g=getComputedStyle(x).direction==="rtl",C=document.documentElement.clientWidth;x.style.setProperty("--rrc-flyout-block-start",`${Math.round(v.top)}px`),x.style.setProperty("--rrc-flyout-inline-start",`${Math.round(g?C-N.left:N.right)}px`)};return y(),window.addEventListener("scroll",y,!0),window.addEventListener("resize",y),()=>{window.removeEventListener("scroll",y,!0),window.removeEventListener("resize",y)}},[a]),t.type==="divider")return n.jsx("li",{role:"none",className:h("rrc-sidebar__divider",t.className),children:n.jsx(yr,{className:"my-1"})});const c={"--rrc-sidebar-depth":String(Math.max(0,e.depth-r.depthOffset))},l=tn(t),d=r.activeKey===t.key,u=r.activeAncestors.has(t.key),p=Oe(t),f=p&&r.expanded.has(t.key),b=nn(r.idPrefix,t.key),j=h("rrc-sidebar__row",d&&"rrc-sidebar__row--active",u&&"rrc-sidebar__row--active-ancestor",t.disabled&&"rrc-sidebar__row--disabled",t.className);if(t.type==="link"){const x=N=>{if(t.disabled){N.preventDefault();return}r.select(t,N)},y={item:t,href:t.href,className:h(j,"rrc-sidebar__row--link"),style:c,children:n.jsx(ke,{node:e,expandable:!1}),onClick:x,"aria-current":d?"page":void 0,"aria-disabled":t.disabled?!0:void 0,"aria-label":r.collapsed?l:void 0,"data-active-ancestor":u?"true":void 0,target:t.target,rel:t.rel},v=r.renderLink?r.renderLink(y):n.jsx("a",{href:y.href,className:y.className,style:y.style,onClick:y.onClick,"aria-current":y["aria-current"],"aria-disabled":y["aria-disabled"],"aria-label":y["aria-label"],"data-active-ancestor":y["data-active-ancestor"],target:y.target,rel:y.rel,children:y.children});return n.jsx("li",{className:"rrc-sidebar__item",...we(r.collapsed),children:r.collapsed?n.jsx(Se,{name:l,children:v}):v})}if(t.type==="action"){const x=n.jsx("button",{type:"button",className:h(j,"rrc-sidebar__row--action"),style:c,disabled:t.disabled,"aria-label":r.collapsed?l:void 0,"data-active-ancestor":u?"true":void 0,"data-active":d?"true":void 0,onClick:y=>r.select(t,y),children:n.jsx(ke,{node:e,expandable:!1})});return n.jsx("li",{className:"rrc-sidebar__item",...we(r.collapsed),children:r.collapsed?n.jsx(Se,{name:l,children:x}):x})}if(!p){const x=`${b}-title`;return n.jsxs("li",{className:h("rrc-sidebar__item","rrc-sidebar__group",t.className),children:[n.jsxs("div",{className:"rrc-sidebar__group-title",id:x,style:c,children:[t.icon!==void 0&&n.jsx("span",{className:"rrc-sidebar__icon","aria-hidden":"true",children:t.icon}),n.jsx("span",{className:"rrc-sidebar__label",children:t.label}),t.badge!==void 0&&n.jsx("span",{className:"rrc-sidebar__badge",children:t.badge})]}),n.jsx("ul",{className:"rrc-sidebar__menu rrc-sidebar__submenu","aria-labelledby":x,children:e.children.map(y=>n.jsx(he,{node:y,ctx:{...r,depthOffset:r.depthOffset+1}},y.key))})]})}const w=n.jsx("ul",{className:"rrc-sidebar__menu rrc-sidebar__submenu",id:b,children:e.children.map(x=>n.jsx(he,{node:x,ctx:r},x.key))}),S=r.collapsed,k=()=>{t.disabled||(S?o(x=>!x):r.toggle(t.key))},_=n.jsx("button",{type:"button",className:h(j,"rrc-sidebar__row--toggle",t.type==="group"&&"rrc-sidebar__row--group-toggle"),style:c,disabled:t.disabled,"aria-expanded":S?a:f,"aria-controls":b,"aria-label":r.collapsed?l:void 0,"data-active-ancestor":u?"true":void 0,onClick:k,children:n.jsx(ke,{node:e,expandable:!0})});return n.jsxs("li",{ref:s,className:h("rrc-sidebar__item",S&&"rrc-sidebar__item--flyout-anchor"),...we(r.collapsed),children:[S?n.jsx(Se,{name:l,children:_}):_,S?n.jsx(Z,{open:a,onClose:i,anchorRef:s,className:"rrc-sidebar__flyout",children:n.jsx("ul",{className:"rrc-sidebar__menu rrc-sidebar__submenu",id:b,children:e.children.map(x=>n.jsx(he,{node:x,ctx:{...r,collapsed:!1,depthOffset:e.depth+1}},x.key))})}):f&&w]})}function an({collapsed:e,toggle:r,label:t}){return n.jsx("button",{type:"button",className:"rrc-sidebar__collapse-btn","aria-label":t,onClick:r,children:n.jsx("svg",{className:h("rrc-sidebar__collapse-icon",e&&"rrc-sidebar__collapse-icon--collapsed"),viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",focusable:"false",children:n.jsx("path",{d:"M14.5 6.5 9 12l5.5 5.5"})})})}function on({items:e,sections:r,variant:t,tone:s,activeKey:a,expandActivePath:o=!1,activePathExpansion:i,expandedKeys:c,defaultExpandedKeys:l,onExpandedKeysChange:d,expandMode:u="multiple",collapsed:p,defaultCollapsed:f,onCollapsedChange:b,collapsible:j=!1,renderCollapseControl:w,collapseLabel:S="Collapse sidebar",expandLabel:k="Expand sidebar",mobileOpen:_,defaultMobileOpen:x,onMobileOpenChange:y,mobileLabel:v,closeMobileOnSelect:N=!0,header:g,footer:C,collapsedFooter:R,className:V,navLabel:B,onSelect:H,renderLink:L}){const D=Cr(),E=r??[],$=m.useMemo(()=>e!==void 0?e:Er(E),[e,r]),T=m.useMemo(()=>Zt($),[$]),G=T.duplicateKeys.join(", ");m.useEffect(()=>{process.env.NODE_ENV!=="production"&&G.length>0&&console.error("[react-components] Sidebar received duplicate item keys: "+G+". Keys must be unique and stable: expansion and active state are keyed by them, so every duplicate shares one identity and the first occurrence in tree order defines it.")},[G]);const q=m.useMemo(()=>Ar(E),[r]),P=a??(e===void 0?Dr(E):void 0),F=i??(o?"on-active-change":"never"),I=m.useRef(null);if(I.current===null){const M=l??q;I.current=F==="never"?M:er(T,M,rr(T,P),u)}const[O,K]=A({value:c,defaultValue:I.current,onChange:d}),[X,Jr]=A({value:p,defaultValue:f??!1,onChange:b}),[z,ue]=A({value:_,defaultValue:x??!1,onChange:y}),W=P,me=m.useMemo(()=>new Set(Mr(T,W)),[T,W]),Be=m.useMemo(()=>{const M=new Set(O);if(F==="always")for(const Q of me)M.add(Q);return M},[O,F,me]),ye=m.useRef(O);ye.current=O;const je=m.useRef(rn);m.useEffect(()=>{if(F!=="on-active-change"){je.current=W;return}if(je.current===W)return;je.current=W;const M=rr(T,W);if(M.length===0)return;const Q=er(T,ye.current,M,u);Xt(Q,ye.current)||K(Q)},[F,W,T,u,K]);const Ke=m.useCallback(M=>K(Qt(T,O,M,u)),[T,O,u,K]),He=m.useCallback(()=>ue(!1),[ue]);be(z,He);const Ne=m.useRef(null);m.useEffect(()=>{if(typeof document>"u")return;if(z){Ne.current=document.activeElement;return}const M=Ne.current;Ne.current=null,M instanceof HTMLElement&&M.isConnected&&M.focus()},[z]);const Ge=m.useCallback((M,Q)=>{var Ye;M.disabled||((Ye=M.onSelect)==null||Ye.call(M,M,Q),H==null||H(M,Q),N&&z&&ue(!1))},[H,N,z,ue]),Ue=m.useId(),fe=t??(D==null?void 0:D.sidebarPresentation)??"grouped",qe=s??(D==null?void 0:D.sidebarTone)??"auto",ae=X&&!z,Yr=m.useMemo(()=>({variant:fe,collapsed:ae,expanded:Be,activeKey:W,activeAncestors:me,toggle:Ke,select:Ge,renderLink:L,idPrefix:Ue,depthOffset:0}),[fe,ae,Be,W,me,Ke,Ge,L,Ue]),ze={collapsed:X,toggle:()=>Jr(!X),label:X?k:S},We=ae?R:C,Je=n.jsxs("aside",{className:h("rrc-sidebar",`rrc-sidebar--${fe}`,ae?"rrc-sidebar--collapsed":"rrc-sidebar--expanded",z&&"rrc-sidebar--mobile-open",V),"data-variant":fe,"data-collapsed":ae?"true":"false","data-bs-theme":qe==="auto"?void 0:qe,...z?{role:"dialog","aria-modal":!0,"aria-label":v??B}:{},children:[n.jsxs("div",{className:"rrc-sidebar__panel",children:[(g!==void 0||j)&&n.jsx("div",{className:"rrc-sidebar__header",children:g!==void 0&&n.jsx("div",{className:"rrc-sidebar__brand",children:g})}),n.jsx("nav",{className:"rrc-sidebar__body","aria-label":B,children:n.jsx("ul",{className:"rrc-sidebar__menu rrc-sidebar__menu--root",children:T.roots.map(M=>n.jsx(he,{node:M,ctx:Yr},M.key))})}),We!==void 0&&n.jsx("div",{className:"rrc-sidebar__footer",children:We})]}),j&&n.jsx("div",{className:"rrc-sidebar__collapse",children:w?w(ze):n.jsx(an,{...ze})})]});return z?n.jsxs("div",{className:"rrc-sidebar-drawer",children:[n.jsx("div",{className:"rrc-sidebar-drawer__backdrop",onClick:He,"data-testid":"rrc-sidebar-backdrop"}),Je]}):Je}function ln({title:e,description:r,breadcrumbItems:t,actions:s,className:a}){return n.jsxs("div",{className:h("mb-4","rrc-page-header",a),children:[t&&t.length>0&&n.jsx(jr,{items:t,className:"mb-2 rrc-page-header__breadcrumb"}),n.jsxs("div",{className:"d-flex align-items-start justify-content-between gap-3 flex-wrap rrc-page-header__row",children:[n.jsxs("div",{children:[n.jsx("h1",{className:"h3 mb-1 rrc-page-header__title",children:e}),r&&n.jsx("p",{className:"text-body-secondary mb-0 rrc-page-header__description",children:r})]}),s&&n.jsx("div",{className:"d-flex align-items-center gap-2 rrc-page-header__actions",children:s})]})]})}const cn={xs:1,sm:2,md:3,lg:4,xl:5};function dn(e){return typeof e=="number"?e:cn[e]}function un({direction:e="row",gap:r="sm",grow:t,shrink:s,fullWidth:a,className:o,...i}){return n.jsx(De,{direction:e,gap:dn(r),className:h("rrc-flex",t&&"flex-grow-1",s&&"flex-shrink-0",a&&"w-100",o),...i})}function mn({icon:e,"aria-label":r,iconSize:t,tooltip:s,variant:a="light",loading:o,className:i,...c}){const l=n.jsx(le,{variant:a,loading:o,className:h("btn-icon","rrc-btn-icon",i),"aria-label":r,...c,children:!o&&n.jsx(xe,{name:e,size:t})});return s?n.jsx(Ae,{content:s,children:l}):l}function fn({leading:e,title:r,description:t,trailing:s,onClick:a,disabled:o,dense:i,className:c}){const l=n.jsxs(n.Fragment,{children:[e&&n.jsx("span",{className:"flex-shrink-0 d-inline-flex align-items-center rrc-list-item__leading",children:e}),n.jsxs("span",{className:"flex-grow-1",style:{minWidth:0},children:[n.jsx("span",{className:"d-block text-truncate rrc-list-item__title",children:r}),t&&n.jsx("span",{className:"d-block text-truncate small text-body-secondary rrc-list-item__description",children:t})]}),s&&n.jsx("span",{className:"flex-shrink-0 d-inline-flex align-items-center rrc-list-item__trailing",children:s})]}),d=h("d-flex align-items-center text-start","rrc-list-item",a&&"rrc-list-item--interactive",i?"gap-2 py-1":"gap-3 py-2",a&&"w-100 border-0 bg-transparent",o&&"opacity-50",c);return a?n.jsx("button",{type:"button",className:d,onClick:a,disabled:o,children:l}):n.jsx("div",{className:d,"aria-disabled":o||void 0,children:l})}function pn(e,r,t,s){if(e.length===0)return[];const a=Math.min(...e),i=Math.max(...e)-a||1,c=r-s*2,l=t-s*2,d=e.length>1?c/(e.length-1):0;return e.map((u,p)=>{const f=s+d*p,b=s+l-(u-a)/i*l;return[f,b]})}function hn({type:e,data:r,width:t,height:s,strokeWidth:a}){const o=a,i=pn(r,t,s,o);if(i.length===0)return null;const c=i.map(([l,d])=>`${l},${d}`).join(" ");return n.jsxs(n.Fragment,{children:[e==="area"&&n.jsx("polygon",{points:`${o},${s-o} ${c} ${t-o},${s-o}`,fill:"currentColor",opacity:.2,stroke:"none"}),n.jsx("polyline",{points:c,fill:"none",stroke:"currentColor",strokeWidth:a,strokeLinecap:"round",strokeLinejoin:"round"})]})}function bn({data:e,width:r,height:t}){if(e.length===0)return null;const s=Math.min(0,...e),o=Math.max(0,...e)-s||1,i=2,c=Math.max((r-i*(e.length-1))/e.length,1);return n.jsx(n.Fragment,{children:e.map((l,d)=>{const u=Math.max((l-s)/o*t,1),p=d*(c+i),f=t-u;return n.jsx("rect",{x:p,y:f,width:c,height:u,rx:1,fill:"currentColor"},d)})})}function vn({type:e="line",data:r,tone:t="primary",width:s=80,height:a=28,strokeWidth:o=2,className:i,label:c}){return n.jsx("svg",{width:s,height:a,viewBox:`0 0 ${s} ${a}`,className:h(`text-${t}`,"rrc-sparkline",i),role:c?"img":void 0,"aria-label":c,"aria-hidden":c?void 0:!0,children:e==="bar"?n.jsx(bn,{data:r,width:s,height:a}):n.jsx(hn,{type:e,data:r,width:s,height:a,strokeWidth:o})})}const xn={up:"success",down:"danger",neutral:"muted"},gn={up:"bi bi-arrow-up-short",down:"bi bi-arrow-down-short",neutral:"bi bi-dash"};function yn(e,r){return typeof e=="number"&&r!=null?e.toFixed(r):String(e)}function jn({label:e,value:r,prefix:t,suffix:s,precision:a,trend:o,delta:i,loading:c,className:l}){return n.jsxs("div",{className:h("d-flex flex-column gap-1","rrc-statistic",l),children:[n.jsx(J,{size:"sm",tone:"muted",children:e}),c?n.jsx(ie,{height:"1.75rem",width:"60%"}):n.jsxs("div",{className:"d-flex align-items-baseline gap-1",children:[t&&n.jsx(J,{size:"lg",weight:"semibold",children:t}),n.jsx(J,{size:"xl",weight:"bold",children:yn(r,a)}),s&&n.jsx(J,{size:"lg",weight:"semibold",children:s})]}),!c&&(o||i!=null)&&n.jsxs(J,{size:"sm",tone:o?xn[o]:"muted",className:"d-inline-flex align-items-center gap-1",children:[o&&n.jsx(xe,{name:gn[o],size:"sm"}),i]})]})}function pe({title:e,options:r,value:t,onChange:s,className:a}){const o=m.useId(),i=m.useRef([]);function c(d,u){var b;if(r.length===0)return;const p=(d+u+r.length)%r.length,f=r[p];f&&(s(f.value),(b=i.current[p])==null||b.focus())}function l(d){const u=r.findIndex(p=>p.value===t);d.key==="ArrowDown"||d.key==="ArrowRight"?(d.preventDefault(),c(u,1)):(d.key==="ArrowUp"||d.key==="ArrowLeft")&&(d.preventDefault(),c(u,-1))}return n.jsxs("div",{className:h("rrc-appearance__section",a),children:[n.jsx("div",{className:"rrc-appearance__title",id:o,children:e}),n.jsx("div",{className:"rrc-appearance__options",role:"radiogroup","aria-labelledby":o,onKeyDown:l,children:r.map((d,u)=>{const p=d.value===t;return n.jsxs("button",{ref:f=>{i.current[u]=f},type:"button",role:"radio","aria-checked":p,tabIndex:p?0:-1,className:h("rrc-appearance__option",p&&"rrc-appearance__option--selected"),onClick:()=>s(d.value),children:[d.adornment,n.jsx("span",{className:"rrc-appearance__option-label",children:d.label}),n.jsx("span",{className:"rrc-appearance__check","aria-hidden":"true"})]},d.value)})})]})}function Nn({labels:e,sections:r,className:t,mode:s,onModeChange:a,sidebarPresentation:o,onSidebarPresentationChange:i,sidebarTone:c,onSidebarToneChange:l,colorSchemeId:d,onColorSchemeIdChange:u,colorSchemes:p}){const f=Cr(),b={presentation:(r==null?void 0:r.presentation)??!0,mode:(r==null?void 0:r.mode)??!0,tone:(r==null?void 0:r.tone)??!0,colorScheme:(r==null?void 0:r.colorScheme)??!0},j=s??(f==null?void 0:f.mode)??"system",w=o??(f==null?void 0:f.sidebarPresentation)??"grouped",S=c??(f==null?void 0:f.sidebarTone)??"auto",k=d??(f==null?void 0:f.colorSchemeId)??ge,_=g=>{a==null||a(g),s===void 0&&(f==null||f.setMode(g))},x=g=>{i==null||i(g),o===void 0&&(f==null||f.setSidebarPresentation(g))},y=g=>{l==null||l(g),c===void 0&&(f==null||f.setSidebarTone(g))},v=g=>{u==null||u(g),d===void 0&&(f==null||f.setColorSchemeId(g))},N=p??Sr();return n.jsxs("div",{className:h("rrc-appearance",t),children:[b.presentation&&n.jsx(pe,{title:e.presentation.title,value:w,onChange:x,options:Ve.map(g=>({value:g,label:e.presentation[g]}))}),b.mode&&n.jsx(pe,{title:e.mode.title,value:j,onChange:_,options:Me.map(g=>({value:g,label:e.mode[g]}))}),b.tone&&n.jsx(pe,{title:e.tone.title,value:S,onChange:y,options:Le.map(g=>({value:g,label:e.tone[g]}))}),b.colorScheme&&n.jsx(pe,{title:e.colorScheme.title,value:k,onChange:v,className:"rrc-appearance__section--schemes",options:N.map(g=>({value:g.id,label:e.colorScheme.options[g.id]??g.id,adornment:n.jsx("span",{className:"rrc-appearance__swatch",style:{backgroundColor:g.swatch??g.tokens.primary},"aria-hidden":"true"})}))})]})}class Vr extends Error{constructor(r,t,s){super(`HTTP ${r} ${t} for ${s}`),this.name="HttpError",this.status=r,this.statusText=t,this.url=s}}function kn(e){if(!e)return"";const r=new URLSearchParams;for(const[s,a]of Object.entries(e))a!=null&&r.set(s,String(a));const t=r.toString();return t?`?${t}`:""}function Lr(e={}){const{baseUrl:r="",fetcher:t=fetch,buildRequestInit:s}=e;return{async get(a,o={}){const i=`${r}${a}${kn(o.params)}`;let c={method:"GET",signal:o.signal};s&&(c=s(i,c));const l=await t(i,c);if(!l.ok)throw new Vr(l.status,l.statusText,i);return await l.json()}}}const Pr=Lr();function Sn(e){return Object.keys(e).sort().reduce((r,t)=>(r[t]=e[t],r),{})}function te({client:e=Pr,url:r,params:t,mapResponse:s,enabled:a=!0}){const[o,i]=m.useState("idle"),[c,l]=m.useState([]),[d,u]=m.useState(null),[p,f]=m.useState(0),b=m.useMemo(()=>t?JSON.stringify(Sn(t)):"",[t]),j=m.useRef(0),w=m.useRef(s);w.current=s,m.useEffect(()=>{if(!a||!r){i("idle"),l([]),u(null);return}const k=++j.current,_=new AbortController;return i("loading"),u(null),e.get(r,{params:t,signal:_.signal}).then(x=>{if(k!==j.current)return;const y=w.current(x);l(y),i(y.length===0?"empty":"success")}).catch(x=>{k===j.current&&(x instanceof DOMException&&x.name==="AbortError"||(u(x instanceof Error?x:new Error(String(x))),i("error")))}),()=>{_.abort()}},[e,r,b,a,p]);const S=m.useCallback(()=>f(k=>k+1),[]);return{state:o,items:c,error:d,reload:S}}function Or(e,r){const[t,s]=m.useState(e);return m.useEffect(()=>{const a=setTimeout(()=>s(e),r);return()=>clearTimeout(a)},[e,r]),t}function ne(e){if(Array.isArray(e))return e;if(e&&typeof e=="object"&&Array.isArray(e.items))return e.items;throw new Error("Unable to normalize remote response into an array. Provide an explicit `mapResponse` for this endpoint's response shape.")}function de(e,r,t){if(e===null||typeof e!="object")throw new Error("Remote item is not an object; cannot read valueMember/displayMember from it.");const s=e;return{value:s[r],label:String(s[t]??"")}}function $r({url:e,params:r,valueMember:t,displayMember:s,mapResponse:a,client:o,enabled:i,...c}){const{state:l,items:d,error:u}=te({client:o,url:e,params:r,enabled:i,mapResponse:f=>(a?a(f):ne(f)).map(j=>de(j,t,s))}),p=c.error??(l==="error"?(u==null?void 0:u.message)??"Failed to load options":void 0);return n.jsx(dr,{...c,options:d,loading:l==="loading",error:p})}function wn({url:e,params:r,searchParam:t,valueMember:s,displayMember:a,mapResponse:o,minSearchLength:i=1,debounceMs:c=300,client:l,inputValue:d,onInputValueChange:u,...p}){const[f,b]=A({value:d,defaultValue:"",onChange:u}),j=Or(f,c),w=j.length>=i,{state:S,items:k,error:_}=te({client:l,url:e,enabled:w,params:{...r,[t]:j},mapResponse:y=>(o?o(y):ne(y)).map(N=>de(N,s,a))}),x=p.error??(S==="error"?(_==null?void 0:_.message)??"Failed to load suggestions":void 0);return n.jsx(ur,{...p,options:k,loading:S==="loading",error:x,inputValue:f,onInputValueChange:b,filter:()=>!0})}function Fr({url:e,params:r,mapResponse:t,getTotalCount:s,pageSize:a=20,client:o,...i}){const[c,l]=m.useState(1),[d,u]=m.useState(null),p=m.useMemo(()=>JSON.stringify(r??{}),[r]),f=m.useRef(!0);m.useEffect(()=>{if(f.current){f.current=!1;return}l(1)},[p]);const b=m.useMemo(()=>({...r,page:c,pageSize:a,...d?{sortKey:d.key,sortDirection:d.direction}:{}}),[r,c,a,d]),j=m.useRef(void 0),{state:w,items:S,error:k}=te({client:o,url:e,params:b,mapResponse:N=>(j.current=N,t?t(N):ne(N))}),_=j.current!==void 0?s==null?void 0:s(j.current):void 0,y=S.length>=a&&a>0?c*a+1:(c-1)*a+S.length,v=_??y;return n.jsx(hr,{...i,rows:S,loading:w==="loading",error:k==null?void 0:k.message,page:c,pageSize:a,totalCount:v,onPageChange:l,sort:d,onSortChange:N=>{u(N),l(1)}})}function _n({url:e,params:r,valueMember:t,displayMember:s,mapResponse:a,client:o,enabled:i,...c}){const{state:l,items:d,error:u}=te({client:o,url:e,params:r,enabled:i,mapResponse:f=>(a?a(f):ne(f)).map(j=>de(j,t,s))}),p=c.error??(l==="error"?(u==null?void 0:u.message)??"Failed to load options":void 0);return n.jsx(ir,{...c,options:d,loading:l==="loading",error:p})}function Cn({url:e,params:r,valueMember:t,displayMember:s,mapResponse:a,client:o,enabled:i,...c}){const{state:l,items:d,error:u}=te({client:o,url:e,params:r,enabled:i,mapResponse:f=>(a?a(f):ne(f)).map(j=>de(j,t,s))}),p=c.error??(l==="error"?(u==null?void 0:u.message)??"Failed to load options":void 0);return n.jsx(lr,{...c,options:d,loading:l==="loading",error:p})}function In(){const e=new Map,r=new Set;return{register(t,s){e.set(t,s)},resolve(t,s){const a=e.get(t.component);return a?a(t,s):(r.has(t.component)||(r.add(t.component),console.warn(`Smart: no resolver registered for component "${t.component}" (field "${t.name}"). Skipping.`)),null)},has(t){return e.has(t)}}}function En(e){const r=new Map(Object.entries(e??{}));return{register(t,s){r.set(t,s)},resolve(t){return r.get(t)}}}function Rn(){const e=new Map;return{register(r,t){e.set(r,t)},resolve(r){return e.get(r)}}}function An(e){return"dataSource"in e}function Dn(e,r){if(!e)return;const t={};for(const[s,a]of Object.entries(e))t[s]=a.kind==="static"?a.value:r[a.field];return t}function tr(e,r,t){return r&&t?t(r):e}function se(e,r){const{values:t,translate:s}=r;return{metadata:e,visible:e.visible??!0,readOnly:e.readOnly??!1,disabled:e.disabled??!1,required:e.required??!1,label:tr(e.label,e.labelKey,s),placeholder:e.placeholder,helpText:e.helpText,validationMessage:tr(e.validationMessage,e.validationMessageKey,s),params:An(e)?Dn(e.dataSource.params,t):void 0}}function Tn(e,r,t){const s=r==null?void 0:r.fields.find(a=>a.name===e);if(s)return se(s,t)}const Mn=[];function Vn(e,r){const t={};for(const s of r)t[s]=e[s];return t}function Br(e,r,t){const s=e??Mn,a=Vn(r,s),o=s.length===0?"":JSON.stringify(a),i=m.useRef(null),c=m.useRef(t);c.current=t,m.useEffect(()=>{var d;if(s.length===0)return;const l=i.current;if(l&&l.key!==o)for(const u of s)Object.is(l.snapshot[u],a[u])||(d=c.current)==null||d.call(c,u);i.current={key:o,snapshot:a}},[o])}function Fe(e,r){const{actions:t,translate:s}=r,a=t.resolve(e.id);return{metadata:e,visible:e.visible??!0,enabled:(e.enabled??!0)&&!!a,label:e.labelKey&&s?s(e.labelKey):e.label,handler:a}}function Ln(e,r,t){var a;const s=(a=r==null?void 0:r.actions)==null?void 0:a.find(o=>o.id===e);if(s)return Fe(s,t)}const Kr=(e,r)=>{const t=se(e,{values:r.values,translate:r.translate});if(!t.visible)return null;const s=r.dataSources.resolve(e.dataSource.id);return s?n.jsx($r,{label:t.label,url:s.url,client:s.client,params:t.params,valueMember:e.valueMember,displayMember:e.displayMember,required:t.required,readOnly:t.readOnly,disabled:t.disabled,helpText:t.helpText,error:t.validationMessage,value:r.values[e.name]??null,onChange:a=>r.onFieldChange(e.name,a)}):(console.warn(`Smart: no data source registered for id "${e.dataSource.id}" (field "${e.name}"). Skipping.`),null)};function Pn(e,r){if(e.visible===!1)return null;const t=e.headerKey&&r?r(e.headerKey):e.header??e.key,s=e.format==="boolean"&&!!r;return{key:e.key,header:t,sortable:e.sortable,format:s?void 0:e.format,formatter:s?a=>r(a?"smart.boolean.true":"smart.boolean.false"):void 0}}const Hr=(e,r)=>{const t=se(e,{values:r.values,translate:r.translate});if(!t.visible)return null;const s=r.dataSources.resolve(e.dataSource.id);if(!s)return console.warn(`Smart: no data source registered for id "${e.dataSource.id}" (field "${e.name}"). Skipping.`),null;const a=e.columns.map(c=>Pn(c,r.translate)).filter(c=>c!==null),o=e.totalCountField,i=o?c=>{const l=c==null?void 0:c[o];return typeof l=="number"?l:void 0}:void 0;return n.jsx(Fr,{url:s.url,client:s.client,params:t.params,columns:a,rowKey:c=>c[e.rowKey],getTotalCount:i})};function nr(e){if(!e)return;const r=new Date(e);return Number.isNaN(r.getTime())?void 0:r}const Gr=(e,r)=>{const t=se(e,{values:r.values,translate:r.translate});return t.visible?n.jsx(cr,{label:t.label,required:t.required,readOnly:t.readOnly,disabled:t.disabled,helpText:t.helpText,error:t.validationMessage,min:nr(e.minDate),max:nr(e.maxDate),value:r.values[e.name]??null,onChange:s=>r.onFieldChange(e.name,s)}):null},Ur=(e,r)=>{const t=se(e,{values:r.values,translate:r.translate});return t.visible?n.jsx(re,{label:t.label,required:t.required,readOnly:t.readOnly,disabled:t.disabled,helpText:t.helpText,placeholder:t.placeholder,error:t.validationMessage,maxLength:e.maxLength,value:r.values[e.name]??"",onChange:s=>r.onFieldChange(e.name,s)}):null};function On(e){e.register("Input",Ur),e.register("ComboBox",Kr),e.register("DatePicker",Gr),e.register("DataGrid",Hr)}function qr({metadata:e,ctx:r}){const t=r.onMetadataRefreshNeeded;return Br(e.dependsOn,r.values,t?s=>t(e.name,s):void 0),e.visible===!1?null:r.registry.resolve(e,r)}const zr=1;function $n(e){const r=Number(e.split(".")[0]);return Number.isFinite(r)&&r===zr}function Fn({metadata:e,ctx:r}){return $n(e.schemaVersion)?n.jsx(n.Fragment,{children:e.fields.map(t=>n.jsx(qr,{metadata:t,ctx:r},t.name))}):n.jsxs(Re,{variant:"danger",children:['Unsupported form schema version "',e.schemaVersion,'" — this app understands schema version ',zr,".x."]})}function Wr({metadata:e,ctx:r}){const t=Fe(e,r);return t.visible?n.jsx(le,{disabled:!t.enabled,onClick:()=>{var s;return(s=t.handler)==null?void 0:s.call(t)},children:t.label??e.id}):null}function Bn({metadata:e,ctx:r}){return!e.actions||e.actions.length===0?null:n.jsx(n.Fragment,{children:e.actions.map(t=>n.jsx(Wr,{metadata:t,ctx:r},t.id))})}exports.Accordion=jt;exports.Alert=Re;exports.AppearanceMenu=Nn;exports.AppearanceProvider=zt;exports.AutoComplete=ur;exports.Avatar=Vt;exports.Badge=gr;exports.Breadcrumb=jr;exports.Button=le;exports.COLOR_SCHEME_TOKEN_KEYS=Te;exports.Card=Ct;exports.CheckBox=rt;exports.Col=Rt;exports.ComboBox=dr;exports.ConfirmProvider=ht;exports.Container=It;exports.DEFAULT_COLOR_SCHEME_ID=ge;exports.DataGrid=hr;exports.DatePicker=cr;exports.DateTimePicker=at;exports.Divider=yr;exports.FileInput=et;exports.Flex=un;exports.FormField=it;exports.HttpError=Vr;exports.Icon=xe;exports.IconButton=mn;exports.Input=re;exports.Label=sr;exports.ListItem=fn;exports.Menu=At;exports.Modal=mr;exports.MultiSelect=lr;exports.Navbar=Ft;exports.NumberInput=Qr;exports.PageHeader=ln;exports.Pagination=fr;exports.PasswordInput=Xr;exports.Popover=Nt;exports.Popup=Z;exports.ProgressBar=$t;exports.RadioButton=or;exports.RadioGroup=nt;exports.Rating=Ot;exports.RemoteAutoComplete=wn;exports.RemoteComboBox=$r;exports.RemoteDataGrid=Fr;exports.RemoteMultiSelect=Cn;exports.RemoteSelect=_n;exports.Row=Et;exports.SIDEBAR_PRESENTATIONS=Ve;exports.SIDEBAR_TONES=Le;exports.Select=ir;exports.Sidebar=on;exports.Skeleton=ie;exports.Slider=Pt;exports.SmartAction=Wr;exports.SmartActions=Bn;exports.SmartField=qr;exports.SmartForm=Fn;exports.Sparkline=vn;exports.Spinner=br;exports.Stack=De;exports.Statistic=jn;exports.Stepper=Dt;exports.Switch=tt;exports.THEME_MODES=Me;exports.Tabs=yt;exports.Tag=Lt;exports.Text=J;exports.TextArea=Zr;exports.TimePicker=st;exports.ToastProvider=ft;exports.Tooltip=Ae;exports.ValidationMessage=_e;exports.colorSchemeCssVariables=_r;exports.comboBoxResolver=Kr;exports.createAppearanceInitScript=Jt;exports.createColorScheme=oe;exports.createHttpClient=Lr;exports.createSmartActionRegistry=Rn;exports.createSmartComponentRegistry=In;exports.createSmartDataSourceRegistry=En;exports.dataGridFormatters=pr;exports.dataGridResolver=Hr;exports.datePickerResolver=Gr;exports.defaultArrayNormalization=ne;exports.defaultHttpClient=Pr;exports.fromDateInputValue=Ce;exports.fromTimeInputValue=Ee;exports.getColorScheme=kr;exports.inputResolver=Ur;exports.isSidebarExpandable=Oe;exports.isSidebarParent=Ir;exports.isValidColorScheme=Nr;exports.legacyActiveKey=Dr;exports.legacyDefaultExpandedKeys=Ar;exports.listColorSchemes=Sr;exports.registerBuiltInResolvers=On;exports.registerColorScheme=Kt;exports.resolveColorScheme=wr;exports.resolveSmartActionMetadata=Fe;exports.resolveSmartFieldMetadata=se;exports.toDateInputValue=Y;exports.toSelectOption=de;exports.toSidebarItems=Er;exports.toTimeInputValue=Ie;exports.useAppearance=Wt;exports.useConfirm=bt;exports.useDebouncedValue=Or;exports.useRemoteData=te;exports.useSmartAction=Ln;exports.useSmartDependencies=Br;exports.useSmartField=Tn;exports.useToast=pt;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),d=require("react"),yr=require("react-dom");function v(...e){return e.filter(Boolean).join(" ")}function mt({htmlFor:e,required:t,className:r,children:n}){return s.jsxs("label",{htmlFor:e,className:v("form-label","rrc-label",r),children:[n,t&&s.jsx("span",{className:"text-danger",children:" *"})]})}function Ie({error:e,helpText:t,className:r}){return e?s.jsx("div",{className:v("invalid-feedback d-block","rrc-field__error",r),children:e}):t?s.jsx("div",{className:v("form-text","rrc-field__help",r),children:t}):null}function W({id:e,label:t,required:r,error:n,helpText:o,className:a,children:l}){return s.jsxs("div",{className:v("mb-3","rrc-field",a),children:[t&&s.jsx(mt,{htmlFor:e,required:r,children:t}),l,s.jsx(Ie,{error:n,helpText:o})]})}function V({value:e,defaultValue:t,onChange:r}){const n=e!==void 0,o=d.useRef(n);process.env.NODE_ENV!=="production"&&o.current!==n&&console.error("[react-components] A component switched between controlled and uncontrolled `value`. Decide between passing `value` (controlled) or `defaultValue` (uncontrolled) for the lifetime of the component, per the library's controlled/uncontrolled policy.");const[a,l]=d.useState(t),i=n?e:a,c=d.useCallback(u=>{n||l(u),r==null||r(u)},[n,r]);return[i,c]}function re(e){const{id:t,name:r,disabled:n,readOnly:o,required:a,className:l,label:i,placeholder:c,helpText:u,error:f,value:p,defaultValue:m,onChange:h,onBlur:b,type:N="text",maxLength:k,autoFocus:w,inputProps:S,endAdornment:g}=e,[x,j]=V({value:p,defaultValue:m??"",onChange:h}),C=d.useId(),y=t??C,R=s.jsx("input",{id:y,name:r,className:v("form-control","rrc-input",f&&"is-invalid"),disabled:n,readOnly:o,required:a,placeholder:c,maxLength:k,autoFocus:w,value:x,onChange:_=>j(_.target.value),onBlur:b,type:N,...S});return s.jsx(W,{id:y,label:i,required:a,error:f,helpText:u,className:l,children:g?s.jsxs("div",{className:"input-group rrc-input-group",children:[R,g]}):R})}function jr(e){const{id:t,name:r,disabled:n,readOnly:o,required:a,className:l,label:i,placeholder:c,helpText:u,error:f,value:p,defaultValue:m,onChange:h,onBlur:b,rows:N=3,maxLength:k}=e,[w,S]=V({value:p,defaultValue:m??"",onChange:h}),g=d.useId(),x=t??g;return s.jsx(W,{id:x,label:i,required:a,error:f,helpText:u,className:l,children:s.jsx("textarea",{id:x,name:r,className:v("form-control","rrc-input",f&&"is-invalid"),disabled:n,readOnly:o,required:a,placeholder:c,rows:N,maxLength:k,value:w,onChange:j=>S(j.target.value),onBlur:b})})}function Nr({value:e,defaultValue:t,onChange:r,min:n,max:o,step:a,...l}){const[i,c]=V({value:e,defaultValue:t??null,onChange:r});return s.jsx(re,{...l,value:i===null?"":String(i),onChange:u=>{if(u.trim()===""){c(null);return}const f=Number(u);Number.isNaN(f)||c(f)},inputProps:{inputMode:"decimal",min:n,max:o,step:a}})}function kr(e){const[t,r]=d.useState(!1);return s.jsx(re,{...e,inputProps:{type:t?"text":"password",autoComplete:"current-password"},endAdornment:s.jsx("button",{type:"button",className:"btn btn-outline-secondary rrc-btn rrc-input-group__action","aria-label":t?"Hide password":"Show password","aria-pressed":t,onClick:()=>r(n=>!n),children:t?"Hide":"Show"})})}function wr({id:e,name:t,disabled:r,required:n,className:o,label:a,helpText:l,error:i,accept:c,multiple:u,onChange:f}){const p=d.useId(),m=e??p;return s.jsx(W,{id:m,label:a,required:n,error:i,helpText:l,className:o,children:s.jsx("input",{id:m,name:t,type:"file",className:v("form-control","rrc-input",i&&"is-invalid"),disabled:r,required:n,accept:c,multiple:u,onChange:h=>f==null?void 0:f(h.target.files)})})}function pt({id:e,name:t,disabled:r,required:n,wrapperClassName:o,role:a,label:l,helpText:i,error:c,checked:u,onChange:f,className:p}){const m=d.useId(),h=e??m;return s.jsxs("div",{className:v(o,p),children:[s.jsx("input",{id:h,name:t,type:"checkbox",role:a,className:v("form-check-input","rrc-check",c&&"is-invalid"),disabled:r,required:n,checked:u,onChange:b=>f(b.target.checked)}),l&&s.jsx("label",{htmlFor:h,className:"form-check-label rrc-check__label",children:l}),s.jsx(Ie,{error:c,helpText:i})]})}function Sr(e){const[t,r]=V({value:e.checked,defaultValue:e.defaultChecked??!1,onChange:e.onChange});return s.jsx(pt,{id:e.id,name:e.name,disabled:e.disabled,required:e.required,className:e.className,wrapperClassName:"form-check mb-3",label:e.label,helpText:e.helpText,error:e.error,checked:t,onChange:r})}function _r(e){const[t,r]=V({value:e.checked,defaultValue:e.defaultChecked??!1,onChange:e.onChange});return s.jsx(pt,{id:e.id,name:e.name,disabled:e.disabled,required:e.required,className:e.className,wrapperClassName:"form-check form-switch mb-3",role:"switch",label:e.label,helpText:e.helpText,error:e.error,checked:t,onChange:r})}function ht({id:e,name:t,value:r,label:n,checked:o,disabled:a,className:l,onChange:i}){const c=d.useId(),u=e??c;return s.jsxs("div",{className:v("form-check","rrc-check-row",l),children:[s.jsx("input",{id:u,name:t,type:"radio",className:"form-check-input rrc-check",value:String(r),checked:o,disabled:a,onChange:()=>i==null?void 0:i(r)}),n&&s.jsx("label",{htmlFor:u,className:"form-check-label rrc-check__label",children:n})]})}function Cr({options:e,value:t,defaultValue:r,onChange:n,inline:o,id:a,name:l,disabled:i,required:c,className:u,label:f,helpText:p,error:m}){const[h,b]=V({value:t,defaultValue:r??null,onChange:w=>{w!==null&&(n==null||n(w))}}),N=d.useId(),k=l??a??N;return s.jsx(W,{label:f,required:c,error:m,helpText:p,className:u,children:s.jsx("div",{role:"radiogroup","aria-label":f,"aria-required":c,className:v("rrc-radio-group",o&&"d-flex gap-3 rrc-radio-group--inline"),children:e.map(w=>s.jsx(ht,{name:k,value:w.value,label:w.label,checked:w.value===h,disabled:i||w.disabled,onChange:S=>b(S)},String(w.value)))})})}function bt({options:e,value:t,defaultValue:r,onChange:n,placeholder:o,loading:a,id:l,name:i,disabled:c,readOnly:u,required:f,className:p,label:m,helpText:h,error:b}){const[N,k]=V({value:t,defaultValue:r??null,onChange:n}),w=d.useId(),S=l??w;return s.jsx(W,{id:S,label:m,required:f,error:b,helpText:h,className:p,children:s.jsxs("select",{id:S,name:i,className:v("form-select","rrc-select",b&&"is-invalid"),disabled:c||u||a,required:f,value:N===null?"":String(N),onChange:g=>{const x=g.target.value;if(x===""){k(null);return}const j=e.find(C=>String(C.value)===x);k(j?j.value:null)},children:[a&&s.jsx("option",{value:"",children:"Loading…"}),!a&&o&&s.jsx("option",{value:"",children:o}),e.map(g=>s.jsx("option",{value:String(g.value),disabled:g.disabled,children:g.label},String(g.value)))]})})}function ge(e,t){d.useEffect(()=>{if(!e)return;function r(n){n.key==="Escape"&&t()}return document.addEventListener("keydown",r),()=>document.removeEventListener("keydown",r)},[e,t])}function X({open:e,onClose:t,anchorRef:r,className:n,role:o,children:a}){const l=d.useRef(null);return ge(e,t),d.useEffect(()=>{if(!e)return;function i(c){var f,p;const u=c.target;(f=l.current)!=null&&f.contains(u)||(p=r.current)!=null&&p.contains(u)||t()}return document.addEventListener("mousedown",i),()=>document.removeEventListener("mousedown",i)},[e,t,r]),e?s.jsx("div",{ref:l,className:v("show","rrc-popup",n),role:o,children:a}):null}function ye({itemCount:e,isOpen:t,onSelect:r,onClose:n}){const[o,a]=d.useState(-1);d.useEffect(()=>{t||a(-1)},[t]),ge(t,n);const l=d.useCallback(i=>{if(!t){(i.key==="ArrowDown"||i.key==="Enter")&&i.preventDefault();return}switch(i.key){case"ArrowDown":i.preventDefault(),a(c=>e===0?-1:(c+1)%e);break;case"ArrowUp":i.preventDefault(),a(c=>e===0?-1:(c-1+e)%e);break;case"Home":i.preventDefault(),a(e===0?-1:0);break;case"End":i.preventDefault(),a(e===0?-1:e-1);break;case"Enter":o>=0&&(i.preventDefault(),r(o));break}},[t,e,o,r]);return{activeIndex:o,setActiveIndex:a,handleKeyDown:l}}function vt({options:e,values:t,defaultValues:r,onChange:n,loading:o,emptyText:a="No options",id:l,name:i,disabled:c,readOnly:u,required:f,className:p,label:m,placeholder:h="Select...",helpText:b,error:N}){const[k,w]=V({value:t,defaultValue:r??[],onChange:n}),[S,g]=d.useState(!1),x=d.useRef(null),j=d.useId(),C=l??j,y=new Set(k),R=d.useCallback(()=>g(!1),[]),_=d.useCallback(A=>{const I=e[A];if(!I||I.disabled)return;const M=y.has(I.value)?k.filter(D=>D!==I.value):[...k,I.value];w(M)},[e,k,y,w]),{activeIndex:E,setActiveIndex:P,handleKeyDown:B}=ye({itemCount:e.length,isOpen:S,onSelect:_,onClose:R}),L=e.filter(A=>y.has(A.value)).map(A=>A.label).join(", ");return s.jsx(W,{id:C,label:m,required:f,error:N,helpText:b,className:p,children:s.jsxs("div",{className:"position-relative",children:[s.jsx("button",{ref:x,id:C,type:"button",name:i,className:v("form-select text-start","rrc-select","rrc-select__trigger",N&&"is-invalid"),disabled:c||u,"aria-haspopup":"listbox","aria-expanded":S,onClick:()=>g(A=>!A),onKeyDown:B,children:L||s.jsx("span",{className:"text-body-secondary",children:h})}),s.jsx(X,{open:S,onClose:R,anchorRef:x,className:"dropdown-menu w-100 rrc-menu rrc-select__menu",role:"listbox",children:o?s.jsx("div",{className:"px-3 py-2 text-body-secondary",children:"Loading…"}):e.length===0?s.jsx("div",{className:"px-3 py-2 text-body-secondary",children:a}):e.map((A,I)=>s.jsxs("div",{role:"option","aria-selected":y.has(A.value),className:v("dropdown-item d-flex align-items-center gap-2",I===E&&"active",A.disabled&&"disabled"),onMouseEnter:()=>P(I),onMouseDown:M=>{M.preventDefault(),A.disabled||_(I)},children:[s.jsx("input",{type:"checkbox",className:"form-check-input m-0",checked:y.has(A.value),readOnly:!0,tabIndex:-1}),A.label]},String(A.value)))})]})})}function J(e){if(!e)return"";const t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),n=String(e.getDate()).padStart(2,"0");return`${t}-${r}-${n}`}function Me(e){if(!e)return null;const t=e.split("-").map(Number),[r,n,o]=t;return!r||!n||!o?null:new Date(r,n-1,o)}function xt({value:e,defaultValue:t,onChange:r,min:n,max:o,...a}){const[l,i]=V({value:e,defaultValue:t??null,onChange:r});return s.jsx(re,{...a,value:J(l),onChange:c=>i(Me(c)),inputProps:{type:"date",min:n?J(n):void 0,max:o?J(o):void 0}})}function De(e){if(!e)return"";const t=String(e.getHours()).padStart(2,"0"),r=String(e.getMinutes()).padStart(2,"0");return`${t}:${r}`}function Ae(e){if(!e)return null;const[t,r]=e.split(":").map(Number);return t===void 0||r===void 0||Number.isNaN(t)||Number.isNaN(r)?null:new Date(1970,0,1,t,r,0,0)}function Er({value:e,defaultValue:t,onChange:r,step:n,...o}){const[a,l]=V({value:e,defaultValue:t??null,onChange:r});return s.jsx(re,{...o,value:De(a),onChange:i=>l(Ae(i)),inputProps:{type:"time",step:n}})}function nt(e,t){const r=Me(e);if(!r)return null;const n=Ae(t||"00:00");return n&&r.setHours(n.getHours(),n.getMinutes(),0,0),r}function Rr({value:e,defaultValue:t,onChange:r,min:n,max:o,id:a,name:l,disabled:i,readOnly:c,required:u,className:f,label:p,helpText:m,error:h}){const[b,N]=V({value:e,defaultValue:t??null,onChange:r}),k=d.useId(),w=a??k,S=J(b),g=De(b);return s.jsx(W,{id:w,label:p,required:u,error:h,helpText:m,className:f,children:s.jsxs("div",{className:"d-flex gap-2",children:[s.jsx("input",{id:w,name:l?`${l}-date`:void 0,type:"date",className:v("form-control","rrc-input",h&&"is-invalid"),disabled:i,readOnly:c,required:u,min:n?J(n):void 0,max:o?J(o):void 0,value:S,onChange:x=>N(nt(x.target.value,g))}),s.jsx("input",{name:l?`${l}-time`:void 0,type:"time",className:v("form-control","rrc-input",h&&"is-invalid"),disabled:i,readOnly:c,required:u,value:g,onChange:x=>N(nt(S||J(new Date),x.target.value))})]})})}function gt({options:e,value:t,defaultValue:r,onChange:n,loading:o,emptyText:a="No options",id:l,name:i,disabled:c,readOnly:u,required:f,className:p,label:m,placeholder:h="Select...",helpText:b,error:N}){const[k,w]=V({value:t,defaultValue:r??null,onChange:n}),[S,g]=d.useState(!1),x=d.useRef(null),j=d.useId(),C=l??j,y=e.find(O=>O.value===k)??null,R=d.useCallback(()=>g(!1),[]),_=d.useCallback(O=>{const L=e[O];!L||L.disabled||(w(L.value),R())},[e,w,R]),{activeIndex:E,setActiveIndex:P,handleKeyDown:B}=ye({itemCount:e.length,isOpen:S,onSelect:_,onClose:R});return s.jsx(W,{id:C,label:m,required:f,error:N,helpText:b,className:p,children:s.jsxs("div",{className:"position-relative",children:[s.jsx("button",{ref:x,id:C,type:"button",name:i,className:v("form-select text-start","rrc-select","rrc-select__trigger",N&&"is-invalid"),disabled:c||u,"aria-haspopup":"listbox","aria-expanded":S,onClick:()=>g(O=>!O),onKeyDown:B,children:y?y.label:s.jsx("span",{className:"text-body-secondary",children:h})}),s.jsx(X,{open:S,onClose:R,anchorRef:x,className:"dropdown-menu w-100 rrc-menu rrc-select__menu",role:"listbox",children:o?s.jsx("div",{className:"px-3 py-2 text-body-secondary",children:"Loading…"}):e.length===0?s.jsx("div",{className:"px-3 py-2 text-body-secondary",children:a}):e.map((O,L)=>s.jsx("div",{role:"option","aria-selected":O.value===k,className:v("dropdown-item","rrc-menu__item",L===E&&"active",O.disabled&&"disabled"),onMouseEnter:()=>P(L),onMouseDown:A=>{A.preventDefault(),O.disabled||_(L)},children:O.label},String(O.value)))})]})})}function Ir(e,t){return t?e.label.toLowerCase().includes(t.toLowerCase()):!0}function yt({options:e,value:t,defaultValue:r,onChange:n,inputValue:o,onInputValueChange:a,loading:l,emptyText:i="No results",filter:c,id:u,name:f,disabled:p,readOnly:m,required:h,className:b,label:N,placeholder:k,helpText:w,error:S}){const[g,x]=V({value:t,defaultValue:r??null,onChange:n}),j=e.find(K=>K.value===g)??null,[C,y]=V({value:o,defaultValue:(j==null?void 0:j.label)??"",onChange:a}),[R,_]=d.useState(!1),E=d.useRef(null),P=d.useId(),B=u??P,O=c??Ir,L=e.filter(K=>O(K,C)),A=d.useCallback(()=>_(!1),[]),I=d.useCallback(K=>{const H=L[K];!H||H.disabled||(x(H.value),y(H.label),A())},[L,x,y,A]),{activeIndex:M,setActiveIndex:D,handleKeyDown:G}=ye({itemCount:L.length,isOpen:R,onSelect:I,onClose:A});return s.jsx(W,{id:B,label:N,required:h,error:S,helpText:w,className:b,children:s.jsxs("div",{className:"position-relative",children:[s.jsx("input",{ref:E,id:B,name:f,type:"text",className:v("form-control","rrc-input",S&&"is-invalid"),disabled:p,readOnly:m,required:h,placeholder:k,autoComplete:"off",role:"combobox","aria-expanded":R,"aria-haspopup":"listbox",value:C,onFocus:()=>_(!0),onChange:K=>{const H=K.target.value;y(H),_(!0),g!==null&&x(null)},onKeyDown:G}),s.jsx(X,{open:R,onClose:A,anchorRef:E,className:"dropdown-menu w-100 rrc-menu rrc-select__menu",role:"listbox",children:l?s.jsx("div",{className:"px-3 py-2 text-body-secondary",children:"Loading…"}):L.length===0?s.jsx("div",{className:"px-3 py-2 text-body-secondary",children:i}):L.map((K,H)=>s.jsx("div",{role:"option","aria-selected":K.value===g,className:v("dropdown-item","rrc-menu__item",H===M&&"active",K.disabled&&"disabled"),onMouseEnter:()=>D(H),onMouseDown:T=>{T.preventDefault(),K.disabled||I(H)},children:K.label},String(K.value)))})]})})}function Mr(e){return s.jsx(W,{...e})}function jt({open:e,onClose:t,title:r,children:n,footer:o,className:a}){return ge(e,t),e?s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"modal d-block rrc-modal",tabIndex:-1,role:"dialog","aria-modal":"true",children:s.jsx("div",{className:v("modal-dialog","rrc-modal__dialog",a),role:"document",children:s.jsxs("div",{className:"modal-content rrc-modal__content",children:[s.jsxs("div",{className:"modal-header rrc-modal__header",children:[r&&s.jsx("h5",{className:"modal-title",children:r}),s.jsx("button",{type:"button",className:"btn-close","aria-label":"Close",onClick:t})]}),s.jsx("div",{className:"modal-body rrc-modal__body",children:n}),o&&s.jsx("div",{className:"modal-footer rrc-modal__footer",children:o})]})})}),s.jsx("div",{className:"modal-backdrop show rrc-modal__backdrop",onClick:t})]}):null}function Dr(e,t,r){const n=[],o=Math.max(1,e-r),a=Math.min(t,e+r);o>1&&(n.push(1),o>2&&n.push("ellipsis"));for(let l=o;l<=a;l++)n.push(l);return a<t&&(a<t-1&&n.push("ellipsis"),n.push(t)),n}function Nt({currentPage:e,pageSize:t,totalItems:r,onPageChange:n,siblingCount:o=1,className:a}){const l=Math.max(1,Math.ceil(r/t)),i=Dr(e,l,o);return s.jsx("nav",{"aria-label":"Pagination",className:a,children:s.jsxs("ul",{className:"pagination mb-0 rrc-pagination",children:[s.jsx("li",{className:v("page-item",e<=1&&"disabled"),children:s.jsx("button",{type:"button",className:"page-link",disabled:e<=1,onClick:()=>n(e-1),children:"Previous"})}),i.map((c,u)=>c==="ellipsis"?s.jsx("li",{className:"page-item disabled",children:s.jsx("span",{className:"page-link",children:"…"})},`ellipsis-${u}`):s.jsx("li",{className:v("page-item",c===e&&"active"),children:s.jsx("button",{type:"button",className:"page-link","aria-current":c===e?"page":void 0,onClick:()=>n(c),children:c})},c)),s.jsx("li",{className:v("page-item",e>=l&&"disabled"),children:s.jsx("button",{type:"button",className:"page-link",disabled:e>=l,onClick:()=>n(e+1),children:"Next"})})]})})}const kt=typeof window>"u"?d.useEffect:d.useLayoutEffect;function Ar(e,t,r){const n=d.useRef(r);kt(()=>{n.current=r}),d.useEffect(()=>{if(!t)return;const o=e.current;if(!o)return;const a=()=>n.current();if(typeof ResizeObserver<"u"){const l=new ResizeObserver(a);return l.observe(o),()=>l.disconnect()}if(!(typeof window>"u"))return window.addEventListener("resize",a),()=>window.removeEventListener("resize",a)},[e,t])}const Tr=["Responsive","Hide"];function Pr(e){return typeof e=="string"&&Tr.includes(e)}function Lr(e,t){var n,o;const r=e.filter(a=>a.isData&&!a.isUtility);if(t!==void 0){const a=r.find(l=>l.key===t);if(a)return a.key}return((n=r.find(a=>a.isTextual))==null?void 0:n.key)??((o=r[0])==null?void 0:o.key)}function Or(e,t){const r=[],n=new Map(e.map(i=>[i.key,i])),o=Lr(e,t==null?void 0:t.primaryColumn);(t==null?void 0:t.primaryColumn)!==void 0&&t.primaryColumn!==o&&r.push({kind:"invalid-primary-column",detail:`"${t.primaryColumn}" is not an eligible data column; ${o===void 0?"no primary column could be resolved":`"${o}" was resolved instead`}`});const a=[],l=new Set;for(const i of(t==null?void 0:t.columns)??[]){const c=n.get(i.field);if(!c){r.push({kind:"unknown-column",detail:i.field});continue}if(l.has(i.field)){r.push({kind:"duplicate-rule",detail:i.field});continue}if(!Pr(i.behavior)){r.push({kind:"invalid-behavior",detail:`${i.field} -> ${String(i.behavior)}`});continue}if(i.field===o){r.push({kind:"primary-column-rule",detail:i.field}),l.add(i.field);continue}if(c.isUtility&&i.behavior==="Responsive"){r.push({kind:"utility-column-responsive",detail:i.field}),l.add(i.field);continue}l.add(i.field),a.push({key:i.field,behavior:i.behavior})}for(const i of e)l.has(i.key)||i.key!==o&&(!i.isData||i.isUtility||a.push({key:i.key,behavior:"Responsive"}));return{primaryKey:o,rules:a,problems:r}}function Vr(e){const t=e.rules.map(n=>`${n.key}:${n.behavior}`).join(","),r=e.problems.map(n=>`${n.kind}:${n.detail}`).join(",");return`${e.primaryKey??""}|${t}|${r}`}const $r=1,Br=16;function Kr({enabled:e,containerRef:t,ruleCount:r,signature:n}){const[o,a]=d.useState(0),l=d.useRef(0),i=d.useRef(null),c=d.useRef(-1),u=d.useRef(0);d.useEffect(()=>{l.current=0,i.current=null,c.current=-1,u.current=0,a(0)},[n,e]);const f=d.useCallback(()=>{if(!e)return;const p=t.current;if(!p)return;const m=p.clientWidth;if(m<=0||(m!==c.current&&(c.current=m,u.current=0),u.current>r+2))return;const h=p.scrollWidth-m>$r,b=l.current;let N=b;if(h)b<r&&(N=b+1,i.current=m);else if(b>0){const k=i.current;(k===null||m>k+Br)&&(N=b-1)}N!==b&&(u.current+=1,l.current=N,a(N))},[e,t,r]);return kt(f),Ar(t,e,f),e?o:0}const Fr={"unknown-column":"names a column that does not exist and was ignored","duplicate-rule":"is listed more than once; only the first rule was kept","primary-column-rule":"targets the primary column, which never leaves the row, and was ignored","invalid-behavior":'has an unsupported behavior; use "Responsive" or "Hide"',"utility-column-responsive":'is an action/command column and has no meaningful label/value form, so its "Responsive" rule was ignored — use "Hide" to drop it instead',"invalid-primary-column":"is not usable as the primary column"};function Hr(e,t){const{problems:r}=e;d.useEffect(()=>{if(process.env.NODE_ENV!=="production"&&r.length!==0)for(const n of r)console.error(`[react-components] DataGrid responsive configuration: "${n.detail}" ${Fr[n.kind]}.`)},[t])}const wt={text:e=>e==null?"":String(e),boolean:e=>e?"Yes":"No",date:e=>{if(e==null||e==="")return"";const t=e instanceof Date?e:new Date(String(e));return Number.isNaN(t.getTime())?String(e):t.toLocaleDateString()},currency:e=>{const t=Number(e);return Number.isFinite(t)?t.toLocaleString(void 0,{style:"currency",currency:"USD"}):String(e??"")}},Ur={primaryKey:void 0,rules:[],problems:[]},Wr=[];function Gr(e){const t=e.field??e.key,r=e.render!==void 0&&e.field===void 0,n=!r&&t!==void 0;return{key:ee(e),isData:n,isUtility:r,isTextual:n&&(e.format===void 0||e.format==="text")}}function qr(e,t){return!e||e.key!==t?{key:t,direction:"asc"}:e.direction==="asc"?{key:t,direction:"desc"}:null}function ee(e){return e.key??e.field??e.header}function zr(e,t){const r=e.field??e.key;return r?t[r]:void 0}function st(e,t){if(e.render)return e.render(t);const r=zr(e,t);return e.formatter?e.formatter(r,t):e.format?wt[e.format](r):r==null?"":String(r)}function ot(e){return e&&`text-${e}`}function St({columns:e,rows:t,rowKey:r,loading:n,error:o,emptyText:a="No data",className:l,selectedRowKeys:i,onSelectionChange:c,sort:u,onSortChange:f,page:p,pageSize:m,totalCount:h,onPageChange:b,responsive:N}){const k=!!c,w=new Set(i??[]),S=p!==void 0&&m!==void 0&&h!==void 0,g=S?Math.max(1,Math.ceil(h/m)):1,x=d.useRef(null),j=N!==void 0,C=d.useMemo(()=>e.map(Gr),[e]),y=d.useMemo(()=>N===void 0?Ur:Or(C,N),[C,N]),R=Vr(y);Hr(y,R);const _=Kr({enabled:j,containerRef:x,ruleCount:y.rules.length,signature:R}),E=y.rules.slice(0,_);let P=e,B=Wr;if(E.length>0){const I=new Set(E.map(D=>D.key));P=e.filter(D=>!I.has(ee(D)));const M=new Map(e.map(D=>[ee(D),D]));B=E.filter(D=>D.behavior==="Responsive").map(D=>M.get(D.key)).filter(D=>D!==void 0)}const O=Math.max(1,P.length+(k?1:0));function L(){c&&(w.size===t.length?c([]):c(t.map(r)))}function A(I){if(!c)return;const M=new Set(w);M.has(I)?M.delete(I):M.add(I),c(Array.from(M))}return s.jsxs("div",{ref:x,className:v("table-responsive","rrc-data-grid",j&&"rrc-data-grid--responsive",l),children:[s.jsxs("table",{className:"table table-hover align-middle rrc-data-grid__table",children:[s.jsx("thead",{children:s.jsxs("tr",{children:[k&&s.jsx("th",{style:{width:"2.5rem"},children:s.jsx("input",{type:"checkbox",className:"form-check-input",checked:t.length>0&&w.size===t.length,onChange:L,"aria-label":"Select all rows"})}),P.map(I=>{const M=ee(I);return s.jsxs("th",{className:ot(I.headerAlign??I.align),style:{width:I.width,minWidth:I.minWidth,maxWidth:I.maxWidth},role:I.sortable?"button":void 0,onClick:I.sortable&&f?()=>f(qr(u,M)):void 0,children:[I.header,I.sortable&&(u==null?void 0:u.key)===M&&s.jsxs("span",{"aria-hidden":"true",children:[" ",u.direction==="asc"?"▲":"▼"]})]},M)})]})}),s.jsx("tbody",{children:n?s.jsx("tr",{children:s.jsx("td",{colSpan:O,className:"text-center text-body-secondary py-4",children:"Loading…"})}):o?s.jsx("tr",{children:s.jsx("td",{colSpan:O,className:"text-center text-danger py-4",children:o})}):t.length===0?s.jsx("tr",{children:s.jsx("td",{colSpan:O,className:"text-center text-body-secondary py-4",children:a})}):t.map(I=>{const M=r(I);return s.jsxs(d.Fragment,{children:[s.jsxs("tr",{children:[k&&s.jsx("td",{children:s.jsx("input",{type:"checkbox",className:"form-check-input",checked:w.has(M),onChange:()=>A(M),"aria-label":"Select row"})}),P.map(D=>s.jsx("td",{className:ot(D.align),children:st(D,I)},ee(D)))]}),B.length>0&&s.jsx("tr",{className:"rrc-data-grid__detail-row",children:s.jsx("td",{colSpan:O,className:"rrc-data-grid__detail-cell",children:s.jsx("dl",{className:"rrc-data-grid__details",children:B.map(D=>s.jsxs("div",{className:"rrc-data-grid__detail-item",children:[s.jsx("dt",{className:"rrc-data-grid__detail-term",children:D.header}),s.jsx("dd",{className:"rrc-data-grid__detail-value",children:st(D,I)})]},ee(D)))})})})]},M)})})]}),S&&s.jsxs("div",{className:"d-flex justify-content-between align-items-center mt-2 rrc-data-grid__footer",children:[s.jsxs("span",{className:"text-body-secondary small",children:["Page ",p," of ",g," (",h," rows)"]}),s.jsx(Nt,{currentPage:p,pageSize:m,totalItems:h,onPageChange:b})]})]})}function _t({size:e="md",variant:t,className:r,label:n="Loading..."}){return s.jsx("span",{className:v("spinner-border","rrc-spinner",e==="sm"&&"spinner-border-sm",t&&`text-${t}`,r),role:"status",children:s.jsx("span",{className:"visually-hidden",children:n})})}function ce({variant:e="primary",size:t,disabled:r,loading:n,type:o="button",className:a,children:l,onClick:i,...c}){const u=r||n;return s.jsxs("button",{type:o,className:v("btn",`btn-${e}`,t&&`btn-${t}`,"rrc-btn",`rrc-btn--${e}`,a),disabled:u,"aria-busy":n||void 0,onClick:u?void 0:i,...c,children:[n&&s.jsx(_t,{size:"sm",className:"me-2",label:""}),l]})}function Te({variant:e="info",dismissible:t,onDismiss:r,className:n,children:o}){return s.jsxs("div",{className:v("alert",`alert-${e}`,t&&"alert-dismissible","rrc-alert",`rrc-alert--${e}`,n),role:"alert",children:[o,t&&s.jsx("button",{type:"button",className:"btn-close","aria-label":"Close",onClick:r})]})}const Ct=d.createContext(null),Yr=4e3;function Jr({children:e}){const[t,r]=d.useState([]),n=d.useRef(0),o=d.useRef(new Map);d.useEffect(()=>{const c=o.current;return()=>{c.forEach(clearTimeout),c.clear()}},[]);const a=d.useCallback(c=>{const u=o.current.get(c);u&&(clearTimeout(u),o.current.delete(c)),r(f=>f.filter(p=>p.id!==c))},[]),l=d.useCallback((c,u)=>{const f=n.current++,p=(u==null?void 0:u.variant)??"info",m=(u==null?void 0:u.duration)??Yr;return r(h=>[...h,{id:f,message:c,variant:p}]),m>0&&o.current.set(f,setTimeout(()=>a(f),m)),f},[a]),i=d.useMemo(()=>({show:l,dismiss:a,success:(c,u)=>l(c,{...u,variant:"success"}),error:(c,u)=>l(c,{...u,variant:"danger"}),info:(c,u)=>l(c,{...u,variant:"info"}),warning:(c,u)=>l(c,{...u,variant:"warning"})}),[l,a]);return s.jsxs(Ct.Provider,{value:i,children:[e,s.jsx("div",{className:"toast-container position-fixed bottom-0 end-0 p-3 rrc-toast-container",style:{zIndex:1090},children:t.map(c=>s.jsx(Te,{variant:c.variant,dismissible:!0,onDismiss:()=>a(c.id),className:"shadow-sm",children:c.message},c.id))})]})}function Xr(){const e=d.useContext(Ct);if(!e)throw new Error("useToast must be used within a ToastProvider");return e}const Et=d.createContext(null);function Zr({children:e}){const[t,r]=d.useState(null),n=d.useCallback(a=>new Promise(l=>{r({...a,resolve:l})}),[]),o=d.useCallback(a=>{t==null||t.resolve(a),r(null)},[t]);return s.jsxs(Et.Provider,{value:n,children:[e,s.jsx(jt,{open:t!==null,onClose:()=>o(!1),title:(t==null?void 0:t.title)??"Confirm",footer:s.jsxs(s.Fragment,{children:[s.jsx(ce,{variant:"outline-secondary",onClick:()=>o(!1),children:(t==null?void 0:t.cancelLabel)??"Cancel"}),s.jsx(ce,{variant:(t==null?void 0:t.confirmVariant)??"danger",onClick:()=>o(!0),children:(t==null?void 0:t.confirmLabel)??"Confirm"})]}),children:t==null?void 0:t.message})]})}function Qr(){const e=d.useContext(Et);if(!e)throw new Error("useConfirm must be used within a ConfirmProvider");return e}function Rt({variant:e="primary",appearance:t="solid",pill:r,className:n,children:o}){return s.jsx("span",{className:v("badge",t==="solid"&&`bg-${e}`,r&&"rounded-pill","rrc-badge",`rrc-badge--${e}`,`rrc-badge--${t}`,n),children:o})}const en={sm:"0.875em",lg:"1.5em",xl:"2em"};function je({name:e,size:t,className:r,label:n}){return s.jsx("i",{className:v(e,"rrc-icon",r),style:t?{fontSize:en[t]}:void 0,role:n?"img":void 0,"aria-label":n,"aria-hidden":n?void 0:!0})}function tn(e){switch(e){case"pill":return"nav-pills";case"underline":return"nav-underline";case"card":return"nav-tabs card-header-tabs";default:return"nav-tabs"}}const rn={sm:"small",lg:"fs-5"};function nn({items:e,activeKey:t,defaultActiveKey:r,onChange:n,variant:o="default",orientation:a="horizontal",size:l,stretch:i,className:c}){var x;const[u,f]=V({value:t,defaultValue:r??((x=e[0])==null?void 0:x.key)??"",onChange:n}),p=e.find(j=>j.key===u),m=o==="button",h=a==="vertical",b=d.useRef([]);function N(j,C){var R;const y=e[j];y&&(f(y.key),C&&((R=b.current[j])==null||R.focus()))}function k(j,C){var R;if(e.length===0)return j;let y=j;for(let _=0;_<e.length;_++)if(y=(y+C+e.length)%e.length,!((R=e[y])!=null&&R.disabled))return y;return j}function w(j){var _;const C=e.findIndex(E=>E.key===u),y=h?"ArrowDown":"ArrowRight",R=h?"ArrowUp":"ArrowLeft";if(j.key===y)j.preventDefault(),N(k(C,1),!0);else if(j.key===R)j.preventDefault(),N(k(C,-1),!0);else if(j.key==="Home"){j.preventDefault();const E=e.findIndex(P=>!P.disabled);E>=0&&N(E,!0)}else if(j.key==="End"){j.preventDefault();for(let E=e.length-1;E>=0;E--)if(!((_=e[E])!=null&&_.disabled)){N(E,!0);break}}}const S=s.jsx("div",{className:v(m?"btn-group":"nav","rrc-tabs__list",`rrc-tabs__list--${o}`,!m&&tn(o),!m&&h&&"flex-column",!m&&i&&"nav-fill",!m&&l&&rn[l]),role:"tablist","aria-orientation":a,onKeyDown:w,children:e.map((j,C)=>{const y=j.key===u,R=s.jsxs(s.Fragment,{children:[j.icon&&s.jsx(je,{name:j.icon,size:"sm",className:"me-1"}),j.label,j.badge!=null&&s.jsx(Rt,{variant:y&&!m?"primary":"secondary",appearance:"light",pill:!0,className:"ms-2",children:j.badge})]}),_=s.jsx("button",{ref:E=>{b.current[C]=E},type:"button",id:`tab-${j.key}`,className:v(m?v("btn",l?`btn-${l}`:"btn-sm",y?"btn-primary":"btn-outline-primary"):v("nav-link","rrc-tabs__link",y&&"active")),role:"tab","aria-selected":y,"aria-controls":`tabpanel-${j.key}`,tabIndex:y?0:-1,disabled:j.disabled,onClick:()=>N(C,!1),children:R},j.key);return m?_:s.jsx("div",{className:"nav-item",role:"presentation",children:_},j.key)})}),g=(p==null?void 0:p.content)!=null&&s.jsx("div",{id:`tabpanel-${p.key}`,className:v("tab-content","rrc-tabs__panel",!h&&"pt-3"),role:"tabpanel","aria-labelledby":`tab-${p.key}`,children:p.content});return h?s.jsxs("div",{className:v("d-flex align-items-start gap-3","rrc-tabs","rrc-tabs--vertical",c),children:[S,g&&s.jsx("div",{className:"flex-grow-1",children:g})]}):s.jsxs("div",{className:v("rrc-tabs",c),children:[S,g]})}function sn({items:e,multiple:t=!1,openKeys:r,defaultOpenKeys:n,onChange:o,className:a}){const[l,i]=V({value:r,defaultValue:n??[],onChange:o}),c=new Set(l);function u(f){c.has(f)?i(l.filter(p=>p!==f)):i(t?[...l,f]:[f])}return s.jsx("div",{className:v("accordion","rrc-accordion",a),children:e.map(f=>{const p=c.has(f.key);return s.jsxs("div",{className:"accordion-item rrc-accordion__item",children:[s.jsx("h2",{className:"accordion-header",children:s.jsx("button",{type:"button",className:v("accordion-button","rrc-accordion__button",!p&&"collapsed"),"aria-expanded":p,disabled:f.disabled,onClick:()=>u(f.key),children:f.header})}),p&&s.jsx("div",{className:"accordion-collapse",children:s.jsx("div",{className:"accordion-body rrc-accordion__body",children:f.content})})]},f.key)})})}function Pe({content:e,children:t,placement:r="top",className:n,wrapperClassName:o}){const[a,l]=d.useState(!1),i=d.useRef(null),c=d.useId();return s.jsxs("span",{ref:i,className:v("position-relative",o??"d-inline-block"),onMouseEnter:()=>l(!0),onMouseLeave:()=>l(!1),onFocus:()=>l(!0),onBlur:()=>l(!1),"aria-describedby":a?c:void 0,children:[t,s.jsx(X,{open:a,onClose:()=>l(!1),anchorRef:i,className:v("tooltip show",`bs-tooltip-${r}`,"position-absolute","w-auto","rrc-tooltip",n),children:s.jsx("span",{id:c,role:"tooltip",className:"tooltip-inner",children:e})})]})}function on({title:e,content:t,children:r,placement:n="bottom",className:o}){const[a,l]=d.useState(!1),i=d.useRef(null);return s.jsxs("span",{ref:i,className:"position-relative d-inline-block",onClick:()=>l(c=>!c),children:[r,s.jsxs(X,{open:a,onClose:()=>l(!1),anchorRef:i,className:v("popover show",`bs-popover-${n}`,"position-absolute","w-auto","rrc-popover",o),children:[e&&s.jsx("h3",{className:"popover-header rrc-popover__header",children:e}),s.jsx("div",{className:"popover-body rrc-popover__body",children:t})]})]})}function le({width:e="100%",height:t="1rem",circle:r,className:n}){return s.jsx("span",{className:v("placeholder-glow d-inline-block","rrc-skeleton",n),style:{width:e,height:t},"aria-hidden":"true",children:s.jsx("span",{className:v("placeholder w-100 h-100 d-block",r&&"rounded-circle")})})}function Le({direction:e="column",gap:t=2,align:r,justify:n,wrap:o,className:a,children:l}){return s.jsx("div",{className:v("d-flex","rrc-stack",e==="row"?"flex-row":"flex-column",`gap-${t}`,r&&`align-items-${r}`,n&&`justify-content-${n}`,o&&"flex-wrap",a),children:l})}const an={xs:"0.75rem",sm:"0.875rem",md:"1rem",lg:"1.25rem",xl:"1.5rem"},ln={normal:"fw-normal",medium:"fw-medium",semibold:"fw-semibold",bold:"fw-bold"},cn={default:void 0,muted:"text-body-secondary",primary:"text-primary",success:"text-success",danger:"text-danger",warning:"text-warning",info:"text-info"};function Y({as:e,size:t="md",weight:r,tone:n="default",align:o,truncate:a,wrap:l=!0,className:i,children:c}){const u=e??"span";return s.jsx(u,{className:v("rrc-text",r&&ln[r],cn[n],o&&`text-${o}`,a&&"text-truncate",!l&&!a&&"text-nowrap",i),style:{fontSize:an[t]},children:c})}function dn({title:e,subtitle:t,icon:r,avatar:n,actions:o}){return s.jsxs("div",{className:"d-flex align-items-center justify-content-between gap-3 rrc-card__header-row",children:[s.jsxs("div",{className:"d-flex align-items-center gap-3",style:{minWidth:0},children:[n||r&&s.jsx("span",{className:"fs-2 lh-1",children:r}),(e||t)&&s.jsxs("div",{style:{minWidth:0},children:[e&&s.jsx(Y,{as:"div",size:"lg",weight:"semibold",truncate:!0,children:e}),t&&s.jsx(Y,{as:"div",size:"sm",tone:"muted",truncate:!0,children:t})]})]}),o&&s.jsx("div",{className:"d-flex align-items-center gap-2 flex-shrink-0",children:o})]})}function un({title:e,subtitle:t,icon:r,avatar:n,actions:o,header:a,footer:l,loading:i,className:c,children:u}){const p=a??(!!(e||t||r||n||o)?s.jsx(dn,{title:e,subtitle:t,icon:r,avatar:n,actions:o}):void 0);return s.jsxs("div",{className:v("card","rrc-card",c),children:[p&&s.jsx("div",{className:"card-header rrc-card__header",children:p}),s.jsx("div",{className:"card-body rrc-card__body",children:i?s.jsxs(Le,{gap:2,children:[s.jsx(le,{height:"1rem",width:"60%"}),s.jsx(le,{height:"1rem"}),s.jsx(le,{height:"1rem",width:"80%"})]}):u}),l&&s.jsx("div",{className:"card-footer rrc-card__footer",children:l})]})}function It({className:e,vertical:t,label:r}){return t?s.jsx("div",{className:v("vr","rrc-divider",e),role:"separator","aria-orientation":"vertical"}):r?s.jsxs("div",{className:v("d-flex align-items-center gap-2 my-3","rrc-divider","rrc-divider--labelled",e),role:"separator",children:[s.jsx("hr",{className:"flex-grow-1 m-0"}),s.jsx("span",{className:"text-body-secondary small",children:r}),s.jsx("hr",{className:"flex-grow-1 m-0"})]}):s.jsx("hr",{className:v("my-3","rrc-divider",e),role:"separator"})}function fn({fluid:e,className:t,children:r}){return s.jsx("div",{className:v(e?"container-fluid":"container","rrc-container",t),children:r})}function mn({className:e,children:t}){return s.jsx("div",{className:v("row","rrc-row",e),children:t})}function pn({span:e,sm:t,md:r,lg:n,xl:o,className:a,children:l}){return s.jsx("div",{className:v(e?`col-${e}`:"col","rrc-col",t?`col-sm-${t}`:void 0,r?`col-md-${r}`:void 0,n?`col-lg-${n}`:void 0,o?`col-xl-${o}`:void 0,a),children:l})}function Mt({items:e,className:t}){return s.jsx("nav",{"aria-label":"breadcrumb",className:v("rrc-breadcrumb",t),children:s.jsx("ol",{className:"breadcrumb mb-0 rrc-breadcrumb__list",children:e.map((r,n)=>{const o=n===e.length-1,a=!o&&(r.href||r.onClick);return s.jsx("li",{className:v("breadcrumb-item",o&&"active"),"aria-current":o?"page":void 0,children:a?s.jsx("a",{href:r.href??"#",onClick:l=>{var i;r.href||l.preventDefault(),(i=r.onClick)==null||i.call(r)},children:r.label}):r.label},n)})})})}function hn({items:e,children:t,placement:r="start",className:n}){const[o,a]=d.useState(!1),l=d.useRef(null),i=d.useCallback(()=>a(!1),[]),c=d.useCallback(m=>{var b;const h=e[m];!h||h.disabled||((b=h.onSelect)==null||b.call(h),i())},[e,i]),{activeIndex:u,setActiveIndex:f,handleKeyDown:p}=ye({itemCount:e.length,isOpen:o,onSelect:c,onClose:i});return s.jsxs("span",{ref:l,className:"position-relative d-inline-block",onClick:()=>a(m=>!m),onKeyDown:p,children:[t,s.jsx(X,{open:o,onClose:i,anchorRef:l,role:"menu",className:v("dropdown-menu show",r==="end"&&"dropdown-menu-end","rrc-menu",n),children:e.map((m,h)=>s.jsx("button",{type:"button",role:"menuitem",className:v("dropdown-item","rrc-menu__item",h===u&&"active",m.disabled&&"disabled",m.danger&&"text-danger"),disabled:m.disabled,onMouseEnter:()=>f(h),onMouseDown:b=>b.preventDefault(),onClick:b=>{b.stopPropagation(),c(h)},children:m.label},m.key))})]})}function bn({steps:e,currentStep:t,className:r}){return s.jsx("ol",{className:v("d-flex list-unstyled align-items-center","rrc-stepper",r),children:e.map((n,o)=>{const a=o<t?"complete":o===t?"active":"upcoming",l=o===e.length-1;return s.jsxs("li",{className:v("d-flex align-items-center",!l&&"flex-grow-1"),children:[s.jsxs("div",{className:"d-flex align-items-center gap-2",children:[s.jsx("span",{className:v("d-flex align-items-center justify-content-center rounded-circle flex-shrink-0",a==="complete"?"bg-primary text-white":a==="active"?"border border-primary text-primary":"border text-body-secondary"),style:{width:"2rem",height:"2rem"},"aria-current":a==="active"?"step":void 0,children:a==="complete"?"✓":o+1}),s.jsxs("div",{children:[s.jsx("div",{className:v("small fw-semibold",a==="upcoming"&&"text-body-secondary"),children:n.label}),n.description&&s.jsx("div",{className:"small text-body-secondary",children:n.description})]})]}),!l&&s.jsx("hr",{className:"flex-grow-1 mx-2"})]},n.key)})})}function vn(e){var o,a;const t=e.trim().split(/\s+/),r=((o=t[0])==null?void 0:o[0])??"",n=t.length>1?((a=t[t.length-1])==null?void 0:a[0])??"":"";return(r+n).toUpperCase()}const xn={sm:"1.75rem",md:"2.5rem",lg:"3.5rem"};function gn({src:e,name:t,size:r="md",className:n}){const o=xn[r];return e?s.jsx("img",{src:e,alt:t??"",className:v("rounded-circle","rrc-avatar",n),style:{width:o,height:o,objectFit:"cover"}}):s.jsx("span",{className:v("d-inline-flex align-items-center justify-content-center rounded-circle bg-secondary text-white","rrc-avatar","rrc-avatar--initials",n),style:{width:o,height:o,fontSize:`calc(${o} * 0.4)`},role:t?"img":void 0,"aria-label":t,children:t?vn(t):null})}function yn({variant:e="secondary",appearance:t="solid",onRemove:r,className:n,children:o}){return s.jsxs("span",{className:v("badge d-inline-flex align-items-center gap-1",t==="solid"&&`bg-${e}`,"rrc-tag",`rrc-tag--${e}`,`rrc-tag--${t}`,n),children:[o,r&&s.jsx("button",{type:"button",className:"btn-close btn-close-white",style:{fontSize:"0.55rem"},"aria-label":"Remove",onClick:r})]})}function jn({value:e,defaultValue:t,onChange:r,min:n=0,max:o=100,step:a=1,id:l,name:i,disabled:c,required:u,className:f,label:p,helpText:m,error:h}){const[b,N]=V({value:e,defaultValue:t??n,onChange:r}),k=d.useId(),w=l??k;return s.jsxs(W,{id:w,label:p,required:u,error:h,helpText:m,className:f,children:[s.jsx("input",{id:w,name:i,type:"range",className:"form-range rrc-range",disabled:c,required:u,min:n,max:o,step:a,value:b,onChange:S=>N(Number(S.target.value))}),s.jsx("div",{className:"small text-body-secondary",children:b})]})}function Nn({value:e,defaultValue:t,onChange:r,max:n=5,disabled:o,className:a}){const[l,i]=V({value:e,defaultValue:t??0,onChange:r});return s.jsx("div",{className:v("d-inline-flex gap-1","rrc-rating",a),role:"radiogroup","aria-label":"Rating",children:Array.from({length:n},(c,u)=>u+1).map(c=>s.jsx("button",{type:"button",className:"btn btn-link p-0 border-0 rrc-rating__star",disabled:o,role:"radio","aria-checked":c===l,"aria-label":`${c} star${c>1?"s":""}`,onClick:()=>i(c),children:s.jsx("span",{"aria-hidden":"true",style:{fontSize:"1.25rem",color:c<=l?"#f5b301":"#ced4da"},children:"★"})},c))})}function kn({value:e,variant:t="primary",label:r,className:n}){const o=Math.max(0,Math.min(100,e));return s.jsx("div",{className:v("progress","rrc-progress",n),role:"progressbar","aria-valuenow":o,"aria-valuemin":0,"aria-valuemax":100,children:s.jsx("div",{className:v("progress-bar","rrc-progress__bar",`bg-${t}`),style:{width:`${o}%`},children:r?`${Math.round(o)}%`:null})})}function wn({brand:e,start:t,end:r,variant:n="light",className:o}){return s.jsx("nav",{className:v("navbar navbar-expand-lg border-bottom","rrc-navbar",n==="dark"?"navbar-dark bg-dark":"navbar-light bg-light",o),children:s.jsxs("div",{className:"container-fluid",children:[e&&s.jsx("span",{className:"navbar-brand mb-0",children:e}),t&&s.jsx("div",{className:"d-flex align-items-center gap-3",children:t}),r&&s.jsx("div",{className:"d-flex align-items-center gap-3 ms-auto",children:r})]})})}const Oe=["primary","primaryActive","primaryLight","primaryInverse","primaryRgb","componentActiveColor","componentActiveBg","componentHoverColor","componentHoverBg","componentCheckedColor","componentCheckedBg","menuLinkColorHover","menuLinkColorShow","menuLinkColorHere","menuLinkColorActive"];function Dt(e){if(typeof e!="object"||e===null)return!1;const t=e;if(typeof t.id!="string"||t.id.length===0||typeof t.tokens!="object"||t.tokens===null)return!1;const r=t.tokens;return Oe.every(n=>typeof r[n]=="string"&&r[n].length>0)}function ie(e){const{id:t,primary:r,primaryActive:n,primaryLight:o,primaryInverse:a,primaryRgb:l,swatch:i}=e;return{id:t,...i!==void 0?{swatch:i}:{},tokens:{primary:r,primaryActive:n,primaryLight:o,primaryInverse:a,primaryRgb:l,componentActiveColor:a,componentActiveBg:r,componentHoverColor:n,componentHoverBg:o,componentCheckedColor:a,componentCheckedBg:r,menuLinkColorHover:n,menuLinkColorShow:n,menuLinkColorHere:n,menuLinkColorActive:r}}}const Sn=[ie({id:"blue",primary:"#0d6efd",primaryActive:"#0a58ca",primaryLight:"#cfe2ff",primaryInverse:"#ffffff",primaryRgb:"13, 110, 253"}),ie({id:"indigo",primary:"#6610f2",primaryActive:"#520dc2",primaryLight:"#e0cffc",primaryInverse:"#ffffff",primaryRgb:"102, 16, 242"}),ie({id:"teal",primary:"#13795b",primaryActive:"#0d503c",primaryLight:"#d2f4ea",primaryInverse:"#ffffff",primaryRgb:"19, 121, 91",swatch:"#20c997"}),ie({id:"green",primary:"#198754",primaryActive:"#146c43",primaryLight:"#d1e7dd",primaryInverse:"#ffffff",primaryRgb:"25, 135, 84"})],Ne="blue",de=new Map(Sn.map(e=>[e.id,e]));function _n(e){if(!Dt(e))throw new Error("[react-components] registerColorScheme() requires a complete token family: "+Oe.join(", ")+".");de.set(e.id,e)}function At(e){return de.get(e)}function Tt(){return[...de.values()]}function Pt(e){const t=e!==void 0?de.get(e):void 0;return t||de.get(Ne)}function Lt(e){const t=e.tokens;return{"--bs-primary":t.primary,"--bs-primary-rgb":t.primaryRgb,"--bs-primary-active":t.primaryActive,"--bs-primary-light":t.primaryLight,"--bs-primary-inverse":t.primaryInverse,"--bs-component-active-color":t.componentActiveColor,"--bs-component-active-bg":t.componentActiveBg,"--bs-component-hover-color":t.componentHoverColor,"--bs-component-hover-bg":t.componentHoverBg,"--bs-component-checked-color":t.componentCheckedColor,"--bs-component-checked-bg":t.componentCheckedBg,"--bs-menu-link-color-hover":t.menuLinkColorHover,"--bs-menu-link-color-show":t.menuLinkColorShow,"--bs-menu-link-color-here":t.menuLinkColorHere,"--bs-menu-link-color-active":t.menuLinkColorActive,"--rrc-primary":t.primary,"--rrc-primary-rgb":t.primaryRgb,"--rrc-primary-active":t.primaryActive,"--rrc-primary-inverse":t.primaryInverse,"--rrc-component-active-color":t.componentActiveColor,"--rrc-component-active-bg":t.componentActiveBg,"--rrc-component-hover-bg":t.componentHoverBg,"--rrc-component-checked-color":t.componentCheckedColor,"--rrc-component-checked-bg":t.componentCheckedBg}}const Ve=["light","dark","system"],$e=["compact","grouped"],Be=["light","dark","auto"],Ke=d.createContext(void 0);function Cn(e){return typeof e=="string"&&Ve.includes(e)}function En(e){return typeof e=="string"&&$e.includes(e)}function Rn(e){return typeof e=="string"&&Be.includes(e)}function In(e,t){let r;try{r=e.getItem(t)}catch{return{}}if(!r)return{};let n;try{n=JSON.parse(r)}catch{return{}}if(typeof n!="object"||n===null)return{};const o=n,a={};return Cn(o.mode)&&(a.mode=o.mode),En(o.sidebarPresentation)&&(a.sidebarPresentation=o.sidebarPresentation),Rn(o.sidebarTone)&&(a.sidebarTone=o.sidebarTone),typeof o.colorSchemeId=="string"&&At(o.colorSchemeId)&&(a.colorSchemeId=o.colorSchemeId),a}function Mn({children:e,mode:t,defaultMode:r,onModeChange:n,sidebarPresentation:o,defaultSidebarPresentation:a,onSidebarPresentationChange:l,sidebarTone:i,defaultSidebarTone:c,onSidebarToneChange:u,colorSchemeId:f,defaultColorSchemeId:p,onColorSchemeIdChange:m,storage:h,storageKey:b,applyTo:N="none",themeAttribute:k="data-bs-theme"}){const[w,S]=V({value:t,defaultValue:r??"system",onChange:n}),[g,x]=V({value:o,defaultValue:a??"grouped",onChange:l}),[j,C]=V({value:i,defaultValue:c??"auto",onChange:u}),[y,R]=V({value:f,defaultValue:p??Ne,onChange:m}),[_,E]=d.useState("light");d.useEffect(()=>{if(typeof window>"u"||typeof window.matchMedia!="function")return;const T=window.matchMedia("(prefers-color-scheme: dark)");E(T.matches?"dark":"light");const F=U=>E(U.matches?"dark":"light");if(typeof T.addEventListener=="function")return T.addEventListener("change",F),()=>T.removeEventListener("change",F);if(typeof T.addListener=="function")return T.addListener(F),()=>T.removeListener(F)},[]);const P=h!==void 0&&b!==void 0,[B,O]=d.useState(!1),L={mode:t!==void 0,sidebarPresentation:o!==void 0,sidebarTone:i!==void 0,colorSchemeId:f!==void 0},A=d.useRef(L);A.current=L;const I=d.useRef({setMode:S,setSidebarPresentation:x,setSidebarTone:C,setColorSchemeId:R});I.current={setMode:S,setSidebarPresentation:x,setSidebarTone:C,setColorSchemeId:R},d.useEffect(()=>{if(!P)return;const T=In(h,b),F=A.current,U=I.current;T.mode!==void 0&&!F.mode&&U.setMode(T.mode),T.sidebarPresentation!==void 0&&!F.sidebarPresentation&&U.setSidebarPresentation(T.sidebarPresentation),T.sidebarTone!==void 0&&!F.sidebarTone&&U.setSidebarTone(T.sidebarTone),T.colorSchemeId!==void 0&&!F.colorSchemeId&&U.setColorSchemeId(T.colorSchemeId),O(!0)},[P,h,b]),d.useEffect(()=>{if(!(!P||!B))try{h.setItem(b,JSON.stringify({mode:w,sidebarPresentation:g,sidebarTone:j,colorSchemeId:y}))}catch{}},[P,B,h,b,w,g,j,y]);const M=w==="system"?_:w,D=Pt(y),G=d.useMemo(()=>Lt(D),[D]);d.useEffect(()=>{if(N==="none"||typeof document>"u")return;const T=N==="body"?document.body:document.documentElement;if(!T)return;const F=T.getAttribute(k);T.setAttribute(k,M);for(const[U,Q]of Object.entries(G))T.style.setProperty(U,Q);return()=>{F===null?T.removeAttribute(k):T.setAttribute(k,F);for(const U of Object.keys(G))T.style.removeProperty(U)}},[N,k,M,G]);const K=d.useMemo(()=>({"data-bs-theme":M,style:G}),[M,G]),H=d.useMemo(()=>({mode:w,sidebarPresentation:g,sidebarTone:j,colorSchemeId:y,resolvedTheme:M,systemTheme:_,colorScheme:D,setMode:S,setSidebarPresentation:x,setSidebarTone:C,setColorSchemeId:R,appearanceProps:K}),[w,g,j,y,M,_,D,S,x,C,R,K]);return s.jsx(Ke.Provider,{value:H,children:e})}function Dn(){const e=d.useContext(Ke);if(!e)throw new Error("[react-components] useAppearance() must be used inside an <AppearanceProvider>.");return e}function Ot(){return d.useContext(Ke)}function An({storageKey:e,themeAttribute:t="data-bs-theme",target:r="documentElement",defaultMode:n="system"}){const o=u=>JSON.stringify(u).replace(/</g,"\\u003C"),a=o(e),l=o(t),i=o(n),c=r==="body"?"document.body":"document.documentElement";return"(function(){try{var raw=window.localStorage.getItem("+a+");var mode="+i+";if(raw){var parsed=JSON.parse(raw);if(parsed&&typeof parsed.mode==='string'){mode=parsed.mode;}}var dark=mode==='dark'||(mode==='system'&&window.matchMedia('(prefers-color-scheme: dark)').matches);"+c+".setAttribute("+l+",dark?'dark':'light');}catch(e){}})();"}function Vt(e){return e.type==="collapsible"||e.type==="group"}function Fe(e){return e.type==="collapsible"||e.type==="group"&&e.collapsible===!0}function He(e){return"items"in e}function $t(e){return e.map(t=>He(t)?Tn(t):Bt(t))}function Tn(e){return{type:"group",key:e.key,label:e.label,collapsible:!0,children:e.items.map(Bt)}}function Bt(e){const t={key:e.key,label:e.label,...e.icon!==void 0?{icon:e.icon}:{},...e.disabled!==void 0?{disabled:e.disabled}:{}},r=e.onClick?()=>{var n;return(n=e.onClick)==null?void 0:n.call(e)}:void 0;return e.href!==void 0?{...t,type:"link",href:e.href,...r?{onSelect:r}:{}}:{...t,type:"action",...r?{onSelect:r}:{}}}function Kt(e){return e.filter(He).filter(t=>t.defaultOpen).map(t=>t.key)}function Ft(e){for(const t of e)if(He(t)){const r=t.items.find(n=>n.active);if(r)return r.key}else if(t.active)return t.key}function Pn(e){const t=new Map,r=[],n=[];function o(l,i,c){const u=[];for(const f of l){const p={item:f,key:f.key,depth:i,ancestors:c,children:[]};t.has(f.key)?n.push(f.key):(t.set(f.key,p),r.push(f.key)),Vt(f)&&(p.children=o(f.children,i+1,[...c,f.key])),u.push(p)}return u}return{roots:o(e,0,[]),byKey:t,order:r,duplicateKeys:n}}function te(e,t){const r=new Set(t),n=e.filter(a=>r.has(a)),o=new Set(n);for(const a of r)o.has(a)||n.push(a);return n}function Ln(e,t,r,n){const o=e.byKey.get(r),a=new Set(t);if(a.has(r)){if(a.delete(r),o)for(const l of Ht(o))a.delete(l);return te(e.order,a)}if(n==="single"){const l=new Set(o?o.ancestors:[]);return l.add(r),te(e.order,l)}if(a.add(r),o)for(const l of o.ancestors)a.add(l);return te(e.order,a)}function at(e,t,r,n){if(r.length===0)return te(e.order,new Set(t));if(n==="single")return te(e.order,new Set(r));const o=new Set(t);for(const a of r)o.add(a);return te(e.order,o)}function On(e,t){return e.length===t.length&&e.every((r,n)=>r===t[n])}function Ht(e){const t=[];for(const r of e.children)t.push(r.key),t.push(...Ht(r));return t}function Ut(e,t){var r;return t===void 0?[]:((r=e.byKey.get(t))==null?void 0:r.ancestors)??[]}function it(e,t){return Ut(e,t).filter(r=>{const n=e.byKey.get(r);return n!==void 0&&Fe(n.item)})}const Vn=typeof document<"u"?d.useLayoutEffect:d.useEffect,$n=Symbol("unresolved-active-key");function Bn(e){if(e.type!=="divider")return e.ariaLabel!==void 0?e.ariaLabel:typeof e.label=="string"?e.label:void 0}function Kn(e,t){return`${e}-${t.replace(/[^A-Za-z0-9_-]/g,"_")}`}function _e({node:e,expandable:t}){const r=e.item;return r.type==="divider"?null:s.jsxs(s.Fragment,{children:[r.icon!==void 0&&s.jsx("span",{className:"rrc-sidebar__icon","aria-hidden":"true",children:r.icon}),s.jsx("span",{className:"rrc-sidebar__label",children:r.label}),r.badge!==void 0&&s.jsx("span",{className:"rrc-sidebar__badge",children:r.badge}),t&&s.jsx("span",{className:"rrc-sidebar__arrow","aria-hidden":"true"})]})}function Ce({name:e,children:t}){return e===void 0?s.jsx(s.Fragment,{children:t}):s.jsx(Pe,{content:e,placement:"bottom",wrapperClassName:"rrc-sidebar__tooltip",children:t})}function Fn(e){if(!e)return;const t=e.getBoundingClientRect(),r=(e.closest(".rrc-sidebar")??e).getBoundingClientRect(),n=getComputedStyle(e).direction==="rtl",o=document.documentElement.clientWidth;e.style.setProperty("--rrc-rail-tip-block-start",`${Math.round(t.top+t.height/2)}px`),e.style.setProperty("--rrc-rail-tip-inline-start",`${Math.round(n?o-r.left:r.right)}px`)}function Ee(e){if(!e)return{};const t=r=>Fn(r.currentTarget);return{onPointerEnter:t,onFocusCapture:t}}function ve({node:e,ctx:t}){const r=e.item,n=d.useRef(null),[o,a]=d.useState(!1),l=d.useCallback(()=>a(!1),[]);if(Vn(()=>{const g=n.current;if(!o||!g)return;const x=()=>{const j=g.getBoundingClientRect(),C=(g.closest(".rrc-sidebar")??g).getBoundingClientRect(),y=getComputedStyle(g).direction==="rtl",R=document.documentElement.clientWidth;g.style.setProperty("--rrc-flyout-block-start",`${Math.round(j.top)}px`),g.style.setProperty("--rrc-flyout-inline-start",`${Math.round(y?R-C.left:C.right)}px`)};return x(),window.addEventListener("scroll",x,!0),window.addEventListener("resize",x),()=>{window.removeEventListener("scroll",x,!0),window.removeEventListener("resize",x)}},[o]),r.type==="divider")return s.jsx("li",{role:"none",className:v("rrc-sidebar__divider",r.className),children:s.jsx(It,{className:"my-1"})});const i={"--rrc-sidebar-depth":String(Math.max(0,e.depth-t.depthOffset))},c=Bn(r),u=t.activeKey===r.key,f=t.activeAncestors.has(r.key),p=Fe(r),m=p&&t.expanded.has(r.key),h=Kn(t.idPrefix,r.key),b=v("rrc-sidebar__row",u&&"rrc-sidebar__row--active",f&&"rrc-sidebar__row--active-ancestor",r.disabled&&"rrc-sidebar__row--disabled",r.className);if(r.type==="link"){const g=C=>{if(r.disabled){C.preventDefault();return}t.select(r,C)},x={item:r,href:r.href,className:v(b,"rrc-sidebar__row--link"),style:i,children:s.jsx(_e,{node:e,expandable:!1}),onClick:g,"aria-current":u?"page":void 0,"aria-disabled":r.disabled?!0:void 0,"aria-label":t.collapsed?c:void 0,"data-active-ancestor":f?"true":void 0,target:r.target,rel:r.rel},j=t.renderLink?t.renderLink(x):s.jsx("a",{href:x.href,className:x.className,style:x.style,onClick:x.onClick,"aria-current":x["aria-current"],"aria-disabled":x["aria-disabled"],"aria-label":x["aria-label"],"data-active-ancestor":x["data-active-ancestor"],target:x.target,rel:x.rel,children:x.children});return s.jsx("li",{className:"rrc-sidebar__item",...Ee(t.collapsed),children:t.collapsed?s.jsx(Ce,{name:c,children:j}):j})}if(r.type==="action"){const g=s.jsx("button",{type:"button",className:v(b,"rrc-sidebar__row--action"),style:i,disabled:r.disabled,"aria-label":t.collapsed?c:void 0,"data-active-ancestor":f?"true":void 0,"data-active":u?"true":void 0,onClick:x=>t.select(r,x),children:s.jsx(_e,{node:e,expandable:!1})});return s.jsx("li",{className:"rrc-sidebar__item",...Ee(t.collapsed),children:t.collapsed?s.jsx(Ce,{name:c,children:g}):g})}if(!p){const g=`${h}-title`;return s.jsxs("li",{className:v("rrc-sidebar__item","rrc-sidebar__group",r.className),children:[s.jsxs("div",{className:"rrc-sidebar__group-title",id:g,style:i,children:[r.icon!==void 0&&s.jsx("span",{className:"rrc-sidebar__icon","aria-hidden":"true",children:r.icon}),s.jsx("span",{className:"rrc-sidebar__label",children:r.label}),r.badge!==void 0&&s.jsx("span",{className:"rrc-sidebar__badge",children:r.badge})]}),s.jsx("ul",{className:"rrc-sidebar__menu rrc-sidebar__submenu","aria-labelledby":g,children:e.children.map(x=>s.jsx(ve,{node:x,ctx:{...t,depthOffset:t.depthOffset+1}},x.key))})]})}const N=s.jsx("ul",{className:"rrc-sidebar__menu rrc-sidebar__submenu",id:h,children:e.children.map(g=>s.jsx(ve,{node:g,ctx:t},g.key))}),k=t.collapsed,w=()=>{r.disabled||(k?a(g=>!g):t.toggle(r.key))},S=s.jsx("button",{type:"button",className:v(b,"rrc-sidebar__row--toggle",r.type==="group"&&"rrc-sidebar__row--group-toggle"),style:i,disabled:r.disabled,"aria-expanded":k?o:m,"aria-controls":h,"aria-label":t.collapsed?c:void 0,"data-active-ancestor":f?"true":void 0,onClick:w,children:s.jsx(_e,{node:e,expandable:!0})});return s.jsxs("li",{ref:n,className:v("rrc-sidebar__item",k&&"rrc-sidebar__item--flyout-anchor"),...Ee(t.collapsed),children:[k?s.jsx(Ce,{name:c,children:S}):S,k?s.jsx(X,{open:o,onClose:l,anchorRef:n,className:"rrc-sidebar__flyout",children:s.jsx("ul",{className:"rrc-sidebar__menu rrc-sidebar__submenu",id:h,children:e.children.map(g=>s.jsx(ve,{node:g,ctx:{...t,collapsed:!1,depthOffset:e.depth+1}},g.key))})}):m&&N]})}function Hn({collapsed:e,toggle:t,label:r}){return s.jsx("button",{type:"button",className:"rrc-sidebar__collapse-btn","aria-label":r,onClick:t,children:s.jsx("svg",{className:v("rrc-sidebar__collapse-icon",e&&"rrc-sidebar__collapse-icon--collapsed"),viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",focusable:"false",children:s.jsx("path",{d:"M14.5 6.5 9 12l5.5 5.5"})})})}function Un({items:e,sections:t,variant:r,tone:n,activeKey:o,expandActivePath:a=!1,activePathExpansion:l,expandedKeys:i,defaultExpandedKeys:c,onExpandedKeysChange:u,expandMode:f="multiple",collapsed:p,defaultCollapsed:m,onCollapsedChange:h,collapsible:b=!1,renderCollapseControl:N,collapseLabel:k="Collapse sidebar",expandLabel:w="Expand sidebar",mobileOpen:S,defaultMobileOpen:g,onMobileOpenChange:x,mobileLabel:j,closeMobileOnSelect:C=!0,header:y,footer:R,collapsedFooter:_,className:E,navLabel:P,onSelect:B,renderLink:O}){const L=Ot(),A=t??[],I=d.useMemo(()=>e!==void 0?e:$t(A),[e,t]),M=d.useMemo(()=>Pn(I),[I]),D=M.duplicateKeys.join(", ");d.useEffect(()=>{process.env.NODE_ENV!=="production"&&D.length>0&&console.error("[react-components] Sidebar received duplicate item keys: "+D+". Keys must be unique and stable: expansion and active state are keyed by them, so every duplicate shares one identity and the first occurrence in tree order defines it.")},[D]);const G=d.useMemo(()=>Kt(A),[t]),K=o??(e===void 0?Ft(A):void 0),H=l??(a?"on-active-change":"never"),T=d.useRef(null);if(T.current===null){const $=c??G;T.current=H==="never"?$:at(M,$,it(M,K),f)}const[F,U]=V({value:i,defaultValue:T.current,onChange:u}),[Q,xr]=V({value:p,defaultValue:m??!1,onChange:h}),[q,me]=V({value:S,defaultValue:g??!1,onChange:x}),z=K,pe=d.useMemo(()=>new Set(Ut(M,z)),[M,z]),qe=d.useMemo(()=>{const $=new Set(F);if(H==="always")for(const Z of pe)$.add(Z);return $},[F,H,pe]),ke=d.useRef(F);ke.current=F;const we=d.useRef($n);d.useEffect(()=>{if(H!=="on-active-change"){we.current=z;return}if(we.current===z)return;we.current=z;const $=it(M,z);if($.length===0)return;const Z=at(M,ke.current,$,f);On(Z,ke.current)||U(Z)},[H,z,M,f,U]);const ze=d.useCallback($=>U(Ln(M,F,$,f)),[M,F,f,U]),Ye=d.useCallback(()=>me(!1),[me]);ge(q,Ye);const Se=d.useRef(null);d.useEffect(()=>{if(typeof document>"u")return;if(q){Se.current=document.activeElement;return}const $=Se.current;Se.current=null,$ instanceof HTMLElement&&$.isConnected&&$.focus()},[q]);const Je=d.useCallback(($,Z)=>{var rt;$.disabled||((rt=$.onSelect)==null||rt.call($,$,Z),B==null||B($,Z),C&&q&&me(!1))},[B,C,q,me]),Xe=d.useId(),he=r??(L==null?void 0:L.sidebarPresentation)??"grouped",Ze=n??(L==null?void 0:L.sidebarTone)??"auto",ae=Q&&!q,gr=d.useMemo(()=>({variant:he,collapsed:ae,expanded:qe,activeKey:z,activeAncestors:pe,toggle:ze,select:Je,renderLink:O,idPrefix:Xe,depthOffset:0}),[he,ae,qe,z,pe,ze,Je,O,Xe]),Qe={collapsed:Q,toggle:()=>xr(!Q),label:Q?w:k},et=ae?_:R,tt=s.jsxs("aside",{className:v("rrc-sidebar",`rrc-sidebar--${he}`,ae?"rrc-sidebar--collapsed":"rrc-sidebar--expanded",q&&"rrc-sidebar--mobile-open",E),"data-variant":he,"data-collapsed":ae?"true":"false","data-bs-theme":Ze==="auto"?void 0:Ze,...q?{role:"dialog","aria-modal":!0,"aria-label":j??P}:{},children:[s.jsxs("div",{className:"rrc-sidebar__panel",children:[(y!==void 0||b)&&s.jsx("div",{className:"rrc-sidebar__header",children:y!==void 0&&s.jsx("div",{className:"rrc-sidebar__brand",children:y})}),s.jsx("nav",{className:"rrc-sidebar__body","aria-label":P,children:s.jsx("ul",{className:"rrc-sidebar__menu rrc-sidebar__menu--root",children:M.roots.map($=>s.jsx(ve,{node:$,ctx:gr},$.key))})}),et!==void 0&&s.jsx("div",{className:"rrc-sidebar__footer",children:et})]}),b&&s.jsx("div",{className:"rrc-sidebar__collapse",children:N?N(Qe):s.jsx(Hn,{...Qe})})]});return q?s.jsxs("div",{className:"rrc-sidebar-drawer",children:[s.jsx("div",{className:"rrc-sidebar-drawer__backdrop",onClick:Ye,"data-testid":"rrc-sidebar-backdrop"}),tt]}):tt}function Wn({title:e,description:t,breadcrumbItems:r,actions:n,className:o}){return s.jsxs("div",{className:v("mb-4","rrc-page-header",o),children:[r&&r.length>0&&s.jsx(Mt,{items:r,className:"mb-2 rrc-page-header__breadcrumb"}),s.jsxs("div",{className:"d-flex align-items-start justify-content-between gap-3 flex-wrap rrc-page-header__row",children:[s.jsxs("div",{children:[s.jsx("h1",{className:"h3 mb-1 rrc-page-header__title",children:e}),t&&s.jsx("p",{className:"text-body-secondary mb-0 rrc-page-header__description",children:t})]}),n&&s.jsx("div",{className:"d-flex align-items-center gap-2 rrc-page-header__actions",children:n})]})]})}const Gn={xs:1,sm:2,md:3,lg:4,xl:5};function qn(e){return typeof e=="number"?e:Gn[e]}function zn({direction:e="row",gap:t="sm",grow:r,shrink:n,fullWidth:o,className:a,...l}){return s.jsx(Le,{direction:e,gap:qn(t),className:v("rrc-flex",r&&"flex-grow-1",n&&"flex-shrink-0",o&&"w-100",a),...l})}function Yn({icon:e,"aria-label":t,iconSize:r,tooltip:n,variant:o="light",loading:a,className:l,...i}){const c=s.jsx(ce,{variant:o,loading:a,className:v("btn-icon","rrc-btn-icon",l),"aria-label":t,...i,children:!a&&s.jsx(je,{name:e,size:r})});return n?s.jsx(Pe,{content:n,children:c}):c}function Jn({leading:e,title:t,description:r,trailing:n,onClick:o,disabled:a,dense:l,className:i}){const c=s.jsxs(s.Fragment,{children:[e&&s.jsx("span",{className:"flex-shrink-0 d-inline-flex align-items-center rrc-list-item__leading",children:e}),s.jsxs("span",{className:"flex-grow-1",style:{minWidth:0},children:[s.jsx("span",{className:"d-block text-truncate rrc-list-item__title",children:t}),r&&s.jsx("span",{className:"d-block text-truncate small text-body-secondary rrc-list-item__description",children:r})]}),n&&s.jsx("span",{className:"flex-shrink-0 d-inline-flex align-items-center rrc-list-item__trailing",children:n})]}),u=v("d-flex align-items-center text-start","rrc-list-item",o&&"rrc-list-item--interactive",l?"gap-2 py-1":"gap-3 py-2",o&&"w-100 border-0 bg-transparent",a&&"opacity-50",i);return o?s.jsx("button",{type:"button",className:u,onClick:o,disabled:a,children:c}):s.jsx("div",{className:u,"aria-disabled":a||void 0,children:c})}function Xn(e,t,r,n){if(e.length===0)return[];const o=Math.min(...e),l=Math.max(...e)-o||1,i=t-n*2,c=r-n*2,u=e.length>1?i/(e.length-1):0;return e.map((f,p)=>{const m=n+u*p,h=n+c-(f-o)/l*c;return[m,h]})}function Zn({type:e,data:t,width:r,height:n,strokeWidth:o}){const a=o,l=Xn(t,r,n,a);if(l.length===0)return null;const i=l.map(([c,u])=>`${c},${u}`).join(" ");return s.jsxs(s.Fragment,{children:[e==="area"&&s.jsx("polygon",{points:`${a},${n-a} ${i} ${r-a},${n-a}`,fill:"currentColor",opacity:.2,stroke:"none"}),s.jsx("polyline",{points:i,fill:"none",stroke:"currentColor",strokeWidth:o,strokeLinecap:"round",strokeLinejoin:"round"})]})}function Qn({data:e,width:t,height:r}){if(e.length===0)return null;const n=Math.min(0,...e),a=Math.max(0,...e)-n||1,l=2,i=Math.max((t-l*(e.length-1))/e.length,1);return s.jsx(s.Fragment,{children:e.map((c,u)=>{const f=Math.max((c-n)/a*r,1),p=u*(i+l),m=r-f;return s.jsx("rect",{x:p,y:m,width:i,height:f,rx:1,fill:"currentColor"},u)})})}function es({type:e="line",data:t,tone:r="primary",width:n=80,height:o=28,strokeWidth:a=2,className:l,label:i}){return s.jsx("svg",{width:n,height:o,viewBox:`0 0 ${n} ${o}`,className:v(`text-${r}`,"rrc-sparkline",l),role:i?"img":void 0,"aria-label":i,"aria-hidden":i?void 0:!0,children:e==="bar"?s.jsx(Qn,{data:t,width:n,height:o}):s.jsx(Zn,{type:e,data:t,width:n,height:o,strokeWidth:a})})}const ts={up:"success",down:"danger",neutral:"muted"},rs={up:"bi bi-arrow-up-short",down:"bi bi-arrow-down-short",neutral:"bi bi-dash"};function ns(e,t){return typeof e=="number"&&t!=null?e.toFixed(t):String(e)}function ss({label:e,value:t,prefix:r,suffix:n,precision:o,trend:a,delta:l,loading:i,className:c}){return s.jsxs("div",{className:v("d-flex flex-column gap-1","rrc-statistic",c),children:[s.jsx(Y,{size:"sm",tone:"muted",children:e}),i?s.jsx(le,{height:"1.75rem",width:"60%"}):s.jsxs("div",{className:"d-flex align-items-baseline gap-1",children:[r&&s.jsx(Y,{size:"lg",weight:"semibold",children:r}),s.jsx(Y,{size:"xl",weight:"bold",children:ns(t,o)}),n&&s.jsx(Y,{size:"lg",weight:"semibold",children:n})]}),!i&&(a||l!=null)&&s.jsxs(Y,{size:"sm",tone:a?ts[a]:"muted",className:"d-inline-flex align-items-center gap-1",children:[a&&s.jsx(je,{name:rs[a],size:"sm"}),l]})]})}function be({title:e,options:t,value:r,onChange:n,className:o}){const a=d.useId(),l=d.useRef([]);function i(u,f){var h;if(t.length===0)return;const p=(u+f+t.length)%t.length,m=t[p];m&&(n(m.value),(h=l.current[p])==null||h.focus())}function c(u){const f=t.findIndex(p=>p.value===r);u.key==="ArrowDown"||u.key==="ArrowRight"?(u.preventDefault(),i(f,1)):(u.key==="ArrowUp"||u.key==="ArrowLeft")&&(u.preventDefault(),i(f,-1))}return s.jsxs("div",{className:v("rrc-appearance__section",o),children:[s.jsx("div",{className:"rrc-appearance__title",id:a,children:e}),s.jsx("div",{className:"rrc-appearance__options",role:"radiogroup","aria-labelledby":a,onKeyDown:c,children:t.map((u,f)=>{const p=u.value===r;return s.jsxs("button",{ref:m=>{l.current[f]=m},type:"button",role:"radio","aria-checked":p,tabIndex:p?0:-1,className:v("rrc-appearance__option",p&&"rrc-appearance__option--selected"),onClick:()=>n(u.value),children:[u.adornment,s.jsx("span",{className:"rrc-appearance__option-label",children:u.label}),s.jsx("span",{className:"rrc-appearance__check","aria-hidden":"true"})]},u.value)})})]})}function os({labels:e,sections:t,className:r,mode:n,onModeChange:o,sidebarPresentation:a,onSidebarPresentationChange:l,sidebarTone:i,onSidebarToneChange:c,colorSchemeId:u,onColorSchemeIdChange:f,colorSchemes:p}){const m=Ot(),h={presentation:(t==null?void 0:t.presentation)??!0,mode:(t==null?void 0:t.mode)??!0,tone:(t==null?void 0:t.tone)??!0,colorScheme:(t==null?void 0:t.colorScheme)??!0},b=n??(m==null?void 0:m.mode)??"system",N=a??(m==null?void 0:m.sidebarPresentation)??"grouped",k=i??(m==null?void 0:m.sidebarTone)??"auto",w=u??(m==null?void 0:m.colorSchemeId)??Ne,S=y=>{o==null||o(y),n===void 0&&(m==null||m.setMode(y))},g=y=>{l==null||l(y),a===void 0&&(m==null||m.setSidebarPresentation(y))},x=y=>{c==null||c(y),i===void 0&&(m==null||m.setSidebarTone(y))},j=y=>{f==null||f(y),u===void 0&&(m==null||m.setColorSchemeId(y))},C=p??Tt();return s.jsxs("div",{className:v("rrc-appearance",r),children:[h.presentation&&s.jsx(be,{title:e.presentation.title,value:N,onChange:g,options:$e.map(y=>({value:y,label:e.presentation[y]}))}),h.mode&&s.jsx(be,{title:e.mode.title,value:b,onChange:S,options:Ve.map(y=>({value:y,label:e.mode[y]}))}),h.tone&&s.jsx(be,{title:e.tone.title,value:k,onChange:x,options:Be.map(y=>({value:y,label:e.tone[y]}))}),h.colorScheme&&s.jsx(be,{title:e.colorScheme.title,value:w,onChange:j,className:"rrc-appearance__section--schemes",options:C.map(y=>({value:y.id,label:e.colorScheme.options[y.id]??y.id,adornment:s.jsx("span",{className:"rrc-appearance__swatch",style:{backgroundColor:y.swatch??y.tokens.primary},"aria-hidden":"true"})}))})]})}function as(e,t){if(typeof e=="function"){e(t);return}!e||typeof e!="object"||(e.current=t)}function is(...e){return t=>{for(const r of e)as(r,t)}}function ls({children:e,container:t}){const[r,n]=d.useState(null);return d.useEffect(()=>{if(t){n(t);return}n(typeof document>"u"?null:document.body)},[t]),r?yr.createPortal(e,r):null}const Wt=new WeakMap;function ue(e,t){return Wt.set(e,t),e}function Gt(e){if(!d.isValidElement(e))return;const{type:t}=e;if(!(typeof t!="function"&&typeof t!="object"))return Wt.get(t)}function Ue(e){const t=[];return d.Children.forEach(e,r=>{if(!(r==null||typeof r=="boolean")){if(d.isValidElement(r)&&r.type===d.Fragment){const n=r.props;t.push(...Ue(n.children));return}t.push(r)}}),t}function cs(e){let t;const r=[];for(const n of Ue(e)){if(Gt(n)==="menu"&&d.isValidElement(n)){t||(t=n);continue}r.push(n)}return{menu:t,content:r}}function ds(e){return Ue(e).some(t=>{const r=Gt(t);return r==="label"||r==="separator"?!1:r==="item"||r==="submenu"?d.isValidElement(t)?t.props.hidden!==!0:!1:r!=="menu"})}const qt=8;function xe(e,t,r){return r<t?t:Math.min(Math.max(e,t),r)}function us(e,t,r,n=qt){const o=e.x+t.width+n>r.width?e.x-t.width:e.x,a=e.y+t.height+n>r.height?e.y-t.height:e.y;return{x:xe(o,n,r.width-t.width-n),y:xe(a,n,r.height-t.height-n)}}function fs(e,t,r,n=qt){const o=e.right+t.width+n>r.width?e.left-t.width:e.right,a=e.top+t.height+n>r.height?e.bottom-t.height:e.top;return{x:xe(o,n,r.width-t.width-n),y:xe(a,n,r.height-t.height-n)}}const We=d.createContext(null);function zt(e){return{"--rrc-context-menu-x":`${e.x}px`,"--rrc-context-menu-y":`${e.y}px`}}function Yt(){return{width:window.innerWidth,height:window.innerHeight}}function ms(e){return e instanceof HTMLButtonElement&&e.disabled?!0:e.getAttribute("aria-disabled")==="true"}function Jt(e){return Array.from(e.querySelectorAll('[role="menuitem"]')).filter(t=>t.closest('[role="menu"]')===e&&!ms(t))}function Xt(e){(Jt(e)[0]??e).focus()}function Zt({panelRef:e,onEscape:t,onStepOut:r}){return d.useCallback(n=>{const o=e.current;if(!o)return;const a=Jt(o),l=a.findIndex(u=>u===document.activeElement),i=u=>{const f=a[u];f&&f.focus()},c=()=>{n.preventDefault(),n.stopPropagation()};switch(n.key){case"ArrowDown":c(),a.length>0&&i((l+1)%a.length);return;case"ArrowUp":c(),a.length>0&&i(l<=0?a.length-1:l-1);return;case"Home":c(),a.length>0&&i(0);return;case"End":c(),a.length>0&&i(a.length-1);return;case"ArrowLeft":if(!r)return;c(),r();return;case"Escape":case"Tab":c(),t();return;default:return}},[e,t,r])}function ps({surface:e,label:t,className:r,children:n}){const{point:o,openId:a,close:l}=e,i=d.useRef(null),[c,u]=d.useState(o);d.useLayoutEffect(()=>{const m=i.current;if(!m)return;const h=m.getBoundingClientRect();u(us(o,{width:h.width,height:h.height},Yt()))},[o,a]),d.useLayoutEffect(()=>{const m=i.current;m&&Xt(m)},[a]),d.useEffect(()=>{function m(N){const k=i.current;return!!(k&&N instanceof Node&&k.contains(N))}function h(N){m(N.target)||l("dismiss")}function b(N){m(N.target)||l("dismiss")}return document.addEventListener("mousedown",h),window.addEventListener("resize",b),document.addEventListener("scroll",b,!0),()=>{document.removeEventListener("mousedown",h),window.removeEventListener("resize",b),document.removeEventListener("scroll",b,!0)}},[l]);const f=d.useCallback(()=>l("escape"),[l]),p=Zt({panelRef:i,onEscape:f});return s.jsx("div",{ref:i,role:"menu","aria-label":t,tabIndex:-1,className:v("rrc-context-menu",r),style:zt(c),onKeyDown:m=>{p(m),m.stopPropagation()},onClick:m=>m.stopPropagation(),onContextMenu:m=>{m.preventDefault(),m.stopPropagation()},children:n})}function Qt({children:e,className:t,"aria-label":r}){const n=d.useContext(We);return n?s.jsx(ls,{children:s.jsx(ps,{surface:n,label:r,className:t,children:e})}):null}function hs(e){console.error("[rich-react-component] ContextMenu.Item onSelect failed:",e)}function bs(e){if(!e)return;const t=e();t!==void 0&&Promise.resolve(t).then(void 0,hs)}function er({children:e,id:t,disabled:r,hidden:n,danger:o,icon:a,className:l,"aria-label":i,onSelect:c}){const u=d.useContext(We),f=d.useCallback(()=>{bs(c),u==null||u.close("select")},[c,u]);return n?null:s.jsxs("button",{type:"button",role:"menuitem",id:t,tabIndex:-1,disabled:r,"aria-disabled":r||void 0,"aria-label":i,className:v("rrc-context-menu__item",o&&"rrc-context-menu__item--danger",l),onClick:f,children:[a!==void 0&&s.jsx("span",{className:"rrc-context-menu__item-icon",children:a}),s.jsx("span",{className:"rrc-context-menu__item-label",children:e})]})}function tr({children:e,className:t}){return s.jsx("div",{role:"presentation",className:v("rrc-context-menu__label",t),children:e})}function rr({className:e}){return s.jsx("div",{role:"separator",className:v("rrc-context-menu__separator",e)})}function nr({label:e,children:t,id:r,disabled:n,hidden:o,icon:a,className:l,"aria-label":i}){const[c,u]=d.useState(!1),[f,p]=d.useState({x:0,y:0}),m=d.useRef(null),h=d.useRef(null),b=d.useRef(!1),N=d.useId(),k=r??`${N}trigger`,w=`${N}panel`,S=d.useCallback(()=>{var x;u(!1),(x=m.current)==null||x.focus()},[]);d.useLayoutEffect(()=>{if(!c){b.current=!1;return}const x=m.current,j=h.current;if(!x||!j)return;const C=x.getBoundingClientRect(),y=j.getBoundingClientRect();p(fs({left:C.left,right:C.right,top:C.top,bottom:C.bottom},{width:y.width,height:y.height},Yt())),b.current&&(b.current=!1,Xt(j))},[c]);const g=Zt({panelRef:h,onEscape:S,onStepOut:S});return o?null:s.jsxs("div",{role:"presentation",className:"rrc-context-menu__submenu",onMouseEnter:()=>{n||u(!0)},onMouseLeave:()=>u(!1),children:[s.jsxs("button",{ref:m,type:"button",role:"menuitem",id:k,tabIndex:-1,disabled:n,"aria-disabled":n||void 0,"aria-haspopup":"menu","aria-expanded":c,"aria-controls":c?w:void 0,"aria-label":i,className:v("rrc-context-menu__item","rrc-context-menu__item--submenu",l),onClick:()=>{b.current=!0,u(x=>!x)},onKeyDown:x=>{x.key==="ArrowRight"&&(x.preventDefault(),x.stopPropagation(),b.current=!0,u(!0))},children:[a!==void 0&&s.jsx("span",{className:"rrc-context-menu__item-icon",children:a}),s.jsx("span",{className:"rrc-context-menu__item-label",children:e}),s.jsx("span",{className:"rrc-context-menu__item-arrow","aria-hidden":"true"})]}),c&&s.jsx("div",{ref:h,id:w,role:"menu","aria-labelledby":k,tabIndex:-1,className:"rrc-context-menu rrc-context-menu--sub",style:zt(f),onKeyDown:g,children:t})]})}ue(Qt,"menu");ue(er,"item");ue(tr,"label");ue(rr,"separator");ue(nr,"submenu");const vs=Object.assign(Qt,{Item:er,Separator:rr,Label:tr,SubMenu:nr}),Re="rrc:context-menu-open";function xs(e){return typeof e=="object"&&e!==null&&typeof Reflect.get(e,"id")=="string"}const lt=Symbol.for("react.forward_ref"),gs=Symbol.for("react.memo");function ys(e){const{type:t}=e;if(typeof t=="string")return!0;if(typeof t!="object"||t===null)return!1;const r=Reflect.get(t,"$$typeof");if(r===lt)return!0;if(r!==gs)return!1;const n=Reflect.get(t,"type");return typeof n!="object"||n===null?!1:Reflect.get(n,"$$typeof")===lt}function ct(...e){return t=>{for(const r of e)r==null||r(t)}}function dt(...e){return t=>{for(const r of e)r==null||r(t)}}function js(e,t){if(e==="wrapper")return{mode:"wrapper"};const r=t.length===1?t[0]:void 0;return r===void 0||!d.isValidElement(r)?{mode:"wrapper"}:e==="child"?{mode:"child",child:r}:typeof r.type=="string"?{mode:"child",child:r}:{mode:"wrapper"}}const Ns=d.forwardRef(function({children:t,trigger:r="auto",as:n="div",className:o,style:a,onContextMenu:l,onKeyDown:i,...c},u){const f=d.useId(),{menu:p,content:m}=d.useMemo(()=>cs(t),[t]),h=d.useMemo(()=>{if(!p)return!1;const _=p.props;return _.disabled===!0?!1:ds(_.children)},[p]),[b,N]=d.useState(null),k=d.useRef(0),w=d.useRef(null),S=d.useCallback(_=>{N(null);const E=w.current;w.current=null,_!=="dismiss"&&E&&E.isConnected&&E.focus()},[]),g=d.useCallback((_,E)=>{if(b===null){const P=document.activeElement;w.current=P instanceof HTMLElement?P:null}document.dispatchEvent(new CustomEvent(Re,{detail:{id:f}})),k.current+=1,N({point:{x:_,y:E},openId:k.current})},[f,b]);d.useEffect(()=>{if(!b)return;function _(E){if(!(E instanceof CustomEvent))return;const P=E.detail;xs(P)&&P.id!==f&&S("dismiss")}return document.addEventListener(Re,_),()=>document.removeEventListener(Re,_)},[b,f,S]),d.useEffect(()=>{!h&&b&&S("dismiss")},[h,b,S]);const x=d.useCallback(_=>{_.defaultPrevented||h&&(_.preventDefault(),_.stopPropagation(),g(_.clientX,_.clientY))},[h,g]),j=d.useCallback(_=>{if(_.defaultPrevented||!h||!(_.key==="ContextMenu"||_.shiftKey&&_.key==="F10"))return;_.preventDefault(),_.stopPropagation();const B=(_.target instanceof HTMLElement?_.target:_.currentTarget).getBoundingClientRect();g(B.left,B.bottom)},[h,g]),C=d.useMemo(()=>b?{point:b.point,openId:b.openId,close:S}:null,[b,S]),y=js(r,m);let R;if(y.mode==="child"){const{child:_}=y,E=_.props,P=Reflect.get(_,"ref")??void 0,B=v(o,E.className),O=a!==void 0||E.style!==void 0;R=d.cloneElement(_,{...c,..._.props,className:B||void 0,...O?{style:{...a,...E.style}}:null,onContextMenu:ct(E.onContextMenu,l,x),onKeyDown:dt(E.onKeyDown,i,j),...ys(_)?{ref:is(P,u)}:null})}else R=d.createElement(n,{...c,ref:u,className:v("rrc-rich-base",o)||void 0,style:a,onContextMenu:ct(l,x),onKeyDown:dt(i,j)},...d.Children.toArray(m));return s.jsxs(s.Fragment,{children:[R,p&&C&&s.jsx(We.Provider,{value:C,children:p})]})});class sr extends Error{constructor(t,r,n){super(`HTTP ${t} ${r} for ${n}`),this.name="HttpError",this.status=t,this.statusText=r,this.url=n}}function ks(e){if(!e)return"";const t=new URLSearchParams;for(const[n,o]of Object.entries(e))o!=null&&t.set(n,String(o));const r=t.toString();return r?`?${r}`:""}function or(e={}){const{baseUrl:t="",fetcher:r=fetch,buildRequestInit:n}=e;return{async get(o,a={}){const l=`${t}${o}${ks(a.params)}`;let i={method:"GET",signal:a.signal};n&&(i=n(l,i));const c=await r(l,i);if(!c.ok)throw new sr(c.status,c.statusText,l);return await c.json()}}}const ar=or();function ws(e){return Object.keys(e).sort().reduce((t,r)=>(t[r]=e[r],t),{})}function ne({client:e=ar,url:t,params:r,mapResponse:n,enabled:o=!0}){const[a,l]=d.useState("idle"),[i,c]=d.useState([]),[u,f]=d.useState(null),[p,m]=d.useState(0),h=d.useMemo(()=>r?JSON.stringify(ws(r)):"",[r]),b=d.useRef(0),N=d.useRef(n);N.current=n,d.useEffect(()=>{if(!o||!t){l("idle"),c([]),f(null);return}const w=++b.current,S=new AbortController;return l("loading"),f(null),e.get(t,{params:r,signal:S.signal}).then(g=>{if(w!==b.current)return;const x=N.current(g);c(x),l(x.length===0?"empty":"success")}).catch(g=>{w===b.current&&(g instanceof DOMException&&g.name==="AbortError"||(f(g instanceof Error?g:new Error(String(g))),l("error")))}),()=>{S.abort()}},[e,t,h,o,p]);const k=d.useCallback(()=>m(w=>w+1),[]);return{state:a,items:i,error:u,reload:k}}function ir(e,t){const[r,n]=d.useState(e);return d.useEffect(()=>{const o=setTimeout(()=>n(e),t);return()=>clearTimeout(o)},[e,t]),r}function se(e){if(Array.isArray(e))return e;if(e&&typeof e=="object"&&Array.isArray(e.items))return e.items;throw new Error("Unable to normalize remote response into an array. Provide an explicit `mapResponse` for this endpoint's response shape.")}function fe(e,t,r){if(e===null||typeof e!="object")throw new Error("Remote item is not an object; cannot read valueMember/displayMember from it.");const n=e;return{value:n[t],label:String(n[r]??"")}}function lr({url:e,params:t,valueMember:r,displayMember:n,mapResponse:o,client:a,enabled:l,...i}){const{state:c,items:u,error:f}=ne({client:a,url:e,params:t,enabled:l,mapResponse:m=>(o?o(m):se(m)).map(b=>fe(b,r,n))}),p=i.error??(c==="error"?(f==null?void 0:f.message)??"Failed to load options":void 0);return s.jsx(gt,{...i,options:u,loading:c==="loading",error:p})}function Ss({url:e,params:t,searchParam:r,valueMember:n,displayMember:o,mapResponse:a,minSearchLength:l=1,debounceMs:i=300,client:c,inputValue:u,onInputValueChange:f,...p}){const[m,h]=V({value:u,defaultValue:"",onChange:f}),b=ir(m,i),N=b.length>=l,{state:k,items:w,error:S}=ne({client:c,url:e,enabled:N,params:{...t,[r]:b},mapResponse:x=>(a?a(x):se(x)).map(C=>fe(C,n,o))}),g=p.error??(k==="error"?(S==null?void 0:S.message)??"Failed to load suggestions":void 0);return s.jsx(yt,{...p,options:w,loading:k==="loading",error:g,inputValue:m,onInputValueChange:h,filter:()=>!0})}function cr({url:e,params:t,mapResponse:r,getTotalCount:n,pageSize:o=20,client:a,...l}){const[i,c]=d.useState(1),[u,f]=d.useState(null),p=d.useMemo(()=>JSON.stringify(t??{}),[t]),m=d.useRef(!0);d.useEffect(()=>{if(m.current){m.current=!1;return}c(1)},[p]);const h=d.useMemo(()=>({...t,page:i,pageSize:o,...u?{sortKey:u.key,sortDirection:u.direction}:{}}),[t,i,o,u]),b=d.useRef(void 0),{state:N,items:k,error:w}=ne({client:a,url:e,params:h,mapResponse:C=>(b.current=C,r?r(C):se(C))}),S=b.current!==void 0?n==null?void 0:n(b.current):void 0,x=k.length>=o&&o>0?i*o+1:(i-1)*o+k.length,j=S??x;return s.jsx(St,{...l,rows:k,loading:N==="loading",error:w==null?void 0:w.message,page:i,pageSize:o,totalCount:j,onPageChange:c,sort:u,onSortChange:C=>{f(C),c(1)}})}function _s({url:e,params:t,valueMember:r,displayMember:n,mapResponse:o,client:a,enabled:l,...i}){const{state:c,items:u,error:f}=ne({client:a,url:e,params:t,enabled:l,mapResponse:m=>(o?o(m):se(m)).map(b=>fe(b,r,n))}),p=i.error??(c==="error"?(f==null?void 0:f.message)??"Failed to load options":void 0);return s.jsx(bt,{...i,options:u,loading:c==="loading",error:p})}function Cs({url:e,params:t,valueMember:r,displayMember:n,mapResponse:o,client:a,enabled:l,...i}){const{state:c,items:u,error:f}=ne({client:a,url:e,params:t,enabled:l,mapResponse:m=>(o?o(m):se(m)).map(b=>fe(b,r,n))}),p=i.error??(c==="error"?(f==null?void 0:f.message)??"Failed to load options":void 0);return s.jsx(vt,{...i,options:u,loading:c==="loading",error:p})}function Es(){const e=new Map,t=new Set;return{register(r,n){e.set(r,n)},resolve(r,n){const o=e.get(r.component);return o?o(r,n):(t.has(r.component)||(t.add(r.component),console.warn(`Smart: no resolver registered for component "${r.component}" (field "${r.name}"). Skipping.`)),null)},has(r){return e.has(r)}}}function Rs(e){const t=new Map(Object.entries(e??{}));return{register(r,n){t.set(r,n)},resolve(r){return t.get(r)}}}function Is(){const e=new Map;return{register(t,r){e.set(t,r)},resolve(t){return e.get(t)}}}function Ms(e){return"dataSource"in e}function Ds(e,t){if(!e)return;const r={};for(const[n,o]of Object.entries(e))r[n]=o.kind==="static"?o.value:t[o.field];return r}function ut(e,t,r){return t&&r?r(t):e}function oe(e,t){const{values:r,translate:n}=t;return{metadata:e,visible:e.visible??!0,readOnly:e.readOnly??!1,disabled:e.disabled??!1,required:e.required??!1,label:ut(e.label,e.labelKey,n),placeholder:e.placeholder,helpText:e.helpText,validationMessage:ut(e.validationMessage,e.validationMessageKey,n),params:Ms(e)?Ds(e.dataSource.params,r):void 0}}function As(e,t,r){const n=t==null?void 0:t.fields.find(o=>o.name===e);if(n)return oe(n,r)}const Ts=[];function Ps(e,t){const r={};for(const n of t)r[n]=e[n];return r}function dr(e,t,r){const n=e??Ts,o=Ps(t,n),a=n.length===0?"":JSON.stringify(o),l=d.useRef(null),i=d.useRef(r);i.current=r,d.useEffect(()=>{var u;if(n.length===0)return;const c=l.current;if(c&&c.key!==a)for(const f of n)Object.is(c.snapshot[f],o[f])||(u=i.current)==null||u.call(i,f);l.current={key:a,snapshot:o}},[a])}function Ge(e,t){const{actions:r,translate:n}=t,o=r.resolve(e.id);return{metadata:e,visible:e.visible??!0,enabled:(e.enabled??!0)&&!!o,label:e.labelKey&&n?n(e.labelKey):e.label,handler:o}}function Ls(e,t,r){var o;const n=(o=t==null?void 0:t.actions)==null?void 0:o.find(a=>a.id===e);if(n)return Ge(n,r)}const ur=(e,t)=>{const r=oe(e,{values:t.values,translate:t.translate});if(!r.visible)return null;const n=t.dataSources.resolve(e.dataSource.id);return n?s.jsx(lr,{label:r.label,url:n.url,client:n.client,params:r.params,valueMember:e.valueMember,displayMember:e.displayMember,required:r.required,readOnly:r.readOnly,disabled:r.disabled,helpText:r.helpText,error:r.validationMessage,value:t.values[e.name]??null,onChange:o=>t.onFieldChange(e.name,o)}):(console.warn(`Smart: no data source registered for id "${e.dataSource.id}" (field "${e.name}"). Skipping.`),null)};function Os(e,t){if(e.visible===!1)return null;const r=e.headerKey&&t?t(e.headerKey):e.header??e.key,n=e.format==="boolean"&&!!t;return{key:e.key,header:r,sortable:e.sortable,format:n?void 0:e.format,formatter:n?o=>t(o?"smart.boolean.true":"smart.boolean.false"):void 0}}const fr=(e,t)=>{const r=oe(e,{values:t.values,translate:t.translate});if(!r.visible)return null;const n=t.dataSources.resolve(e.dataSource.id);if(!n)return console.warn(`Smart: no data source registered for id "${e.dataSource.id}" (field "${e.name}"). Skipping.`),null;const o=e.columns.map(i=>Os(i,t.translate)).filter(i=>i!==null),a=e.totalCountField,l=a?i=>{const c=i==null?void 0:i[a];return typeof c=="number"?c:void 0}:void 0;return s.jsx(cr,{url:n.url,client:n.client,params:r.params,columns:o,rowKey:i=>i[e.rowKey],getTotalCount:l})};function ft(e){if(!e)return;const t=new Date(e);return Number.isNaN(t.getTime())?void 0:t}const mr=(e,t)=>{const r=oe(e,{values:t.values,translate:t.translate});return r.visible?s.jsx(xt,{label:r.label,required:r.required,readOnly:r.readOnly,disabled:r.disabled,helpText:r.helpText,error:r.validationMessage,min:ft(e.minDate),max:ft(e.maxDate),value:t.values[e.name]??null,onChange:n=>t.onFieldChange(e.name,n)}):null},pr=(e,t)=>{const r=oe(e,{values:t.values,translate:t.translate});return r.visible?s.jsx(re,{label:r.label,required:r.required,readOnly:r.readOnly,disabled:r.disabled,helpText:r.helpText,placeholder:r.placeholder,error:r.validationMessage,maxLength:e.maxLength,value:t.values[e.name]??"",onChange:n=>t.onFieldChange(e.name,n)}):null};function Vs(e){e.register("Input",pr),e.register("ComboBox",ur),e.register("DatePicker",mr),e.register("DataGrid",fr)}function hr({metadata:e,ctx:t}){const r=t.onMetadataRefreshNeeded;return dr(e.dependsOn,t.values,r?n=>r(e.name,n):void 0),e.visible===!1?null:t.registry.resolve(e,t)}const br=1;function $s(e){const t=Number(e.split(".")[0]);return Number.isFinite(t)&&t===br}function Bs({metadata:e,ctx:t}){return $s(e.schemaVersion)?s.jsx(s.Fragment,{children:e.fields.map(r=>s.jsx(hr,{metadata:r,ctx:t},r.name))}):s.jsxs(Te,{variant:"danger",children:['Unsupported form schema version "',e.schemaVersion,'" — this app understands schema version ',br,".x."]})}function vr({metadata:e,ctx:t}){const r=Ge(e,t);return r.visible?s.jsx(ce,{disabled:!r.enabled,onClick:()=>{var n;return(n=r.handler)==null?void 0:n.call(r)},children:r.label??e.id}):null}function Ks({metadata:e,ctx:t}){return!e.actions||e.actions.length===0?null:s.jsx(s.Fragment,{children:e.actions.map(r=>s.jsx(vr,{metadata:r,ctx:t},r.id))})}exports.Accordion=sn;exports.Alert=Te;exports.AppearanceMenu=os;exports.AppearanceProvider=Mn;exports.AutoComplete=yt;exports.Avatar=gn;exports.Badge=Rt;exports.Breadcrumb=Mt;exports.Button=ce;exports.COLOR_SCHEME_TOKEN_KEYS=Oe;exports.Card=un;exports.CheckBox=Sr;exports.Col=pn;exports.ComboBox=gt;exports.ConfirmProvider=Zr;exports.Container=fn;exports.ContextMenu=vs;exports.DEFAULT_COLOR_SCHEME_ID=Ne;exports.DataGrid=St;exports.DatePicker=xt;exports.DateTimePicker=Rr;exports.Divider=It;exports.FileInput=wr;exports.Flex=zn;exports.FormField=Mr;exports.HttpError=sr;exports.Icon=je;exports.IconButton=Yn;exports.Input=re;exports.Label=mt;exports.ListItem=Jn;exports.Menu=hn;exports.Modal=jt;exports.MultiSelect=vt;exports.Navbar=wn;exports.NumberInput=Nr;exports.PageHeader=Wn;exports.Pagination=Nt;exports.PasswordInput=kr;exports.Popover=on;exports.Popup=X;exports.ProgressBar=kn;exports.RadioButton=ht;exports.RadioGroup=Cr;exports.Rating=Nn;exports.RemoteAutoComplete=Ss;exports.RemoteComboBox=lr;exports.RemoteDataGrid=cr;exports.RemoteMultiSelect=Cs;exports.RemoteSelect=_s;exports.RichComponentBase=Ns;exports.Row=mn;exports.SIDEBAR_PRESENTATIONS=$e;exports.SIDEBAR_TONES=Be;exports.Select=bt;exports.Sidebar=Un;exports.Skeleton=le;exports.Slider=jn;exports.SmartAction=vr;exports.SmartActions=Ks;exports.SmartField=hr;exports.SmartForm=Bs;exports.Sparkline=es;exports.Spinner=_t;exports.Stack=Le;exports.Statistic=ss;exports.Stepper=bn;exports.Switch=_r;exports.THEME_MODES=Ve;exports.Tabs=nn;exports.Tag=yn;exports.Text=Y;exports.TextArea=jr;exports.TimePicker=Er;exports.ToastProvider=Jr;exports.Tooltip=Pe;exports.ValidationMessage=Ie;exports.colorSchemeCssVariables=Lt;exports.comboBoxResolver=ur;exports.createAppearanceInitScript=An;exports.createColorScheme=ie;exports.createHttpClient=or;exports.createSmartActionRegistry=Is;exports.createSmartComponentRegistry=Es;exports.createSmartDataSourceRegistry=Rs;exports.dataGridFormatters=wt;exports.dataGridResolver=fr;exports.datePickerResolver=mr;exports.defaultArrayNormalization=se;exports.defaultHttpClient=ar;exports.fromDateInputValue=Me;exports.fromTimeInputValue=Ae;exports.getColorScheme=At;exports.inputResolver=pr;exports.isSidebarExpandable=Fe;exports.isSidebarParent=Vt;exports.isValidColorScheme=Dt;exports.legacyActiveKey=Ft;exports.legacyDefaultExpandedKeys=Kt;exports.listColorSchemes=Tt;exports.registerBuiltInResolvers=Vs;exports.registerColorScheme=_n;exports.resolveColorScheme=Pt;exports.resolveSmartActionMetadata=Ge;exports.resolveSmartFieldMetadata=oe;exports.toDateInputValue=J;exports.toSelectOption=fe;exports.toSidebarItems=$t;exports.toTimeInputValue=De;exports.useAppearance=Dn;exports.useConfirm=Qr;exports.useDebouncedValue=ir;exports.useRemoteData=ne;exports.useSmartAction=Ls;exports.useSmartDependencies=dr;exports.useSmartField=As;exports.useToast=Xr;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|