@riab/cpm-archiving 1.1.17-beta.0 → 1.1.17-beta.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.
@@ -410,10 +410,10 @@ john.smith@example.com,Bob Williams,+14155552671,Personal Friend\r
410
410
  jane.doe@example.com,Carol Brown,+447700900456,Non-client Business Contact\r
411
411
  jane.doe@example.com,David Lee,+61412345678,Others\r
412
412
  mark.taylor@example.com,Eve Davis,+16505554321,Family\r
413
- `,rde=()=>{jq(nde,Nq,"text/csv;charset=utf-8;")},ade=20*1024*1024,ide=({onProcessFile:e,isProcessing:t=!1})=>{const[n,r]=N.useState(null),[a,i]=N.useState(null),[o,c]=N.useState(!1),d=N.useRef(null),h=async x=>{if(!uD(x)){ge.error("Please upload a CSV file (.csv only). Other extensions are not allowed.",{id:"bulk-file-format-error",duration:5e3});return}if(x.size===0){ge.error("The uploaded file is empty.",{id:"bulk-file-empty-error",duration:5e3});return}if(x.size>ade){ge.error("The file exceeds the maximum size of 20 MB. Please upload a smaller file.",{id:"bulk-file-size-error",duration:5e3});return}r(x);const A=(x.size/1024).toFixed(2);i(Number(A))},g=x=>{x.preventDefault(),c(!1);const A=x.dataTransfer.files[0];A&&h(A)},p=x=>{var w;const A=(w=x.target.files)==null?void 0:w[0];A&&h(A),x.target.value=""},b=()=>{r(null),i(null)},v=()=>{!n||!uD(n)||e(n)};return u.jsxs("div",{className:"flex flex-col gap-8",children:[u.jsxs("section",{children:[u.jsx("h2",{className:"text-brand-dark-800 text-lg font-semibold mb-1",children:"1. Download the template"}),u.jsx("p",{className:"text-brand-dark-600 text-sm mb-4",children:"Download the template below to ensure your file uses the correct columns. Do not rename or reorder the headers."}),u.jsxs("div",{className:"flex items-center justify-between bg-near-neutral-200 border border-near-neutral-400 rounded px-4 py-3 mb-4",children:[u.jsx("span",{className:"text-sm text-brand-dark-700 font-medium",children:Nq}),u.jsxs(na,{type:"button",onClick:rde,className:"gap-2 text-sm h-9 normal-case font-medium bg-white",children:[u.jsx(se,{icon:Qo,size:"small"}),"Download CSV template"]})]}),u.jsxs("div",{className:"bg-alert-bg border border-alert-txt rounded px-4 py-3",children:[u.jsxs("div",{className:"flex gap-2 bg-blend-color",children:[u.jsx(se,{icon:o6,size:"medium",className:"shrink-0 text-alert-txt"}),u.jsx("p",{className:" text-alert-txt font-semibold text-sm mb-1",children:"Before you fill it out"})]}),u.jsxs("ul",{className:"list-disc list-inside text-alert-txt text-sm space-y-0.5 pl-5",children:[u.jsx("li",{children:"All fields are mandatory."}),u.jsx("li",{children:"Do not rename, reorder, or delete any columns."}),u.jsx("li",{children:"Phone numbers must include country code — e.g. 14551234567 for US."})]})]})]}),u.jsxs("section",{children:[u.jsx("h2",{className:"text-brand-dark-800 text-lg font-semibold mb-1",children:"2. Upload your completed file"}),u.jsx("p",{className:"text-brand-dark-600 text-sm mb-4",children:"Once you've filled out the template, upload it here."}),n?u.jsxs("div",{className:"flex items-center justify-between border border-near-neutral-400 rounded-lg bg-near-neutral-100 px-4 py-3",children:[u.jsxs("div",{className:"flex items-center gap-3",children:[u.jsx(se,{icon:T4,size:"medium",className:"text-contextual-success-500"}),u.jsxs("div",{children:[u.jsx("p",{className:"text-brand-dark-800 text-sm font-medium leading-tight",children:n.name}),a!==null&&u.jsxs("p",{className:"text-near-neutral-700 text-xs mt-0.5",children:[a," kb"]})]})]}),u.jsx("button",{type:"button",onClick:b,"aria-label":"Remove file",className:"cursor-pointer border-0 bg-transparent p-0",children:u.jsx(se,{icon:Pi,size:"medium"})})]}):u.jsxs("div",{onClick:()=>{var x;return(x=d.current)==null?void 0:x.click()},onDragOver:x=>{x.preventDefault(),c(!0)},onDragLeave:()=>c(!1),onDrop:g,className:["border-2 border-dashed rounded flex flex-col items-center justify-center gap-2 py-10 cursor-pointer transition-colors",o?"border-brand-medium-500 bg-brand-bright-50":"border-near-neutral-500 bg-white hover:bg-near-neutral-100"].join(" "),children:[u.jsxs("svg",{viewBox:"0 0 24 24",className:"w-8 h-8 text-brand-medium-500",fill:"none",stroke:"currentColor",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round",children:[u.jsx("path",{d:"M21 15v4a2 2 0 01-2 2H5a2 2 0 01-2-2v-4"}),u.jsx("polyline",{points:"17 8 12 3 7 8"}),u.jsx("line",{x1:"12",y1:"3",x2:"12",y2:"15"})]}),u.jsx("p",{className:"text-brand-dark-800 text-sm",children:"Drag and drop CSV file here or click to upload"})]}),u.jsx("input",{ref:d,type:"file",accept:".csv,text/csv",className:"hidden",onChange:p})]}),u.jsx("div",{className:"flex justify-end gap-3",children:u.jsx(sn,{disabled:!n||t,onClick:v,className:"h-10 text-sm normal-case font-medium disabled:bg-neutral-green-300 disabled:text-white",children:t?"Processing…":"Process File"})})]})},sde=()=>{const[e,t]=N.useState(12);return N.useEffect(()=>{const n=window.setInterval(()=>{t(r=>r>=92?r:r+4+Math.random()*8)},350);return()=>window.clearInterval(n)},[]),u.jsxs("div",{className:"rounded-lg border border-near-neutral-400 bg-near-neutral-100 px-8 py-10",children:[u.jsx("h2",{className:"text-brand-dark-800 text-lg font-semibold mb-2",children:"Validating your files..."}),u.jsx("p",{className:"text-brand-dark-600 text-sm mb-6",children:"Checking all rows for errors. This usually takes a few seconds."}),u.jsx("div",{className:"h-2 w-full rounded-full bg-neutral-green-200 overflow-hidden",children:u.jsx("div",{className:"h-full rounded-full bg-brand-medium-500 transition-[width] duration-300 ease-out",style:{width:`${Math.min(e,100)}%`}})})]})},sf=$n(),Tq=[sf.accessor("deviceOwner",{header:"Device Owner",cell:e=>{var t;return((t=e.getValue())==null?void 0:t.trim())||"—"}}),sf.accessor("deviceOwnerEmail",{header:"Device Owner Email",cell:e=>e.getValue()}),sf.accessor("contactName",{header:"Contact Name",cell:e=>e.getValue()}),sf.accessor("phoneNumber",{header:"Phone Number",cell:e=>c8(e.getValue())||e.getValue()}),sf.accessor("relationship",{header:"Relationship",cell:e=>e.getValue()})],ode=[...Tq,sf.accessor("errorMessage",{header:"Error",cell:e=>u.jsx("span",{className:"text-contextual-danger",children:e.getValue()})})],lde=({validationResult:e,onStartOver:t,onConfirm:n,isConfirming:r=!1})=>{const{validCount:a,failedCount:i,rows:o}=e,c=N.useMemo(()=>o.filter(b=>!b.isValid),[o]),d=N.useMemo(()=>o.filter(b=>b.isValid),[o]),h=Bn({data:c,columns:ode,getCoreRowModel:_n(),getPaginationRowModel:Un(),getRowId:b=>b.rowNumber.toString(),initialState:{pagination:{pageSize:10}}}),g=Bn({data:d,columns:Tq,getCoreRowModel:_n(),getPaginationRowModel:Un(),getRowId:b=>b.rowNumber.toString(),initialState:{pagination:{pageSize:10}}}),p=i>0;return u.jsxs("div",{className:"flex flex-col gap-8",children:[u.jsxs("div",{children:[u.jsx("h2",{className:"text-brand-dark-800 text-xl font-semibold mb-2",children:"Your file is ready to review"}),u.jsx("p",{className:"text-brand-dark-600 text-sm",children:p?"Some rows contain errors and will be skipped. You can add the valid rows now and fix the errors in your CSV to upload the remaining entries separately.":"All rows passed validation. Review the entries below, then confirm to add them."})]}),u.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[u.jsxs("div",{className:"flex flex-col items-center justify-center gap-2 rounded-lg border border-contextual-danger-400 bg-contextual-danger-50 px-5 py-6",children:[u.jsxs("div",{className:"flex items-center gap-2",children:[u.jsx("span",{className:"flex size-8 shrink-0 items-center justify-center rounded-full bg-contextual-danger text-white",children:u.jsx(se,{icon:Jt,size:"small"})}),u.jsx("span",{className:"text-contextual-danger font-semibold text-2xl leading-none",children:i})]}),u.jsx("p",{className:"text-brand-dark-800 text-sm font-medium",children:"Failed Rows"})]}),u.jsxs("div",{className:"flex flex-col items-center justify-center gap-2 rounded-lg border border-contextual-success-400 bg-contextual-success-50 px-5 py-6",children:[u.jsxs("div",{className:"flex items-center gap-2",children:[u.jsx("span",{className:"flex size-8 shrink-0 items-center justify-center rounded-full bg-contextual-success-500 text-white",children:u.jsx(se,{icon:En,size:"small"})}),u.jsx("span",{className:"text-contextual-success-500 font-semibold text-2xl leading-none",children:a})]}),u.jsx("p",{className:"text-brand-dark-800 text-sm font-medium",children:"Successful Rows"})]})]}),p&&u.jsxs("section",{className:"rounded-lg border border-brand-dark-800 overflow-hidden",children:[u.jsxs("div",{className:"flex items-center justify-between gap-4 bg-near-neutral-300 px-4 py-3",children:[u.jsxs("div",{className:"flex items-center gap-2 text-contextual-danger font-semibold text-sm",children:[u.jsx("span",{className:"flex size-5 shrink-0 items-center justify-center rounded-full bg-contextual-danger text-white",children:u.jsx(se,{icon:Jt,size:"small",className:"[&_svg]:size-2.5"})}),"Failed Rows Details"]}),u.jsxs(na,{onClick:()=>Pq(c),className:`gap-2 text-sm h-9 normal-case font-medium border-contextual-danger \r
414
- text-contextual-danger bg-white active:bg-contextual-danger-50 \r
415
- hover:bg-contextual-danger-50 hover:text-contextual-danger`,children:[u.jsx(se,{icon:Qo,size:"small"}),"Download Error Summary"]})]}),u.jsx(Dr,{table:h,maxHeight:null,hasGlobalFilter:!1,paginationControlLabel:"Items",showItemsPerPageLabel:!0,outerBorder:!1})]}),a>0&&u.jsxs("section",{className:"rounded-lg border border-brand-dark-800 overflow-hidden",children:[u.jsxs("div",{className:"flex items-center gap-2 bg-near-neutral-300 px-4 py-3 text-contextual-success-500 font-semibold text-sm",children:[u.jsx("span",{className:"flex size-5 shrink-0 items-center justify-center rounded-full bg-contextual-success-500 text-white",children:u.jsx(se,{icon:En,size:"small",className:"[&_svg]:size-2.5"})}),"Successful Rows Details"]}),u.jsx(Dr,{table:g,maxHeight:null,hasGlobalFilter:!1,paginationControlLabel:"Items",showItemsPerPageLabel:!0,outerBorder:!1})]}),u.jsxs("div",{className:"flex justify-end gap-3 pt-2",children:[u.jsx(na,{disabled:r,onClick:t,className:"h-10 text-sm normal-case font-medium",children:"Start Over"}),u.jsxs(sn,{disabled:a===0||r,onClick:n,className:"h-10 text-sm normal-case font-medium disabled:bg-neutral-green-300 disabled:text-white",children:["Confirm and Add ",a," Successful"," ",a===1?"Row":"Rows"]})]})]})},ude=({validationResult:e,importResult:t,onStartOver:n})=>{const{failedCount:r}=e,{addedCount:a}=t,i=e.rows.filter(d=>!d.isValid),o=r>0,c=r===0?`${a} ${a===1?"number":"numbers"} added successfully`:`${a} ${a===1?"number":"numbers"} added and ${r} ${r===1?"row":"rows"} skipped`;return u.jsxs("div",{className:"flex flex-col gap-8",children:[u.jsxs("div",{className:"flex flex-col items-center text-center gap-4 py-6",children:[u.jsx("span",{className:"flex size-14 shrink-0 items-center justify-center rounded-full bg-contextual-success-500 text-white",children:u.jsx(se,{icon:En,size:"large"})}),u.jsxs("div",{children:[u.jsx("h2",{className:"text-brand-dark-800 text-xl font-semibold mb-2",children:c}),o&&u.jsx("p",{className:"text-brand-dark-600 text-sm max-w-lg",children:"Valid entries have been added. Download the error report below for your records."})]})]}),o&&u.jsx("section",{className:"rounded-lg overflow-hidden",children:u.jsxs("div",{className:"flex items-center justify-between gap-4 bg-near-neutral-300 px-4 py-4",children:[u.jsxs("div",{children:[u.jsx("p",{className:"text-brand-dark-800 text-sm font-semibold mb-1",children:"Error summary"}),u.jsxs("p",{className:"text-brand-dark-600 text-sm",children:[r," ",r===1?"row needs":"rows need"," ","corrections. Download the error summary CSV, fix them in your file, and upload again."]})]}),u.jsxs(na,{onClick:()=>Pq(i),className:`gap-2 text-sm h-9 normal-case font-medium shrink-0 border-contextual-danger\r
416
- text-contextual-danger bg-white active:bg-contextual-danger-50\r
413
+ `,rde=()=>{jq(nde,Nq,"text/csv;charset=utf-8;")},ade=20*1024*1024,ide=({onProcessFile:e,isProcessing:t=!1})=>{const[n,r]=N.useState(null),[a,i]=N.useState(null),[o,c]=N.useState(!1),d=N.useRef(null),h=async x=>{if(!uD(x)){ge.error("Please upload a CSV file (.csv only). Other extensions are not allowed.",{id:"bulk-file-format-error",duration:5e3});return}if(x.size===0){ge.error("The uploaded file is empty.",{id:"bulk-file-empty-error",duration:5e3});return}if(x.size>ade){ge.error("The file exceeds the maximum size of 20 MB. Please upload a smaller file.",{id:"bulk-file-size-error",duration:5e3});return}r(x);const A=(x.size/1024).toFixed(2);i(Number(A))},g=x=>{x.preventDefault(),c(!1);const A=x.dataTransfer.files[0];A&&h(A)},p=x=>{var w;const A=(w=x.target.files)==null?void 0:w[0];A&&h(A),x.target.value=""},b=()=>{r(null),i(null)},v=()=>{!n||!uD(n)||e(n)};return u.jsxs("div",{className:"flex flex-col gap-8",children:[u.jsxs("section",{children:[u.jsx("h2",{className:"text-brand-dark-800 text-lg font-semibold mb-1",children:"1. Download the template"}),u.jsx("p",{className:"text-brand-dark-600 text-sm mb-4",children:"Download the template below to ensure your file uses the correct columns. Do not rename or reorder the headers."}),u.jsxs("div",{className:"flex items-center justify-between bg-near-neutral-200 border border-near-neutral-400 rounded px-4 py-3 mb-4",children:[u.jsx("span",{className:"text-sm text-brand-dark-700 font-medium",children:Nq}),u.jsxs(na,{type:"button",onClick:rde,className:"gap-2 text-sm h-9 normal-case font-medium bg-white",children:[u.jsx(se,{icon:Qo,size:"small"}),"Download CSV template"]})]}),u.jsxs("div",{className:"bg-alert-bg border border-alert-txt rounded px-4 py-3",children:[u.jsxs("div",{className:"flex gap-2 bg-blend-color",children:[u.jsx(se,{icon:o6,size:"medium",className:"shrink-0 text-alert-txt"}),u.jsx("p",{className:" text-alert-txt font-semibold text-sm mb-1",children:"Before you fill it out"})]}),u.jsxs("ul",{className:"list-disc list-inside text-alert-txt text-sm space-y-0.5 pl-5",children:[u.jsx("li",{children:"All fields are mandatory."}),u.jsx("li",{children:"Do not rename, reorder, or delete any columns."}),u.jsx("li",{children:"Phone numbers must include country code — e.g. 14551234567 for US."})]})]})]}),u.jsxs("section",{children:[u.jsx("h2",{className:"text-brand-dark-800 text-lg font-semibold mb-1",children:"2. Upload your completed file"}),u.jsx("p",{className:"text-brand-dark-600 text-sm mb-4",children:"Once you've filled out the template, upload it here."}),n?u.jsxs("div",{className:"flex items-center justify-between border border-near-neutral-400 rounded-lg bg-near-neutral-100 px-4 py-3",children:[u.jsxs("div",{className:"flex items-center gap-3",children:[u.jsx(se,{icon:T4,size:"medium",className:"text-contextual-success-500"}),u.jsxs("div",{children:[u.jsx("p",{className:"text-brand-dark-800 text-sm font-medium leading-tight",children:n.name}),a!==null&&u.jsxs("p",{className:"text-near-neutral-700 text-xs mt-0.5",children:[a," kb"]})]})]}),u.jsx("button",{type:"button",onClick:b,"aria-label":"Remove file",className:"cursor-pointer border-0 bg-transparent p-0",children:u.jsx(se,{icon:Pi,size:"medium"})})]}):u.jsxs("div",{onClick:()=>{var x;return(x=d.current)==null?void 0:x.click()},onDragOver:x=>{x.preventDefault(),c(!0)},onDragLeave:()=>c(!1),onDrop:g,className:["border-2 border-dashed rounded flex flex-col items-center justify-center gap-2 py-10 cursor-pointer transition-colors",o?"border-brand-medium-500 bg-brand-bright-50":"border-near-neutral-500 bg-white hover:bg-near-neutral-100"].join(" "),children:[u.jsxs("svg",{viewBox:"0 0 24 24",className:"w-8 h-8 text-brand-medium-500",fill:"none",stroke:"currentColor",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round",children:[u.jsx("path",{d:"M21 15v4a2 2 0 01-2 2H5a2 2 0 01-2-2v-4"}),u.jsx("polyline",{points:"17 8 12 3 7 8"}),u.jsx("line",{x1:"12",y1:"3",x2:"12",y2:"15"})]}),u.jsx("p",{className:"text-brand-dark-800 text-sm",children:"Drag and drop CSV file here or click to upload"})]}),u.jsx("input",{ref:d,type:"file",accept:".csv,text/csv",className:"hidden",onChange:p})]}),u.jsx("div",{className:"flex justify-end gap-3",children:u.jsx(sn,{disabled:!n||t,onClick:v,className:"h-10 text-sm normal-case font-medium disabled:bg-neutral-green-300 disabled:text-white",children:t?"Processing…":"Process File"})})]})},sde=()=>{const[e,t]=N.useState(12);return N.useEffect(()=>{const n=window.setInterval(()=>{t(r=>r>=92?r:r+4+Math.random()*8)},350);return()=>window.clearInterval(n)},[]),u.jsxs("div",{className:"rounded-lg border border-near-neutral-400 bg-near-neutral-100 px-8 py-10",children:[u.jsx("h2",{className:"text-brand-dark-800 text-lg font-semibold mb-2",children:"Validating your files..."}),u.jsx("p",{className:"text-brand-dark-600 text-sm mb-6",children:"Checking all rows for errors. This usually takes a few seconds."}),u.jsx("div",{className:"h-2 w-full rounded-full bg-neutral-green-200 overflow-hidden",children:u.jsx("div",{className:"h-full rounded-full bg-brand-medium-500 transition-[width] duration-300 ease-out",style:{width:`${Math.min(e,100)}%`}})})]})},sf=$n(),Tq=[sf.accessor("deviceOwner",{header:"Device Owner",cell:e=>{var t;return((t=e.getValue())==null?void 0:t.trim())||"—"}}),sf.accessor("deviceOwnerEmail",{header:"Device Owner Email",cell:e=>e.getValue()}),sf.accessor("contactName",{header:"Contact Name",cell:e=>e.getValue()}),sf.accessor("phoneNumber",{header:"Phone Number",cell:e=>c8(e.getValue())||e.getValue()}),sf.accessor("relationship",{header:"Relationship",cell:e=>e.getValue()})],ode=[...Tq,sf.accessor("errorMessage",{header:"Error",cell:e=>u.jsx("span",{className:"text-contextual-danger",children:e.getValue()})})],lde=({validationResult:e,onStartOver:t,onConfirm:n,isConfirming:r=!1})=>{const{validCount:a,failedCount:i,rows:o}=e,c=N.useMemo(()=>o.filter(b=>!b.isValid),[o]),d=N.useMemo(()=>o.filter(b=>b.isValid),[o]),h=Bn({data:c,columns:ode,getCoreRowModel:_n(),getPaginationRowModel:Un(),getRowId:b=>b.rowNumber.toString(),initialState:{pagination:{pageSize:10}}}),g=Bn({data:d,columns:Tq,getCoreRowModel:_n(),getPaginationRowModel:Un(),getRowId:b=>b.rowNumber.toString(),initialState:{pagination:{pageSize:10}}}),p=i>0;return u.jsxs("div",{className:"flex flex-col gap-8",children:[u.jsxs("div",{children:[u.jsx("h2",{className:"text-brand-dark-800 text-xl font-semibold mb-2",children:"Your file is ready to review"}),u.jsx("p",{className:"text-brand-dark-600 text-sm",children:p?"Some rows contain errors and will be skipped. You can add the valid rows now and fix the errors in your CSV to upload the remaining entries separately.":"All rows passed validation. Review the entries below, then confirm to add them."})]}),u.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[u.jsxs("div",{className:"flex flex-col items-center justify-center gap-2 rounded-lg border border-contextual-danger-400 bg-contextual-danger-50 px-5 py-6",children:[u.jsxs("div",{className:"flex items-center gap-2",children:[u.jsx("span",{className:"flex size-8 shrink-0 items-center justify-center rounded-full bg-contextual-danger text-white",children:u.jsx(se,{icon:Jt,size:"small"})}),u.jsx("span",{className:"text-contextual-danger font-semibold text-2xl leading-none",children:i})]}),u.jsx("p",{className:"text-brand-dark-800 text-sm font-medium",children:"Failed Rows"})]}),u.jsxs("div",{className:"flex flex-col items-center justify-center gap-2 rounded-lg border border-contextual-success-400 bg-contextual-success-50 px-5 py-6",children:[u.jsxs("div",{className:"flex items-center gap-2",children:[u.jsx("span",{className:"flex size-8 shrink-0 items-center justify-center rounded-full bg-contextual-success-500 text-white",children:u.jsx(se,{icon:En,size:"small"})}),u.jsx("span",{className:"text-contextual-success-500 font-semibold text-2xl leading-none",children:a})]}),u.jsx("p",{className:"text-brand-dark-800 text-sm font-medium",children:"Successful Rows"})]})]}),p&&u.jsxs("section",{className:"rounded-lg border border-brand-dark-800 overflow-hidden",children:[u.jsxs("div",{className:"flex items-center justify-between gap-4 bg-near-neutral-300 px-4 py-3",children:[u.jsxs("div",{className:"flex items-center gap-2 text-contextual-danger font-semibold text-sm",children:[u.jsx("span",{className:"flex size-5 shrink-0 items-center justify-center rounded-full bg-contextual-danger text-white",children:u.jsx(se,{icon:Jt,size:"small",className:"[&_svg]:size-2.5"})}),"Failed Rows Details"]}),u.jsxs(na,{onClick:()=>Pq(c),className:`gap-2 text-sm h-9 normal-case font-medium border-contextual-danger
414
+ text-contextual-danger bg-white active:bg-contextual-danger-50
415
+ hover:bg-contextual-danger-50 hover:text-contextual-danger`,children:[u.jsx(se,{icon:Qo,size:"small"}),"Download Error Summary"]})]}),u.jsx(Dr,{table:h,maxHeight:null,hasGlobalFilter:!1,paginationControlLabel:"Items",showItemsPerPageLabel:!0,outerBorder:!1})]}),a>0&&u.jsxs("section",{className:"rounded-lg border border-brand-dark-800 overflow-hidden",children:[u.jsxs("div",{className:"flex items-center gap-2 bg-near-neutral-300 px-4 py-3 text-contextual-success-500 font-semibold text-sm",children:[u.jsx("span",{className:"flex size-5 shrink-0 items-center justify-center rounded-full bg-contextual-success-500 text-white",children:u.jsx(se,{icon:En,size:"small",className:"[&_svg]:size-2.5"})}),"Successful Rows Details"]}),u.jsx(Dr,{table:g,maxHeight:null,hasGlobalFilter:!1,paginationControlLabel:"Items",showItemsPerPageLabel:!0,outerBorder:!1})]}),u.jsxs("div",{className:"flex justify-end gap-3 pt-2",children:[u.jsx(na,{disabled:r,onClick:t,className:"h-10 text-sm normal-case font-medium",children:"Start Over"}),u.jsxs(sn,{disabled:a===0||r,onClick:n,className:"h-10 text-sm normal-case font-medium disabled:bg-neutral-green-300 disabled:text-white",children:["Confirm and Add ",a," Successful"," ",a===1?"Row":"Rows"]})]})]})},ude=({validationResult:e,importResult:t,onStartOver:n})=>{const{failedCount:r}=e,{addedCount:a}=t,i=e.rows.filter(d=>!d.isValid),o=r>0,c=r===0?`${a} ${a===1?"number":"numbers"} added successfully`:`${a} ${a===1?"number":"numbers"} added and ${r} ${r===1?"row":"rows"} skipped`;return u.jsxs("div",{className:"flex flex-col gap-8",children:[u.jsxs("div",{className:"flex flex-col items-center text-center gap-4 py-6",children:[u.jsx("span",{className:"flex size-14 shrink-0 items-center justify-center rounded-full bg-contextual-success-500 text-white",children:u.jsx(se,{icon:En,size:"large"})}),u.jsxs("div",{children:[u.jsx("h2",{className:"text-brand-dark-800 text-xl font-semibold mb-2",children:c}),o&&u.jsx("p",{className:"text-brand-dark-600 text-sm max-w-lg",children:"Valid entries have been added. Download the error report below for your records."})]})]}),o&&u.jsx("section",{className:"rounded-lg overflow-hidden",children:u.jsxs("div",{className:"flex items-center justify-between gap-4 bg-near-neutral-300 px-4 py-4",children:[u.jsxs("div",{children:[u.jsx("p",{className:"text-brand-dark-800 text-sm font-semibold mb-1",children:"Error summary"}),u.jsxs("p",{className:"text-brand-dark-600 text-sm",children:[r," ",r===1?"row needs":"rows need"," ","corrections. Download the error summary CSV, fix them in your file, and upload again."]})]}),u.jsxs(na,{onClick:()=>Pq(i),className:`gap-2 text-sm h-9 normal-case font-medium shrink-0 border-contextual-danger
416
+ text-contextual-danger bg-white active:bg-contextual-danger-50
417
417
  hover:bg-contextual-danger-50 hover:text-contextual-danger`,children:[u.jsx(se,{icon:Qo,size:"small"}),"Download Error Summary"]})]})}),u.jsxs("div",{className:"flex justify-center gap-3 pt-2",children:[u.jsx(na,{onClick:n,className:"h-10 text-sm normal-case font-medium",children:"Upload Another File"}),u.jsx(Kn,{to:"/settings/mobile/excluded-contacts",children:u.jsx(sn,{className:"h-10 text-sm normal-case font-medium",children:"Back to Settings"})})]})]})},cde=()=>_t({mutationFn:async e=>{const t=new FormData;return t.append("csvFile",e),Ye.post("/mobileexclusions/bulk/validate",t)},onError:()=>{ge.error("Failed to process the file. Please try again.",{id:"bulk-validate-error",duration:5e3})}}),dde=e=>({rows:e.map(t=>({userId:t.resolvedUserId,contactName:t.contactName,phoneNumber:t.phoneNumber,relationshipId:t.resolvedRelationshipId}))}),fde=()=>{const e=zt();return _t({mutationFn:async t=>Ye.post("/mobileexclusions/bulk/import",dde(t)),onSuccess:t=>{e.invalidateQueries({queryKey:["mobileExcludedContacts"]}),ge.success(`${t.addedCount} ${t.addedCount===1?"row":"rows"} added successfully`,{id:"bulk-import-success"})},onError:()=>{ge.error("Failed to add excluded numbers. Please try again.",{id:"bulk-import-error",duration:5e3})}})},hde=()=>{const[e,t]=N.useState({step:1}),n=cde(),r=fde(),a=async c=>{var d;t({step:"validating",file:c});try{const h=await n.mutateAsync(c);if(!h.isParsed){ge.error((d=h.parseErrorMessage)!=null?d:"The file could not be parsed.",{id:"bulk-parse-error",duration:5e3}),t({step:1});return}t({step:2,file:c,validationResult:h})}catch(h){t({step:1})}},i=()=>{if(e.step!==2)return;const c=e.validationResult.rows.filter(d=>d.isValid);c.length!==0&&r.mutate(c,{onSuccess:d=>{t({step:3,validationResult:e.validationResult,importResult:d})}})},o=e.step===1?1:e.step===3?3:2;return u.jsxs("div",{className:"flex flex-col w-full",children:[u.jsxs(Kn,{to:"/settings/mobile/excluded-contacts",className:"flex items-center gap-1 text-brand-dark-800 text-sm font-medium mb-6 w-fit",children:[u.jsx("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",strokeWidth:2,children:u.jsx("polyline",{points:"10,3 5,8 10,13"})}),"Back to settings"]}),u.jsx(Jce,{currentStep:o}),u.jsxs("div",{className:"w-full",children:[e.step===1&&u.jsx(ide,{onProcessFile:a,isProcessing:n.isPending}),e.step==="validating"&&u.jsx(sde,{}),e.step===2&&u.jsx(lde,{validationResult:e.validationResult,onStartOver:()=>t({step:1}),onConfirm:i,isConfirming:r.isPending}),e.step===3&&u.jsx(ude,{validationResult:e.validationResult,importResult:e.importResult,onStartOver:()=>t({step:1})})]})]})},mde=()=>u.jsx("section",{className:"flex flex-col w-full mb-3",children:u.jsx(hde,{})}),d8=()=>u.jsxs("section",{className:"flex flex-col w-full !mb-3",children:[u.jsx("h4",{className:"text-2xl font-semibold leading-9",children:"Native Text-Message Coverage with LeapXpert"}),u.jsxs("div",{children:[u.jsx("p",{className:"mt-5",children:"Comply’s partnership with LeapXpert makes us one of the few vendors who offer truly native iMessage and WhatsApp capture. That means employees can text through iMessage and WhatsApp as they regularly would – no app switching required."}),u.jsxs("ul",{className:"list-disc pl-5 mt-5",children:[u.jsx("li",{children:"Reps can keep their existing phone numbers"}),u.jsx("li",{children:"Full capture of conversation threads, timestamps, attachments and multimedia, edits and updated message versions, and message reactions (i.e. emojis)"}),u.jsx("li",{children:"WORM-compliant, meaning records cannot be altered, edited, or deleted"}),u.jsx("li",{children:"Compliant with Apple and WhatsApp terms of service"}),u.jsx("li",{children:"Full encryption from capture to archive"})]}),u.jsxs("p",{className:"mt-5",children:["Interested in learning more? Reach out to ",u.jsx("a",{className:"text-blue-500 underline",href:"mailto:InstallBaseSales@comply.com",children:"InstallBaseSales@comply.com"})]})]})]}),pde=()=>u.jsxs("section",{className:"flex flex-col w-full !mb-3",children:[u.jsxs("div",{className:"mb-10",children:[u.jsx("h4",{className:"text-2xl font-semibold leading-9",children:"End of Setup"}),u.jsx("p",{className:"mb-2 text-lg color-black",children:"You have reached the end of the communications archiving and review setup. Further changes can be accessed at any time from the archiving settings page. "})]}),u.jsx(hr,{prevLink:"/setup/website/review-frequency",prevProgress:24,nextLink:"/",nextIcon:!1,nextText:"Finish Setup",nextProgress:Ic})]}),kq="data:image/svg+xml,%3csvg%20width='26'%20height='30'%20viewBox='0%200%2026%2030'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M2.33301%2019.0013C2.33301%2019.0013%203.66634%2017.668%207.66634%2017.668C11.6663%2017.668%2014.333%2020.3346%2018.333%2020.3346C22.333%2020.3346%2023.6663%2019.0013%2023.6663%2019.0013V3.0013C23.6663%203.0013%2022.333%204.33464%2018.333%204.33464C14.333%204.33464%2011.6663%201.66797%207.66634%201.66797C3.66634%201.66797%202.33301%203.0013%202.33301%203.0013V19.0013Z'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M2.33301%2019.0013C2.33301%2019.0013%203.66634%2017.668%207.66634%2017.668C11.6663%2017.668%2014.333%2020.3346%2018.333%2020.3346C22.333%2020.3346%2023.6663%2019.0013%2023.6663%2019.0013V3.0013C23.6663%203.0013%2022.333%204.33464%2018.333%204.33464C14.333%204.33464%2011.6663%201.66797%207.66634%201.66797C3.66634%201.66797%202.33301%203.0013%202.33301%203.0013V19.0013Z'%20stroke='%23D4483E'%20stroke-opacity='0.75'%20stroke-width='3'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M2.33301%2028.3333V19'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M2.33301%2028.3333V19'%20stroke='%23D4483E'%20stroke-opacity='0.75'%20stroke-width='3'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/svg%3e",jb=({thread:e})=>e.isReviewed?u.jsxs("span",{className:"flex items-center gap-2 text-item-reviewed",children:[u.jsx(se,{icon:En})," Reviewed"]}):e.isFurtherReview?u.jsxs("span",{className:"flex items-center gap-2 text-item-needs-further-review",children:[u.jsx("img",{src:kq,className:"w-[13px]",alt:"Flag"})," Needs Further Review"]}):u.jsx("span",{className:"flex items-center gap-2 text-item-not-reviewed",children:"Not Reviewed"}),gde=[{value:"reviewed",label:"Reviewed"},{value:"not_reviewed",label:"Not Reviewed"},{value:"needs_further_review",label:"Needs Further Review"}];function vde({selectedValues:e,onFilter:t,onClear:n,anchorRef:r,onClose:a}){const i=N.useRef(null),o=One(),[c,d]=N.useState(()=>[...e]),h=b=>{d(v=>v.includes(b)?v.filter(x=>x!==b):[...v,b])},g=()=>{t([...c]),a()},p=()=>{d([]),n(),a()};return u.jsx(hp,{anchor:r.current,show:!0,anchorAlign:{horizontal:"right",vertical:"bottom"},popupAlign:{horizontal:"right",vertical:"top"},margin:{horizontal:0,vertical:4},onClose:a,appendTo:o.current,popupClass:"bg-white border border-true-neutral-200 rounded shadow-[1px_1px_4px_0px_rgba(0,0,0,0.5)]",children:u.jsxs("div",{ref:i,children:[u.jsx("div",{className:"p-2",children:u.jsx("p",{className:"text-xs font-normal leading-5 text-true-neutral-600",children:"Select Review Status"})}),gde.map(b=>{const v=c.includes(b.value);return u.jsxs("label",{className:"flex items-center gap-2 p-2 cursor-pointer hover:bg-near-neutral-300",children:[u.jsx("input",{type:"checkbox",checked:v,onChange:()=>h(b.value),className:"size-4 rounded border-gray-300 text-brand-dark-600 focus:ring-brand-medium-600"}),u.jsx("span",{className:"text-sm font-normal leading-5 text-brand-dark-800",children:b.label})]},b.value)}),u.jsxs("div",{className:"flex gap-2.5 p-2.5",children:[u.jsx(na,{onClick:p,className:"flex-1 text-sm",children:"Clear"}),u.jsx(sn,{onClick:g,className:"flex-1 text-sm",children:"Filter"})]})]})})}function f8(e,t){let n;try{n=e()}catch(a){return}return{getItem:a=>{var i;const o=d=>d===null?null:JSON.parse(d,void 0),c=(i=n.getItem(a))!=null?i:null;return c instanceof Promise?c.then(o):o(c)},setItem:(a,i)=>n.setItem(a,JSON.stringify(i,void 0)),removeItem:a=>n.removeItem(a)}}const l5=e=>t=>{try{const n=e(t);return n instanceof Promise?n:{then(r){return l5(r)(n)},catch(r){return this}}}catch(n){return{then(r){return this},catch(r){return l5(r)(n)}}}},bde=(e,t)=>(n,r,a)=>{let i={storage:f8(()=>window.localStorage),partialize:w=>w,version:0,merge:(w,R)=>({...R,...w}),...t},o=!1,c=0;const d=new Set,h=new Set;let g=i.storage;if(!g)return e((...w)=>{console.warn(`[zustand persist middleware] Unable to update item '${i.name}', the given storage is currently unavailable.`),n(...w)},r,a);const p=()=>{const w=i.partialize({...r()});return g.setItem(i.name,{state:w,version:i.version})},b=a.setState;a.setState=(w,R)=>(b(w,R),p());const v=e((...w)=>(n(...w),p()),r,a);a.getInitialState=()=>v;let x;const A=()=>{var w,R;if(!g)return;const I=++c;o=!1,d.forEach(S=>{var C;return S((C=r())!=null?C:v)});const O=((R=i.onRehydrateStorage)==null?void 0:R.call(i,(w=r())!=null?w:v))||void 0;return l5(g.getItem.bind(g))(i.name).then(S=>{if(S)if(typeof S.version=="number"&&S.version!==i.version){if(i.migrate){const C=i.migrate(S.state,S.version);return C instanceof Promise?C.then(j=>[!0,j]):[!0,C]}console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}else return[!1,S.state];return[!1,void 0]}).then(S=>{var C;if(I!==c)return;const[j,D]=S;if(x=i.merge(D,(C=r())!=null?C:v),n(x,!0),j)return p()}).then(()=>{I===c&&(O==null||O(r(),void 0),x=r(),o=!0,h.forEach(S=>S(x)))}).catch(S=>{I===c&&(O==null||O(void 0,S))})};return a.persist={setOptions:w=>{i={...i,...w},w.storage&&(g=w.storage)},clearStorage:()=>{g==null||g.removeItem(i.name)},getOptions:()=>i,rehydrate:()=>A(),hasHydrated:()=>o,onHydrate:w=>(d.add(w),()=>{d.delete(w)}),onFinishHydration:w=>(h.add(w),()=>{h.delete(w)})},i.skipHydration||A(),x||v},_q=bde,sv={search:null,flagged:!1,supervision:!1,reviewPeriodId:null,sorting:[],reviewStatusFilter:[]},yde={mobile:{...sv},email:{...sv},social_media:{...sv},website:{...sv}},Ja=_c()(_q(e=>({...yde,setSearch:(t,n)=>e(r=>({[t]:{...r[t],search:n}})),setFlagged:(t,n)=>e(r=>({[t]:{...r[t],flagged:n}})),setSupervision:(t,n)=>e(r=>({[t]:{...r[t],supervision:n}})),setReviewPeriodId:(t,n)=>e(r=>({[t]:{...r[t],reviewPeriodId:n}})),setSorting:(t,n)=>e(r=>({[t]:{...r[t],sorting:n}})),setReviewStatusFilter:(t,n)=>e(r=>({[t]:{...r[t],reviewStatusFilter:n}}))}),{name:"archiving-data",storage:f8(()=>localStorage)})),ov={pageIndex:0,pageSize:10},xde={mobile:{...ov},email:{...ov},social_media:{...ov},website:{...ov}},sh=_c()(_q(e=>({...xde,setPagination:(t,n)=>e(r=>({[t]:{...r[t],...n}})),resetPageIndex:t=>e(n=>({[t]:{...n[t],pageIndex:0}}))}),{name:"pagination-storage",storage:f8(()=>sessionStorage)}));function Db(){var b;const[e,t]=N.useState(!1),n=N.useRef(null),{pathname:r}=ru(),a=tq(r),i=Ja(v=>v),o=sh(v=>v.resetPageIndex),c=a?i[a]:null,d=(b=c==null?void 0:c.reviewStatusFilter)!=null?b:[],h=d.length>0,g=v=>{a&&(i.setReviewStatusFilter(a,v),o(a))},p=()=>{a&&(i.setReviewStatusFilter(a,[]),o(a))};return u.jsxs("div",{className:"relative flex items-center gap-1",children:[u.jsx("span",{children:"Review Status"}),u.jsx("button",{ref:n,type:"button",onClick:()=>t(!e),className:"p-1 rounded hover:bg-white/10",children:u.jsx(se,{icon:_ee,className:h?"text-white":"text-gray-400",size:"medium"})}),e&&u.jsx(vde,{onClose:()=>t(!1),selectedValues:d,onFilter:g,onClear:p,anchorRef:n})]})}const Fm=$n(),Bq=[Fm.accessor("from",{header:"From",cell:e=>u.jsx("div",{className:"overflow-hidden text-ellipsis whitespace-nowrap",children:e.getValue()}),minSize:75}),Fm.accessor("to",{header:"To",cell:e=>{const t=e.getValue().split(",");let n=null;const r=t[0];return t.length<1&&(n=null),t.length==1?n=r:n=r+" +"+(t.length-1),u.jsx("div",{className:"overflow-hidden text-ellipsis whitespace-nowrap",children:n})},minSize:52}),Fm.accessor("subject",{header:"Subject",cell:e=>u.jsx("div",{className:"overflow-hidden text-ellipsis whitespace-nowrap",children:e.getValue()}),minSize:95}),Fm.accessor("emailDate",{size:110,header:()=>"Date",cell:e=>{const t=e.getValue(),n=th(t);return u.jsx("div",{className:"text-right",children:n?Vn(n,"MM/dd/yyyy"):t})},meta:{className:"w-full flex justify-end"},minSize:71}),Fm.accessor(e=>e.isReviewed?"reviewed":e.isFurtherReview?"needs_further_review":"not_reviewed",{id:"reviewStatus",header:Db,enableSorting:!1,minSize:150,filterFn:(e,t,n)=>{if(n.length===0)return!0;const r=e.original.isReviewed?"reviewed":e.original.isFurtherReview?"needs_further_review":"not_reviewed";return n.includes(r)},cell:e=>u.jsx(jb,{thread:e.row.original})})],Lc=e=>({queryKey:["emails",e],enabled:!!e,queryFn:async()=>e?(await Ye.post("/emailaccounts/list",{reviewPeriodId:e,pageIndex:1,pageSize:1e5,filters:[],sortings:[{name:"emailDate",ascending:!0}]})).data||[]:[]}),oh=(e,t,n=!1)=>({queryKey:["emailreview",t],queryFn:()=>Ye.get(`/emailaccounts/details?ReviewPeriodId=${e}&ItemId=${t}&IsSpecialReview=${n}`)}),Lq=(e,t=!1)=>({queryKey:["emailreviewmessage",e],queryFn:()=>Ye.get(`/emailaccounts/message?S3Path=${e}&IsKeyword=${t}`)}),Ade=()=>{const e=zt();return _t({mutationFn:({esId:t,reviewPeriodId:n,reviewed:r})=>Ye.post("/emailreviewresponses",{esId:t,reviewPeriodId:n,reviewed:r}),onSuccess:()=>{e.invalidateQueries([Lc,oh])},onError:()=>{ge.error("Error occurred while updating item",{id:"update-email-review-status"})}})},wde=()=>{const e=zt();return _t({mutationFn:({esId:t,reviewPeriodId:n,reviewed:r})=>Ye.post("/emailreviewresponses/further",{esId:t,reviewPeriodId:n,reviewed:r}),onSuccess:()=>{e.invalidateQueries([Lc,oh])},onError:()=>{ge.error("Error occurred while updating item",{id:"update-email-review-status"})}})},Pb=()=>{const e=zt();return _t({mutationFn:({esId:t,note:n,archivingType:r,reviewPeriodId:a})=>Ye.post("/accounts/note",{esId:t.toString(),note:n,archivingType:r,reviewPeriodId:a}),onSuccess:()=>{e.invalidateQueries([Lc,oh])},onError:()=>{ge.error("Error occurred while updating item",{id:"update-email-review-status"})}})},Sde=(e,t,n)=>({queryKey:["emailexclude",e,n,t],queryFn:()=>Ye.get(`/clientdomains/exclude?From=${e}&ItemType=${t}&CurrEmailReviewPeriodId=${n}`),enabled:n!==null}),Ede=()=>{const e=zt();return _t({mutationFn:({item:t,itemType:n,currEmailReviewPeriodId:r,filterType:a="blacklist",isEmailLimit:i=!0})=>Ye.post("/emailaccounts/deactivate",{item:t,itemType:n,filterType:a,isEmailLimit:i,currEmailReviewPeriodId:r,filters:[],sortings:[]}),onSuccess:()=>{e.invalidateQueries([Lc,oh])},onError:()=>{ge.error("Error occurred while excluding item. Please try again!",{id:"exclude-item-error"})}})},Cde=()=>{const e=zt();return _t({mutationFn:({reviewPeriodId:t,isEnable:n})=>{const r=n?"/Archiving/disable_exclusion_confirmation_popup":"/Archiving/enable_exclusion_confirmation_popup";return Ye.post(r,{reviewPeriodId:t})},onSuccess:()=>{e.invalidateQueries([Lc,oh])},onError:()=>{ge.error("Error occurred while excluding item. Please try again!",{id:"exclude-item-error"})}})},Rde=(e,t)=>({queryKey:["emailreviewnotes",e,t],queryFn:()=>{if(!(!e||!t))return Ye.get(`/emailreviewnotes/${e}/${t}`)}});function qo(e,t){const n=()=>zr(t==null?void 0:t.in,NaN),a=jde(e);let i;if(a.date){const h=Dde(a.date,2);i=Pde(h.restDateString,h.year)}if(!i||isNaN(+i))return n();const o=+i;let c=0,d;if(a.time&&(c=Nde(a.time),isNaN(c)))return n();if(a.timezone){if(d=Tde(a.timezone),isNaN(d))return n()}else{const h=new Date(o+c),g=Pr(0,t==null?void 0:t.in);return g.setFullYear(h.getUTCFullYear(),h.getUTCMonth(),h.getUTCDate()),g.setHours(h.getUTCHours(),h.getUTCMinutes(),h.getUTCSeconds(),h.getUTCMilliseconds()),g}return Pr(o+c+d,t==null?void 0:t.in)}const lv={dateTimeDelimiter:/[T ]/,timeZoneDelimiter:/[Z ]/i,timezone:/([Z+-].*)$/},Ide=/^-?(?:(\d{3})|(\d{2})(?:-?(\d{2}))?|W(\d{2})(?:-?(\d{1}))?|)$/,Mde=/^(\d{2}(?:[.,]\d*)?)(?::?(\d{2}(?:[.,]\d*)?))?(?::?(\d{2}(?:[.,]\d*)?))?$/,Ode=/^([+-])(\d{2})(?::?(\d{2}))?$/;function jde(e){const t={},n=e.split(lv.dateTimeDelimiter);let r;if(n.length>2)return t;if(/:/.test(n[0])?r=n[0]:(t.date=n[0],r=n[1],lv.timeZoneDelimiter.test(t.date)&&(t.date=e.split(lv.timeZoneDelimiter)[0],r=e.substr(t.date.length,e.length))),r){const a=lv.timezone.exec(r);a?(t.time=r.replace(a[1],""),t.timezone=a[1]):t.time=r}return t}function Dde(e,t){const n=new RegExp("^(?:(\\d{4}|[+-]\\d{"+(4+t)+"})|(\\d{2}|[+-]\\d{"+(2+t)+"})$)"),r=e.match(n);if(!r)return{year:NaN,restDateString:""};const a=r[1]?parseInt(r[1]):null,i=r[2]?parseInt(r[2]):null;return{year:i===null?a:i*100,restDateString:e.slice((r[1]||r[2]).length)}}function Pde(e,t){if(t===null)return new Date(NaN);const n=e.match(Ide);if(!n)return new Date(NaN);const r=!!n[4],a=Xm(n[1]),i=Xm(n[2])-1,o=Xm(n[3]),c=Xm(n[4]),d=Xm(n[5])-1;if(r)return Fde(t,c,d)?kde(t,c,d):new Date(NaN);{const h=new Date(0);return!Bde(t,i,o)||!Lde(t,a)?new Date(NaN):(h.setUTCFullYear(t,i,Math.max(a,o)),h)}}function Xm(e){return e?parseInt(e):1}function Nde(e){const t=e.match(Mde);if(!t)return NaN;const n=BA(t[1]),r=BA(t[2]),a=BA(t[3]);return Xde(n,r,a)?n*_6+r*k6+a*1e3:NaN}function BA(e){return e&&parseFloat(e.replace(",","."))||0}function Tde(e){if(e==="Z")return 0;const t=e.match(Ode);if(!t)return 0;const n=t[1]==="+"?-1:1,r=parseInt(t[2]),a=t[3]&&parseInt(t[3])||0;return zde(r,a)?n*(r*_6+a*k6):NaN}function kde(e,t,n){const r=new Date(0);r.setUTCFullYear(e,0,4);const a=r.getUTCDay()||7,i=(t-1)*7+n+1-a;return r.setUTCDate(r.getUTCDate()+i),r}const _de=[31,null,31,30,31,30,31,31,30,31,30,31];function Fq(e){return e%400===0||e%4===0&&e%100!==0}function Bde(e,t,n){return t>=0&&t<=11&&n>=1&&n<=(_de[t]||(Fq(e)?29:28))}function Lde(e,t){return t>=1&&t<=(Fq(e)?366:365)}function Fde(e,t,n){return t>=1&&t<=53&&n>=0&&n<=6}function Xde(e,t,n){return e===24?t===0&&n===0:n>=0&&n<60&&t>=0&&t<60&&e>=0&&e<25}function zde(e,t){return t>=0&&t<=59}const xp=({data:e})=>{const t=(e==null?void 0:e.length)||0,n=(e==null?void 0:e.filter(d=>d==null?void 0:d.isReviewed).length)||0,r=(e==null?void 0:e.filter(d=>!(d!=null&&d.isReviewed)&&(d==null?void 0:d.isFurtherReview)).length)||0,a=(e==null?void 0:e.filter(d=>!(d!=null&&d.isReviewed)&&!(d!=null&&d.isFurtherReview)).length)||0,i=(n/t*100).toFixed(2),o=(r/t*100).toFixed(2),c=(a/t*100).toFixed(2);return u.jsxs("div",{className:"flex flex-col md:flex-row gap-4",children:[u.jsxs("div",{className:"flex items-center text-[14px] text-item-reviewed",children:[u.jsx(se,{icon:ja,size:"medium"}),"Reviewed: ",n," (",isNaN(i)?0:i,"%)"]}),u.jsxs("div",{className:"flex items-center text-[14px] text-item-not-reviewed",children:[u.jsx(se,{icon:ja,size:"medium"}),"Not Reviewed: ",a," (",isNaN(c)?0:c,"%)"]}),u.jsxs("div",{className:"flex items-center text-[14px] text-item-needs-further-review",children:[u.jsx(se,{icon:ja,size:"medium"}),"Needs Further Review: ",r," (",isNaN(o)?0:o,"%)"]})]})};function qde({originalData:e,selectedPeriod:t,isLoading:n,isProcessing:r,hasVisibleRows:a,onStartOrContinue:i,onComplete:o}){if(t.isCompleted)return u.jsx("div",{className:"w-full text-center",children:u.jsx("span",{className:"text-item-reviewed",children:"Review Completed"})});if(n)return u.jsx("div",{className:"w-full flex justify-center",children:u.jsx(Vt,{size:"md"})});const c=e==null?void 0:e.every(h=>h.isReviewed);return!(e!=null&&e.length)||c&&!t.isCompleted?u.jsx("div",{className:"w-full flex justify-center",children:u.jsx(sn,{onClick:o,className:"flex items-center justify-center",disabled:r,children:r?u.jsx(Vt,{colorClass:"white"}):"Mark as Completed"})}):u.jsxs(u.Fragment,{children:[u.jsx(xp,{data:e}),a&&u.jsx(sn,{onClick:i,className:"flex items-center justify-center",disabled:r,children:r?u.jsx(Vt,{colorClass:"white"}):t.isStarted?"Continue":"Start"})]})}const Qde=(e,t)=>{const r=[],a=[],i=Math.max(1,e-1),o=Math.min(t,e+1);for(let c=i;c<=o;c++)r.push(c);return i>1&&a.push(0),a.push(...r),o<t&&a.push(0),a};function Ap({maxHeight:e=null,table:t,searchPlaceholder:n="Search...",itemsLabel:r="Items",hasGlobalFilter:a=!1,filterButtons:i=[],pageSizes:o=[10,20,30,50],onRowClick:c,emptyMessage:d="No items found",bordered:h=!1,rowSelectedCheck:g=null,paginationControlLabel:p=null,showItemsPerPageLabel:b=!0}){var j;const v=t.getPageCount(),x=t.getState().pagination.pageIndex+1,A=t.getState().pagination.pageSize,R=t.options.manualPagination?t.getRowCount():t.getFilteredRowModel().rows.length,I=x===1?1:(x-1)*A+1,O=Math.min(I+A-1,R),S=D=>{t.setGlobalFilter(D.target.value)},C=Qde(x,v);return u.jsx("div",{className:"w-full",children:u.jsxs("div",{className:"rounded-t-lg overflow-hidden",children:[a||i.length>0?u.jsxs("div",{className:"flex flex-col md:flex-row gap-4 bg-brand-dark-800 p-4",children:[u.jsx("div",{className:"grow",children:u.jsx("div",{className:"relative",children:a&&u.jsxs(u.Fragment,{children:[u.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",className:"absolute left-3 top-1/2 transform -translate-y-1/2 text-white h-5 w-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:u.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})}),u.jsx("input",{type:"text",placeholder:n,value:t.getState().globalFilter,onChange:S,className:"w-full pl-10 pr-4 py-3 border border-brand-dark-200 rounded-md bg-brand-dark-700 text-white focus:outline-none max-w-80"})]})})}),i.map((D,P)=>u.jsxs(na,{onClick:D.onClick,className:`px-4 py-3 border border-white ${D.classes?D.classes:""} ${D.hasOwnProperty("active")&&!D.active?"text-white":"active"} `,children:[D.icon?u.jsx(se,{style:{fill:D.active?"var(--color-brand-dark-800)":"white"},icon:D.icon,size:"medium",className:"mr-1"}):"",D.label]},P))]}):null,u.jsx("div",{className:`overflow-x-auto border-l border-r border-[#344D5D] ${e}`,children:u.jsxs("table",{className:`min-w-full border-collapse table-fixed ${h?"table-bordered":""}`,children:[u.jsx("thead",{className:"text-white",children:u.jsx("tr",{children:t.getHeaderGroups().map(D=>D.headers.map(P=>{var H;const T=P.column.getIsSorted(),k=P.column.getCanSort(),_=typeof P.column.columnDef.header=="function",F=!k&&_,q=P.isPlaceholder?null:P.column.columnDef.header?X1(P.column.columnDef.header,P.getContext()):P.id;return u.jsx("th",{className:"py-4 px-6 text-left bg-brand-dark-800",style:{width:P.getSize()?P.getSize():"",cursor:k?"pointer":"default"},children:F?q:u.jsxs(pp,{asButton:!0,onClick:P.column.getToggleSortingHandler(),className:(H=P.column.columnDef.meta)==null?void 0:H.className,disabled:!k,children:[q,k&&u.jsxs(u.Fragment,{children:[u.jsx(se,{icon:aO,className:`-mr-1 ${T==="asc"?"text-white":"text-gray-400"}`,size:"large"}),u.jsx(se,{icon:aO,flip:"vertical",className:`-ml-1 ${T==="desc"?"text-white":"text-gray-400"}`,size:"large"})]})]})},P.id)}))})}),u.jsx("tbody",{children:t.getRowModel().rows.length>0?t.getRowModel().rows.map(D=>u.jsx("tr",{onClick:()=>c==null?void 0:c(D),className:`group hover:cursor-pointer ${g!=null?g(D)?"bg-near-neutral-300":"":D.getIsSelected()?"bg-near-neutral-300":""}`,children:D.getVisibleCells().map(P=>u.jsx("td",{onClick:T=>{P.column.id==="id"&&(T.preventDefault(),T.stopPropagation())},className:`bg-white group-hover:bg-near-neutral-300 ${P.column.id==="id"?"":"py-4 px-6"} ${h?"border border-gray-200 p-2":""}`,children:X1(P.column.columnDef.cell,P.getContext())},P.id))},D.id)):u.jsx("tr",{children:u.jsx("td",{colSpan:t.getAllColumns().length,className:"py-4 px-6 text-center",children:d})})})]})}),u.jsxs("div",{className:`flex items-center justify-between bg-brand-dark-800 text-white ${C.length?"":"py-5"} px-4 rounded-b-lg`,children:[u.jsx("div",{children:u.jsx("p",{children:`${I} - ${O} of ${R} ${(j=p!=null?p:r==null?void 0:r.toLowerCase())!=null?j:"items"}`})}),u.jsxs("div",{className:"flex gap-5",children:[u.jsxs("div",{className:"flex items-center space-x-2",children:[u.jsx("button",{className:"p-1 text-white hover:bg-brand-bright-100 hover:text-brand-dark-800 rounded disabled:text-near-neutral-800 disabled:hover:bg-transparent",onClick:()=>t.setPageIndex(0),disabled:!t.getCanPreviousPage(),children:u.jsx(se,{icon:AX,className:"block w-4 h-4 fill-current"})}),u.jsx("button",{className:"p-1 text-white hover:bg-brand-bright-100 hover:text-brand-dark-800 rounded disabled:text-near-neutral-800 disabled:hover:bg-transparent",onClick:()=>t.previousPage(),disabled:!t.getCanPreviousPage(),children:u.jsx(se,{icon:db,className:"block w-4 h-4 fill-current"})}),u.jsx("div",{className:"flex items-center space-x-2",children:C.map((D,P)=>{if(D===0)return u.jsx("span",{children:"..."},P);const T=x===D;return u.jsx("button",{className:`px-3 py-5 w-12 ${T?"shadow-[inset_0_4px_0_0_var(--color-brand-bright-500)] text-brand-bright-500":""}`,onClick:()=>t.setPageIndex(D-1),children:D},P)})}),u.jsx("button",{className:"p-1 text-white hover:bg-brand-bright-100 hover:text-brand-dark-800 rounded disabled:text-near-neutral-800 disabled:hover:bg-transparent",onClick:()=>t.nextPage(),disabled:!t.getCanNextPage(),children:u.jsx(se,{icon:cb,className:"block w-4 h-4 fill-current"})}),u.jsx("button",{className:"p-1 text-white hover:bg-brand-bright-100 hover:text-brand-dark-800 rounded disabled:text-near-neutral-800 disabled:hover:bg-transparent",onClick:()=>t.setPageIndex(t.getPageCount()-1),disabled:!t.getCanNextPage(),children:u.jsx(se,{icon:xX,className:"block w-4 h-4 fill-current"})})]}),u.jsxs("div",{className:"flex items-center space-x-2",children:[o.length===1?u.jsx("span",{children:o.at(0)}):u.jsx("select",{className:"w-25 bg-white text-brand-dark-800 rounded p-1",value:t.getState().pagination.pageSize,onChange:D=>{t.setPagination(P=>({...P,pageSize:Number(D.target.value),pageIndex:0}))},children:o.map(D=>u.jsx("option",{value:D,children:D},D))}),b&&u.jsxs("span",{children:[r," per page"]})]})]})]})]})})}function Xq({options:e,value:t,onChange:n,placeholder:r="Select an option",className:a="text-brand-dark-800 bg-[#F5F6F7] border-0 border-b border-brand-dark-800 min-w-[200px]",disabled:i=!1}){var d;const o=e.find(h=>h.value===t),c=(d=o==null?void 0:o.label)!=null?d:r;return u.jsxs("div",{className:"relative inline-block",children:[u.jsxs("div",{className:`
418
418
  px-4 py-2
419
419
  flex items-center gap-2 w-fit
package/dist/index.html CHANGED
@@ -1,35 +1,35 @@
1
- <!doctype html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8" />
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
- <link rel="icon" href="/favicon.ico" />
7
- <meta name="theme-color" content="#000000" />
8
-
9
- <meta
10
- name="description"
11
- content="Web site created using create-tsrouter-app"
12
- />
13
- <link rel="apple-touch-icon" href="/logo192.png" />
14
- <link rel="manifest" href="/manifest.json" />
15
- <link
16
- href="https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"
17
- rel="stylesheet"
18
- />
19
- <title>Archiving</title>
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <link rel="icon" href="/favicon.ico" />
7
+ <meta name="theme-color" content="#000000" />
8
+
9
+ <meta
10
+ name="description"
11
+ content="Web site created using create-tsrouter-app"
12
+ />
13
+ <link rel="apple-touch-icon" href="/logo192.png" />
14
+ <link rel="manifest" href="/manifest.json" />
15
+ <link
16
+ href="https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"
17
+ rel="stylesheet"
18
+ />
19
+ <title>Archiving</title>
20
20
  <script type="module" crossorigin src="/cpm-archiving.js"></script>
21
21
 
22
- </head>
23
- <body>
24
- <!-- <cpm-archiving-employee
25
- route=""
26
- environment="testing"
27
- user="QZqDeFJCYaoGcFtE0o1OEhKlYlDz+mQI3ix9E3s75meyaMdpJhzI3xRuzPyHKc3sDNWXOqOW1t3e9Yjr22l4QA=="
28
- ></cpm-archiving-employee> -->
29
- <cpm-archiving
30
- route=""
31
- environment="uat"
32
- user="QZqDeFJCYaoGcFtE0o1OEhKlYlDz+mQI3ix9E3s75meyaMdpJhzI3xRuzPyHKc3st+PmhJnpMuUpWwilnPwPBg=="
33
- ></cpm-archiving>
34
- </body>
22
+ </head>
23
+ <body>
24
+ <!-- <cpm-archiving-employee
25
+ route=""
26
+ environment="testing"
27
+ user="QZqDeFJCYaoGcFtE0o1OEhKlYlDz+mQI3ix9E3s75meyaMdpJhzI3xRuzPyHKc3sDNWXOqOW1t3e9Yjr22l4QA=="
28
+ ></cpm-archiving-employee> -->
29
+ <cpm-archiving
30
+ route=""
31
+ environment="uat"
32
+ user="QZqDeFJCYaoGcFtE0o1OEhKlYlDz+mQI3ix9E3s75meyaMdpJhzI3xRuzPyHKc3st+PmhJnpMuUpWwilnPwPBg=="
33
+ ></cpm-archiving>
34
+ </body>
35
35
  </html>
@@ -1,25 +1,25 @@
1
- {
2
- "short_name": "TanStack App",
3
- "name": "Create TanStack App Sample",
4
- "icons": [
5
- {
6
- "src": "favicon.ico",
7
- "sizes": "64x64 32x32 24x24 16x16",
8
- "type": "image/x-icon"
9
- },
10
- {
11
- "src": "logo192.png",
12
- "type": "image/png",
13
- "sizes": "192x192"
14
- },
15
- {
16
- "src": "logo512.png",
17
- "type": "image/png",
18
- "sizes": "512x512"
19
- }
20
- ],
21
- "start_url": ".",
22
- "display": "standalone",
23
- "theme_color": "#000000",
24
- "background_color": "#ffffff"
25
- }
1
+ {
2
+ "short_name": "TanStack App",
3
+ "name": "Create TanStack App Sample",
4
+ "icons": [
5
+ {
6
+ "src": "favicon.ico",
7
+ "sizes": "64x64 32x32 24x24 16x16",
8
+ "type": "image/x-icon"
9
+ },
10
+ {
11
+ "src": "logo192.png",
12
+ "type": "image/png",
13
+ "sizes": "192x192"
14
+ },
15
+ {
16
+ "src": "logo512.png",
17
+ "type": "image/png",
18
+ "sizes": "512x512"
19
+ }
20
+ ],
21
+ "start_url": ".",
22
+ "display": "standalone",
23
+ "theme_color": "#000000",
24
+ "background_color": "#ffffff"
25
+ }
package/dist/robots.txt CHANGED
@@ -1,3 +1,3 @@
1
- # https://www.robotstxt.org/robotstxt.html
2
- User-agent: *
3
- Disallow:
1
+ # https://www.robotstxt.org/robotstxt.html
2
+ User-agent: *
3
+ Disallow:
package/package.json CHANGED
@@ -1,86 +1,86 @@
1
- {
2
- "name": "@riab/cpm-archiving",
3
- "private": false,
4
- "version": "1.1.17-beta.0",
5
- "type": "module",
6
- "main": "dist/cpm-archiving.js",
7
- "module": "dist/cpm-archiving.js",
8
- "files": [
9
- "dist"
10
- ],
11
- "exports": {
12
- ".": "./dist/cpm-archiving.js"
13
- },
14
- "scripts": {
15
- "dev": "vite --port 3000",
16
- "start": "vite --port 3000",
17
- "build": "cross-env NODE_ENV=production vite build",
18
- "serve": "vite preview",
19
- "test": "vitest run",
20
- "lint": "eslint",
21
- "format": "prettier",
22
- "check": "prettier --write . && eslint --fix",
23
- "postpublish": "npx riab-teams-notify"
24
- },
25
- "devDependencies": {
26
- "@csstools/css-parser-algorithms": "^3.0.5",
27
- "@emotion/cache": "^11.14.0",
28
- "@emotion/react": "^11.14.0",
29
- "@faker-js/faker": "^9.6.0",
30
- "@progress/kendo-react-common": "^10.2.0",
31
- "@progress/kendo-react-dialogs": "^10.2.0",
32
- "@progress/kendo-react-popup": "^10.2.0",
33
- "@progress/kendo-svg-icons": "^4.3.0",
34
- "@progress/kendo-theme-default": "^10.2.0",
35
- "@r2wc/react-to-web-component": "^2.0.4",
36
- "@sentry/browser": "^7.120.4",
37
- "@sentry/react": "^9.47.1",
38
- "@tailwindcss/node": "^4.2.1",
39
- "@tailwindcss/oxide": "^4.2.1",
40
- "@tailwindcss/vite": "^4.1.14",
41
- "@tanstack/eslint-config": "^0.3.0",
42
- "@tanstack/match-sorter-utils": "^8.19.4",
43
- "@tanstack/react-query": "^5.66.5",
44
- "@tanstack/react-router": "^1.141.6",
45
- "@tanstack/react-table": "^8.21.2",
46
- "@testing-library/dom": "^10.4.0",
47
- "@testing-library/react": "^16.3.0",
48
- "@tippyjs/react": "^4.2.6",
49
- "@types/react": "^19.0.8",
50
- "@types/react-date-range": "^1.4.10",
51
- "@types/react-dom": "^19.0.3",
52
- "@types/react-highlight-words": "^0.20.1",
53
- "@vitejs/plugin-react": "^4.3.4",
54
- "cross-env": "^10.1.0",
55
- "date-fns": "^4.1.0",
56
- "dompurify": "^3.3.0",
57
- "eslint": "^9.39.2",
58
- "happy-dom": "^20.8.3",
59
- "html-react-parser": "^5.2.6",
60
- "jsdom": "^28.1.0",
61
- "libphonenumber-js": "^1.12.38",
62
- "msw": "^2.12.10",
63
- "react": "^19.0.0",
64
- "react-date-range": "^2.0.1",
65
- "react-dom": "^19.0.0",
66
- "react-highlight-words": "^0.21.0",
67
- "react-hot-toast": "^2.5.2",
68
- "react-imask": "^7.6.1",
69
- "react-select": "^5.10.2",
70
- "react-social-media-embed": "^2.5.18",
71
- "react-tweet": "^3.2.2",
72
- "tailwindcss": "^4.1.14",
73
- "typescript": "~5.6.2",
74
- "use-debounce": "^10.0.5",
75
- "vite": "^7.1.0",
76
- "vite-plugin-css-injected-by-js": "^3.5.2",
77
- "vitest": "~4.0.15",
78
- "web-vitals": "^4.2.4",
79
- "zustand": "^5.0.8"
80
- },
81
- "optionalDependencies": {
82
- "@rollup/rollup-darwin-arm64": "^4.57.0",
83
- "@rollup/rollup-win32-x64-msvc": "^4.57.0",
84
- "@tailwindcss/oxide-darwin-arm64": "^4.2.1"
85
- }
86
- }
1
+ {
2
+ "name": "@riab/cpm-archiving",
3
+ "private": false,
4
+ "version": "1.1.17-beta.1",
5
+ "type": "module",
6
+ "main": "dist/cpm-archiving.js",
7
+ "module": "dist/cpm-archiving.js",
8
+ "files": [
9
+ "dist"
10
+ ],
11
+ "exports": {
12
+ ".": "./dist/cpm-archiving.js"
13
+ },
14
+ "scripts": {
15
+ "dev": "vite --port 3000",
16
+ "start": "vite --port 3000",
17
+ "build": "cross-env NODE_ENV=production vite build",
18
+ "serve": "vite preview",
19
+ "test": "vitest run",
20
+ "lint": "eslint",
21
+ "format": "prettier",
22
+ "check": "prettier --write . && eslint --fix",
23
+ "postpublish": "npx riab-teams-notify"
24
+ },
25
+ "devDependencies": {
26
+ "@csstools/css-parser-algorithms": "^3.0.5",
27
+ "@emotion/cache": "^11.14.0",
28
+ "@emotion/react": "^11.14.0",
29
+ "@faker-js/faker": "^9.6.0",
30
+ "@progress/kendo-react-common": "^10.2.0",
31
+ "@progress/kendo-react-dialogs": "^10.2.0",
32
+ "@progress/kendo-react-popup": "^10.2.0",
33
+ "@progress/kendo-svg-icons": "^4.3.0",
34
+ "@progress/kendo-theme-default": "^10.2.0",
35
+ "@r2wc/react-to-web-component": "^2.0.4",
36
+ "@sentry/browser": "^7.120.4",
37
+ "@sentry/react": "^9.47.1",
38
+ "@tailwindcss/node": "^4.2.1",
39
+ "@tailwindcss/oxide": "^4.2.1",
40
+ "@tailwindcss/vite": "^4.1.14",
41
+ "@tanstack/eslint-config": "^0.3.0",
42
+ "@tanstack/match-sorter-utils": "^8.19.4",
43
+ "@tanstack/react-query": "^5.66.5",
44
+ "@tanstack/react-router": "^1.141.6",
45
+ "@tanstack/react-table": "^8.21.2",
46
+ "@testing-library/dom": "^10.4.0",
47
+ "@testing-library/react": "^16.3.0",
48
+ "@tippyjs/react": "^4.2.6",
49
+ "@types/react": "^19.0.8",
50
+ "@types/react-date-range": "^1.4.10",
51
+ "@types/react-dom": "^19.0.3",
52
+ "@types/react-highlight-words": "^0.20.1",
53
+ "@vitejs/plugin-react": "^4.3.4",
54
+ "cross-env": "^10.1.0",
55
+ "date-fns": "^4.1.0",
56
+ "dompurify": "^3.3.0",
57
+ "eslint": "^9.39.2",
58
+ "happy-dom": "^20.8.3",
59
+ "html-react-parser": "^5.2.6",
60
+ "jsdom": "^28.1.0",
61
+ "libphonenumber-js": "^1.12.38",
62
+ "msw": "^2.12.10",
63
+ "react": "^19.0.0",
64
+ "react-date-range": "^2.0.1",
65
+ "react-dom": "^19.0.0",
66
+ "react-highlight-words": "^0.21.0",
67
+ "react-hot-toast": "^2.5.2",
68
+ "react-imask": "^7.6.1",
69
+ "react-select": "^5.10.2",
70
+ "react-social-media-embed": "^2.5.18",
71
+ "react-tweet": "^3.2.2",
72
+ "tailwindcss": "^4.1.14",
73
+ "typescript": "~5.6.2",
74
+ "use-debounce": "^10.0.5",
75
+ "vite": "^7.1.0",
76
+ "vite-plugin-css-injected-by-js": "^3.5.2",
77
+ "vitest": "~4.0.15",
78
+ "web-vitals": "^4.2.4",
79
+ "zustand": "^5.0.8"
80
+ },
81
+ "optionalDependencies": {
82
+ "@rollup/rollup-darwin-arm64": "^4.57.0",
83
+ "@rollup/rollup-win32-x64-msvc": "^4.57.0",
84
+ "@tailwindcss/oxide-darwin-arm64": "^4.2.1"
85
+ }
86
+ }