rich-react-component 0.2.0 → 0.3.1
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/LICENSE +21 -21
- package/README.md +314 -120
- package/dist/base/Appearance.d.ts +116 -0
- package/dist/base/AppearanceMenu.d.ts +65 -0
- package/dist/base/Badge.d.ts +8 -1
- package/dist/base/Button.d.ts +9 -1
- package/dist/base/Sidebar.d.ts +111 -21
- package/dist/base/Tag.d.ts +4 -2
- package/dist/base/Tooltip.d.ts +8 -1
- package/dist/base/appearanceSchemes.d.ts +92 -0
- package/dist/base/index.d.ts +4 -0
- package/dist/base/sidebarModel.d.ts +171 -0
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +0 -15
- package/dist/index.js +2211 -1333
- package/dist/index.js.map +1 -1
- package/dist/style.css +1 -0
- package/package.json +6 -2
package/dist/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),f=require("react");function m(...e){return e.filter(Boolean).join(" ")}function he({htmlFor:e,required:n,className:t,children:r}){return s.jsxs("label",{htmlFor:e,className:m("form-label",t),children:[r,n&&s.jsx("span",{className:"text-danger",children:" *"})]})}function ee({error:e,helpText:n,className:t}){return e?s.jsx("div",{className:m("invalid-feedback d-block",t),children:e}):n?s.jsx("div",{className:m("form-text",t),children:n}):null}function F({id:e,label:n,required:t,error:r,helpText:a,className:l,children:o}){return s.jsxs("div",{className:m("mb-3",l),children:[n&&s.jsx(he,{htmlFor:e,required:t,children:n}),o,s.jsx(ee,{error:r,helpText:a})]})}function V({value:e,defaultValue:n,onChange:t}){const r=e!==void 0,a=f.useRef(r);process.env.NODE_ENV!=="production"&&a.current!==r&&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[l,o]=f.useState(n),c=r?e:l,i=f.useCallback(d=>{r||o(d),t==null||t(d)},[r,t]);return[c,i]}function G(e){const{id:n,name:t,disabled:r,readOnly:a,required:l,className:o,label:c,placeholder:i,helpText:d,error:u,value:x,defaultValue:h,onChange:p,onBlur:v,type:N="text",maxLength:w,autoFocus:g,inputProps:k,endAdornment:y}=e,[C,b]=V({value:x,defaultValue:h??"",onChange:p}),j=f.useId(),S=n??j,I=s.jsx("input",{id:S,name:t,className:m("form-control",u&&"is-invalid"),disabled:r,readOnly:a,required:l,placeholder:i,maxLength:w,autoFocus:g,value:C,onChange:R=>b(R.target.value),onBlur:v,type:N,...k});return s.jsx(F,{id:S,label:c,required:l,error:u,helpText:d,className:o,children:y?s.jsxs("div",{className:"input-group",children:[I,y]}):I})}function Je(e){const{id:n,name:t,disabled:r,readOnly:a,required:l,className:o,label:c,placeholder:i,helpText:d,error:u,value:x,defaultValue:h,onChange:p,onBlur:v,rows:N=3,maxLength:w}=e,[g,k]=V({value:x,defaultValue:h??"",onChange:p}),y=f.useId(),C=n??y;return s.jsx(F,{id:C,label:c,required:l,error:u,helpText:d,className:o,children:s.jsx("textarea",{id:C,name:t,className:m("form-control",u&&"is-invalid"),disabled:r,readOnly:a,required:l,placeholder:i,rows:N,maxLength:w,value:g,onChange:b=>k(b.target.value),onBlur:v})})}function Ze({value:e,defaultValue:n,onChange:t,min:r,max:a,step:l,...o}){const[c,i]=V({value:e,defaultValue:n??null,onChange:t});return s.jsx(G,{...o,value:c===null?"":String(c),onChange:d=>{if(d.trim()===""){i(null);return}const u=Number(d);Number.isNaN(u)||i(u)},inputProps:{inputMode:"decimal",min:r,max:a,step:l}})}function Ye(e){const[n,t]=f.useState(!1);return s.jsx(G,{...e,inputProps:{type:n?"text":"password",autoComplete:"current-password"},endAdornment:s.jsx("button",{type:"button",className:"btn btn-outline-secondary","aria-label":n?"Hide password":"Show password","aria-pressed":n,onClick:()=>t(r=>!r),children:n?"Hide":"Show"})})}function Qe({id:e,name:n,disabled:t,required:r,className:a,label:l,helpText:o,error:c,accept:i,multiple:d,onChange:u}){const x=f.useId(),h=e??x;return s.jsx(F,{id:h,label:l,required:r,error:c,helpText:o,className:a,children:s.jsx("input",{id:h,name:n,type:"file",className:m("form-control",c&&"is-invalid"),disabled:t,required:r,accept:i,multiple:d,onChange:p=>u==null?void 0:u(p.target.files)})})}function xe({id:e,name:n,disabled:t,required:r,wrapperClassName:a,role:l,label:o,helpText:c,error:i,checked:d,onChange:u,className:x}){const h=f.useId(),p=e??h;return s.jsxs("div",{className:m(a,x),children:[s.jsx("input",{id:p,name:n,type:"checkbox",role:l,className:m("form-check-input",i&&"is-invalid"),disabled:t,required:r,checked:d,onChange:v=>u(v.target.checked)}),o&&s.jsx("label",{htmlFor:p,className:"form-check-label",children:o}),s.jsx(ee,{error:i,helpText:c})]})}function Xe(e){const[n,t]=V({value:e.checked,defaultValue:e.defaultChecked??!1,onChange:e.onChange});return s.jsx(xe,{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:n,onChange:t})}function en(e){const[n,t]=V({value:e.checked,defaultValue:e.defaultChecked??!1,onChange:e.onChange});return s.jsx(xe,{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:n,onChange:t})}function be({id:e,name:n,value:t,label:r,checked:a,disabled:l,className:o,onChange:c}){const i=f.useId(),d=e??i;return s.jsxs("div",{className:m("form-check",o),children:[s.jsx("input",{id:d,name:n,type:"radio",className:"form-check-input",value:String(t),checked:a,disabled:l,onChange:()=>c==null?void 0:c(t)}),r&&s.jsx("label",{htmlFor:d,className:"form-check-label",children:r})]})}function nn({options:e,value:n,defaultValue:t,onChange:r,inline:a,id:l,name:o,disabled:c,required:i,className:d,label:u,helpText:x,error:h}){const[p,v]=V({value:n,defaultValue:t??null,onChange:g=>{g!==null&&(r==null||r(g))}}),N=f.useId(),w=o??l??N;return s.jsx(F,{label:u,required:i,error:h,helpText:x,className:d,children:s.jsx("div",{role:"radiogroup","aria-label":u,"aria-required":i,className:m(a&&"d-flex gap-3"),children:e.map(g=>s.jsx(be,{name:w,value:g.value,label:g.label,checked:g.value===p,disabled:c||g.disabled,onChange:k=>v(k)},String(g.value)))})})}function pe({options:e,value:n,defaultValue:t,onChange:r,placeholder:a,loading:l,id:o,name:c,disabled:i,readOnly:d,required:u,className:x,label:h,helpText:p,error:v}){const[N,w]=V({value:n,defaultValue:t??null,onChange:r}),g=f.useId(),k=o??g;return s.jsx(F,{id:k,label:h,required:u,error:v,helpText:p,className:x,children:s.jsxs("select",{id:k,name:c,className:m("form-select",v&&"is-invalid"),disabled:i||d||l,required:u,value:N===null?"":String(N),onChange:y=>{const C=y.target.value;if(C===""){w(null);return}const b=e.find(j=>String(j.value)===C);w(b?b.value:null)},children:[l&&s.jsx("option",{value:"",children:"Loading…"}),!l&&a&&s.jsx("option",{value:"",children:a}),e.map(y=>s.jsx("option",{value:String(y.value),disabled:y.disabled,children:y.label},String(y.value)))]})})}function ne(e,n){f.useEffect(()=>{if(!e)return;function t(r){r.key==="Escape"&&n()}return document.addEventListener("keydown",t),()=>document.removeEventListener("keydown",t)},[e,n])}function K({open:e,onClose:n,anchorRef:t,className:r,role:a,children:l}){const o=f.useRef(null);return ne(e,n),f.useEffect(()=>{if(!e)return;function c(i){var u,x;const d=i.target;(u=o.current)!=null&&u.contains(d)||(x=t.current)!=null&&x.contains(d)||n()}return document.addEventListener("mousedown",c),()=>document.removeEventListener("mousedown",c)},[e,n,t]),e?s.jsx("div",{ref:o,className:m("show",r),role:a,children:l}):null}function Y({itemCount:e,isOpen:n,onSelect:t,onClose:r}){const[a,l]=f.useState(-1);f.useEffect(()=>{n||l(-1)},[n]),ne(n,r);const o=f.useCallback(c=>{if(!n){(c.key==="ArrowDown"||c.key==="Enter")&&c.preventDefault();return}switch(c.key){case"ArrowDown":c.preventDefault(),l(i=>e===0?-1:(i+1)%e);break;case"ArrowUp":c.preventDefault(),l(i=>e===0?-1:(i-1+e)%e);break;case"Home":c.preventDefault(),l(e===0?-1:0);break;case"End":c.preventDefault(),l(e===0?-1:e-1);break;case"Enter":a>=0&&(c.preventDefault(),t(a));break}},[n,e,a,t]);return{activeIndex:a,setActiveIndex:l,handleKeyDown:o}}function ve({options:e,values:n,defaultValues:t,onChange:r,loading:a,emptyText:l="No options",id:o,name:c,disabled:i,readOnly:d,required:u,className:x,label:h,placeholder:p="Select...",helpText:v,error:N}){const[w,g]=V({value:n,defaultValue:t??[],onChange:r}),[k,y]=f.useState(!1),C=f.useRef(null),b=f.useId(),j=o??b,S=new Set(w),I=f.useCallback(()=>y(!1),[]),R=f.useCallback(D=>{const A=e[D];if(!A||A.disabled)return;const U=S.has(A.value)?w.filter(X=>X!==A.value):[...w,A.value];g(U)},[e,w,S,g]),{activeIndex:T,setActiveIndex:B,handleKeyDown:H}=Y({itemCount:e.length,isOpen:k,onSelect:R,onClose:I}),E=e.filter(D=>S.has(D.value)).map(D=>D.label).join(", ");return s.jsx(F,{id:j,label:h,required:u,error:N,helpText:v,className:x,children:s.jsxs("div",{className:"position-relative",children:[s.jsx("button",{ref:C,id:j,type:"button",name:c,className:m("form-select text-start",N&&"is-invalid"),disabled:i||d,"aria-haspopup":"listbox","aria-expanded":k,onClick:()=>y(D=>!D),onKeyDown:H,children:E||s.jsx("span",{className:"text-body-secondary",children:p})}),s.jsx(K,{open:k,onClose:I,anchorRef:C,className:"dropdown-menu w-100",role:"listbox",children:a?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:l}):e.map((D,A)=>s.jsxs("div",{role:"option","aria-selected":S.has(D.value),className:m("dropdown-item d-flex align-items-center gap-2",A===T&&"active",D.disabled&&"disabled"),onMouseEnter:()=>B(A),onMouseDown:U=>{U.preventDefault(),D.disabled||R(A)},children:[s.jsx("input",{type:"checkbox",className:"form-check-input m-0",checked:S.has(D.value),readOnly:!0,tabIndex:-1}),D.label]},String(D.value)))})]})})}function L(e){if(!e)return"";const n=e.getFullYear(),t=String(e.getMonth()+1).padStart(2,"0"),r=String(e.getDate()).padStart(2,"0");return`${n}-${t}-${r}`}function te(e){if(!e)return null;const n=e.split("-").map(Number),[t,r,a]=n;return!t||!r||!a?null:new Date(t,r-1,a)}function ge({value:e,defaultValue:n,onChange:t,min:r,max:a,...l}){const[o,c]=V({value:e,defaultValue:n??null,onChange:t});return s.jsx(G,{...l,value:L(o),onChange:i=>c(te(i)),inputProps:{type:"date",min:r?L(r):void 0,max:a?L(a):void 0}})}function se(e){if(!e)return"";const n=String(e.getHours()).padStart(2,"0"),t=String(e.getMinutes()).padStart(2,"0");return`${n}:${t}`}function re(e){if(!e)return null;const[n,t]=e.split(":").map(Number);return n===void 0||t===void 0||Number.isNaN(n)||Number.isNaN(t)?null:new Date(1970,0,1,n,t,0,0)}function tn({value:e,defaultValue:n,onChange:t,step:r,...a}){const[l,o]=V({value:e,defaultValue:n??null,onChange:t});return s.jsx(G,{...a,value:se(l),onChange:c=>o(re(c)),inputProps:{type:"time",step:r}})}function oe(e,n){const t=te(e);if(!t)return null;const r=re(n||"00:00");return r&&t.setHours(r.getHours(),r.getMinutes(),0,0),t}function sn({value:e,defaultValue:n,onChange:t,min:r,max:a,id:l,name:o,disabled:c,readOnly:i,required:d,className:u,label:x,helpText:h,error:p}){const[v,N]=V({value:e,defaultValue:n??null,onChange:t}),w=f.useId(),g=l??w,k=L(v),y=se(v);return s.jsx(F,{id:g,label:x,required:d,error:p,helpText:h,className:u,children:s.jsxs("div",{className:"d-flex gap-2",children:[s.jsx("input",{id:g,name:o?`${o}-date`:void 0,type:"date",className:m("form-control",p&&"is-invalid"),disabled:c,readOnly:i,required:d,min:r?L(r):void 0,max:a?L(a):void 0,value:k,onChange:C=>N(oe(C.target.value,y))}),s.jsx("input",{name:o?`${o}-time`:void 0,type:"time",className:m("form-control",p&&"is-invalid"),disabled:c,readOnly:i,required:d,value:y,onChange:C=>N(oe(k||L(new Date),C.target.value))})]})})}function je({options:e,value:n,defaultValue:t,onChange:r,loading:a,emptyText:l="No options",id:o,name:c,disabled:i,readOnly:d,required:u,className:x,label:h,placeholder:p="Select...",helpText:v,error:N}){const[w,g]=V({value:n,defaultValue:t??null,onChange:r}),[k,y]=f.useState(!1),C=f.useRef(null),b=f.useId(),j=o??b,S=e.find(M=>M.value===w)??null,I=f.useCallback(()=>y(!1),[]),R=f.useCallback(M=>{const E=e[M];!E||E.disabled||(g(E.value),I())},[e,g,I]),{activeIndex:T,setActiveIndex:B,handleKeyDown:H}=Y({itemCount:e.length,isOpen:k,onSelect:R,onClose:I});return s.jsx(F,{id:j,label:h,required:u,error:N,helpText:v,className:x,children:s.jsxs("div",{className:"position-relative",children:[s.jsx("button",{ref:C,id:j,type:"button",name:c,className:m("form-select text-start",N&&"is-invalid"),disabled:i||d,"aria-haspopup":"listbox","aria-expanded":k,onClick:()=>y(M=>!M),onKeyDown:H,children:S?S.label:s.jsx("span",{className:"text-body-secondary",children:p})}),s.jsx(K,{open:k,onClose:I,anchorRef:C,className:"dropdown-menu w-100",role:"listbox",children:a?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:l}):e.map((M,E)=>s.jsx("div",{role:"option","aria-selected":M.value===w,className:m("dropdown-item",E===T&&"active",M.disabled&&"disabled"),onMouseEnter:()=>B(E),onMouseDown:D=>{D.preventDefault(),M.disabled||R(E)},children:M.label},String(M.value)))})]})})}function rn(e,n){return n?e.label.toLowerCase().includes(n.toLowerCase()):!0}function ye({options:e,value:n,defaultValue:t,onChange:r,inputValue:a,onInputValueChange:l,loading:o,emptyText:c="No results",filter:i,id:d,name:u,disabled:x,readOnly:h,required:p,className:v,label:N,placeholder:w,helpText:g,error:k}){const[y,C]=V({value:n,defaultValue:t??null,onChange:r}),b=e.find($=>$.value===y)??null,[j,S]=V({value:a,defaultValue:(b==null?void 0:b.label)??"",onChange:l}),[I,R]=f.useState(!1),T=f.useRef(null),B=f.useId(),H=d??B,M=i??rn,E=e.filter($=>M($,j)),D=f.useCallback(()=>R(!1),[]),A=f.useCallback($=>{const P=E[$];!P||P.disabled||(C(P.value),S(P.label),D())},[E,C,S,D]),{activeIndex:U,setActiveIndex:X,handleKeyDown:Ue}=Y({itemCount:E.length,isOpen:I,onSelect:A,onClose:D});return s.jsx(F,{id:H,label:N,required:p,error:k,helpText:g,className:v,children:s.jsxs("div",{className:"position-relative",children:[s.jsx("input",{ref:T,id:H,name:u,type:"text",className:m("form-control",k&&"is-invalid"),disabled:x,readOnly:h,required:p,placeholder:w,autoComplete:"off",role:"combobox","aria-expanded":I,"aria-haspopup":"listbox",value:j,onFocus:()=>R(!0),onChange:$=>{const P=$.target.value;S(P),R(!0),y!==null&&C(null)},onKeyDown:Ue}),s.jsx(K,{open:I,onClose:D,anchorRef:T,className:"dropdown-menu w-100",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:c}):E.map(($,P)=>s.jsx("div",{role:"option","aria-selected":$.value===y,className:m("dropdown-item",P===U&&"active",$.disabled&&"disabled"),onMouseEnter:()=>X(P),onMouseDown:We=>{We.preventDefault(),$.disabled||A(P)},children:$.label},String($.value)))})]})})}function an(e){return s.jsx(F,{...e})}function Ne({open:e,onClose:n,title:t,children:r,footer:a,className:l}){return ne(e,n),e?s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"modal d-block",tabIndex:-1,role:"dialog","aria-modal":"true",children:s.jsx("div",{className:m("modal-dialog",l),role:"document",children:s.jsxs("div",{className:"modal-content",children:[s.jsxs("div",{className:"modal-header",children:[t&&s.jsx("h5",{className:"modal-title",children:t}),s.jsx("button",{type:"button",className:"btn-close","aria-label":"Close",onClick:n})]}),s.jsx("div",{className:"modal-body",children:r}),a&&s.jsx("div",{className:"modal-footer",children:a})]})})}),s.jsx("div",{className:"modal-backdrop show",onClick:n})]}):null}function ln(e,n,t){const r=[],a=Math.max(1,e-t),l=Math.min(n,e+t);a>1&&(r.push(1),a>2&&r.push("ellipsis"));for(let o=a;o<=l;o++)r.push(o);return l<n&&(l<n-1&&r.push("ellipsis"),r.push(n)),r}function we({currentPage:e,pageSize:n,totalItems:t,onPageChange:r,siblingCount:a=1,className:l}){const o=Math.max(1,Math.ceil(t/n)),c=ln(e,o,a);return s.jsx("nav",{"aria-label":"Pagination",className:l,children:s.jsxs("ul",{className:"pagination mb-0",children:[s.jsx("li",{className:m("page-item",e<=1&&"disabled"),children:s.jsx("button",{type:"button",className:"page-link",disabled:e<=1,onClick:()=>r(e-1),children:"Previous"})}),c.map((i,d)=>i==="ellipsis"?s.jsx("li",{className:"page-item disabled",children:s.jsx("span",{className:"page-link",children:"…"})},`ellipsis-${d}`):s.jsx("li",{className:m("page-item",i===e&&"active"),children:s.jsx("button",{type:"button",className:"page-link","aria-current":i===e?"page":void 0,onClick:()=>r(i),children:i})},i)),s.jsx("li",{className:m("page-item",e>=o&&"disabled"),children:s.jsx("button",{type:"button",className:"page-link",disabled:e>=o,onClick:()=>r(e+1),children:"Next"})})]})})}const ke={text:e=>e==null?"":String(e),boolean:e=>e?"Yes":"No",date:e=>{if(e==null||e==="")return"";const n=e instanceof Date?e:new Date(String(e));return Number.isNaN(n.getTime())?String(e):n.toLocaleDateString()},currency:e=>{const n=Number(e);return Number.isFinite(n)?n.toLocaleString(void 0,{style:"currency",currency:"USD"}):String(e??"")}};function on(e,n){return!e||e.key!==n?{key:n,direction:"asc"}:e.direction==="asc"?{key:n,direction:"desc"}:null}function ce(e){return e.key??e.field??e.header}function cn(e,n){const t=e.field??e.key;return t?n[t]:void 0}function dn(e,n){if(e.render)return e.render(n);const t=cn(e,n);return e.formatter?e.formatter(t,n):e.format?ke[e.format](t):t==null?"":String(t)}function de(e){return e&&`text-${e}`}function Se({columns:e,rows:n,rowKey:t,loading:r,error:a,emptyText:l="No data",className:o,selectedRowKeys:c,onSelectionChange:i,sort:d,onSortChange:u,page:x,pageSize:h,totalCount:p,onPageChange:v}){const N=!!i,w=new Set(c??[]),g=x!==void 0&&h!==void 0&&p!==void 0,k=g?Math.max(1,Math.ceil(p/h)):1;function y(){i&&(w.size===n.length?i([]):i(n.map(t)))}function C(b){if(!i)return;const j=new Set(w);j.has(b)?j.delete(b):j.add(b),i(Array.from(j))}return s.jsxs("div",{className:m("table-responsive",o),children:[s.jsxs("table",{className:"table table-hover align-middle",children:[s.jsx("thead",{children:s.jsxs("tr",{children:[N&&s.jsx("th",{style:{width:"2.5rem"},children:s.jsx("input",{type:"checkbox",className:"form-check-input",checked:n.length>0&&w.size===n.length,onChange:y,"aria-label":"Select all rows"})}),e.map(b=>{const j=ce(b);return s.jsxs("th",{className:de(b.headerAlign??b.align),style:{width:b.width,minWidth:b.minWidth,maxWidth:b.maxWidth},role:b.sortable?"button":void 0,onClick:b.sortable&&u?()=>u(on(d,j)):void 0,children:[b.header,b.sortable&&(d==null?void 0:d.key)===j&&s.jsxs("span",{"aria-hidden":"true",children:[" ",d.direction==="asc"?"▲":"▼"]})]},j)})]})}),s.jsx("tbody",{children:r?s.jsx("tr",{children:s.jsx("td",{colSpan:e.length+(N?1:0),className:"text-center text-body-secondary py-4",children:"Loading…"})}):a?s.jsx("tr",{children:s.jsx("td",{colSpan:e.length+(N?1:0),className:"text-center text-danger py-4",children:a})}):n.length===0?s.jsx("tr",{children:s.jsx("td",{colSpan:e.length+(N?1:0),className:"text-center text-body-secondary py-4",children:l})}):n.map(b=>{const j=t(b);return s.jsxs("tr",{children:[N&&s.jsx("td",{children:s.jsx("input",{type:"checkbox",className:"form-check-input",checked:w.has(j),onChange:()=>C(j),"aria-label":"Select row"})}),e.map(S=>s.jsx("td",{className:de(S.align),children:dn(S,b)},ce(S)))]},j)})})]}),g&&s.jsxs("div",{className:"d-flex justify-content-between align-items-center mt-2",children:[s.jsxs("span",{className:"text-body-secondary small",children:["Page ",x," of ",k," (",p," rows)"]}),s.jsx(we,{currentPage:x,pageSize:h,totalItems:p,onPageChange:v})]})]})}function Ce({size:e="md",variant:n,className:t,label:r="Loading..."}){return s.jsx("span",{className:m("spinner-border",e==="sm"&&"spinner-border-sm",n&&`text-${n}`,t),role:"status",children:s.jsx("span",{className:"visually-hidden",children:r})})}function J({variant:e="primary",size:n,disabled:t,loading:r,type:a="button",className:l,children:o,onClick:c,...i}){const d=t||r;return s.jsxs("button",{type:a,className:m("btn",`btn-${e}`,n&&`btn-${n}`,l),disabled:d,"aria-busy":r||void 0,onClick:d?void 0:c,...i,children:[r&&s.jsx(Ce,{size:"sm",className:"me-2",label:""}),o]})}function ae({variant:e="info",dismissible:n,onDismiss:t,className:r,children:a}){return s.jsxs("div",{className:m("alert",`alert-${e}`,n&&"alert-dismissible",r),role:"alert",children:[a,n&&s.jsx("button",{type:"button",className:"btn-close","aria-label":"Close",onClick:t})]})}const Ie=f.createContext(null),un=4e3;function fn({children:e}){const[n,t]=f.useState([]),r=f.useRef(0),a=f.useRef(new Map);f.useEffect(()=>{const i=a.current;return()=>{i.forEach(clearTimeout),i.clear()}},[]);const l=f.useCallback(i=>{const d=a.current.get(i);d&&(clearTimeout(d),a.current.delete(i)),t(u=>u.filter(x=>x.id!==i))},[]),o=f.useCallback((i,d)=>{const u=r.current++,x=(d==null?void 0:d.variant)??"info",h=(d==null?void 0:d.duration)??un;return t(p=>[...p,{id:u,message:i,variant:x}]),h>0&&a.current.set(u,setTimeout(()=>l(u),h)),u},[l]),c=f.useMemo(()=>({show:o,dismiss:l,success:(i,d)=>o(i,{...d,variant:"success"}),error:(i,d)=>o(i,{...d,variant:"danger"}),info:(i,d)=>o(i,{...d,variant:"info"}),warning:(i,d)=>o(i,{...d,variant:"warning"})}),[o,l]);return s.jsxs(Ie.Provider,{value:c,children:[e,s.jsx("div",{className:"toast-container position-fixed bottom-0 end-0 p-3",style:{zIndex:1090},children:n.map(i=>s.jsx(ae,{variant:i.variant,dismissible:!0,onDismiss:()=>l(i.id),className:"shadow-sm",children:i.message},i.id))})]})}function mn(){const e=f.useContext(Ie);if(!e)throw new Error("useToast must be used within a ToastProvider");return e}const De=f.createContext(null);function hn({children:e}){const[n,t]=f.useState(null),r=f.useCallback(l=>new Promise(o=>{t({...l,resolve:o})}),[]),a=f.useCallback(l=>{n==null||n.resolve(l),t(null)},[n]);return s.jsxs(De.Provider,{value:r,children:[e,s.jsx(Ne,{open:n!==null,onClose:()=>a(!1),title:(n==null?void 0:n.title)??"Confirm",footer:s.jsxs(s.Fragment,{children:[s.jsx(J,{variant:"outline-secondary",onClick:()=>a(!1),children:(n==null?void 0:n.cancelLabel)??"Cancel"}),s.jsx(J,{variant:(n==null?void 0:n.confirmVariant)??"danger",onClick:()=>a(!0),children:(n==null?void 0:n.confirmLabel)??"Confirm"})]}),children:n==null?void 0:n.message})]})}function xn(){const e=f.useContext(De);if(!e)throw new Error("useConfirm must be used within a ConfirmProvider");return e}function Re({variant:e="primary",pill:n,className:t,children:r}){return s.jsx("span",{className:m("badge",`bg-${e}`,n&&"rounded-pill",t),children:r})}const bn={sm:"0.875em",lg:"1.5em",xl:"2em"};function Q({name:e,size:n,className:t,label:r}){return s.jsx("i",{className:m(e,t),style:n?{fontSize:bn[n]}:void 0,role:r?"img":void 0,"aria-label":r,"aria-hidden":r?void 0:!0})}function pn(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 vn={sm:"small",lg:"fs-5"};function gn({items:e,activeKey:n,defaultActiveKey:t,onChange:r,variant:a="default",orientation:l="horizontal",size:o,stretch:c,className:i}){var C;const[d,u]=V({value:n,defaultValue:t??((C=e[0])==null?void 0:C.key)??"",onChange:r}),x=e.find(b=>b.key===d),h=a==="button",p=l==="vertical",v=f.useRef([]);function N(b,j){var I;const S=e[b];S&&(u(S.key),j&&((I=v.current[b])==null||I.focus()))}function w(b,j){var I;if(e.length===0)return b;let S=b;for(let R=0;R<e.length;R++)if(S=(S+j+e.length)%e.length,!((I=e[S])!=null&&I.disabled))return S;return b}function g(b){var R;const j=e.findIndex(T=>T.key===d),S=p?"ArrowDown":"ArrowRight",I=p?"ArrowUp":"ArrowLeft";if(b.key===S)b.preventDefault(),N(w(j,1),!0);else if(b.key===I)b.preventDefault(),N(w(j,-1),!0);else if(b.key==="Home"){b.preventDefault();const T=e.findIndex(B=>!B.disabled);T>=0&&N(T,!0)}else if(b.key==="End"){b.preventDefault();for(let T=e.length-1;T>=0;T--)if(!((R=e[T])!=null&&R.disabled)){N(T,!0);break}}}const k=s.jsx("div",{className:m(h?"btn-group":"nav",!h&&pn(a),!h&&p&&"flex-column",!h&&c&&"nav-fill",!h&&o&&vn[o]),role:"tablist","aria-orientation":l,onKeyDown:g,children:e.map((b,j)=>{const S=b.key===d,I=s.jsxs(s.Fragment,{children:[b.icon&&s.jsx(Q,{name:b.icon,size:"sm",className:"me-1"}),b.label,b.badge!=null&&s.jsx(Re,{variant:S&&!h?"primary":"secondary",pill:!0,className:"ms-2",children:b.badge})]}),R=s.jsx("button",{ref:T=>{v.current[j]=T},type:"button",id:`tab-${b.key}`,className:m(h?m("btn",o?`btn-${o}`:"btn-sm",S?"btn-primary":"btn-outline-primary"):m("nav-link",S&&"active")),role:"tab","aria-selected":S,"aria-controls":`tabpanel-${b.key}`,tabIndex:S?0:-1,disabled:b.disabled,onClick:()=>N(j,!1),children:I},b.key);return h?R:s.jsx("div",{className:"nav-item",role:"presentation",children:R},b.key)})}),y=(x==null?void 0:x.content)!=null&&s.jsx("div",{id:`tabpanel-${x.key}`,className:m("tab-content",!p&&"pt-3"),role:"tabpanel","aria-labelledby":`tab-${x.key}`,children:x.content});return p?s.jsxs("div",{className:m("d-flex align-items-start gap-3",i),children:[k,y&&s.jsx("div",{className:"flex-grow-1",children:y})]}):s.jsxs("div",{className:i,children:[k,y]})}function Ve({items:e,multiple:n=!1,openKeys:t,defaultOpenKeys:r,onChange:a,className:l}){const[o,c]=V({value:t,defaultValue:r??[],onChange:a}),i=new Set(o);function d(u){i.has(u)?c(o.filter(x=>x!==u)):c(n?[...o,u]:[u])}return s.jsx("div",{className:m("accordion",l),children:e.map(u=>{const x=i.has(u.key);return s.jsxs("div",{className:"accordion-item",children:[s.jsx("h2",{className:"accordion-header",children:s.jsx("button",{type:"button",className:m("accordion-button",!x&&"collapsed"),"aria-expanded":x,disabled:u.disabled,onClick:()=>d(u.key),children:u.header})}),x&&s.jsx("div",{className:"accordion-collapse",children:s.jsx("div",{className:"accordion-body",children:u.content})})]},u.key)})})}function Te({content:e,children:n,placement:t="top",className:r}){const[a,l]=f.useState(!1),o=f.useRef(null),c=f.useId();return s.jsxs("span",{ref:o,className:"position-relative d-inline-block",onMouseEnter:()=>l(!0),onMouseLeave:()=>l(!1),onFocus:()=>l(!0),onBlur:()=>l(!1),"aria-describedby":a?c:void 0,children:[n,s.jsx(K,{open:a,onClose:()=>l(!1),anchorRef:o,className:m("tooltip show",`bs-tooltip-${t}`,"position-absolute","w-auto",r),children:s.jsx("span",{id:c,role:"tooltip",className:"tooltip-inner",children:e})})]})}function jn({title:e,content:n,children:t,placement:r="bottom",className:a}){const[l,o]=f.useState(!1),c=f.useRef(null);return s.jsxs("span",{ref:c,className:"position-relative d-inline-block",onClick:()=>o(i=>!i),children:[t,s.jsxs(K,{open:l,onClose:()=>o(!1),anchorRef:c,className:m("popover show",`bs-popover-${r}`,"position-absolute","w-auto",a),children:[e&&s.jsx("h3",{className:"popover-header",children:e}),s.jsx("div",{className:"popover-body",children:n})]})]})}function W({width:e="100%",height:n="1rem",circle:t,className:r}){return s.jsx("span",{className:m("placeholder-glow d-inline-block",r),style:{width:e,height:n},"aria-hidden":"true",children:s.jsx("span",{className:m("placeholder w-100 h-100 d-block",t&&"rounded-circle")})})}function le({direction:e="column",gap:n=2,align:t,justify:r,wrap:a,className:l,children:o}){return s.jsx("div",{className:m("d-flex",e==="row"?"flex-row":"flex-column",`gap-${n}`,t&&`align-items-${t}`,r&&`justify-content-${r}`,a&&"flex-wrap",l),children:o})}const yn={xs:"0.75rem",sm:"0.875rem",md:"1rem",lg:"1.25rem",xl:"1.5rem"},Nn={normal:"fw-normal",medium:"fw-medium",semibold:"fw-semibold",bold:"fw-bold"},wn={default:void 0,muted:"text-body-secondary",primary:"text-primary",success:"text-success",danger:"text-danger",warning:"text-warning",info:"text-info"};function O({as:e,size:n="md",weight:t,tone:r="default",align:a,truncate:l,wrap:o=!0,className:c,children:i}){const d=e??"span";return s.jsx(d,{className:m(t&&Nn[t],wn[r],a&&`text-${a}`,l&&"text-truncate",!o&&!l&&"text-nowrap",c),style:{fontSize:yn[n]},children:i})}function kn({title:e,subtitle:n,icon:t,avatar:r,actions:a}){return s.jsxs("div",{className:"d-flex align-items-center justify-content-between gap-3",children:[s.jsxs("div",{className:"d-flex align-items-center gap-3",style:{minWidth:0},children:[r||t&&s.jsx("span",{className:"fs-2 lh-1",children:t}),(e||n)&&s.jsxs("div",{style:{minWidth:0},children:[e&&s.jsx(O,{as:"div",size:"lg",weight:"semibold",truncate:!0,children:e}),n&&s.jsx(O,{as:"div",size:"sm",tone:"muted",truncate:!0,children:n})]})]}),a&&s.jsx("div",{className:"d-flex align-items-center gap-2 flex-shrink-0",children:a})]})}function Sn({title:e,subtitle:n,icon:t,avatar:r,actions:a,header:l,footer:o,loading:c,className:i,children:d}){const x=l??(!!(e||n||t||r||a)?s.jsx(kn,{title:e,subtitle:n,icon:t,avatar:r,actions:a}):void 0);return s.jsxs("div",{className:m("card",i),children:[x&&s.jsx("div",{className:"card-header",children:x}),s.jsx("div",{className:"card-body",children:c?s.jsxs(le,{gap:2,children:[s.jsx(W,{height:"1rem",width:"60%"}),s.jsx(W,{height:"1rem"}),s.jsx(W,{height:"1rem",width:"80%"})]}):d}),o&&s.jsx("div",{className:"card-footer",children:o})]})}function Cn({className:e,vertical:n,label:t}){return n?s.jsx("div",{className:m("vr",e),role:"separator","aria-orientation":"vertical"}):t?s.jsxs("div",{className:m("d-flex align-items-center gap-2 my-3",e),role:"separator",children:[s.jsx("hr",{className:"flex-grow-1 m-0"}),s.jsx("span",{className:"text-body-secondary small",children:t}),s.jsx("hr",{className:"flex-grow-1 m-0"})]}):s.jsx("hr",{className:m("my-3",e),role:"separator"})}function In({fluid:e,className:n,children:t}){return s.jsx("div",{className:m(e?"container-fluid":"container",n),children:t})}function Dn({className:e,children:n}){return s.jsx("div",{className:m("row",e),children:n})}function Rn({span:e,sm:n,md:t,lg:r,xl:a,className:l,children:o}){return s.jsx("div",{className:m(e?`col-${e}`:"col",n?`col-sm-${n}`:void 0,t?`col-md-${t}`:void 0,r?`col-lg-${r}`:void 0,a?`col-xl-${a}`:void 0,l),children:o})}function Ee({items:e,className:n}){return s.jsx("nav",{"aria-label":"breadcrumb",className:n,children:s.jsx("ol",{className:"breadcrumb mb-0",children:e.map((t,r)=>{const a=r===e.length-1,l=!a&&(t.href||t.onClick);return s.jsx("li",{className:m("breadcrumb-item",a&&"active"),"aria-current":a?"page":void 0,children:l?s.jsx("a",{href:t.href??"#",onClick:o=>{var c;t.href||o.preventDefault(),(c=t.onClick)==null||c.call(t)},children:t.label}):t.label},r)})})})}function Vn({items:e,children:n,placement:t="start",className:r}){const[a,l]=f.useState(!1),o=f.useRef(null),c=f.useCallback(()=>l(!1),[]),i=f.useCallback(h=>{var v;const p=e[h];!p||p.disabled||((v=p.onSelect)==null||v.call(p),c())},[e,c]),{activeIndex:d,setActiveIndex:u,handleKeyDown:x}=Y({itemCount:e.length,isOpen:a,onSelect:i,onClose:c});return s.jsxs("span",{ref:o,className:"position-relative d-inline-block",onClick:()=>l(h=>!h),onKeyDown:x,children:[n,s.jsx(K,{open:a,onClose:c,anchorRef:o,role:"menu",className:m("dropdown-menu show",t==="end"&&"dropdown-menu-end",r),children:e.map((h,p)=>s.jsx("button",{type:"button",role:"menuitem",className:m("dropdown-item",p===d&&"active",h.disabled&&"disabled",h.danger&&"text-danger"),disabled:h.disabled,onMouseEnter:()=>u(p),onMouseDown:v=>v.preventDefault(),onClick:v=>{v.stopPropagation(),i(p)},children:h.label},h.key))})]})}function Tn({steps:e,currentStep:n,className:t}){return s.jsx("ol",{className:m("d-flex list-unstyled align-items-center",t),children:e.map((r,a)=>{const l=a<n?"complete":a===n?"active":"upcoming",o=a===e.length-1;return s.jsxs("li",{className:m("d-flex align-items-center",!o&&"flex-grow-1"),children:[s.jsxs("div",{className:"d-flex align-items-center gap-2",children:[s.jsx("span",{className:m("d-flex align-items-center justify-content-center rounded-circle flex-shrink-0",l==="complete"?"bg-primary text-white":l==="active"?"border border-primary text-primary":"border text-body-secondary"),style:{width:"2rem",height:"2rem"},"aria-current":l==="active"?"step":void 0,children:l==="complete"?"✓":a+1}),s.jsxs("div",{children:[s.jsx("div",{className:m("small fw-semibold",l==="upcoming"&&"text-body-secondary"),children:r.label}),r.description&&s.jsx("div",{className:"small text-body-secondary",children:r.description})]})]}),!o&&s.jsx("hr",{className:"flex-grow-1 mx-2"})]},r.key)})})}function En(e){var a,l;const n=e.trim().split(/\s+/),t=((a=n[0])==null?void 0:a[0])??"",r=n.length>1?((l=n[n.length-1])==null?void 0:l[0])??"":"";return(t+r).toUpperCase()}const Mn={sm:"1.75rem",md:"2.5rem",lg:"3.5rem"};function $n({src:e,name:n,size:t="md",className:r}){const a=Mn[t];return e?s.jsx("img",{src:e,alt:n??"",className:m("rounded-circle",r),style:{width:a,height:a,objectFit:"cover"}}):s.jsx("span",{className:m("d-inline-flex align-items-center justify-content-center rounded-circle bg-secondary text-white",r),style:{width:a,height:a,fontSize:`calc(${a} * 0.4)`},role:n?"img":void 0,"aria-label":n,children:n?En(n):null})}function An({variant:e="secondary",onRemove:n,className:t,children:r}){return s.jsxs("span",{className:m("badge d-inline-flex align-items-center gap-1",`bg-${e}`,t),children:[r,n&&s.jsx("button",{type:"button",className:"btn-close btn-close-white",style:{fontSize:"0.55rem"},"aria-label":"Remove",onClick:n})]})}function Fn({value:e,defaultValue:n,onChange:t,min:r=0,max:a=100,step:l=1,id:o,name:c,disabled:i,required:d,className:u,label:x,helpText:h,error:p}){const[v,N]=V({value:e,defaultValue:n??r,onChange:t}),w=f.useId(),g=o??w;return s.jsxs(F,{id:g,label:x,required:d,error:p,helpText:h,className:u,children:[s.jsx("input",{id:g,name:c,type:"range",className:"form-range",disabled:i,required:d,min:r,max:a,step:l,value:v,onChange:k=>N(Number(k.target.value))}),s.jsx("div",{className:"small text-body-secondary",children:v})]})}function Pn({value:e,defaultValue:n,onChange:t,max:r=5,disabled:a,className:l}){const[o,c]=V({value:e,defaultValue:n??0,onChange:t});return s.jsx("div",{className:m("d-inline-flex gap-1",l),role:"radiogroup","aria-label":"Rating",children:Array.from({length:r},(i,d)=>d+1).map(i=>s.jsx("button",{type:"button",className:"btn btn-link p-0 border-0",disabled:a,role:"radio","aria-checked":i===o,"aria-label":`${i} star${i>1?"s":""}`,onClick:()=>c(i),children:s.jsx("span",{"aria-hidden":"true",style:{fontSize:"1.25rem",color:i<=o?"#f5b301":"#ced4da"},children:"★"})},i))})}function On({value:e,variant:n="primary",label:t,className:r}){const a=Math.max(0,Math.min(100,e));return s.jsx("div",{className:m("progress",r),role:"progressbar","aria-valuenow":a,"aria-valuemin":0,"aria-valuemax":100,children:s.jsx("div",{className:m("progress-bar",`bg-${n}`),style:{width:`${a}%`},children:t?`${Math.round(a)}%`:null})})}function Ln({brand:e,start:n,end:t,variant:r="light",className:a}){return s.jsx("nav",{className:m("navbar navbar-expand-lg border-bottom",r==="dark"?"navbar-dark bg-dark":"navbar-light bg-light",a),children:s.jsxs("div",{className:"container-fluid",children:[e&&s.jsx("span",{className:"navbar-brand mb-0",children:e}),n&&s.jsx("div",{className:"d-flex align-items-center gap-3",children:n}),t&&s.jsx("div",{className:"d-flex align-items-center gap-3 ms-auto",children:t})]})})}function Bn(e){return"items"in e}function ue({item:e}){return s.jsxs("a",{href:e.href??"#",className:m("nav-link d-flex align-items-center gap-2",e.active&&"active",e.disabled&&"disabled"),"aria-current":e.active?"page":void 0,"aria-disabled":e.disabled,onClick:n=>{var t;e.href||n.preventDefault(),!e.disabled&&((t=e.onClick)==null||t.call(e))},children:[e.icon,e.label]})}function Kn({sections:e,header:n,footer:t,className:r}){return s.jsxs("div",{className:m("d-flex flex-column h-100",r),children:[n&&s.jsx("div",{className:"p-3 border-bottom",children:n}),s.jsx("nav",{className:"nav flex-column flex-grow-1 p-2 gap-1",children:e.map(a=>Bn(a)?s.jsx(Ve,{className:"border-0",defaultOpenKeys:a.defaultOpen?[a.key]:[],items:[{key:a.key,header:a.label,content:s.jsx("div",{className:"nav flex-column ps-2 gap-1",children:a.items.map(l=>s.jsx(ue,{item:l},l.key))})}]},a.key):s.jsx(ue,{item:a},a.key))}),t&&s.jsx("div",{className:"p-3 border-top",children:t})]})}function Hn({title:e,description:n,breadcrumbItems:t,actions:r,className:a}){return s.jsxs("div",{className:m("mb-4",a),children:[t&&t.length>0&&s.jsx(Ee,{items:t,className:"mb-2"}),s.jsxs("div",{className:"d-flex align-items-start justify-content-between gap-3 flex-wrap",children:[s.jsxs("div",{children:[s.jsx("h1",{className:"h3 mb-1",children:e}),n&&s.jsx("p",{className:"text-body-secondary mb-0",children:n})]}),r&&s.jsx("div",{className:"d-flex align-items-center gap-2",children:r})]})]})}const Gn={xs:1,sm:2,md:3,lg:4,xl:5};function _n(e){return typeof e=="number"?e:Gn[e]}function qn({direction:e="row",gap:n="sm",grow:t,shrink:r,fullWidth:a,className:l,...o}){return s.jsx(le,{direction:e,gap:_n(n),className:m(t&&"flex-grow-1",r&&"flex-shrink-0",a&&"w-100",l),...o})}function zn({icon:e,"aria-label":n,iconSize:t,tooltip:r,variant:a="light",loading:l,className:o,...c}){const i=s.jsx(J,{variant:a,loading:l,className:m("btn-icon",o),"aria-label":n,...c,children:!l&&s.jsx(Q,{name:e,size:t})});return r?s.jsx(Te,{content:r,children:i}):i}function Un({leading:e,title:n,description:t,trailing:r,onClick:a,disabled:l,dense:o,className:c}){const i=s.jsxs(s.Fragment,{children:[e&&s.jsx("span",{className:"flex-shrink-0 d-inline-flex align-items-center",children:e}),s.jsxs("span",{className:"flex-grow-1",style:{minWidth:0},children:[s.jsx("span",{className:"d-block text-truncate",children:n}),t&&s.jsx("span",{className:"d-block text-truncate small text-body-secondary",children:t})]}),r&&s.jsx("span",{className:"flex-shrink-0 d-inline-flex align-items-center",children:r})]}),d=m("d-flex align-items-center text-start",o?"gap-2 py-1":"gap-3 py-2",a&&"w-100 border-0 bg-transparent",l&&"opacity-50",c);return a?s.jsx("button",{type:"button",className:d,onClick:a,disabled:l,children:i}):s.jsx("div",{className:d,"aria-disabled":l||void 0,children:i})}function Wn(e,n,t,r){if(e.length===0)return[];const a=Math.min(...e),o=Math.max(...e)-a||1,c=n-r*2,i=t-r*2,d=e.length>1?c/(e.length-1):0;return e.map((u,x)=>{const h=r+d*x,p=r+i-(u-a)/o*i;return[h,p]})}function Jn({type:e,data:n,width:t,height:r,strokeWidth:a}){const l=a,o=Wn(n,t,r,l);if(o.length===0)return null;const c=o.map(([i,d])=>`${i},${d}`).join(" ");return s.jsxs(s.Fragment,{children:[e==="area"&&s.jsx("polygon",{points:`${l},${r-l} ${c} ${t-l},${r-l}`,fill:"currentColor",opacity:.2,stroke:"none"}),s.jsx("polyline",{points:c,fill:"none",stroke:"currentColor",strokeWidth:a,strokeLinecap:"round",strokeLinejoin:"round"})]})}function Zn({data:e,width:n,height:t}){if(e.length===0)return null;const r=Math.min(0,...e),l=Math.max(0,...e)-r||1,o=2,c=Math.max((n-o*(e.length-1))/e.length,1);return s.jsx(s.Fragment,{children:e.map((i,d)=>{const u=Math.max((i-r)/l*t,1),x=d*(c+o),h=t-u;return s.jsx("rect",{x,y:h,width:c,height:u,rx:1,fill:"currentColor"},d)})})}function Yn({type:e="line",data:n,tone:t="primary",width:r=80,height:a=28,strokeWidth:l=2,className:o,label:c}){return s.jsx("svg",{width:r,height:a,viewBox:`0 0 ${r} ${a}`,className:m(`text-${t}`,o),role:c?"img":void 0,"aria-label":c,"aria-hidden":c?void 0:!0,children:e==="bar"?s.jsx(Zn,{data:n,width:r,height:a}):s.jsx(Jn,{type:e,data:n,width:r,height:a,strokeWidth:l})})}const Qn={up:"success",down:"danger",neutral:"muted"},Xn={up:"bi bi-arrow-up-short",down:"bi bi-arrow-down-short",neutral:"bi bi-dash"};function et(e,n){return typeof e=="number"&&n!=null?e.toFixed(n):String(e)}function nt({label:e,value:n,prefix:t,suffix:r,precision:a,trend:l,delta:o,loading:c,className:i}){return s.jsxs("div",{className:m("d-flex flex-column gap-1",i),children:[s.jsx(O,{size:"sm",tone:"muted",children:e}),c?s.jsx(W,{height:"1.75rem",width:"60%"}):s.jsxs("div",{className:"d-flex align-items-baseline gap-1",children:[t&&s.jsx(O,{size:"lg",weight:"semibold",children:t}),s.jsx(O,{size:"xl",weight:"bold",children:et(n,a)}),r&&s.jsx(O,{size:"lg",weight:"semibold",children:r})]}),!c&&(l||o!=null)&&s.jsxs(O,{size:"sm",tone:l?Qn[l]:"muted",className:"d-inline-flex align-items-center gap-1",children:[l&&s.jsx(Q,{name:Xn[l],size:"sm"}),o]})]})}class Me extends Error{constructor(n,t,r){super(`HTTP ${n} ${t} for ${r}`),this.name="HttpError",this.status=n,this.statusText=t,this.url=r}}function tt(e){if(!e)return"";const n=new URLSearchParams;for(const[r,a]of Object.entries(e))a!=null&&n.set(r,String(a));const t=n.toString();return t?`?${t}`:""}function $e(e={}){const{baseUrl:n="",fetcher:t=fetch,buildRequestInit:r}=e;return{async get(a,l={}){const o=`${n}${a}${tt(l.params)}`;let c={method:"GET",signal:l.signal};r&&(c=r(o,c));const i=await t(o,c);if(!i.ok)throw new Me(i.status,i.statusText,o);return await i.json()}}}const Ae=$e();function st(e){return Object.keys(e).sort().reduce((n,t)=>(n[t]=e[t],n),{})}function _({client:e=Ae,url:n,params:t,mapResponse:r,enabled:a=!0}){const[l,o]=f.useState("idle"),[c,i]=f.useState([]),[d,u]=f.useState(null),[x,h]=f.useState(0),p=f.useMemo(()=>t?JSON.stringify(st(t)):"",[t]),v=f.useRef(0),N=f.useRef(r);N.current=r,f.useEffect(()=>{if(!a||!n){o("idle"),i([]),u(null);return}const g=++v.current,k=new AbortController;return o("loading"),u(null),e.get(n,{params:t,signal:k.signal}).then(y=>{if(g!==v.current)return;const C=N.current(y);i(C),o(C.length===0?"empty":"success")}).catch(y=>{g===v.current&&(y instanceof DOMException&&y.name==="AbortError"||(u(y instanceof Error?y:new Error(String(y))),o("error")))}),()=>{k.abort()}},[e,n,p,a,x]);const w=f.useCallback(()=>h(g=>g+1),[]);return{state:l,items:c,error:d,reload:w}}function Fe(e,n){const[t,r]=f.useState(e);return f.useEffect(()=>{const a=setTimeout(()=>r(e),n);return()=>clearTimeout(a)},[e,n]),t}function q(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 Z(e,n,t){if(e===null||typeof e!="object")throw new Error("Remote item is not an object; cannot read valueMember/displayMember from it.");const r=e;return{value:r[n],label:String(r[t]??"")}}function Pe({url:e,params:n,valueMember:t,displayMember:r,mapResponse:a,client:l,enabled:o,...c}){const{state:i,items:d,error:u}=_({client:l,url:e,params:n,enabled:o,mapResponse:h=>(a?a(h):q(h)).map(v=>Z(v,t,r))}),x=c.error??(i==="error"?(u==null?void 0:u.message)??"Failed to load options":void 0);return s.jsx(je,{...c,options:d,loading:i==="loading",error:x})}function rt({url:e,params:n,searchParam:t,valueMember:r,displayMember:a,mapResponse:l,minSearchLength:o=1,debounceMs:c=300,client:i,inputValue:d,onInputValueChange:u,...x}){const[h,p]=V({value:d,defaultValue:"",onChange:u}),v=Fe(h,c),N=v.length>=o,{state:w,items:g,error:k}=_({client:i,url:e,enabled:N,params:{...n,[t]:v},mapResponse:C=>(l?l(C):q(C)).map(j=>Z(j,r,a))}),y=x.error??(w==="error"?(k==null?void 0:k.message)??"Failed to load suggestions":void 0);return s.jsx(ye,{...x,options:g,loading:w==="loading",error:y,inputValue:h,onInputValueChange:p,filter:()=>!0})}function Oe({url:e,params:n,mapResponse:t,getTotalCount:r,pageSize:a=20,client:l,...o}){const[c,i]=f.useState(1),[d,u]=f.useState(null),x=f.useMemo(()=>JSON.stringify(n??{}),[n]),h=f.useRef(!0);f.useEffect(()=>{if(h.current){h.current=!1;return}i(1)},[x]);const p=f.useMemo(()=>({...n,page:c,pageSize:a,...d?{sortKey:d.key,sortDirection:d.direction}:{}}),[n,c,a,d]),v=f.useRef(void 0),{state:N,items:w,error:g}=_({client:l,url:e,params:p,mapResponse:j=>(v.current=j,t?t(j):q(j))}),k=v.current!==void 0?r==null?void 0:r(v.current):void 0,C=w.length>=a&&a>0?c*a+1:(c-1)*a+w.length,b=k??C;return s.jsx(Se,{...o,rows:w,loading:N==="loading",error:g==null?void 0:g.message,page:c,pageSize:a,totalCount:b,onPageChange:i,sort:d,onSortChange:j=>{u(j),i(1)}})}function at({url:e,params:n,valueMember:t,displayMember:r,mapResponse:a,client:l,enabled:o,...c}){const{state:i,items:d,error:u}=_({client:l,url:e,params:n,enabled:o,mapResponse:h=>(a?a(h):q(h)).map(v=>Z(v,t,r))}),x=c.error??(i==="error"?(u==null?void 0:u.message)??"Failed to load options":void 0);return s.jsx(pe,{...c,options:d,loading:i==="loading",error:x})}function lt({url:e,params:n,valueMember:t,displayMember:r,mapResponse:a,client:l,enabled:o,...c}){const{state:i,items:d,error:u}=_({client:l,url:e,params:n,enabled:o,mapResponse:h=>(a?a(h):q(h)).map(v=>Z(v,t,r))}),x=c.error??(i==="error"?(u==null?void 0:u.message)??"Failed to load options":void 0);return s.jsx(ve,{...c,options:d,loading:i==="loading",error:x})}function it(){const e=new Map,n=new Set;return{register(t,r){e.set(t,r)},resolve(t,r){const a=e.get(t.component);return a?a(t,r):(n.has(t.component)||(n.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 ot(e){const n=new Map(Object.entries(e??{}));return{register(t,r){n.set(t,r)},resolve(t){return n.get(t)}}}function ct(){const e=new Map;return{register(n,t){e.set(n,t)},resolve(n){return e.get(n)}}}function dt(e){return"dataSource"in e}function ut(e,n){if(!e)return;const t={};for(const[r,a]of Object.entries(e))t[r]=a.kind==="static"?a.value:n[a.field];return t}function fe(e,n,t){return n&&t?t(n):e}function z(e,n){const{values:t,translate:r}=n;return{metadata:e,visible:e.visible??!0,readOnly:e.readOnly??!1,disabled:e.disabled??!1,required:e.required??!1,label:fe(e.label,e.labelKey,r),placeholder:e.placeholder,helpText:e.helpText,validationMessage:fe(e.validationMessage,e.validationMessageKey,r),params:dt(e)?ut(e.dataSource.params,t):void 0}}function ft(e,n,t){const r=n==null?void 0:n.fields.find(a=>a.name===e);if(r)return z(r,t)}const mt=[];function ht(e,n){const t={};for(const r of n)t[r]=e[r];return t}function Le(e,n,t){const r=e??mt,a=ht(n,r),l=r.length===0?"":JSON.stringify(a),o=f.useRef(null),c=f.useRef(t);c.current=t,f.useEffect(()=>{var d;if(r.length===0)return;const i=o.current;if(i&&i.key!==l)for(const u of r)Object.is(i.snapshot[u],a[u])||(d=c.current)==null||d.call(c,u);o.current={key:l,snapshot:a}},[l])}function ie(e,n){const{actions:t,translate:r}=n,a=t.resolve(e.id);return{metadata:e,visible:e.visible??!0,enabled:(e.enabled??!0)&&!!a,label:e.labelKey&&r?r(e.labelKey):e.label,handler:a}}function xt(e,n,t){var a;const r=(a=n==null?void 0:n.actions)==null?void 0:a.find(l=>l.id===e);if(r)return ie(r,t)}const Be=(e,n)=>{const t=z(e,{values:n.values,translate:n.translate});if(!t.visible)return null;const r=n.dataSources.resolve(e.dataSource.id);return r?s.jsx(Pe,{label:t.label,url:r.url,client:r.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:n.values[e.name]??null,onChange:a=>n.onFieldChange(e.name,a)}):(console.warn(`Smart: no data source registered for id "${e.dataSource.id}" (field "${e.name}"). Skipping.`),null)};function bt(e,n){if(e.visible===!1)return null;const t=e.headerKey&&n?n(e.headerKey):e.header??e.key,r=e.format==="boolean"&&!!n;return{key:e.key,header:t,sortable:e.sortable,format:r?void 0:e.format,formatter:r?a=>n(a?"smart.boolean.true":"smart.boolean.false"):void 0}}const Ke=(e,n)=>{const t=z(e,{values:n.values,translate:n.translate});if(!t.visible)return null;const r=n.dataSources.resolve(e.dataSource.id);if(!r)return console.warn(`Smart: no data source registered for id "${e.dataSource.id}" (field "${e.name}"). Skipping.`),null;const a=e.columns.map(c=>bt(c,n.translate)).filter(c=>c!==null),l=e.totalCountField,o=l?c=>{const i=c==null?void 0:c[l];return typeof i=="number"?i:void 0}:void 0;return s.jsx(Oe,{url:r.url,client:r.client,params:t.params,columns:a,rowKey:c=>c[e.rowKey],getTotalCount:o})};function me(e){if(!e)return;const n=new Date(e);return Number.isNaN(n.getTime())?void 0:n}const He=(e,n)=>{const t=z(e,{values:n.values,translate:n.translate});return t.visible?s.jsx(ge,{label:t.label,required:t.required,readOnly:t.readOnly,disabled:t.disabled,helpText:t.helpText,error:t.validationMessage,min:me(e.minDate),max:me(e.maxDate),value:n.values[e.name]??null,onChange:r=>n.onFieldChange(e.name,r)}):null},Ge=(e,n)=>{const t=z(e,{values:n.values,translate:n.translate});return t.visible?s.jsx(G,{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:n.values[e.name]??"",onChange:r=>n.onFieldChange(e.name,r)}):null};function pt(e){e.register("Input",Ge),e.register("ComboBox",Be),e.register("DatePicker",He),e.register("DataGrid",Ke)}function _e({metadata:e,ctx:n}){const t=n.onMetadataRefreshNeeded;return Le(e.dependsOn,n.values,t?r=>t(e.name,r):void 0),e.visible===!1?null:n.registry.resolve(e,n)}const qe=1;function vt(e){const n=Number(e.split(".")[0]);return Number.isFinite(n)&&n===qe}function gt({metadata:e,ctx:n}){return vt(e.schemaVersion)?s.jsx(s.Fragment,{children:e.fields.map(t=>s.jsx(_e,{metadata:t,ctx:n},t.name))}):s.jsxs(ae,{variant:"danger",children:['Unsupported form schema version "',e.schemaVersion,'" — this app understands schema version ',qe,".x."]})}function ze({metadata:e,ctx:n}){const t=ie(e,n);return t.visible?s.jsx(J,{disabled:!t.enabled,onClick:()=>{var r;return(r=t.handler)==null?void 0:r.call(t)},children:t.label??e.id}):null}function jt({metadata:e,ctx:n}){return!e.actions||e.actions.length===0?null:s.jsx(s.Fragment,{children:e.actions.map(t=>s.jsx(ze,{metadata:t,ctx:n},t.id))})}exports.Accordion=Ve;exports.Alert=ae;exports.AutoComplete=ye;exports.Avatar=$n;exports.Badge=Re;exports.Breadcrumb=Ee;exports.Button=J;exports.Card=Sn;exports.CheckBox=Xe;exports.Col=Rn;exports.ComboBox=je;exports.ConfirmProvider=hn;exports.Container=In;exports.DataGrid=Se;exports.DatePicker=ge;exports.DateTimePicker=sn;exports.Divider=Cn;exports.FileInput=Qe;exports.Flex=qn;exports.FormField=an;exports.HttpError=Me;exports.Icon=Q;exports.IconButton=zn;exports.Input=G;exports.Label=he;exports.ListItem=Un;exports.Menu=Vn;exports.Modal=Ne;exports.MultiSelect=ve;exports.Navbar=Ln;exports.NumberInput=Ze;exports.PageHeader=Hn;exports.Pagination=we;exports.PasswordInput=Ye;exports.Popover=jn;exports.Popup=K;exports.ProgressBar=On;exports.RadioButton=be;exports.RadioGroup=nn;exports.Rating=Pn;exports.RemoteAutoComplete=rt;exports.RemoteComboBox=Pe;exports.RemoteDataGrid=Oe;exports.RemoteMultiSelect=lt;exports.RemoteSelect=at;exports.Row=Dn;exports.Select=pe;exports.Sidebar=Kn;exports.Skeleton=W;exports.Slider=Fn;exports.SmartAction=ze;exports.SmartActions=jt;exports.SmartField=_e;exports.SmartForm=gt;exports.Sparkline=Yn;exports.Spinner=Ce;exports.Stack=le;exports.Statistic=nt;exports.Stepper=Tn;exports.Switch=en;exports.Tabs=gn;exports.Tag=An;exports.Text=O;exports.TextArea=Je;exports.TimePicker=tn;exports.ToastProvider=fn;exports.Tooltip=Te;exports.ValidationMessage=ee;exports.comboBoxResolver=Be;exports.createHttpClient=$e;exports.createSmartActionRegistry=ct;exports.createSmartComponentRegistry=it;exports.createSmartDataSourceRegistry=ot;exports.dataGridFormatters=ke;exports.dataGridResolver=Ke;exports.datePickerResolver=He;exports.defaultArrayNormalization=q;exports.defaultHttpClient=Ae;exports.fromDateInputValue=te;exports.fromTimeInputValue=re;exports.inputResolver=Ge;exports.registerBuiltInResolvers=pt;exports.resolveSmartActionMetadata=ie;exports.resolveSmartFieldMetadata=z;exports.toDateInputValue=L;exports.toSelectOption=Z;exports.toTimeInputValue=se;exports.useConfirm=xn;exports.useDebouncedValue=Fe;exports.useRemoteData=_;exports.useSmartAction=xt;exports.useSmartDependencies=Le;exports.useSmartField=ft;exports.useToast=mn;
|
|
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;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|