@remit/web-client-dist 0.0.154 → 0.0.156

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.
Files changed (36) hide show
  1. package/assets/{ComposeBody-D5aKZEma.js → ComposeBody-B5VPbTKQ.js} +1 -1
  2. package/assets/{ErrorState-DyIT80w7.js → ErrorState-DeTMtQUI.js} +1 -1
  3. package/assets/{OnboardingWizard-B89V9G8p.js → OnboardingWizard-BvDGGm6C.js} +1 -1
  4. package/assets/{account-form-helpers-C71VJlMP.js → account-form-helpers-BmSH5o7W.js} +1 -1
  5. package/assets/{accounts-QWMNp0Bw.js → accounts-DLOGFac_.js} +1 -1
  6. package/assets/{advanced-Dj2mMjsI.js → advanced-0xh1jW5Y.js} +1 -1
  7. package/assets/{appearance-BC-QE6lJ.js → appearance-BlbGVhlb.js} +1 -1
  8. package/assets/{avatar-Bf7ZfE61.js → avatar-DklgmydV.js} +1 -1
  9. package/assets/{browser-ponyfill-DzdIUhpa.js → browser-ponyfill-CnDF1Y83.js} +1 -1
  10. package/assets/{circle-check-Cy1OAc1n.js → circle-check-49ufVv1R.js} +1 -1
  11. package/assets/{download-BRo72aS2.js → download-D8HrbNrI.js} +1 -1
  12. package/assets/filters-C_yQDpGe.js +1 -0
  13. package/assets/{flagged-G_YjhcEg.js → flagged--DNJlyQq.js} +1 -1
  14. package/assets/{folders-Y6Ya4L4H.js → folders-D8gm32_c.js} +1 -1
  15. package/assets/{index-BNUiaml6.js → index-CKzNqXIo.js} +58 -58
  16. package/assets/index-S6QJssPY.js +1 -0
  17. package/assets/{index-CEZBZDJ1.js → index-pTUtgwqA.js} +1 -1
  18. package/assets/{kbd-CrtZuIhv.js → kbd-6WFd41_a.js} +1 -1
  19. package/assets/{mail-Cni3Kn-L.js → mail--L1RJlyj.js} +3 -3
  20. package/assets/{move-mailbox-picker-BO4Ssdxm.js → move-mailbox-picker-DSH07nWx.js} +1 -1
  21. package/assets/{move-targets-DzuIW8P2.js → move-targets-Db7V2gRb.js} +1 -1
  22. package/assets/{onboarding-VTo6cAic.js → onboarding-DAJleNxy.js} +1 -1
  23. package/assets/{rotate-ccw-BnlDnFzp.js → rotate-ccw-U-6dzR3K.js} +1 -1
  24. package/assets/{search-8IsSRNCD.js → search-BzVIRdcu.js} +1 -1
  25. package/assets/{senders-B6kERPgw.js → senders-C_HicD43.js} +1 -1
  26. package/assets/settings-M9ENfQU8.js +1 -0
  27. package/assets/{settings-screen-D-9KjBY1.js → settings-screen-D-Jna4xQ.js} +1 -1
  28. package/assets/{suggested-vips-hyrFJnW5.js → suggested-vips-DPD9y8Vf.js} +1 -1
  29. package/assets/{useDebouncedValue-rfnOPaF1.js → useDebouncedValue-ClSvgNAB.js} +1 -1
  30. package/assets/{useRulePreview--F55CB_O.js → useRulePreview-YMgc5mvd.js} +1 -1
  31. package/assets/{useSignature-LlbnbMQF.js → useSignature-DLAQrKXp.js} +1 -1
  32. package/index.html +1 -1
  33. package/package.json +1 -1
  34. package/assets/filters-CjKNkH2u.js +0 -1
  35. package/assets/index-BBwycmzB.js +0 -1
  36. package/assets/settings-2Oo-Gv3L.js +0 -1
@@ -1 +1 @@
1
- import{r as y,j as i,B as u,b as m,i as p,Z as x,ay as C,ap as h,ax as j,as as k,aC as L,bo as E,bs as O}from"./index-BNUiaml6.js";const t=()=>i.jsx(p,{className:"size-3.5 animate-spin"}),f=(s,n)=>n?i.jsx("span",{className:"sr-only",children:s}):s;function S({actions:s=[],destructive:n,className:l}){const[r,o]=y.useState(!1);return r&&n?.confirm?i.jsxs("div",{className:m("flex items-center gap-2",l),children:[i.jsx("span",{className:"text-xs text-fg-muted",children:n.confirm.prompt}),i.jsx(u,{variant:"secondary",size:"sm",onClick:()=>o(!1),children:n.confirm.cancelLabel??"Cancel"}),i.jsx(u,{variant:"danger",size:"sm","aria-busy":n.busy,icon:n.busy?t():void 0,onClick:()=>{n.busy||n.onClick()},children:n.busy?n.busyLabel??"Working…":n.confirm.confirmLabel??n.label})]}):i.jsxs("div",{className:m("flex items-center gap-2",l),children:[s.map(a=>i.jsx(u,{variant:a.variant??"ghost",size:"sm","aria-busy":a.busy,"aria-label":a.iconOnly?a.label:void 0,icon:a.busy?t():a.icon,onClick:()=>{a.busy||a.onClick()},children:a.busy&&a.busyLabel?a.busyLabel:f(a.label,a.iconOnly)},a.label)),n&&i.jsx(u,{variant:"ghost",size:"sm","aria-busy":n.busy,"aria-label":n.iconOnly?n.label:void 0,icon:n.busy?t():n.icon,onClick:()=>{if(!n.busy){if(n.confirm){o(!0);return}n.onClick()}},children:n.busy&&n.busyLabel?n.busyLabel:f(n.label,n.iconOnly)})]})}const c={html:"",plainText:""},z=s=>{const n=x(),{pushError:l}=C(),{data:r}=h({...j(),staleTime:1/0}),o=y.useMemo(()=>{if(!s||!r)return c;const e=r.accounts.find(b=>b.accountId===s);return e?{html:e.signatureHtml??"",plainText:e.signaturePlainText??""}:c},[s,r]),a=k({...O(),onSuccess:()=>{n.invalidateQueries({queryKey:E()})},onError:e=>{l(L("Couldn't save signature","The signature wasn't saved.",e))}}),g=y.useCallback((e,b)=>{s&&a.mutate({path:{accountId:s},body:{signatureHtml:e,signaturePlainText:b}})},[s,a]);return{signature:o,setSignature:g,isSaving:a.isPending}};export{S as R,z as u};
1
+ import{r as y,j as i,B as u,b as m,i as p,Z as x,ay as C,ap as h,ax as j,as as k,aC as L,bo as E,bs as O}from"./index-CKzNqXIo.js";const t=()=>i.jsx(p,{className:"size-3.5 animate-spin"}),f=(s,n)=>n?i.jsx("span",{className:"sr-only",children:s}):s;function S({actions:s=[],destructive:n,className:l}){const[r,o]=y.useState(!1);return r&&n?.confirm?i.jsxs("div",{className:m("flex items-center gap-2",l),children:[i.jsx("span",{className:"text-xs text-fg-muted",children:n.confirm.prompt}),i.jsx(u,{variant:"secondary",size:"sm",onClick:()=>o(!1),children:n.confirm.cancelLabel??"Cancel"}),i.jsx(u,{variant:"danger",size:"sm","aria-busy":n.busy,icon:n.busy?t():void 0,onClick:()=>{n.busy||n.onClick()},children:n.busy?n.busyLabel??"Working…":n.confirm.confirmLabel??n.label})]}):i.jsxs("div",{className:m("flex items-center gap-2",l),children:[s.map(a=>i.jsx(u,{variant:a.variant??"ghost",size:"sm","aria-busy":a.busy,"aria-label":a.iconOnly?a.label:void 0,icon:a.busy?t():a.icon,onClick:()=>{a.busy||a.onClick()},children:a.busy&&a.busyLabel?a.busyLabel:f(a.label,a.iconOnly)},a.label)),n&&i.jsx(u,{variant:"ghost",size:"sm","aria-busy":n.busy,"aria-label":n.iconOnly?n.label:void 0,icon:n.busy?t():n.icon,onClick:()=>{if(!n.busy){if(n.confirm){o(!0);return}n.onClick()}},children:n.busy&&n.busyLabel?n.busyLabel:f(n.label,n.iconOnly)})]})}const c={html:"",plainText:""},z=s=>{const n=x(),{pushError:l}=C(),{data:r}=h({...j(),staleTime:1/0}),o=y.useMemo(()=>{if(!s||!r)return c;const e=r.accounts.find(b=>b.accountId===s);return e?{html:e.signatureHtml??"",plainText:e.signaturePlainText??""}:c},[s,r]),a=k({...O(),onSuccess:()=>{n.invalidateQueries({queryKey:E()})},onError:e=>{l(L("Couldn't save signature","The signature wasn't saved.",e))}}),g=y.useCallback((e,b)=>{s&&a.mutate({path:{accountId:s},body:{signatureHtml:e,signaturePlainText:b}})},[s,a]);return{signature:o,setSignature:g,isSaving:a.isPending}};export{S as R,z as u};
package/index.html CHANGED
@@ -31,7 +31,7 @@
31
31
  } catch (_) {}
32
32
  })();
33
33
  </script>
34
- <script type="module" crossorigin src="/assets/index-BNUiaml6.js"></script>
34
+ <script type="module" crossorigin src="/assets/index-CKzNqXIo.js"></script>
35
35
  <link rel="stylesheet" crossorigin href="/assets/index-x2TYjU4V.css">
36
36
  </head>
37
37
  <body>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remit/web-client-dist",
3
- "version": "0.0.154",
3
+ "version": "0.0.156",
4
4
  "description": "Built Remit web client — static assets and the default runtime config.",
5
5
  "files": [
6
6
  "**/*"
@@ -1 +0,0 @@
1
- import{Z as Q,as as q,bR as G,bS as H,r as h,j as e,bT as V,aY as J,i as O,B as j,D as Y,d as W,bU as Z,T as X,ad as ee,ap as T,ax as te,bD as se,bF as ae,ae as ie,aN as D}from"./index-BNUiaml6.js";import{S as ne}from"./settings-screen-D-9KjBY1.js";import{l as re,N as F,c as le,r as oe,d as ce,S as E,f as de,n as me,u as ue,B as xe,m as pe,o as fe,p as he,q as ge}from"./useRulePreview--F55CB_O.js";import{u as ve,b as je}from"./move-targets-DzuIW8P2.js";import{C as w}from"./circle-check-Cy1OAc1n.js";import{E as k}from"./ErrorState-DyIT80w7.js";import"./avatar-Bf7ZfE61.js";const ye=(t,s)=>{const n=Q(),a=q({...H(),onSuccess:()=>{t&&(n.invalidateQueries({queryKey:re(t)}),s&&n.invalidateQueries({queryKey:G({path:{accountId:t,filterId:s}})}))}}),{mutate:r}=a;return{updateFilter:h.useCallback(d=>{!t||!s||r({path:{accountId:t,filterId:s},body:d})},[t,s,r]),isPending:a.isPending,isSuccess:a.isSuccess,isError:a.isError,error:a.error,reset:a.reset}},be=(t,s=!1)=>({clauses:t.literalClauses.map((a,r)=>({id:`clause-${r}`,field:a.field,value:a.value})),matchOperator:t.matchOperator==="And"?"all":"any",widen:t.hasAnchor?{anchorCount:1,...s?{inactive:!0}:{}}:void 0,moveMailboxId:t.actionMailboxId!==F?t.actionMailboxId:void 0,scope:t.scope==="Temporary"?"until":"standing",until:t.scope==="Temporary"?Ne(t.expiresAt):void 0,name:t.name}),Ne=t=>{if(!t)return"";const s=Date.parse(t);if(Number.isNaN(s))return"";const n=new Date(s),a=r=>String(r).padStart(2,"0");return`${n.getFullYear()}-${a(n.getMonth()+1)}-${a(n.getDate())}`},M=t=>JSON.stringify({clauses:t.clauses.map(s=>[s.field,s.value]),operator:t.matchOperator,move:t.moveMailboxId??null,widen:t.widen?t.widen.inactive?"inactive":"active":"none"}),I=(t,s)=>M(t)!==M(s),Ce=(t,s)=>{const n={},a=(t.name??"").trim();return a!==(s.name??"").trim()&&(n.name=a),I(t,s)&&(n.matchOperator=t.matchOperator==="all"?"And":"Or",n.literalClauses=t.clauses.map(r=>({field:r.field,value:r.value})),n.actionMailboxId=t.moveMailboxId??F),n};function Se({accountId:t,filter:s,folders:n,semanticUnavailable:a=!1,onClose:r}){const x=h.useMemo(()=>be(s,a),[s,a]),[d,l]=h.useState(x),[m,c]=h.useState(),[p,f]=h.useState(!1),b=h.useRef(0),y=le(t,oe(d)),g=ye(t,s.filterId),u=ce(t),{createFolder:N}=ve(t),C=()=>c({mode:"add",draft:{field:E[0],value:""}}),A=o=>{const i=d.clauses.find(v=>v.id===o);i&&c({mode:"edit",clauseId:o,draft:{field:i.field,value:i.value}})},R=o=>c(i=>i&&{...i,draft:{...i.draft,field:o}}),P=o=>c(i=>i&&{...i,draft:{...i.draft,value:o}}),$=()=>{if(!m)return;const o=m.draft.field,i=me(o,m.draft.value);i!==""&&(l(v=>m.mode==="edit"&&m.clauseId?{...v,clauses:v.clauses.map(S=>S.id===m.clauseId?{id:S.id,field:o,value:i}:S)}:(b.current+=1,{...v,clauses:[...v.clauses,{id:`new-${b.current}`,field:o,value:i}]})),c(void 0))},z=o=>l(i=>({...i,clauses:i.clauses.filter(v=>v.id!==o)})),L=o=>l(i=>({...i,matchOperator:o})),_=o=>l(i=>({...i,moveMailboxId:o||void 0})),B=o=>l(i=>({...i,name:o})),U=()=>{const o=I(d,x),i=Ce(d,x);if(Object.keys(i).length===0){r();return}f(o),g.updateFilter(i)},K=()=>u.start(de(d));return u.isStarting||u.isRunning||u.isDone?e.jsx(Ee,{progress:u.progress,isDone:u.isDone,onClose:r}):g.isPending?e.jsx(Fe,{}):g.isError?e.jsx(Me,{onRetry:g.reset,onClose:r}):g.isSuccess?p?e.jsx(De,{preview:V(y),blocked:y.status!=="ready"||y.stale===!0,onReapply:K,onClose:r}):e.jsx(we,{onClose:r}):e.jsx(J,{rule:d,folders:n,preview:y,semanticAvailable:!1,clauseFields:E,lifecycleLocked:!0,clauseEdit:m,onStartAddClause:C,onStartEditClause:A,onRemoveClause:z,onChangeDraftField:R,onChangeDraftValue:P,onSubmitClause:$,onCancelClause:()=>c(void 0),onChangeMatchOperator:L,onChangeMove:_,onCreateFolder:N,onChangeName:B,onCommit:U,onCancel:r})}function Fe(){return e.jsxs("div",{className:"flex flex-col items-center gap-3 px-5 py-10 text-center",children:[e.jsx(O,{className:"size-8 animate-spin text-accent-2"}),e.jsx("p",{className:"text-sm font-medium text-fg",children:"Saving changes…"})]})}function we({onClose:t}){return e.jsxs("div",{className:"flex flex-col items-center gap-3 px-5 py-8 text-center",children:[e.jsx(w,{className:"size-8 text-positive"}),e.jsx("p",{className:"text-sm font-medium text-fg",children:"Filter updated"}),e.jsx(j,{variant:"primary",onClick:t,className:"mt-2",children:"Done"})]})}function De({preview:t,blocked:s,onReapply:n,onClose:a}){return e.jsxs("div",{className:"flex flex-col items-center gap-3 px-5 py-8 text-center",children:[e.jsx(w,{className:"size-8 text-positive"}),e.jsx("p",{className:"text-sm font-medium text-fg",children:"Rule saved"}),e.jsxs("p",{className:"max-w-xs text-xs text-fg-muted",children:["New mail follows the rule automatically. ",t," — move the mail already in your mailbox too?"]}),e.jsxs("div",{className:"mt-2 flex gap-2",children:[e.jsx(j,{variant:"primary",onClick:n,disabled:s,children:"Move existing mail"}),e.jsx(j,{variant:"ghost",onClick:a,children:"Not now"})]})]})}function Ee({progress:t,isDone:s,onClose:n}){const a=t.state==="Failed";return e.jsxs("div",{className:"flex flex-col items-center gap-3 px-5 py-8 text-center",children:[s?a?e.jsx("span",{className:"text-sm font-semibold text-danger",children:"Move failed"}):e.jsx(w,{className:"size-8 text-positive"}):e.jsx(O,{className:"size-8 animate-spin text-accent-2"}),!s&&e.jsx("p",{className:"text-sm font-medium text-fg",children:"Moving existing mail…"}),s&&!a&&e.jsxs("div",{className:"text-sm text-fg",children:[e.jsx("p",{className:"font-medium",children:"Done"}),e.jsxs("p",{className:"mt-1 text-xs text-fg-muted",children:[t.appliedCount," of ",t.matchedCount," moved",t.failedCount>0?` · ${t.failedCount} failed`:"","."]})]}),s&&a&&e.jsx("p",{className:"max-w-xs text-xs text-fg-muted",children:t.errorMessage||"Something went wrong. Please try again."}),s&&e.jsx(j,{variant:"primary",onClick:n,className:"mt-2",children:"Done"})]})}function Me({onRetry:t,onClose:s}){return e.jsxs("div",{className:"flex flex-col items-center gap-3 px-5 py-8 text-center",children:[e.jsx("p",{className:"text-sm font-medium text-danger",children:"Couldn't save changes"}),e.jsx("p",{className:"max-w-xs text-xs text-fg-muted",children:"Please try again."}),e.jsxs("div",{className:"mt-2 flex gap-2",children:[e.jsx(j,{variant:"primary",onClick:t,children:"Try again"}),e.jsx(j,{variant:"ghost",onClick:s,children:"Not now"})]})]})}function Oe({accountId:t,filter:s,folders:n,semanticUnavailable:a,onClose:r}){const x=ue(),d=e.jsx(Se,{accountId:t,filter:s,folders:n,semanticUnavailable:a,onClose:r});return x?e.jsx(Y,{open:!0,onClose:r,title:"Filter rule",children:d}):e.jsx(xe,{open:!0,onClose:r,dismissLabel:"Dismiss filter rule",children:d})}function Te({filters:t,mailboxName:s,onEdit:n,onDelete:a,deletingFilterId:r,semanticUnavailable:x=!1,now:d=Date.now()}){return t.length===0?e.jsx("p",{className:"py-6 text-sm text-fg-muted",children:"No filters yet. Select a few messages in the inbox and choose Organize to make one."}):e.jsx("ul",{className:"divide-y divide-line rounded-md border border-line",children:t.map(l=>{const m=pe(l,d),c=m==="Expired",p=l.actionMailboxId!==F?s(l.actionMailboxId):void 0,f=fe(l.expiresAt);return e.jsxs("li",{className:"flex items-start gap-3 px-3 py-2.5",children:[e.jsxs("button",{type:"button",onClick:()=>n(l.filterId),"aria-label":`Edit filter ${l.name}`,className:"min-w-0 flex-1 rounded-sm text-left hover:opacity-80",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:`truncate text-sm font-medium ${c?"text-fg-muted":"text-fg"}`,children:l.name}),e.jsx(W,{tone:c?"neutral":"positive",dot:!0,children:m})]}),e.jsxs("p",{className:"mt-0.5 text-xs text-fg-subtle",children:[p?`Moves matches to ${p}`:"No move action",l.scope==="Temporary"&&f?c?` · expired ${f}`:` · until ${f}`:l.scope==="Standing"?" · always":""]}),l.hasAnchor&&e.jsx("div",{className:"mt-1.5 flex flex-wrap gap-1.5",children:e.jsx(Z,{widen:{anchorCount:1,...x?{inactive:!0}:{}}})})]}),e.jsx(j,{variant:"ghost",size:"sm",icon:e.jsx(X,{className:"size-4 text-danger"}),onClick:()=>a(l.filterId),disabled:r===l.filterId,"aria-label":`Delete filter ${l.name}`})]},l.filterId)})})}const ke=e.jsxs("div",{className:"space-y-3",children:[e.jsxs("p",{children:["Filters are the standing rules Organize creates. A"," ",e.jsx("strong",{children:"Standing"})," filter keeps working on new mail; a"," ",e.jsx("strong",{children:"Temporary"})," one stops on its own at the date you picked."]}),e.jsx("p",{children:"An expired filter isn't deleted the instant it lapses — it stays here, marked Expired, so you can see what it did and when it stopped."})]});function Ie({account:t}){const s=t.accountId,{filters:n,isPending:a,isError:r,error:x,refetch:d}=he(s),{deleteFilter:l,deletingFilterId:m}=ge(s),[c,p]=h.useState(),{data:f}=T({...ie({path:{accountId:s}}),staleTime:1/0}),b=h.useCallback(u=>{const N=f?.items.find(C=>C.mailboxId===u);return N?D(N.fullPath):void 0},[f?.items]),y=h.useMemo(()=>je(f?.items??[]).map(u=>({id:u.mailboxId,label:D(u.fullPath)})),[f?.items]),g=n.find(u=>u.filterId===c);return e.jsxs("section",{className:"space-y-2",children:[e.jsx("h2",{className:"text-sm font-semibold text-fg",children:t.email}),g&&e.jsx(Oe,{accountId:s,filter:g,folders:y,onClose:()=>p(void 0)}),a?e.jsx("div",{className:"h-16 animate-pulse rounded-md border border-line bg-surface","aria-busy":"true","aria-label":`Loading filters for ${t.email}`}):r?e.jsx(k,{variant:"inline",title:`Couldn't load filters for ${t.email}`,error:x,onRetry:()=>{d()}}):e.jsx(Te,{filters:n,mailboxName:b,onEdit:p,onDelete:l,deletingFilterId:m})]})}function Be(){const t=ee(),[s,n]=h.useState(!0),{data:a,isPending:r,isError:x,error:d,refetch:l}=T(te()),m=c=>{const p=ae[c];p&&t({to:p})};return e.jsx(ne,{items:se,activeId:"filters",title:"Filters",description:"Standing and temporary rules created by Organize, per account.",help:ke,helpOpen:s,onToggleHelp:()=>n(c=>!c),onSelect:m,onBackToMail:()=>{t({to:"/mail"})},children:r?e.jsx("div",{className:"h-24 animate-pulse rounded-sm border border-line bg-surface","aria-busy":"true","aria-label":"Loading accounts"}):x?e.jsx(k,{title:"Couldn't load accounts",error:d,onRetry:()=>{l()}}):a.accounts.length===0?e.jsx("p",{className:"py-12 text-sm text-fg-muted",children:"No accounts configured."}):e.jsx("div",{className:"space-y-8",children:a.accounts.map(c=>e.jsx(Ie,{account:c},c.accountId))})})}export{Be as component};
@@ -1 +0,0 @@
1
- import{j as t,bp as o}from"./index-BNUiaml6.js";const n=()=>t.jsx(o,{to:"/settings/accounts"});export{n as component};
@@ -1 +0,0 @@
1
- import{j as t,bn as o}from"./index-BNUiaml6.js";const s=()=>t.jsx(o,{});export{s as component};