@buildbase/sdk 0.0.57 → 0.0.59
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/CHANGELOG.md +26 -0
- package/dist/css/styles.css +1 -1
- package/dist/react/chunks/{SettingsDialog-DhxNGiZI.cjs → SettingsDialog-BUxloUTO.cjs} +1 -1
- package/dist/react/chunks/{SettingsDialog-CGFO1AGh.mjs → SettingsDialog-nnVWUC3-.mjs} +1 -1
- package/dist/react/chunks/{SubscriptionDialog-DQjHsKth.cjs → SubscriptionDialog-CE1B3iaq.cjs} +1 -1
- package/dist/react/chunks/{SubscriptionDialog-Csy020_n.mjs → SubscriptionDialog-Dne8BsN6.mjs} +1 -1
- package/dist/react/chunks/{react-VshTnwaW.mjs → react-CpHs0f3L.mjs} +1 -1
- package/dist/react/chunks/{react-B0kptNqP.cjs → react-kP8lTlQi.cjs} +1 -1
- package/dist/react/index.cjs +1 -1
- package/dist/react/index.d.ts +100 -2
- package/dist/react/index.mjs +1 -1
- package/package.json +1 -1
- /package/dist/react/chunks/{ar-CGbuXEeR.cjs → ar-D7uaSur2.cjs} +0 -0
- /package/dist/react/chunks/{ar-DnShbYvQ.mjs → ar-DHxjPtfZ.mjs} +0 -0
- /package/dist/react/chunks/{de-a1mX2rR4.cjs → de-CBzx6NJq.cjs} +0 -0
- /package/dist/react/chunks/{de-C3iuiLAz.mjs → de-D_xfGk1N.mjs} +0 -0
- /package/dist/react/chunks/{es-u9vKMeaX.mjs → es-D4-Dv2t5.mjs} +0 -0
- /package/dist/react/chunks/{es-D4T7YE7x.cjs → es-WVRwuj-e.cjs} +0 -0
- /package/dist/react/chunks/{fr-Bnnz2yJZ.cjs → fr-CEpK52jT.cjs} +0 -0
- /package/dist/react/chunks/{fr-DjgpP202.mjs → fr-DurP7qkZ.mjs} +0 -0
- /package/dist/react/chunks/{hi-Cu_9iCjb.mjs → hi-7roM83DB.mjs} +0 -0
- /package/dist/react/chunks/{hi-B8Mjr8rU.cjs → hi-CVqVRSoy.cjs} +0 -0
- /package/dist/react/chunks/{ja-B0eCVKdZ.cjs → ja-BrDXec_v.cjs} +0 -0
- /package/dist/react/chunks/{ja-DfJ5WUrG.mjs → ja-DT8x4SW1.mjs} +0 -0
- /package/dist/react/chunks/{zh-JjoMmHmK.mjs → zh-CH1Z55Je.mjs} +0 -0
- /package/dist/react/chunks/{zh-BnPZ0j4w.cjs → zh-CdCzcD53.cjs} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
"use strict";var e=require("react/jsx-runtime"),a=require("lucide-react"),s=require("react"),t=require("./react-B0kptNqP.cjs"),i=require("@radix-ui/react-switch"),n=require("@hookform/resolvers/zod"),r=require("react-hook-form"),c=require("zod"),o=require("@radix-ui/react-icons"),l=require("cmdk"),d=require("@radix-ui/react-popover"),u=require("@radix-ui/react-select");function m(e){var a=Object.create(null);return e&&Object.keys(e).forEach(function(s){if("default"!==s){var t=Object.getOwnPropertyDescriptor(e,s);Object.defineProperty(a,s,t.get?t:{enumerable:!0,get:function(){return e[s]}})}}),a.default=e,Object.freeze(a)}var x=m(s),p=m(i),g=m(d),f=m(u);const b=()=>e.jsx(t.ConnectedAgents,{title:null});const h=({open:i,onOpenChange:n,packages:r,billingCurrency:c,workspaceName:o,onSelectPackage:l,purchasingPackageId:d,loading:u=!1})=>{const{t:m,dir:x,fmtNum:p,fmtCents:g,formattingLocale:f}=t.useTranslation(),b=s.useMemo(()=>{const e=new Set;return r.forEach(a=>{a.pricingVariants?.forEach(a=>{a.currency&&e.add(a.currency.toLowerCase())})}),Array.from(e)},[r]),h=s.useMemo(()=>{const e=c?.trim().toLowerCase();return e?b.includes(e)?[e]:[]:b},[c,b]),[S,v]=s.useState(()=>h.length>0?h[0]:""),j=c?.trim().toLowerCase()||S,N=u||!!d;return e.jsx(t.Dialog,{open:i,onOpenChange:n,children:e.jsxs(t.DialogContent,{dir:x,className:"inset-0 w-screen h-screen max-w-none rounded-none translate-x-0 translate-y-0 p-0 flex flex-col",children:[e.jsxs("div",{className:"flex-shrink-0 px-4 py-4 sm:px-6 sm:py-6 border-b space-y-3 sm:space-y-4",children:[e.jsxs("div",{children:[e.jsx(t.DialogTitle,{className:"text-xl font-semibold",children:m("credits.dialogTitle")}),e.jsxs(t.DialogDescription,{className:"mt-1 text-sm",children:[m("credits.dialogDescription"),o&&e.jsx("span",{className:"ms-1 font-medium text-foreground",children:m("credits.dialogDescriptionWorkspace",{workspace:o})})]})]}),!c?.trim()&&h.length>1&&e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-sm text-muted-foreground",children:m("pricing.currency")}),e.jsx("div",{className:"flex gap-1 rounded-lg border border-border bg-muted/30 p-1",children:h.map(a=>e.jsxs("button",{type:"button",onClick:()=>v(a),className:t.cn("rounded-md px-3 py-1.5 text-sm font-medium transition-colors",j===a?"bg-background text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"),children:[t.getCurrencySymbol(a)," ",a.toUpperCase()]},a))})]})]}),e.jsx("div",{className:"flex-1 overflow-y-auto",children:0===r.length?e.jsxs("div",{className:"flex flex-col items-center justify-center py-16 text-muted-foreground/70",children:[e.jsx(a.Coins,{className:"h-12 w-12 mb-3"}),e.jsx("p",{className:"text-sm",children:m("credits.noPackages")})]}):e.jsx("div",{className:"max-w-2xl mx-auto px-4 py-6 sm:px-6 space-y-4",children:r.map(s=>{const i=s.pricingVariants?.find(e=>e.currency?.toLowerCase()===j)??s.pricingVariants?.[0],n=i?.amount,r=i?.currency??j,c=d===s._id,o=null!=n&&n>0&&s.creditAmount>0?function(e,a,s){const i=Math.round(e);if(i>=1)return t.formatMinorAmountIntl(i,a,s);const n=t.getCurrencyDecimals(a),r=e/10**n,c=Math.min(n+4,Math.max(n,Math.ceil(-Math.log10(r))+1));try{return new Intl.NumberFormat(s,{style:"currency",currency:a.trim().toUpperCase(),minimumFractionDigits:c,maximumFractionDigits:c}).format(r)}catch{return t.getCurrencySymbol(a)+r.toFixed(c)}}(n/s.creditAmount,r,f):null;return e.jsxs("div",{className:t.cn("rounded-xl border p-5 sm:p-6 flex flex-col sm:flex-row sm:items-center gap-4 transition-all",c?"border-primary bg-primary/5 shadow-md":"border-border hover:border-border hover:shadow-sm"),children:[e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx("h3",{className:"text-lg font-semibold text-foreground",children:s.name}),e.jsxs("span",{className:"inline-flex items-center gap-1 rounded-full bg-info/10 px-2.5 py-0.5 text-xs font-medium text-info",children:[e.jsx(a.Coins,{className:"h-3.5 w-3.5"}),m("credits.creditsAmount",{count:p(s.creditAmount)})]})]}),s.description&&e.jsx("p",{className:"text-sm text-muted-foreground mb-2",children:s.description}),e.jsxs("div",{className:"flex flex-wrap items-center gap-x-4 gap-y-1 text-xs text-muted-foreground/70",children:[e.jsx("span",{children:s.validityDays?m("credits.validityDays",{count:s.validityDays}):m("credits.validityUnlimited")}),null!=o&&e.jsx("span",{children:m("credits.perCredit",{price:o})})]})]}),e.jsxs("div",{className:"flex items-center gap-4 sm:flex-col sm:items-end sm:gap-2 shrink-0",children:[null!=n&&e.jsx("span",{className:"text-2xl sm:text-3xl font-bold text-foreground whitespace-nowrap",children:g(n,r)}),e.jsx(t.Button,{size:"sm",onClick:()=>l(s),disabled:N,progress:c,className:"whitespace-nowrap",children:c?m("credits.purchasing"):m("credits.buyAmount",{count:p(s.creditAmount)})})]})]},s._id)})})})]})})},S=({titleKey:s,descriptionKey:i})=>{const{t:n}=t.useTranslation();return e.jsx("div",{className:"border border-warning/20 bg-warning/10 rounded-lg p-4",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(a.ShieldAlert,{className:"h-5 w-5 text-warning shrink-0 mt-0.5"}),e.jsxs("div",{children:[e.jsx("h4",{className:"text-sm font-medium text-warning",children:n(s??"settings.common.noPermissionTitle")}),e.jsx("p",{className:"text-xs text-warning/80 mt-1",children:n(i??"settings.common.noPermissionDescription")})]})]})})};function v(){return e.jsxs("div",{className:"space-y-3.5",children:[e.jsx(t.Skeleton,{className:"h-10 w-full"}),e.jsx(t.Skeleton,{className:"h-10 w-full"}),e.jsx(t.Skeleton,{className:"h-10 w-full"})]})}const j={[t.CreditTransactionType.PlanGrant]:"credits.type.plan_grant",[t.CreditTransactionType.PackPurchased]:"credits.type.pack_purchased",[t.CreditTransactionType.Consumed]:"credits.type.consumed",[t.CreditTransactionType.Expired]:"credits.type.expired",[t.CreditTransactionType.AdminGrant]:"credits.type.admin_grant",[t.CreditTransactionType.AdminRevoke]:"credits.type.admin_revoke",[t.CreditTransactionType.Refund]:"credits.type.refund"};const N=({workspace:i})=>{const n=i._id?.toString(),{t:r,fmtNum:c}=t.useTranslation(),{can:o}=t.usePermissions(),{visible:l}=t.useUIVisibility(),d=l(e=>e.settings?.credits?.transactions),u=o(t.Permission.WORKSPACE_BILLING_VIEW),m=l(e=>e.settings?.credits?.buyButton,t.Permission.WORKSPACE_BILLING_MANAGE),{balance:x,loading:p,error:g,refetch:f}=t.useCreditBalanceContext(),{packages:b,loading:j}=t.useCreditPackages(n),{expiringCredits:N,loading:C}=t.useExpiringCredits(n,7),[T,y]=s.useState(1),{transactions:w,hasNextPage:k,loading:E,refetch:P}=t.useCreditTransactions(n,{limit:10,page:T}),[D,M]=s.useState([]);s.useEffect(()=>{E||0===w.length||M(1===T?w:e=>{const a=new Set(e.map(e=>e._id)),s=w.filter(e=>!a.has(e._id));return s.length>0?[...e,...s]:e})},[w,T,E]);const I=s.useCallback(()=>{k&&!E&&y(e=>e+1)},[k,E]),U=D,{purchaseCredits:B,loading:R}=t.usePurchaseCredits(n),[G,L]=s.useState(!1),[K,_]=s.useState(null),[F,O]=s.useState(!1),[W,V]=s.useState(!1),[z,H]=s.useState(null),[J,Y]=s.useState(!1),Z=s.useRef(!1),q=p&&!x;s.useEffect(()=>{if(Z.current)return;const e=t.workspaceSettingsManager.getState();if(!e.params?.action)return;if(e.params.action===t.BBAction.OpenCreditStore)return Z.current=!0,t.workspaceSettingsManager.clearParams(),void Y(!0);if(e.params.action!==t.BBAction.CreditPurchase)return;Z.current=!0;const a=e.params.status;if(t.workspaceSettingsManager.clearParams(),a===t.BBStatus.Success){O(!0),t.invalidateCreditBalance();const e=setTimeout(()=>O(!1),8e3);return()=>clearTimeout(e)}if(a===t.BBStatus.Cancel){V(!0);const e=setTimeout(()=>V(!1),5e3);return()=>clearTimeout(e)}a===t.BBStatus.Error&&_(r("credits.purchaseFailed"))},[]);if(q)return e.jsx(v,{});if(!u)return e.jsx(S,{});if(!n)return e.jsx("div",{className:"border rounded-lg p-4 text-center text-muted-foreground",children:e.jsx("p",{children:r("subscription.invalidWorkspace")})});const $=!j&&b.length>0;return e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"space-y-3",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:r("credits.description")}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[$&&m&&e.jsxs(t.Button,{size:"sm",onClick:()=>Y(!0),children:[e.jsx(a.ShoppingCart,{className:"h-3.5 w-3.5 me-1.5"}),r("credits.buyCredits")]}),e.jsxs(t.Button,{variant:"ghost",size:"sm",onClick:async()=>{L(!0);try{await f()}finally{L(!1)}},disabled:G,children:[e.jsx(a.RefreshCw,{className:t.cn("h-3.5 w-3.5 me-1.5",G&&"animate-spin")}),r("settings.common.refreshAction",{loading:String(G)})]})]})]}),g&&e.jsx(t.StatusBanner,{variant:"error",title:r("credits.errorLoading"),message:g}),F&&e.jsx(t.StatusBanner,{variant:"success",icon:e.jsx(a.CheckCircle2,{className:"h-4 w-4 flex-shrink-0"}),title:r("credits.purchaseSuccess"),actionLabel:r("settings.common.dismiss"),onAction:()=>O(!1)}),W&&e.jsx(t.StatusBanner,{variant:"warning",title:r("credits.purchaseCanceled"),actionLabel:r("settings.common.dismiss"),onAction:()=>V(!1)}),K&&e.jsx(t.StatusBanner,{variant:"error",message:K,actionLabel:r("settings.common.dismiss"),onAction:()=>_(null)}),e.jsxs("div",{className:"border border-border rounded-lg overflow-hidden",children:[e.jsxs("div",{className:"bg-muted/30 p-4 sm:p-5",children:[e.jsxs("div",{className:"flex items-center justify-between mb-3",children:[e.jsx("h3",{className:"text-sm font-semibold text-muted-foreground uppercase tracking-wider",children:r("credits.balance")}),e.jsx(a.Coins,{className:"h-5 w-5 text-muted-foreground/70"})]}),x?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"text-3xl font-bold text-foreground mb-4",children:c(x.available)}),e.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-muted-foreground",children:r("credits.totalGranted")}),e.jsx("p",{className:"text-sm font-medium text-foreground",children:c(x.totalGranted)})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-muted-foreground",children:r("credits.totalConsumed")}),e.jsx("p",{className:"text-sm font-medium text-foreground",children:c(x.totalConsumed)})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-muted-foreground",children:r("credits.totalExpired")}),e.jsx("p",{className:"text-sm font-medium text-foreground",children:c(x.totalExpired)})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-muted-foreground",children:r("credits.available")}),e.jsx("p",{className:"text-sm font-semibold text-success",children:c(x.available)})]})]})]}):e.jsxs("div",{className:"text-center py-4",children:[e.jsx(a.Coins,{className:"h-10 w-10 text-muted-foreground/50 mx-auto mb-2"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:r("credits.noCredits")}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:r("credits.noCreditsHint")}),$&&m&&e.jsxs(t.Button,{size:"sm",className:"mt-3",onClick:()=>Y(!0),children:[e.jsx(a.ShoppingCart,{className:"h-3.5 w-3.5 me-1.5"}),r("credits.buyCredits")]})]})]}),!C&&N>0&&e.jsx("div",{className:"px-4 py-3 bg-warning/10 border-t border-warning/30 text-sm text-warning",children:r("credits.expiringInDays",{count:N,days:7})})]}),d&&e.jsxs("div",{children:[e.jsx(t.SectionHeader,{title:r("credits.transactions"),className:"mb-3"}),E&&0===U.length?e.jsx(t.LoadingState,{}):0===U.length?e.jsx(t.EmptyState,{icon:e.jsx(a.History,{className:"h-5 w-5 text-muted-foreground"}),description:r("credits.noTransactions"),action:e.jsx(t.Button,{variant:"outline",size:"sm",progress:E,onClick:P,children:r("settings.common.refreshAction",{loading:String(E)})})}):e.jsxs("div",{className:"border border-border rounded-lg overflow-hidden",children:[e.jsx("div",{className:"divide-y divide-border/60",children:U.map(a=>e.jsx(A,{tx:a},a._id))}),k&&e.jsx("div",{className:"border-t border-border px-4 py-3 text-center",children:e.jsx(t.Button,{variant:"ghost",size:"sm",onClick:I,disabled:E,progress:E&&T>1,children:r("credits.loadMore")})})]})]}),$&&m&&e.jsx(h,{open:J,onOpenChange:Y,packages:b,billingCurrency:i.billingCurrency,workspaceName:i.name,onSelectPackage:async e=>{if(n){_(null),H(e._id);try{const{successUrl:a,cancelUrl:s}=t.createCreditPurchaseRedirectUrls(n),i=await B({creditPackageId:e._id,successUrl:a,cancelUrl:s});i.url&&t.safeRedirect(i.url)}catch(e){_(e instanceof Error?e.message:r("errors.purchaseCredits")),H(null)}}},purchasingPackageId:z,loading:R})]})};function A({tx:a}){const{t:s,formattingLocale:i,fmtNum:n}=t.useTranslation(),r=j[a.type]??"credits.type.consumed",c=function(e){switch(e){case"plan_grant":case"admin_grant":case"refund":return"bg-success/15 text-success";case"pack_purchased":return"bg-info/15 text-info";case"consumed":default:return"bg-muted text-foreground";case"expired":case"admin_revoke":return"bg-destructive/15 text-destructive"}}(a.type),o=a.amount>0;return e.jsx("div",{className:"px-3 py-3 sm:px-4",children:e.jsxs("div",{className:"flex items-start justify-between gap-2",children:[e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-1.5 mb-0.5",children:[e.jsx("span",{className:t.cn("inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium shrink-0",c),children:s(r)}),a.description&&e.jsx("p",{className:"text-sm text-foreground truncate",children:a.description})]}),e.jsx("p",{className:"text-xs text-muted-foreground/70",children:t.formatDateTime(a.createdAt,i)})]}),e.jsxs("div",{className:"text-end shrink-0",children:[e.jsxs("span",{className:t.cn("text-sm font-semibold",o?"text-success":"text-foreground"),children:[o?"+":"",n(a.amount)]}),e.jsx("p",{className:"text-xs text-muted-foreground/70",children:n(a.balanceAfter)})]})]})})}const C=({workspace:i})=>{const[n,r]=s.useState(!1),{deleteWorkspace:c}=t.useSaaSWorkspaces(),{can:o}=t.usePermissions(),{settings:l}=t.useSaaSSettings(),{t:d}=t.useTranslation();if(1===(l?.workspace?.maxWorkspacesPerUser??0))return null;if(!i)return e.jsx(v,{});return o(t.Permission.WORKSPACE_DELETE)?e.jsxs("div",{className:"space-y-4",children:[e.jsx(t.SectionHeader,{title:d("danger.title"),titleClassName:"text-destructive",description:d("danger.deleteDescription")}),e.jsxs(t.AlertDialog,{children:[e.jsx(t.AlertDialogTrigger,{asChild:!0,children:e.jsxs(t.Button,{variant:"destructive",disabled:n,progress:n,children:[e.jsx(a.Trash2,{className:"h-4 w-4 me-2"}),d("danger.deleteWorkspace")]})}),e.jsxs(t.AlertDialogContent,{children:[e.jsxs(t.AlertDialogHeader,{children:[e.jsx(t.AlertDialogTitle,{children:d("danger.deleteConfirm")}),e.jsx(t.AlertDialogDescription,{children:d("danger.deleteConfirmDescription")})]}),e.jsxs(t.AlertDialogFooter,{children:[e.jsx(t.AlertDialogCancel,{disabled:n,children:d("settings.common.cancel")}),e.jsx(t.AlertDialogAction,{onClick:async()=>{r(!0);try{await c(i._id)}catch(e){t.handleError(e,{component:"WorkspaceSettingsDanger",action:"handleDeleteWorkspace",metadata:{workspaceId:i._id}})}finally{r(!1)}},disabled:n,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:n?e.jsxs(e.Fragment,{children:[e.jsx(a.Loader2,{className:"me-2 h-4 w-4 animate-spin"}),d("danger.deleting")]}):d("danger.deleteWorkspace")})]})]})]})]}):e.jsx(S,{descriptionKey:"danger.adminOnly"})},T=()=>{const{visible:a}=t.useUIVisibility(),s=a(e=>e.settings?.devices?.sessions);return e.jsxs("div",{className:"space-y-8",children:[e.jsx(t.Devices,{title:null}),s&&e.jsx(t.Sessions,{})]})},y=x.forwardRef(({className:a,...s},i)=>e.jsx(p.Root,{className:t.cn("peer inline-flex h-[20px] w-[36px] shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",a),...s,ref:i,children:e.jsx(p.Thumb,{className:t.cn("pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 rtl:data-[state=checked]:-translate-x-4 data-[state=unchecked]:translate-x-0")})}));function w(e=5e3){const[a,t]=s.useState(null),i=s.useRef(null);s.useEffect(()=>()=>{i.current&&clearTimeout(i.current)},[]);return{message:a,show:s.useCallback(a=>{t(a),i.current&&clearTimeout(i.current),i.current=setTimeout(()=>{t(null)},e)},[e]),clear:s.useCallback(()=>{t(null),i.current&&clearTimeout(i.current)},[])}}y.displayName=p.Root.displayName;const k=({workspaceId:i})=>{const{t:n}=t.useTranslation(),{allFeatures:r,updateFeature:c,getWorkspace:o}=t.useSaaSWorkspaces(),{can:l}=t.usePermissions(),[d,u]=s.useState({}),m=w(),[x,p]=s.useState(null);if(s.useEffect(()=>{o(i).then(p).catch(e=>{t.handleError(e,{component:"WorkspaceSettingsFeatures",action:"getWorkspace"})})},[i]),!x)return e.jsx(v,{});const g=l(t.Permission.WORKSPACE_FEATURES_EDIT);return e.jsxs("div",{children:[m.message&&e.jsx(t.StatusBanner,{variant:"success",title:n("settings.common.success"),message:m.message,className:"mb-4"}),e.jsxs("div",{className:"flex flex-col gap-y-3.5 pe-4",children:[!g&&e.jsx(S,{descriptionKey:"features.ownerOnly"}),!r.length&&e.jsx(t.EmptyState,{icon:e.jsx(a.ToggleRight,{className:"h-5 w-5 text-muted-foreground"}),description:n("features.noFeatures")}),r.length>0&&e.jsx("div",{className:"flex flex-col gap-y-3.5",children:r.map(s=>{const i=x?.features?.[s.slug],o=null!==d[s.slug]&&void 0!==d[s.slug],l=d[s.slug],f=n("features.actionStatus",{action:!0===l?"enabling":!1===l?"disabling":"none"});return e.jsxs("div",{className:"flex items-center gap-x-2 justify-between w-full",children:[e.jsxs("div",{className:"flex gap-x-2 flex-col",children:[e.jsx("h3",{className:"font-medium text-ellipsis",children:s.name}),e.jsx("p",{className:"text-muted-foreground",children:s.description})]}),o?e.jsxs("div",{className:"flex items-center gap-x-1",children:[e.jsx(a.Loader2,{className:"h-4 w-4 animate-spin text-muted-foreground"}),e.jsxs("span",{className:"text-sm text-muted-foreground",children:[f,"..."]})]}):e.jsx(y,{disabled:!g,checked:i??s.defaultValue,onCheckedChange:e=>async function(e,a){if(x){u(s=>({...s,[e]:a})),m.clear();try{const s=await c(x._id,e,a);p(s);const t=r.find(a=>a.slug===e),i=t?.name||n("features.fallbackName");m.show(n("features.updateSuccess",{feature:i,enabled:String(a)}))}catch(a){t.handleError(a,{component:"WorkspaceSettingsFeatures",action:"updateFeature",metadata:{workspaceId:x._id,featureKey:e}})}finally{u(a=>({...a,[e]:null}))}}}(s.slug,e)})]},s._id)})})]})]})},E=({workspace:i})=>{const{t:o}=t.useTranslation(),{visible:l}=t.useUIVisibility(),d=l(e=>e.settings?.general?.nameEdit),u=l(e=>e.settings?.general?.iconEditor),{updateWorkspace:m}=t.useSaaSWorkspaces(),{can:x}=t.usePermissions(),[p,g]=s.useState(!1),[f,b]=s.useState("emoji"),[h,j]=s.useState(),N=w(),A=c.z.object({name:c.z.string().min(2,{message:o("general.nameMinLength")}),image:c.z.string().optional()}),C=r.useForm({resolver:n.zodResolver(A),defaultValues:{name:i.name||"",image:i.image||""}});if(!i)return e.jsx(v,{});const T=x(t.Permission.WORKSPACE_SETTINGS_EDIT);return e.jsxs("div",{children:[N.message&&e.jsx(t.StatusBanner,{variant:"success",title:o("settings.common.success"),message:N.message,className:"mb-4"}),!T&&e.jsx(S,{descriptionKey:"general.ownerOnly"}),e.jsx(t.Form,{...C,children:e.jsxs("form",{onSubmit:C.handleSubmit(async function(e){g(!0),N.clear();try{await m(i,e),N.show(o("general.success"))}catch(e){t.handleError(e,{component:"WorkspaceSettingsGeneral",action:"updateWorkspace",metadata:{workspaceId:i._id}})}finally{g(!1)}}),className:"space-y-6",children:[d&&e.jsx(t.FormField,{control:C.control,name:"name",render:({field:a})=>e.jsxs(t.FormItem,{children:[e.jsx(t.FormLabel,{children:o("general.name")}),e.jsx(t.FormControl,{children:e.jsx(t.Input,{placeholder:o("general.namePlaceholder"),...a,disabled:!T})}),e.jsx(t.FormMessage,{})]})}),i.billingCurrency?.trim()&&e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(t.Label,{className:"text-sm font-medium text-muted-foreground",children:o("general.billingCurrency")}),e.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[t.getCurrencyFlag(i.billingCurrency)&&e.jsx("span",{className:"text-base",children:t.getCurrencyFlag(i.billingCurrency)}),e.jsx("span",{children:i.billingCurrency.trim().toUpperCase()})]})]}),u&&e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx(t.Label,{className:"text-sm font-medium",children:o("general.icon")}),e.jsx(t.FormDescription,{children:o("general.iconDescription")})]}),e.jsxs(t.RadioGroup,{value:f,disabled:!T,onValueChange:e=>b(e),className:"flex flex-col space-y-3",children:[e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(t.RadioGroupItem,{value:"emoji",id:"emoji"}),e.jsxs(t.Label,{htmlFor:"emoji",className:"flex items-center gap-2",children:[e.jsx(a.Smile,{className:"h-4 w-4"}),o("general.chooseEmoji")]})]}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(t.RadioGroupItem,{value:"url",id:"url"}),e.jsxs(t.Label,{htmlFor:"url",className:"flex items-center gap-2",children:[e.jsx(a.ImageIcon,{className:"h-4 w-4"}),o("general.customImageUrl")]})]})]}),"emoji"===f&&e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("span",{className:"text-sm font-medium",children:o("general.previewLabel")}),e.jsxs("div",{className:"w-12 h-12 rounded-lg border-2 border-border flex items-center justify-center text-2xl bg-muted",children:[h&&e.jsx("span",{className:"text-2xl",children:h}),!h&&C.watch("image")?.trim()&&e.jsx("img",{src:C.watch("image")||void 0,alt:o("general.previewImageAlt")})]})]}),T&&e.jsx(t.ScrollArea,{className:"h-32 w-full rounded-md border",children:e.jsx("div",{className:"p-4 grid grid-cols-8 gap-2",children:t.workspaceEmojis.map((a,s)=>e.jsx("button",{type:"button",onClick:()=>(e=>{j(e),C.setValue("image",t.getSvgImage(e))})(a),disabled:!T,"aria-label":a,"aria-pressed":h===a,className:"w-10 h-10 sm:w-8 sm:h-8 rounded flex items-center justify-center text-lg hover:bg-muted transition-colors "+(h===a?"bg-primary text-primary-foreground":""),children:a},s))})})]}),"url"===f&&e.jsxs("div",{className:"space-y-3",children:[e.jsx(t.FormField,{control:C.control,name:"image",render:({field:a})=>e.jsxs(t.FormItem,{children:[e.jsx(t.FormLabel,{children:o("general.imageUrl")}),e.jsx(t.FormControl,{children:e.jsx(t.Input,{placeholder:o("general.imageUrlPlaceholder"),...a,disabled:!T})}),e.jsx(t.FormDescription,{children:o("general.imageUrlDescription")}),e.jsx(t.FormMessage,{})]})}),C.watch("image")&&C.watch("image")?.trim()&&e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("span",{className:"text-sm font-medium",children:o("general.previewLabel")}),e.jsx("div",{className:"w-12 h-12 rounded-lg border-2 border-border overflow-hidden bg-muted",children:e.jsx("img",{src:C.watch("image")||void 0,className:"w-full h-full object-cover",alt:o("general.previewImageAlt")})})]})]})]}),e.jsx("div",{className:"flex justify-end gap-3 pt-4",children:T&&(d||u)&&e.jsx(t.Button,{type:"submit",disabled:p,progress:p,children:o("general.updateWorkspace")})})]})})]})};const P={firefox:4,safari:4,edge:4,chrome:4},D=({workspace:i})=>{const{isSupported:n,permission:r,isSubscribed:c,loading:o,error:l,subscribe:d,unsubscribe:u}=t.usePushNotifications(),{t:m}=t.useTranslation(),{api:x}=t.useWorkspaceApiWithOs(),{can:p}=t.usePermissions(),{visible:g}=t.useUIVisibility(),f=p(t.Permission.WORKSPACE_SETTINGS_EDIT),b=g(e=>e.settings?.notifications?.push),h=g(e=>e.settings?.notifications?.emailToggles),S=g(e=>e.settings?.notifications?.pushToggles),v=s.useMemo(()=>function(){const e="undefined"!=typeof navigator?navigator.userAgent:"";return e.includes("Firefox")?"firefox":e.includes("Safari")&&!e.includes("Chrome")?"safari":e.includes("Edg")?"edge":"chrome"}(),[]),j=P[v],[N,A]=s.useState([]),[C,T]=s.useState(!0),[w,k]=s.useState({}),[E,D]=s.useState(!0),[M,I]=s.useState(null),[U,B]=s.useState(null),R=s.useRef(null);s.useEffect(()=>()=>{R.current&&clearTimeout(R.current)},[]),s.useEffect(()=>{if(!i?._id)return;const e=i._id.toString();T(!0),D(!0),Promise.all([x.getNotificationEvents(e).catch(()=>[]),x.getNotificationPreferences(e).catch(()=>({}))]).then(([e,a])=>{A(e),k(a)}).finally(()=>{T(!1),D(!1)})},[i?._id]);const G=s.useCallback(async(e,a,s)=>{if(!i?._id||!f)return;const n=!s;I(`${e}.${a}`),B(null),k(s=>({...s,[e]:{...s[e],[a]:n}}));try{const s=await x.updateNotificationPreferences(i._id.toString(),{[e]:{[a]:n}});k(s),B(m("notifications.prefsSaved")),R.current&&clearTimeout(R.current),R.current=setTimeout(()=>B(null),3e3)}catch(i){k(t=>({...t,[e]:{...t[e],[a]:s}})),t.handleError(i,{component:"SettingsNotifications",action:"toggleChannel"})}finally{I(null)}},[i?._id,f,x,m]),L=(e,a)=>!1!==w[e]?.[a],K=s.useMemo(()=>{const e=new Map;for(const a of N){const s=a.category||"general";e.has(s)||e.set(s,[]),e.get(s).push(a)}return Array.from(e.entries())},[N]),_=C||E,F=N.length>0;return e.jsxs("div",{className:"space-y-4",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:m("notifications.manageDescription")}),b&&n&&e.jsxs(e.Fragment,{children:[l&&"denied"!==r&&e.jsx(t.StatusBanner,{variant:"error",message:l}),"denied"===r&&e.jsx("div",{className:"border border-warning/30 bg-warning/10 rounded-lg p-4",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(a.ShieldAlert,{className:"h-5 w-5 text-warning shrink-0 mt-0.5"}),e.jsxs("div",{children:[e.jsx("h4",{className:"text-sm font-medium text-warning",children:m("notifications.blocked")}),e.jsx("p",{className:"text-xs text-warning mt-1",children:m("notifications.blockedDescription")}),e.jsx("ol",{className:"text-xs text-warning mt-2 space-y-1 list-decimal list-inside",children:Array.from({length:j},(a,s)=>e.jsx("li",{children:m(`notifications.unblock.${v}.step${s+1}`)},s))})]})]})}),"denied"!==r&&e.jsxs("div",{className:"border rounded-lg p-4",children:[e.jsxs("div",{className:"flex items-start justify-between gap-4",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"mt-0.5 p-2 rounded-lg "+(c?"bg-success/15":"bg-muted"),children:c?e.jsx(a.Bell,{className:"h-4 w-4 text-success"}):e.jsx(a.BellOff,{className:"h-4 w-4 text-muted-foreground/70"})}),e.jsxs("div",{children:[e.jsx("h4",{className:"text-sm font-medium text-foreground",children:m("notifications.pushTitle")}),e.jsx("p",{className:"text-xs text-muted-foreground mt-0.5",children:m("notifications.pushDescription",{subscribed:String(c)})})]})]}),e.jsx(t.Button,{variant:c?"outline":"default",size:"sm",className:"shrink-0",onClick:c?u:d,disabled:o,progress:o,children:m("notifications.toggleAction",{loading:String(o),subscribed:String(c)})})]}),c&&e.jsx("div",{className:"mt-3 pt-3 border-t border-border/60 text-xs text-muted-foreground",children:m("notifications.deviceNote")})]})]}),_&&e.jsx("div",{className:"text-center text-sm text-muted-foreground/70 py-4",children:m("notifications.loadingPrefs")}),!_&&F&&f&&(h||S)&&e.jsxs(e.Fragment,{children:[U&&e.jsx(t.StatusBanner,{variant:"success",message:U}),K.map(([s,t])=>e.jsxs("div",{className:"border rounded-lg overflow-hidden",children:[e.jsx("div",{className:"bg-muted/50 px-4 py-2.5 border-b",children:e.jsx("h4",{className:"text-sm font-medium text-foreground capitalize",children:s})}),e.jsxs("div",{className:"divide-y",children:[e.jsxs("div",{className:"flex items-center px-4 py-2 bg-muted/30",children:[e.jsx("div",{className:"flex-1"}),e.jsxs("div",{className:"flex items-center gap-6",children:[h&&e.jsx("div",{className:"w-12 flex justify-center",children:e.jsx(a.Mail,{className:"h-3.5 w-3.5 text-muted-foreground/70"})}),S&&e.jsx("div",{className:"w-12 flex justify-center",children:e.jsx(a.Smartphone,{className:"h-3.5 w-3.5 text-muted-foreground/70"})})]})]}),t.map(a=>{const s=L(a.slug,"email"),t=L(a.slug,"push"),i=M===`${a.slug}.email`,n=M===`${a.slug}.push`;return e.jsxs("div",{className:"flex items-center px-4 py-3",children:[e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("div",{className:"text-sm font-medium text-foreground",children:a.name}),a.description&&e.jsx("div",{className:"text-xs text-muted-foreground mt-0.5",children:a.description})]}),e.jsxs("div",{className:"flex items-center gap-6 shrink-0",children:[h&&e.jsx("div",{className:"w-12 flex justify-center",children:a.channels.email?e.jsx(y,{checked:s,onCheckedChange:()=>G(a.slug,"email",s),disabled:i}):e.jsx("span",{className:"text-xs text-muted-foreground/50",children:"—"})}),S&&e.jsx("div",{className:"w-12 flex justify-center",children:a.channels.push?e.jsx(y,{checked:t,onCheckedChange:()=>G(a.slug,"push",t),disabled:n}):e.jsx("span",{className:"text-xs text-muted-foreground/50",children:"—"})})]})]},a.slug)})]})]},s))]})]})},M=({workspace:a})=>{const{t:i}=t.useTranslation(),{isOwner:n}=t.usePermissions(),{settings:r}=t.useSaaSSettings(),{appPermissions:c}=t.usePermissionConfig(),{updateWorkspacePermissions:o}=t.useSaaSWorkspaces(),[l,d]=s.useState(!1),u=w(),m=s.useMemo(()=>r?.workspace?.roles??a.roles??[],[r?.workspace?.roles,a.roles]),x=s.useMemo(()=>{if(!c)return[];const e=new Set;for(const a of Object.values(c))for(const s of a)s.startsWith("workspace:")||e.add(s);return Array.from(e).sort()},[c]),[p,g]=s.useState({});if(s.useEffect(()=>{if(!c)return;const e=a.permissions,s={};for(const a of m)s[a]=e&&a in e?e[a].filter(e=>!e.startsWith("workspace:")):a in c?c[a].filter(e=>!e.startsWith("workspace:")):[];g(s)},[a.permissions,c,m]),!a)return e.jsx(v,{});if(!c||0===x.length)return null;return e.jsxs("div",{children:[u.message&&e.jsx(t.StatusBanner,{variant:"success",title:i("settings.common.success"),message:u.message,className:"mb-4"}),!n&&e.jsx(S,{descriptionKey:"permissions.ownerOnly"}),e.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:i("permissions.description")}),e.jsx("div",{className:"overflow-x-auto",children:e.jsxs("table",{className:"w-full text-sm",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-b",children:[e.jsx("th",{className:"text-start py-2 pe-4 font-medium text-muted-foreground min-w-[160px]"}),m.map(a=>e.jsx("th",{className:"text-center py-2 px-3 font-medium text-foreground capitalize min-w-[80px]",children:a},a))]})}),e.jsx("tbody",{children:x.map(a=>e.jsxs("tr",{className:"border-b border-border/40 hover:bg-muted/30",children:[e.jsx("td",{className:"py-2 pe-4 text-foreground font-mono text-xs",children:a}),m.map(s=>{const t="admin"===s,i=t||(p[s]??[]).includes(a);return e.jsx("td",{className:"text-center py-2 px-3",children:e.jsx(y,{checked:i,disabled:!n||t,onCheckedChange:()=>((e,a)=>{g(s=>{const t=s[e]??[],i=t.includes(a);return{...s,[e]:i?t.filter(e=>e!==a):[...t,a]}})})(s,a),className:"mx-auto"})},s)})]},a))})]})}),n&&e.jsx("div",{className:"mt-6",children:e.jsx(t.Button,{onClick:async()=>{d(!0),u.clear();try{const e=a.permissions??{},s={},t=new Set([...Object.keys(e),...Object.keys(p)]);for(const a of t){const t=(e[a]??[]).filter(e=>e.startsWith("workspace:")),i=p[a]??[];s[a]=[...t,...i]}await o(a._id,s),u.show(i("permissions.saveSuccess"))}catch(e){t.handleError(e,{component:"WorkspaceSettingsPermissions",action:"savePermissions",metadata:{workspaceId:a._id}})}finally{d(!1)}},disabled:l,progress:l,children:i(l?"permissions.saving":"permissions.save")})})]})},I=x.forwardRef(({className:a,...s},i)=>e.jsx(l.Command,{ref:i,className:t.cn("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",a),...s}));I.displayName=l.Command.displayName;const U=x.forwardRef(({className:a,...s},i)=>e.jsxs("div",{className:"flex items-center border-b px-3","cmdk-input-wrapper":"",children:[e.jsx(o.MagnifyingGlassIcon,{className:"me-2 h-4 w-4 shrink-0 opacity-50"}),e.jsx(l.Command.Input,{ref:i,className:t.cn("flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",a),...s})]}));U.displayName=l.Command.Input.displayName;const B=x.forwardRef(({className:a,...s},i)=>e.jsx(l.Command.List,{ref:i,className:t.cn("max-h-[300px] overflow-y-auto overflow-x-hidden",a),...s}));B.displayName=l.Command.List.displayName;const R=x.forwardRef((a,s)=>e.jsx(l.Command.Empty,{ref:s,className:"py-6 text-center text-sm",...a}));R.displayName=l.Command.Empty.displayName;const G=x.forwardRef(({className:a,...s},i)=>e.jsx(l.Command.Group,{ref:i,className:t.cn("overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",a),...s}));G.displayName=l.Command.Group.displayName;x.forwardRef(({className:a,...s},i)=>e.jsx(l.Command.Separator,{ref:i,className:t.cn("-mx-1 h-px bg-border",a),...s})).displayName=l.Command.Separator.displayName;const L=x.forwardRef(({className:a,...s},i)=>e.jsx(l.Command.Item,{ref:i,className:t.cn("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none aria-selected:bg-accent aria-selected:text-accent-foreground data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50",a),...s}));L.displayName=l.Command.Item.displayName;const K=g.Root,_=g.Trigger,F=x.forwardRef(({className:a,align:s="center",sideOffset:i=4,...n},r)=>{const{container:c}=x.useContext(t.PortalContext);return e.jsx(g.Portal,{container:c,children:e.jsx(g.Content,{ref:r,align:s,sideOffset:i,className:t.cn("z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",a),...n})})});function O({options:i,value:n,onChange:r,placeholder:c,emptyLabel:o}){const{t:l}=t.useTranslation(),d=c??l("dropdowns.search"),u=o??l("dropdowns.chooseOption"),[m,x]=s.useState(n??""),[p,g]=s.useState(!1);s.useEffect(()=>{void 0!==n&&x(n)},[n]);const f=i.find(e=>e.value===m);return e.jsxs(K,{open:p,onOpenChange:g,children:[e.jsx(_,{asChild:!0,children:e.jsxs(t.Button,{variant:"outline",role:"combobox","aria-expanded":p,className:"h-10 sm:h-9 w-full justify-between rounded-md border-input bg-transparent px-3 py-1 text-base sm:text-sm font-normal shadow-sm hover:bg-transparent",children:[f?e.jsxs("div",{className:"truncate",children:[String(f.label).trim(),f.icon&&e.jsx("span",{className:"ms-2 text-xs text-muted-foreground",children:f.icon})]}):e.jsx("span",{className:"text-muted-foreground",children:u}),e.jsx(a.ChevronsUpDown,{className:"ms-2 h-4 w-4 shrink-0 opacity-50"})]})}),e.jsx(F,{className:"p-0 overflow-hidden text-ellipsis",asChild:!0,children:e.jsxs(I,{children:[e.jsx(U,{placeholder:d}),e.jsxs(B,{children:[e.jsx(R,{children:l("dropdowns.noResults")}),e.jsx(G,{children:i.map(s=>e.jsxs(L,{className:t.cn("whitespace-nowrap text-start",{"text-success":m===s.value}),value:s.value,keywords:[s.label],onSelect:()=>{return e=s.value,x(e),r?.(e),void g(!1);var e},children:[m===s.value&&e.jsx(a.CheckCheck,{className:t.cn("me-2 h-4 w-4 text-success",m===s.value?"opacity-100":"opacity-0")}),String(s.label).trim(),s.icon&&e.jsx("span",{className:"ms-2 text-xs text-muted-foreground",children:s.icon})]},s.value))})]})]})})]})}F.displayName=g.Content.displayName;const W={USD:"$",EUR:"€",JPY:"¥",GBP:"£",AUD:"A$",CAD:"C$",CHF:"CHF",CNY:"¥",SEK:"kr",NZD:"NZ$",INR:"₹",RUB:"₽",KRW:"₩",BRL:"R$",ZAR:"R",HKD:"HK$",SGD:"S$",MXN:"Mex$",NOK:"kr",TRY:"₺",IDR:"Rp",PLN:"zł",THB:"฿",ILS:"₪",PHP:"₱",MYR:"RM",CZK:"Kč",HUF:"Ft",DKK:"kr",PKR:"₨",EGP:"£",NGN:"₦",BDT:"৳",UAH:"₴",KZT:"₸",VND:"₫",ARS:"$",BGN:"лв",COP:"COL$",HRK:"kn",ISK:"kr",KES:"KSh",LKR:"Rs",MAD:"د.م.",MNT:"₮",NPR:"रू",RSD:"дин.",SAR:"ر.س",TWD:"NT$",UYU:"$U",YER:"﷼",FJD:"FJ$",JMD:"J$",HTG:"G",BHD:"ب.د",KWD:"د.ك",OMR:"ر.ع.",BND:"B$",KPW:"₩",GHS:"₵",SYP:"ل.س",SLL:"Le",SSP:"£",AFN:"؋",MGA:"Ar",MDL:"lei",FOK:"kr",GMD:"D",LTL:"Lt",LVL:"Ls",HNL:"L",GEL:"₾",BMD:"$",AWG:"Afl",BTN:"Nu",GTQ:"Q",TZS:"TSh",BBD:"Bds$",NAD:"N$",BZD:"$",JEP:"£",WST:"T",PGK:"K",KGS:"лв",AZN:"₼",QAR:"ر.ق",XOF:"CFA",XPF:"CFP"},V={AF:"AFN",AX:"EUR",AL:"ALL",DZ:"DZD",AS:"USD",AD:"EUR",AO:"AOA",AI:"XCD",AQ:"USD",AG:"XCD",AR:"ARS",AM:"AMD",AW:"AWG",AU:"AUD",AT:"EUR",AZ:"AZN",BS:"BSD",BH:"BHD",BD:"BDT",BB:"BBD",BY:"BYN",BE:"EUR",BZ:"BZD",BJ:"XOF",BM:"BMD",BT:"BTN",BO:"BOB",BA:"BAM",BW:"BWP",BV:"NOK",BR:"BRL",IO:"USD",BN:"BND",BG:"BGN",BF:"XOF",BI:"BIF",KH:"KHR",CM:"XAF",CA:"CAD",CV:"CVE",KY:"KYD",CF:"XAF",TD:"XAF",CL:"CLP",CN:"CNY",CX:"AUD",CC:"AUD",CO:"COP",KM:"KMF",CG:"XAF",CD:"CDF",CK:"NZD",CR:"CRC",CI:"XOF",HR:"HRK",CU:"CUP",CY:"EUR",CZ:"CZK",DK:"DKK",DJ:"DJF",DM:"XCD",DO:"DOP",EC:"USD",EG:"EGP",SV:"USD",GQ:"XAF",ER:"ERN",EE:"EUR",ET:"ETB",FK:"FKP",FO:"DKK",FJ:"FJD",FI:"EUR",FR:"EUR",GF:"EUR",PF:"XPF",TF:"EUR",GA:"XAF",GM:"GMD",GE:"GEL",DE:"EUR",GH:"GHS",GI:"GIP",GR:"EUR",GL:"DKK",GD:"XCD",GP:"EUR",GU:"USD",GT:"GTQ",GG:"GBP",GN:"GNF",GW:"XOF",GY:"GYD",HT:"HTG",HM:"AUD",VA:"EUR",HN:"HNL",HK:"HKD",HU:"HUF",IS:"ISK",IN:"INR",ID:"IDR",IR:"IRR",IQ:"IQD",IE:"EUR",IM:"GBP",IL:"ILS",IT:"EUR",JM:"JMD",JP:"JPY",JE:"GBP",JO:"JOD",KZ:"KZT",KE:"KES",KI:"AUD",KP:"KPW",KR:"KRW",KW:"KWD",KG:"KGS",LA:"LAK",LV:"EUR",LB:"LBP",LS:"LSL",LR:"LRD",LY:"LYD",LI:"CHF",LT:"EUR",LU:"EUR",MO:"MOP",MK:"MKD",MG:"MGA",MW:"MWK",MY:"MYR",MV:"MVR",ML:"XOF",MT:"EUR",MH:"USD",MQ:"EUR",MR:"MRU",MU:"MUR",YT:"EUR",MX:"MXN",FM:"USD",MD:"MDL",MC:"EUR",MN:"MNT",ME:"EUR",MS:"XCD",MA:"MAD",MZ:"MZN",MM:"MMK",NA:"NAD",NR:"AUD",NP:"NPR",NL:"EUR",AN:"ANG",NC:"XPF",NZ:"NZD",NI:"NIO",NE:"XOF",NG:"NGN",NU:"NZD",NF:"AUD",MP:"USD",NO:"NOK",OM:"OMR",PK:"PKR",PW:"USD",PS:"ILS",PA:"PAB",PG:"PGK",PY:"PYG",PE:"PEN",PH:"PHP",PN:"NZD",PL:"PLN",PT:"EUR",PR:"USD",QA:"QAR",RE:"EUR",RO:"RON",RU:"RUB",RW:"RWF",SH:"SHP",KN:"XCD",LC:"XCD",PM:"EUR",VC:"XCD",WS:"WST",SM:"EUR",ST:"STN",SA:"SAR",SN:"XOF",RS:"RSD",SC:"SCR",SL:"SLL",SG:"SGD",SK:"EUR",SI:"EUR",SB:"SBD",SO:"SOS",ZA:"ZAR",GS:"GBP",ES:"EUR",LK:"LKR",SD:"SDG",SR:"SRD",SJ:"NOK",SZ:"SZL",SE:"SEK",CH:"CHF",SY:"SYP",TW:"TWD",TJ:"TJS",TZ:"TZS",TH:"THB"},z=[{name:"Afghanistan",code:"AF"},{name:"land Islands",code:"AX"},{name:"Albania",code:"AL"},{name:"Algeria",code:"DZ"},{name:"American Samoa",code:"AS"},{name:"AndorrA",code:"AD"},{name:"Angola",code:"AO"},{name:"Anguilla",code:"AI"},{name:"Antarctica",code:"AQ"},{name:"Antigua and Barbuda",code:"AG"},{name:"Argentina",code:"AR"},{name:"Armenia",code:"AM"},{name:"Aruba",code:"AW"},{name:"Australia",code:"AU"},{name:"Austria",code:"AT"},{name:"Azerbaijan",code:"AZ"},{name:"Bahamas",code:"BS"},{name:"Bahrain",code:"BH"},{name:"Bangladesh",code:"BD"},{name:"Barbados",code:"BB"},{name:"Belarus",code:"BY"},{name:"Belgium",code:"BE"},{name:"Belize",code:"BZ"},{name:"Benin",code:"BJ"},{name:"Bermuda",code:"BM"},{name:"Bhutan",code:"BT"},{name:"Bolivia",code:"BO"},{name:"Bosnia and Herzegovina",code:"BA"},{name:"Botswana",code:"BW"},{name:"Bouvet Island",code:"BV"},{name:"Brazil",code:"BR"},{name:"British Indian Ocean Territory",code:"IO"},{name:"Brunei Darussalam",code:"BN"},{name:"Bulgaria",code:"BG"},{name:"Burkina Faso",code:"BF"},{name:"Burundi",code:"BI"},{name:"Cambodia",code:"KH"},{name:"Cameroon",code:"CM"},{name:"Canada",code:"CA"},{name:"Cape Verde",code:"CV"},{name:"Cayman Islands",code:"KY"},{name:"Central African Republic",code:"CF"},{name:"Chad",code:"TD"},{name:"Chile",code:"CL"},{name:"China",code:"CN"},{name:"Christmas Island",code:"CX"},{name:"Cocos (Keeling) Islands",code:"CC"},{name:"Colombia",code:"CO"},{name:"Comoros",code:"KM"},{name:"Congo",code:"CG"},{name:"Congo, The Democratic Republic of the",code:"CD"},{name:"Cook Islands",code:"CK"},{name:"Costa Rica",code:"CR"},{name:"Cote D Ivoire",code:"CI"},{name:"Croatia",code:"HR"},{name:"Cuba",code:"CU"},{name:"Cyprus",code:"CY"},{name:"Czech Republic",code:"CZ"},{name:"Denmark",code:"DK"},{name:"Djibouti",code:"DJ"},{name:"Dominica",code:"DM"},{name:"Dominican Republic",code:"DO"},{name:"Ecuador",code:"EC"},{name:"Egypt",code:"EG"},{name:"El Salvador",code:"SV"},{name:"Equatorial Guinea",code:"GQ"},{name:"Eritrea",code:"ER"},{name:"Estonia",code:"EE"},{name:"Ethiopia",code:"ET"},{name:"Falkland Islands (Malvinas)",code:"FK"},{name:"Faroe Islands",code:"FO"},{name:"Fiji",code:"FJ"},{name:"Finland",code:"FI"},{name:"France",code:"FR"},{name:"French Guiana",code:"GF"},{name:"French Polynesia",code:"PF"},{name:"French Southern Territories",code:"TF"},{name:"Gabon",code:"GA"},{name:"Gambia",code:"GM"},{name:"Georgia",code:"GE"},{name:"Germany",code:"DE"},{name:"Ghana",code:"GH"},{name:"Gibraltar",code:"GI"},{name:"Greece",code:"GR"},{name:"Greenland",code:"GL"},{name:"Grenada",code:"GD"},{name:"Guadeloupe",code:"GP"},{name:"Guam",code:"GU"},{name:"Guatemala",code:"GT"},{name:"Guernsey",code:"GG"},{name:"Guinea",code:"GN"},{name:"Guinea-Bissau",code:"GW"},{name:"Guyana",code:"GY"},{name:"Haiti",code:"HT"},{name:"Heard Island and Mcdonald Islands",code:"HM"},{name:"Holy See (Vatican City State)",code:"VA"},{name:"Honduras",code:"HN"},{name:"Hong Kong",code:"HK"},{name:"Hungary",code:"HU"},{name:"Iceland",code:"IS"},{name:"India",code:"IN"},{name:"Indonesia",code:"ID"},{name:"Iran, Islamic Republic Of",code:"IR"},{name:"Iraq",code:"IQ"},{name:"Ireland",code:"IE"},{name:"Isle of Man",code:"IM"},{name:"Israel",code:"IL"},{name:"Italy",code:"IT"},{name:"Jamaica",code:"JM"},{name:"Japan",code:"JP"},{name:"Jersey",code:"JE"},{name:"Jordan",code:"JO"},{name:"Kazakhstan",code:"KZ"},{name:"Kenya",code:"KE"},{name:"Kiribati",code:"KI"},{name:'Korea, Democratic People"S Republic of',code:"KP"},{name:"Korea, Republic of",code:"KR"},{name:"Kuwait",code:"KW"},{name:"Kyrgyzstan",code:"KG"},{name:'Lao People"S Democratic Republic',code:"LA"},{name:"Latvia",code:"LV"},{name:"Lebanon",code:"LB"},{name:"Lesotho",code:"LS"},{name:"Liberia",code:"LR"},{name:"Libyan Arab Jamahiriya",code:"LY"},{name:"Liechtenstein",code:"LI"},{name:"Lithuania",code:"LT"},{name:"Luxembourg",code:"LU"},{name:"Macao",code:"MO"},{name:"Macedonia, The Former Yugoslav Republic of",code:"MK"},{name:"Madagascar",code:"MG"},{name:"Malawi",code:"MW"},{name:"Malaysia",code:"MY"},{name:"Maldives",code:"MV"},{name:"Mali",code:"ML"},{name:"Malta",code:"MT"},{name:"Marshall Islands",code:"MH"},{name:"Martinique",code:"MQ"},{name:"Mauritania",code:"MR"},{name:"Mauritius",code:"MU"},{name:"Mayotte",code:"YT"},{name:"Mexico",code:"MX"},{name:"Micronesia, Federated States of",code:"FM"},{name:"Moldova, Republic of",code:"MD"},{name:"Monaco",code:"MC"},{name:"Mongolia",code:"MN"},{name:"Montenegro",code:"ME"},{name:"Montserrat",code:"MS"},{name:"Morocco",code:"MA"},{name:"Mozambique",code:"MZ"},{name:"Myanmar",code:"MM"},{name:"Namibia",code:"NA"},{name:"Nauru",code:"NR"},{name:"Nepal",code:"NP"},{name:"Netherlands",code:"NL"},{name:"Netherlands Antilles",code:"AN"},{name:"New Caledonia",code:"NC"},{name:"New Zealand",code:"NZ"},{name:"Nicaragua",code:"NI"},{name:"Niger",code:"NE"},{name:"Nigeria",code:"NG"},{name:"Niue",code:"NU"},{name:"Norfolk Island",code:"NF"},{name:"Northern Mariana Islands",code:"MP"},{name:"Norway",code:"NO"},{name:"Oman",code:"OM"},{name:"Pakistan",code:"PK"},{name:"Palau",code:"PW"},{name:"Palestinian Territory, Occupied",code:"PS"},{name:"Panama",code:"PA"},{name:"Papua New Guinea",code:"PG"},{name:"Paraguay",code:"PY"},{name:"Peru",code:"PE"},{name:"Philippines",code:"PH"},{name:"Pitcairn",code:"PN"},{name:"Poland",code:"PL"},{name:"Portugal",code:"PT"},{name:"Puerto Rico",code:"PR"},{name:"Qatar",code:"QA"},{name:"Reunion",code:"RE"},{name:"Romania",code:"RO"},{name:"Russian Federation",code:"RU"},{name:"RWANDA",code:"RW"},{name:"Saint Helena",code:"SH"},{name:"Saint Kitts and Nevis",code:"KN"},{name:"Saint Lucia",code:"LC"},{name:"Saint Pierre and Miquelon",code:"PM"},{name:"Saint Vincent and the Grenadines",code:"VC"},{name:"Samoa",code:"WS"},{name:"San Marino",code:"SM"},{name:"Sao Tome and Principe",code:"ST"},{name:"Saudi Arabia",code:"SA"},{name:"Senegal",code:"SN"},{name:"Serbia",code:"RS"},{name:"Seychelles",code:"SC"},{name:"Sierra Leone",code:"SL"},{name:"Singapore",code:"SG"},{name:"Slovakia",code:"SK"},{name:"Slovenia",code:"SI"},{name:"Solomon Islands",code:"SB"},{name:"Somalia",code:"SO"},{name:"South Africa",code:"ZA"},{name:"South Georgia and the South Sandwich Islands",code:"GS"},{name:"Spain",code:"ES"},{name:"Sri Lanka",code:"LK"},{name:"Sudan",code:"SD"},{name:"Suriname",code:"SR"},{name:"Svalbard and Jan Mayen",code:"SJ"},{name:"Swaziland",code:"SZ"},{name:"Sweden",code:"SE"},{name:"Switzerland",code:"CH"},{name:"Syrian Arab Republic",code:"SY"},{name:"Taiwan, Province of China",code:"TW"},{name:"Tajikistan",code:"TJ"},{name:"Tanzania, United Republic of",code:"TZ"},{name:"Thailand",code:"TH"},{name:"Timor-Leste",code:"TL"},{name:"Togo",code:"TG"},{name:"Tokelau",code:"TK"},{name:"Tonga",code:"TO"},{name:"Trinidad and Tobago",code:"TT"},{name:"Tunisia",code:"TN"},{name:"Turkey",code:"TR"},{name:"Turkmenistan",code:"TM"},{name:"Turks and Caicos Islands",code:"TC"},{name:"Tuvalu",code:"TV"},{name:"Uganda",code:"UG"},{name:"Ukraine",code:"UA"},{name:"United Arab Emirates",code:"AE"},{name:"United Kingdom",code:"GB"},{name:"United States",code:"US"},{name:"United States Minor Outlying Islands",code:"UM"},{name:"Uruguay",code:"UY"},{name:"Uzbekistan",code:"UZ"},{name:"Vanuatu",code:"VU"},{name:"Venezuela",code:"VE"},{name:"Viet Nam",code:"VN"},{name:"Virgin Islands, British",code:"VG"},{name:"Virgin Islands, U.S.",code:"VI"},{name:"Wallis and Futuna",code:"WF"},{name:"Western Sahara",code:"EH"},{name:"Yemen",code:"YE"},{name:"Zambia",code:"ZM"},{name:"Zimbabwe",code:"ZW"}].map(e=>{const a=V[e.code]||"USD",s=W[a]||"";return{value:e.code,flag:(t=e.code,t.toUpperCase().replace(/./g,e=>String.fromCodePoint(127397+e.charCodeAt(0)))),text:e.name,currencyCode:a,currencyIcon:s};var t});function H({value:a,onChange:s}){const{t:i}=t.useTranslation(),n=z.map(e=>({value:e.value,label:e.text,icon:e.flag}));return e.jsx(O,{options:n,value:a,onChange:s,placeholder:i("dropdowns.searchCountry"),emptyLabel:i("dropdowns.chooseCountry")})}const J=z.map(e=>({value:e.currencyCode,text:e.currencyCode,icon:e.currencyIcon??null})),Y=Array.from(new Set(J.map(e=>e.value))).map(e=>J.find(a=>a.value===e)).filter(e=>void 0!==e);function Z({value:a,onChange:s}){const{t:i}=t.useTranslation(),n=Y.map(e=>({value:e.value,label:e.text,icon:e.icon??void 0}));return e.jsx(O,{options:n,value:a,onChange:s,placeholder:i("dropdowns.searchCurrency"),emptyLabel:i("dropdowns.chooseCurrency")})}let q=[{code:"en",label:"English",flag:"🇬🇧"},{code:"en-GB",label:"English (United Kingdom)",flag:"🇬🇧"},{code:"en-US",label:"English (United States)",flag:"🇺🇸"},{code:"en-AU",label:"English (Australia)",flag:"🇦🇺"},{code:"en-CA",label:"English (Canada)",flag:"🇨🇦"},{code:"en-NZ",label:"English (New Zealand)",flag:"🇳🇿"},{code:"es",label:"Spanish",flag:"🇪🇸"},{code:"es-ES",label:"Spanish (Spain)",flag:"🇪🇸"},{code:"es-MX",label:"Spanish (Mexico)",flag:"🇲🇽"},{code:"fr",label:"French",flag:"🇫🇷"},{code:"fr-FR",label:"French (France)",flag:"🇫🇷"},{code:"de",label:"German",flag:"🇩🇪"},{code:"de-DE",label:"German (Germany)",flag:"🇩🇪"},{code:"it",label:"Italian",flag:"🇮🇹"},{code:"it-IT",label:"Italian (Italy)",flag:"🇮🇹"},{code:"pt",label:"Portuguese",flag:"🇵🇹"},{code:"pt-PT",label:"Portuguese (Portugal)",flag:"🇵🇹"},{code:"pt-BR",label:"Portuguese (Brazil)",flag:"🇧🇷"},{code:"ru",label:"Russian",flag:"🇷🇺"},{code:"ru-RU",label:"Russian (Russia)",flag:"🇷🇺"},{code:"zh",label:"Chinese",flag:"🇨🇳"},{code:"zh-CN",label:"Chinese (Simplified)",flag:"🇨🇳"},{code:"zh-TW",label:"Chinese (Traditional)",flag:"🇹🇼"},{code:"ja",label:"Japanese",flag:"🇯🇵"},{code:"ja-JP",label:"Japanese (Japan)",flag:"🇯🇵"},{code:"ko",label:"Korean",flag:"🇰🇷"},{code:"ko-KR",label:"Korean (South Korea)",flag:"🇰🇷"},{code:"ar",label:"Arabic",flag:"🇸🇦"},{code:"ar-SA",label:"Arabic (Saudi Arabia)",flag:"🇸🇦"},{code:"hi",label:"Hindi",flag:"🇮🇳"},{code:"hi-IN",label:"Hindi (India)",flag:"🇮🇳"},{code:"bn",label:"Bengali",flag:"🇮🇳"},{code:"bn-IN",label:"Bengali (India)",flag:"🇮🇳"},{code:"gu",label:"Gujarati",flag:"🇮🇳"},{code:"gu-IN",label:"Gujarati (India)",flag:"🇮🇳"},{code:"ta",label:"Tamil",flag:"🇮🇳"},{code:"ta-IN",label:"Tamil (India)",flag:"🇮🇳"},{code:"te",label:"Telugu",flag:"🇮🇳"},{code:"te-IN",label:"Telugu (India)",flag:"🇮🇳"},{code:"ml",label:"Malayalam",flag:"🇮🇳"},{code:"ml-IN",label:"Malayalam (India)",flag:"🇮🇳"},{code:"kn",label:"Kannada",flag:"🇮🇳"},{code:"kn-IN",label:"Kannada (India)",flag:"🇮🇳"},{code:"mr",label:"Marathi",flag:"🇮🇳"},{code:"mr-IN",label:"Marathi (India)",flag:"🇮🇳"},{code:"pa",label:"Punjabi",flag:"🇮🇳"},{code:"pa-IN",label:"Punjabi (India)",flag:"🇮🇳"},{code:"ur",label:"Urdu",flag:"🇮🇳"},{code:"ur-IN",label:"Urdu (India)",flag:"🇮🇳"},{code:"or",label:"Odia",flag:"🇮🇳"},{code:"or-IN",label:"Odia (India)",flag:"🇮🇳"},{code:"as",label:"Assamese",flag:"🇮🇳"},{code:"as-IN",label:"Assamese (India)",flag:"🇮🇳"},{code:"zh-HK",label:"Chinese (Hong Kong)",flag:"🇭🇰"},{code:"nl",label:"Dutch",flag:"🇳🇱"},{code:"nl-NL",label:"Dutch (Netherlands)",flag:"🇳🇱"},{code:"pl",label:"Polish",flag:"🇵🇱"},{code:"pl-PL",label:"Polish (Poland)",flag:"🇵🇱"},{code:"sv",label:"Swedish",flag:"🇸🇪"},{code:"sv-SE",label:"Swedish (Sweden)",flag:"🇸🇪"},{code:"da",label:"Danish",flag:"🇩🇰"},{code:"da-DK",label:"Danish (Denmark)",flag:"🇩🇰"},{code:"no",label:"Norwegian",flag:"🇳🇴"},{code:"no-NO",label:"Norwegian (Norway)",flag:"🇳🇴"},{code:"fi",label:"Finnish",flag:"🇫🇮"},{code:"fi-FI",label:"Finnish (Finland)",flag:"🇫🇮"},{code:"tr",label:"Turkish",flag:"🇹🇷"},{code:"tr-TR",label:"Turkish (Turkey)",flag:"🇹🇷"},{code:"cs",label:"Czech",flag:"🇨🇿"},{code:"cs-CZ",label:"Czech (Czech Republic)",flag:"🇨🇿"},{code:"sk",label:"Slovak",flag:"🇸🇰"},{code:"sk-SK",label:"Slovak (Slovakia)",flag:"🇸🇰"},{code:"hu",label:"Hungarian",flag:"🇭🇺"},{code:"hu-HU",label:"Hungarian (Hungary)",flag:"🇭🇺"},{code:"ro",label:"Romanian",flag:"🇷🇴"},{code:"ro-RO",label:"Romanian (Romania)",flag:"🇷🇴"},{code:"el",label:"Greek",flag:"🇬🇷"},{code:"el-GR",label:"Greek (Greece)",flag:"🇬🇷"},{code:"th",label:"Thai",flag:"🇹🇭"},{code:"th-TH",label:"Thai (Thailand)",flag:"🇹🇭"},{code:"id",label:"Indonesian",flag:"🇮🇩"},{code:"id-ID",label:"Indonesian (Indonesia)",flag:"🇮🇩"},{code:"ms",label:"Malay",flag:"🇲🇾"},{code:"ms-MY",label:"Malay (Malaysia)",flag:"🇲🇾"},{code:"vi",label:"Vietnamese",flag:"🇻🇳"},{code:"vi-VN",label:"Vietnamese (Vietnam)",flag:"🇻🇳"},{code:"he",label:"Hebrew",flag:"🇮🇱"},{code:"he-IL",label:"Hebrew (Israel)",flag:"🇮🇱"}];q=q.filter((e,a,s)=>a===s.findIndex(a=>a.code===e.code&&a.label===e.label)),q.sort((e,a)=>e.label<a.label?-1:e.label>a.label?1:0);const $=q.filter(e=>function(e){try{const a=new Intl.DateTimeFormat(e);return a.resolvedOptions().locale===e||a.resolvedOptions().locale.startsWith(e)}catch{return!1}}(e.code)).filter((e,a,s)=>a===s.findIndex(a=>a.code===e.code&&a.label===e.label)).map(e=>({value:e.code,label:e.label,flag:e.flag}));function X({value:a,onChange:s}){const{t:i}=t.useTranslation(),n=$.map(e=>({value:e.value,label:e.label,icon:e.flag}));return e.jsx(O,{options:n,value:a,onChange:s,placeholder:i("dropdowns.searchLanguage"),emptyLabel:i("dropdowns.chooseLanguage")})}const Q=[{value:"Dateline Standard Time",abbr:"DST",offset:-12,isdst:!1,text:"(UTC-12:00) International Date Line West",utc:["Etc/GMT+12"]},{value:"UTC-11",abbr:"U",offset:-11,isdst:!1,text:"(UTC-11:00) Coordinated Universal Time-11",utc:["Etc/GMT+11","Pacific/Midway","Pacific/Niue","Pacific/Pago_Pago"]},{value:"Hawaiian Standard Time",abbr:"HST",offset:-10,isdst:!1,text:"(UTC-10:00) Hawaii",utc:["Etc/GMT+10","Pacific/Honolulu","Pacific/Johnston","Pacific/Rarotonga","Pacific/Tahiti"]},{value:"Alaskan Standard Time",abbr:"AKDT",offset:-8,isdst:!0,text:"(UTC-09:00) Alaska",utc:["America/Anchorage","America/Juneau","America/Nome","America/Sitka","America/Yakutat"]},{value:"Pacific Standard Time (Mexico)",abbr:"PDT",offset:-7,isdst:!0,text:"(UTC-08:00) Baja California",utc:["America/Santa_Isabel"]},{value:"Pacific Daylight Time",abbr:"PDT",offset:-7,isdst:!0,text:"(UTC-07:00) Pacific Daylight Time (US & Canada)",utc:["America/Los_Angeles","America/Tijuana","America/Vancouver"]},{value:"Pacific Standard Time",abbr:"PST",offset:-8,isdst:!1,text:"(UTC-08:00) Pacific Standard Time (US & Canada)",utc:["America/Los_Angeles","America/Tijuana","America/Vancouver","PST8PDT"]},{value:"US Mountain Standard Time",abbr:"UMST",offset:-7,isdst:!1,text:"(UTC-07:00) Arizona",utc:["America/Creston","America/Dawson","America/Dawson_Creek","America/Hermosillo","America/Phoenix","America/Whitehorse","Etc/GMT+7"]},{value:"Mountain Standard Time (Mexico)",abbr:"MDT",offset:-6,isdst:!0,text:"(UTC-07:00) Chihuahua, La Paz, Mazatlan",utc:["America/Chihuahua","America/Mazatlan"]},{value:"Mountain Standard Time",abbr:"MDT",offset:-6,isdst:!0,text:"(UTC-07:00) Mountain Time (US & Canada)",utc:["America/Boise","America/Cambridge_Bay","America/Denver","America/Edmonton","America/Inuvik","America/Ojinaga","America/Yellowknife","MST7MDT"]},{value:"Central America Standard Time",abbr:"CAST",offset:-6,isdst:!1,text:"(UTC-06:00) Central America",utc:["America/Belize","America/Costa_Rica","America/El_Salvador","America/Guatemala","America/Managua","America/Tegucigalpa","Etc/GMT+6","Pacific/Galapagos"]},{value:"Central Standard Time",abbr:"CDT",offset:-5,isdst:!0,text:"(UTC-06:00) Central Time (US & Canada)",utc:["America/Chicago","America/Indiana/Knox","America/Indiana/Tell_City","America/Matamoros","America/Menominee","America/North_Dakota/Beulah","America/North_Dakota/Center","America/North_Dakota/New_Salem","America/Rainy_River","America/Rankin_Inlet","America/Resolute","America/Winnipeg","CST6CDT"]},{value:"Central Standard Time (Mexico)",abbr:"CDT",offset:-5,isdst:!0,text:"(UTC-06:00) Guadalajara, Mexico City, Monterrey",utc:["America/Bahia_Banderas","America/Cancun","America/Merida","America/Mexico_City","America/Monterrey"]},{value:"Canada Central Standard Time",abbr:"CCST",offset:-6,isdst:!1,text:"(UTC-06:00) Saskatchewan",utc:["America/Regina","America/Swift_Current"]},{value:"SA Pacific Standard Time",abbr:"SPST",offset:-5,isdst:!1,text:"(UTC-05:00) Bogota, Lima, Quito",utc:["America/Bogota","America/Cayman","America/Coral_Harbour","America/Eirunepe","America/Guayaquil","America/Jamaica","America/Lima","America/Panama","America/Rio_Branco","Etc/GMT+5"]},{value:"Eastern Standard Time",abbr:"EST",offset:-5,isdst:!1,text:"(UTC-05:00) Eastern Time (US & Canada)",utc:["America/Detroit","America/Havana","America/Indiana/Petersburg","America/Indiana/Vincennes","America/Indiana/Winamac","America/Iqaluit","America/Kentucky/Monticello","America/Louisville","America/Montreal","America/Nassau","America/New_York","America/Nipigon","America/Pangnirtung","America/Port-au-Prince","America/Thunder_Bay","America/Toronto"]},{value:"Eastern Daylight Time",abbr:"EDT",offset:-4,isdst:!0,text:"(UTC-04:00) Eastern Daylight Time (US & Canada)",utc:["America/Detroit","America/Havana","America/Indiana/Petersburg","America/Indiana/Vincennes","America/Indiana/Winamac","America/Iqaluit","America/Kentucky/Monticello","America/Louisville","America/Montreal","America/Nassau","America/New_York","America/Nipigon","America/Pangnirtung","America/Port-au-Prince","America/Thunder_Bay","America/Toronto"]},{value:"US Eastern Standard Time",abbr:"UEDT",offset:-5,isdst:!1,text:"(UTC-05:00) Indiana (East)",utc:["America/Indiana/Marengo","America/Indiana/Vevay","America/Indianapolis"]},{value:"Venezuela Standard Time",abbr:"VST",offset:-4.5,isdst:!1,text:"(UTC-04:30) Caracas",utc:["America/Caracas"]},{value:"Paraguay Standard Time",abbr:"PYT",offset:-4,isdst:!1,text:"(UTC-04:00) Asuncion",utc:["America/Asuncion"]},{value:"Atlantic Standard Time",abbr:"ADT",offset:-3,isdst:!0,text:"(UTC-04:00) Atlantic Time (Canada)",utc:["America/Glace_Bay","America/Goose_Bay","America/Halifax","America/Moncton","America/Thule","Atlantic/Bermuda"]},{value:"Central Brazilian Standard Time",abbr:"CBST",offset:-4,isdst:!1,text:"(UTC-04:00) Cuiaba",utc:["America/Campo_Grande","America/Cuiaba"]},{value:"SA Western Standard Time",abbr:"SWST",offset:-4,isdst:!1,text:"(UTC-04:00) Georgetown, La Paz, Manaus, San Juan",utc:["America/Anguilla","America/Antigua","America/Aruba","America/Barbados","America/Blanc-Sablon","America/Boa_Vista","America/Curacao","America/Dominica","America/Grand_Turk","America/Grenada","America/Guadeloupe","America/Guyana","America/Kralendijk","America/La_Paz","America/Lower_Princes","America/Manaus","America/Marigot","America/Martinique","America/Montserrat","America/Port_of_Spain","America/Porto_Velho","America/Puerto_Rico","America/Santo_Domingo","America/St_Barthelemy","America/St_Kitts","America/St_Lucia","America/St_Thomas","America/St_Vincent","America/Tortola","Etc/GMT+4"]},{value:"Pacific SA Standard Time",abbr:"PSST",offset:-4,isdst:!1,text:"(UTC-04:00) Santiago",utc:["America/Santiago","Antarctica/Palmer"]},{value:"Newfoundland Standard Time",abbr:"NDT",offset:-2.5,isdst:!0,text:"(UTC-03:30) Newfoundland",utc:["America/St_Johns"]},{value:"E. South America Standard Time",abbr:"ESAST",offset:-3,isdst:!1,text:"(UTC-03:00) Brasilia",utc:["America/Sao_Paulo"]},{value:"Argentina Standard Time",abbr:"AST",offset:-3,isdst:!1,text:"(UTC-03:00) Buenos Aires",utc:["America/Argentina/Buenos_Aires","America/Argentina/Catamarca","America/Argentina/Cordoba","America/Argentina/Jujuy","America/Argentina/La_Rioja","America/Argentina/Mendoza","America/Argentina/Rio_Gallegos","America/Argentina/Salta","America/Argentina/San_Juan","America/Argentina/San_Luis","America/Argentina/Tucuman","America/Argentina/Ushuaia","America/Buenos_Aires","America/Catamarca","America/Cordoba","America/Jujuy","America/Mendoza"]},{value:"SA Eastern Standard Time",abbr:"SEST",offset:-3,isdst:!1,text:"(UTC-03:00) Cayenne, Fortaleza",utc:["America/Araguaina","America/Belem","America/Cayenne","America/Fortaleza","America/Maceio","America/Paramaribo","America/Recife","America/Santarem","Antarctica/Rothera","Atlantic/Stanley","Etc/GMT+3"]},{value:"Greenland Standard Time",abbr:"GDT",offset:-3,isdst:!0,text:"(UTC-03:00) Greenland",utc:["America/Godthab"]},{value:"Montevideo Standard Time",abbr:"MST",offset:-3,isdst:!1,text:"(UTC-03:00) Montevideo",utc:["America/Montevideo"]},{value:"Bahia Standard Time",abbr:"BST",offset:-3,isdst:!1,text:"(UTC-03:00) Salvador",utc:["America/Bahia"]},{value:"UTC-02",abbr:"U",offset:-2,isdst:!1,text:"(UTC-02:00) Coordinated Universal Time-02",utc:["America/Noronha","Atlantic/South_Georgia","Etc/GMT+2"]},{value:"Mid-Atlantic Standard Time",abbr:"MDT",offset:-1,isdst:!0,text:"(UTC-02:00) Mid-Atlantic - Old",utc:[]},{value:"Azores Standard Time",abbr:"ADT",offset:0,isdst:!0,text:"(UTC-01:00) Azores",utc:["America/Scoresbysund","Atlantic/Azores"]},{value:"Cape Verde Standard Time",abbr:"CVST",offset:-1,isdst:!1,text:"(UTC-01:00) Cape Verde Is.",utc:["Atlantic/Cape_Verde","Etc/GMT+1"]},{value:"Morocco Standard Time",abbr:"MDT",offset:1,isdst:!0,text:"(UTC) Casablanca",utc:["Africa/Casablanca","Africa/El_Aaiun"]},{value:"UTC",abbr:"UTC",offset:0,isdst:!1,text:"(UTC) Coordinated Universal Time",utc:["America/Danmarkshavn","Etc/GMT"]},{value:"GMT Standard Time",abbr:"GMT",offset:0,isdst:!1,text:"(UTC) Edinburgh, London",utc:["Europe/Isle_of_Man","Europe/Guernsey","Europe/Jersey","Europe/London"]},{value:"British Summer Time",abbr:"BST",offset:1,isdst:!0,text:"(UTC+01:00) Edinburgh, London",utc:["Europe/Isle_of_Man","Europe/Guernsey","Europe/Jersey","Europe/London"]},{value:"GMT Standard Time",abbr:"GDT",offset:1,isdst:!0,text:"(UTC) Dublin, Lisbon",utc:["Atlantic/Canary","Atlantic/Faeroe","Atlantic/Madeira","Europe/Dublin","Europe/Lisbon"]},{value:"Greenwich Standard Time",abbr:"GST",offset:0,isdst:!1,text:"(UTC) Monrovia, Reykjavik",utc:["Africa/Abidjan","Africa/Accra","Africa/Bamako","Africa/Banjul","Africa/Bissau","Africa/Conakry","Africa/Dakar","Africa/Freetown","Africa/Lome","Africa/Monrovia","Africa/Nouakchott","Africa/Ouagadougou","Africa/Sao_Tome","Atlantic/Reykjavik","Atlantic/St_Helena"]},{value:"W. Europe Standard Time",abbr:"WEDT",offset:2,isdst:!0,text:"(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna",utc:["Arctic/Longyearbyen","Europe/Amsterdam","Europe/Andorra","Europe/Berlin","Europe/Busingen","Europe/Gibraltar","Europe/Luxembourg","Europe/Malta","Europe/Monaco","Europe/Oslo","Europe/Rome","Europe/San_Marino","Europe/Stockholm","Europe/Vaduz","Europe/Vatican","Europe/Vienna","Europe/Zurich"]},{value:"Central Europe Standard Time",abbr:"CEDT",offset:2,isdst:!0,text:"(UTC+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague",utc:["Europe/Belgrade","Europe/Bratislava","Europe/Budapest","Europe/Ljubljana","Europe/Podgorica","Europe/Prague","Europe/Tirane"]},{value:"Romance Standard Time",abbr:"RDT",offset:2,isdst:!0,text:"(UTC+01:00) Brussels, Copenhagen, Madrid, Paris",utc:["Africa/Ceuta","Europe/Brussels","Europe/Copenhagen","Europe/Madrid","Europe/Paris"]},{value:"Central European Standard Time",abbr:"CEDT",offset:2,isdst:!0,text:"(UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb",utc:["Europe/Sarajevo","Europe/Skopje","Europe/Warsaw","Europe/Zagreb"]},{value:"W. Central Africa Standard Time",abbr:"WCAST",offset:1,isdst:!1,text:"(UTC+01:00) West Central Africa",utc:["Africa/Algiers","Africa/Bangui","Africa/Brazzaville","Africa/Douala","Africa/Kinshasa","Africa/Lagos","Africa/Libreville","Africa/Luanda","Africa/Malabo","Africa/Ndjamena","Africa/Niamey","Africa/Porto-Novo","Africa/Tunis","Etc/GMT-1"]},{value:"Namibia Standard Time",abbr:"NST",offset:1,isdst:!1,text:"(UTC+01:00) Windhoek",utc:["Africa/Windhoek"]},{value:"GTB Standard Time",abbr:"GDT",offset:3,isdst:!0,text:"(UTC+02:00) Athens, Bucharest",utc:["Asia/Nicosia","Europe/Athens","Europe/Bucharest","Europe/Chisinau"]},{value:"Middle East Standard Time",abbr:"MEDT",offset:3,isdst:!0,text:"(UTC+02:00) Beirut",utc:["Asia/Beirut"]},{value:"Egypt Standard Time",abbr:"EST",offset:2,isdst:!1,text:"(UTC+02:00) Cairo",utc:["Africa/Cairo"]},{value:"Syria Standard Time",abbr:"SDT",offset:3,isdst:!0,text:"(UTC+02:00) Damascus",utc:["Asia/Damascus"]},{value:"E. Europe Standard Time",abbr:"EEDT",offset:3,isdst:!0,text:"(UTC+02:00) E. Europe",utc:["Asia/Nicosia","Europe/Athens","Europe/Bucharest","Europe/Chisinau","Europe/Helsinki","Europe/Kyiv","Europe/Mariehamn","Europe/Nicosia","Europe/Riga","Europe/Sofia","Europe/Tallinn","Europe/Uzhhorod","Europe/Vilnius","Europe/Zaporizhzhia"]},{value:"South Africa Standard Time",abbr:"SAST",offset:2,isdst:!1,text:"(UTC+02:00) Harare, Pretoria",utc:["Africa/Blantyre","Africa/Bujumbura","Africa/Gaborone","Africa/Harare","Africa/Johannesburg","Africa/Kigali","Africa/Lubumbashi","Africa/Lusaka","Africa/Maputo","Africa/Maseru","Africa/Mbabane","Etc/GMT-2"]},{value:"FLE Standard Time",abbr:"FDT",offset:3,isdst:!0,text:"(UTC+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius",utc:["Europe/Helsinki","Europe/Kyiv","Europe/Mariehamn","Europe/Riga","Europe/Sofia","Europe/Tallinn","Europe/Uzhhorod","Europe/Vilnius","Europe/Zaporizhzhia"]},{value:"Turkey Standard Time",abbr:"TDT",offset:3,isdst:!1,text:"(UTC+03:00) Istanbul",utc:["Europe/Istanbul"]},{value:"Israel Standard Time",abbr:"JDT",offset:3,isdst:!0,text:"(UTC+02:00) Jerusalem",utc:["Asia/Jerusalem"]},{value:"Libya Standard Time",abbr:"LST",offset:2,isdst:!1,text:"(UTC+02:00) Tripoli",utc:["Africa/Tripoli"]},{value:"Jordan Standard Time",abbr:"JST",offset:3,isdst:!1,text:"(UTC+03:00) Amman",utc:["Asia/Amman"]},{value:"Arabic Standard Time",abbr:"AST",offset:3,isdst:!1,text:"(UTC+03:00) Baghdad",utc:["Asia/Baghdad"]},{value:"Kaliningrad Standard Time",abbr:"KST",offset:3,isdst:!1,text:"(UTC+02:00) Kaliningrad",utc:["Europe/Kaliningrad"]},{value:"Arab Standard Time",abbr:"AST",offset:3,isdst:!1,text:"(UTC+03:00) Kuwait, Riyadh",utc:["Asia/Aden","Asia/Bahrain","Asia/Kuwait","Asia/Qatar","Asia/Riyadh"]},{value:"E. Africa Standard Time",abbr:"EAST",offset:3,isdst:!1,text:"(UTC+03:00) Nairobi",utc:["Africa/Addis_Ababa","Africa/Asmera","Africa/Dar_es_Salaam","Africa/Djibouti","Africa/Juba","Africa/Kampala","Africa/Khartoum","Africa/Mogadishu","Africa/Nairobi","Antarctica/Syowa","Etc/GMT-3","Indian/Antananarivo","Indian/Comoro","Indian/Mayotte"]},{value:"Moscow Standard Time",abbr:"MSK",offset:3,isdst:!1,text:"(UTC+03:00) Moscow, St. Petersburg, Volgograd, Minsk",utc:["Europe/Kirov","Europe/Moscow","Europe/Simferopol","Europe/Volgograd","Europe/Minsk"]},{value:"Samara Time",abbr:"SAMT",offset:4,isdst:!1,text:"(UTC+04:00) Samara, Ulyanovsk, Saratov",utc:["Europe/Astrakhan","Europe/Samara","Europe/Ulyanovsk"]},{value:"Iran Standard Time",abbr:"IDT",offset:4.5,isdst:!0,text:"(UTC+03:30) Tehran",utc:["Asia/Tehran"]},{value:"Arabian Standard Time",abbr:"AST",offset:4,isdst:!1,text:"(UTC+04:00) Abu Dhabi, Muscat",utc:["Asia/Dubai","Asia/Muscat","Etc/GMT-4"]},{value:"Azerbaijan Standard Time",abbr:"ADT",offset:5,isdst:!0,text:"(UTC+04:00) Baku",utc:["Asia/Baku"]},{value:"Mauritius Standard Time",abbr:"MST",offset:4,isdst:!1,text:"(UTC+04:00) Port Louis",utc:["Indian/Mahe","Indian/Mauritius","Indian/Reunion"]},{value:"Georgian Standard Time",abbr:"GET",offset:4,isdst:!1,text:"(UTC+04:00) Tbilisi",utc:["Asia/Tbilisi"]},{value:"Caucasus Standard Time",abbr:"CST",offset:4,isdst:!1,text:"(UTC+04:00) Yerevan",utc:["Asia/Yerevan"]},{value:"Afghanistan Standard Time",abbr:"AST",offset:4.5,isdst:!1,text:"(UTC+04:30) Kabul",utc:["Asia/Kabul"]},{value:"West Asia Standard Time",abbr:"WAST",offset:5,isdst:!1,text:"(UTC+05:00) Ashgabat, Tashkent",utc:["Antarctica/Mawson","Asia/Aqtau","Asia/Aqtobe","Asia/Ashgabat","Asia/Dushanbe","Asia/Oral","Asia/Samarkand","Asia/Tashkent","Etc/GMT-5","Indian/Kerguelen","Indian/Maldives"]},{value:"Yekaterinburg Time",abbr:"YEKT",offset:5,isdst:!1,text:"(UTC+05:00) Yekaterinburg",utc:["Asia/Yekaterinburg"]},{value:"Pakistan Standard Time",abbr:"PKT",offset:5,isdst:!1,text:"(UTC+05:00) Islamabad, Karachi",utc:["Asia/Karachi"]},{value:"India Standard Time",abbr:"IST",offset:5.5,isdst:!1,text:"(UTC+05:30) Chennai, Kolkata, Mumbai, New Delhi",utc:["Asia/Kolkata","Asia/Calcutta"]},{value:"Sri Lanka Standard Time",abbr:"SLST",offset:5.5,isdst:!1,text:"(UTC+05:30) Sri Jayawardenepura",utc:["Asia/Colombo"]},{value:"Nepal Standard Time",abbr:"NST",offset:5.75,isdst:!1,text:"(UTC+05:45) Kathmandu",utc:["Asia/Kathmandu"]},{value:"Central Asia Standard Time",abbr:"CAST",offset:6,isdst:!1,text:"(UTC+06:00) Nur-Sultan (Astana)",utc:["Antarctica/Vostok","Asia/Almaty","Asia/Bishkek","Asia/Qyzylorda","Asia/Urumqi","Etc/GMT-6","Indian/Chagos"]},{value:"Bangladesh Standard Time",abbr:"BST",offset:6,isdst:!1,text:"(UTC+06:00) Dhaka",utc:["Asia/Dhaka","Asia/Thimphu"]},{value:"Myanmar Standard Time",abbr:"MST",offset:6.5,isdst:!1,text:"(UTC+06:30) Yangon (Rangoon)",utc:["Asia/Rangoon","Indian/Cocos"]},{value:"SE Asia Standard Time",abbr:"SAST",offset:7,isdst:!1,text:"(UTC+07:00) Bangkok, Hanoi, Jakarta",utc:["Antarctica/Davis","Asia/Bangkok","Asia/Hovd","Asia/Jakarta","Asia/Phnom_Penh","Asia/Pontianak","Asia/Saigon","Asia/Vientiane","Etc/GMT-7","Indian/Christmas"]},{value:"N. Central Asia Standard Time",abbr:"NCAST",offset:7,isdst:!1,text:"(UTC+07:00) Novosibirsk",utc:["Asia/Novokuznetsk","Asia/Novosibirsk","Asia/Omsk"]},{value:"China Standard Time",abbr:"CST",offset:8,isdst:!1,text:"(UTC+08:00) Beijing, Chongqing, Hong Kong, Urumqi",utc:["Asia/Hong_Kong","Asia/Macau","Asia/Shanghai"]},{value:"North Asia Standard Time",abbr:"NAST",offset:8,isdst:!1,text:"(UTC+08:00) Krasnoyarsk",utc:["Asia/Krasnoyarsk"]},{value:"Singapore Standard Time",abbr:"MPST",offset:8,isdst:!1,text:"(UTC+08:00) Kuala Lumpur, Singapore",utc:["Asia/Brunei","Asia/Kuala_Lumpur","Asia/Kuching","Asia/Makassar","Asia/Manila","Asia/Singapore","Etc/GMT-8"]},{value:"W. Australia Standard Time",abbr:"WAST",offset:8,isdst:!1,text:"(UTC+08:00) Perth",utc:["Antarctica/Casey","Australia/Perth"]},{value:"Taipei Standard Time",abbr:"TST",offset:8,isdst:!1,text:"(UTC+08:00) Taipei",utc:["Asia/Taipei"]},{value:"Ulaanbaatar Standard Time",abbr:"UST",offset:8,isdst:!1,text:"(UTC+08:00) Ulaanbaatar",utc:["Asia/Choibalsan","Asia/Ulaanbaatar"]},{value:"North Asia East Standard Time",abbr:"NAEST",offset:8,isdst:!1,text:"(UTC+08:00) Irkutsk",utc:["Asia/Irkutsk"]},{value:"Japan Standard Time",abbr:"JST",offset:9,isdst:!1,text:"(UTC+09:00) Osaka, Sapporo, Tokyo",utc:["Asia/Dili","Asia/Jayapura","Asia/Tokyo","Etc/GMT-9","Pacific/Palau"]},{value:"Korea Standard Time",abbr:"KST",offset:9,isdst:!1,text:"(UTC+09:00) Seoul",utc:["Asia/Pyongyang","Asia/Seoul"]},{value:"Cen. Australia Standard Time",abbr:"CAST",offset:9.5,isdst:!1,text:"(UTC+09:30) Adelaide",utc:["Australia/Adelaide","Australia/Broken_Hill"]},{value:"AUS Central Standard Time",abbr:"ACST",offset:9.5,isdst:!1,text:"(UTC+09:30) Darwin",utc:["Australia/Darwin"]},{value:"E. Australia Standard Time",abbr:"EAST",offset:10,isdst:!1,text:"(UTC+10:00) Brisbane",utc:["Australia/Brisbane","Australia/Lindeman"]},{value:"AUS Eastern Standard Time",abbr:"AEST",offset:10,isdst:!1,text:"(UTC+10:00) Canberra, Melbourne, Sydney",utc:["Australia/Melbourne","Australia/Sydney"]},{value:"West Pacific Standard Time",abbr:"WPST",offset:10,isdst:!1,text:"(UTC+10:00) Guam, Port Moresby",utc:["Antarctica/DumontDUrville","Etc/GMT-10","Pacific/Guam","Pacific/Port_Moresby","Pacific/Saipan","Pacific/Truk"]},{value:"Tasmania Standard Time",abbr:"TST",offset:10,isdst:!1,text:"(UTC+10:00) Hobart",utc:["Australia/Currie","Australia/Hobart"]},{value:"Yakutsk Standard Time",abbr:"YST",offset:9,isdst:!1,text:"(UTC+09:00) Yakutsk",utc:["Asia/Chita","Asia/Khandyga","Asia/Yakutsk"]},{value:"Central Pacific Standard Time",abbr:"CPST",offset:11,isdst:!1,text:"(UTC+11:00) Solomon Is., New Caledonia",utc:["Antarctica/Macquarie","Etc/GMT-11","Pacific/Efate","Pacific/Guadalcanal","Pacific/Kosrae","Pacific/Noumea","Pacific/Ponape"]},{value:"Vladivostok Standard Time",abbr:"VST",offset:11,isdst:!1,text:"(UTC+11:00) Vladivostok",utc:["Asia/Sakhalin","Asia/Ust-Nera","Asia/Vladivostok"]},{value:"New Zealand Standard Time",abbr:"NZST",offset:12,isdst:!1,text:"(UTC+12:00) Auckland, Wellington",utc:["Antarctica/McMurdo","Pacific/Auckland"]},{value:"UTC+12",abbr:"U",offset:12,isdst:!1,text:"(UTC+12:00) Coordinated Universal Time+12",utc:["Etc/GMT-12","Pacific/Funafuti","Pacific/Kwajalein","Pacific/Majuro","Pacific/Nauru","Pacific/Tarawa","Pacific/Wake","Pacific/Wallis"]},{value:"Fiji Standard Time",abbr:"FST",offset:12,isdst:!1,text:"(UTC+12:00) Fiji",utc:["Pacific/Fiji"]},{value:"Magadan Standard Time",abbr:"MST",offset:12,isdst:!1,text:"(UTC+12:00) Magadan",utc:["Asia/Anadyr","Asia/Kamchatka","Asia/Magadan","Asia/Srednekolymsk"]},{value:"Kamchatka Standard Time",abbr:"KDT",offset:13,isdst:!0,text:"(UTC+12:00) Petropavlovsk-Kamchatsky - Old",utc:["Asia/Kamchatka"]},{value:"Tonga Standard Time",abbr:"TST",offset:13,isdst:!1,text:"(UTC+13:00) Nuku'alofa",utc:["Etc/GMT-13","Pacific/Enderbury","Pacific/Fakaofo","Pacific/Tongatapu"]},{value:"Samoa Standard Time",abbr:"SST",offset:13,isdst:!1,text:"(UTC+13:00) Samoa",utc:["Pacific/Apia"]}].filter(e=>e.utc.length).reduce((e,a)=>{let s=a.utc;for(let t=0;t<s.length;t++){const i=s[t],n=a.text;let r=n.substring(n.indexOf("(")+1,n.indexOf(")"));-1!==r.indexOf("UTC")&&e.push({value:i,abbr:a.abbr,offset:a.offset,isdst:a.isdst,text:`(${r}) ${i}`,utc:["Etc/GMT-13","Pacific/Enderbury","Pacific/Fakaofo","Pacific/Tongatapu"]})}return e},[]).filter((e,a,s)=>a===s.findIndex(a=>a.value===e.value));function ee({value:a,onChange:s}){const{t:i}=t.useTranslation(),n=Q.map(e=>({value:e.value,label:e.text}));return e.jsx(O,{options:n,value:a,onChange:s,placeholder:i("dropdowns.searchTimezone"),emptyLabel:i("dropdowns.chooseTimezone")})}const ae=({workspace:a})=>{const{t:i}=t.useTranslation(),{visible:o}=t.useUIVisibility(),l=o(e=>e.settings?.profile?.language),d=o(e=>e.settings?.profile?.country),u=o(e=>e.settings?.profile?.currency),m=o(e=>e.settings?.profile?.timezone),{updateUserProfile:x,getProfile:p}=t.useSaaSWorkspaces(),[g,f]=s.useState(!1),[b,h]=s.useState(),[S,j]=s.useState(0),N=w(),A=c.z.object({name:c.z.string().min(2,{message:i("profile.nameMinLength")}),country:c.z.string().optional(),timezone:c.z.string().optional(),language:c.z.string().optional(),currency:c.z.string().optional()}),C=r.useForm({resolver:n.zodResolver(A),defaultValues:{name:b?.name||"",country:b?.country||"",timezone:b?.timezone||"",language:b?.language||"",currency:b?.currency||""}});return s.useEffect(()=>{p().then(e=>{h(e),C.setValue("name",e.name),C.setValue("country",e.country),C.setValue("timezone",e.timezone),C.setValue("language",e.language),C.setValue("currency",e.currency)}).catch(e=>{t.handleError(e,{component:"WorkspaceSettingsProfile",action:"getProfile"})})},[S]),b?e.jsxs("div",{children:[N.message&&e.jsx(t.StatusBanner,{variant:"success",title:i("settings.common.success"),message:N.message,className:"mb-4"}),e.jsx("div",{className:"space-y-4",children:e.jsx(t.Form,{...C,children:e.jsxs("form",{onSubmit:C.handleSubmit(async function(e){f(!0),N.clear();try{await x({name:e.name,country:e.country,timezone:e.timezone,language:e.language,currency:e.currency}),N.show(i("profile.success"))}catch(e){t.handleError(e,{component:"WorkspaceSettingsProfile",action:"updateUserProfile",metadata:{workspaceId:a._id}})}finally{f(!1)}}),className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("label",{htmlFor:"profile-email",className:"block text-sm font-medium mb-1",children:i("profile.email")}),e.jsx(t.Input,{id:"profile-email",disabled:!0,className:"w-full border rounded px-3 py-2 bg-muted",value:b?.email})]}),e.jsx(t.FormField,{disabled:g,control:C.control,name:"name",render:({field:a})=>e.jsxs(t.FormItem,{children:[e.jsx(t.FormLabel,{children:i("profile.name")}),e.jsx(t.FormControl,{children:e.jsx(t.Input,{...a})}),e.jsx(t.FormMessage,{})]})}),e.jsxs("div",{className:"flex gap-y-2 my-4 flex-col",children:[l&&e.jsxs("div",{className:"flex flex-col gap-0.5",children:[e.jsx("div",{className:"text-sm font-medium",children:i("profile.language")}),e.jsx(X,{value:C.watch("language"),onChange:e=>{C.setValue("language",e)}})]}),d&&e.jsxs("div",{className:"flex flex-col gap-0.5",children:[e.jsx("div",{className:"text-sm font-medium",children:i("profile.country")}),e.jsx(H,{value:C.watch("country"),onChange:e=>{C.setValue("country",e)}})]}),u&&e.jsxs("div",{className:"flex flex-col gap-0.5",children:[e.jsx("div",{className:"text-sm font-medium",children:i("profile.currency")}),e.jsx(Z,{value:C.watch("currency"),onChange:e=>{C.setValue("currency",e)}})]}),m&&e.jsxs("div",{className:"flex flex-col gap-0.5",children:[e.jsx("div",{className:"text-sm font-medium",children:i("profile.timezone")}),e.jsx(ee,{value:C.watch("timezone"),onChange:e=>{C.setValue("timezone",e)}})]})]}),e.jsxs("div",{className:"flex justify-end gap-x-2",children:[e.jsx(t.Button,{type:"submit",progress:g,disabled:g,children:i("profile.save")}),e.jsx(t.Button,{type:"button",variant:"outline",onClick:()=>{j(e=>e+1)},disabled:g,children:i("profile.reset")})]})]})})}),b?.image&&e.jsxs("div",{children:[e.jsx("p",{className:"block text-sm font-medium mb-1",children:i("profile.profileImage")}),e.jsx("div",{className:"w-16 h-16 rounded-full overflow-hidden",children:e.jsx("img",{src:b.image,alt:b.name,className:"w-full h-full object-cover"})})]})]}):e.jsx(v,{})},se=()=>{const{t:i,formattingLocale:n}=t.useTranslation(),{visible:r,ui:c}=t.useUIVisibility(),o=c.formats?.date??{dateStyle:"medium"},l=r(e=>e.settings?.security?.passkeyRename),d=r(e=>e.settings?.security?.passkeyDelete),{api:u}=t.useWorkspaceApiWithOs(),[m,x]=s.useState(!0),[p,g]=s.useState([]),[f,b]=s.useState(null),[h,S]=s.useState(null),[j,N]=s.useState(""),A=s.useCallback(async()=>{try{const e=await u.getPasskeys();g(e)}catch(e){t.handleError(e,{component:"WorkspaceSettingsSecurity"})}finally{x(!1)}},[u]);return s.useEffect(()=>{A()},[A]),m?e.jsx(v,{}):e.jsxs("div",{className:"space-y-4",children:[e.jsx(t.SectionHeader,{title:i("security.passkeysTitle"),description:i("security.passkeysDescription")}),0===p.length?e.jsx(t.EmptyState,{icon:e.jsx(a.KeyRound,{className:"h-5 w-5 text-muted-foreground"}),description:i("security.noPasskeys")}):e.jsx("div",{className:"space-y-2",children:p.map(s=>e.jsxs("div",{className:"flex items-center justify-between gap-3 rounded-md border p-3 "+(!1===s.active?"opacity-70":""),children:[e.jsxs("div",{className:"flex min-w-0 items-center gap-3",children:[e.jsx(a.KeyRound,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),e.jsx("div",{className:"min-w-0",children:h===s.id?e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(t.Input,{value:j,onChange:e=>N(e.target.value),placeholder:i("security.renamePlaceholder"),className:"h-8"}),e.jsx(t.Button,{size:"icon",variant:"ghost",className:"h-10 w-10 sm:h-8 sm:w-8 shrink-0",disabled:f===s.id,onClick:()=>async function(e){const a=j.trim();if(a){b(e);try{await u.renamePasskey(e,a),g(s=>s.map(s=>s.id===e?{...s,name:a}:s)),S(null)}catch(e){t.handleError(e,{component:"WorkspaceSettingsSecurity"})}finally{b(null)}}}(s.id),children:e.jsx(a.Check,{className:"h-4 w-4"})}),e.jsx(t.Button,{size:"icon",variant:"ghost",className:"h-10 w-10 sm:h-8 sm:w-8 shrink-0",onClick:()=>S(null),children:e.jsx(a.X,{className:"h-4 w-4"})})]}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("p",{className:"truncate text-sm font-medium",children:s.name}),!1===s.active&&e.jsx("span",{className:"shrink-0 rounded-full border border-warning/40 bg-warning/10 px-2 py-0.5 text-xs font-medium text-warning",title:i("security.inactiveHint"),children:i("security.inactive")})]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:!1===s.active?i("security.inactiveHint"):s.lastUsedAt?`${i("security.lastUsed")}: ${t.formatDate(s.lastUsedAt,n,o)}`:s.createdAt?`${i("security.added")}: ${t.formatDate(s.createdAt,n,o)}`:null})]})})]}),h!==s.id&&(l||d)&&e.jsxs("div",{className:"flex shrink-0 items-center gap-1",children:[l&&e.jsx(t.Button,{size:"icon",variant:"ghost",className:"h-10 w-10 sm:h-8 sm:w-8","aria-label":i("security.rename"),onClick:()=>{S(s.id),N(s.name)},children:e.jsx(a.Pencil,{className:"h-4 w-4"})}),d&&e.jsxs(t.AlertDialog,{children:[e.jsx(t.AlertDialogTrigger,{asChild:!0,children:e.jsx(t.Button,{size:"icon",variant:"ghost",className:"h-10 w-10 sm:h-8 sm:w-8 text-destructive","aria-label":i("security.remove"),disabled:f===s.id,children:e.jsx(a.Trash2,{className:"h-4 w-4"})})}),e.jsxs(t.AlertDialogContent,{children:[e.jsxs(t.AlertDialogHeader,{children:[e.jsx(t.AlertDialogTitle,{children:i("security.removeTitle")}),e.jsx(t.AlertDialogDescription,{children:i("security.removeDescription")})]}),e.jsxs(t.AlertDialogFooter,{children:[e.jsx(t.AlertDialogCancel,{children:i("settings.common.cancel")}),e.jsx(t.AlertDialogAction,{onClick:()=>async function(e){b(e);try{await u.deletePasskey(e),g(a=>a.filter(a=>a.id!==e))}catch(e){t.handleError(e,{component:"WorkspaceSettingsSecurity"})}finally{b(null)}}(s.id),children:i("security.remove")})]})]})]})]})]},s.id))}),e.jsx("p",{className:"text-xs text-muted-foreground",children:i("security.addHint")})]})},te={Personal:"personal"},ie=e=>{switch(e){case t.InvoiceStatuses.Paid:return"bg-success/15 text-success";case t.InvoiceStatuses.Open:return"bg-warning/15 text-warning";case t.InvoiceStatuses.Draft:return"bg-muted text-foreground";case t.InvoiceStatuses.Uncollectible:return"bg-destructive/15 text-destructive";case t.InvoiceStatuses.Void:default:return"bg-muted text-foreground"}},ne=({workspaceId:s,hasActiveSubscription:i=!1,onViewPricingPlans:n,limit:r=20})=>{const{t:c,formattingLocale:o}=t.useTranslation(),{can:l}=t.usePermissions(),d=l(t.Permission.WORKSPACE_BILLING_VIEW),{invoices:u,loading:m,error:x,refetch:p}=t.useInvoices(s,r);if(!d)return e.jsx(S,{});const g=u.length>0;return e.jsxs("div",{className:"space-y-4",children:[e.jsx(t.SectionHeader,{title:c("invoices.title"),description:c("invoices.description"),actions:e.jsx(t.Button,{variant:"ghost",size:"sm",progress:m,onClick:p,disabled:m,children:c("settings.common.refreshAction",{loading:String(m)})})}),x&&e.jsx(t.StatusBanner,{variant:"error",title:c("invoices.errorLoading"),message:x,actionLabel:c("settings.common.retryAction",{loading:String(m)}),onAction:p,actionDisabled:m}),m&&!g?e.jsx("div",{className:"border rounded-lg p-6",children:e.jsx(v,{})}):g?e.jsx("div",{className:"space-y-2",children:u.map(s=>{const i=(e=>{switch(e.status){case t.InvoiceStatuses.Draft:case t.InvoiceStatuses.Open:return{textKey:"invoices.pay",color:"bg-info text-info-foreground hover:bg-info/90"};case t.InvoiceStatuses.Paid:return{textKey:"invoices.view",color:"bg-success text-success-foreground hover:bg-success/90"};case t.InvoiceStatuses.Uncollectible:case t.InvoiceStatuses.Void:return{textKey:"invoices.viewDetails",color:"bg-muted-foreground text-background hover:bg-muted-foreground/90"};default:return{textKey:"invoices.view",color:"bg-muted-foreground text-background hover:bg-muted-foreground/90"}}})(s);return e.jsxs("div",{className:"border rounded-md bg-background hover:shadow-sm transition-shadow p-3",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2 mb-1.5",children:[e.jsx("span",{className:"text-sm font-medium text-foreground truncate min-w-0",children:s.description||s.number||s.id.slice(-8)}),e.jsx("span",{className:`inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium shrink-0 ${ie(s.status)}`,children:c(`invoices.status.${s.status}`)})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-0.5 text-sm text-muted-foreground mb-2.5",children:[e.jsx("span",{className:"font-medium text-foreground",children:t.formatMinorAmountIntl(s.amount_due,s.currency,o)}),s.created&&e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"text-muted-foreground/50 hidden sm:inline",children:"·"}),e.jsx("span",{children:t.formatUnixDate(s.created,o)})]}),s.amount_paid>0&&s.amount_due>0&&e.jsx("span",{className:"text-xs text-muted-foreground",children:c("invoices.paidAmount",{amount:t.formatMinorAmountIntl(s.amount_paid,s.currency,o)})})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs(t.Button,{size:"sm",disabled:!s.hosted_invoice_url,onClick:()=>s.hosted_invoice_url&&window.open(s.hosted_invoice_url,"_blank","noopener,noreferrer"),className:i.color,children:[c(i.textKey),e.jsx(a.ExternalLink,{className:"h-3.5 w-3.5 ms-1.5"})]}),s.invoice_pdf&&e.jsxs(t.Button,{size:"sm",variant:"outline",onClick:()=>window.open(s.invoice_pdf,"_blank","noopener,noreferrer"),children:[e.jsx(a.Download,{className:"h-3.5 w-3.5 me-1.5"}),c("invoices.download")]})]})]},s.id)})}):e.jsx(t.EmptyState,{icon:e.jsx(a.FileText,{className:"h-5 w-5 text-muted-foreground"}),description:c(i?"invoices.noInvoicesWithSub":"invoices.noInvoices"),action:!i&&n?e.jsx(t.Button,{size:"sm",className:"mt-2",onClick:n,children:c("subscription.viewPricingPlans")}):void 0})]})},re=(e,a)=>a?t.formatDate(a,e,{month:"long",day:"numeric",year:"numeric"}):"",ce=({planVersion:a,subscriptionCurrency:s,billingInterval:i,seatPricingConfig:n,isPersonalMode:r,memberCount:c,includedSeats:o,billableSeats:l,perSeatPrice:d,intervalLabel:u})=>{const{t:m,formattingLocale:x,fmtNum:p,fmtCents:g}=t.useTranslation(),f=((e,a,s=t.BillingIntervals.Monthly)=>{if(!e?.subscriptionItems)return{features:[],limits:[],quotas:[]};const i=[],n=[],r=[];return e.subscriptionItems.forEach(c=>{const o=c.slug;if(c.type===t.SubscriptionItemType.Feature){const a=e.features?.[o]??!1;i.push({item:c,enabled:a})}else if(c.type===t.SubscriptionItemType.Limit){const a=e.limits?.[o]??0;n.push({item:c,value:a})}else if(c.type===t.SubscriptionItemType.Quota){const i=a&&e.pricingVariants?.length?t.getQuotaDisplayWithVariant(e,a,o,s):t.getQuotaDisplayValue(e.quotas?.[o],s);null!=i&&r.push({item:c,value:i})}}),{features:i,limits:n,quotas:r}})(a,s,i??"monthly");return f.features.length>0||f.limits.length>0||f.quotas.length>0?e.jsx("div",{className:"px-4 py-4 sm:px-5 sm:py-5 border-t border-border/60",children:e.jsxs("div",{className:"space-y-5",children:[f.features.length>0&&e.jsxs("div",{children:[e.jsx("h4",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wider mb-2",children:m("subscription.items.features")}),e.jsx("ul",{className:"space-y-1.5",children:f.features.sort(e=>e.enabled?-1:1).map(({item:a,enabled:s})=>e.jsxs("li",{className:"flex items-center gap-2 text-sm",children:[e.jsx("span",{className:"w-4 text-center shrink-0 "+(s?"text-success":"text-muted-foreground/50"),children:s?"✓":"✕"}),e.jsx("span",{className:s?"text-foreground":"text-muted-foreground/70",children:a.name})]},a._id))})]}),f.limits.length>0&&e.jsxs("div",{children:[e.jsx("h4",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wider mb-2",children:m("subscription.items.limits")}),e.jsx("ul",{className:"space-y-1.5",children:f.limits.map(({item:a,value:s})=>e.jsxs("li",{className:"flex items-center justify-between text-sm",children:[e.jsx("span",{className:"text-muted-foreground",children:a.name}),e.jsx("span",{className:"font-medium text-foreground",children:p(s)})]},a._id))})]}),f.quotas.length>0&&e.jsxs("div",{children:[e.jsx("h4",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wider mb-2",children:m("subscription.items.quotas")}),e.jsx("ul",{className:"space-y-1.5",children:f.quotas.map(({item:a,value:i})=>{const n=t.getQuotaDisplayParts(i,a.name.toLowerCase(),{currency:s,locale:x}),r=n?n.hasOverage?m("quota.includedWithOverage",{count:n.included,price:n.price,unit:n.unit}):m("quota.includedOnly",{count:n.included}):"—";return e.jsx("li",{className:"text-sm",children:e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-0.5",children:[e.jsx("span",{className:"text-muted-foreground",children:a.name}),e.jsx("span",{className:"font-medium text-foreground text-xs sm:text-sm",children:r})]})},a._id)})})]}),n&&!r&&e.jsxs("div",{children:[e.jsx("h4",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wider mb-2",children:m("subscription.seats.title")}),e.jsxs("div",{className:"bg-muted/50 rounded-lg p-3 space-y-1.5",children:[e.jsxs("div",{className:"flex items-center justify-between text-sm",children:[e.jsx("span",{className:"text-muted-foreground",children:m("subscription.seats.members")}),e.jsx("span",{className:"font-semibold text-foreground",children:p(c)})]}),e.jsxs("div",{className:"flex items-center justify-between text-sm",children:[e.jsx("span",{className:"text-muted-foreground",children:m("subscription.seats.included")}),e.jsx("span",{className:"text-foreground",children:p(o)})]}),l>0&&e.jsxs("div",{className:"flex items-center justify-between text-sm",children:[e.jsx("span",{className:"text-muted-foreground",children:m("subscription.seats.billable")}),e.jsxs("span",{className:"font-medium text-warning",children:[p(l)," ",m("subscription.seats.extra")]})]}),null!=d&&d>0&&e.jsxs("div",{className:"flex items-center justify-between text-sm",children:[e.jsx("span",{className:"text-muted-foreground",children:m("subscription.seats.perExtraSeat")}),e.jsxs("span",{className:"text-foreground",children:[g(d,s),u]})]}),(n?.maxSeats??0)>0&&e.jsxs("div",{className:"flex items-center justify-between text-sm",children:[e.jsx("span",{className:"text-muted-foreground",children:m("subscription.seats.limit")}),e.jsx("span",{className:"text-foreground",children:p(n.maxSeats)})]})]})]}),a?.creditGrant?.enabled&&"object"==typeof a.creditGrant.creditPackage&&null!==a.creditGrant.creditPackage&&e.jsxs("div",{children:[e.jsx("h4",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wider mb-2",children:m("subscription.items.credits")}),e.jsxs("div",{className:"bg-info/10 rounded-lg p-3 space-y-1.5",children:[e.jsxs("div",{className:"flex items-center justify-between text-sm",children:[e.jsx("span",{className:"text-muted-foreground",children:a.creditGrant.renewOnPeriod?m("subscription.items.creditsPerMonth"):m("subscription.items.creditsOneTime")}),e.jsx("span",{className:"font-semibold text-info",children:p("object"==typeof a.creditGrant.creditPackage?a.creditGrant.creditPackage.creditAmount:0)})]}),e.jsxs("div",{className:"flex items-center justify-between text-sm",children:[e.jsx("span",{className:"text-muted-foreground",children:m("subscription.items.creditRenewal")}),e.jsx("span",{className:"font-medium text-foreground",children:a.creditGrant.renewOnPeriod?"reset"===a.creditGrant.mode?m("subscription.items.creditModeReset"):m("subscription.items.creditModeTopup"):m("subscription.items.creditModeLifetime")})]})]})]})]})}):null},oe=({resumeDialogOpen:s,setResumeDialogOpen:i,resumeLoading:n,handleResumeSubscription:r,subscription:c})=>{const{t:o,formattingLocale:l}=t.useTranslation();return e.jsx(t.AlertDialog,{open:s,onOpenChange:i,children:e.jsxs(t.AlertDialogContent,{children:[e.jsxs(t.AlertDialogHeader,{children:[e.jsx(t.AlertDialogTitle,{children:o("subscription.resumeTitle")}),e.jsx(t.AlertDialogDescription,{asChild:!0,children:e.jsxs("div",{className:"space-y-3",children:[e.jsx("p",{children:o("subscription.resumeConfirm")}),e.jsxs("div",{className:"bg-warning/10 border border-warning/30 rounded-lg p-4 space-y-2 text-sm",children:[e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(a.AlertTriangle,{className:"h-4 w-4 text-warning mt-0.5 flex-shrink-0"}),e.jsxs("span",{children:[o("subscription.resumeChargeDate")," ",c?.subscription?.stripeCurrentPeriodEnd&&re(l,c.subscription.stripeCurrentPeriodEnd)?e.jsx("span",{className:"font-medium",children:re(l,c.subscription.stripeCurrentPeriodEnd)}):o("subscription.resumeChargeFallback")]})]}),e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx("span",{className:"text-warning mt-0.5",children:"•"}),e.jsx("span",{children:o("subscription.resumeContinue")})]}),e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx("span",{className:"text-info mt-0.5",children:"ℹ"}),e.jsx("span",{children:o("subscription.resumeCancelAnytime")})]})]})]})})]}),e.jsxs(t.AlertDialogFooter,{children:[e.jsx(t.AlertDialogCancel,{disabled:n,children:o("subscription.resumeKeep")}),e.jsx(t.AlertDialogAction,{onClick:r,disabled:n,children:o(n?"subscription.resuming":"subscription.resumeButton")})]})]})})},le=({cancelDialogOpen:a,setCancelDialogOpen:s,cancelLoading:i,handleCancelSubscription:n,subscription:r})=>{const{t:c,formattingLocale:o}=t.useTranslation(),l=r?.subscription?.subscriptionStatus===t.SubscriptionStatus.Trialing,d=l&&r?.subscription?.trialEnd||r?.subscription?.stripeCurrentPeriodEnd;return e.jsx(t.AlertDialog,{open:a,onOpenChange:s,children:e.jsxs(t.AlertDialogContent,{children:[e.jsxs(t.AlertDialogHeader,{children:[e.jsx(t.AlertDialogTitle,{children:c(l?"subscription.cancelTrialTitle":"subscription.cancelTitle")}),e.jsx(t.AlertDialogDescription,{asChild:!0,children:e.jsxs("div",{className:"space-y-3",children:[e.jsx("p",{children:c(l?"subscription.cancelTrialConfirm":"subscription.cancelConfirm")}),e.jsxs("div",{className:"bg-muted/50 rounded-lg p-4 space-y-2 text-sm",children:[e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx("span",{className:"text-success mt-0.5",children:"✓"}),e.jsxs("span",{children:[c(l?"subscription.cancelTrialAccess":"subscription.retainAccess")," ",d&&re(o,d)?e.jsx("span",{className:"font-medium",children:re(o,d)}):c("subscription.retainAccessFallback")]})]}),e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx("span",{className:"text-success mt-0.5",children:"✓"}),e.jsx("span",{children:c(l?"subscription.cancelTrialNoCharge":"subscription.cancelNotCharged")})]}),e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx("span",{className:"text-info mt-0.5",children:"ℹ"}),e.jsx("span",{children:c(l?"subscription.cancelTrialResume":"subscription.cancelResumeAnytime")})]})]})]})})]}),e.jsxs(t.AlertDialogFooter,{children:[e.jsx(t.AlertDialogCancel,{disabled:i,children:c(l?"subscription.cancelTrialKeep":"subscription.cancelKeep")}),e.jsx(t.AlertDialogAction,{onClick:n,disabled:i,className:"bg-destructive hover:bg-destructive/90 focus:ring-destructive",children:c(i?"subscription.canceling":l?"subscription.cancelTrialButton":"subscription.cancelButton")})]})]})})},de=({className:a,icon:s,titleClassName:t,title:i,descriptionClassName:n,description:r,children:c})=>e.jsx("div",{className:a,children:e.jsxs("div",{className:"flex items-start gap-3",children:[s,e.jsxs("div",{children:[e.jsx("p",{className:t,children:i}),e.jsx("p",{className:n,children:r}),c]})]})}),ue=({subscription:a})=>{const{t:s}=t.useTranslation();return e.jsxs("span",{className:"inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium "+(a.subscriptionStatus===t.SubscriptionStatus.Active?a.cancelAtPeriodEnd?"bg-warning/15 text-warning":"bg-success/15 text-success":a.subscriptionStatus===t.SubscriptionStatus.Trialing?"bg-info/15 text-info":a.subscriptionStatus===t.SubscriptionStatus.Canceled?"bg-muted text-foreground":"bg-destructive/15 text-destructive"),children:[a.subscriptionStatus===t.SubscriptionStatus.Active&&(a.cancelAtPeriodEnd?s("subscription.status.canceling"):s("subscription.status.active")),a.subscriptionStatus===t.SubscriptionStatus.Trialing&&s("subscription.status.trial"),a.subscriptionStatus===t.SubscriptionStatus.Canceled&&s("subscription.status.canceled"),a.subscriptionStatus===t.SubscriptionStatus.PastDue&&s("subscription.status.pastDue")]})},me=({subscription:a,showChangePlan:s,setDialogOpen:i})=>{const{t:n}=t.useTranslation(),r=a.trialEnd||a.stripeCurrentPeriodEnd,c=r?new Date(r):null,o=c&&!isNaN(c.getTime())?c:null,l=o?Math.max(0,Math.ceil((o.getTime()-Date.now())/864e5)):null,d=null!==l&&l<=3;return e.jsxs("div",{className:"px-4 py-3 sm:px-5 text-sm flex flex-col sm:flex-row sm:items-center justify-between gap-2 "+(d?"bg-warning/10 text-warning border-b border-warning/30":"bg-info/10 text-info border-b border-info/20"),children:[e.jsxs("span",{children:[null!==l&&l<=0?n("subscription.trialEnded"):null!==l?n("subscription.trialEndsIn",{days:l}):n("subscription.onTrial")," ",n("subscription.upgradeToKeepAccess")]}),s&&e.jsx(t.Button,{size:"sm",variant:d?"default":"outline",className:"shrink-0 "+(d?"":"border-info/30 text-info hover:bg-info/15"),onClick:()=>i(!0),children:n("subscription.upgradePlan")})]})};function xe(){const e=s.useRef(null);return s.useEffect(()=>()=>{e.current&&clearTimeout(e.current)},[]),s.useCallback((a,s=5e3)=>{e.current&&clearTimeout(e.current),e.current=setTimeout(()=>{e.current=null,a()},s)},[])}const pe=s.lazy(()=>Promise.resolve().then(function(){return require("./SubscriptionDialog-DQjHsKth.cjs")}).then(e=>({default:e.default}))),ge=({workspace:i})=>{const n=i._id?.toString(),{t:r,formattingLocale:c,fmtCents:o}=t.useTranslation(),{api:l}=t.useWorkspaceApiWithOs(),{can:d}=t.usePermissions(),{settings:u}=t.useSaaSSettings(),{visible:m,ui:x}=t.useUIVisibility(),p=x.behavior,g=m(e=>e.settings?.subscription?.changePlan),f=m(e=>e.settings?.subscription?.cancel),b=m(e=>e.settings?.subscription?.managePayment),h=m(e=>e.settings?.subscription?.invoicesTab),j=m(e=>e.settings?.subscription?.planDetails),N=d(t.Permission.WORKSPACE_BILLING_VIEW),A=d(t.Permission.WORKSPACE_BILLING_MANAGE),C=u?.workspace?.mode===te.Personal,{subscription:T,loading:y,error:w,updateSubscription:k,refetch:E}=t.useSubscriptionManagement(n),{createCheckoutSession:P}=t.useCreateCheckoutSession(n),{cancelSubscription:D,loading:M}=t.useCancelSubscription(n),{resumeSubscription:I,loading:U}=t.useResumeSubscription(n),{openBillingPortal:B,loading:R}=t.useBillingPortal(n),{versions:G,loading:L,error:K,refetch:_}=t.usePlanGroupVersions(n),F=y||L,O=w||K,{currentVersion:W,latestVersion:V,isDeprecated:z,plansToShow:H}=s.useMemo(()=>{const e=G?.currentVersion,a=G?.availableVersions||[],s=null!=T?.subscription;let t=null;a.length>0?t=a.reduce((e,a)=>a.version>e.version?a:e):e&&(t=e);return{currentVersion:e,latestVersion:t,isDeprecated:!!(s&&t&&e)&&t.version>e.version&&s,plansToShow:t?.plans&&t.plans.length>0?t.plans:[]}},[G,T?.subscription]),[J,Y]=s.useState(!1),[Z,q]=s.useState(null),[$,X]=s.useState(null),Q=xe(),[ee,ae]=s.useState(!1),[se,ie]=s.useState(!1),ge=s.useRef(void 0),fe=s.useRef(!1);s.useEffect(()=>{if(fe.current)return;if(y||!H||0===H.length)return;const e=t.workspaceSettingsManager.getState(),a=e.params?.action===t.BBAction.SelectPlan,s=!1!==p?.autoOpenPlanDialog;(!T?.subscription&&s||a)&&(fe.current=!0,a&&(ge.current=e.params,t.workspaceSettingsManager.clearParams()),ae(!0))},[y,T?.subscription,H,p?.autoOpenPlanDialog]);const[be,he]=s.useState(!1),[Se,ve]=s.useState("subscription"),je=async()=>{await Promise.all([E(),_()])},Ne=s.useMemo(()=>t.getBillingIntervalAndCurrencyFromPriceId(T?.subscription?.stripePriceId,H??[]),[T?.subscription?.stripePriceId,H]);if(!N)return e.jsx(S,{});if(F&&!T&&!G)return e.jsx(v,{});const Ae=T?.planVersion?._id||null;return n?e.jsxs("div",{className:"space-y-4",children:[O&&e.jsx(t.StatusBanner,{variant:"error",title:r("subscription.errorLoading"),message:O,description:r("subscription.errorLoadingDescription"),actionLabel:r("settings.common.retryAction",{loading:String(F)}),onAction:je,actionDisabled:F}),Z&&e.jsx(t.StatusBanner,{variant:"error",title:r("subscription.updateFailed"),message:Z,actionLabel:r("settings.common.dismiss"),onAction:()=>q(null)}),$&&e.jsx(t.StatusBanner,{variant:"success",title:r("settings.common.success"),message:$,actionLabel:r("settings.common.dismiss"),onAction:()=>X(null)}),h&&e.jsx("div",{className:"border-b border-border",children:e.jsxs("nav",{className:"-mb-px flex gap-6",role:"tablist","aria-label":r("subscription.tabsLabel"),onKeyDown:e=>{"ArrowLeft"!==e.key&&"ArrowRight"!==e.key&&"Home"!==e.key&&"End"!==e.key||(e.preventDefault(),ve("ArrowLeft"===e.key||"End"===e.key?"invoices":"subscription"))},children:[e.jsx("button",{type:"button",role:"tab",id:"subscription-tab-subscription","aria-controls":"subscription-panel-subscription","aria-selected":"subscription"===Se,tabIndex:"subscription"===Se?0:-1,onClick:()=>ve("subscription"),className:"border-b-2 py-3 text-sm font-medium transition-colors "+("subscription"===Se?"border-primary text-primary":"border-transparent text-muted-foreground hover:border-border hover:text-foreground"),children:r("subscription.plan")}),e.jsx("button",{type:"button",role:"tab",id:"subscription-tab-invoices","aria-controls":"subscription-panel-invoices","aria-selected":"invoices"===Se,tabIndex:"invoices"===Se?0:-1,onClick:()=>ve("invoices"),className:"border-b-2 py-3 text-sm font-medium transition-colors "+("invoices"===Se?"border-primary text-primary":"border-transparent text-muted-foreground hover:border-border hover:text-foreground"),children:r("subscription.invoicesTab")})]})}),"subscription"===Se&&e.jsxs("div",{id:"subscription-panel-subscription",role:"tabpanel","aria-labelledby":"subscription-tab-subscription",tabIndex:0,children:[F&&e.jsx(t.LoadingState,{}),g&&z&&T?.subscription&&e.jsxs("div",{className:"bg-warning/10 border border-warning/30 rounded-lg px-4 py-3 flex flex-col sm:flex-row sm:items-center justify-between gap-2",children:[e.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[e.jsx(a.AlertTriangle,{className:"h-4 w-4 text-warning shrink-0"}),e.jsxs("span",{className:"text-sm text-warning",children:[e.jsx("span",{className:"font-medium",children:r("subscription.planUpdateAvailable")}),e.jsxs("span",{className:"text-warning",children:[" ","— v",W?.version||"?"," → v",V?.version||"?"]})]})]}),e.jsx(t.Button,{size:"sm",variant:"outline",className:"shrink-0 border-warning/40 text-warning hover:bg-warning/15",onClick:()=>ae(!0),children:r("subscription.viewPlans")})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("div",{children:e.jsx("p",{className:"text-sm text-muted-foreground",children:r("subscription.managePlan")})}),e.jsxs("div",{className:"flex items-center gap-2",children:[(()=>{if(!g)return null;const a=T?.subscription?.subscriptionStatus===t.SubscriptionStatus.Canceled,s=T?.subscription?.cancelAtPeriodEnd;return s||M?null:a&&H&&H.length>0?e.jsx(t.Button,{size:"sm",onClick:()=>ae(!0),children:r("subscription.viewPricingPlans")}):T?.subscription&&!a&&A?e.jsx(t.Button,{variant:"outline",size:"sm",onClick:()=>ae(!0),children:r("subscription.changePlanButton")}):!T?.subscription&&H&&H.length>0?e.jsx(t.Button,{size:"sm",onClick:()=>ae(!0),children:r("subscription.viewPricingPlans")}):null})(),e.jsx(t.Button,{variant:"ghost",size:"sm",progress:F,onClick:je,disabled:F||J,children:r("settings.common.refreshAction",{loading:String(F)})})]})]}),T?.subscription?(()=>{const s=t.getBillingIntervalAndCurrencyFromPriceId(T.subscription.stripePriceId,H??[]),n=s?.interval??null,l=s?.currency??T.plan?.currency??i?.billingCurrency??"",d=n&&T.planVersion?t.getBasePriceCents(T.planVersion,l,n):null,u=l,m=T.planVersion?t.getSeatPricing(T.planVersion,l):null,x=m&&n?t.getPerSeatPriceCents(T.planVersion,l,n):null,p=Array.isArray(i?.users)?i.users.length:1,S=m?.includedSeats??0,v=Math.max(0,p-S),N=!!T.plan?.isFreemium,y=null!=d?0===d?r("subscription.free"):o(d,u):N?r("subscription.free"):null,w=n===t.BillingIntervals.Monthly?r("subscription.billingInterval.perMonth"):n===t.BillingIntervals.Quarterly?r("subscription.billingInterval.perQuarter"):n===t.BillingIntervals.Yearly?r("subscription.billingInterval.perYear"):"";return e.jsxs("div",{className:"border rounded-lg overflow-hidden "+(z?"border-warning/40":"border-border"),children:[T.subscription.subscriptionStatus===t.SubscriptionStatus.Trialing&&!T.subscription.cancelAtPeriodEnd&&e.jsx(me,{subscription:T.subscription,showChangePlan:g,setDialogOpen:ae}),e.jsxs("div",{className:"p-4 sm:p-5 "+(z?"bg-warning/5":"bg-muted/30"),children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2 mb-2",children:[e.jsx("h3",{className:"text-lg font-semibold text-foreground",children:T.plan?.name||r("subscription.noPlanAssigned")}),e.jsx(ue,{subscription:T.subscription}),T.subscription.subscriptionStatus===t.SubscriptionStatus.Trialing&&re(c,T.subscription.trialEnd||T.subscription.stripeCurrentPeriodEnd)&&e.jsx("span",{className:"text-xs text-muted-foreground",children:r("subscription.endsOn",{date:re(c,T.subscription.trialEnd||T.subscription.stripeCurrentPeriodEnd)})}),z&&e.jsxs("span",{className:"inline-flex items-center gap-1 px-2.5 py-0.5 rounded-full text-xs font-medium bg-warning/15 text-warning",children:[e.jsx(a.AlertTriangle,{className:"h-3.5 w-3.5"}),r("subscription.status.deprecated")]})]}),T.plan?.description&&e.jsx("p",{className:"text-sm text-muted-foreground mb-3",children:T.plan.description}),!N&&e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-start sm:justify-between gap-3 sm:gap-4",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-baseline gap-1 whitespace-nowrap",children:[e.jsx("span",{className:"text-2xl font-bold text-foreground",children:y||r("invoices.na")}),y&&y!==r("subscription.free")&&w&&e.jsx("span",{className:"text-sm text-muted-foreground",children:w})]}),m&&null!=x&&x>0&&!C&&e.jsx("div",{className:"text-xs text-muted-foreground mt-1",children:r("subscription.perSeatDisplay",{price:o(x,u),interval:w})}),!C&&m&&null!=x&&x>0&&v>0&&y&&y!==r("subscription.free")&&null!=d&&e.jsx("div",{className:"text-xs text-muted-foreground mt-1 pt-1 border-t border-border",children:r("subscription.estTotalDisplay",{total:o(d+x*v,u),interval:w,count:v})})]}),(T.subscription.subscriptionStatus===t.SubscriptionStatus.Active||T.subscription.subscriptionStatus===t.SubscriptionStatus.Trialing)&&!T.subscription.cancelAtPeriodEnd&&re(c,T.subscription.stripeCurrentPeriodEnd)&&e.jsxs("div",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",children:[e.jsx(a.Calendar,{className:"h-3.5 w-3.5 flex-shrink-0"}),e.jsx("span",{children:r("subscription.nextBillingDisplay",{date:re(c,T.subscription.stripeCurrentPeriodEnd)??""})})]})]}),z&&e.jsx("p",{className:"text-xs text-warning mt-2",children:r("subscription.versionLabel",{version:W?.version||r("invoices.na")})}),!N&&(b||f||T.subscription.cancelAtPeriodEnd)&&(T.subscription.subscriptionStatus===t.SubscriptionStatus.Active||T.subscription.subscriptionStatus===t.SubscriptionStatus.Trialing||T.subscription.subscriptionStatus===t.SubscriptionStatus.PastDue)&&e.jsxs("div",{className:"flex flex-wrap items-center gap-2 sm:gap-3 mt-4 pt-4 border-t border-border",children:[b&&T.subscription&&A&&T.subscription?.subscriptionId&&e.jsx(t.Button,{variant:"outline",size:"sm",onClick:()=>B(),disabled:R,progress:R,children:r(R?"subscription.openingPortal":"subscription.managePayment")}),A&&T.subscription?.subscriptionId&&(T.subscription.subscriptionStatus===t.SubscriptionStatus.Active||T.subscription.subscriptionStatus===t.SubscriptionStatus.Trialing)&&e.jsx(e.Fragment,{children:T.subscription.cancelAtPeriodEnd?e.jsx(t.Button,{variant:"outline",size:"sm",onClick:()=>he(!0),disabled:J||M||U,progress:U,children:T.subscription.subscriptionStatus===t.SubscriptionStatus.Trialing?r("subscription.resumeTrial"):r("subscription.resumeTitle")}):f?e.jsx(t.Button,{variant:"outline",size:"sm",className:"text-destructive hover:text-destructive hover:bg-destructive/10 border-destructive/20",onClick:()=>ie(!0),disabled:J||M||U,progress:M||J,children:M||J?r("subscription.canceling"):T.subscription.subscriptionStatus===t.SubscriptionStatus.Trialing?r("subscription.cancelTrial"):r("subscription.cancelTitle")}):null})]})]}),T.subscription.subscriptionStatus===t.SubscriptionStatus.PastDue&&e.jsx(de,{className:"px-5 py-3 bg-destructive/10 border-t border-destructive/20",icon:e.jsx(a.AlertTriangle,{className:"h-5 w-5 text-destructive flex-shrink-0 mt-0.5"}),titleClassName:"text-sm font-medium text-destructive",title:r("subscription.paymentPastDue"),descriptionClassName:"text-sm text-destructive mt-0.5",description:r("subscription.paymentPastDueDescription"),children:h&&e.jsx(t.Button,{variant:"outline",size:"sm",className:"mt-2 border-destructive/20 text-destructive hover:bg-destructive/15",onClick:()=>ve("invoices"),children:r("subscription.viewInvoices")})}),T.subscription.subscriptionStatus===t.SubscriptionStatus.PastDue&&T.subscription.dunningState&&T.subscription.dunningState!==t.DunningState.None&&e.jsx(de,{className:"px-5 py-3 bg-destructive/10 border-t border-destructive/20",icon:e.jsx(a.AlertTriangle,{className:"h-5 w-5 text-destructive flex-shrink-0 mt-0.5"}),titleClassName:"text-sm font-medium text-destructive",title:T.subscription.dunningState===t.DunningState.Final?r("subscription.dunningFinal"):T.subscription.dunningState===t.DunningState.Suspended?r("subscription.dunningSuspended"):r("subscription.dunningRecovery"),descriptionClassName:"text-sm text-destructive mt-0.5",description:T.subscription.dunningState===t.DunningState.Suspended?r("subscription.dunningSuspendedDescription"):r("subscription.dunningRecoveryDescription")}),T.subscription.subscriptionStatus===t.SubscriptionStatus.Paused&&e.jsx(de,{className:"px-5 py-3 bg-info/10 border-t border-info/20",icon:e.jsx(a.Calendar,{className:"h-5 w-5 text-info flex-shrink-0 mt-0.5"}),titleClassName:"text-sm font-medium text-info",title:r("subscription.subscriptionPaused"),descriptionClassName:"text-sm text-info mt-0.5",description:r("subscription.subscriptionPausedDescription")}),T.subscription.cancelAtPeriodEnd&&e.jsx(de,{className:"px-5 py-3 bg-warning/10 border-t border-warning/30",icon:e.jsx(a.Calendar,{className:"h-5 w-5 text-warning flex-shrink-0 mt-0.5"}),titleClassName:"text-sm font-medium text-warning",title:T.subscription.subscriptionStatus===t.SubscriptionStatus.Trialing?r("subscription.scheduledTrialCancellation"):r("subscription.scheduledCancellation"),descriptionClassName:"text-sm text-warning mt-0.5",description:re(c,T.subscription.subscriptionStatus===t.SubscriptionStatus.Trialing&&T.subscription.trialEnd||T.subscription.stripeCurrentPeriodEnd)?e.jsxs(e.Fragment,{children:[T.subscription.subscriptionStatus===t.SubscriptionStatus.Trialing?r("subscription.trialEndDescription"):r("subscription.cancelEndDescription")," ",e.jsx("span",{className:"font-medium",children:re(c,T.subscription.subscriptionStatus===t.SubscriptionStatus.Trialing&&T.subscription.trialEnd||T.subscription.stripeCurrentPeriodEnd)}),"."]}):r("subscription.cancelEndFallback")}),j&&T.planVersion&&e.jsx(ce,{planVersion:T.planVersion,subscriptionCurrency:l,billingInterval:n,seatPricingConfig:m,isPersonalMode:C,memberCount:p,includedSeats:S,billableSeats:v,perSeatPrice:x,intervalLabel:w})]})})():e.jsx(t.EmptyState,{icon:e.jsx(a.CreditCard,{className:"h-5 w-5 text-muted-foreground"}),title:r("subscription.noSubscription"),description:r("subscription.noSubscriptionDescription"),action:g&&H&&H.length>0?e.jsx(t.Button,{size:"sm",onClick:()=>ae(!0),children:r("subscription.viewPricingPlans")}):void 0})]}),!G&&!F&&!O&&e.jsx(t.EmptyState,{title:r("subscription.errorLoading"),description:r("subscription.noPlansAvailable"),action:e.jsx(t.Button,{variant:"outline",size:"sm",progress:F,onClick:je,children:r("settings.common.refreshAction",{loading:String(F)})})})]}),h&&"invoices"===Se&&e.jsxs("div",{id:"subscription-panel-invoices",role:"tabpanel","aria-labelledby":"subscription-tab-invoices",tabIndex:0,children:[F&&e.jsx(t.LoadingState,{}),e.jsx(ne,{workspaceId:n,hasActiveSubscription:null!=T?.subscription,onViewPricingPlans:()=>ve("subscription"),limit:20})]}),H&&H.length>0&&e.jsx(s.Suspense,{fallback:ee?e.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-background/80 backdrop-blur-sm",children:e.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[e.jsx(a.Loader2,{className:"h-5 w-5 animate-spin"}),e.jsx("span",{children:r("settings.common.loading")})]})}):null,children:e.jsx(pe,{open:ee,onOpenChange:ae,planVersions:H,currentPlanVersionId:Ae||null,currentStripePriceId:T?.subscription?.stripePriceId,billingCurrency:i.billingCurrency,trialUsedAt:i.trialUsedAt,workspaceName:i.name,initialInterval:ge.current?.interval,initialCurrency:ge.current?.currency,currentMemberCount:Array.isArray(i?.users)?i.users.length:void 0,onSelectPlan:async(e,a=t.BillingIntervals.Monthly,s)=>{if(!n)return;const c=H?.find(a=>a._id===e),o=s??Ne?.currency??T?.plan?.currency??i?.billingCurrency??"",d=c?t.getStripePriceIdForInterval(c,o,a):null,u=T?.subscription?.stripePriceId;if(!d||!u||d!==u){Y(!0),q(null),X(null);try{const{successUrl:s,cancelUrl:i}=t.createCheckoutRedirectUrls(n);let d;if(c?.plan?.isFreemium){return T?.subscription?.subscriptionId?(ae(!1),void ie(!0)):(await l.selectFreePlan(n,e),ae(!1),t.invalidateSubscription(),await je(),void X(r("subscription.updateSuccess")))}const u=T?.subscription?.subscriptionStatus===t.SubscriptionStatus.Canceled;if(d=T?.subscription&&!u?await k(e,{billingInterval:a,successUrl:s,cancelUrl:i}):await P({planVersionId:e,billingInterval:a,currency:o||void 0,successUrl:s,cancelUrl:i}),d&&"checkoutUrl"in d&&d.checkoutUrl)return void t.safeRedirect(d.checkoutUrl);X(r("subscription.updateSuccess")),await je()}catch(e){const a=e instanceof Error?e.message:r("subscription.errorProcessing");q(a)}finally{Y(!1),Q(()=>{q(null),X(null)})}}},loading:J||F})}),e.jsx(oe,{resumeDialogOpen:be,setResumeDialogOpen:he,resumeLoading:U,handleResumeSubscription:async()=>{if(n){he(!1),Y(!0),q(null),X(null);try{await I(),X(r("subscription.resumeSuccess")),await je()}catch(e){const a=e instanceof Error?e.message:r("subscription.errorResuming");q(a)}finally{Y(!1),Q(()=>{q(null),X(null)})}}},subscription:T}),e.jsx(le,{cancelDialogOpen:se,setCancelDialogOpen:ie,cancelLoading:M,handleCancelSubscription:async()=>{if(n){ie(!1),Y(!0),q(null),X(null);try{await D(),X(r("subscription.cancelSuccess")),await je()}catch(e){const a=e instanceof Error?e.message:r("subscription.errorCanceling");q(a)}finally{Y(!1),Q(()=>{q(null),X(null)})}}},subscription:T})]}):e.jsx("div",{className:"border rounded-lg p-4 text-center text-muted-foreground",children:e.jsx("p",{children:r("subscription.invalidWorkspace")})})};function fe(e){return e.replace(/[_-]/g," ").replace(/\b\w/g,e=>e.toUpperCase())}function be(e){try{const a=new Date(e);if(isNaN(a.getTime()))return null;const s=new Date;return Math.ceil((a.getTime()-s.getTime())/864e5)}catch{return null}}const he=()=>{const{quotas:i,loading:n,error:r,refetch:c}=t.useQuotaUsageContext(),{t:o,formattingLocale:l,fmtNum:d}=t.useTranslation(),{can:u}=t.usePermissions(),{response:m}=t.useSubscriptionContext(),[x,p]=s.useState(!1),g=s.useMemo(()=>{const e={};if(!m?.planVersion||!m?.subscription)return e;const a=m.planVersion,s=m.subscription,n=s.billingInterval??"monthly",r=s.plan?.currency??"usd";if(!i)return e;for(const s of Object.keys(i)){const c=t.getQuotaOverageCents(a,r,s,n);if(null==c||c<=0)continue;const o=a.quotas?.[s],l=o?.[n],d=l?.unitSize??1,u=i[s].overage,m=(d>1?Math.ceil(u/d):u)*c;e[s]={overageCents:c,unitSize:d,currency:r,estimatedCostCents:m}}return e},[m,i]),f=s.useMemo(()=>{const e=m?.subscription?.usageCurrentPeriodEnd||m?.subscription?.stripeCurrentPeriodEnd;if(!e)return null;const a=t.formatDate(e,l);return a?{endDate:a,daysRemaining:be(e)}:null},[m,l]),b=async()=>{p(!0);try{await c()}finally{p(!1)}};if(n&&!i)return e.jsx(v,{});if(!u(t.Permission.WORKSPACE_USAGE_VIEW))return null;if(r)return e.jsx(t.StatusBanner,{variant:"error",title:o("usage.errorLoading"),message:r,actionLabel:o("settings.common.retryAction",{loading:String(x)}),onAction:b,actionDisabled:x});const h=function(e){return[...e].sort(([,e],[,a])=>{if(e.hasOverage&&!a.hasOverage)return-1;if(!e.hasOverage&&a.hasOverage)return 1;const s=e.included>0?e.consumed/e.included:e.consumed>0?1:0;return(a.included>0?a.consumed/a.included:a.consumed>0?1:0)-s})}(i?Object.entries(i):[]);if(0===h.length)return e.jsx(t.EmptyState,{icon:e.jsx(a.BarChart3,{className:"h-5 w-5 text-muted-foreground"}),title:o("usage.noData"),description:o("usage.noDataHint"),action:e.jsx(t.Button,{variant:"outline",size:"sm",progress:x,onClick:b,children:o("settings.common.refreshAction",{loading:String(x)})})});const S=h.filter(([,e])=>e.hasOverage).length,j=h.length>0?Math.round(h.reduce((e,[,a])=>e+(a.included>0?a.consumed/a.included*100:0),0)/h.length):0,N=Object.values(g).reduce((e,a)=>e+a.estimatedCostCents,0),A=Object.values(g)[0]?.currency??"usd",C=e=>t.formatMinorAmountIntl(e,A,l);return e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:o("usage.description")}),e.jsxs(t.Button,{variant:"ghost",size:"sm",onClick:b,disabled:x,children:[e.jsx(a.RefreshCw,{className:t.cn("h-3.5 w-3.5 me-1.5",x&&"animate-spin")}),o("settings.common.refreshAction",{loading:String(x)})]})]}),f&&e.jsxs("div",{className:"flex items-center gap-2 rounded-lg border border-border bg-muted/30 px-4 py-3 text-sm text-muted-foreground",children:[e.jsx(a.Calendar,{className:"h-4 w-4 text-muted-foreground/70 flex-shrink-0"}),e.jsxs("span",{children:[o("usage.resetDateDisplay",{date:f.endDate}),null!==f.daysRemaining&&f.daysRemaining>0&&e.jsxs("span",{className:"text-muted-foreground",children:[" ","(",o("usage.daysRemainingDisplay",{count:f.daysRemaining}),")"]}),null!==f.daysRemaining&&f.daysRemaining<=0&&e.jsxs("span",{className:"text-warning font-medium",children:[" (",o("usage.renewingSoon"),")"]})]})]}),e.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-3 gap-2 sm:gap-3",children:[e.jsxs("div",{className:"border border-border rounded-lg p-3 sm:p-4",children:[e.jsx("p",{className:"text-xs text-muted-foreground font-medium",children:o("usage.totalResources")}),e.jsx("p",{className:"text-lg sm:text-xl font-semibold text-foreground mt-1",children:d(h.length)})]}),e.jsxs("div",{className:"border border-border rounded-lg p-3 sm:p-4",children:[e.jsx("p",{className:"text-xs text-muted-foreground font-medium",children:o("usage.overallUsage")}),e.jsx("p",{className:"text-lg sm:text-xl font-semibold text-foreground mt-1",children:d(j)+"%"})]}),e.jsxs("div",{className:t.cn("border rounded-lg p-3 sm:p-4",S>0?"border-destructive/20 bg-destructive/10":"border-border"),children:[e.jsx("p",{className:"text-xs text-muted-foreground font-medium",children:o("usage.inOverage")}),e.jsx("p",{className:t.cn("text-lg sm:text-xl font-semibold mt-1",S>0?"text-destructive":"text-foreground"),children:d(S)})]}),S>0&&N>0&&e.jsxs("div",{className:"border border-destructive/20 bg-destructive/10 rounded-lg p-3 sm:p-4",children:[e.jsx("p",{className:"text-xs text-muted-foreground font-medium",children:o("usage.estOverageCost")}),e.jsx("p",{className:"text-lg sm:text-xl font-semibold mt-1 text-destructive",children:C(N)})]})]}),S>0&&e.jsx("div",{className:"bg-warning/10 border border-warning/30 rounded-lg p-4",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(a.AlertTriangle,{className:"h-5 w-5 text-warning flex-shrink-0 mt-0.5 hidden sm:block"}),e.jsxs("div",{className:"flex-1",children:[e.jsx("h3",{className:"text-sm font-semibold text-warning mb-1",children:o("usage.overageDetected")}),e.jsx("p",{className:"text-sm text-warning",children:o("usage.overageWarning",{count:S})}),N>0&&e.jsx("p",{className:"text-sm text-warning font-medium mt-1",children:o("usage.estOverageCharges",{amount:C(N)})})]})]})}),e.jsx("div",{className:"space-y-3",children:h.map(([a,s])=>{const t=(i=s.consumed,(n=s.included)<=0?i>0?100:0:Math.min(i/n*100,100));var i,n;const r=function(e,a){return a?{bar:"bg-destructive",bg:"bg-destructive/15",badge:"bg-destructive/15",badgeText:"text-destructive"}:e>=90?{bar:"bg-warning",bg:"bg-warning/15",badge:"bg-warning/15",badgeText:"text-warning"}:e>=75?{bar:"bg-warning/70",bg:"bg-warning/15",badge:"bg-warning/15",badgeText:"text-warning"}:{bar:"bg-info",bg:"bg-info/15",badge:"bg-info/15",badgeText:"text-info"}}(t,s.hasOverage),c=g[a];return e.jsx(Se,{slug:a,quota:s,percent:t,colors:r,pricing:c},a)})})]})};function Se({slug:a,quota:s,percent:i,colors:n,pricing:r}){const{t:c,formattingLocale:o}=t.useTranslation(),l=e=>function(e,a){return new Intl.NumberFormat(a,{notation:"compact",maximumFractionDigits:1}).format(e)}(e,o),d=(e,a)=>t.formatMinorAmountIntl(e,a,o);return e.jsxs("div",{className:"border border-border rounded-lg p-4 sm:p-5",children:[e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-y-1 mb-3",children:[e.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[e.jsx("h3",{className:"text-sm font-medium text-foreground truncate",children:fe(a)}),s.hasOverage&&e.jsx("span",{className:t.cn("inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium",n.badge,n.badgeText),children:c("usage.overage")}),!s.hasOverage&&i>=90&&e.jsx("span",{className:t.cn("inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium",n.badge,n.badgeText),children:c("usage.almostFull")})]}),e.jsxs("span",{className:"text-sm text-muted-foreground whitespace-nowrap",children:[l(s.consumed)," / ",l(s.included)]})]}),e.jsx("div",{role:"progressbar","aria-valuenow":Math.round(i),"aria-valuemin":0,"aria-valuemax":100,"aria-label":fe(a),className:t.cn("h-2 rounded-full w-full",n.bg),children:e.jsx("div",{className:t.cn("h-2 rounded-full transition-all duration-500",n.bar),style:{width:`${i}%`}})}),e.jsxs("div",{className:"flex items-center justify-between mt-2 text-xs text-muted-foreground",children:[e.jsx("span",{children:c("usage.percentUsed",{percent:Math.round(i)})}),e.jsx("span",{children:s.available>0?c("usage.availableRemaining",{count:l(s.available)}):s.hasOverage?c("usage.overLimitCount",{count:l(s.overage)}):c("usage.fullyUsed")})]}),s.hasOverage&&r&&e.jsxs("div",{className:"mt-3 pt-3 border-t border-border space-y-2",children:[e.jsxs("div",{className:"flex items-center justify-between text-xs",children:[e.jsx("span",{className:"text-muted-foreground",children:c("usage.overageUnits")}),e.jsx("span",{className:"font-medium text-foreground",children:l(s.overage)})]}),e.jsxs("div",{className:"flex items-center justify-between text-xs",children:[e.jsx("span",{className:"text-muted-foreground",children:c("usage.rate")}),e.jsx("span",{className:"font-medium text-foreground",children:c("usage.rateDisplay",{rate:d(r.overageCents,r.currency),unitSize:r.unitSize})})]}),r.unitSize>1&&e.jsxs("div",{className:"flex items-center justify-between text-xs",children:[e.jsx("span",{className:"text-muted-foreground",children:c("usage.billableBlocks")}),e.jsx("span",{className:"font-medium text-foreground",children:l(Math.ceil(s.overage/r.unitSize))})]}),e.jsxs("div",{className:"flex items-center justify-between text-xs pt-2 border-t border-border",children:[e.jsx("span",{className:"font-medium text-destructive",children:c("usage.estimatedCharge")}),e.jsx("span",{className:"font-semibold text-destructive",children:d(r.estimatedCostCents,r.currency)})]})]}),!s.hasOverage&&r&&e.jsx("div",{className:"mt-2 text-xs text-muted-foreground",children:c("usage.overageRateDisplay",{rate:c("usage.rateDisplay",{rate:d(r.overageCents,r.currency),unitSize:r.unitSize})})})]})}const ve=f.Root,je=x.forwardRef(({className:a,children:s,...i},n)=>e.jsxs(f.Trigger,{ref:n,className:t.cn("flex h-10 sm:h-9 w-full items-center justify-between rounded-md border border-input bg-transparent px-3 py-2 text-base sm:text-sm shadow-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50",a),...i,children:[s,e.jsx(f.Icon,{asChild:!0,children:e.jsx(o.CaretSortIcon,{className:"h-4 w-4 opacity-50"})})]}));je.displayName=f.Trigger.displayName;const Ne=x.forwardRef(({className:a,children:s,position:i="popper",...n},r)=>{const{container:c}=x.useContext(t.PortalContext);return e.jsx(f.Portal,{container:c,children:e.jsx(f.Content,{ref:r,className:t.cn("relative z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2","popper"===i&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",a),position:i,...n,children:e.jsx(f.Viewport,{className:t.cn("p-1","popper"===i&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:s})})})});Ne.displayName=f.Content.displayName;x.forwardRef(({className:a,...s},i)=>e.jsx(f.Label,{ref:i,className:t.cn("px-2 py-1.5 text-sm font-semibold",a),...s})).displayName=f.Label.displayName;const Ae=x.forwardRef(({className:a,children:s,...i},n)=>e.jsxs(f.Item,{ref:n,className:t.cn("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 ps-2 pe-8 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",a),...i,children:[e.jsx("span",{className:"absolute end-2 flex h-3.5 w-3.5 items-center justify-center",children:e.jsx(f.ItemIndicator,{children:e.jsx(o.CheckIcon,{className:"h-4 w-4"})})}),e.jsx(f.ItemText,{children:s})]}));Ae.displayName=f.Item.displayName;x.forwardRef(({className:a,...s},i)=>e.jsx(f.Separator,{ref:i,className:t.cn("-mx-1 my-1 h-px bg-muted",a),...s})).displayName=f.Separator.displayName;const Ce=({workspace:i})=>{const{user:n}=t.useSaaSAuth(),{t:r,fmtNum:c,fmtCents:o}=t.useTranslation(),[l,d]=s.useState(0),[m,x]=s.useState(!1),[p,g]=s.useState([]),[f,b]=s.useState(null),{getUsers:h,removeUser:j,updateUser:N}=t.useSaaSWorkspaces(),{settings:A}=t.useSaaSSettings(),{can:C}=t.usePermissions(),{visible:T}=t.useUIVisibility(),{response:y}=t.useSubscriptionContext(),w=t.useSeatStatus(i,{settingsMaxUsers:A?.workspace?.maxWorkspaceUsers});s.useEffect(()=>{i&&(x(!0),h(i._id).then(e=>{g(e)}).catch(e=>{t.handleError(e,{component:"WorkspaceSettingsUsers",action:"getUsers",metadata:{workspaceId:i._id}})}).finally(()=>{x(!1)}))},[i,l,h]);const k=()=>{d(e=>e+1)},E=A?.workspace?.mode===te.Personal;if(m||!i)return e.jsx(v,{});if(E)return null;const P=e=>"string"==typeof e?{name:r("users.unknownUser"),email:e,id:e,role:"-"}:{name:e.name||r("users.unknownUser"),email:e.email,id:e._id},D=p.map(e=>({...e,...P(e.user)})),M=T(e=>e.settings?.users?.invite,t.Permission.WORKSPACE_MEMBERS_INVITE),I=T(e=>e.settings?.users?.remove,t.Permission.WORKSPACE_MEMBERS_REMOVE),U=T(e=>e.settings?.users?.roleChange,t.Permission.WORKSPACE_MEMBERS_ROLE_CHANGE),B=T(e=>e.settings?.users?.seatPricing),{hasSeatPricing:R,includedSeats:G,maxUsers:L,canInvite:K,inviteBlockReason:_,inviteBlockMessageKey:F,inviteBlockMessageValues:O,perSeatPriceCents:W,currency:V}=w,z=p.length,H=y?.subscription?.billingInterval??"monthly",J=R&&z>=G;return e.jsxs("div",{children:[!C(t.Permission.WORKSPACE_MEMBERS_INVITE)&&!C(t.Permission.WORKSPACE_MEMBERS_REMOVE)&&!C(t.Permission.WORKSPACE_MEMBERS_ROLE_CHANGE)&&e.jsx(S,{descriptionKey:"users.adminOnly"}),M&&e.jsx("div",{className:"mb-4",children:K?e.jsxs("div",{children:[e.jsx(Te,{onInvite:k,workspaceId:i._id}),B&&J&&null!=W&&W>0&&e.jsx("div",{className:"flex items-center gap-1.5 mt-2 text-xs text-warning bg-warning/10 px-3 py-1.5 rounded-md",children:e.jsx("span",{children:r("users.extraSeatCost",{price:o(W,V),interval:H})})})]}):e.jsx("div",{className:"flex items-center justify-between p-3 bg-destructive/10 border border-destructive/20 rounded-md",children:e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium text-destructive",children:r("users.limitReached",{reason:_??"member_limit_reached"})}),e.jsx("p",{className:"text-xs text-destructive mt-0.5",children:F?r(F,O??void 0):""})]})})}),B&&(R||L>0)&&e.jsxs("div",{className:"mb-4 rounded-lg border bg-muted/50 p-4",children:[e.jsxs("div",{className:"flex items-center justify-between mb-2",children:[e.jsx("h4",{className:"text-sm font-medium text-foreground",children:r("users.seatHeading",{hasSeatPricing:String(R)})}),L>0&&e.jsxs("span",{className:"text-xs font-medium px-2 py-0.5 rounded-full "+(z>=L?"bg-destructive/15 text-destructive":z>=.8*L?"bg-warning/15 text-warning":"bg-success/15 text-success"),children:[c(z)," / ",c(L)]})]}),L>0&&e.jsx("div",{role:"progressbar","aria-valuenow":z,"aria-valuemin":0,"aria-valuemax":L,"aria-label":r("users.seatHeading"),className:"w-full h-1.5 bg-muted rounded-full mb-3",children:e.jsx("div",{className:"h-1.5 rounded-full transition-all "+(z>=L?"bg-destructive":z>=.8*L?"bg-warning":"bg-success"),style:{width:`${Math.min(100,z/L*100)}%`}})}),e.jsxs("div",{className:"flex items-center justify-between text-sm text-muted-foreground",children:[e.jsx("div",{children:R?e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"text-foreground font-medium",children:c(G)})," ",r("users.included"),null!=W&&W>0&&e.jsxs("span",{className:"text-muted-foreground/70",children:[" ","· ",o(W,V),r("users.perExtraSeat")]})]}):e.jsxs("span",{children:[e.jsx("span",{className:"text-foreground font-medium",children:c(L)})," ",r("users.maxMembers")]})}),L>0?e.jsxs("span",{children:[c(Math.max(0,L-z))," ",r("users.available")]}):e.jsx("span",{className:"text-muted-foreground/70",children:r("users.noMemberLimit")})]})]}),e.jsxs("div",{className:"mb-4 flex items-center justify-between",children:[e.jsx("div",{children:e.jsx("div",{className:"text-sm text-muted-foreground",children:r("users.memberCount",{count:z})})}),e.jsx("div",{children:e.jsx(t.Button,{variant:"ghost",size:"sm",onClick:k,progress:m,children:r("settings.common.refreshAction",{loading:String(m)})})})]}),e.jsx("ul",{className:"space-y-2",children:D.map((s,c)=>{const o=s.id===n?.id,l=("object"==typeof i.createdBy&&null!==i.createdBy?i.createdBy._id:i.createdBy)===s.id;return e.jsxs("li",{className:"border rounded-md p-3",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsxs("div",{className:"flex items-center gap-2 sm:gap-3 min-w-0",children:[e.jsx("div",{className:"w-8 h-8 bg-muted rounded-full flex items-center justify-center text-sm font-medium shrink-0",children:s.name.charAt(0).toUpperCase()}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"font-medium text-sm truncate",children:s.name}),e.jsx("div",{className:"text-xs text-muted-foreground truncate",children:s.email})]})]}),e.jsxs("div",{className:"flex items-center gap-1 shrink-0",children:[o&&e.jsx("span",{className:"text-xs bg-info/15 text-info px-2 py-0.5 rounded",children:r("users.you")}),l&&e.jsx("span",{className:"text-xs bg-primary/10 text-primary px-2 py-0.5 rounded",children:r("users.owner")})]})]}),U&&e.jsxs("div",{className:"flex items-center gap-2 mt-2 pt-2 border-t border-border/60 sm:mt-0 sm:pt-0 sm:border-0",children:[e.jsxs("div",{className:"relative flex-1 sm:flex-initial",children:[e.jsxs(ve,{disabled:o||!U||l||f===s.id,value:s.role,onValueChange:e=>{return a=i._id,n=s.id,r=e,void(t.isWorkspaceOwner(i,n)?t.handleError(new Error("Cannot change the role of the workspace owner"),{component:"WorkspaceSettingsUsers",action:"handleUpdateRole",metadata:{workspaceId:a,userId:n,role:r}}):(b(n),N(a,n,{role:r}).then(()=>{k()}).catch(e=>{t.handleError(e,{component:"WorkspaceSettingsUsers",action:"handleUpdateRole",metadata:{workspaceId:a,userId:n,role:r}})}).finally(()=>{b(null)})));var a,n,r},children:[e.jsx(je,{children:e.jsx(u.SelectValue,{placeholder:r("users.selectRole")})}),e.jsx(Ne,{children:i?.roles.map(a=>e.jsx(Ae,{value:a,children:a},a))})]}),f===s.id&&e.jsx("div",{className:"absolute end-8 top-1/2 -translate-y-1/2 pointer-events-none",children:e.jsx(a.Loader2,{className:"h-4 w-4 animate-spin text-muted-foreground"})})]}),!o&&!l&&I&&e.jsx(t.Button,{variant:"destructive",size:"sm",startIcon:e.jsx(a.TrashIcon,{}),"aria-label":r("settings.common.delete"),onClick:()=>{return e=s.id,void(t.isWorkspaceOwner(i,e)?t.handleError(new Error("Cannot remove the workspace owner"),{component:"WorkspaceSettingsUsers",action:"handleRemoveUser",metadata:{workspaceId:i._id,userId:e}}):j(i._id,e).then(()=>{k()}).catch(a=>{t.handleError(a,{component:"WorkspaceSettingsUsers",action:"handleRemoveUser",metadata:{workspaceId:i._id,userId:e}})}));var e}})]})]},s.id??c)})}),0===p.length&&e.jsx("div",{className:"text-center py-8 text-muted-foreground",children:r("users.noMembers")})]})};function Te({onInvite:a,workspaceId:i}){const{t:n}=t.useTranslation(),{addUser:r,getWorkspace:c}=t.useSaaSWorkspaces(),{settings:o}=t.useSaaSSettings(),[l,d]=s.useState(""),[m,x]=s.useState("admin"),[p,g]=s.useState(!1),[f,b]=s.useState(null),[h,S]=s.useState(null),[v,j]=s.useState(null),N=xe(),A=o?.workspace.roles??v?.roles??[];s.useEffect(()=>{i&&c(i).then(j).catch(e=>{t.handleError(e,{component:"InviteMember",action:"getWorkspace"})})},[i]);const C=()=>{b(null),S(null),d(""),x("admin")};return e.jsxs("div",{className:"flex gap-2 flex-col gap-y-2",children:[f&&e.jsx(t.StatusBanner,{variant:"error",message:f}),h&&e.jsx(t.StatusBanner,{variant:"success",message:h}),e.jsxs("div",{children:[e.jsx(t.Label,{children:n("users.inviteByEmail")}),e.jsx(t.Input,{type:"email",value:l,onChange:e=>d(e.target.value),placeholder:n("users.emailPlaceholder")})]}),e.jsxs("div",{children:[e.jsx(t.Label,{children:n("users.role")}),e.jsxs(ve,{value:m,onValueChange:x,children:[e.jsx(je,{children:e.jsx(u.SelectValue,{placeholder:n("users.selectRole")})}),e.jsx(Ne,{children:A.map(a=>e.jsx(Ae,{value:a,children:a},a))})]})]}),e.jsx("div",{children:e.jsx(t.Button,{progress:p,onClick:async()=>{const e=l.trim();if(!e)return void b(n("users.emailRequired"));/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)?(g(!0),await r(i,e,m).then(()=>{S(n("users.inviteSuccess")),a?.()}).catch(a=>{t.handleError(a,{component:"InviteMember",action:"addUser",metadata:{workspaceId:i,email:e,role:m}}),b(a instanceof Error?a.message:n("users.inviteFailed"))}).finally(()=>{g(!1),N(C,6e3)})):b(n("users.invalidEmail"))},disabled:p||!l||!m,children:p?n("users.inviting"):n("users.inviteAs",{role:m})})})]})}const ye=({workspace:s,section:i,setSection:n})=>{const{t:r}=t.useTranslation(),{settings:c}=t.useSaaSSettings(),{appPermissions:o}=t.usePermissionConfig(),{visible:l}=t.useUIVisibility(),d=c?.workspace?.mode===te.Personal,u=o&&Object.keys(o).length>0,m=(e,a)=>l(a=>a.settings?.sections?.[e],a),x=m(t.SettingsScreen.Profile),p=m(t.SettingsScreen.Security),g=m(t.SettingsScreen.Devices),f=m(t.SettingsScreen.ConnectedAgents),b=m(t.SettingsScreen.General,t.Permission.WORKSPACE_SETTINGS_VIEW),h=m(t.SettingsScreen.Users,t.Permission.WORKSPACE_MEMBERS_VIEW)&&!d,S=m(t.SettingsScreen.Subscription,t.Permission.WORKSPACE_BILLING_VIEW),v=m(t.SettingsScreen.Usage,t.Permission.WORKSPACE_USAGE_VIEW),j=m(t.SettingsScreen.Credits,t.Permission.WORKSPACE_BILLING_VIEW),N=m(t.SettingsScreen.Features,t.Permission.WORKSPACE_FEATURES_VIEW),A=m(t.SettingsScreen.Notifications),C=m(t.SettingsScreen.Permissions)&&u&&!d,T=m(t.SettingsScreen.Danger,t.Permission.WORKSPACE_DELETE)&&!d,y=x||p||g||f,w=b||h||S||v||j||N||A||C||T,k=(a,s,r)=>e.jsx(t.SidebarNavItem,{icon:s,label:r,active:i===a,onClick:()=>n(a)});return e.jsxs("div",{className:"w-full sm:w-56 sm:h-full flex flex-col space-y-4 sm:space-y-6 shrink-0",children:[s&&e.jsx("div",{className:"sticky top-0 z-10 bg-muted border-b p-2 py-4 pe-10 sm:pe-2",children:e.jsxs("div",{className:"flex items-center gap-x-2",children:[s.image&&s.image.trim()&&e.jsx("div",{className:"bg-info/15 rounded flex items-center justify-center text-info font-medium px-0.5 py-0.5",style:{width:"40px",height:"40px",minWidth:"40px",minHeight:"40px"},children:e.jsx("img",{src:s.image,className:"w-full h-full object-contain",style:{width:"36px",height:"36px",maxWidth:"36px",maxHeight:"36px",objectFit:"contain"},alt:s.name})}),e.jsxs("div",{className:t.cn("flex-1 min-w-0",s.image?"":"ps-2"),children:[e.jsx("div",{className:"font-medium text-sm line-clamp-1 text-ellipsis overflow-hidden",children:s.name}),e.jsx("div",{className:"text-xs text-muted-foreground",children:s.workspaceId})]})]})}),y&&e.jsxs(t.SidebarNavSection,{title:r("settings.sidebar.account"),children:[x&&k(t.SettingsScreen.Profile,e.jsx(a.UserIcon,{className:"h-3.5 w-3.5"}),r("settings.sidebar.profile")),p&&k(t.SettingsScreen.Security,e.jsx(a.KeyRound,{className:"h-3.5 w-3.5"}),r("settings.sidebar.security")),g&&k(t.SettingsScreen.Devices,e.jsx(a.MonitorSmartphone,{className:"h-3.5 w-3.5"}),r("settings.sidebar.devices")),f&&k(t.SettingsScreen.ConnectedAgents,e.jsx(a.Bot,{className:"h-3.5 w-3.5"}),r("security.connectedAgentsTitle"))]}),w&&e.jsxs(t.SidebarNavSection,{title:r("settings.sidebar.workspace"),children:[b&&k(t.SettingsScreen.General,e.jsx(a.SettingsIcon,{className:"h-3.5 w-3.5"}),r("settings.sidebar.general")),h&&k(t.SettingsScreen.Users,e.jsx(a.UsersIcon,{className:"h-3.5 w-3.5"}),r("settings.sidebar.users")),S&&k(t.SettingsScreen.Subscription,e.jsx(a.CreditCard,{className:"h-3.5 w-3.5"}),r("settings.sidebar.subscription")),v&&k(t.SettingsScreen.Usage,e.jsx(a.BarChart3,{className:"h-3.5 w-3.5"}),r("settings.sidebar.usage")),j&&k(t.SettingsScreen.Credits,e.jsx(a.Coins,{className:"h-3.5 w-3.5"}),r("settings.sidebar.credits")),N&&k(t.SettingsScreen.Features,e.jsx(a.ToggleRight,{className:"h-3.5 w-3.5"}),r("settings.sidebar.features")),A&&k(t.SettingsScreen.Notifications,e.jsx(a.Bell,{className:"h-3.5 w-3.5"}),r("settings.sidebar.notifications")),C&&k(t.SettingsScreen.Permissions,e.jsx(a.Shield,{className:"h-3.5 w-3.5"}),r("settings.sidebar.permissions")),T&&k(t.SettingsScreen.Danger,e.jsx(a.AlertTriangle,{className:"h-3.5 w-3.5"}),r("settings.sidebar.danger"))]})]})},we={[t.SettingsScreen.Profile]:"settings.titles.profile",[t.SettingsScreen.Security]:"settings.titles.security",[t.SettingsScreen.Devices]:"settings.titles.devices",[t.SettingsScreen.ConnectedAgents]:"security.connectedAgentsTitle",[t.SettingsScreen.General]:"settings.titles.general",[t.SettingsScreen.Users]:"settings.titles.users",[t.SettingsScreen.Subscription]:"settings.titles.subscription",[t.SettingsScreen.Usage]:"settings.titles.usage",[t.SettingsScreen.Credits]:"settings.titles.credits",[t.SettingsScreen.Features]:"settings.titles.features",[t.SettingsScreen.Notifications]:"settings.titles.notifications",[t.SettingsScreen.Permissions]:"settings.titles.permissions",[t.SettingsScreen.Danger]:"settings.titles.danger"},ke=({ui:a,...i})=>{const n=t.useUIConfig(),r=s.useMemo(()=>t.mergeUIConfig(n,a),[n,a]);return a?e.jsx(t.UIConfigProvider,{ui:r,children:e.jsx(Ee,{...i})}):e.jsx(Ee,{...i})},Ee=({workspace:i,onClose:n,open:r,onOpenChange:c,defaultSection:o=t.SettingsScreen.Profile,section:l,onSectionChange:d,showTrigger:u=!0,trigger:m})=>{const{t:x,dir:p}=t.useTranslation(),{visible:g}=t.useUIVisibility(),[f,h]=s.useState(!1),[S,v]=s.useState(o),j=void 0!==r?r:f,A=c||h,y=void 0!==l?l:S,w=d||v,P=e=>g(a=>a.settings?.sections?.[e]),I=P(y)?y:Object.values(t.SettingsScreen).find(P)??null,U=void 0===l&&o===t.SettingsScreen.Profile,[B,R]=s.useState(U),G=s.useRef(I),L=s.useRef(null),K=s.useRef(null),_=s.useRef(B);s.useEffect(()=>{_.current!==B&&(_.current=B,"undefined"==typeof window||window.innerWidth>=640||(B?K:L).current?.focus())},[B]),s.useEffect(()=>{G.current!==I&&(G.current=I,R(!1))},[I]),s.useEffect(()=>{j&&R(U)},[j]);if(!i||!I)return null;const F=e.jsx(t.Button,{variant:"outline",size:"icon","aria-label":x("settings.common.openSettings"),children:e.jsx(a.Settings,{className:"h-4 w-4"})});return e.jsxs(t.Dialog,{open:j,onOpenChange:e=>{A(e),!e&&n&&n()},children:[u&&e.jsx(t.DialogTrigger,{asChild:!0,children:m||F}),e.jsxs(t.DialogContent,{dir:p,className:"flex flex-col sm:flex-row max-w-2xl min-w-full md:min-w-[800px] xl:min-w-[960px] p-0 m-0 bg-muted h-dvh max-h-dvh sm:h-auto sm:max-h-[90vh] sm:min-h-[600px] overflow-hidden gap-x-0 space-x-0",children:[e.jsx(t.DialogDescription,{className:"sr-only",children:x(we[I])}),e.jsx("div",{ref:K,tabIndex:-1,className:t.cn("flex-col flex-1 min-h-0 overflow-y-auto overscroll-contain px-2 pb-2 sm:p-0 sm:flex sm:flex-none focus:outline-none",B?"flex":"hidden"),children:e.jsx(ye,{workspace:i,section:I,setSection:e=>{w(e),R(!1)}})}),e.jsxs("div",{ref:L,tabIndex:-1,className:t.cn("flex-1 p-4 sm:p-6 overflow-auto flex-col bg-background sm:flex focus:outline-none",B?"hidden":"flex"),children:[e.jsxs("div",{className:"flex items-center gap-1 mb-4 pe-10 sm:pe-0",children:[e.jsx(t.Button,{variant:"ghost",size:"icon",className:"sm:hidden -ms-2 shrink-0 text-muted-foreground","aria-label":x("settings.common.back"),onClick:()=>R(!0),children:e.jsx(a.ArrowLeft,{className:"h-5 w-5 rtl:rotate-180"})}),e.jsx(t.DialogTitle,{className:"text-xl font-semibold min-w-0 truncate",children:x(we[I])})]}),e.jsxs("div",{className:"sm:max-h-[500px] xl:max-h-[65vh] overflow-y-auto",children:[I===t.SettingsScreen.Profile&&e.jsx(ae,{workspace:i}),I===t.SettingsScreen.Security&&e.jsx(se,{}),I===t.SettingsScreen.Devices&&e.jsx(T,{}),I===t.SettingsScreen.ConnectedAgents&&e.jsx(b,{}),I===t.SettingsScreen.General&&e.jsx(E,{workspace:i}),I===t.SettingsScreen.Users&&e.jsx(Ce,{workspace:i}),I===t.SettingsScreen.Subscription&&e.jsx(ge,{workspace:i}),I===t.SettingsScreen.Usage&&e.jsx(he,{}),I===t.SettingsScreen.Credits&&e.jsx(N,{workspace:i}),I===t.SettingsScreen.Features&&e.jsx(k,{workspaceId:i._id?.toString()}),I===t.SettingsScreen.Notifications&&e.jsx(D,{workspace:i}),I===t.SettingsScreen.Permissions&&e.jsx(M,{workspace:i}),I===t.SettingsScreen.Danger&&e.jsx(C,{workspace:i})]})]})]})]})};var Pe=Object.freeze({__proto__:null,SETTINGS_SCREENS:t.SETTINGS_SCREENS,SettingsScreen:t.SettingsScreen,WorkspaceSettingsDialog:ke,default:ke});exports.SettingsDialog=Pe,exports.WorkspaceModes=te;
|
|
2
|
+
"use strict";var e=require("react/jsx-runtime"),a=require("lucide-react"),s=require("react"),t=require("./react-kP8lTlQi.cjs"),i=require("@radix-ui/react-switch"),n=require("@hookform/resolvers/zod"),r=require("react-hook-form"),c=require("zod"),o=require("@radix-ui/react-icons"),l=require("cmdk"),d=require("@radix-ui/react-popover"),u=require("@radix-ui/react-select");function m(e){var a=Object.create(null);return e&&Object.keys(e).forEach(function(s){if("default"!==s){var t=Object.getOwnPropertyDescriptor(e,s);Object.defineProperty(a,s,t.get?t:{enumerable:!0,get:function(){return e[s]}})}}),a.default=e,Object.freeze(a)}var x=m(s),p=m(i),g=m(d),f=m(u);const b=()=>e.jsx(t.ConnectedAgents,{title:null});const h=({open:i,onOpenChange:n,packages:r,billingCurrency:c,workspaceName:o,onSelectPackage:l,purchasingPackageId:d,loading:u=!1})=>{const{t:m,dir:x,fmtNum:p,fmtCents:g,formattingLocale:f}=t.useTranslation(),b=s.useMemo(()=>{const e=new Set;return r.forEach(a=>{a.pricingVariants?.forEach(a=>{a.currency&&e.add(a.currency.toLowerCase())})}),Array.from(e)},[r]),h=s.useMemo(()=>{const e=c?.trim().toLowerCase();return e?b.includes(e)?[e]:[]:b},[c,b]),[S,v]=s.useState(()=>h.length>0?h[0]:""),j=c?.trim().toLowerCase()||S,N=u||!!d;return e.jsx(t.Dialog,{open:i,onOpenChange:n,children:e.jsxs(t.DialogContent,{dir:x,className:"inset-0 w-screen h-screen max-w-none rounded-none translate-x-0 translate-y-0 p-0 flex flex-col",children:[e.jsxs("div",{className:"flex-shrink-0 px-4 py-4 sm:px-6 sm:py-6 border-b space-y-3 sm:space-y-4",children:[e.jsxs("div",{children:[e.jsx(t.DialogTitle,{className:"text-xl font-semibold",children:m("credits.dialogTitle")}),e.jsxs(t.DialogDescription,{className:"mt-1 text-sm",children:[m("credits.dialogDescription"),o&&e.jsx("span",{className:"ms-1 font-medium text-foreground",children:m("credits.dialogDescriptionWorkspace",{workspace:o})})]})]}),!c?.trim()&&h.length>1&&e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-sm text-muted-foreground",children:m("pricing.currency")}),e.jsx("div",{className:"flex gap-1 rounded-lg border border-border bg-muted/30 p-1",children:h.map(a=>e.jsxs("button",{type:"button",onClick:()=>v(a),className:t.cn("rounded-md px-3 py-1.5 text-sm font-medium transition-colors",j===a?"bg-background text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"),children:[t.getCurrencySymbol(a)," ",a.toUpperCase()]},a))})]})]}),e.jsx("div",{className:"flex-1 overflow-y-auto",children:0===r.length?e.jsxs("div",{className:"flex flex-col items-center justify-center py-16 text-muted-foreground/70",children:[e.jsx(a.Coins,{className:"h-12 w-12 mb-3"}),e.jsx("p",{className:"text-sm",children:m("credits.noPackages")})]}):e.jsx("div",{className:"max-w-2xl mx-auto px-4 py-6 sm:px-6 space-y-4",children:r.map(s=>{const i=s.pricingVariants?.find(e=>e.currency?.toLowerCase()===j)??s.pricingVariants?.[0],n=i?.amount,r=i?.currency??j,c=d===s._id,o=null!=n&&n>0&&s.creditAmount>0?function(e,a,s){const i=Math.round(e);if(i>=1)return t.formatMinorAmountIntl(i,a,s);const n=t.getCurrencyDecimals(a),r=e/10**n,c=Math.min(n+4,Math.max(n,Math.ceil(-Math.log10(r))+1));try{return new Intl.NumberFormat(s,{style:"currency",currency:a.trim().toUpperCase(),minimumFractionDigits:c,maximumFractionDigits:c}).format(r)}catch{return t.getCurrencySymbol(a)+r.toFixed(c)}}(n/s.creditAmount,r,f):null;return e.jsxs("div",{className:t.cn("rounded-xl border p-5 sm:p-6 flex flex-col sm:flex-row sm:items-center gap-4 transition-all",c?"border-primary bg-primary/5 shadow-md":"border-border hover:border-border hover:shadow-sm"),children:[e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx("h3",{className:"text-lg font-semibold text-foreground",children:s.name}),e.jsxs("span",{className:"inline-flex items-center gap-1 rounded-full bg-info/10 px-2.5 py-0.5 text-xs font-medium text-info",children:[e.jsx(a.Coins,{className:"h-3.5 w-3.5"}),m("credits.creditsAmount",{count:p(s.creditAmount)})]})]}),s.description&&e.jsx("p",{className:"text-sm text-muted-foreground mb-2",children:s.description}),e.jsxs("div",{className:"flex flex-wrap items-center gap-x-4 gap-y-1 text-xs text-muted-foreground/70",children:[e.jsx("span",{children:s.validityDays?m("credits.validityDays",{count:s.validityDays}):m("credits.validityUnlimited")}),null!=o&&e.jsx("span",{children:m("credits.perCredit",{price:o})})]})]}),e.jsxs("div",{className:"flex items-center gap-4 sm:flex-col sm:items-end sm:gap-2 shrink-0",children:[null!=n&&e.jsx("span",{className:"text-2xl sm:text-3xl font-bold text-foreground whitespace-nowrap",children:g(n,r)}),e.jsx(t.Button,{size:"sm",onClick:()=>l(s),disabled:N,progress:c,className:"whitespace-nowrap",children:c?m("credits.purchasing"):m("credits.buyAmount",{count:p(s.creditAmount)})})]})]},s._id)})})})]})})},S=({titleKey:s,descriptionKey:i})=>{const{t:n}=t.useTranslation();return e.jsx("div",{className:"border border-warning/20 bg-warning/10 rounded-lg p-4",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(a.ShieldAlert,{className:"h-5 w-5 text-warning shrink-0 mt-0.5"}),e.jsxs("div",{children:[e.jsx("h4",{className:"text-sm font-medium text-warning",children:n(s??"settings.common.noPermissionTitle")}),e.jsx("p",{className:"text-xs text-warning/80 mt-1",children:n(i??"settings.common.noPermissionDescription")})]})]})})};function v(){return e.jsxs("div",{className:"space-y-3.5",children:[e.jsx(t.Skeleton,{className:"h-10 w-full"}),e.jsx(t.Skeleton,{className:"h-10 w-full"}),e.jsx(t.Skeleton,{className:"h-10 w-full"})]})}const j={[t.CreditTransactionType.PlanGrant]:"credits.type.plan_grant",[t.CreditTransactionType.PackPurchased]:"credits.type.pack_purchased",[t.CreditTransactionType.Consumed]:"credits.type.consumed",[t.CreditTransactionType.Expired]:"credits.type.expired",[t.CreditTransactionType.AdminGrant]:"credits.type.admin_grant",[t.CreditTransactionType.AdminRevoke]:"credits.type.admin_revoke",[t.CreditTransactionType.Refund]:"credits.type.refund"};const N=({workspace:i})=>{const n=i._id?.toString(),{t:r,fmtNum:c}=t.useTranslation(),{can:o}=t.usePermissions(),{visible:l}=t.useUIVisibility(),d=l(e=>e.settings?.credits?.transactions),u=o(t.Permission.WORKSPACE_BILLING_VIEW),m=l(e=>e.settings?.credits?.buyButton,t.Permission.WORKSPACE_BILLING_MANAGE),{balance:x,loading:p,error:g,refetch:f}=t.useCreditBalanceContext(),{packages:b,loading:j}=t.useCreditPackages(n),{expiringCredits:N,loading:C}=t.useExpiringCredits(n,7),[T,y]=s.useState(1),{transactions:w,hasNextPage:k,loading:E,refetch:P}=t.useCreditTransactions(n,{limit:10,page:T}),[D,M]=s.useState([]);s.useEffect(()=>{E||0===w.length||M(1===T?w:e=>{const a=new Set(e.map(e=>e._id)),s=w.filter(e=>!a.has(e._id));return s.length>0?[...e,...s]:e})},[w,T,E]);const I=s.useCallback(()=>{k&&!E&&y(e=>e+1)},[k,E]),U=D,{purchaseCredits:B,loading:R}=t.usePurchaseCredits(n),[G,L]=s.useState(!1),[K,_]=s.useState(null),[F,O]=s.useState(!1),[W,V]=s.useState(!1),[z,H]=s.useState(null),[J,Y]=s.useState(!1),Z=s.useRef(!1),q=p&&!x;s.useEffect(()=>{if(Z.current)return;const e=t.workspaceSettingsManager.getState();if(!e.params?.action)return;if(e.params.action===t.BBAction.OpenCreditStore)return Z.current=!0,t.workspaceSettingsManager.clearParams(),void Y(!0);if(e.params.action!==t.BBAction.CreditPurchase)return;Z.current=!0;const a=e.params.status;if(t.workspaceSettingsManager.clearParams(),a===t.BBStatus.Success){O(!0),t.invalidateCreditBalance();const e=setTimeout(()=>O(!1),8e3);return()=>clearTimeout(e)}if(a===t.BBStatus.Cancel){V(!0);const e=setTimeout(()=>V(!1),5e3);return()=>clearTimeout(e)}a===t.BBStatus.Error&&_(r("credits.purchaseFailed"))},[]);if(q)return e.jsx(v,{});if(!u)return e.jsx(S,{});if(!n)return e.jsx("div",{className:"border rounded-lg p-4 text-center text-muted-foreground",children:e.jsx("p",{children:r("subscription.invalidWorkspace")})});const $=!j&&b.length>0;return e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"space-y-3",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:r("credits.description")}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[$&&m&&e.jsxs(t.Button,{size:"sm",onClick:()=>Y(!0),children:[e.jsx(a.ShoppingCart,{className:"h-3.5 w-3.5 me-1.5"}),r("credits.buyCredits")]}),e.jsxs(t.Button,{variant:"ghost",size:"sm",onClick:async()=>{L(!0);try{await f()}finally{L(!1)}},disabled:G,children:[e.jsx(a.RefreshCw,{className:t.cn("h-3.5 w-3.5 me-1.5",G&&"animate-spin")}),r("settings.common.refreshAction",{loading:String(G)})]})]})]}),g&&e.jsx(t.StatusBanner,{variant:"error",title:r("credits.errorLoading"),message:g}),F&&e.jsx(t.StatusBanner,{variant:"success",icon:e.jsx(a.CheckCircle2,{className:"h-4 w-4 flex-shrink-0"}),title:r("credits.purchaseSuccess"),actionLabel:r("settings.common.dismiss"),onAction:()=>O(!1)}),W&&e.jsx(t.StatusBanner,{variant:"warning",title:r("credits.purchaseCanceled"),actionLabel:r("settings.common.dismiss"),onAction:()=>V(!1)}),K&&e.jsx(t.StatusBanner,{variant:"error",message:K,actionLabel:r("settings.common.dismiss"),onAction:()=>_(null)}),e.jsxs("div",{className:"border border-border rounded-lg overflow-hidden",children:[e.jsxs("div",{className:"bg-muted/30 p-4 sm:p-5",children:[e.jsxs("div",{className:"flex items-center justify-between mb-3",children:[e.jsx("h3",{className:"text-sm font-semibold text-muted-foreground uppercase tracking-wider",children:r("credits.balance")}),e.jsx(a.Coins,{className:"h-5 w-5 text-muted-foreground/70"})]}),x?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"text-3xl font-bold text-foreground mb-4",children:c(x.available)}),e.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-muted-foreground",children:r("credits.totalGranted")}),e.jsx("p",{className:"text-sm font-medium text-foreground",children:c(x.totalGranted)})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-muted-foreground",children:r("credits.totalConsumed")}),e.jsx("p",{className:"text-sm font-medium text-foreground",children:c(x.totalConsumed)})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-muted-foreground",children:r("credits.totalExpired")}),e.jsx("p",{className:"text-sm font-medium text-foreground",children:c(x.totalExpired)})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-muted-foreground",children:r("credits.available")}),e.jsx("p",{className:"text-sm font-semibold text-success",children:c(x.available)})]})]})]}):e.jsxs("div",{className:"text-center py-4",children:[e.jsx(a.Coins,{className:"h-10 w-10 text-muted-foreground/50 mx-auto mb-2"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:r("credits.noCredits")}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:r("credits.noCreditsHint")}),$&&m&&e.jsxs(t.Button,{size:"sm",className:"mt-3",onClick:()=>Y(!0),children:[e.jsx(a.ShoppingCart,{className:"h-3.5 w-3.5 me-1.5"}),r("credits.buyCredits")]})]})]}),!C&&N>0&&e.jsx("div",{className:"px-4 py-3 bg-warning/10 border-t border-warning/30 text-sm text-warning",children:r("credits.expiringInDays",{count:N,days:7})})]}),d&&e.jsxs("div",{children:[e.jsx(t.SectionHeader,{title:r("credits.transactions"),className:"mb-3"}),E&&0===U.length?e.jsx(t.LoadingState,{}):0===U.length?e.jsx(t.EmptyState,{icon:e.jsx(a.History,{className:"h-5 w-5 text-muted-foreground"}),description:r("credits.noTransactions"),action:e.jsx(t.Button,{variant:"outline",size:"sm",progress:E,onClick:P,children:r("settings.common.refreshAction",{loading:String(E)})})}):e.jsxs("div",{className:"border border-border rounded-lg overflow-hidden",children:[e.jsx("div",{className:"divide-y divide-border/60",children:U.map(a=>e.jsx(A,{tx:a},a._id))}),k&&e.jsx("div",{className:"border-t border-border px-4 py-3 text-center",children:e.jsx(t.Button,{variant:"ghost",size:"sm",onClick:I,disabled:E,progress:E&&T>1,children:r("credits.loadMore")})})]})]}),$&&m&&e.jsx(h,{open:J,onOpenChange:Y,packages:b,billingCurrency:i.billingCurrency,workspaceName:i.name,onSelectPackage:async e=>{if(n){_(null),H(e._id);try{const{successUrl:a,cancelUrl:s}=t.createCreditPurchaseRedirectUrls(n),i=await B({creditPackageId:e._id,successUrl:a,cancelUrl:s});i.url&&t.safeRedirect(i.url)}catch(e){_(e instanceof Error?e.message:r("errors.purchaseCredits")),H(null)}}},purchasingPackageId:z,loading:R})]})};function A({tx:a}){const{t:s,formattingLocale:i,fmtNum:n}=t.useTranslation(),r=j[a.type]??"credits.type.consumed",c=function(e){switch(e){case"plan_grant":case"admin_grant":case"refund":return"bg-success/15 text-success";case"pack_purchased":return"bg-info/15 text-info";case"consumed":default:return"bg-muted text-foreground";case"expired":case"admin_revoke":return"bg-destructive/15 text-destructive"}}(a.type),o=a.amount>0;return e.jsx("div",{className:"px-3 py-3 sm:px-4",children:e.jsxs("div",{className:"flex items-start justify-between gap-2",children:[e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-1.5 mb-0.5",children:[e.jsx("span",{className:t.cn("inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium shrink-0",c),children:s(r)}),a.description&&e.jsx("p",{className:"text-sm text-foreground truncate",children:a.description})]}),e.jsx("p",{className:"text-xs text-muted-foreground/70",children:t.formatDateTime(a.createdAt,i)})]}),e.jsxs("div",{className:"text-end shrink-0",children:[e.jsxs("span",{className:t.cn("text-sm font-semibold",o?"text-success":"text-foreground"),children:[o?"+":"",n(a.amount)]}),e.jsx("p",{className:"text-xs text-muted-foreground/70",children:n(a.balanceAfter)})]})]})})}const C=({workspace:i})=>{const[n,r]=s.useState(!1),{deleteWorkspace:c}=t.useSaaSWorkspaces(),{can:o}=t.usePermissions(),{settings:l}=t.useSaaSSettings(),{t:d}=t.useTranslation();if(1===(l?.workspace?.maxWorkspacesPerUser??0))return null;if(!i)return e.jsx(v,{});return o(t.Permission.WORKSPACE_DELETE)?e.jsxs("div",{className:"space-y-4",children:[e.jsx(t.SectionHeader,{title:d("danger.title"),titleClassName:"text-destructive",description:d("danger.deleteDescription")}),e.jsxs(t.AlertDialog,{children:[e.jsx(t.AlertDialogTrigger,{asChild:!0,children:e.jsxs(t.Button,{variant:"destructive",disabled:n,progress:n,children:[e.jsx(a.Trash2,{className:"h-4 w-4 me-2"}),d("danger.deleteWorkspace")]})}),e.jsxs(t.AlertDialogContent,{children:[e.jsxs(t.AlertDialogHeader,{children:[e.jsx(t.AlertDialogTitle,{children:d("danger.deleteConfirm")}),e.jsx(t.AlertDialogDescription,{children:d("danger.deleteConfirmDescription")})]}),e.jsxs(t.AlertDialogFooter,{children:[e.jsx(t.AlertDialogCancel,{disabled:n,children:d("settings.common.cancel")}),e.jsx(t.AlertDialogAction,{onClick:async()=>{r(!0);try{await c(i._id)}catch(e){t.handleError(e,{component:"WorkspaceSettingsDanger",action:"handleDeleteWorkspace",metadata:{workspaceId:i._id}})}finally{r(!1)}},disabled:n,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:n?e.jsxs(e.Fragment,{children:[e.jsx(a.Loader2,{className:"me-2 h-4 w-4 animate-spin"}),d("danger.deleting")]}):d("danger.deleteWorkspace")})]})]})]})]}):e.jsx(S,{descriptionKey:"danger.adminOnly"})},T=()=>{const{visible:a}=t.useUIVisibility(),s=a(e=>e.settings?.devices?.sessions);return e.jsxs("div",{className:"space-y-8",children:[e.jsx(t.Devices,{title:null}),s&&e.jsx(t.Sessions,{})]})},y=x.forwardRef(({className:a,...s},i)=>e.jsx(p.Root,{className:t.cn("peer inline-flex h-[20px] w-[36px] shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",a),...s,ref:i,children:e.jsx(p.Thumb,{className:t.cn("pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 rtl:data-[state=checked]:-translate-x-4 data-[state=unchecked]:translate-x-0")})}));function w(e=5e3){const[a,t]=s.useState(null),i=s.useRef(null);s.useEffect(()=>()=>{i.current&&clearTimeout(i.current)},[]);return{message:a,show:s.useCallback(a=>{t(a),i.current&&clearTimeout(i.current),i.current=setTimeout(()=>{t(null)},e)},[e]),clear:s.useCallback(()=>{t(null),i.current&&clearTimeout(i.current)},[])}}y.displayName=p.Root.displayName;const k=({workspaceId:i})=>{const{t:n}=t.useTranslation(),{allFeatures:r,updateFeature:c,getWorkspace:o}=t.useSaaSWorkspaces(),{can:l}=t.usePermissions(),[d,u]=s.useState({}),m=w(),[x,p]=s.useState(null);if(s.useEffect(()=>{o(i).then(p).catch(e=>{t.handleError(e,{component:"WorkspaceSettingsFeatures",action:"getWorkspace"})})},[i]),!x)return e.jsx(v,{});const g=l(t.Permission.WORKSPACE_FEATURES_EDIT);return e.jsxs("div",{children:[m.message&&e.jsx(t.StatusBanner,{variant:"success",title:n("settings.common.success"),message:m.message,className:"mb-4"}),e.jsxs("div",{className:"flex flex-col gap-y-3.5 pe-4",children:[!g&&e.jsx(S,{descriptionKey:"features.ownerOnly"}),!r.length&&e.jsx(t.EmptyState,{icon:e.jsx(a.ToggleRight,{className:"h-5 w-5 text-muted-foreground"}),description:n("features.noFeatures")}),r.length>0&&e.jsx("div",{className:"flex flex-col gap-y-3.5",children:r.map(s=>{const i=x?.features?.[s.slug],o=null!==d[s.slug]&&void 0!==d[s.slug],l=d[s.slug],f=n("features.actionStatus",{action:!0===l?"enabling":!1===l?"disabling":"none"});return e.jsxs("div",{className:"flex items-center gap-x-2 justify-between w-full",children:[e.jsxs("div",{className:"flex gap-x-2 flex-col",children:[e.jsx("h3",{className:"font-medium text-ellipsis",children:s.name}),e.jsx("p",{className:"text-muted-foreground",children:s.description})]}),o?e.jsxs("div",{className:"flex items-center gap-x-1",children:[e.jsx(a.Loader2,{className:"h-4 w-4 animate-spin text-muted-foreground"}),e.jsxs("span",{className:"text-sm text-muted-foreground",children:[f,"..."]})]}):e.jsx(y,{disabled:!g,checked:i??s.defaultValue,onCheckedChange:e=>async function(e,a){if(x){u(s=>({...s,[e]:a})),m.clear();try{const s=await c(x._id,e,a);p(s);const t=r.find(a=>a.slug===e),i=t?.name||n("features.fallbackName");m.show(n("features.updateSuccess",{feature:i,enabled:String(a)}))}catch(a){t.handleError(a,{component:"WorkspaceSettingsFeatures",action:"updateFeature",metadata:{workspaceId:x._id,featureKey:e}})}finally{u(a=>({...a,[e]:null}))}}}(s.slug,e)})]},s._id)})})]})]})},E=({workspace:i})=>{const{t:o}=t.useTranslation(),{visible:l}=t.useUIVisibility(),d=l(e=>e.settings?.general?.nameEdit),u=l(e=>e.settings?.general?.iconEditor),{updateWorkspace:m}=t.useSaaSWorkspaces(),{can:x}=t.usePermissions(),[p,g]=s.useState(!1),[f,b]=s.useState("emoji"),[h,j]=s.useState(),N=w(),A=c.z.object({name:c.z.string().min(2,{message:o("general.nameMinLength")}),image:c.z.string().optional()}),C=r.useForm({resolver:n.zodResolver(A),defaultValues:{name:i.name||"",image:i.image||""}});if(!i)return e.jsx(v,{});const T=x(t.Permission.WORKSPACE_SETTINGS_EDIT);return e.jsxs("div",{children:[N.message&&e.jsx(t.StatusBanner,{variant:"success",title:o("settings.common.success"),message:N.message,className:"mb-4"}),!T&&e.jsx(S,{descriptionKey:"general.ownerOnly"}),e.jsx(t.Form,{...C,children:e.jsxs("form",{onSubmit:C.handleSubmit(async function(e){g(!0),N.clear();try{await m(i,e),N.show(o("general.success"))}catch(e){t.handleError(e,{component:"WorkspaceSettingsGeneral",action:"updateWorkspace",metadata:{workspaceId:i._id}})}finally{g(!1)}}),className:"space-y-6",children:[d&&e.jsx(t.FormField,{control:C.control,name:"name",render:({field:a})=>e.jsxs(t.FormItem,{children:[e.jsx(t.FormLabel,{children:o("general.name")}),e.jsx(t.FormControl,{children:e.jsx(t.Input,{placeholder:o("general.namePlaceholder"),...a,disabled:!T})}),e.jsx(t.FormMessage,{})]})}),i.billingCurrency?.trim()&&e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(t.Label,{className:"text-sm font-medium text-muted-foreground",children:o("general.billingCurrency")}),e.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[t.getCurrencyFlag(i.billingCurrency)&&e.jsx("span",{className:"text-base",children:t.getCurrencyFlag(i.billingCurrency)}),e.jsx("span",{children:i.billingCurrency.trim().toUpperCase()})]})]}),u&&e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx(t.Label,{className:"text-sm font-medium",children:o("general.icon")}),e.jsx(t.FormDescription,{children:o("general.iconDescription")})]}),e.jsxs(t.RadioGroup,{value:f,disabled:!T,onValueChange:e=>b(e),className:"flex flex-col space-y-3",children:[e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(t.RadioGroupItem,{value:"emoji",id:"emoji"}),e.jsxs(t.Label,{htmlFor:"emoji",className:"flex items-center gap-2",children:[e.jsx(a.Smile,{className:"h-4 w-4"}),o("general.chooseEmoji")]})]}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(t.RadioGroupItem,{value:"url",id:"url"}),e.jsxs(t.Label,{htmlFor:"url",className:"flex items-center gap-2",children:[e.jsx(a.ImageIcon,{className:"h-4 w-4"}),o("general.customImageUrl")]})]})]}),"emoji"===f&&e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("span",{className:"text-sm font-medium",children:o("general.previewLabel")}),e.jsxs("div",{className:"w-12 h-12 rounded-lg border-2 border-border flex items-center justify-center text-2xl bg-muted",children:[h&&e.jsx("span",{className:"text-2xl",children:h}),!h&&C.watch("image")?.trim()&&e.jsx("img",{src:C.watch("image")||void 0,alt:o("general.previewImageAlt")})]})]}),T&&e.jsx(t.ScrollArea,{className:"h-32 w-full rounded-md border",children:e.jsx("div",{className:"p-4 grid grid-cols-8 gap-2",children:t.workspaceEmojis.map((a,s)=>e.jsx("button",{type:"button",onClick:()=>(e=>{j(e),C.setValue("image",t.getSvgImage(e))})(a),disabled:!T,"aria-label":a,"aria-pressed":h===a,className:"w-10 h-10 sm:w-8 sm:h-8 rounded flex items-center justify-center text-lg hover:bg-muted transition-colors "+(h===a?"bg-primary text-primary-foreground":""),children:a},s))})})]}),"url"===f&&e.jsxs("div",{className:"space-y-3",children:[e.jsx(t.FormField,{control:C.control,name:"image",render:({field:a})=>e.jsxs(t.FormItem,{children:[e.jsx(t.FormLabel,{children:o("general.imageUrl")}),e.jsx(t.FormControl,{children:e.jsx(t.Input,{placeholder:o("general.imageUrlPlaceholder"),...a,disabled:!T})}),e.jsx(t.FormDescription,{children:o("general.imageUrlDescription")}),e.jsx(t.FormMessage,{})]})}),C.watch("image")&&C.watch("image")?.trim()&&e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("span",{className:"text-sm font-medium",children:o("general.previewLabel")}),e.jsx("div",{className:"w-12 h-12 rounded-lg border-2 border-border overflow-hidden bg-muted",children:e.jsx("img",{src:C.watch("image")||void 0,className:"w-full h-full object-cover",alt:o("general.previewImageAlt")})})]})]})]}),e.jsx("div",{className:"flex justify-end gap-3 pt-4",children:T&&(d||u)&&e.jsx(t.Button,{type:"submit",disabled:p,progress:p,children:o("general.updateWorkspace")})})]})})]})};const P={firefox:4,safari:4,edge:4,chrome:4},D=({workspace:i})=>{const{isSupported:n,permission:r,isSubscribed:c,loading:o,error:l,subscribe:d,unsubscribe:u}=t.usePushNotifications(),{t:m}=t.useTranslation(),{api:x}=t.useWorkspaceApiWithOs(),{can:p}=t.usePermissions(),{visible:g}=t.useUIVisibility(),f=p(t.Permission.WORKSPACE_SETTINGS_EDIT),b=g(e=>e.settings?.notifications?.push),h=g(e=>e.settings?.notifications?.emailToggles),S=g(e=>e.settings?.notifications?.pushToggles),v=s.useMemo(()=>function(){const e="undefined"!=typeof navigator?navigator.userAgent:"";return e.includes("Firefox")?"firefox":e.includes("Safari")&&!e.includes("Chrome")?"safari":e.includes("Edg")?"edge":"chrome"}(),[]),j=P[v],[N,A]=s.useState([]),[C,T]=s.useState(!0),[w,k]=s.useState({}),[E,D]=s.useState(!0),[M,I]=s.useState(null),[U,B]=s.useState(null),R=s.useRef(null);s.useEffect(()=>()=>{R.current&&clearTimeout(R.current)},[]),s.useEffect(()=>{if(!i?._id)return;const e=i._id.toString();T(!0),D(!0),Promise.all([x.getNotificationEvents(e).catch(()=>[]),x.getNotificationPreferences(e).catch(()=>({}))]).then(([e,a])=>{A(e),k(a)}).finally(()=>{T(!1),D(!1)})},[i?._id]);const G=s.useCallback(async(e,a,s)=>{if(!i?._id||!f)return;const n=!s;I(`${e}.${a}`),B(null),k(s=>({...s,[e]:{...s[e],[a]:n}}));try{const s=await x.updateNotificationPreferences(i._id.toString(),{[e]:{[a]:n}});k(s),B(m("notifications.prefsSaved")),R.current&&clearTimeout(R.current),R.current=setTimeout(()=>B(null),3e3)}catch(i){k(t=>({...t,[e]:{...t[e],[a]:s}})),t.handleError(i,{component:"SettingsNotifications",action:"toggleChannel"})}finally{I(null)}},[i?._id,f,x,m]),L=(e,a)=>!1!==w[e]?.[a],K=s.useMemo(()=>{const e=new Map;for(const a of N){const s=a.category||"general";e.has(s)||e.set(s,[]),e.get(s).push(a)}return Array.from(e.entries())},[N]),_=C||E,F=N.length>0;return e.jsxs("div",{className:"space-y-4",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:m("notifications.manageDescription")}),b&&n&&e.jsxs(e.Fragment,{children:[l&&"denied"!==r&&e.jsx(t.StatusBanner,{variant:"error",message:l}),"denied"===r&&e.jsx("div",{className:"border border-warning/30 bg-warning/10 rounded-lg p-4",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(a.ShieldAlert,{className:"h-5 w-5 text-warning shrink-0 mt-0.5"}),e.jsxs("div",{children:[e.jsx("h4",{className:"text-sm font-medium text-warning",children:m("notifications.blocked")}),e.jsx("p",{className:"text-xs text-warning mt-1",children:m("notifications.blockedDescription")}),e.jsx("ol",{className:"text-xs text-warning mt-2 space-y-1 list-decimal list-inside",children:Array.from({length:j},(a,s)=>e.jsx("li",{children:m(`notifications.unblock.${v}.step${s+1}`)},s))})]})]})}),"denied"!==r&&e.jsxs("div",{className:"border rounded-lg p-4",children:[e.jsxs("div",{className:"flex items-start justify-between gap-4",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"mt-0.5 p-2 rounded-lg "+(c?"bg-success/15":"bg-muted"),children:c?e.jsx(a.Bell,{className:"h-4 w-4 text-success"}):e.jsx(a.BellOff,{className:"h-4 w-4 text-muted-foreground/70"})}),e.jsxs("div",{children:[e.jsx("h4",{className:"text-sm font-medium text-foreground",children:m("notifications.pushTitle")}),e.jsx("p",{className:"text-xs text-muted-foreground mt-0.5",children:m("notifications.pushDescription",{subscribed:String(c)})})]})]}),e.jsx(t.Button,{variant:c?"outline":"default",size:"sm",className:"shrink-0",onClick:c?u:d,disabled:o,progress:o,children:m("notifications.toggleAction",{loading:String(o),subscribed:String(c)})})]}),c&&e.jsx("div",{className:"mt-3 pt-3 border-t border-border/60 text-xs text-muted-foreground",children:m("notifications.deviceNote")})]})]}),_&&e.jsx("div",{className:"text-center text-sm text-muted-foreground/70 py-4",children:m("notifications.loadingPrefs")}),!_&&F&&f&&(h||S)&&e.jsxs(e.Fragment,{children:[U&&e.jsx(t.StatusBanner,{variant:"success",message:U}),K.map(([s,t])=>e.jsxs("div",{className:"border rounded-lg overflow-hidden",children:[e.jsx("div",{className:"bg-muted/50 px-4 py-2.5 border-b",children:e.jsx("h4",{className:"text-sm font-medium text-foreground capitalize",children:s})}),e.jsxs("div",{className:"divide-y",children:[e.jsxs("div",{className:"flex items-center px-4 py-2 bg-muted/30",children:[e.jsx("div",{className:"flex-1"}),e.jsxs("div",{className:"flex items-center gap-6",children:[h&&e.jsx("div",{className:"w-12 flex justify-center",children:e.jsx(a.Mail,{className:"h-3.5 w-3.5 text-muted-foreground/70"})}),S&&e.jsx("div",{className:"w-12 flex justify-center",children:e.jsx(a.Smartphone,{className:"h-3.5 w-3.5 text-muted-foreground/70"})})]})]}),t.map(a=>{const s=L(a.slug,"email"),t=L(a.slug,"push"),i=M===`${a.slug}.email`,n=M===`${a.slug}.push`;return e.jsxs("div",{className:"flex items-center px-4 py-3",children:[e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("div",{className:"text-sm font-medium text-foreground",children:a.name}),a.description&&e.jsx("div",{className:"text-xs text-muted-foreground mt-0.5",children:a.description})]}),e.jsxs("div",{className:"flex items-center gap-6 shrink-0",children:[h&&e.jsx("div",{className:"w-12 flex justify-center",children:a.channels.email?e.jsx(y,{checked:s,onCheckedChange:()=>G(a.slug,"email",s),disabled:i}):e.jsx("span",{className:"text-xs text-muted-foreground/50",children:"—"})}),S&&e.jsx("div",{className:"w-12 flex justify-center",children:a.channels.push?e.jsx(y,{checked:t,onCheckedChange:()=>G(a.slug,"push",t),disabled:n}):e.jsx("span",{className:"text-xs text-muted-foreground/50",children:"—"})})]})]},a.slug)})]})]},s))]})]})},M=({workspace:a})=>{const{t:i}=t.useTranslation(),{isOwner:n}=t.usePermissions(),{settings:r}=t.useSaaSSettings(),{appPermissions:c}=t.usePermissionConfig(),{updateWorkspacePermissions:o}=t.useSaaSWorkspaces(),[l,d]=s.useState(!1),u=w(),m=s.useMemo(()=>r?.workspace?.roles??a.roles??[],[r?.workspace?.roles,a.roles]),x=s.useMemo(()=>{if(!c)return[];const e=new Set;for(const a of Object.values(c))for(const s of a)s.startsWith("workspace:")||e.add(s);return Array.from(e).sort()},[c]),[p,g]=s.useState({});if(s.useEffect(()=>{if(!c)return;const e=a.permissions,s={};for(const a of m)s[a]=e&&a in e?e[a].filter(e=>!e.startsWith("workspace:")):a in c?c[a].filter(e=>!e.startsWith("workspace:")):[];g(s)},[a.permissions,c,m]),!a)return e.jsx(v,{});if(!c||0===x.length)return null;return e.jsxs("div",{children:[u.message&&e.jsx(t.StatusBanner,{variant:"success",title:i("settings.common.success"),message:u.message,className:"mb-4"}),!n&&e.jsx(S,{descriptionKey:"permissions.ownerOnly"}),e.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:i("permissions.description")}),e.jsx("div",{className:"overflow-x-auto",children:e.jsxs("table",{className:"w-full text-sm",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-b",children:[e.jsx("th",{className:"text-start py-2 pe-4 font-medium text-muted-foreground min-w-[160px]"}),m.map(a=>e.jsx("th",{className:"text-center py-2 px-3 font-medium text-foreground capitalize min-w-[80px]",children:a},a))]})}),e.jsx("tbody",{children:x.map(a=>e.jsxs("tr",{className:"border-b border-border/40 hover:bg-muted/30",children:[e.jsx("td",{className:"py-2 pe-4 text-foreground font-mono text-xs",children:a}),m.map(s=>{const t="admin"===s,i=t||(p[s]??[]).includes(a);return e.jsx("td",{className:"text-center py-2 px-3",children:e.jsx(y,{checked:i,disabled:!n||t,onCheckedChange:()=>((e,a)=>{g(s=>{const t=s[e]??[],i=t.includes(a);return{...s,[e]:i?t.filter(e=>e!==a):[...t,a]}})})(s,a),className:"mx-auto"})},s)})]},a))})]})}),n&&e.jsx("div",{className:"mt-6",children:e.jsx(t.Button,{onClick:async()=>{d(!0),u.clear();try{const e=a.permissions??{},s={},t=new Set([...Object.keys(e),...Object.keys(p)]);for(const a of t){const t=(e[a]??[]).filter(e=>e.startsWith("workspace:")),i=p[a]??[];s[a]=[...t,...i]}await o(a._id,s),u.show(i("permissions.saveSuccess"))}catch(e){t.handleError(e,{component:"WorkspaceSettingsPermissions",action:"savePermissions",metadata:{workspaceId:a._id}})}finally{d(!1)}},disabled:l,progress:l,children:i(l?"permissions.saving":"permissions.save")})})]})},I=x.forwardRef(({className:a,...s},i)=>e.jsx(l.Command,{ref:i,className:t.cn("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",a),...s}));I.displayName=l.Command.displayName;const U=x.forwardRef(({className:a,...s},i)=>e.jsxs("div",{className:"flex items-center border-b px-3","cmdk-input-wrapper":"",children:[e.jsx(o.MagnifyingGlassIcon,{className:"me-2 h-4 w-4 shrink-0 opacity-50"}),e.jsx(l.Command.Input,{ref:i,className:t.cn("flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",a),...s})]}));U.displayName=l.Command.Input.displayName;const B=x.forwardRef(({className:a,...s},i)=>e.jsx(l.Command.List,{ref:i,className:t.cn("max-h-[300px] overflow-y-auto overflow-x-hidden",a),...s}));B.displayName=l.Command.List.displayName;const R=x.forwardRef((a,s)=>e.jsx(l.Command.Empty,{ref:s,className:"py-6 text-center text-sm",...a}));R.displayName=l.Command.Empty.displayName;const G=x.forwardRef(({className:a,...s},i)=>e.jsx(l.Command.Group,{ref:i,className:t.cn("overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",a),...s}));G.displayName=l.Command.Group.displayName;x.forwardRef(({className:a,...s},i)=>e.jsx(l.Command.Separator,{ref:i,className:t.cn("-mx-1 h-px bg-border",a),...s})).displayName=l.Command.Separator.displayName;const L=x.forwardRef(({className:a,...s},i)=>e.jsx(l.Command.Item,{ref:i,className:t.cn("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none aria-selected:bg-accent aria-selected:text-accent-foreground data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50",a),...s}));L.displayName=l.Command.Item.displayName;const K=g.Root,_=g.Trigger,F=x.forwardRef(({className:a,align:s="center",sideOffset:i=4,...n},r)=>{const{container:c}=x.useContext(t.PortalContext);return e.jsx(g.Portal,{container:c,children:e.jsx(g.Content,{ref:r,align:s,sideOffset:i,className:t.cn("z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",a),...n})})});function O({options:i,value:n,onChange:r,placeholder:c,emptyLabel:o}){const{t:l}=t.useTranslation(),d=c??l("dropdowns.search"),u=o??l("dropdowns.chooseOption"),[m,x]=s.useState(n??""),[p,g]=s.useState(!1);s.useEffect(()=>{void 0!==n&&x(n)},[n]);const f=i.find(e=>e.value===m);return e.jsxs(K,{open:p,onOpenChange:g,children:[e.jsx(_,{asChild:!0,children:e.jsxs(t.Button,{variant:"outline",role:"combobox","aria-expanded":p,className:"h-10 sm:h-9 w-full justify-between rounded-md border-input bg-transparent px-3 py-1 text-base sm:text-sm font-normal shadow-sm hover:bg-transparent",children:[f?e.jsxs("div",{className:"truncate",children:[String(f.label).trim(),f.icon&&e.jsx("span",{className:"ms-2 text-xs text-muted-foreground",children:f.icon})]}):e.jsx("span",{className:"text-muted-foreground",children:u}),e.jsx(a.ChevronsUpDown,{className:"ms-2 h-4 w-4 shrink-0 opacity-50"})]})}),e.jsx(F,{className:"p-0 overflow-hidden text-ellipsis",asChild:!0,children:e.jsxs(I,{children:[e.jsx(U,{placeholder:d}),e.jsxs(B,{children:[e.jsx(R,{children:l("dropdowns.noResults")}),e.jsx(G,{children:i.map(s=>e.jsxs(L,{className:t.cn("whitespace-nowrap text-start",{"text-success":m===s.value}),value:s.value,keywords:[s.label],onSelect:()=>{return e=s.value,x(e),r?.(e),void g(!1);var e},children:[m===s.value&&e.jsx(a.CheckCheck,{className:t.cn("me-2 h-4 w-4 text-success",m===s.value?"opacity-100":"opacity-0")}),String(s.label).trim(),s.icon&&e.jsx("span",{className:"ms-2 text-xs text-muted-foreground",children:s.icon})]},s.value))})]})]})})]})}F.displayName=g.Content.displayName;const W={USD:"$",EUR:"€",JPY:"¥",GBP:"£",AUD:"A$",CAD:"C$",CHF:"CHF",CNY:"¥",SEK:"kr",NZD:"NZ$",INR:"₹",RUB:"₽",KRW:"₩",BRL:"R$",ZAR:"R",HKD:"HK$",SGD:"S$",MXN:"Mex$",NOK:"kr",TRY:"₺",IDR:"Rp",PLN:"zł",THB:"฿",ILS:"₪",PHP:"₱",MYR:"RM",CZK:"Kč",HUF:"Ft",DKK:"kr",PKR:"₨",EGP:"£",NGN:"₦",BDT:"৳",UAH:"₴",KZT:"₸",VND:"₫",ARS:"$",BGN:"лв",COP:"COL$",HRK:"kn",ISK:"kr",KES:"KSh",LKR:"Rs",MAD:"د.م.",MNT:"₮",NPR:"रू",RSD:"дин.",SAR:"ر.س",TWD:"NT$",UYU:"$U",YER:"﷼",FJD:"FJ$",JMD:"J$",HTG:"G",BHD:"ب.د",KWD:"د.ك",OMR:"ر.ع.",BND:"B$",KPW:"₩",GHS:"₵",SYP:"ل.س",SLL:"Le",SSP:"£",AFN:"؋",MGA:"Ar",MDL:"lei",FOK:"kr",GMD:"D",LTL:"Lt",LVL:"Ls",HNL:"L",GEL:"₾",BMD:"$",AWG:"Afl",BTN:"Nu",GTQ:"Q",TZS:"TSh",BBD:"Bds$",NAD:"N$",BZD:"$",JEP:"£",WST:"T",PGK:"K",KGS:"лв",AZN:"₼",QAR:"ر.ق",XOF:"CFA",XPF:"CFP"},V={AF:"AFN",AX:"EUR",AL:"ALL",DZ:"DZD",AS:"USD",AD:"EUR",AO:"AOA",AI:"XCD",AQ:"USD",AG:"XCD",AR:"ARS",AM:"AMD",AW:"AWG",AU:"AUD",AT:"EUR",AZ:"AZN",BS:"BSD",BH:"BHD",BD:"BDT",BB:"BBD",BY:"BYN",BE:"EUR",BZ:"BZD",BJ:"XOF",BM:"BMD",BT:"BTN",BO:"BOB",BA:"BAM",BW:"BWP",BV:"NOK",BR:"BRL",IO:"USD",BN:"BND",BG:"BGN",BF:"XOF",BI:"BIF",KH:"KHR",CM:"XAF",CA:"CAD",CV:"CVE",KY:"KYD",CF:"XAF",TD:"XAF",CL:"CLP",CN:"CNY",CX:"AUD",CC:"AUD",CO:"COP",KM:"KMF",CG:"XAF",CD:"CDF",CK:"NZD",CR:"CRC",CI:"XOF",HR:"HRK",CU:"CUP",CY:"EUR",CZ:"CZK",DK:"DKK",DJ:"DJF",DM:"XCD",DO:"DOP",EC:"USD",EG:"EGP",SV:"USD",GQ:"XAF",ER:"ERN",EE:"EUR",ET:"ETB",FK:"FKP",FO:"DKK",FJ:"FJD",FI:"EUR",FR:"EUR",GF:"EUR",PF:"XPF",TF:"EUR",GA:"XAF",GM:"GMD",GE:"GEL",DE:"EUR",GH:"GHS",GI:"GIP",GR:"EUR",GL:"DKK",GD:"XCD",GP:"EUR",GU:"USD",GT:"GTQ",GG:"GBP",GN:"GNF",GW:"XOF",GY:"GYD",HT:"HTG",HM:"AUD",VA:"EUR",HN:"HNL",HK:"HKD",HU:"HUF",IS:"ISK",IN:"INR",ID:"IDR",IR:"IRR",IQ:"IQD",IE:"EUR",IM:"GBP",IL:"ILS",IT:"EUR",JM:"JMD",JP:"JPY",JE:"GBP",JO:"JOD",KZ:"KZT",KE:"KES",KI:"AUD",KP:"KPW",KR:"KRW",KW:"KWD",KG:"KGS",LA:"LAK",LV:"EUR",LB:"LBP",LS:"LSL",LR:"LRD",LY:"LYD",LI:"CHF",LT:"EUR",LU:"EUR",MO:"MOP",MK:"MKD",MG:"MGA",MW:"MWK",MY:"MYR",MV:"MVR",ML:"XOF",MT:"EUR",MH:"USD",MQ:"EUR",MR:"MRU",MU:"MUR",YT:"EUR",MX:"MXN",FM:"USD",MD:"MDL",MC:"EUR",MN:"MNT",ME:"EUR",MS:"XCD",MA:"MAD",MZ:"MZN",MM:"MMK",NA:"NAD",NR:"AUD",NP:"NPR",NL:"EUR",AN:"ANG",NC:"XPF",NZ:"NZD",NI:"NIO",NE:"XOF",NG:"NGN",NU:"NZD",NF:"AUD",MP:"USD",NO:"NOK",OM:"OMR",PK:"PKR",PW:"USD",PS:"ILS",PA:"PAB",PG:"PGK",PY:"PYG",PE:"PEN",PH:"PHP",PN:"NZD",PL:"PLN",PT:"EUR",PR:"USD",QA:"QAR",RE:"EUR",RO:"RON",RU:"RUB",RW:"RWF",SH:"SHP",KN:"XCD",LC:"XCD",PM:"EUR",VC:"XCD",WS:"WST",SM:"EUR",ST:"STN",SA:"SAR",SN:"XOF",RS:"RSD",SC:"SCR",SL:"SLL",SG:"SGD",SK:"EUR",SI:"EUR",SB:"SBD",SO:"SOS",ZA:"ZAR",GS:"GBP",ES:"EUR",LK:"LKR",SD:"SDG",SR:"SRD",SJ:"NOK",SZ:"SZL",SE:"SEK",CH:"CHF",SY:"SYP",TW:"TWD",TJ:"TJS",TZ:"TZS",TH:"THB"},z=[{name:"Afghanistan",code:"AF"},{name:"land Islands",code:"AX"},{name:"Albania",code:"AL"},{name:"Algeria",code:"DZ"},{name:"American Samoa",code:"AS"},{name:"AndorrA",code:"AD"},{name:"Angola",code:"AO"},{name:"Anguilla",code:"AI"},{name:"Antarctica",code:"AQ"},{name:"Antigua and Barbuda",code:"AG"},{name:"Argentina",code:"AR"},{name:"Armenia",code:"AM"},{name:"Aruba",code:"AW"},{name:"Australia",code:"AU"},{name:"Austria",code:"AT"},{name:"Azerbaijan",code:"AZ"},{name:"Bahamas",code:"BS"},{name:"Bahrain",code:"BH"},{name:"Bangladesh",code:"BD"},{name:"Barbados",code:"BB"},{name:"Belarus",code:"BY"},{name:"Belgium",code:"BE"},{name:"Belize",code:"BZ"},{name:"Benin",code:"BJ"},{name:"Bermuda",code:"BM"},{name:"Bhutan",code:"BT"},{name:"Bolivia",code:"BO"},{name:"Bosnia and Herzegovina",code:"BA"},{name:"Botswana",code:"BW"},{name:"Bouvet Island",code:"BV"},{name:"Brazil",code:"BR"},{name:"British Indian Ocean Territory",code:"IO"},{name:"Brunei Darussalam",code:"BN"},{name:"Bulgaria",code:"BG"},{name:"Burkina Faso",code:"BF"},{name:"Burundi",code:"BI"},{name:"Cambodia",code:"KH"},{name:"Cameroon",code:"CM"},{name:"Canada",code:"CA"},{name:"Cape Verde",code:"CV"},{name:"Cayman Islands",code:"KY"},{name:"Central African Republic",code:"CF"},{name:"Chad",code:"TD"},{name:"Chile",code:"CL"},{name:"China",code:"CN"},{name:"Christmas Island",code:"CX"},{name:"Cocos (Keeling) Islands",code:"CC"},{name:"Colombia",code:"CO"},{name:"Comoros",code:"KM"},{name:"Congo",code:"CG"},{name:"Congo, The Democratic Republic of the",code:"CD"},{name:"Cook Islands",code:"CK"},{name:"Costa Rica",code:"CR"},{name:"Cote D Ivoire",code:"CI"},{name:"Croatia",code:"HR"},{name:"Cuba",code:"CU"},{name:"Cyprus",code:"CY"},{name:"Czech Republic",code:"CZ"},{name:"Denmark",code:"DK"},{name:"Djibouti",code:"DJ"},{name:"Dominica",code:"DM"},{name:"Dominican Republic",code:"DO"},{name:"Ecuador",code:"EC"},{name:"Egypt",code:"EG"},{name:"El Salvador",code:"SV"},{name:"Equatorial Guinea",code:"GQ"},{name:"Eritrea",code:"ER"},{name:"Estonia",code:"EE"},{name:"Ethiopia",code:"ET"},{name:"Falkland Islands (Malvinas)",code:"FK"},{name:"Faroe Islands",code:"FO"},{name:"Fiji",code:"FJ"},{name:"Finland",code:"FI"},{name:"France",code:"FR"},{name:"French Guiana",code:"GF"},{name:"French Polynesia",code:"PF"},{name:"French Southern Territories",code:"TF"},{name:"Gabon",code:"GA"},{name:"Gambia",code:"GM"},{name:"Georgia",code:"GE"},{name:"Germany",code:"DE"},{name:"Ghana",code:"GH"},{name:"Gibraltar",code:"GI"},{name:"Greece",code:"GR"},{name:"Greenland",code:"GL"},{name:"Grenada",code:"GD"},{name:"Guadeloupe",code:"GP"},{name:"Guam",code:"GU"},{name:"Guatemala",code:"GT"},{name:"Guernsey",code:"GG"},{name:"Guinea",code:"GN"},{name:"Guinea-Bissau",code:"GW"},{name:"Guyana",code:"GY"},{name:"Haiti",code:"HT"},{name:"Heard Island and Mcdonald Islands",code:"HM"},{name:"Holy See (Vatican City State)",code:"VA"},{name:"Honduras",code:"HN"},{name:"Hong Kong",code:"HK"},{name:"Hungary",code:"HU"},{name:"Iceland",code:"IS"},{name:"India",code:"IN"},{name:"Indonesia",code:"ID"},{name:"Iran, Islamic Republic Of",code:"IR"},{name:"Iraq",code:"IQ"},{name:"Ireland",code:"IE"},{name:"Isle of Man",code:"IM"},{name:"Israel",code:"IL"},{name:"Italy",code:"IT"},{name:"Jamaica",code:"JM"},{name:"Japan",code:"JP"},{name:"Jersey",code:"JE"},{name:"Jordan",code:"JO"},{name:"Kazakhstan",code:"KZ"},{name:"Kenya",code:"KE"},{name:"Kiribati",code:"KI"},{name:'Korea, Democratic People"S Republic of',code:"KP"},{name:"Korea, Republic of",code:"KR"},{name:"Kuwait",code:"KW"},{name:"Kyrgyzstan",code:"KG"},{name:'Lao People"S Democratic Republic',code:"LA"},{name:"Latvia",code:"LV"},{name:"Lebanon",code:"LB"},{name:"Lesotho",code:"LS"},{name:"Liberia",code:"LR"},{name:"Libyan Arab Jamahiriya",code:"LY"},{name:"Liechtenstein",code:"LI"},{name:"Lithuania",code:"LT"},{name:"Luxembourg",code:"LU"},{name:"Macao",code:"MO"},{name:"Macedonia, The Former Yugoslav Republic of",code:"MK"},{name:"Madagascar",code:"MG"},{name:"Malawi",code:"MW"},{name:"Malaysia",code:"MY"},{name:"Maldives",code:"MV"},{name:"Mali",code:"ML"},{name:"Malta",code:"MT"},{name:"Marshall Islands",code:"MH"},{name:"Martinique",code:"MQ"},{name:"Mauritania",code:"MR"},{name:"Mauritius",code:"MU"},{name:"Mayotte",code:"YT"},{name:"Mexico",code:"MX"},{name:"Micronesia, Federated States of",code:"FM"},{name:"Moldova, Republic of",code:"MD"},{name:"Monaco",code:"MC"},{name:"Mongolia",code:"MN"},{name:"Montenegro",code:"ME"},{name:"Montserrat",code:"MS"},{name:"Morocco",code:"MA"},{name:"Mozambique",code:"MZ"},{name:"Myanmar",code:"MM"},{name:"Namibia",code:"NA"},{name:"Nauru",code:"NR"},{name:"Nepal",code:"NP"},{name:"Netherlands",code:"NL"},{name:"Netherlands Antilles",code:"AN"},{name:"New Caledonia",code:"NC"},{name:"New Zealand",code:"NZ"},{name:"Nicaragua",code:"NI"},{name:"Niger",code:"NE"},{name:"Nigeria",code:"NG"},{name:"Niue",code:"NU"},{name:"Norfolk Island",code:"NF"},{name:"Northern Mariana Islands",code:"MP"},{name:"Norway",code:"NO"},{name:"Oman",code:"OM"},{name:"Pakistan",code:"PK"},{name:"Palau",code:"PW"},{name:"Palestinian Territory, Occupied",code:"PS"},{name:"Panama",code:"PA"},{name:"Papua New Guinea",code:"PG"},{name:"Paraguay",code:"PY"},{name:"Peru",code:"PE"},{name:"Philippines",code:"PH"},{name:"Pitcairn",code:"PN"},{name:"Poland",code:"PL"},{name:"Portugal",code:"PT"},{name:"Puerto Rico",code:"PR"},{name:"Qatar",code:"QA"},{name:"Reunion",code:"RE"},{name:"Romania",code:"RO"},{name:"Russian Federation",code:"RU"},{name:"RWANDA",code:"RW"},{name:"Saint Helena",code:"SH"},{name:"Saint Kitts and Nevis",code:"KN"},{name:"Saint Lucia",code:"LC"},{name:"Saint Pierre and Miquelon",code:"PM"},{name:"Saint Vincent and the Grenadines",code:"VC"},{name:"Samoa",code:"WS"},{name:"San Marino",code:"SM"},{name:"Sao Tome and Principe",code:"ST"},{name:"Saudi Arabia",code:"SA"},{name:"Senegal",code:"SN"},{name:"Serbia",code:"RS"},{name:"Seychelles",code:"SC"},{name:"Sierra Leone",code:"SL"},{name:"Singapore",code:"SG"},{name:"Slovakia",code:"SK"},{name:"Slovenia",code:"SI"},{name:"Solomon Islands",code:"SB"},{name:"Somalia",code:"SO"},{name:"South Africa",code:"ZA"},{name:"South Georgia and the South Sandwich Islands",code:"GS"},{name:"Spain",code:"ES"},{name:"Sri Lanka",code:"LK"},{name:"Sudan",code:"SD"},{name:"Suriname",code:"SR"},{name:"Svalbard and Jan Mayen",code:"SJ"},{name:"Swaziland",code:"SZ"},{name:"Sweden",code:"SE"},{name:"Switzerland",code:"CH"},{name:"Syrian Arab Republic",code:"SY"},{name:"Taiwan, Province of China",code:"TW"},{name:"Tajikistan",code:"TJ"},{name:"Tanzania, United Republic of",code:"TZ"},{name:"Thailand",code:"TH"},{name:"Timor-Leste",code:"TL"},{name:"Togo",code:"TG"},{name:"Tokelau",code:"TK"},{name:"Tonga",code:"TO"},{name:"Trinidad and Tobago",code:"TT"},{name:"Tunisia",code:"TN"},{name:"Turkey",code:"TR"},{name:"Turkmenistan",code:"TM"},{name:"Turks and Caicos Islands",code:"TC"},{name:"Tuvalu",code:"TV"},{name:"Uganda",code:"UG"},{name:"Ukraine",code:"UA"},{name:"United Arab Emirates",code:"AE"},{name:"United Kingdom",code:"GB"},{name:"United States",code:"US"},{name:"United States Minor Outlying Islands",code:"UM"},{name:"Uruguay",code:"UY"},{name:"Uzbekistan",code:"UZ"},{name:"Vanuatu",code:"VU"},{name:"Venezuela",code:"VE"},{name:"Viet Nam",code:"VN"},{name:"Virgin Islands, British",code:"VG"},{name:"Virgin Islands, U.S.",code:"VI"},{name:"Wallis and Futuna",code:"WF"},{name:"Western Sahara",code:"EH"},{name:"Yemen",code:"YE"},{name:"Zambia",code:"ZM"},{name:"Zimbabwe",code:"ZW"}].map(e=>{const a=V[e.code]||"USD",s=W[a]||"";return{value:e.code,flag:(t=e.code,t.toUpperCase().replace(/./g,e=>String.fromCodePoint(127397+e.charCodeAt(0)))),text:e.name,currencyCode:a,currencyIcon:s};var t});function H({value:a,onChange:s}){const{t:i}=t.useTranslation(),n=z.map(e=>({value:e.value,label:e.text,icon:e.flag}));return e.jsx(O,{options:n,value:a,onChange:s,placeholder:i("dropdowns.searchCountry"),emptyLabel:i("dropdowns.chooseCountry")})}const J=z.map(e=>({value:e.currencyCode,text:e.currencyCode,icon:e.currencyIcon??null})),Y=Array.from(new Set(J.map(e=>e.value))).map(e=>J.find(a=>a.value===e)).filter(e=>void 0!==e);function Z({value:a,onChange:s}){const{t:i}=t.useTranslation(),n=Y.map(e=>({value:e.value,label:e.text,icon:e.icon??void 0}));return e.jsx(O,{options:n,value:a,onChange:s,placeholder:i("dropdowns.searchCurrency"),emptyLabel:i("dropdowns.chooseCurrency")})}let q=[{code:"en",label:"English",flag:"🇬🇧"},{code:"en-GB",label:"English (United Kingdom)",flag:"🇬🇧"},{code:"en-US",label:"English (United States)",flag:"🇺🇸"},{code:"en-AU",label:"English (Australia)",flag:"🇦🇺"},{code:"en-CA",label:"English (Canada)",flag:"🇨🇦"},{code:"en-NZ",label:"English (New Zealand)",flag:"🇳🇿"},{code:"es",label:"Spanish",flag:"🇪🇸"},{code:"es-ES",label:"Spanish (Spain)",flag:"🇪🇸"},{code:"es-MX",label:"Spanish (Mexico)",flag:"🇲🇽"},{code:"fr",label:"French",flag:"🇫🇷"},{code:"fr-FR",label:"French (France)",flag:"🇫🇷"},{code:"de",label:"German",flag:"🇩🇪"},{code:"de-DE",label:"German (Germany)",flag:"🇩🇪"},{code:"it",label:"Italian",flag:"🇮🇹"},{code:"it-IT",label:"Italian (Italy)",flag:"🇮🇹"},{code:"pt",label:"Portuguese",flag:"🇵🇹"},{code:"pt-PT",label:"Portuguese (Portugal)",flag:"🇵🇹"},{code:"pt-BR",label:"Portuguese (Brazil)",flag:"🇧🇷"},{code:"ru",label:"Russian",flag:"🇷🇺"},{code:"ru-RU",label:"Russian (Russia)",flag:"🇷🇺"},{code:"zh",label:"Chinese",flag:"🇨🇳"},{code:"zh-CN",label:"Chinese (Simplified)",flag:"🇨🇳"},{code:"zh-TW",label:"Chinese (Traditional)",flag:"🇹🇼"},{code:"ja",label:"Japanese",flag:"🇯🇵"},{code:"ja-JP",label:"Japanese (Japan)",flag:"🇯🇵"},{code:"ko",label:"Korean",flag:"🇰🇷"},{code:"ko-KR",label:"Korean (South Korea)",flag:"🇰🇷"},{code:"ar",label:"Arabic",flag:"🇸🇦"},{code:"ar-SA",label:"Arabic (Saudi Arabia)",flag:"🇸🇦"},{code:"hi",label:"Hindi",flag:"🇮🇳"},{code:"hi-IN",label:"Hindi (India)",flag:"🇮🇳"},{code:"bn",label:"Bengali",flag:"🇮🇳"},{code:"bn-IN",label:"Bengali (India)",flag:"🇮🇳"},{code:"gu",label:"Gujarati",flag:"🇮🇳"},{code:"gu-IN",label:"Gujarati (India)",flag:"🇮🇳"},{code:"ta",label:"Tamil",flag:"🇮🇳"},{code:"ta-IN",label:"Tamil (India)",flag:"🇮🇳"},{code:"te",label:"Telugu",flag:"🇮🇳"},{code:"te-IN",label:"Telugu (India)",flag:"🇮🇳"},{code:"ml",label:"Malayalam",flag:"🇮🇳"},{code:"ml-IN",label:"Malayalam (India)",flag:"🇮🇳"},{code:"kn",label:"Kannada",flag:"🇮🇳"},{code:"kn-IN",label:"Kannada (India)",flag:"🇮🇳"},{code:"mr",label:"Marathi",flag:"🇮🇳"},{code:"mr-IN",label:"Marathi (India)",flag:"🇮🇳"},{code:"pa",label:"Punjabi",flag:"🇮🇳"},{code:"pa-IN",label:"Punjabi (India)",flag:"🇮🇳"},{code:"ur",label:"Urdu",flag:"🇮🇳"},{code:"ur-IN",label:"Urdu (India)",flag:"🇮🇳"},{code:"or",label:"Odia",flag:"🇮🇳"},{code:"or-IN",label:"Odia (India)",flag:"🇮🇳"},{code:"as",label:"Assamese",flag:"🇮🇳"},{code:"as-IN",label:"Assamese (India)",flag:"🇮🇳"},{code:"zh-HK",label:"Chinese (Hong Kong)",flag:"🇭🇰"},{code:"nl",label:"Dutch",flag:"🇳🇱"},{code:"nl-NL",label:"Dutch (Netherlands)",flag:"🇳🇱"},{code:"pl",label:"Polish",flag:"🇵🇱"},{code:"pl-PL",label:"Polish (Poland)",flag:"🇵🇱"},{code:"sv",label:"Swedish",flag:"🇸🇪"},{code:"sv-SE",label:"Swedish (Sweden)",flag:"🇸🇪"},{code:"da",label:"Danish",flag:"🇩🇰"},{code:"da-DK",label:"Danish (Denmark)",flag:"🇩🇰"},{code:"no",label:"Norwegian",flag:"🇳🇴"},{code:"no-NO",label:"Norwegian (Norway)",flag:"🇳🇴"},{code:"fi",label:"Finnish",flag:"🇫🇮"},{code:"fi-FI",label:"Finnish (Finland)",flag:"🇫🇮"},{code:"tr",label:"Turkish",flag:"🇹🇷"},{code:"tr-TR",label:"Turkish (Turkey)",flag:"🇹🇷"},{code:"cs",label:"Czech",flag:"🇨🇿"},{code:"cs-CZ",label:"Czech (Czech Republic)",flag:"🇨🇿"},{code:"sk",label:"Slovak",flag:"🇸🇰"},{code:"sk-SK",label:"Slovak (Slovakia)",flag:"🇸🇰"},{code:"hu",label:"Hungarian",flag:"🇭🇺"},{code:"hu-HU",label:"Hungarian (Hungary)",flag:"🇭🇺"},{code:"ro",label:"Romanian",flag:"🇷🇴"},{code:"ro-RO",label:"Romanian (Romania)",flag:"🇷🇴"},{code:"el",label:"Greek",flag:"🇬🇷"},{code:"el-GR",label:"Greek (Greece)",flag:"🇬🇷"},{code:"th",label:"Thai",flag:"🇹🇭"},{code:"th-TH",label:"Thai (Thailand)",flag:"🇹🇭"},{code:"id",label:"Indonesian",flag:"🇮🇩"},{code:"id-ID",label:"Indonesian (Indonesia)",flag:"🇮🇩"},{code:"ms",label:"Malay",flag:"🇲🇾"},{code:"ms-MY",label:"Malay (Malaysia)",flag:"🇲🇾"},{code:"vi",label:"Vietnamese",flag:"🇻🇳"},{code:"vi-VN",label:"Vietnamese (Vietnam)",flag:"🇻🇳"},{code:"he",label:"Hebrew",flag:"🇮🇱"},{code:"he-IL",label:"Hebrew (Israel)",flag:"🇮🇱"}];q=q.filter((e,a,s)=>a===s.findIndex(a=>a.code===e.code&&a.label===e.label)),q.sort((e,a)=>e.label<a.label?-1:e.label>a.label?1:0);const $=q.filter(e=>function(e){try{const a=new Intl.DateTimeFormat(e);return a.resolvedOptions().locale===e||a.resolvedOptions().locale.startsWith(e)}catch{return!1}}(e.code)).filter((e,a,s)=>a===s.findIndex(a=>a.code===e.code&&a.label===e.label)).map(e=>({value:e.code,label:e.label,flag:e.flag}));function X({value:a,onChange:s}){const{t:i}=t.useTranslation(),n=$.map(e=>({value:e.value,label:e.label,icon:e.flag}));return e.jsx(O,{options:n,value:a,onChange:s,placeholder:i("dropdowns.searchLanguage"),emptyLabel:i("dropdowns.chooseLanguage")})}const Q=[{value:"Dateline Standard Time",abbr:"DST",offset:-12,isdst:!1,text:"(UTC-12:00) International Date Line West",utc:["Etc/GMT+12"]},{value:"UTC-11",abbr:"U",offset:-11,isdst:!1,text:"(UTC-11:00) Coordinated Universal Time-11",utc:["Etc/GMT+11","Pacific/Midway","Pacific/Niue","Pacific/Pago_Pago"]},{value:"Hawaiian Standard Time",abbr:"HST",offset:-10,isdst:!1,text:"(UTC-10:00) Hawaii",utc:["Etc/GMT+10","Pacific/Honolulu","Pacific/Johnston","Pacific/Rarotonga","Pacific/Tahiti"]},{value:"Alaskan Standard Time",abbr:"AKDT",offset:-8,isdst:!0,text:"(UTC-09:00) Alaska",utc:["America/Anchorage","America/Juneau","America/Nome","America/Sitka","America/Yakutat"]},{value:"Pacific Standard Time (Mexico)",abbr:"PDT",offset:-7,isdst:!0,text:"(UTC-08:00) Baja California",utc:["America/Santa_Isabel"]},{value:"Pacific Daylight Time",abbr:"PDT",offset:-7,isdst:!0,text:"(UTC-07:00) Pacific Daylight Time (US & Canada)",utc:["America/Los_Angeles","America/Tijuana","America/Vancouver"]},{value:"Pacific Standard Time",abbr:"PST",offset:-8,isdst:!1,text:"(UTC-08:00) Pacific Standard Time (US & Canada)",utc:["America/Los_Angeles","America/Tijuana","America/Vancouver","PST8PDT"]},{value:"US Mountain Standard Time",abbr:"UMST",offset:-7,isdst:!1,text:"(UTC-07:00) Arizona",utc:["America/Creston","America/Dawson","America/Dawson_Creek","America/Hermosillo","America/Phoenix","America/Whitehorse","Etc/GMT+7"]},{value:"Mountain Standard Time (Mexico)",abbr:"MDT",offset:-6,isdst:!0,text:"(UTC-07:00) Chihuahua, La Paz, Mazatlan",utc:["America/Chihuahua","America/Mazatlan"]},{value:"Mountain Standard Time",abbr:"MDT",offset:-6,isdst:!0,text:"(UTC-07:00) Mountain Time (US & Canada)",utc:["America/Boise","America/Cambridge_Bay","America/Denver","America/Edmonton","America/Inuvik","America/Ojinaga","America/Yellowknife","MST7MDT"]},{value:"Central America Standard Time",abbr:"CAST",offset:-6,isdst:!1,text:"(UTC-06:00) Central America",utc:["America/Belize","America/Costa_Rica","America/El_Salvador","America/Guatemala","America/Managua","America/Tegucigalpa","Etc/GMT+6","Pacific/Galapagos"]},{value:"Central Standard Time",abbr:"CDT",offset:-5,isdst:!0,text:"(UTC-06:00) Central Time (US & Canada)",utc:["America/Chicago","America/Indiana/Knox","America/Indiana/Tell_City","America/Matamoros","America/Menominee","America/North_Dakota/Beulah","America/North_Dakota/Center","America/North_Dakota/New_Salem","America/Rainy_River","America/Rankin_Inlet","America/Resolute","America/Winnipeg","CST6CDT"]},{value:"Central Standard Time (Mexico)",abbr:"CDT",offset:-5,isdst:!0,text:"(UTC-06:00) Guadalajara, Mexico City, Monterrey",utc:["America/Bahia_Banderas","America/Cancun","America/Merida","America/Mexico_City","America/Monterrey"]},{value:"Canada Central Standard Time",abbr:"CCST",offset:-6,isdst:!1,text:"(UTC-06:00) Saskatchewan",utc:["America/Regina","America/Swift_Current"]},{value:"SA Pacific Standard Time",abbr:"SPST",offset:-5,isdst:!1,text:"(UTC-05:00) Bogota, Lima, Quito",utc:["America/Bogota","America/Cayman","America/Coral_Harbour","America/Eirunepe","America/Guayaquil","America/Jamaica","America/Lima","America/Panama","America/Rio_Branco","Etc/GMT+5"]},{value:"Eastern Standard Time",abbr:"EST",offset:-5,isdst:!1,text:"(UTC-05:00) Eastern Time (US & Canada)",utc:["America/Detroit","America/Havana","America/Indiana/Petersburg","America/Indiana/Vincennes","America/Indiana/Winamac","America/Iqaluit","America/Kentucky/Monticello","America/Louisville","America/Montreal","America/Nassau","America/New_York","America/Nipigon","America/Pangnirtung","America/Port-au-Prince","America/Thunder_Bay","America/Toronto"]},{value:"Eastern Daylight Time",abbr:"EDT",offset:-4,isdst:!0,text:"(UTC-04:00) Eastern Daylight Time (US & Canada)",utc:["America/Detroit","America/Havana","America/Indiana/Petersburg","America/Indiana/Vincennes","America/Indiana/Winamac","America/Iqaluit","America/Kentucky/Monticello","America/Louisville","America/Montreal","America/Nassau","America/New_York","America/Nipigon","America/Pangnirtung","America/Port-au-Prince","America/Thunder_Bay","America/Toronto"]},{value:"US Eastern Standard Time",abbr:"UEDT",offset:-5,isdst:!1,text:"(UTC-05:00) Indiana (East)",utc:["America/Indiana/Marengo","America/Indiana/Vevay","America/Indianapolis"]},{value:"Venezuela Standard Time",abbr:"VST",offset:-4.5,isdst:!1,text:"(UTC-04:30) Caracas",utc:["America/Caracas"]},{value:"Paraguay Standard Time",abbr:"PYT",offset:-4,isdst:!1,text:"(UTC-04:00) Asuncion",utc:["America/Asuncion"]},{value:"Atlantic Standard Time",abbr:"ADT",offset:-3,isdst:!0,text:"(UTC-04:00) Atlantic Time (Canada)",utc:["America/Glace_Bay","America/Goose_Bay","America/Halifax","America/Moncton","America/Thule","Atlantic/Bermuda"]},{value:"Central Brazilian Standard Time",abbr:"CBST",offset:-4,isdst:!1,text:"(UTC-04:00) Cuiaba",utc:["America/Campo_Grande","America/Cuiaba"]},{value:"SA Western Standard Time",abbr:"SWST",offset:-4,isdst:!1,text:"(UTC-04:00) Georgetown, La Paz, Manaus, San Juan",utc:["America/Anguilla","America/Antigua","America/Aruba","America/Barbados","America/Blanc-Sablon","America/Boa_Vista","America/Curacao","America/Dominica","America/Grand_Turk","America/Grenada","America/Guadeloupe","America/Guyana","America/Kralendijk","America/La_Paz","America/Lower_Princes","America/Manaus","America/Marigot","America/Martinique","America/Montserrat","America/Port_of_Spain","America/Porto_Velho","America/Puerto_Rico","America/Santo_Domingo","America/St_Barthelemy","America/St_Kitts","America/St_Lucia","America/St_Thomas","America/St_Vincent","America/Tortola","Etc/GMT+4"]},{value:"Pacific SA Standard Time",abbr:"PSST",offset:-4,isdst:!1,text:"(UTC-04:00) Santiago",utc:["America/Santiago","Antarctica/Palmer"]},{value:"Newfoundland Standard Time",abbr:"NDT",offset:-2.5,isdst:!0,text:"(UTC-03:30) Newfoundland",utc:["America/St_Johns"]},{value:"E. South America Standard Time",abbr:"ESAST",offset:-3,isdst:!1,text:"(UTC-03:00) Brasilia",utc:["America/Sao_Paulo"]},{value:"Argentina Standard Time",abbr:"AST",offset:-3,isdst:!1,text:"(UTC-03:00) Buenos Aires",utc:["America/Argentina/Buenos_Aires","America/Argentina/Catamarca","America/Argentina/Cordoba","America/Argentina/Jujuy","America/Argentina/La_Rioja","America/Argentina/Mendoza","America/Argentina/Rio_Gallegos","America/Argentina/Salta","America/Argentina/San_Juan","America/Argentina/San_Luis","America/Argentina/Tucuman","America/Argentina/Ushuaia","America/Buenos_Aires","America/Catamarca","America/Cordoba","America/Jujuy","America/Mendoza"]},{value:"SA Eastern Standard Time",abbr:"SEST",offset:-3,isdst:!1,text:"(UTC-03:00) Cayenne, Fortaleza",utc:["America/Araguaina","America/Belem","America/Cayenne","America/Fortaleza","America/Maceio","America/Paramaribo","America/Recife","America/Santarem","Antarctica/Rothera","Atlantic/Stanley","Etc/GMT+3"]},{value:"Greenland Standard Time",abbr:"GDT",offset:-3,isdst:!0,text:"(UTC-03:00) Greenland",utc:["America/Godthab"]},{value:"Montevideo Standard Time",abbr:"MST",offset:-3,isdst:!1,text:"(UTC-03:00) Montevideo",utc:["America/Montevideo"]},{value:"Bahia Standard Time",abbr:"BST",offset:-3,isdst:!1,text:"(UTC-03:00) Salvador",utc:["America/Bahia"]},{value:"UTC-02",abbr:"U",offset:-2,isdst:!1,text:"(UTC-02:00) Coordinated Universal Time-02",utc:["America/Noronha","Atlantic/South_Georgia","Etc/GMT+2"]},{value:"Mid-Atlantic Standard Time",abbr:"MDT",offset:-1,isdst:!0,text:"(UTC-02:00) Mid-Atlantic - Old",utc:[]},{value:"Azores Standard Time",abbr:"ADT",offset:0,isdst:!0,text:"(UTC-01:00) Azores",utc:["America/Scoresbysund","Atlantic/Azores"]},{value:"Cape Verde Standard Time",abbr:"CVST",offset:-1,isdst:!1,text:"(UTC-01:00) Cape Verde Is.",utc:["Atlantic/Cape_Verde","Etc/GMT+1"]},{value:"Morocco Standard Time",abbr:"MDT",offset:1,isdst:!0,text:"(UTC) Casablanca",utc:["Africa/Casablanca","Africa/El_Aaiun"]},{value:"UTC",abbr:"UTC",offset:0,isdst:!1,text:"(UTC) Coordinated Universal Time",utc:["America/Danmarkshavn","Etc/GMT"]},{value:"GMT Standard Time",abbr:"GMT",offset:0,isdst:!1,text:"(UTC) Edinburgh, London",utc:["Europe/Isle_of_Man","Europe/Guernsey","Europe/Jersey","Europe/London"]},{value:"British Summer Time",abbr:"BST",offset:1,isdst:!0,text:"(UTC+01:00) Edinburgh, London",utc:["Europe/Isle_of_Man","Europe/Guernsey","Europe/Jersey","Europe/London"]},{value:"GMT Standard Time",abbr:"GDT",offset:1,isdst:!0,text:"(UTC) Dublin, Lisbon",utc:["Atlantic/Canary","Atlantic/Faeroe","Atlantic/Madeira","Europe/Dublin","Europe/Lisbon"]},{value:"Greenwich Standard Time",abbr:"GST",offset:0,isdst:!1,text:"(UTC) Monrovia, Reykjavik",utc:["Africa/Abidjan","Africa/Accra","Africa/Bamako","Africa/Banjul","Africa/Bissau","Africa/Conakry","Africa/Dakar","Africa/Freetown","Africa/Lome","Africa/Monrovia","Africa/Nouakchott","Africa/Ouagadougou","Africa/Sao_Tome","Atlantic/Reykjavik","Atlantic/St_Helena"]},{value:"W. Europe Standard Time",abbr:"WEDT",offset:2,isdst:!0,text:"(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna",utc:["Arctic/Longyearbyen","Europe/Amsterdam","Europe/Andorra","Europe/Berlin","Europe/Busingen","Europe/Gibraltar","Europe/Luxembourg","Europe/Malta","Europe/Monaco","Europe/Oslo","Europe/Rome","Europe/San_Marino","Europe/Stockholm","Europe/Vaduz","Europe/Vatican","Europe/Vienna","Europe/Zurich"]},{value:"Central Europe Standard Time",abbr:"CEDT",offset:2,isdst:!0,text:"(UTC+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague",utc:["Europe/Belgrade","Europe/Bratislava","Europe/Budapest","Europe/Ljubljana","Europe/Podgorica","Europe/Prague","Europe/Tirane"]},{value:"Romance Standard Time",abbr:"RDT",offset:2,isdst:!0,text:"(UTC+01:00) Brussels, Copenhagen, Madrid, Paris",utc:["Africa/Ceuta","Europe/Brussels","Europe/Copenhagen","Europe/Madrid","Europe/Paris"]},{value:"Central European Standard Time",abbr:"CEDT",offset:2,isdst:!0,text:"(UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb",utc:["Europe/Sarajevo","Europe/Skopje","Europe/Warsaw","Europe/Zagreb"]},{value:"W. Central Africa Standard Time",abbr:"WCAST",offset:1,isdst:!1,text:"(UTC+01:00) West Central Africa",utc:["Africa/Algiers","Africa/Bangui","Africa/Brazzaville","Africa/Douala","Africa/Kinshasa","Africa/Lagos","Africa/Libreville","Africa/Luanda","Africa/Malabo","Africa/Ndjamena","Africa/Niamey","Africa/Porto-Novo","Africa/Tunis","Etc/GMT-1"]},{value:"Namibia Standard Time",abbr:"NST",offset:1,isdst:!1,text:"(UTC+01:00) Windhoek",utc:["Africa/Windhoek"]},{value:"GTB Standard Time",abbr:"GDT",offset:3,isdst:!0,text:"(UTC+02:00) Athens, Bucharest",utc:["Asia/Nicosia","Europe/Athens","Europe/Bucharest","Europe/Chisinau"]},{value:"Middle East Standard Time",abbr:"MEDT",offset:3,isdst:!0,text:"(UTC+02:00) Beirut",utc:["Asia/Beirut"]},{value:"Egypt Standard Time",abbr:"EST",offset:2,isdst:!1,text:"(UTC+02:00) Cairo",utc:["Africa/Cairo"]},{value:"Syria Standard Time",abbr:"SDT",offset:3,isdst:!0,text:"(UTC+02:00) Damascus",utc:["Asia/Damascus"]},{value:"E. Europe Standard Time",abbr:"EEDT",offset:3,isdst:!0,text:"(UTC+02:00) E. Europe",utc:["Asia/Nicosia","Europe/Athens","Europe/Bucharest","Europe/Chisinau","Europe/Helsinki","Europe/Kyiv","Europe/Mariehamn","Europe/Nicosia","Europe/Riga","Europe/Sofia","Europe/Tallinn","Europe/Uzhhorod","Europe/Vilnius","Europe/Zaporizhzhia"]},{value:"South Africa Standard Time",abbr:"SAST",offset:2,isdst:!1,text:"(UTC+02:00) Harare, Pretoria",utc:["Africa/Blantyre","Africa/Bujumbura","Africa/Gaborone","Africa/Harare","Africa/Johannesburg","Africa/Kigali","Africa/Lubumbashi","Africa/Lusaka","Africa/Maputo","Africa/Maseru","Africa/Mbabane","Etc/GMT-2"]},{value:"FLE Standard Time",abbr:"FDT",offset:3,isdst:!0,text:"(UTC+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius",utc:["Europe/Helsinki","Europe/Kyiv","Europe/Mariehamn","Europe/Riga","Europe/Sofia","Europe/Tallinn","Europe/Uzhhorod","Europe/Vilnius","Europe/Zaporizhzhia"]},{value:"Turkey Standard Time",abbr:"TDT",offset:3,isdst:!1,text:"(UTC+03:00) Istanbul",utc:["Europe/Istanbul"]},{value:"Israel Standard Time",abbr:"JDT",offset:3,isdst:!0,text:"(UTC+02:00) Jerusalem",utc:["Asia/Jerusalem"]},{value:"Libya Standard Time",abbr:"LST",offset:2,isdst:!1,text:"(UTC+02:00) Tripoli",utc:["Africa/Tripoli"]},{value:"Jordan Standard Time",abbr:"JST",offset:3,isdst:!1,text:"(UTC+03:00) Amman",utc:["Asia/Amman"]},{value:"Arabic Standard Time",abbr:"AST",offset:3,isdst:!1,text:"(UTC+03:00) Baghdad",utc:["Asia/Baghdad"]},{value:"Kaliningrad Standard Time",abbr:"KST",offset:3,isdst:!1,text:"(UTC+02:00) Kaliningrad",utc:["Europe/Kaliningrad"]},{value:"Arab Standard Time",abbr:"AST",offset:3,isdst:!1,text:"(UTC+03:00) Kuwait, Riyadh",utc:["Asia/Aden","Asia/Bahrain","Asia/Kuwait","Asia/Qatar","Asia/Riyadh"]},{value:"E. Africa Standard Time",abbr:"EAST",offset:3,isdst:!1,text:"(UTC+03:00) Nairobi",utc:["Africa/Addis_Ababa","Africa/Asmera","Africa/Dar_es_Salaam","Africa/Djibouti","Africa/Juba","Africa/Kampala","Africa/Khartoum","Africa/Mogadishu","Africa/Nairobi","Antarctica/Syowa","Etc/GMT-3","Indian/Antananarivo","Indian/Comoro","Indian/Mayotte"]},{value:"Moscow Standard Time",abbr:"MSK",offset:3,isdst:!1,text:"(UTC+03:00) Moscow, St. Petersburg, Volgograd, Minsk",utc:["Europe/Kirov","Europe/Moscow","Europe/Simferopol","Europe/Volgograd","Europe/Minsk"]},{value:"Samara Time",abbr:"SAMT",offset:4,isdst:!1,text:"(UTC+04:00) Samara, Ulyanovsk, Saratov",utc:["Europe/Astrakhan","Europe/Samara","Europe/Ulyanovsk"]},{value:"Iran Standard Time",abbr:"IDT",offset:4.5,isdst:!0,text:"(UTC+03:30) Tehran",utc:["Asia/Tehran"]},{value:"Arabian Standard Time",abbr:"AST",offset:4,isdst:!1,text:"(UTC+04:00) Abu Dhabi, Muscat",utc:["Asia/Dubai","Asia/Muscat","Etc/GMT-4"]},{value:"Azerbaijan Standard Time",abbr:"ADT",offset:5,isdst:!0,text:"(UTC+04:00) Baku",utc:["Asia/Baku"]},{value:"Mauritius Standard Time",abbr:"MST",offset:4,isdst:!1,text:"(UTC+04:00) Port Louis",utc:["Indian/Mahe","Indian/Mauritius","Indian/Reunion"]},{value:"Georgian Standard Time",abbr:"GET",offset:4,isdst:!1,text:"(UTC+04:00) Tbilisi",utc:["Asia/Tbilisi"]},{value:"Caucasus Standard Time",abbr:"CST",offset:4,isdst:!1,text:"(UTC+04:00) Yerevan",utc:["Asia/Yerevan"]},{value:"Afghanistan Standard Time",abbr:"AST",offset:4.5,isdst:!1,text:"(UTC+04:30) Kabul",utc:["Asia/Kabul"]},{value:"West Asia Standard Time",abbr:"WAST",offset:5,isdst:!1,text:"(UTC+05:00) Ashgabat, Tashkent",utc:["Antarctica/Mawson","Asia/Aqtau","Asia/Aqtobe","Asia/Ashgabat","Asia/Dushanbe","Asia/Oral","Asia/Samarkand","Asia/Tashkent","Etc/GMT-5","Indian/Kerguelen","Indian/Maldives"]},{value:"Yekaterinburg Time",abbr:"YEKT",offset:5,isdst:!1,text:"(UTC+05:00) Yekaterinburg",utc:["Asia/Yekaterinburg"]},{value:"Pakistan Standard Time",abbr:"PKT",offset:5,isdst:!1,text:"(UTC+05:00) Islamabad, Karachi",utc:["Asia/Karachi"]},{value:"India Standard Time",abbr:"IST",offset:5.5,isdst:!1,text:"(UTC+05:30) Chennai, Kolkata, Mumbai, New Delhi",utc:["Asia/Kolkata","Asia/Calcutta"]},{value:"Sri Lanka Standard Time",abbr:"SLST",offset:5.5,isdst:!1,text:"(UTC+05:30) Sri Jayawardenepura",utc:["Asia/Colombo"]},{value:"Nepal Standard Time",abbr:"NST",offset:5.75,isdst:!1,text:"(UTC+05:45) Kathmandu",utc:["Asia/Kathmandu"]},{value:"Central Asia Standard Time",abbr:"CAST",offset:6,isdst:!1,text:"(UTC+06:00) Nur-Sultan (Astana)",utc:["Antarctica/Vostok","Asia/Almaty","Asia/Bishkek","Asia/Qyzylorda","Asia/Urumqi","Etc/GMT-6","Indian/Chagos"]},{value:"Bangladesh Standard Time",abbr:"BST",offset:6,isdst:!1,text:"(UTC+06:00) Dhaka",utc:["Asia/Dhaka","Asia/Thimphu"]},{value:"Myanmar Standard Time",abbr:"MST",offset:6.5,isdst:!1,text:"(UTC+06:30) Yangon (Rangoon)",utc:["Asia/Rangoon","Indian/Cocos"]},{value:"SE Asia Standard Time",abbr:"SAST",offset:7,isdst:!1,text:"(UTC+07:00) Bangkok, Hanoi, Jakarta",utc:["Antarctica/Davis","Asia/Bangkok","Asia/Hovd","Asia/Jakarta","Asia/Phnom_Penh","Asia/Pontianak","Asia/Saigon","Asia/Vientiane","Etc/GMT-7","Indian/Christmas"]},{value:"N. Central Asia Standard Time",abbr:"NCAST",offset:7,isdst:!1,text:"(UTC+07:00) Novosibirsk",utc:["Asia/Novokuznetsk","Asia/Novosibirsk","Asia/Omsk"]},{value:"China Standard Time",abbr:"CST",offset:8,isdst:!1,text:"(UTC+08:00) Beijing, Chongqing, Hong Kong, Urumqi",utc:["Asia/Hong_Kong","Asia/Macau","Asia/Shanghai"]},{value:"North Asia Standard Time",abbr:"NAST",offset:8,isdst:!1,text:"(UTC+08:00) Krasnoyarsk",utc:["Asia/Krasnoyarsk"]},{value:"Singapore Standard Time",abbr:"MPST",offset:8,isdst:!1,text:"(UTC+08:00) Kuala Lumpur, Singapore",utc:["Asia/Brunei","Asia/Kuala_Lumpur","Asia/Kuching","Asia/Makassar","Asia/Manila","Asia/Singapore","Etc/GMT-8"]},{value:"W. Australia Standard Time",abbr:"WAST",offset:8,isdst:!1,text:"(UTC+08:00) Perth",utc:["Antarctica/Casey","Australia/Perth"]},{value:"Taipei Standard Time",abbr:"TST",offset:8,isdst:!1,text:"(UTC+08:00) Taipei",utc:["Asia/Taipei"]},{value:"Ulaanbaatar Standard Time",abbr:"UST",offset:8,isdst:!1,text:"(UTC+08:00) Ulaanbaatar",utc:["Asia/Choibalsan","Asia/Ulaanbaatar"]},{value:"North Asia East Standard Time",abbr:"NAEST",offset:8,isdst:!1,text:"(UTC+08:00) Irkutsk",utc:["Asia/Irkutsk"]},{value:"Japan Standard Time",abbr:"JST",offset:9,isdst:!1,text:"(UTC+09:00) Osaka, Sapporo, Tokyo",utc:["Asia/Dili","Asia/Jayapura","Asia/Tokyo","Etc/GMT-9","Pacific/Palau"]},{value:"Korea Standard Time",abbr:"KST",offset:9,isdst:!1,text:"(UTC+09:00) Seoul",utc:["Asia/Pyongyang","Asia/Seoul"]},{value:"Cen. Australia Standard Time",abbr:"CAST",offset:9.5,isdst:!1,text:"(UTC+09:30) Adelaide",utc:["Australia/Adelaide","Australia/Broken_Hill"]},{value:"AUS Central Standard Time",abbr:"ACST",offset:9.5,isdst:!1,text:"(UTC+09:30) Darwin",utc:["Australia/Darwin"]},{value:"E. Australia Standard Time",abbr:"EAST",offset:10,isdst:!1,text:"(UTC+10:00) Brisbane",utc:["Australia/Brisbane","Australia/Lindeman"]},{value:"AUS Eastern Standard Time",abbr:"AEST",offset:10,isdst:!1,text:"(UTC+10:00) Canberra, Melbourne, Sydney",utc:["Australia/Melbourne","Australia/Sydney"]},{value:"West Pacific Standard Time",abbr:"WPST",offset:10,isdst:!1,text:"(UTC+10:00) Guam, Port Moresby",utc:["Antarctica/DumontDUrville","Etc/GMT-10","Pacific/Guam","Pacific/Port_Moresby","Pacific/Saipan","Pacific/Truk"]},{value:"Tasmania Standard Time",abbr:"TST",offset:10,isdst:!1,text:"(UTC+10:00) Hobart",utc:["Australia/Currie","Australia/Hobart"]},{value:"Yakutsk Standard Time",abbr:"YST",offset:9,isdst:!1,text:"(UTC+09:00) Yakutsk",utc:["Asia/Chita","Asia/Khandyga","Asia/Yakutsk"]},{value:"Central Pacific Standard Time",abbr:"CPST",offset:11,isdst:!1,text:"(UTC+11:00) Solomon Is., New Caledonia",utc:["Antarctica/Macquarie","Etc/GMT-11","Pacific/Efate","Pacific/Guadalcanal","Pacific/Kosrae","Pacific/Noumea","Pacific/Ponape"]},{value:"Vladivostok Standard Time",abbr:"VST",offset:11,isdst:!1,text:"(UTC+11:00) Vladivostok",utc:["Asia/Sakhalin","Asia/Ust-Nera","Asia/Vladivostok"]},{value:"New Zealand Standard Time",abbr:"NZST",offset:12,isdst:!1,text:"(UTC+12:00) Auckland, Wellington",utc:["Antarctica/McMurdo","Pacific/Auckland"]},{value:"UTC+12",abbr:"U",offset:12,isdst:!1,text:"(UTC+12:00) Coordinated Universal Time+12",utc:["Etc/GMT-12","Pacific/Funafuti","Pacific/Kwajalein","Pacific/Majuro","Pacific/Nauru","Pacific/Tarawa","Pacific/Wake","Pacific/Wallis"]},{value:"Fiji Standard Time",abbr:"FST",offset:12,isdst:!1,text:"(UTC+12:00) Fiji",utc:["Pacific/Fiji"]},{value:"Magadan Standard Time",abbr:"MST",offset:12,isdst:!1,text:"(UTC+12:00) Magadan",utc:["Asia/Anadyr","Asia/Kamchatka","Asia/Magadan","Asia/Srednekolymsk"]},{value:"Kamchatka Standard Time",abbr:"KDT",offset:13,isdst:!0,text:"(UTC+12:00) Petropavlovsk-Kamchatsky - Old",utc:["Asia/Kamchatka"]},{value:"Tonga Standard Time",abbr:"TST",offset:13,isdst:!1,text:"(UTC+13:00) Nuku'alofa",utc:["Etc/GMT-13","Pacific/Enderbury","Pacific/Fakaofo","Pacific/Tongatapu"]},{value:"Samoa Standard Time",abbr:"SST",offset:13,isdst:!1,text:"(UTC+13:00) Samoa",utc:["Pacific/Apia"]}].filter(e=>e.utc.length).reduce((e,a)=>{let s=a.utc;for(let t=0;t<s.length;t++){const i=s[t],n=a.text;let r=n.substring(n.indexOf("(")+1,n.indexOf(")"));-1!==r.indexOf("UTC")&&e.push({value:i,abbr:a.abbr,offset:a.offset,isdst:a.isdst,text:`(${r}) ${i}`,utc:["Etc/GMT-13","Pacific/Enderbury","Pacific/Fakaofo","Pacific/Tongatapu"]})}return e},[]).filter((e,a,s)=>a===s.findIndex(a=>a.value===e.value));function ee({value:a,onChange:s}){const{t:i}=t.useTranslation(),n=Q.map(e=>({value:e.value,label:e.text}));return e.jsx(O,{options:n,value:a,onChange:s,placeholder:i("dropdowns.searchTimezone"),emptyLabel:i("dropdowns.chooseTimezone")})}const ae=({workspace:a})=>{const{t:i}=t.useTranslation(),{visible:o}=t.useUIVisibility(),l=o(e=>e.settings?.profile?.language),d=o(e=>e.settings?.profile?.country),u=o(e=>e.settings?.profile?.currency),m=o(e=>e.settings?.profile?.timezone),{updateUserProfile:x,getProfile:p}=t.useSaaSWorkspaces(),[g,f]=s.useState(!1),[b,h]=s.useState(),[S,j]=s.useState(0),N=w(),A=c.z.object({name:c.z.string().min(2,{message:i("profile.nameMinLength")}),country:c.z.string().optional(),timezone:c.z.string().optional(),language:c.z.string().optional(),currency:c.z.string().optional()}),C=r.useForm({resolver:n.zodResolver(A),defaultValues:{name:b?.name||"",country:b?.country||"",timezone:b?.timezone||"",language:b?.language||"",currency:b?.currency||""}});return s.useEffect(()=>{p().then(e=>{h(e),C.setValue("name",e.name),C.setValue("country",e.country),C.setValue("timezone",e.timezone),C.setValue("language",e.language),C.setValue("currency",e.currency)}).catch(e=>{t.handleError(e,{component:"WorkspaceSettingsProfile",action:"getProfile"})})},[S]),b?e.jsxs("div",{children:[N.message&&e.jsx(t.StatusBanner,{variant:"success",title:i("settings.common.success"),message:N.message,className:"mb-4"}),e.jsx("div",{className:"space-y-4",children:e.jsx(t.Form,{...C,children:e.jsxs("form",{onSubmit:C.handleSubmit(async function(e){f(!0),N.clear();try{await x({name:e.name,country:e.country,timezone:e.timezone,language:e.language,currency:e.currency}),N.show(i("profile.success"))}catch(e){t.handleError(e,{component:"WorkspaceSettingsProfile",action:"updateUserProfile",metadata:{workspaceId:a._id}})}finally{f(!1)}}),className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("label",{htmlFor:"profile-email",className:"block text-sm font-medium mb-1",children:i("profile.email")}),e.jsx(t.Input,{id:"profile-email",disabled:!0,className:"w-full border rounded px-3 py-2 bg-muted",value:b?.email})]}),e.jsx(t.FormField,{disabled:g,control:C.control,name:"name",render:({field:a})=>e.jsxs(t.FormItem,{children:[e.jsx(t.FormLabel,{children:i("profile.name")}),e.jsx(t.FormControl,{children:e.jsx(t.Input,{...a})}),e.jsx(t.FormMessage,{})]})}),e.jsxs("div",{className:"flex gap-y-2 my-4 flex-col",children:[l&&e.jsxs("div",{className:"flex flex-col gap-0.5",children:[e.jsx("div",{className:"text-sm font-medium",children:i("profile.language")}),e.jsx(X,{value:C.watch("language"),onChange:e=>{C.setValue("language",e)}})]}),d&&e.jsxs("div",{className:"flex flex-col gap-0.5",children:[e.jsx("div",{className:"text-sm font-medium",children:i("profile.country")}),e.jsx(H,{value:C.watch("country"),onChange:e=>{C.setValue("country",e)}})]}),u&&e.jsxs("div",{className:"flex flex-col gap-0.5",children:[e.jsx("div",{className:"text-sm font-medium",children:i("profile.currency")}),e.jsx(Z,{value:C.watch("currency"),onChange:e=>{C.setValue("currency",e)}})]}),m&&e.jsxs("div",{className:"flex flex-col gap-0.5",children:[e.jsx("div",{className:"text-sm font-medium",children:i("profile.timezone")}),e.jsx(ee,{value:C.watch("timezone"),onChange:e=>{C.setValue("timezone",e)}})]})]}),e.jsxs("div",{className:"flex justify-end gap-x-2",children:[e.jsx(t.Button,{type:"submit",progress:g,disabled:g,children:i("profile.save")}),e.jsx(t.Button,{type:"button",variant:"outline",onClick:()=>{j(e=>e+1)},disabled:g,children:i("profile.reset")})]})]})})}),b?.image&&e.jsxs("div",{children:[e.jsx("p",{className:"block text-sm font-medium mb-1",children:i("profile.profileImage")}),e.jsx("div",{className:"w-16 h-16 rounded-full overflow-hidden",children:e.jsx("img",{src:b.image,alt:b.name,className:"w-full h-full object-cover"})})]})]}):e.jsx(v,{})},se=()=>{const{t:i,formattingLocale:n}=t.useTranslation(),{visible:r,ui:c}=t.useUIVisibility(),o=c.formats?.date??{dateStyle:"medium"},l=r(e=>e.settings?.security?.passkeyRename),d=r(e=>e.settings?.security?.passkeyDelete),{api:u}=t.useWorkspaceApiWithOs(),[m,x]=s.useState(!0),[p,g]=s.useState([]),[f,b]=s.useState(null),[h,S]=s.useState(null),[j,N]=s.useState(""),A=s.useCallback(async()=>{try{const e=await u.getPasskeys();g(e)}catch(e){t.handleError(e,{component:"WorkspaceSettingsSecurity"})}finally{x(!1)}},[u]);return s.useEffect(()=>{A()},[A]),m?e.jsx(v,{}):e.jsxs("div",{className:"space-y-4",children:[e.jsx(t.SectionHeader,{title:i("security.passkeysTitle"),description:i("security.passkeysDescription")}),0===p.length?e.jsx(t.EmptyState,{icon:e.jsx(a.KeyRound,{className:"h-5 w-5 text-muted-foreground"}),description:i("security.noPasskeys")}):e.jsx("div",{className:"space-y-2",children:p.map(s=>e.jsxs("div",{className:"flex items-center justify-between gap-3 rounded-md border p-3 "+(!1===s.active?"opacity-70":""),children:[e.jsxs("div",{className:"flex min-w-0 items-center gap-3",children:[e.jsx(a.KeyRound,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),e.jsx("div",{className:"min-w-0",children:h===s.id?e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(t.Input,{value:j,onChange:e=>N(e.target.value),placeholder:i("security.renamePlaceholder"),className:"h-8"}),e.jsx(t.Button,{size:"icon",variant:"ghost",className:"h-10 w-10 sm:h-8 sm:w-8 shrink-0",disabled:f===s.id,onClick:()=>async function(e){const a=j.trim();if(a){b(e);try{await u.renamePasskey(e,a),g(s=>s.map(s=>s.id===e?{...s,name:a}:s)),S(null)}catch(e){t.handleError(e,{component:"WorkspaceSettingsSecurity"})}finally{b(null)}}}(s.id),children:e.jsx(a.Check,{className:"h-4 w-4"})}),e.jsx(t.Button,{size:"icon",variant:"ghost",className:"h-10 w-10 sm:h-8 sm:w-8 shrink-0",onClick:()=>S(null),children:e.jsx(a.X,{className:"h-4 w-4"})})]}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("p",{className:"truncate text-sm font-medium",children:s.name}),!1===s.active&&e.jsx("span",{className:"shrink-0 rounded-full border border-warning/40 bg-warning/10 px-2 py-0.5 text-xs font-medium text-warning",title:i("security.inactiveHint"),children:i("security.inactive")})]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:!1===s.active?i("security.inactiveHint"):s.lastUsedAt?`${i("security.lastUsed")}: ${t.formatDate(s.lastUsedAt,n,o)}`:s.createdAt?`${i("security.added")}: ${t.formatDate(s.createdAt,n,o)}`:null})]})})]}),h!==s.id&&(l||d)&&e.jsxs("div",{className:"flex shrink-0 items-center gap-1",children:[l&&e.jsx(t.Button,{size:"icon",variant:"ghost",className:"h-10 w-10 sm:h-8 sm:w-8","aria-label":i("security.rename"),onClick:()=>{S(s.id),N(s.name)},children:e.jsx(a.Pencil,{className:"h-4 w-4"})}),d&&e.jsxs(t.AlertDialog,{children:[e.jsx(t.AlertDialogTrigger,{asChild:!0,children:e.jsx(t.Button,{size:"icon",variant:"ghost",className:"h-10 w-10 sm:h-8 sm:w-8 text-destructive","aria-label":i("security.remove"),disabled:f===s.id,children:e.jsx(a.Trash2,{className:"h-4 w-4"})})}),e.jsxs(t.AlertDialogContent,{children:[e.jsxs(t.AlertDialogHeader,{children:[e.jsx(t.AlertDialogTitle,{children:i("security.removeTitle")}),e.jsx(t.AlertDialogDescription,{children:i("security.removeDescription")})]}),e.jsxs(t.AlertDialogFooter,{children:[e.jsx(t.AlertDialogCancel,{children:i("settings.common.cancel")}),e.jsx(t.AlertDialogAction,{onClick:()=>async function(e){b(e);try{await u.deletePasskey(e),g(a=>a.filter(a=>a.id!==e))}catch(e){t.handleError(e,{component:"WorkspaceSettingsSecurity"})}finally{b(null)}}(s.id),children:i("security.remove")})]})]})]})]})]},s.id))}),e.jsx("p",{className:"text-xs text-muted-foreground",children:i("security.addHint")})]})},te={Personal:"personal"},ie=e=>{switch(e){case t.InvoiceStatuses.Paid:return"bg-success/15 text-success";case t.InvoiceStatuses.Open:return"bg-warning/15 text-warning";case t.InvoiceStatuses.Draft:return"bg-muted text-foreground";case t.InvoiceStatuses.Uncollectible:return"bg-destructive/15 text-destructive";case t.InvoiceStatuses.Void:default:return"bg-muted text-foreground"}},ne=({workspaceId:s,hasActiveSubscription:i=!1,onViewPricingPlans:n,limit:r=20})=>{const{t:c,formattingLocale:o}=t.useTranslation(),{can:l}=t.usePermissions(),d=l(t.Permission.WORKSPACE_BILLING_VIEW),{invoices:u,loading:m,error:x,refetch:p}=t.useInvoices(s,r);if(!d)return e.jsx(S,{});const g=u.length>0;return e.jsxs("div",{className:"space-y-4",children:[e.jsx(t.SectionHeader,{title:c("invoices.title"),description:c("invoices.description"),actions:e.jsx(t.Button,{variant:"ghost",size:"sm",progress:m,onClick:p,disabled:m,children:c("settings.common.refreshAction",{loading:String(m)})})}),x&&e.jsx(t.StatusBanner,{variant:"error",title:c("invoices.errorLoading"),message:x,actionLabel:c("settings.common.retryAction",{loading:String(m)}),onAction:p,actionDisabled:m}),m&&!g?e.jsx("div",{className:"border rounded-lg p-6",children:e.jsx(v,{})}):g?e.jsx("div",{className:"space-y-2",children:u.map(s=>{const i=(e=>{switch(e.status){case t.InvoiceStatuses.Draft:case t.InvoiceStatuses.Open:return{textKey:"invoices.pay",color:"bg-info text-info-foreground hover:bg-info/90"};case t.InvoiceStatuses.Paid:return{textKey:"invoices.view",color:"bg-success text-success-foreground hover:bg-success/90"};case t.InvoiceStatuses.Uncollectible:case t.InvoiceStatuses.Void:return{textKey:"invoices.viewDetails",color:"bg-muted-foreground text-background hover:bg-muted-foreground/90"};default:return{textKey:"invoices.view",color:"bg-muted-foreground text-background hover:bg-muted-foreground/90"}}})(s);return e.jsxs("div",{className:"border rounded-md bg-background hover:shadow-sm transition-shadow p-3",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2 mb-1.5",children:[e.jsx("span",{className:"text-sm font-medium text-foreground truncate min-w-0",children:s.description||s.number||s.id.slice(-8)}),e.jsx("span",{className:`inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium shrink-0 ${ie(s.status)}`,children:c(`invoices.status.${s.status}`)})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-0.5 text-sm text-muted-foreground mb-2.5",children:[e.jsx("span",{className:"font-medium text-foreground",children:t.formatMinorAmountIntl(s.amount_due,s.currency,o)}),s.created&&e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"text-muted-foreground/50 hidden sm:inline",children:"·"}),e.jsx("span",{children:t.formatUnixDate(s.created,o)})]}),s.amount_paid>0&&s.amount_due>0&&e.jsx("span",{className:"text-xs text-muted-foreground",children:c("invoices.paidAmount",{amount:t.formatMinorAmountIntl(s.amount_paid,s.currency,o)})})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs(t.Button,{size:"sm",disabled:!s.hosted_invoice_url,onClick:()=>s.hosted_invoice_url&&window.open(s.hosted_invoice_url,"_blank","noopener,noreferrer"),className:i.color,children:[c(i.textKey),e.jsx(a.ExternalLink,{className:"h-3.5 w-3.5 ms-1.5"})]}),s.invoice_pdf&&e.jsxs(t.Button,{size:"sm",variant:"outline",onClick:()=>window.open(s.invoice_pdf,"_blank","noopener,noreferrer"),children:[e.jsx(a.Download,{className:"h-3.5 w-3.5 me-1.5"}),c("invoices.download")]})]})]},s.id)})}):e.jsx(t.EmptyState,{icon:e.jsx(a.FileText,{className:"h-5 w-5 text-muted-foreground"}),description:c(i?"invoices.noInvoicesWithSub":"invoices.noInvoices"),action:!i&&n?e.jsx(t.Button,{size:"sm",className:"mt-2",onClick:n,children:c("subscription.viewPricingPlans")}):void 0})]})},re=(e,a)=>a?t.formatDate(a,e,{month:"long",day:"numeric",year:"numeric"}):"",ce=({planVersion:a,subscriptionCurrency:s,billingInterval:i,seatPricingConfig:n,isPersonalMode:r,memberCount:c,includedSeats:o,billableSeats:l,perSeatPrice:d,intervalLabel:u})=>{const{t:m,formattingLocale:x,fmtNum:p,fmtCents:g}=t.useTranslation(),f=((e,a,s=t.BillingIntervals.Monthly)=>{if(!e?.subscriptionItems)return{features:[],limits:[],quotas:[]};const i=[],n=[],r=[];return e.subscriptionItems.forEach(c=>{const o=c.slug;if(c.type===t.SubscriptionItemType.Feature){const a=e.features?.[o]??!1;i.push({item:c,enabled:a})}else if(c.type===t.SubscriptionItemType.Limit){const a=e.limits?.[o]??0;n.push({item:c,value:a})}else if(c.type===t.SubscriptionItemType.Quota){const i=a&&e.pricingVariants?.length?t.getQuotaDisplayWithVariant(e,a,o,s):t.getQuotaDisplayValue(e.quotas?.[o],s);null!=i&&r.push({item:c,value:i})}}),{features:i,limits:n,quotas:r}})(a,s,i??"monthly");return f.features.length>0||f.limits.length>0||f.quotas.length>0?e.jsx("div",{className:"px-4 py-4 sm:px-5 sm:py-5 border-t border-border/60",children:e.jsxs("div",{className:"space-y-5",children:[f.features.length>0&&e.jsxs("div",{children:[e.jsx("h4",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wider mb-2",children:m("subscription.items.features")}),e.jsx("ul",{className:"space-y-1.5",children:f.features.sort(e=>e.enabled?-1:1).map(({item:a,enabled:s})=>e.jsxs("li",{className:"flex items-center gap-2 text-sm",children:[e.jsx("span",{className:"w-4 text-center shrink-0 "+(s?"text-success":"text-muted-foreground/50"),children:s?"✓":"✕"}),e.jsx("span",{className:s?"text-foreground":"text-muted-foreground/70",children:a.name})]},a._id))})]}),f.limits.length>0&&e.jsxs("div",{children:[e.jsx("h4",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wider mb-2",children:m("subscription.items.limits")}),e.jsx("ul",{className:"space-y-1.5",children:f.limits.map(({item:a,value:s})=>e.jsxs("li",{className:"flex items-center justify-between text-sm",children:[e.jsx("span",{className:"text-muted-foreground",children:a.name}),e.jsx("span",{className:"font-medium text-foreground",children:p(s)})]},a._id))})]}),f.quotas.length>0&&e.jsxs("div",{children:[e.jsx("h4",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wider mb-2",children:m("subscription.items.quotas")}),e.jsx("ul",{className:"space-y-1.5",children:f.quotas.map(({item:a,value:i})=>{const n=t.getQuotaDisplayParts(i,a.name.toLowerCase(),{currency:s,locale:x}),r=n?n.hasOverage?m("quota.includedWithOverage",{count:n.included,price:n.price,unit:n.unit}):m("quota.includedOnly",{count:n.included}):"—";return e.jsx("li",{className:"text-sm",children:e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-0.5",children:[e.jsx("span",{className:"text-muted-foreground",children:a.name}),e.jsx("span",{className:"font-medium text-foreground text-xs sm:text-sm",children:r})]})},a._id)})})]}),n&&!r&&e.jsxs("div",{children:[e.jsx("h4",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wider mb-2",children:m("subscription.seats.title")}),e.jsxs("div",{className:"bg-muted/50 rounded-lg p-3 space-y-1.5",children:[e.jsxs("div",{className:"flex items-center justify-between text-sm",children:[e.jsx("span",{className:"text-muted-foreground",children:m("subscription.seats.members")}),e.jsx("span",{className:"font-semibold text-foreground",children:p(c)})]}),e.jsxs("div",{className:"flex items-center justify-between text-sm",children:[e.jsx("span",{className:"text-muted-foreground",children:m("subscription.seats.included")}),e.jsx("span",{className:"text-foreground",children:p(o)})]}),l>0&&e.jsxs("div",{className:"flex items-center justify-between text-sm",children:[e.jsx("span",{className:"text-muted-foreground",children:m("subscription.seats.billable")}),e.jsxs("span",{className:"font-medium text-warning",children:[p(l)," ",m("subscription.seats.extra")]})]}),null!=d&&d>0&&e.jsxs("div",{className:"flex items-center justify-between text-sm",children:[e.jsx("span",{className:"text-muted-foreground",children:m("subscription.seats.perExtraSeat")}),e.jsxs("span",{className:"text-foreground",children:[g(d,s),u]})]}),(n?.maxSeats??0)>0&&e.jsxs("div",{className:"flex items-center justify-between text-sm",children:[e.jsx("span",{className:"text-muted-foreground",children:m("subscription.seats.limit")}),e.jsx("span",{className:"text-foreground",children:p(n.maxSeats)})]})]})]}),a?.creditGrant?.enabled&&"object"==typeof a.creditGrant.creditPackage&&null!==a.creditGrant.creditPackage&&e.jsxs("div",{children:[e.jsx("h4",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wider mb-2",children:m("subscription.items.credits")}),e.jsxs("div",{className:"bg-info/10 rounded-lg p-3 space-y-1.5",children:[e.jsxs("div",{className:"flex items-center justify-between text-sm",children:[e.jsx("span",{className:"text-muted-foreground",children:a.creditGrant.renewOnPeriod?m("subscription.items.creditsPerMonth"):m("subscription.items.creditsOneTime")}),e.jsx("span",{className:"font-semibold text-info",children:p("object"==typeof a.creditGrant.creditPackage?a.creditGrant.creditPackage.creditAmount:0)})]}),e.jsxs("div",{className:"flex items-center justify-between text-sm",children:[e.jsx("span",{className:"text-muted-foreground",children:m("subscription.items.creditRenewal")}),e.jsx("span",{className:"font-medium text-foreground",children:a.creditGrant.renewOnPeriod?"reset"===a.creditGrant.mode?m("subscription.items.creditModeReset"):m("subscription.items.creditModeTopup"):m("subscription.items.creditModeLifetime")})]})]})]})]})}):null},oe=({resumeDialogOpen:s,setResumeDialogOpen:i,resumeLoading:n,handleResumeSubscription:r,subscription:c})=>{const{t:o,formattingLocale:l}=t.useTranslation();return e.jsx(t.AlertDialog,{open:s,onOpenChange:i,children:e.jsxs(t.AlertDialogContent,{children:[e.jsxs(t.AlertDialogHeader,{children:[e.jsx(t.AlertDialogTitle,{children:o("subscription.resumeTitle")}),e.jsx(t.AlertDialogDescription,{asChild:!0,children:e.jsxs("div",{className:"space-y-3",children:[e.jsx("p",{children:o("subscription.resumeConfirm")}),e.jsxs("div",{className:"bg-warning/10 border border-warning/30 rounded-lg p-4 space-y-2 text-sm",children:[e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(a.AlertTriangle,{className:"h-4 w-4 text-warning mt-0.5 flex-shrink-0"}),e.jsxs("span",{children:[o("subscription.resumeChargeDate")," ",c?.subscription?.stripeCurrentPeriodEnd&&re(l,c.subscription.stripeCurrentPeriodEnd)?e.jsx("span",{className:"font-medium",children:re(l,c.subscription.stripeCurrentPeriodEnd)}):o("subscription.resumeChargeFallback")]})]}),e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx("span",{className:"text-warning mt-0.5",children:"•"}),e.jsx("span",{children:o("subscription.resumeContinue")})]}),e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx("span",{className:"text-info mt-0.5",children:"ℹ"}),e.jsx("span",{children:o("subscription.resumeCancelAnytime")})]})]})]})})]}),e.jsxs(t.AlertDialogFooter,{children:[e.jsx(t.AlertDialogCancel,{disabled:n,children:o("subscription.resumeKeep")}),e.jsx(t.AlertDialogAction,{onClick:r,disabled:n,children:o(n?"subscription.resuming":"subscription.resumeButton")})]})]})})},le=({cancelDialogOpen:a,setCancelDialogOpen:s,cancelLoading:i,handleCancelSubscription:n,subscription:r})=>{const{t:c,formattingLocale:o}=t.useTranslation(),l=r?.subscription?.subscriptionStatus===t.SubscriptionStatus.Trialing,d=l&&r?.subscription?.trialEnd||r?.subscription?.stripeCurrentPeriodEnd;return e.jsx(t.AlertDialog,{open:a,onOpenChange:s,children:e.jsxs(t.AlertDialogContent,{children:[e.jsxs(t.AlertDialogHeader,{children:[e.jsx(t.AlertDialogTitle,{children:c(l?"subscription.cancelTrialTitle":"subscription.cancelTitle")}),e.jsx(t.AlertDialogDescription,{asChild:!0,children:e.jsxs("div",{className:"space-y-3",children:[e.jsx("p",{children:c(l?"subscription.cancelTrialConfirm":"subscription.cancelConfirm")}),e.jsxs("div",{className:"bg-muted/50 rounded-lg p-4 space-y-2 text-sm",children:[e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx("span",{className:"text-success mt-0.5",children:"✓"}),e.jsxs("span",{children:[c(l?"subscription.cancelTrialAccess":"subscription.retainAccess")," ",d&&re(o,d)?e.jsx("span",{className:"font-medium",children:re(o,d)}):c("subscription.retainAccessFallback")]})]}),e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx("span",{className:"text-success mt-0.5",children:"✓"}),e.jsx("span",{children:c(l?"subscription.cancelTrialNoCharge":"subscription.cancelNotCharged")})]}),e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx("span",{className:"text-info mt-0.5",children:"ℹ"}),e.jsx("span",{children:c(l?"subscription.cancelTrialResume":"subscription.cancelResumeAnytime")})]})]})]})})]}),e.jsxs(t.AlertDialogFooter,{children:[e.jsx(t.AlertDialogCancel,{disabled:i,children:c(l?"subscription.cancelTrialKeep":"subscription.cancelKeep")}),e.jsx(t.AlertDialogAction,{onClick:n,disabled:i,className:"bg-destructive hover:bg-destructive/90 focus:ring-destructive",children:c(i?"subscription.canceling":l?"subscription.cancelTrialButton":"subscription.cancelButton")})]})]})})},de=({className:a,icon:s,titleClassName:t,title:i,descriptionClassName:n,description:r,children:c})=>e.jsx("div",{className:a,children:e.jsxs("div",{className:"flex items-start gap-3",children:[s,e.jsxs("div",{children:[e.jsx("p",{className:t,children:i}),e.jsx("p",{className:n,children:r}),c]})]})}),ue=({subscription:a})=>{const{t:s}=t.useTranslation();return e.jsxs("span",{className:"inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium "+(a.subscriptionStatus===t.SubscriptionStatus.Active?a.cancelAtPeriodEnd?"bg-warning/15 text-warning":"bg-success/15 text-success":a.subscriptionStatus===t.SubscriptionStatus.Trialing?"bg-info/15 text-info":a.subscriptionStatus===t.SubscriptionStatus.Canceled?"bg-muted text-foreground":"bg-destructive/15 text-destructive"),children:[a.subscriptionStatus===t.SubscriptionStatus.Active&&(a.cancelAtPeriodEnd?s("subscription.status.canceling"):s("subscription.status.active")),a.subscriptionStatus===t.SubscriptionStatus.Trialing&&s("subscription.status.trial"),a.subscriptionStatus===t.SubscriptionStatus.Canceled&&s("subscription.status.canceled"),a.subscriptionStatus===t.SubscriptionStatus.PastDue&&s("subscription.status.pastDue")]})},me=({subscription:a,showChangePlan:s,setDialogOpen:i})=>{const{t:n}=t.useTranslation(),r=a.trialEnd||a.stripeCurrentPeriodEnd,c=r?new Date(r):null,o=c&&!isNaN(c.getTime())?c:null,l=o?Math.max(0,Math.ceil((o.getTime()-Date.now())/864e5)):null,d=null!==l&&l<=3;return e.jsxs("div",{className:"px-4 py-3 sm:px-5 text-sm flex flex-col sm:flex-row sm:items-center justify-between gap-2 "+(d?"bg-warning/10 text-warning border-b border-warning/30":"bg-info/10 text-info border-b border-info/20"),children:[e.jsxs("span",{children:[null!==l&&l<=0?n("subscription.trialEnded"):null!==l?n("subscription.trialEndsIn",{days:l}):n("subscription.onTrial")," ",n("subscription.upgradeToKeepAccess")]}),s&&e.jsx(t.Button,{size:"sm",variant:d?"default":"outline",className:"shrink-0 "+(d?"":"border-info/30 text-info hover:bg-info/15"),onClick:()=>i(!0),children:n("subscription.upgradePlan")})]})};function xe(){const e=s.useRef(null);return s.useEffect(()=>()=>{e.current&&clearTimeout(e.current)},[]),s.useCallback((a,s=5e3)=>{e.current&&clearTimeout(e.current),e.current=setTimeout(()=>{e.current=null,a()},s)},[])}const pe=s.lazy(()=>Promise.resolve().then(function(){return require("./SubscriptionDialog-CE1B3iaq.cjs")}).then(e=>({default:e.default}))),ge=({workspace:i})=>{const n=i._id?.toString(),{t:r,formattingLocale:c,fmtCents:o}=t.useTranslation(),{api:l}=t.useWorkspaceApiWithOs(),{can:d}=t.usePermissions(),{settings:u}=t.useSaaSSettings(),{visible:m,ui:x}=t.useUIVisibility(),p=x.behavior,g=m(e=>e.settings?.subscription?.changePlan),f=m(e=>e.settings?.subscription?.cancel),b=m(e=>e.settings?.subscription?.managePayment),h=m(e=>e.settings?.subscription?.invoicesTab),j=m(e=>e.settings?.subscription?.planDetails),N=d(t.Permission.WORKSPACE_BILLING_VIEW),A=d(t.Permission.WORKSPACE_BILLING_MANAGE),C=u?.workspace?.mode===te.Personal,{subscription:T,loading:y,error:w,updateSubscription:k,refetch:E}=t.useSubscriptionManagement(n),{createCheckoutSession:P}=t.useCreateCheckoutSession(n),{cancelSubscription:D,loading:M}=t.useCancelSubscription(n),{resumeSubscription:I,loading:U}=t.useResumeSubscription(n),{openBillingPortal:B,loading:R}=t.useBillingPortal(n),{versions:G,loading:L,error:K,refetch:_}=t.usePlanGroupVersions(n),F=y||L,O=w||K,{currentVersion:W,latestVersion:V,isDeprecated:z,plansToShow:H}=s.useMemo(()=>{const e=G?.currentVersion,a=G?.availableVersions||[],s=null!=T?.subscription;let t=null;a.length>0?t=a.reduce((e,a)=>a.version>e.version?a:e):e&&(t=e);return{currentVersion:e,latestVersion:t,isDeprecated:!!(s&&t&&e)&&t.version>e.version&&s,plansToShow:t?.plans&&t.plans.length>0?t.plans:[]}},[G,T?.subscription]),[J,Y]=s.useState(!1),[Z,q]=s.useState(null),[$,X]=s.useState(null),Q=xe(),[ee,ae]=s.useState(!1),[se,ie]=s.useState(!1),ge=s.useRef(void 0),fe=s.useRef(!1);s.useEffect(()=>{if(fe.current)return;if(y||!H||0===H.length)return;const e=t.workspaceSettingsManager.getState(),a=e.params?.action===t.BBAction.SelectPlan,s=!1!==p?.autoOpenPlanDialog;(!T?.subscription&&s||a)&&(fe.current=!0,a&&(ge.current=e.params,t.workspaceSettingsManager.clearParams()),ae(!0))},[y,T?.subscription,H,p?.autoOpenPlanDialog]);const[be,he]=s.useState(!1),[Se,ve]=s.useState("subscription"),je=async()=>{await Promise.all([E(),_()])},Ne=s.useMemo(()=>t.getBillingIntervalAndCurrencyFromPriceId(T?.subscription?.stripePriceId,H??[]),[T?.subscription?.stripePriceId,H]);if(!N)return e.jsx(S,{});if(F&&!T&&!G)return e.jsx(v,{});const Ae=T?.planVersion?._id||null;return n?e.jsxs("div",{className:"space-y-4",children:[O&&e.jsx(t.StatusBanner,{variant:"error",title:r("subscription.errorLoading"),message:O,description:r("subscription.errorLoadingDescription"),actionLabel:r("settings.common.retryAction",{loading:String(F)}),onAction:je,actionDisabled:F}),Z&&e.jsx(t.StatusBanner,{variant:"error",title:r("subscription.updateFailed"),message:Z,actionLabel:r("settings.common.dismiss"),onAction:()=>q(null)}),$&&e.jsx(t.StatusBanner,{variant:"success",title:r("settings.common.success"),message:$,actionLabel:r("settings.common.dismiss"),onAction:()=>X(null)}),h&&e.jsx("div",{className:"border-b border-border",children:e.jsxs("nav",{className:"-mb-px flex gap-6",role:"tablist","aria-label":r("subscription.tabsLabel"),onKeyDown:e=>{"ArrowLeft"!==e.key&&"ArrowRight"!==e.key&&"Home"!==e.key&&"End"!==e.key||(e.preventDefault(),ve("ArrowLeft"===e.key||"End"===e.key?"invoices":"subscription"))},children:[e.jsx("button",{type:"button",role:"tab",id:"subscription-tab-subscription","aria-controls":"subscription-panel-subscription","aria-selected":"subscription"===Se,tabIndex:"subscription"===Se?0:-1,onClick:()=>ve("subscription"),className:"border-b-2 py-3 text-sm font-medium transition-colors "+("subscription"===Se?"border-primary text-primary":"border-transparent text-muted-foreground hover:border-border hover:text-foreground"),children:r("subscription.plan")}),e.jsx("button",{type:"button",role:"tab",id:"subscription-tab-invoices","aria-controls":"subscription-panel-invoices","aria-selected":"invoices"===Se,tabIndex:"invoices"===Se?0:-1,onClick:()=>ve("invoices"),className:"border-b-2 py-3 text-sm font-medium transition-colors "+("invoices"===Se?"border-primary text-primary":"border-transparent text-muted-foreground hover:border-border hover:text-foreground"),children:r("subscription.invoicesTab")})]})}),"subscription"===Se&&e.jsxs("div",{id:"subscription-panel-subscription",role:"tabpanel","aria-labelledby":"subscription-tab-subscription",tabIndex:0,children:[F&&e.jsx(t.LoadingState,{}),g&&z&&T?.subscription&&e.jsxs("div",{className:"bg-warning/10 border border-warning/30 rounded-lg px-4 py-3 flex flex-col sm:flex-row sm:items-center justify-between gap-2",children:[e.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[e.jsx(a.AlertTriangle,{className:"h-4 w-4 text-warning shrink-0"}),e.jsxs("span",{className:"text-sm text-warning",children:[e.jsx("span",{className:"font-medium",children:r("subscription.planUpdateAvailable")}),e.jsxs("span",{className:"text-warning",children:[" ","— v",W?.version||"?"," → v",V?.version||"?"]})]})]}),e.jsx(t.Button,{size:"sm",variant:"outline",className:"shrink-0 border-warning/40 text-warning hover:bg-warning/15",onClick:()=>ae(!0),children:r("subscription.viewPlans")})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("div",{children:e.jsx("p",{className:"text-sm text-muted-foreground",children:r("subscription.managePlan")})}),e.jsxs("div",{className:"flex items-center gap-2",children:[(()=>{if(!g)return null;const a=T?.subscription?.subscriptionStatus===t.SubscriptionStatus.Canceled,s=T?.subscription?.cancelAtPeriodEnd;return s||M?null:a&&H&&H.length>0?e.jsx(t.Button,{size:"sm",onClick:()=>ae(!0),children:r("subscription.viewPricingPlans")}):T?.subscription&&!a&&A?e.jsx(t.Button,{variant:"outline",size:"sm",onClick:()=>ae(!0),children:r("subscription.changePlanButton")}):!T?.subscription&&H&&H.length>0?e.jsx(t.Button,{size:"sm",onClick:()=>ae(!0),children:r("subscription.viewPricingPlans")}):null})(),e.jsx(t.Button,{variant:"ghost",size:"sm",progress:F,onClick:je,disabled:F||J,children:r("settings.common.refreshAction",{loading:String(F)})})]})]}),T?.subscription?(()=>{const s=t.getBillingIntervalAndCurrencyFromPriceId(T.subscription.stripePriceId,H??[]),n=s?.interval??null,l=s?.currency??T.plan?.currency??i?.billingCurrency??"",d=n&&T.planVersion?t.getBasePriceCents(T.planVersion,l,n):null,u=l,m=T.planVersion?t.getSeatPricing(T.planVersion,l):null,x=m&&n?t.getPerSeatPriceCents(T.planVersion,l,n):null,p=Array.isArray(i?.users)?i.users.length:1,S=m?.includedSeats??0,v=Math.max(0,p-S),N=!!T.plan?.isFreemium,y=null!=d?0===d?r("subscription.free"):o(d,u):N?r("subscription.free"):null,w=n===t.BillingIntervals.Monthly?r("subscription.billingInterval.perMonth"):n===t.BillingIntervals.Quarterly?r("subscription.billingInterval.perQuarter"):n===t.BillingIntervals.Yearly?r("subscription.billingInterval.perYear"):"";return e.jsxs("div",{className:"border rounded-lg overflow-hidden "+(z?"border-warning/40":"border-border"),children:[T.subscription.subscriptionStatus===t.SubscriptionStatus.Trialing&&!T.subscription.cancelAtPeriodEnd&&e.jsx(me,{subscription:T.subscription,showChangePlan:g,setDialogOpen:ae}),e.jsxs("div",{className:"p-4 sm:p-5 "+(z?"bg-warning/5":"bg-muted/30"),children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2 mb-2",children:[e.jsx("h3",{className:"text-lg font-semibold text-foreground",children:T.plan?.name||r("subscription.noPlanAssigned")}),e.jsx(ue,{subscription:T.subscription}),T.subscription.subscriptionStatus===t.SubscriptionStatus.Trialing&&re(c,T.subscription.trialEnd||T.subscription.stripeCurrentPeriodEnd)&&e.jsx("span",{className:"text-xs text-muted-foreground",children:r("subscription.endsOn",{date:re(c,T.subscription.trialEnd||T.subscription.stripeCurrentPeriodEnd)})}),z&&e.jsxs("span",{className:"inline-flex items-center gap-1 px-2.5 py-0.5 rounded-full text-xs font-medium bg-warning/15 text-warning",children:[e.jsx(a.AlertTriangle,{className:"h-3.5 w-3.5"}),r("subscription.status.deprecated")]})]}),T.plan?.description&&e.jsx("p",{className:"text-sm text-muted-foreground mb-3",children:T.plan.description}),!N&&e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-start sm:justify-between gap-3 sm:gap-4",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-baseline gap-1 whitespace-nowrap",children:[e.jsx("span",{className:"text-2xl font-bold text-foreground",children:y||r("invoices.na")}),y&&y!==r("subscription.free")&&w&&e.jsx("span",{className:"text-sm text-muted-foreground",children:w})]}),m&&null!=x&&x>0&&!C&&e.jsx("div",{className:"text-xs text-muted-foreground mt-1",children:r("subscription.perSeatDisplay",{price:o(x,u),interval:w})}),!C&&m&&null!=x&&x>0&&v>0&&y&&y!==r("subscription.free")&&null!=d&&e.jsx("div",{className:"text-xs text-muted-foreground mt-1 pt-1 border-t border-border",children:r("subscription.estTotalDisplay",{total:o(d+x*v,u),interval:w,count:v})})]}),(T.subscription.subscriptionStatus===t.SubscriptionStatus.Active||T.subscription.subscriptionStatus===t.SubscriptionStatus.Trialing)&&!T.subscription.cancelAtPeriodEnd&&re(c,T.subscription.stripeCurrentPeriodEnd)&&e.jsxs("div",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",children:[e.jsx(a.Calendar,{className:"h-3.5 w-3.5 flex-shrink-0"}),e.jsx("span",{children:r("subscription.nextBillingDisplay",{date:re(c,T.subscription.stripeCurrentPeriodEnd)??""})})]})]}),z&&e.jsx("p",{className:"text-xs text-warning mt-2",children:r("subscription.versionLabel",{version:W?.version||r("invoices.na")})}),!N&&(b||f||T.subscription.cancelAtPeriodEnd)&&(T.subscription.subscriptionStatus===t.SubscriptionStatus.Active||T.subscription.subscriptionStatus===t.SubscriptionStatus.Trialing||T.subscription.subscriptionStatus===t.SubscriptionStatus.PastDue)&&e.jsxs("div",{className:"flex flex-wrap items-center gap-2 sm:gap-3 mt-4 pt-4 border-t border-border",children:[b&&T.subscription&&A&&T.subscription?.subscriptionId&&e.jsx(t.Button,{variant:"outline",size:"sm",onClick:()=>B(),disabled:R,progress:R,children:r(R?"subscription.openingPortal":"subscription.managePayment")}),A&&T.subscription?.subscriptionId&&(T.subscription.subscriptionStatus===t.SubscriptionStatus.Active||T.subscription.subscriptionStatus===t.SubscriptionStatus.Trialing)&&e.jsx(e.Fragment,{children:T.subscription.cancelAtPeriodEnd?e.jsx(t.Button,{variant:"outline",size:"sm",onClick:()=>he(!0),disabled:J||M||U,progress:U,children:T.subscription.subscriptionStatus===t.SubscriptionStatus.Trialing?r("subscription.resumeTrial"):r("subscription.resumeTitle")}):f?e.jsx(t.Button,{variant:"outline",size:"sm",className:"text-destructive hover:text-destructive hover:bg-destructive/10 border-destructive/20",onClick:()=>ie(!0),disabled:J||M||U,progress:M||J,children:M||J?r("subscription.canceling"):T.subscription.subscriptionStatus===t.SubscriptionStatus.Trialing?r("subscription.cancelTrial"):r("subscription.cancelTitle")}):null})]})]}),T.subscription.subscriptionStatus===t.SubscriptionStatus.PastDue&&e.jsx(de,{className:"px-5 py-3 bg-destructive/10 border-t border-destructive/20",icon:e.jsx(a.AlertTriangle,{className:"h-5 w-5 text-destructive flex-shrink-0 mt-0.5"}),titleClassName:"text-sm font-medium text-destructive",title:r("subscription.paymentPastDue"),descriptionClassName:"text-sm text-destructive mt-0.5",description:r("subscription.paymentPastDueDescription"),children:h&&e.jsx(t.Button,{variant:"outline",size:"sm",className:"mt-2 border-destructive/20 text-destructive hover:bg-destructive/15",onClick:()=>ve("invoices"),children:r("subscription.viewInvoices")})}),T.subscription.subscriptionStatus===t.SubscriptionStatus.PastDue&&T.subscription.dunningState&&T.subscription.dunningState!==t.DunningState.None&&e.jsx(de,{className:"px-5 py-3 bg-destructive/10 border-t border-destructive/20",icon:e.jsx(a.AlertTriangle,{className:"h-5 w-5 text-destructive flex-shrink-0 mt-0.5"}),titleClassName:"text-sm font-medium text-destructive",title:T.subscription.dunningState===t.DunningState.Final?r("subscription.dunningFinal"):T.subscription.dunningState===t.DunningState.Suspended?r("subscription.dunningSuspended"):r("subscription.dunningRecovery"),descriptionClassName:"text-sm text-destructive mt-0.5",description:T.subscription.dunningState===t.DunningState.Suspended?r("subscription.dunningSuspendedDescription"):r("subscription.dunningRecoveryDescription")}),T.subscription.subscriptionStatus===t.SubscriptionStatus.Paused&&e.jsx(de,{className:"px-5 py-3 bg-info/10 border-t border-info/20",icon:e.jsx(a.Calendar,{className:"h-5 w-5 text-info flex-shrink-0 mt-0.5"}),titleClassName:"text-sm font-medium text-info",title:r("subscription.subscriptionPaused"),descriptionClassName:"text-sm text-info mt-0.5",description:r("subscription.subscriptionPausedDescription")}),T.subscription.cancelAtPeriodEnd&&e.jsx(de,{className:"px-5 py-3 bg-warning/10 border-t border-warning/30",icon:e.jsx(a.Calendar,{className:"h-5 w-5 text-warning flex-shrink-0 mt-0.5"}),titleClassName:"text-sm font-medium text-warning",title:T.subscription.subscriptionStatus===t.SubscriptionStatus.Trialing?r("subscription.scheduledTrialCancellation"):r("subscription.scheduledCancellation"),descriptionClassName:"text-sm text-warning mt-0.5",description:re(c,T.subscription.subscriptionStatus===t.SubscriptionStatus.Trialing&&T.subscription.trialEnd||T.subscription.stripeCurrentPeriodEnd)?e.jsxs(e.Fragment,{children:[T.subscription.subscriptionStatus===t.SubscriptionStatus.Trialing?r("subscription.trialEndDescription"):r("subscription.cancelEndDescription")," ",e.jsx("span",{className:"font-medium",children:re(c,T.subscription.subscriptionStatus===t.SubscriptionStatus.Trialing&&T.subscription.trialEnd||T.subscription.stripeCurrentPeriodEnd)}),"."]}):r("subscription.cancelEndFallback")}),j&&T.planVersion&&e.jsx(ce,{planVersion:T.planVersion,subscriptionCurrency:l,billingInterval:n,seatPricingConfig:m,isPersonalMode:C,memberCount:p,includedSeats:S,billableSeats:v,perSeatPrice:x,intervalLabel:w})]})})():e.jsx(t.EmptyState,{icon:e.jsx(a.CreditCard,{className:"h-5 w-5 text-muted-foreground"}),title:r("subscription.noSubscription"),description:r("subscription.noSubscriptionDescription"),action:g&&H&&H.length>0?e.jsx(t.Button,{size:"sm",onClick:()=>ae(!0),children:r("subscription.viewPricingPlans")}):void 0})]}),!G&&!F&&!O&&e.jsx(t.EmptyState,{title:r("subscription.errorLoading"),description:r("subscription.noPlansAvailable"),action:e.jsx(t.Button,{variant:"outline",size:"sm",progress:F,onClick:je,children:r("settings.common.refreshAction",{loading:String(F)})})})]}),h&&"invoices"===Se&&e.jsxs("div",{id:"subscription-panel-invoices",role:"tabpanel","aria-labelledby":"subscription-tab-invoices",tabIndex:0,children:[F&&e.jsx(t.LoadingState,{}),e.jsx(ne,{workspaceId:n,hasActiveSubscription:null!=T?.subscription,onViewPricingPlans:()=>ve("subscription"),limit:20})]}),H&&H.length>0&&e.jsx(s.Suspense,{fallback:ee?e.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-background/80 backdrop-blur-sm",children:e.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[e.jsx(a.Loader2,{className:"h-5 w-5 animate-spin"}),e.jsx("span",{children:r("settings.common.loading")})]})}):null,children:e.jsx(pe,{open:ee,onOpenChange:ae,planVersions:H,currentPlanVersionId:Ae||null,currentStripePriceId:T?.subscription?.stripePriceId,billingCurrency:i.billingCurrency,trialUsedAt:i.trialUsedAt,workspaceName:i.name,initialInterval:ge.current?.interval,initialCurrency:ge.current?.currency,currentMemberCount:Array.isArray(i?.users)?i.users.length:void 0,onSelectPlan:async(e,a=t.BillingIntervals.Monthly,s)=>{if(!n)return;const c=H?.find(a=>a._id===e),o=s??Ne?.currency??T?.plan?.currency??i?.billingCurrency??"",d=c?t.getStripePriceIdForInterval(c,o,a):null,u=T?.subscription?.stripePriceId;if(!d||!u||d!==u){Y(!0),q(null),X(null);try{const{successUrl:s,cancelUrl:i}=t.createCheckoutRedirectUrls(n);let d;if(c?.plan?.isFreemium){return T?.subscription?.subscriptionId?(ae(!1),void ie(!0)):(await l.selectFreePlan(n,e),ae(!1),t.invalidateSubscription(),await je(),void X(r("subscription.updateSuccess")))}const u=T?.subscription?.subscriptionStatus===t.SubscriptionStatus.Canceled;if(d=T?.subscription&&!u?await k(e,{billingInterval:a,successUrl:s,cancelUrl:i}):await P({planVersionId:e,billingInterval:a,currency:o||void 0,successUrl:s,cancelUrl:i}),d&&"checkoutUrl"in d&&d.checkoutUrl)return void t.safeRedirect(d.checkoutUrl);X(r("subscription.updateSuccess")),await je()}catch(e){const a=e instanceof Error?e.message:r("subscription.errorProcessing");q(a)}finally{Y(!1),Q(()=>{q(null),X(null)})}}},loading:J||F})}),e.jsx(oe,{resumeDialogOpen:be,setResumeDialogOpen:he,resumeLoading:U,handleResumeSubscription:async()=>{if(n){he(!1),Y(!0),q(null),X(null);try{await I(),X(r("subscription.resumeSuccess")),await je()}catch(e){const a=e instanceof Error?e.message:r("subscription.errorResuming");q(a)}finally{Y(!1),Q(()=>{q(null),X(null)})}}},subscription:T}),e.jsx(le,{cancelDialogOpen:se,setCancelDialogOpen:ie,cancelLoading:M,handleCancelSubscription:async()=>{if(n){ie(!1),Y(!0),q(null),X(null);try{await D(),X(r("subscription.cancelSuccess")),await je()}catch(e){const a=e instanceof Error?e.message:r("subscription.errorCanceling");q(a)}finally{Y(!1),Q(()=>{q(null),X(null)})}}},subscription:T})]}):e.jsx("div",{className:"border rounded-lg p-4 text-center text-muted-foreground",children:e.jsx("p",{children:r("subscription.invalidWorkspace")})})};function fe(e){return e.replace(/[_-]/g," ").replace(/\b\w/g,e=>e.toUpperCase())}function be(e){try{const a=new Date(e);if(isNaN(a.getTime()))return null;const s=new Date;return Math.ceil((a.getTime()-s.getTime())/864e5)}catch{return null}}const he=()=>{const{quotas:i,loading:n,error:r,refetch:c}=t.useQuotaUsageContext(),{t:o,formattingLocale:l,fmtNum:d}=t.useTranslation(),{can:u}=t.usePermissions(),{response:m}=t.useSubscriptionContext(),[x,p]=s.useState(!1),g=s.useMemo(()=>{const e={};if(!m?.planVersion||!m?.subscription)return e;const a=m.planVersion,s=m.subscription,n=s.billingInterval??"monthly",r=s.plan?.currency??"usd";if(!i)return e;for(const s of Object.keys(i)){const c=t.getQuotaOverageCents(a,r,s,n);if(null==c||c<=0)continue;const o=a.quotas?.[s],l=o?.[n],d=l?.unitSize??1,u=i[s].overage,m=(d>1?Math.ceil(u/d):u)*c;e[s]={overageCents:c,unitSize:d,currency:r,estimatedCostCents:m}}return e},[m,i]),f=s.useMemo(()=>{const e=m?.subscription?.usageCurrentPeriodEnd||m?.subscription?.stripeCurrentPeriodEnd;if(!e)return null;const a=t.formatDate(e,l);return a?{endDate:a,daysRemaining:be(e)}:null},[m,l]),b=async()=>{p(!0);try{await c()}finally{p(!1)}};if(n&&!i)return e.jsx(v,{});if(!u(t.Permission.WORKSPACE_USAGE_VIEW))return null;if(r)return e.jsx(t.StatusBanner,{variant:"error",title:o("usage.errorLoading"),message:r,actionLabel:o("settings.common.retryAction",{loading:String(x)}),onAction:b,actionDisabled:x});const h=function(e){return[...e].sort(([,e],[,a])=>{if(e.hasOverage&&!a.hasOverage)return-1;if(!e.hasOverage&&a.hasOverage)return 1;const s=e.included>0?e.consumed/e.included:e.consumed>0?1:0;return(a.included>0?a.consumed/a.included:a.consumed>0?1:0)-s})}(i?Object.entries(i):[]);if(0===h.length)return e.jsx(t.EmptyState,{icon:e.jsx(a.BarChart3,{className:"h-5 w-5 text-muted-foreground"}),title:o("usage.noData"),description:o("usage.noDataHint"),action:e.jsx(t.Button,{variant:"outline",size:"sm",progress:x,onClick:b,children:o("settings.common.refreshAction",{loading:String(x)})})});const S=h.filter(([,e])=>e.hasOverage).length,j=h.length>0?Math.round(h.reduce((e,[,a])=>e+(a.included>0?a.consumed/a.included*100:0),0)/h.length):0,N=Object.values(g).reduce((e,a)=>e+a.estimatedCostCents,0),A=Object.values(g)[0]?.currency??"usd",C=e=>t.formatMinorAmountIntl(e,A,l);return e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:o("usage.description")}),e.jsxs(t.Button,{variant:"ghost",size:"sm",onClick:b,disabled:x,children:[e.jsx(a.RefreshCw,{className:t.cn("h-3.5 w-3.5 me-1.5",x&&"animate-spin")}),o("settings.common.refreshAction",{loading:String(x)})]})]}),f&&e.jsxs("div",{className:"flex items-center gap-2 rounded-lg border border-border bg-muted/30 px-4 py-3 text-sm text-muted-foreground",children:[e.jsx(a.Calendar,{className:"h-4 w-4 text-muted-foreground/70 flex-shrink-0"}),e.jsxs("span",{children:[o("usage.resetDateDisplay",{date:f.endDate}),null!==f.daysRemaining&&f.daysRemaining>0&&e.jsxs("span",{className:"text-muted-foreground",children:[" ","(",o("usage.daysRemainingDisplay",{count:f.daysRemaining}),")"]}),null!==f.daysRemaining&&f.daysRemaining<=0&&e.jsxs("span",{className:"text-warning font-medium",children:[" (",o("usage.renewingSoon"),")"]})]})]}),e.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-3 gap-2 sm:gap-3",children:[e.jsxs("div",{className:"border border-border rounded-lg p-3 sm:p-4",children:[e.jsx("p",{className:"text-xs text-muted-foreground font-medium",children:o("usage.totalResources")}),e.jsx("p",{className:"text-lg sm:text-xl font-semibold text-foreground mt-1",children:d(h.length)})]}),e.jsxs("div",{className:"border border-border rounded-lg p-3 sm:p-4",children:[e.jsx("p",{className:"text-xs text-muted-foreground font-medium",children:o("usage.overallUsage")}),e.jsx("p",{className:"text-lg sm:text-xl font-semibold text-foreground mt-1",children:d(j)+"%"})]}),e.jsxs("div",{className:t.cn("border rounded-lg p-3 sm:p-4",S>0?"border-destructive/20 bg-destructive/10":"border-border"),children:[e.jsx("p",{className:"text-xs text-muted-foreground font-medium",children:o("usage.inOverage")}),e.jsx("p",{className:t.cn("text-lg sm:text-xl font-semibold mt-1",S>0?"text-destructive":"text-foreground"),children:d(S)})]}),S>0&&N>0&&e.jsxs("div",{className:"border border-destructive/20 bg-destructive/10 rounded-lg p-3 sm:p-4",children:[e.jsx("p",{className:"text-xs text-muted-foreground font-medium",children:o("usage.estOverageCost")}),e.jsx("p",{className:"text-lg sm:text-xl font-semibold mt-1 text-destructive",children:C(N)})]})]}),S>0&&e.jsx("div",{className:"bg-warning/10 border border-warning/30 rounded-lg p-4",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(a.AlertTriangle,{className:"h-5 w-5 text-warning flex-shrink-0 mt-0.5 hidden sm:block"}),e.jsxs("div",{className:"flex-1",children:[e.jsx("h3",{className:"text-sm font-semibold text-warning mb-1",children:o("usage.overageDetected")}),e.jsx("p",{className:"text-sm text-warning",children:o("usage.overageWarning",{count:S})}),N>0&&e.jsx("p",{className:"text-sm text-warning font-medium mt-1",children:o("usage.estOverageCharges",{amount:C(N)})})]})]})}),e.jsx("div",{className:"space-y-3",children:h.map(([a,s])=>{const t=(i=s.consumed,(n=s.included)<=0?i>0?100:0:Math.min(i/n*100,100));var i,n;const r=function(e,a){return a?{bar:"bg-destructive",bg:"bg-destructive/15",badge:"bg-destructive/15",badgeText:"text-destructive"}:e>=90?{bar:"bg-warning",bg:"bg-warning/15",badge:"bg-warning/15",badgeText:"text-warning"}:e>=75?{bar:"bg-warning/70",bg:"bg-warning/15",badge:"bg-warning/15",badgeText:"text-warning"}:{bar:"bg-info",bg:"bg-info/15",badge:"bg-info/15",badgeText:"text-info"}}(t,s.hasOverage),c=g[a];return e.jsx(Se,{slug:a,quota:s,percent:t,colors:r,pricing:c},a)})})]})};function Se({slug:a,quota:s,percent:i,colors:n,pricing:r}){const{t:c,formattingLocale:o}=t.useTranslation(),l=e=>function(e,a){return new Intl.NumberFormat(a,{notation:"compact",maximumFractionDigits:1}).format(e)}(e,o),d=(e,a)=>t.formatMinorAmountIntl(e,a,o);return e.jsxs("div",{className:"border border-border rounded-lg p-4 sm:p-5",children:[e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-y-1 mb-3",children:[e.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[e.jsx("h3",{className:"text-sm font-medium text-foreground truncate",children:fe(a)}),s.hasOverage&&e.jsx("span",{className:t.cn("inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium",n.badge,n.badgeText),children:c("usage.overage")}),!s.hasOverage&&i>=90&&e.jsx("span",{className:t.cn("inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium",n.badge,n.badgeText),children:c("usage.almostFull")})]}),e.jsxs("span",{className:"text-sm text-muted-foreground whitespace-nowrap",children:[l(s.consumed)," / ",l(s.included)]})]}),e.jsx("div",{role:"progressbar","aria-valuenow":Math.round(i),"aria-valuemin":0,"aria-valuemax":100,"aria-label":fe(a),className:t.cn("h-2 rounded-full w-full",n.bg),children:e.jsx("div",{className:t.cn("h-2 rounded-full transition-all duration-500",n.bar),style:{width:`${i}%`}})}),e.jsxs("div",{className:"flex items-center justify-between mt-2 text-xs text-muted-foreground",children:[e.jsx("span",{children:c("usage.percentUsed",{percent:Math.round(i)})}),e.jsx("span",{children:s.available>0?c("usage.availableRemaining",{count:l(s.available)}):s.hasOverage?c("usage.overLimitCount",{count:l(s.overage)}):c("usage.fullyUsed")})]}),s.hasOverage&&r&&e.jsxs("div",{className:"mt-3 pt-3 border-t border-border space-y-2",children:[e.jsxs("div",{className:"flex items-center justify-between text-xs",children:[e.jsx("span",{className:"text-muted-foreground",children:c("usage.overageUnits")}),e.jsx("span",{className:"font-medium text-foreground",children:l(s.overage)})]}),e.jsxs("div",{className:"flex items-center justify-between text-xs",children:[e.jsx("span",{className:"text-muted-foreground",children:c("usage.rate")}),e.jsx("span",{className:"font-medium text-foreground",children:c("usage.rateDisplay",{rate:d(r.overageCents,r.currency),unitSize:r.unitSize})})]}),r.unitSize>1&&e.jsxs("div",{className:"flex items-center justify-between text-xs",children:[e.jsx("span",{className:"text-muted-foreground",children:c("usage.billableBlocks")}),e.jsx("span",{className:"font-medium text-foreground",children:l(Math.ceil(s.overage/r.unitSize))})]}),e.jsxs("div",{className:"flex items-center justify-between text-xs pt-2 border-t border-border",children:[e.jsx("span",{className:"font-medium text-destructive",children:c("usage.estimatedCharge")}),e.jsx("span",{className:"font-semibold text-destructive",children:d(r.estimatedCostCents,r.currency)})]})]}),!s.hasOverage&&r&&e.jsx("div",{className:"mt-2 text-xs text-muted-foreground",children:c("usage.overageRateDisplay",{rate:c("usage.rateDisplay",{rate:d(r.overageCents,r.currency),unitSize:r.unitSize})})})]})}const ve=f.Root,je=x.forwardRef(({className:a,children:s,...i},n)=>e.jsxs(f.Trigger,{ref:n,className:t.cn("flex h-10 sm:h-9 w-full items-center justify-between rounded-md border border-input bg-transparent px-3 py-2 text-base sm:text-sm shadow-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50",a),...i,children:[s,e.jsx(f.Icon,{asChild:!0,children:e.jsx(o.CaretSortIcon,{className:"h-4 w-4 opacity-50"})})]}));je.displayName=f.Trigger.displayName;const Ne=x.forwardRef(({className:a,children:s,position:i="popper",...n},r)=>{const{container:c}=x.useContext(t.PortalContext);return e.jsx(f.Portal,{container:c,children:e.jsx(f.Content,{ref:r,className:t.cn("relative z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2","popper"===i&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",a),position:i,...n,children:e.jsx(f.Viewport,{className:t.cn("p-1","popper"===i&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:s})})})});Ne.displayName=f.Content.displayName;x.forwardRef(({className:a,...s},i)=>e.jsx(f.Label,{ref:i,className:t.cn("px-2 py-1.5 text-sm font-semibold",a),...s})).displayName=f.Label.displayName;const Ae=x.forwardRef(({className:a,children:s,...i},n)=>e.jsxs(f.Item,{ref:n,className:t.cn("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 ps-2 pe-8 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",a),...i,children:[e.jsx("span",{className:"absolute end-2 flex h-3.5 w-3.5 items-center justify-center",children:e.jsx(f.ItemIndicator,{children:e.jsx(o.CheckIcon,{className:"h-4 w-4"})})}),e.jsx(f.ItemText,{children:s})]}));Ae.displayName=f.Item.displayName;x.forwardRef(({className:a,...s},i)=>e.jsx(f.Separator,{ref:i,className:t.cn("-mx-1 my-1 h-px bg-muted",a),...s})).displayName=f.Separator.displayName;const Ce=({workspace:i})=>{const{user:n}=t.useSaaSAuth(),{t:r,fmtNum:c,fmtCents:o}=t.useTranslation(),[l,d]=s.useState(0),[m,x]=s.useState(!1),[p,g]=s.useState([]),[f,b]=s.useState(null),{getUsers:h,removeUser:j,updateUser:N}=t.useSaaSWorkspaces(),{settings:A}=t.useSaaSSettings(),{can:C}=t.usePermissions(),{visible:T}=t.useUIVisibility(),{response:y}=t.useSubscriptionContext(),w=t.useSeatStatus(i,{settingsMaxUsers:A?.workspace?.maxWorkspaceUsers});s.useEffect(()=>{i&&(x(!0),h(i._id).then(e=>{g(e)}).catch(e=>{t.handleError(e,{component:"WorkspaceSettingsUsers",action:"getUsers",metadata:{workspaceId:i._id}})}).finally(()=>{x(!1)}))},[i,l,h]);const k=()=>{d(e=>e+1)},E=A?.workspace?.mode===te.Personal;if(m||!i)return e.jsx(v,{});if(E)return null;const P=e=>"string"==typeof e?{name:r("users.unknownUser"),email:e,id:e,role:"-"}:{name:e.name||r("users.unknownUser"),email:e.email,id:e._id},D=p.map(e=>({...e,...P(e.user)})),M=T(e=>e.settings?.users?.invite,t.Permission.WORKSPACE_MEMBERS_INVITE),I=T(e=>e.settings?.users?.remove,t.Permission.WORKSPACE_MEMBERS_REMOVE),U=T(e=>e.settings?.users?.roleChange,t.Permission.WORKSPACE_MEMBERS_ROLE_CHANGE),B=T(e=>e.settings?.users?.seatPricing),{hasSeatPricing:R,includedSeats:G,maxUsers:L,canInvite:K,inviteBlockReason:_,inviteBlockMessageKey:F,inviteBlockMessageValues:O,perSeatPriceCents:W,currency:V}=w,z=p.length,H=y?.subscription?.billingInterval??"monthly",J=R&&z>=G;return e.jsxs("div",{children:[!C(t.Permission.WORKSPACE_MEMBERS_INVITE)&&!C(t.Permission.WORKSPACE_MEMBERS_REMOVE)&&!C(t.Permission.WORKSPACE_MEMBERS_ROLE_CHANGE)&&e.jsx(S,{descriptionKey:"users.adminOnly"}),M&&e.jsx("div",{className:"mb-4",children:K?e.jsxs("div",{children:[e.jsx(Te,{onInvite:k,workspaceId:i._id}),B&&J&&null!=W&&W>0&&e.jsx("div",{className:"flex items-center gap-1.5 mt-2 text-xs text-warning bg-warning/10 px-3 py-1.5 rounded-md",children:e.jsx("span",{children:r("users.extraSeatCost",{price:o(W,V),interval:H})})})]}):e.jsx("div",{className:"flex items-center justify-between p-3 bg-destructive/10 border border-destructive/20 rounded-md",children:e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium text-destructive",children:r("users.limitReached",{reason:_??"member_limit_reached"})}),e.jsx("p",{className:"text-xs text-destructive mt-0.5",children:F?r(F,O??void 0):""})]})})}),B&&(R||L>0)&&e.jsxs("div",{className:"mb-4 rounded-lg border bg-muted/50 p-4",children:[e.jsxs("div",{className:"flex items-center justify-between mb-2",children:[e.jsx("h4",{className:"text-sm font-medium text-foreground",children:r("users.seatHeading",{hasSeatPricing:String(R)})}),L>0&&e.jsxs("span",{className:"text-xs font-medium px-2 py-0.5 rounded-full "+(z>=L?"bg-destructive/15 text-destructive":z>=.8*L?"bg-warning/15 text-warning":"bg-success/15 text-success"),children:[c(z)," / ",c(L)]})]}),L>0&&e.jsx("div",{role:"progressbar","aria-valuenow":z,"aria-valuemin":0,"aria-valuemax":L,"aria-label":r("users.seatHeading"),className:"w-full h-1.5 bg-muted rounded-full mb-3",children:e.jsx("div",{className:"h-1.5 rounded-full transition-all "+(z>=L?"bg-destructive":z>=.8*L?"bg-warning":"bg-success"),style:{width:`${Math.min(100,z/L*100)}%`}})}),e.jsxs("div",{className:"flex items-center justify-between text-sm text-muted-foreground",children:[e.jsx("div",{children:R?e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"text-foreground font-medium",children:c(G)})," ",r("users.included"),null!=W&&W>0&&e.jsxs("span",{className:"text-muted-foreground/70",children:[" ","· ",o(W,V),r("users.perExtraSeat")]})]}):e.jsxs("span",{children:[e.jsx("span",{className:"text-foreground font-medium",children:c(L)})," ",r("users.maxMembers")]})}),L>0?e.jsxs("span",{children:[c(Math.max(0,L-z))," ",r("users.available")]}):e.jsx("span",{className:"text-muted-foreground/70",children:r("users.noMemberLimit")})]})]}),e.jsxs("div",{className:"mb-4 flex items-center justify-between",children:[e.jsx("div",{children:e.jsx("div",{className:"text-sm text-muted-foreground",children:r("users.memberCount",{count:z})})}),e.jsx("div",{children:e.jsx(t.Button,{variant:"ghost",size:"sm",onClick:k,progress:m,children:r("settings.common.refreshAction",{loading:String(m)})})})]}),e.jsx("ul",{className:"space-y-2",children:D.map((s,c)=>{const o=s.id===n?.id,l=("object"==typeof i.createdBy&&null!==i.createdBy?i.createdBy._id:i.createdBy)===s.id;return e.jsxs("li",{className:"border rounded-md p-3",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsxs("div",{className:"flex items-center gap-2 sm:gap-3 min-w-0",children:[e.jsx("div",{className:"w-8 h-8 bg-muted rounded-full flex items-center justify-center text-sm font-medium shrink-0",children:s.name.charAt(0).toUpperCase()}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"font-medium text-sm truncate",children:s.name}),e.jsx("div",{className:"text-xs text-muted-foreground truncate",children:s.email})]})]}),e.jsxs("div",{className:"flex items-center gap-1 shrink-0",children:[o&&e.jsx("span",{className:"text-xs bg-info/15 text-info px-2 py-0.5 rounded",children:r("users.you")}),l&&e.jsx("span",{className:"text-xs bg-primary/10 text-primary px-2 py-0.5 rounded",children:r("users.owner")})]})]}),U&&e.jsxs("div",{className:"flex items-center gap-2 mt-2 pt-2 border-t border-border/60 sm:mt-0 sm:pt-0 sm:border-0",children:[e.jsxs("div",{className:"relative flex-1 sm:flex-initial",children:[e.jsxs(ve,{disabled:o||!U||l||f===s.id,value:s.role,onValueChange:e=>{return a=i._id,n=s.id,r=e,void(t.isWorkspaceOwner(i,n)?t.handleError(new Error("Cannot change the role of the workspace owner"),{component:"WorkspaceSettingsUsers",action:"handleUpdateRole",metadata:{workspaceId:a,userId:n,role:r}}):(b(n),N(a,n,{role:r}).then(()=>{k()}).catch(e=>{t.handleError(e,{component:"WorkspaceSettingsUsers",action:"handleUpdateRole",metadata:{workspaceId:a,userId:n,role:r}})}).finally(()=>{b(null)})));var a,n,r},children:[e.jsx(je,{children:e.jsx(u.SelectValue,{placeholder:r("users.selectRole")})}),e.jsx(Ne,{children:i?.roles.map(a=>e.jsx(Ae,{value:a,children:a},a))})]}),f===s.id&&e.jsx("div",{className:"absolute end-8 top-1/2 -translate-y-1/2 pointer-events-none",children:e.jsx(a.Loader2,{className:"h-4 w-4 animate-spin text-muted-foreground"})})]}),!o&&!l&&I&&e.jsx(t.Button,{variant:"destructive",size:"sm",startIcon:e.jsx(a.TrashIcon,{}),"aria-label":r("settings.common.delete"),onClick:()=>{return e=s.id,void(t.isWorkspaceOwner(i,e)?t.handleError(new Error("Cannot remove the workspace owner"),{component:"WorkspaceSettingsUsers",action:"handleRemoveUser",metadata:{workspaceId:i._id,userId:e}}):j(i._id,e).then(()=>{k()}).catch(a=>{t.handleError(a,{component:"WorkspaceSettingsUsers",action:"handleRemoveUser",metadata:{workspaceId:i._id,userId:e}})}));var e}})]})]},s.id??c)})}),0===p.length&&e.jsx("div",{className:"text-center py-8 text-muted-foreground",children:r("users.noMembers")})]})};function Te({onInvite:a,workspaceId:i}){const{t:n}=t.useTranslation(),{addUser:r,getWorkspace:c}=t.useSaaSWorkspaces(),{settings:o}=t.useSaaSSettings(),[l,d]=s.useState(""),[m,x]=s.useState("admin"),[p,g]=s.useState(!1),[f,b]=s.useState(null),[h,S]=s.useState(null),[v,j]=s.useState(null),N=xe(),A=o?.workspace.roles??v?.roles??[];s.useEffect(()=>{i&&c(i).then(j).catch(e=>{t.handleError(e,{component:"InviteMember",action:"getWorkspace"})})},[i]);const C=()=>{b(null),S(null),d(""),x("admin")};return e.jsxs("div",{className:"flex gap-2 flex-col gap-y-2",children:[f&&e.jsx(t.StatusBanner,{variant:"error",message:f}),h&&e.jsx(t.StatusBanner,{variant:"success",message:h}),e.jsxs("div",{children:[e.jsx(t.Label,{children:n("users.inviteByEmail")}),e.jsx(t.Input,{type:"email",value:l,onChange:e=>d(e.target.value),placeholder:n("users.emailPlaceholder")})]}),e.jsxs("div",{children:[e.jsx(t.Label,{children:n("users.role")}),e.jsxs(ve,{value:m,onValueChange:x,children:[e.jsx(je,{children:e.jsx(u.SelectValue,{placeholder:n("users.selectRole")})}),e.jsx(Ne,{children:A.map(a=>e.jsx(Ae,{value:a,children:a},a))})]})]}),e.jsx("div",{children:e.jsx(t.Button,{progress:p,onClick:async()=>{const e=l.trim();if(!e)return void b(n("users.emailRequired"));/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)?(g(!0),await r(i,e,m).then(()=>{S(n("users.inviteSuccess")),a?.()}).catch(a=>{t.handleError(a,{component:"InviteMember",action:"addUser",metadata:{workspaceId:i,email:e,role:m}}),b(a instanceof Error?a.message:n("users.inviteFailed"))}).finally(()=>{g(!1),N(C,6e3)})):b(n("users.invalidEmail"))},disabled:p||!l||!m,children:p?n("users.inviting"):n("users.inviteAs",{role:m})})})]})}const ye=({workspace:s,section:i,setSection:n})=>{const{t:r}=t.useTranslation(),{settings:c}=t.useSaaSSettings(),{appPermissions:o}=t.usePermissionConfig(),{visible:l}=t.useUIVisibility(),d=c?.workspace?.mode===te.Personal,u=o&&Object.keys(o).length>0,m=(e,a)=>l(a=>a.settings?.sections?.[e],a),x=m(t.SettingsScreen.Profile),p=m(t.SettingsScreen.Security),g=m(t.SettingsScreen.Devices),f=m(t.SettingsScreen.ConnectedAgents),b=m(t.SettingsScreen.General,t.Permission.WORKSPACE_SETTINGS_VIEW),h=m(t.SettingsScreen.Users,t.Permission.WORKSPACE_MEMBERS_VIEW)&&!d,S=m(t.SettingsScreen.Subscription,t.Permission.WORKSPACE_BILLING_VIEW),v=m(t.SettingsScreen.Usage,t.Permission.WORKSPACE_USAGE_VIEW),j=m(t.SettingsScreen.Credits,t.Permission.WORKSPACE_BILLING_VIEW),N=m(t.SettingsScreen.Features,t.Permission.WORKSPACE_FEATURES_VIEW),A=m(t.SettingsScreen.Notifications),C=m(t.SettingsScreen.Permissions)&&u&&!d,T=m(t.SettingsScreen.Danger,t.Permission.WORKSPACE_DELETE)&&!d,y=x||p||g||f,w=b||h||S||v||j||N||A||C||T,k=(a,s,r)=>e.jsx(t.SidebarNavItem,{icon:s,label:r,active:i===a,onClick:()=>n(a)});return e.jsxs("div",{className:"w-full sm:w-56 sm:h-full flex flex-col space-y-4 sm:space-y-6 shrink-0",children:[s&&e.jsx("div",{className:"sticky top-0 z-10 bg-muted border-b p-2 py-4 pe-10 sm:pe-2",children:e.jsxs("div",{className:"flex items-center gap-x-2",children:[s.image&&s.image.trim()&&e.jsx("div",{className:"bg-info/15 rounded flex items-center justify-center text-info font-medium px-0.5 py-0.5",style:{width:"40px",height:"40px",minWidth:"40px",minHeight:"40px"},children:e.jsx("img",{src:s.image,className:"w-full h-full object-contain",style:{width:"36px",height:"36px",maxWidth:"36px",maxHeight:"36px",objectFit:"contain"},alt:s.name})}),e.jsxs("div",{className:t.cn("flex-1 min-w-0",s.image?"":"ps-2"),children:[e.jsx("div",{className:"font-medium text-sm line-clamp-1 text-ellipsis overflow-hidden",children:s.name}),e.jsx("div",{className:"text-xs text-muted-foreground",children:s.workspaceId})]})]})}),y&&e.jsxs(t.SidebarNavSection,{title:r("settings.sidebar.account"),children:[x&&k(t.SettingsScreen.Profile,e.jsx(a.UserIcon,{className:"h-3.5 w-3.5"}),r("settings.sidebar.profile")),p&&k(t.SettingsScreen.Security,e.jsx(a.KeyRound,{className:"h-3.5 w-3.5"}),r("settings.sidebar.security")),g&&k(t.SettingsScreen.Devices,e.jsx(a.MonitorSmartphone,{className:"h-3.5 w-3.5"}),r("settings.sidebar.devices")),f&&k(t.SettingsScreen.ConnectedAgents,e.jsx(a.Bot,{className:"h-3.5 w-3.5"}),r("security.connectedAgentsTitle"))]}),w&&e.jsxs(t.SidebarNavSection,{title:r("settings.sidebar.workspace"),children:[b&&k(t.SettingsScreen.General,e.jsx(a.SettingsIcon,{className:"h-3.5 w-3.5"}),r("settings.sidebar.general")),h&&k(t.SettingsScreen.Users,e.jsx(a.UsersIcon,{className:"h-3.5 w-3.5"}),r("settings.sidebar.users")),S&&k(t.SettingsScreen.Subscription,e.jsx(a.CreditCard,{className:"h-3.5 w-3.5"}),r("settings.sidebar.subscription")),v&&k(t.SettingsScreen.Usage,e.jsx(a.BarChart3,{className:"h-3.5 w-3.5"}),r("settings.sidebar.usage")),j&&k(t.SettingsScreen.Credits,e.jsx(a.Coins,{className:"h-3.5 w-3.5"}),r("settings.sidebar.credits")),N&&k(t.SettingsScreen.Features,e.jsx(a.ToggleRight,{className:"h-3.5 w-3.5"}),r("settings.sidebar.features")),A&&k(t.SettingsScreen.Notifications,e.jsx(a.Bell,{className:"h-3.5 w-3.5"}),r("settings.sidebar.notifications")),C&&k(t.SettingsScreen.Permissions,e.jsx(a.Shield,{className:"h-3.5 w-3.5"}),r("settings.sidebar.permissions")),T&&k(t.SettingsScreen.Danger,e.jsx(a.AlertTriangle,{className:"h-3.5 w-3.5"}),r("settings.sidebar.danger"))]})]})},we={[t.SettingsScreen.Profile]:"settings.titles.profile",[t.SettingsScreen.Security]:"settings.titles.security",[t.SettingsScreen.Devices]:"settings.titles.devices",[t.SettingsScreen.ConnectedAgents]:"security.connectedAgentsTitle",[t.SettingsScreen.General]:"settings.titles.general",[t.SettingsScreen.Users]:"settings.titles.users",[t.SettingsScreen.Subscription]:"settings.titles.subscription",[t.SettingsScreen.Usage]:"settings.titles.usage",[t.SettingsScreen.Credits]:"settings.titles.credits",[t.SettingsScreen.Features]:"settings.titles.features",[t.SettingsScreen.Notifications]:"settings.titles.notifications",[t.SettingsScreen.Permissions]:"settings.titles.permissions",[t.SettingsScreen.Danger]:"settings.titles.danger"},ke=({ui:a,...i})=>{const n=t.useUIConfig(),r=s.useMemo(()=>t.mergeUIConfig(n,a),[n,a]);return a?e.jsx(t.UIConfigProvider,{ui:r,children:e.jsx(Ee,{...i})}):e.jsx(Ee,{...i})},Ee=({workspace:i,onClose:n,open:r,onOpenChange:c,defaultSection:o=t.SettingsScreen.Profile,section:l,onSectionChange:d,showTrigger:u=!0,trigger:m})=>{const{t:x,dir:p}=t.useTranslation(),{visible:g}=t.useUIVisibility(),[f,h]=s.useState(!1),[S,v]=s.useState(o),j=void 0!==r?r:f,A=c||h,y=void 0!==l?l:S,w=d||v,P=e=>g(a=>a.settings?.sections?.[e]),I=P(y)?y:Object.values(t.SettingsScreen).find(P)??null,U=void 0===l&&o===t.SettingsScreen.Profile,[B,R]=s.useState(U),G=s.useRef(I),L=s.useRef(null),K=s.useRef(null),_=s.useRef(B);s.useEffect(()=>{_.current!==B&&(_.current=B,"undefined"==typeof window||window.innerWidth>=640||(B?K:L).current?.focus())},[B]),s.useEffect(()=>{G.current!==I&&(G.current=I,R(!1))},[I]),s.useEffect(()=>{j&&R(U)},[j]);if(!i||!I)return null;const F=e.jsx(t.Button,{variant:"outline",size:"icon","aria-label":x("settings.common.openSettings"),children:e.jsx(a.Settings,{className:"h-4 w-4"})});return e.jsxs(t.Dialog,{open:j,onOpenChange:e=>{A(e),!e&&n&&n()},children:[u&&e.jsx(t.DialogTrigger,{asChild:!0,children:m||F}),e.jsxs(t.DialogContent,{dir:p,className:"flex flex-col sm:flex-row max-w-2xl min-w-full md:min-w-[800px] xl:min-w-[960px] p-0 m-0 bg-muted h-dvh max-h-dvh sm:h-auto sm:max-h-[90vh] sm:min-h-[600px] overflow-hidden gap-x-0 space-x-0",children:[e.jsx(t.DialogDescription,{className:"sr-only",children:x(we[I])}),e.jsx("div",{ref:K,tabIndex:-1,className:t.cn("flex-col flex-1 min-h-0 overflow-y-auto overscroll-contain px-2 pb-2 sm:p-0 sm:flex sm:flex-none focus:outline-none",B?"flex":"hidden"),children:e.jsx(ye,{workspace:i,section:I,setSection:e=>{w(e),R(!1)}})}),e.jsxs("div",{ref:L,tabIndex:-1,className:t.cn("flex-1 p-4 sm:p-6 overflow-auto flex-col bg-background sm:flex focus:outline-none",B?"hidden":"flex"),children:[e.jsxs("div",{className:"flex items-center gap-1 mb-4 pe-10 sm:pe-0",children:[e.jsx(t.Button,{variant:"ghost",size:"icon",className:"sm:hidden -ms-2 shrink-0 text-muted-foreground","aria-label":x("settings.common.back"),onClick:()=>R(!0),children:e.jsx(a.ArrowLeft,{className:"h-5 w-5 rtl:rotate-180"})}),e.jsx(t.DialogTitle,{className:"text-xl font-semibold min-w-0 truncate",children:x(we[I])})]}),e.jsxs("div",{className:"sm:max-h-[500px] xl:max-h-[65vh] overflow-y-auto",children:[I===t.SettingsScreen.Profile&&e.jsx(ae,{workspace:i}),I===t.SettingsScreen.Security&&e.jsx(se,{}),I===t.SettingsScreen.Devices&&e.jsx(T,{}),I===t.SettingsScreen.ConnectedAgents&&e.jsx(b,{}),I===t.SettingsScreen.General&&e.jsx(E,{workspace:i}),I===t.SettingsScreen.Users&&e.jsx(Ce,{workspace:i}),I===t.SettingsScreen.Subscription&&e.jsx(ge,{workspace:i}),I===t.SettingsScreen.Usage&&e.jsx(he,{}),I===t.SettingsScreen.Credits&&e.jsx(N,{workspace:i}),I===t.SettingsScreen.Features&&e.jsx(k,{workspaceId:i._id?.toString()}),I===t.SettingsScreen.Notifications&&e.jsx(D,{workspace:i}),I===t.SettingsScreen.Permissions&&e.jsx(M,{workspace:i}),I===t.SettingsScreen.Danger&&e.jsx(C,{workspace:i})]})]})]})]})};var Pe=Object.freeze({__proto__:null,SETTINGS_SCREENS:t.SETTINGS_SCREENS,SettingsScreen:t.SettingsScreen,WorkspaceSettingsDialog:ke,default:ke});exports.SettingsDialog=Pe,exports.WorkspaceModes=te;
|