@shapio/cms 0.5.5 → 0.5.6
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/dist/admin/assets/{AssetTile-CaYPqR_F.js → AssetTile-_qRYsivK.js} +2 -2
- package/dist/admin/assets/{AssetTile-CaYPqR_F.js.map → AssetTile-_qRYsivK.js.map} +1 -1
- package/dist/admin/assets/{AssistError-drmpXSbS.js → AssistError-CMXQWiQo.js} +2 -2
- package/dist/admin/assets/{AssistError-drmpXSbS.js.map → AssistError-CMXQWiQo.js.map} +1 -1
- package/dist/admin/assets/{BlockMenuItems-D-jZ0oaU.js → BlockMenuItems-WIrbyv1a.js} +2 -2
- package/dist/admin/assets/{BlockMenuItems-D-jZ0oaU.js.map → BlockMenuItems-WIrbyv1a.js.map} +1 -1
- package/dist/admin/assets/{Body-Gn_z2KPN.js → Body-BYc1IVsQ.js} +2 -2
- package/dist/admin/assets/{Body-Gn_z2KPN.js.map → Body-BYc1IVsQ.js.map} +1 -1
- package/dist/admin/assets/Builder-CwHpRhZN.js +2 -0
- package/dist/admin/assets/Builder-CwHpRhZN.js.map +1 -0
- package/dist/admin/assets/{CodeEditor-CzRU6och.js → CodeEditor-NMvrWgxT.js} +2 -2
- package/dist/admin/assets/{CodeEditor-CzRU6och.js.map → CodeEditor-NMvrWgxT.js.map} +1 -1
- package/dist/admin/assets/{ConfirmDialog-DZRJfdvH.js → ConfirmDialog-Rd6WDt6q.js} +2 -2
- package/dist/admin/assets/{ConfirmDialog-DZRJfdvH.js.map → ConfirmDialog-Rd6WDt6q.js.map} +1 -1
- package/dist/admin/assets/{CopyButton-h4HYhnYp.js → CopyButton-B0RuxynJ.js} +2 -2
- package/dist/admin/assets/{CopyButton-h4HYhnYp.js.map → CopyButton-B0RuxynJ.js.map} +1 -1
- package/dist/admin/assets/{CursorPager-H4SpVYw7.js → CursorPager-CQZsKNxR.js} +2 -2
- package/dist/admin/assets/{CursorPager-H4SpVYw7.js.map → CursorPager-CQZsKNxR.js.map} +1 -1
- package/dist/admin/assets/{FocalPoint-CSeKI4Iw.js → FocalPoint-BYu2fOTb.js} +2 -2
- package/dist/admin/assets/{FocalPoint-CSeKI4Iw.js.map → FocalPoint-BYu2fOTb.js.map} +1 -1
- package/dist/admin/assets/{Form-DF_YmR1G.js → Form-CiZUsLPp.js} +2 -2
- package/dist/admin/assets/{Form-DF_YmR1G.js.map → Form-CiZUsLPp.js.map} +1 -1
- package/dist/admin/assets/{FormCheckboxGroup-V3IKrvzc.js → FormCheckboxGroup-Bz8KERs1.js} +2 -2
- package/dist/admin/assets/{FormCheckboxGroup-V3IKrvzc.js.map → FormCheckboxGroup-Bz8KERs1.js.map} +1 -1
- package/dist/admin/assets/{FormRadioGroup-DIv-MYgn.js → FormRadioGroup-c-wyx7dq.js} +2 -2
- package/dist/admin/assets/{FormRadioGroup-DIv-MYgn.js.map → FormRadioGroup-c-wyx7dq.js.map} +1 -1
- package/dist/admin/assets/{FormSelectField-CUhaPIMY.js → FormSelectField-ijG9qPpb.js} +2 -2
- package/dist/admin/assets/{FormSelectField-CUhaPIMY.js.map → FormSelectField-ijG9qPpb.js.map} +1 -1
- package/dist/admin/assets/{FormSwitchField-DW8ysyk_.js → FormSwitchField-Bp3hNpeP.js} +2 -2
- package/dist/admin/assets/{FormSwitchField-DW8ysyk_.js.map → FormSwitchField-Bp3hNpeP.js.map} +1 -1
- package/dist/admin/assets/{FormTextareaField-DbqZ-MwI.js → FormTextareaField-BSKMqHcW.js} +2 -2
- package/dist/admin/assets/{FormTextareaField-DbqZ-MwI.js.map → FormTextareaField-BSKMqHcW.js.map} +1 -1
- package/dist/admin/assets/{HintedLabel-BlLtqVVz.js → HintedLabel-BrLH4NQW.js} +2 -2
- package/dist/admin/assets/{HintedLabel-BlLtqVVz.js.map → HintedLabel-BrLH4NQW.js.map} +1 -1
- package/dist/admin/assets/{InfoHint-bYMd_t0J.js → InfoHint-Dyzyf59c.js} +2 -2
- package/dist/admin/assets/{InfoHint-bYMd_t0J.js.map → InfoHint-Dyzyf59c.js.map} +1 -1
- package/dist/admin/assets/{InsertMenuItem-D2HGERzb.js → InsertMenuItem-BvRDuXtd.js} +2 -2
- package/dist/admin/assets/{InsertMenuItem-D2HGERzb.js.map → InsertMenuItem-BvRDuXtd.js.map} +1 -1
- package/dist/admin/assets/{Match-GDx_orOH.js → Match-Bixf1ygj.js} +2 -2
- package/dist/admin/assets/{Match-GDx_orOH.js.map → Match-Bixf1ygj.js.map} +1 -1
- package/dist/admin/assets/{QueryView-UBO-U5Wo.js → QueryView--_vvV7dC.js} +2 -2
- package/dist/admin/assets/{QueryView-UBO-U5Wo.js.map → QueryView--_vvV7dC.js.map} +1 -1
- package/dist/admin/assets/{RadioTile-CJbIIV8t.js → RadioTile-BCp6auUz.js} +2 -2
- package/dist/admin/assets/{RadioTile-CJbIIV8t.js.map → RadioTile-BCp6auUz.js.map} +1 -1
- package/dist/admin/assets/{RichTextField-M7HyUhYF.js → RichTextField-fWNjndUc.js} +2 -2
- package/dist/admin/assets/{RichTextField-M7HyUhYF.js.map → RichTextField-fWNjndUc.js.map} +1 -1
- package/dist/admin/assets/{RowTitle-DoxDM1XL.js → RowTitle-B4CE8tt7.js} +2 -2
- package/dist/admin/assets/{RowTitle-DoxDM1XL.js.map → RowTitle-B4CE8tt7.js.map} +1 -1
- package/dist/admin/assets/{SecretReveal-kCkLH5jg.js → SecretReveal-BhSqdWqh.js} +2 -2
- package/dist/admin/assets/{SecretReveal-kCkLH5jg.js.map → SecretReveal-BhSqdWqh.js.map} +1 -1
- package/dist/admin/assets/{SharedGlyph-D1OMHXPf.js → SharedGlyph-71FTypoi.js} +2 -2
- package/dist/admin/assets/{SharedGlyph-D1OMHXPf.js.map → SharedGlyph-71FTypoi.js.map} +1 -1
- package/dist/admin/assets/StepList-CZJmwy9e.js +2 -0
- package/dist/admin/assets/StepList-CZJmwy9e.js.map +1 -0
- package/dist/admin/assets/Structure-Dk87778W.js +2 -0
- package/dist/admin/assets/{Structure-CO4aJZVP.js.map → Structure-Dk87778W.js.map} +1 -1
- package/dist/admin/assets/{SuggestAltButton-CbRUxD5s.js → SuggestAltButton-CxS8IR6m.js} +2 -2
- package/dist/admin/assets/{SuggestAltButton-CbRUxD5s.js.map → SuggestAltButton-CxS8IR6m.js.map} +1 -1
- package/dist/admin/assets/{Thumbnail-D1XuDElk.js → Thumbnail-BwbCNpgQ.js} +2 -2
- package/dist/admin/assets/{Thumbnail-D1XuDElk.js.map → Thumbnail-BwbCNpgQ.js.map} +1 -1
- package/dist/admin/assets/{UnsavedChangesGuard-C1n7egF6.js → UnsavedChangesGuard-C6nD55Fn.js} +2 -2
- package/dist/admin/assets/{UnsavedChangesGuard-C1n7egF6.js.map → UnsavedChangesGuard-C6nD55Fn.js.map} +1 -1
- package/dist/admin/assets/{UserAvatar-Bl32IpG_.js → UserAvatar-D7IbSpsP.js} +2 -2
- package/dist/admin/assets/{UserAvatar-Bl32IpG_.js.map → UserAvatar-D7IbSpsP.js.map} +1 -1
- package/dist/admin/assets/{badge-ydvfgE8a.js → badge-vLiQczOd.js} +2 -2
- package/dist/admin/assets/{badge-ydvfgE8a.js.map → badge-vLiQczOd.js.map} +1 -1
- package/dist/admin/assets/{changeSets-DgfCKja3.js → changeSets-D5VevASj.js} +2 -2
- package/dist/admin/assets/{changeSets-DgfCKja3.js.map → changeSets-D5VevASj.js.map} +1 -1
- package/dist/admin/assets/{constants-esJAnNTh.js → constants-CKGh8uwT.js} +2 -2
- package/dist/admin/assets/{constants-esJAnNTh.js.map → constants-CKGh8uwT.js.map} +1 -1
- package/dist/admin/assets/{content-DsMSB6Wb.js → content-Cbavyq0x.js} +3 -3
- package/dist/admin/assets/{content-DsMSB6Wb.js.map → content-Cbavyq0x.js.map} +1 -1
- package/dist/admin/assets/{contentTypes-C-AKiYu1.js → contentTypes-DzQ_0v36.js} +2 -2
- package/dist/admin/assets/{contentTypes-C-AKiYu1.js.map → contentTypes-DzQ_0v36.js.map} +1 -1
- package/dist/admin/assets/{develop-DL-2W9jv.js → develop-BDqMOEql.js} +2 -2
- package/dist/admin/assets/{develop-DL-2W9jv.js.map → develop-BDqMOEql.js.map} +1 -1
- package/dist/admin/assets/{dropdown-menu-C53v9ioW.js → dropdown-menu-CVAnm22s.js} +2 -2
- package/dist/admin/assets/{dropdown-menu-C53v9ioW.js.map → dropdown-menu-CVAnm22s.js.map} +1 -1
- package/dist/admin/assets/es2015-BKfbx3rz.js +42 -0
- package/dist/admin/assets/es2015-BKfbx3rz.js.map +1 -0
- package/dist/admin/assets/{field-W1dB_h6d.js → field-Bg-JRgsB.js} +2 -2
- package/dist/admin/assets/{field-W1dB_h6d.js.map → field-Bg-JRgsB.js.map} +1 -1
- package/dist/admin/assets/{fileRoute-DzWMBrRx.js → fileRoute-DQCI1nMN.js} +2 -2
- package/dist/admin/assets/{fileRoute-DzWMBrRx.js.map → fileRoute-DQCI1nMN.js.map} +1 -1
- package/dist/admin/assets/{followPlural-D-5ZJqJF.js → followPlural-D0bENI5E.js} +2 -2
- package/dist/admin/assets/{followPlural-D-5ZJqJF.js.map → followPlural-D0bENI5E.js.map} +1 -1
- package/dist/admin/assets/{inbox-DUqOrFEA.js → inbox-Dfy4YBZ2.js} +2 -2
- package/dist/admin/assets/{inbox-DUqOrFEA.js.map → inbox-Dfy4YBZ2.js.map} +1 -1
- package/dist/admin/assets/{index-D03RZB7e.js → index-M4TUI1dl.js} +4 -4
- package/dist/admin/assets/{index-D03RZB7e.js.map → index-M4TUI1dl.js.map} +1 -1
- package/dist/admin/assets/{labels-CHE0gg1n.js → labels-BrwwGWnv.js} +2 -2
- package/dist/admin/assets/{labels-CHE0gg1n.js.map → labels-BrwwGWnv.js.map} +1 -1
- package/dist/admin/assets/{media-BUUEsWxd.js → media-DBdx-UmR.js} +2 -2
- package/dist/admin/assets/{media-BUUEsWxd.js.map → media-DBdx-UmR.js.map} +1 -1
- package/dist/admin/assets/{network-Bolr2lmf.js → network-BpbMYp6D.js} +2 -2
- package/dist/admin/assets/{network-Bolr2lmf.js.map → network-BpbMYp6D.js.map} +1 -1
- package/dist/admin/assets/{publishing-ClNjPLQ9.js → publishing-CpSDO3M7.js} +2 -2
- package/dist/admin/assets/{publishing-ClNjPLQ9.js.map → publishing-CpSDO3M7.js.map} +1 -1
- package/dist/admin/assets/{radio-group-rFxn7cz2.js → radio-group-DQ3sC1ol.js} +2 -2
- package/dist/admin/assets/{radio-group-rFxn7cz2.js.map → radio-group-DQ3sC1ol.js.map} +1 -1
- package/dist/admin/assets/{searchSchemas-C4qp-vCa.js → searchSchemas-D4S2ceA0.js} +2 -2
- package/dist/admin/assets/{searchSchemas-C4qp-vCa.js.map → searchSchemas-D4S2ceA0.js.map} +1 -1
- package/dist/admin/assets/{sections-C7Z6Xd8r.js → sections-Cl1LrzqH.js} +2 -2
- package/dist/admin/assets/{sections-C7Z6Xd8r.js.map → sections-Cl1LrzqH.js.map} +1 -1
- package/dist/admin/assets/{select-DUhL27UN.js → select-DjCAH45V.js} +2 -2
- package/dist/admin/assets/{select-DUhL27UN.js.map → select-DjCAH45V.js.map} +1 -1
- package/dist/admin/assets/{seo-l1ZORjtv.js → seo-DJ4k3LtY.js} +2 -2
- package/dist/admin/assets/{seo-l1ZORjtv.js.map → seo-DJ4k3LtY.js.map} +1 -1
- package/dist/admin/assets/{settings-DgoG3H8C.js → settings-DRZ33PTg.js} +2 -2
- package/dist/admin/assets/{settings-DgoG3H8C.js.map → settings-DRZ33PTg.js.map} +1 -1
- package/dist/admin/assets/{shapes-BZ87ap5s.js → shapes-BJe3IMuj.js} +5 -5
- package/dist/admin/assets/{shapes-BZ87ap5s.js.map → shapes-BJe3IMuj.js.map} +1 -1
- package/dist/admin/assets/{skeleton-Dyi_b1wq.js → skeleton-D4eOLKLY.js} +2 -2
- package/dist/admin/assets/{skeleton-Dyi_b1wq.js.map → skeleton-D4eOLKLY.js.map} +1 -1
- package/dist/admin/assets/src-DUpL-qwG.js +7 -0
- package/dist/admin/assets/src-DUpL-qwG.js.map +1 -0
- package/dist/admin/assets/{switch-C3dDDUIk.js → switch-B2R13aVU.js} +2 -2
- package/dist/admin/assets/{switch-C3dDDUIk.js.map → switch-B2R13aVU.js.map} +1 -1
- package/dist/admin/assets/{theme-DPe080iG.js → theme-X-qeg74W.js} +2 -2
- package/dist/admin/assets/{theme-DPe080iG.js.map → theme-X-qeg74W.js.map} +1 -1
- package/dist/admin/assets/{titles-C5PaMgFJ.js → titles-CLh5ftA2.js} +2 -2
- package/dist/admin/assets/{titles-C5PaMgFJ.js.map → titles-CLh5ftA2.js.map} +1 -1
- package/dist/admin/assets/{tooltip-BEaZkRPK.js → tooltip-u2epXfJF.js} +2 -2
- package/dist/admin/assets/{tooltip-BEaZkRPK.js.map → tooltip-u2epXfJF.js.map} +1 -1
- package/dist/admin/assets/{useContentSchema-wLDa2L3f.js → useContentSchema-DaQHlL19.js} +2 -2
- package/dist/admin/assets/{useContentSchema-wLDa2L3f.js.map → useContentSchema-DaQHlL19.js.map} +1 -1
- package/dist/admin/assets/{useDiscardGuard-WTUINqD5.js → useDiscardGuard-BVJGUCiH.js} +2 -2
- package/dist/admin/assets/{useDiscardGuard-WTUINqD5.js.map → useDiscardGuard-BVJGUCiH.js.map} +1 -1
- package/dist/admin/assets/{useMediaPickerDialog-CFN9ZKfe.js → useMediaPickerDialog-C23eOHQR.js} +2 -2
- package/dist/admin/assets/{useMediaPickerDialog-CFN9ZKfe.js.map → useMediaPickerDialog-C23eOHQR.js.map} +1 -1
- package/dist/admin/assets/{useMediaUploader-B42H_CMG.js → useMediaUploader-CTViR0LX.js} +2 -2
- package/dist/admin/assets/{useMediaUploader-B42H_CMG.js.map → useMediaUploader-CTViR0LX.js.map} +1 -1
- package/dist/admin/assets/{useResolvedScheme-aV0QDPi3.js → useResolvedScheme-Cg8TdO85.js} +2 -2
- package/dist/admin/assets/{useResolvedScheme-aV0QDPi3.js.map → useResolvedScheme-Cg8TdO85.js.map} +1 -1
- package/dist/admin/assets/{zod-C-k48Hnc.js → zod-D5i60ErJ.js} +2 -2
- package/dist/admin/assets/{zod-C-k48Hnc.js.map → zod-D5i60ErJ.js.map} +1 -1
- package/dist/admin/index.html +27 -27
- package/dist/cli.js +10 -3
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +7 -2
- package/dist/index.js +1 -1
- package/dist/{s3Adapter-sL1zP4Zl.js → s3Adapter-CtPzkzf0.js} +2 -2
- package/dist/{s3Adapter-sL1zP4Zl.js.map → s3Adapter-CtPzkzf0.js.map} +1 -1
- package/dist/{worker-DMES6pqh.js → worker-DRCCGGjl.js} +3823 -3719
- package/dist/worker-DRCCGGjl.js.map +1 -0
- package/package.json +5 -5
- package/dist/admin/assets/Builder-DyCcikfS.js +0 -2
- package/dist/admin/assets/Builder-DyCcikfS.js.map +0 -1
- package/dist/admin/assets/StepList-BIQjDaWQ.js +0 -2
- package/dist/admin/assets/StepList-BIQjDaWQ.js.map +0 -1
- package/dist/admin/assets/Structure-CO4aJZVP.js +0 -2
- package/dist/admin/assets/es2015-DrAA1N2V.js +0 -42
- package/dist/admin/assets/es2015-DrAA1N2V.js.map +0 -1
- package/dist/admin/assets/src-BcLeD2-K.js +0 -7
- package/dist/admin/assets/src-BcLeD2-K.js.map +0 -1
- package/dist/worker-DMES6pqh.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./react-CQOZoUwg.js";import{t as n}from"./jsx-runtime-DREnUpxT.js";import{A as r,O as i,i as a,j as o,lt as s,o as c}from"./loader-circle-C-9trZPI.js";import{i as l}from"./media-VCJUbYzJ.js";import{g as u,h as d,i as f,m as p,u as m}from"./auth-C4fHG9Iu.js";import{O as h,_ as g,a as _,i as v,n as y,o as b,t as ee}from"./badge-ydvfgE8a.js";import{n as te}from"./Match-GDx_orOH.js";import{n as x,t as ne}from"./createLucideIcon-CqygG5K6.js";import{i as S,n as C,r as re,t as w}from"./RowTitle-DoxDM1XL.js";import{t as T}from"./fileRoute-DzWMBrRx.js";import{t as ie}from"./UnsavedChangesGuard-C1n7egF6.js";import{K as ae,ct as oe}from"./src-BcLeD2-K.js";import{c as se,i as ce,n as le,o as ue}from"./seo-l1ZORjtv.js";import{E,t as de,w as fe}from"./InfoHint-bYMd_t0J.js";import{T as D,x as pe}from"./es2015-DrAA1N2V.js";import{i as me,n as he,r as ge,t as _e}from"./AssetTile-CaYPqR_F.js";import{i as O,n as ve,r as ye}from"./skeleton-Dyi_b1wq.js";import{a as be,i as xe,n as Se,r as Ce,t as we}from"./select-DUhL27UN.js";import{i as k,r as A,t as Te}from"./ConfirmDialog-DZRJfdvH.js";import{_ as Ee,a as j,c as De,s as Oe,t as ke}from"./field-W1dB_h6d.js";import{t as Ae}from"./ellipsis-BHtU4ov6.js";import{c as je}from"./Thumbnail-D1XuDElk.js";import{t as Me}from"./globe-DKkjr9MZ.js";import{t as Ne}from"./key-round-Dmdr1vP5.js";import{a as M,p as Pe,r as Fe,t as Ie}from"./dropdown-menu-C53v9ioW.js";import{c as Le,i as Re,n as ze,t as Be}from"./sections-C7Z6Xd8r.js";import{t as Ve}from"./pencil-BVSFlU14.js";import{t as He}from"./plus-WfYKHW7G.js";import{t as Ue}from"./radio-group-rFxn7cz2.js";import{a as We,c as Ge,f as Ke,n as N,o as P,r as qe,s as Je,t as F,u as I}from"./zod-C-k48Hnc.js";import{n as Ye,t as L}from"./settle-LRKtTN_e.js";import{_ as Xe,a as R,g as z,i as B,l as Ze,n as V,o as H,r as U,s as W,t as G,u as Qe,v as K}from"./table-zG68ipQc.js";import{t as $e}from"./HintedLabel-BlLtqVVz.js";import{t as q}from"./QueryView-UBO-U5Wo.js";import{t as et}from"./FormRadioGroup-DIv-MYgn.js";import{t as tt}from"./useNetworkPermission-CegwqQXR.js";import{a as nt,i as rt,n as it,r as at,t as ot}from"./locales-e7B5t6id.js";import{n as st,t as ct}from"./useMediaPickerDialog-CFN9ZKfe.js";import{a as lt,l as ut,m as dt,p as ft,r as pt,t as mt}from"./AssistError-drmpXSbS.js";import{t as ht}from"./textarea-BBjqMF-Y.js";import{t as J}from"./Panel-B1TkcP8V.js";import{t as gt}from"./ExternalLink-BNq7nAYL.js";import{t as _t}from"./RadioTile-CJbIIV8t.js";import{t as vt}from"./FormTextareaField-DbqZ-MwI.js";import{n as yt,r as bt,t as xt}from"./SubNavLink-CPJFIt1j.js";import{n as St,t as Ct}from"./FormSelectField-CUhaPIMY.js";import{n as wt,r as Tt,t as Et}from"./tokens-BlIDIMY9.js";import{a as Dt,i as Ot,o as kt,t as At}from"./SecretReveal-kCkLH5jg.js";import{t as jt}from"./useConfirmTarget-9JmfiY2X.js";var Mt={name:`star`,size:24,node:[[`path`,{d:`M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z`,key:`r04s7s`}]]};Mt.node;var Nt=ne(Mt),Y=e(n(),1),Pt=()=>{let{t:e}=x(),t=m().data?.globalPermissions??[];return(0,Y.jsx)(yt,{label:e(`settings.sections`),children:Be.map(n=>{let r=n.sections.filter(e=>!e.permission||t.includes(e.permission));return r.length===0?null:(0,Y.jsx)(bt,{label:e(`settings.${n.key}`),children:r.map(t=>{let n=t.icon;return(0,Y.jsxs)(xt,{to:t.to,children:[(0,Y.jsx)(n,{"aria-hidden":`true`}),e(`settings.${t.key}`)]},t.key)})},n.key)})})},Ft=()=>(0,Y.jsx)(_,{children:(0,Y.jsxs)(`div`,{className:`flex flex-col gap-6 lg:flex-row lg:items-start lg:gap-8`,children:[(0,Y.jsx)(Pt,{}),(0,Y.jsx)(`div`,{className:`min-w-0 flex-1`,children:(0,Y.jsx)(te,{})})]})}),X=e(t(),1),It=[`never`,`30`,`90`,`365`],Lt=864e5,Rt=(e,t=new Date)=>e===`never`?null:new Date(t.getTime()+Number(e)*Lt).toISOString(),zt=z({name:P(),roleId:K().min(1,`validation.selectRole`),expiry:Ze(It),scope:Ze([`site`,`network`])}),Z={name:``,roleId:``,expiry:`90`,scope:`site`},Bt=(e,t,n)=>{let r=wt(),i=I({resolver:F(zt),defaultValues:Z}),{reset:a}=i;return(0,X.useEffect)(()=>{e&&a(Z)},[e,a]),{form:i,onSubmit:i.handleSubmit(async({name:e,roleId:i,expiry:o,scope:s})=>{let c=s===`network`&&n(i),l=await L(r.mutateAsync({name:e,roleId:i,expiresAt:Rt(o),network:c}));l.ok&&(a(Z),t(l.value))}),createToken:r}},Vt=({open:e,onOpenChange:t,onCreated:n,onCloseAutoFocus:r})=>{let{t:i}=x(),a=kt(),{data:o}=m(),s=o?.networkPermissions.includes(`users.manage`)??!1,c=e=>s&&a.data?.find(t=>t.id===e)?.kind===`admin`,{form:l,onSubmit:u,createToken:d}=Bt(e,n,c),f=Ke({control:l.control,name:`roleId`}),p=[{value:`site`,label:i(`apiTokens.scopeSite`,{name:o?.site.name??``}),description:i(`apiTokens.scopeSiteDescription`)},{value:`network`,label:i(`apiTokens.scopeNetwork`),description:i(`apiTokens.scopeNetworkDescription`)}],h=(a.data??[]).map(e=>({value:e.id,label:e.name})),g=It.map(e=>({value:e,label:e===`never`?i(`apiTokens.expiryNever`):i(`apiTokens.expiryDays`,{count:Number(e)})}));return(0,Y.jsxs)(St,{open:e,onOpenChange:t,size:`md`,...r?{onCloseAutoFocus:r}:{},title:i(`apiTokens.createTitle`),dirty:l.formState.isDirty,pending:d.isPending,submitLabel:i(`common.create`),pendingLabel:i(`common.saving`),onSubmit:e=>void u(e),children:[(0,Y.jsx)(N,{control:l.control,name:`name`,label:i(`apiTokens.name`),autoComplete:`off`}),(0,Y.jsx)(Ct,{control:l.control,name:`roleId`,label:i(`apiTokens.role`),options:h}),c(f)?(0,Y.jsx)(et,{control:l.control,name:`scope`,legend:i(`apiTokens.scope`),options:p}):null,(0,Y.jsx)(Ct,{control:l.control,name:`expiry`,label:i(`apiTokens.expiry`),options:g}),(0,Y.jsx)(k,{error:d.error??a.error})]})},Ht=({tokens:e,roleNames:t,draftRoleIds:n,siteName:r,onRevoke:i})=>{let{t:a}=x();return(0,Y.jsx)(W,{children:(0,Y.jsxs)(G,{children:[(0,Y.jsx)(R,{children:(0,Y.jsxs)(H,{children:[(0,Y.jsx)(B,{children:a(`apiTokens.name`)}),(0,Y.jsx)(B,{children:a(`apiTokens.prefix`)}),(0,Y.jsx)(B,{children:a(`apiTokens.role`)}),(0,Y.jsx)(B,{children:a(`apiTokens.appliesTo`)}),(0,Y.jsx)(B,{children:a(`apiTokens.status`)}),(0,Y.jsx)(B,{children:a(`apiTokens.lastUsed`)}),(0,Y.jsx)(B,{children:a(`apiTokens.expires`)}),(0,Y.jsx)(B,{children:(0,Y.jsx)(`span`,{className:`sr-only`,children:a(`common.actions`)})})]})}),(0,Y.jsx)(V,{children:e.map(e=>(0,Y.jsxs)(H,{children:[(0,Y.jsx)(U,{children:(0,Y.jsx)(w,{children:e.name})}),(0,Y.jsx)(U,{className:`font-mono text-xs`,children:`${e.tokenPrefix}…`}),(0,Y.jsx)(U,{children:(0,Y.jsxs)(`span`,{className:`flex items-center gap-2`,children:[t.get(e.roleId)??a(`common.unknown`),n.has(e.roleId)?(0,Y.jsx)(y,{tone:`warning`,size:`sm`,label:a(`apiTokens.draftsChip`)}):null]})}),(0,Y.jsx)(U,{children:e.siteId===null?a(`sites.everySite`):r}),(0,Y.jsx)(U,{children:e.revokedAt?(0,Y.jsx)(y,{tone:`muted`,label:a(`apiTokens.revokedBadge`)}):(0,Y.jsx)(y,{tone:`success`,label:a(`apiTokens.active`)})}),(0,Y.jsx)(U,{title:C(e.lastUsedAt)||void 0,children:e.lastUsedAt?S(e.lastUsedAt):a(`common.never`)}),(0,Y.jsx)(U,{children:e.expiresAt?C(e.expiresAt):a(`common.never`)}),(0,Y.jsx)(U,{className:`text-right`,children:e.revokedAt?null:(0,Y.jsx)(A,{tone:`danger`,title:a(`apiTokens.revokeTitle`,{name:e.name}),description:a(`apiTokens.revokeDescription`),confirmLabel:a(`common.revoke`),onConfirm:()=>i(e),trigger:(0,Y.jsx)(O,{variant:`outline`,size:`sm`,"aria-label":`${a(`common.revoke`)}: ${e.name}`,children:a(`common.revoke`)})})})]},e.id))})]})})},Ut=()=>{let{t:e}=x(),t=Et(),{names:n}=Dt(),{draftRoleIds:r}=Ot(),i=m().data?.site.name??``,a=Tt(),[o,s]=(0,X.useState)(!1),[c,l]=(0,X.useState)(void 0),u=async t=>{await a.mutateAsync(t.id),E.success(e(`apiTokens.revoked`))},d=(0,Y.jsxs)(O,{onClick:()=>s(!0),children:[(0,Y.jsx)(He,{"aria-hidden":`true`}),e(`apiTokens.create`)]});return(0,Y.jsxs)(_,{width:`full`,children:[(0,Y.jsx)(v,{title:e(`apiTokens.title`),actions:d}),c?(0,Y.jsx)(At,{title:e(`apiTokens.secretTitle`),description:e(`apiTokens.secretDescription`),label:e(`apiTokens.secretLabel`),secret:c,dismissLabel:e(`apiTokens.secretDone`),onDismiss:()=>l(void 0)}):null,(0,Y.jsx)(q,{query:t,isEmpty:e=>e.length===0,empty:(0,Y.jsx)(b,{icon:Ne,title:e(`apiTokens.empty`),description:e(`apiTokens.emptyDescription`),action:d}),children:e=>(0,Y.jsx)(Ht,{tokens:e,roleNames:n,draftRoleIds:r,siteName:i,onRevoke:u})}),(0,Y.jsx)(Vt,{open:o,onOpenChange:s,onCreated:e=>{l(e.token),s(!1)},onCloseAutoFocus:e=>c!==void 0&&e.preventDefault()})]})},Wt=()=>{let{t:e}=x(),{looks:t,selectedLook:n,selectLook:r}=ze();return(0,Y.jsxs)(_,{width:`full`,children:[(0,Y.jsx)(v,{title:e(`appearance.title`)}),(0,Y.jsx)(J,{title:e(`appearance.theme`),description:e(`appearance.storedHere`),children:(0,Y.jsx)(Ue,{"aria-label":e(`appearance.theme`),value:n,onValueChange:r,className:`sm:grid-cols-2 xl:grid-cols-3`,children:t.map(e=>(0,Y.jsx)(_t,{value:e.value,label:e.name,description:e.description,media:(0,Y.jsx)(Re,{themeKey:e.themeKey,variant:e.variant,size:`lg`})},e.value))})})]})},Gt=()=>{let{t:e}=x(),t=(0,X.useId)(),[n,r]=(0,X.useState)(``),[i,a]=(0,X.useState)(``),o=ut(),s=n.trim()!==``&&i.trim()!==``;return(0,Y.jsx)(J,{title:e(`assist.settings.tryIt`),titleAs:`h2`,children:(0,Y.jsxs)(`form`,{className:`space-y-4`,onSubmit:e=>{e.preventDefault(),s&&o.mutate({text:n.trim(),instruction:i.trim()})},children:[(0,Y.jsxs)(`div`,{className:`space-y-2`,children:[(0,Y.jsx)(ye,{htmlFor:`${t}-text`,children:e(`assist.settings.tryText`)}),(0,Y.jsx)(ht,{id:`${t}-text`,value:n,rows:3,maxLength:dt,onChange:e=>r(e.target.value)})]}),(0,Y.jsxs)(`div`,{className:`space-y-2`,children:[(0,Y.jsx)(ye,{htmlFor:`${t}-instruction`,children:e(`assist.rewrite.instruction`)}),(0,Y.jsx)(ve,{id:`${t}-instruction`,value:i,maxLength:500,placeholder:e(`assist.rewrite.instructionPlaceholder`),onChange:e=>a(e.target.value)})]}),(0,Y.jsx)(mt,{error:o.error}),(0,Y.jsx)(`div`,{className:`flex justify-end`,children:(0,Y.jsx)(pt,{type:`submit`,variant:`default`,size:`default`,pending:o.isPending,pendingLabel:e(`assist.working`),disabled:!s,children:e(`assist.rewrite.run`)})}),(0,Y.jsx)(`div`,{"aria-live":`polite`,children:o.data?(0,Y.jsxs)(`figure`,{className:`space-y-1 rounded-lg border bg-muted/40 p-3`,children:[(0,Y.jsx)(`figcaption`,{className:`text-meta text-muted-foreground`,children:e(`assist.rewrite.proposal`,{model:o.data.model})}),(0,Y.jsx)(`p`,{className:`text-sm whitespace-pre-wrap`,children:o.data.text})]}):null})]})})},Kt=({usage:e})=>{let{t}=x(),n=[{key:`runs`,label:t(`assist.settings.runs`),value:e.runs},{key:`input`,label:t(`assist.settings.inputTokens`),value:e.inputTokens},{key:`output`,label:t(`assist.settings.outputTokens`),value:e.outputTokens}];return(0,Y.jsx)(J,{title:t(`assist.settings.usage`,{month:re(e.month)}),titleAs:`h2`,children:(0,Y.jsx)(`dl`,{className:`grid gap-4 sm:grid-cols-3`,children:n.map(e=>(0,Y.jsxs)(`div`,{className:`space-y-1`,children:[(0,Y.jsx)(`dt`,{className:`text-meta text-muted-foreground`,children:e.label}),(0,Y.jsx)(`dd`,{className:`text-2xl font-semibold tabular-nums`,children:e.value.toLocaleString()})]},e.key))})})},qt=()=>{let{t:e}=x(),t=lt();return(0,Y.jsxs)(_,{width:`narrow`,children:[(0,Y.jsx)(v,{title:e(`settings.assist`)}),(0,Y.jsx)(q,{query:t,loadingRows:3,children:t=>(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(J,{title:e(`assist.settings.status`),titleAs:`h2`,actions:(0,Y.jsx)(y,{tone:t.enabled?`success`:`muted`,label:t.enabled?e(`assist.settings.on`):e(`assist.settings.off`)}),children:[t.enabled?(0,Y.jsxs)(`dl`,{className:`space-y-2 text-sm`,children:[(0,Y.jsxs)(`div`,{className:`flex justify-between gap-3`,children:[(0,Y.jsx)(`dt`,{className:`text-muted-foreground`,children:e(`assist.settings.provider`)}),(0,Y.jsx)(`dd`,{className:`font-mono`,children:t.provider})]}),(0,Y.jsxs)(`div`,{className:`flex justify-between gap-3`,children:[(0,Y.jsx)(`dt`,{className:`text-muted-foreground`,children:e(`assist.settings.model`)}),(0,Y.jsx)(`dd`,{className:`min-w-0 font-mono break-all`,children:t.model})]})]}):(0,Y.jsx)(`p`,{className:`text-sm`,children:e(`assist.settings.offDescription`)}),(0,Y.jsx)(`p`,{className:`mt-4 text-meta`,children:(0,Y.jsx)(gt,{href:ft,children:e(`assist.settings.guide`)})})]}),t.enabled&&t.usage?(0,Y.jsx)(Kt,{usage:t.usage}):null,t.enabled?(0,Y.jsx)(Gt,{}):null]})})]})},Jt=e=>{let t=e.details?.plan?.impact?.affectedHeads;return typeof t==`number`?t:null},Yt=e=>E.success(D.t(`locales.deleted`,{label:e.label})),Xt=()=>{let e=it(),[t,n]=(0,X.useState)(void 0),[r,i]=(0,X.useState)(!1);return{attempt:async t=>{try{await e.mutateAsync({code:t.code,acknowledged:!1})}catch(r){if(!d(r,`SCHEMA_CHANGE_NOT_ACKNOWLEDGED`))throw r;e.reset(),n({locale:t,affectedHeads:Jt(r)??0}),i(!0);return}Yt(t)},withContent:t,open:r,onOpenChange:i,confirm:()=>{t&&e.mutate({code:t.locale.code,acknowledged:!0},{onSuccess:()=>{Yt(t.locale),i(!1)}})},pending:e.isPending,error:e.error}},Zt=`locale-fallbacks-legend`,Qt=({control:e,locales:t,code:n})=>{let{t:r}=x(),{field:i,fieldState:a}=Ge({control:e,name:`fallbacks`}),[o,s]=(0,X.useState)(``),c=i.value,l=e=>t.find(t=>t.code===e)?.label??e,u=t.filter(e=>e.code!==n&&!c.includes(e.code)),d=(e,t)=>{let n=[...c],[r]=n.splice(e,1);n.splice(t,0,r),i.onChange(n)};return(0,Y.jsxs)(De,{className:`gap-3`,"aria-labelledby":Zt,children:[(0,Y.jsxs)(Oe,{variant:`label`,className:`mb-0 flex items-center gap-1`,children:[(0,Y.jsx)(`span`,{id:Zt,children:r(`locales.fallbacks`)}),(0,Y.jsx)(de,{about:r(`locales.fallbacks`),children:r(`locales.fallbacksHint`)})]}),c.length>0?(0,Y.jsx)(`ol`,{className:`space-y-1`,children:c.map((e,t)=>(0,Y.jsxs)(`li`,{className:`flex items-center gap-2 rounded-lg border py-1 pr-1 pl-3 text-sm`,children:[(0,Y.jsxs)(`span`,{className:`w-5 text-muted-foreground`,children:[t+1,`.`]}),(0,Y.jsxs)(`span`,{className:`flex-1`,children:[l(e),` `,(0,Y.jsx)(`span`,{className:`font-mono text-xs text-muted-foreground`,children:e})]}),(0,Y.jsx)(O,{type:`button`,variant:`ghost`,size:`icon-sm`,"aria-label":r(`locales.moveUp`,{locale:l(e)}),disabled:t===0,onClick:()=>d(t,t-1),children:(0,Y.jsx)(ge,{"aria-hidden":`true`})}),(0,Y.jsx)(O,{type:`button`,variant:`ghost`,size:`icon-sm`,"aria-label":r(`locales.moveDown`,{locale:l(e)}),disabled:t===c.length-1,onClick:()=>d(t,t+1),children:(0,Y.jsx)(me,{"aria-hidden":`true`})}),(0,Y.jsx)(O,{type:`button`,variant:`ghost`,size:`icon-sm`,"aria-label":r(`locales.removeFallback`,{locale:l(e)}),onClick:()=>i.onChange(c.filter(t=>t!==e)),children:(0,Y.jsx)(h,{"aria-hidden":`true`})})]},e))}):(0,Y.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:r(`locales.noFallbacks`)}),u.length>0&&c.length<10?(0,Y.jsxs)(we,{value:o,onValueChange:e=>{i.onChange([...c,e]),s(``)},children:[(0,Y.jsx)(xe,{className:`w-full sm:w-64`,"aria-label":r(`locales.addFallback`),children:(0,Y.jsx)(be,{placeholder:r(`locales.addFallback`)})}),(0,Y.jsx)(Se,{children:u.map(e=>(0,Y.jsxs)(Ce,{value:e.code,children:[e.label,` (`,e.code,`)`]},e.code))})]}):null,(0,Y.jsx)(qe,{message:a.error?.message})]})},$t=z({code:K().trim().min(1,`validation.required`).max(35,`validation.localeCode`).regex(ae,`validation.localeCode`),label:P(),fallbacks:Qe(K())}),en=e=>({code:e?.code??``,label:e?.label??``,fallbacks:e?.fallbacks??[]}),tn=(e,t,n)=>{let r=ot(),i=nt(),a=I({resolver:F($t),defaultValues:en(t)}),{reset:o}=a;(0,X.useEffect)(()=>{e&&(o(en(t)),r.reset(),i.reset())},[e,t,o]);let s=a.handleSubmit(async({code:e,label:a,fallbacks:o})=>{(await L(t?i.mutateAsync({code:t.code,input:{label:a,fallbacks:o}}):r.mutateAsync({code:e,label:a,fallbacks:o}))).ok&&(E.success(D.t(t?`locales.saved`:`locales.created`,{label:a})),n())}),c=t?i:r;return{form:a,onSubmit:s,pending:c.isPending,error:c.error}},nn=({open:e,onOpenChange:t,locale:n,locales:r})=>{let{t:i}=x(),{form:a,onSubmit:o,pending:s,error:c}=tn(e,n,()=>t(!1)),l=a.watch(`code`);return(0,Y.jsxs)(St,{open:e,onOpenChange:t,size:`md`,title:n?i(`locales.editTitle`,{label:n.label}):i(`locales.addTitle`),dirty:a.formState.isDirty,pending:s,submitLabel:i(n?`common.saveChanges`:`locales.add`),pendingLabel:i(`common.saving`),onSubmit:e=>void o(e),children:[(0,Y.jsx)(N,{control:a.control,name:`code`,label:i(`locales.code`),hint:i(`locales.codeHint`),autoComplete:`off`,spellCheck:!1,className:`font-mono`,disabled:n!==void 0}),(0,Y.jsx)(N,{control:a.control,name:`label`,label:i(`locales.label`),autoComplete:`off`}),(0,Y.jsx)(Qt,{control:a.control,locales:r,code:l}),(0,Y.jsx)(k,{error:c})]})},rn=({locale:e,chain:t,canManage:n,onEdit:r,onMakeDefault:i,onDelete:a})=>{let{t:o}=x(),[s,c]=(0,X.useState)(!1);return(0,Y.jsxs)(H,{children:[(0,Y.jsx)(U,{children:(0,Y.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(w,{children:e.label}),e.isDefault?(0,Y.jsx)(ee,{variant:`secondary`,children:o(`locales.default`)}):null]})}),(0,Y.jsx)(U,{className:`font-mono text-xs`,children:e.code}),(0,Y.jsx)(U,{className:`font-mono text-xs`,children:t.length>0?t.join(` → `):o(`common.none`)}),(0,Y.jsx)(U,{className:`text-right`,children:n?(0,Y.jsxs)(Ie,{children:[(0,Y.jsx)(A,{tone:`danger`,open:s,onOpenChange:c,title:o(`locales.deleteTitle`,{label:e.label}),description:o(`locales.deleteDescription`),confirmLabel:o(`common.delete`),pendingLabel:o(`locales.deleting`),onConfirm:()=>a(e),children:(0,Y.jsx)(Pe,{asChild:!0,children:(0,Y.jsx)(O,{variant:`ghost`,size:`icon-sm`,"aria-label":`${o(`common.actions`)}: ${e.label}`,children:(0,Y.jsx)(Ae,{"aria-hidden":`true`})})})}),(0,Y.jsxs)(Fe,{align:`end`,onCloseAutoFocus:e=>s&&e.preventDefault(),children:[(0,Y.jsxs)(M,{onSelect:()=>r(e),children:[(0,Y.jsx)(Ve,{"aria-hidden":`true`}),o(`common.edit`)]}),e.isDefault?null:(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(M,{onSelect:()=>i(e),children:[(0,Y.jsx)(Nt,{"aria-hidden":`true`}),o(`locales.makeDefault`)]}),(0,Y.jsxs)(M,{variant:`destructive`,onSelect:()=>c(!0),children:[(0,Y.jsx)(Ee,{"aria-hidden":`true`}),o(`common.delete`)]})]})]})]}):null})]})},an=({locales:e,canManage:t,onEdit:n,onMakeDefault:r,onDelete:i})=>{let{t:a}=x(),o=e.find(e=>e.isDefault);return(0,Y.jsx)(W,{children:(0,Y.jsxs)(G,{children:[(0,Y.jsx)(R,{children:(0,Y.jsxs)(H,{children:[(0,Y.jsx)(B,{children:a(`locales.label`)}),(0,Y.jsx)(B,{children:a(`locales.code`)}),(0,Y.jsx)(B,{children:a(`locales.fallbacks`)}),(0,Y.jsx)(B,{children:(0,Y.jsx)(`span`,{className:`sr-only`,children:a(`common.actions`)})})]})}),(0,Y.jsx)(V,{children:e.map(e=>(0,Y.jsx)(rn,{locale:e,chain:[...e.fallbacks,...o&&!e.isDefault&&!e.fallbacks.includes(o.code)?[o.code]:[]],canManage:t,onEdit:n,onMakeDefault:r,onDelete:i},e.code))})]})})},on=()=>{let{t:e}=x(),t=at(),n=tt(`schema.create`),r=rt(),i=jt(),a=Xt(),[o,s]=(0,X.useState)({open:!1,locale:void 0}),c=t.data?.find(e=>e.isDefault),l=a.withContent;return(0,Y.jsxs)(_,{width:`full`,children:[(0,Y.jsx)(v,{title:e(`locales.title`),actions:n?(0,Y.jsxs)(O,{onClick:()=>s({open:!0,locale:void 0}),children:[(0,Y.jsx)(He,{"aria-hidden":`true`}),e(`locales.add`)]}):null}),(0,Y.jsx)(q,{query:t,isEmpty:e=>e.length===0,empty:(0,Y.jsx)(b,{icon:Me,title:e(`locales.empty`)}),children:e=>(0,Y.jsx)(an,{locales:e,canManage:n,onEdit:e=>s({open:!0,locale:e}),onMakeDefault:e=>{r.reset(),i.ask(e)},onDelete:a.attempt})}),(0,Y.jsx)(nn,{open:o.open,onOpenChange:e=>s(t=>({...t,open:e})),locale:o.locale,locales:t.data??[]}),(0,Y.jsx)(Te,{open:i.open,onOpenChange:i.onOpenChange,title:e(`locales.defaultTitle`,{label:i.target?.label??``}),description:e(`locales.defaultDescription`,{label:i.target?.label??``,current:c?.label??``}),acknowledgement:e(`locales.defaultAcknowledge`),confirmLabel:e(`locales.makeDefault`),destructive:!0,pending:r.isPending,pendingLabel:e(`common.saving`),error:r.error,onConfirm:()=>{let t=i.target;t&&r.mutate(t.code,{onSuccess:()=>{E.success(e(`locales.defaultChanged`,{label:t.label})),i.close()}})}}),(0,Y.jsx)(Te,{open:a.open,onOpenChange:a.onOpenChange,title:e(`locales.deleteTitle`,{label:l?.locale.label??``}),description:e(`locales.deleteContent`,{count:l?.affectedHeads??0,label:l?.locale.label??``}),acknowledgement:e(`locales.deleteAcknowledge`,{count:l?.affectedHeads??0}),confirmLabel:e(`common.delete`),destructive:!0,pending:a.pending,pendingLabel:e(`locales.deleting`),error:a.error,onConfirm:a.confirm})]})},sn=z({name:P()}),cn=()=>{let{data:e}=m(),t=p(),n=I({resolver:F(sn),defaultValues:{name:e?.user.name??``}}),{reset:r,formState:i}=n,a=e?.user.name;return(0,X.useEffect)(()=>{!i.isDirty&&a!==void 0&&r({name:a})},[a,r,i.isDirty]),{form:n,onSubmit:n.handleSubmit(async e=>{let n=await L(t.mutateAsync(e));n.ok&&(r({name:n.value.name}),E.success(D.t(`profile.detailsSaved`)))}),updateProfile:t,email:e?.user.email??``}},ln=`profile-email`,un=`profile-email-hint`,dn=({onDirtyChange:e})=>{let{t}=x(),{form:n,onSubmit:r,updateProfile:i,email:a}=cn(),{isDirty:o}=n.formState;return(0,X.useEffect)(()=>e(o),[o,e]),(0,Y.jsx)(J,{title:t(`profile.detailsTitle`),children:(0,Y.jsx)(`form`,{noValidate:!0,onSubmit:e=>void r(e),className:`max-w-md`,children:(0,Y.jsxs)(j,{children:[(0,Y.jsx)(N,{control:n.control,name:`name`,label:t(`auth.name`),autoComplete:`name`}),(0,Y.jsxs)(ke,{children:[(0,Y.jsx)($e,{htmlFor:ln,label:t(`auth.email`),hint:t(`profile.emailHint`),hintId:un}),(0,Y.jsx)(ve,{id:ln,value:a,readOnly:!0,"aria-describedby":un})]}),(0,Y.jsx)(k,{error:i.error}),(0,Y.jsx)(`div`,{children:(0,Y.jsx)(g,{pending:i.isPending,pendingLabel:t(`common.saving`),disabled:!o,children:t(`common.saveChanges`)})})]})})})},fn=Je({currentPassword:K().min(1,`validation.required`),password:We()}),pn={currentPassword:``,password:``,confirmPassword:``},mn=()=>{let e=f(),t=I({resolver:F(fn),defaultValues:pn});return{form:t,onSubmit:t.handleSubmit(async({currentPassword:n,password:r})=>{(await L(e.mutateAsync({currentPassword:n,newPassword:r}))).ok&&(t.reset(pn),E.success(D.t(`profile.passwordChanged`)))}),changePassword:e}},hn=({onDirtyChange:e})=>{let{t}=x(),{form:n,onSubmit:r,changePassword:i}=mn(),{isDirty:a}=n.formState;return(0,X.useEffect)(()=>e(a),[a,e]),(0,Y.jsx)(J,{title:t(`profile.passwordTitle`),description:t(`profile.passwordDescription`),children:(0,Y.jsx)(`form`,{noValidate:!0,onSubmit:e=>void r(e),className:`max-w-md`,children:(0,Y.jsxs)(j,{children:[(0,Y.jsx)(N,{control:n.control,name:`currentPassword`,label:t(`profile.currentPassword`),type:`password`,autoComplete:`current-password`}),(0,Y.jsx)(N,{control:n.control,name:`password`,label:t(`auth.newPassword`),description:t(`auth.passwordHint`),type:`password`,autoComplete:`new-password`}),(0,Y.jsx)(N,{control:n.control,name:`confirmPassword`,label:t(`auth.confirmPassword`),type:`password`,autoComplete:`new-password`}),(0,Y.jsx)(k,{error:i.error}),(0,Y.jsx)(`div`,{children:(0,Y.jsx)(g,{pending:i.isPending,pendingLabel:t(`common.saving`),children:t(`profile.changePassword`)})})]})})})},gn=()=>{let{t:e}=x(),[t,n]=(0,X.useState)(!1),[r,i]=(0,X.useState)(!1),a=(0,X.useCallback)(e=>n(e),[]),o=(0,X.useCallback)(e=>i(e),[]);return(0,Y.jsxs)(_,{width:`full`,children:[(0,Y.jsx)(v,{title:e(`profile.title`)}),(0,Y.jsx)(dn,{onDirtyChange:a}),(0,Y.jsx)(hn,{onDirtyChange:o}),(0,Y.jsx)(ie,{when:t||r})]})},Q=`seo-default-image`,_n=`${Q}-hint`,vn=`${Q}-error`,yn=({control:e,imagePrivate:t})=>{let{t:n}=x(),{field:r,fieldState:i}=Ge({control:e,name:`imageId`}),a=t?n(`seo.settings.imagePrivate`):i.error?.message,{canWrite:o}=je(),s=ct(),c=async()=>{let e=(await s.pickMedia({multiple:!1,allowedKinds:[`image`]}))?.[0];e&&r.onChange(e.id)};return(0,Y.jsxs)(ke,{"data-invalid":a?!0:void 0,children:[(0,Y.jsx)($e,{htmlFor:Q,label:n(`seo.settings.image`),hint:n(`seo.settings.imageHint`),hintId:_n}),r.value?(0,Y.jsx)(`ul`,{children:(0,Y.jsx)(_e,{assetId:r.value,inputId:Q,index:0,count:1,editable:!0,canEditAlt:o,onRemove:()=>r.onChange(null)})}):null,(0,Y.jsx)(`div`,{children:(0,Y.jsxs)(O,{id:Q,type:`button`,variant:`outline`,size:`sm`,"aria-describedby":Ye(_n,a?vn:void 0),onClick:()=>void c(),children:[(0,Y.jsx)(he,{"aria-hidden":`true`}),r.value?n(`seo.settings.changeImage`):n(`seo.settings.chooseImage`)]})}),(0,Y.jsx)(qe,{id:a?vn:void 0,message:a}),s.dialog]})},bn=200,xn=1e3,$=e=>K().trim().max(e,`validation.tooLong`),Sn=z({siteName:$(bn),titleTemplate:$(bn).refine(e=>e===``||se(e),`validation.titleTemplate`),description:$(xn)}),Cn=z({locales:Xe(K(),Sn),imageId:K().nullable(),twitterHandle:K().trim().refine(e=>e===``||oe.test(e),`validation.twitterHandle`)}),wn={siteName:``,titleTemplate:``,description:``},Tn=(e,t)=>{let n=[...new Set([...t.map(e=>e.code),...Object.keys(e.locales)])];return{locales:Object.fromEntries(n.map(t=>[t,{...wn,...e.locales[t]}])),imageId:e.imageId,twitterHandle:e.twitterHandle??``}},En=e=>{let t={};for(let[n,r]of Object.entries(e.locales)){let e=Object.fromEntries(Object.entries(r).map(([e,t])=>[e,t.trim()]).filter(([,e])=>e!==``));Object.keys(e).length>0&&(t[n]=e)}let n=e.twitterHandle.trim();return{locales:t,imageId:e.imageId,twitterHandle:n===``?null:n}},Dn=e=>Object.keys(e.locales??{})[0],On=`SEO_IMAGE_INVALID`,kn=(e,t)=>{let n=s(),r=ue(),i=t.find(e=>e.isDefault)?.code??t[0]?.code??``,[a,o]=(0,X.useState)(i),[c,f]=(0,X.useState)(e.version),p=I({resolver:F(Cn),defaultValues:Tn(e.seo,t)}),m=Ke({control:p.control,name:`imageId`}),h=l(m??void 0),g=m!==null&&h.data?.visibility===`private`,{clearErrors:_}=p;(0,X.useEffect)(()=>_(`imageId`),[m,_]);let v=async()=>{try{let e=await n.fetchQuery({...le,staleTime:0});p.reset(Tn(e.seo,t)),f(e.version)}catch(e){fe(e,`reloading the SEO settings`)}};return{form:p,locale:a,setLocale:o,imagePrivate:g,pending:r.isPending,onSubmit:p.handleSubmit(async e=>{if(!g)try{let n=await r.mutateAsync({expectedVersion:c,seo:En(e)});p.reset(Tn(n.seo,t)),f(n.version),E.success(D.t(`seo.settings.saved`))}catch(e){if(u(e)){E.error(D.t(`seo.settings.conflict`),{action:{label:D.t(`seo.settings.reload`),onClick:()=>void v()}});return}if(d(e,On)){p.setError(`imageId`,{message:pe(e)},{shouldFocus:!1});return}E.error(pe(e))}},e=>{let t=Dn(e);t!==void 0&&o(t)})}},An=({control:e,locales:t,locale:n,onLocaleChange:r})=>{let{t:i}=x();return(0,Y.jsx)(J,{title:i(`seo.settings.textsTitle`),titleAs:`h2`,actions:t.length>1?(0,Y.jsx)(st,{locales:t,value:n,onChange:r,size:`sm`}):null,children:(0,Y.jsxs)(j,{className:`max-w-xl`,children:[(0,Y.jsx)(N,{control:e,name:`locales.${n}.siteName`,label:i(`seo.settings.siteName`),hint:i(`seo.settings.siteNameHint`)}),(0,Y.jsx)(N,{control:e,name:`locales.${n}.titleTemplate`,label:i(`seo.settings.titleTemplate`),hint:i(`seo.settings.titleTemplateHint`),placeholder:i(`seo.settings.titleTemplatePlaceholder`)}),(0,Y.jsx)(vt,{control:e,name:`locales.${n}.description`,label:i(`seo.settings.description`),hint:i(`seo.settings.descriptionHint`),rows:3})]},n)})},jn=({siteSeo:e,locales:t})=>{let{t:n}=x(),{form:r,locale:i,setLocale:a,imagePrivate:o,pending:s,onSubmit:c}=kn(e,t),{isDirty:l}=r.formState;return(0,Y.jsxs)(`form`,{noValidate:!0,onSubmit:e=>void c(e),className:`space-y-6`,children:[(0,Y.jsx)(ie,{when:l}),(0,Y.jsx)(An,{control:r.control,locales:t,locale:i,onLocaleChange:a}),(0,Y.jsx)(J,{title:n(`seo.settings.socialTitle`),titleAs:`h2`,children:(0,Y.jsxs)(j,{className:`max-w-xl`,children:[(0,Y.jsx)(yn,{control:r.control,imagePrivate:o}),(0,Y.jsx)(N,{control:r.control,name:`twitterHandle`,label:n(`seo.settings.twitterHandle`),hint:n(`seo.settings.twitterHandleHint`),placeholder:n(`seo.settings.twitterHandlePlaceholder`),autoComplete:`off`})]})}),(0,Y.jsx)(`div`,{children:(0,Y.jsx)(g,{pending:s,pendingLabel:n(`common.saving`),disabled:!l||o,children:n(`common.saveChanges`)})})]})},Mn=()=>{let{t:e}=x(),t=ce(),n=at();return(0,Y.jsxs)(_,{width:`full`,children:[(0,Y.jsx)(v,{title:e(`seo.settings.title`)}),(0,Y.jsx)(q,{query:t,loadingRows:4,children:e=>(0,Y.jsx)(q,{query:n,loadingRows:4,children:t=>(0,Y.jsx)(jn,{siteSeo:e,locales:t})})})]})},Nn=()=>o({queryKey:i.sessions,queryFn:()=>c.sessions.list(),meta:{silent:!0}}),Pn=()=>{let e=s();return r({mutationKey:[`sessions`,`revoke`],mutationFn:e=>a(()=>c.sessions.revoke(e)),onSettled:()=>e.invalidateQueries({queryKey:i.sessions})})},Fn=[[/Edg\//,`Edge`],[/OPR\//,`Opera`],[/Firefox\//,`Firefox`],[/Chrome\//,`Chrome`],[/Safari\//,`Safari`]],In=[[/iPhone|iPad/,`iOS`],[/Android/,`Android`],[/Mac OS X|Macintosh/,`macOS`],[/Windows/,`Windows`],[/Linux/,`Linux`]],Ln=(e,t)=>t.find(([t])=>t.test(e))?.[1],Rn=e=>{if(!e)return;let t=Ln(e,Fn),n=Ln(e,In);return t&&n?`${t} · ${n}`:t??n},zn=({sessions:e,onRevoke:t})=>{let{t:n}=x();return(0,Y.jsx)(W,{children:(0,Y.jsxs)(G,{children:[(0,Y.jsx)(R,{children:(0,Y.jsxs)(H,{children:[(0,Y.jsx)(B,{children:n(`sessions.device`)}),(0,Y.jsx)(B,{children:n(`sessions.ipAddress`)}),(0,Y.jsx)(B,{children:n(`sessions.signedIn`)}),(0,Y.jsx)(B,{children:n(`sessions.lastActive`)}),(0,Y.jsx)(B,{children:(0,Y.jsx)(`span`,{className:`sr-only`,children:n(`common.actions`)})})]})}),(0,Y.jsx)(V,{children:e.map(e=>(0,Y.jsxs)(H,{children:[(0,Y.jsx)(U,{children:(0,Y.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(w,{children:Rn(e.userAgent)??n(`sessions.unknownDevice`)}),e.current?(0,Y.jsx)(ee,{variant:`secondary`,children:n(`sessions.current`)}):null]})}),(0,Y.jsx)(U,{className:`font-mono text-xs`,children:e.ip??n(`common.unknown`)}),(0,Y.jsx)(U,{title:C(e.createdAt),children:S(e.createdAt)}),(0,Y.jsx)(U,{title:C(e.lastSeenAt),children:S(e.lastSeenAt)}),(0,Y.jsx)(U,{className:`text-right`,children:e.current?null:(0,Y.jsx)(A,{tone:`danger`,title:n(`sessions.revokeTitle`),description:n(`sessions.revokeDescription`),confirmLabel:n(`common.revoke`),onConfirm:()=>t(e),trigger:(0,Y.jsx)(O,{variant:`outline`,size:`sm`,children:n(`common.revoke`)})})})]},e.id))})]})})},Bn={settings:T(`/app/settings`)({component:Ft}),profile:T(`/app/settings/profile`)({component:gn}),sessions:T(`/app/settings/sessions`)({component:()=>{let{t:e}=x(),t=Nn(),n=Pn(),r=async t=>{await n.mutateAsync(t.id),E.success(e(`sessions.revoked`))};return(0,Y.jsxs)(_,{width:`full`,children:[(0,Y.jsx)(v,{title:e(`sessions.title`)}),(0,Y.jsx)(q,{query:t,isEmpty:e=>e.length===0,empty:(0,Y.jsx)(b,{icon:Le,title:e(`sessions.empty`)}),children:e=>(0,Y.jsx)(zn,{sessions:e,onRevoke:r})})]})}}),theme:T(`/app/settings/theme`)({component:Wt}),locales:T(`/app/settings/locales`)({component:on}),seo:T(`/app/settings/seo`)({component:Mn}),assist:T(`/app/settings/assist`)({component:qt}),apiTokens:T(`/app/settings/api-tokens`)({component:Ut})};export{Bn as settingsLazyRoutes};
|
|
2
|
-
//# sourceMappingURL=settings-
|
|
1
|
+
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./react-CQOZoUwg.js";import{t as n}from"./jsx-runtime-DREnUpxT.js";import{A as r,O as i,i as a,j as o,lt as s,o as c}from"./loader-circle-C-9trZPI.js";import{i as l}from"./media-VCJUbYzJ.js";import{g as u,h as d,i as f,m as p,u as m}from"./auth-C4fHG9Iu.js";import{O as h,_ as g,a as _,i as v,n as y,o as b,t as ee}from"./badge-vLiQczOd.js";import{n as te}from"./Match-Bixf1ygj.js";import{n as x,t as ne}from"./createLucideIcon-CqygG5K6.js";import{i as S,n as C,r as re,t as w}from"./RowTitle-B4CE8tt7.js";import{t as T}from"./fileRoute-DQCI1nMN.js";import{t as ie}from"./UnsavedChangesGuard-C6nD55Fn.js";import{K as ae,lt as oe}from"./src-DUpL-qwG.js";import{c as se,i as ce,n as le,o as ue}from"./seo-DJ4k3LtY.js";import{E,t as de,w as fe}from"./InfoHint-Dyzyf59c.js";import{T as D,x as pe}from"./es2015-BKfbx3rz.js";import{i as me,n as he,r as ge,t as _e}from"./AssetTile-_qRYsivK.js";import{i as O,n as ve,r as ye}from"./skeleton-D4eOLKLY.js";import{a as be,i as xe,n as Se,r as Ce,t as we}from"./select-DjCAH45V.js";import{i as k,r as A,t as Te}from"./ConfirmDialog-Rd6WDt6q.js";import{_ as Ee,a as j,c as De,s as Oe,t as ke}from"./field-Bg-JRgsB.js";import{t as Ae}from"./ellipsis-BHtU4ov6.js";import{c as je}from"./Thumbnail-BwbCNpgQ.js";import{t as Me}from"./globe-DKkjr9MZ.js";import{t as Ne}from"./key-round-Dmdr1vP5.js";import{a as M,p as Pe,r as Fe,t as Ie}from"./dropdown-menu-CVAnm22s.js";import{c as Le,i as Re,n as ze,t as Be}from"./sections-Cl1LrzqH.js";import{t as Ve}from"./pencil-BVSFlU14.js";import{t as He}from"./plus-WfYKHW7G.js";import{t as Ue}from"./radio-group-DQ3sC1ol.js";import{a as We,c as Ge,f as Ke,n as N,o as P,r as qe,s as Je,t as F,u as I}from"./zod-D5i60ErJ.js";import{n as Ye,t as L}from"./settle-LRKtTN_e.js";import{_ as Xe,a as R,g as z,i as B,l as Ze,n as V,o as H,r as U,s as W,t as G,u as Qe,v as K}from"./table-zG68ipQc.js";import{t as $e}from"./HintedLabel-BrLH4NQW.js";import{t as q}from"./QueryView--_vvV7dC.js";import{t as et}from"./FormRadioGroup-c-wyx7dq.js";import{t as tt}from"./useNetworkPermission-CegwqQXR.js";import{a as nt,i as rt,n as it,r as at,t as ot}from"./locales-e7B5t6id.js";import{n as st,t as ct}from"./useMediaPickerDialog-C23eOHQR.js";import{a as lt,l as ut,m as dt,p as ft,r as pt,t as mt}from"./AssistError-CMXQWiQo.js";import{t as ht}from"./textarea-BBjqMF-Y.js";import{t as J}from"./Panel-B1TkcP8V.js";import{t as gt}from"./ExternalLink-BNq7nAYL.js";import{t as _t}from"./RadioTile-BCp6auUz.js";import{t as vt}from"./FormTextareaField-BSKMqHcW.js";import{n as yt,r as bt,t as xt}from"./SubNavLink-CPJFIt1j.js";import{n as St,t as Ct}from"./FormSelectField-ijG9qPpb.js";import{n as wt,r as Tt,t as Et}from"./tokens-BlIDIMY9.js";import{a as Dt,i as Ot,o as kt,t as At}from"./SecretReveal-BhSqdWqh.js";import{t as jt}from"./useConfirmTarget-9JmfiY2X.js";var Mt={name:`star`,size:24,node:[[`path`,{d:`M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z`,key:`r04s7s`}]]};Mt.node;var Nt=ne(Mt),Y=e(n(),1),Pt=()=>{let{t:e}=x(),t=m().data?.globalPermissions??[];return(0,Y.jsx)(yt,{label:e(`settings.sections`),children:Be.map(n=>{let r=n.sections.filter(e=>!e.permission||t.includes(e.permission));return r.length===0?null:(0,Y.jsx)(bt,{label:e(`settings.${n.key}`),children:r.map(t=>{let n=t.icon;return(0,Y.jsxs)(xt,{to:t.to,children:[(0,Y.jsx)(n,{"aria-hidden":`true`}),e(`settings.${t.key}`)]},t.key)})},n.key)})})},Ft=()=>(0,Y.jsx)(_,{children:(0,Y.jsxs)(`div`,{className:`flex flex-col gap-6 lg:flex-row lg:items-start lg:gap-8`,children:[(0,Y.jsx)(Pt,{}),(0,Y.jsx)(`div`,{className:`min-w-0 flex-1`,children:(0,Y.jsx)(te,{})})]})}),X=e(t(),1),It=[`never`,`30`,`90`,`365`],Lt=864e5,Rt=(e,t=new Date)=>e===`never`?null:new Date(t.getTime()+Number(e)*Lt).toISOString(),zt=z({name:P(),roleId:K().min(1,`validation.selectRole`),expiry:Ze(It),scope:Ze([`site`,`network`])}),Z={name:``,roleId:``,expiry:`90`,scope:`site`},Bt=(e,t,n)=>{let r=wt(),i=I({resolver:F(zt),defaultValues:Z}),{reset:a}=i;return(0,X.useEffect)(()=>{e&&a(Z)},[e,a]),{form:i,onSubmit:i.handleSubmit(async({name:e,roleId:i,expiry:o,scope:s})=>{let c=s===`network`&&n(i),l=await L(r.mutateAsync({name:e,roleId:i,expiresAt:Rt(o),network:c}));l.ok&&(a(Z),t(l.value))}),createToken:r}},Vt=({open:e,onOpenChange:t,onCreated:n,onCloseAutoFocus:r})=>{let{t:i}=x(),a=kt(),{data:o}=m(),s=o?.networkPermissions.includes(`users.manage`)??!1,c=e=>s&&a.data?.find(t=>t.id===e)?.kind===`admin`,{form:l,onSubmit:u,createToken:d}=Bt(e,n,c),f=Ke({control:l.control,name:`roleId`}),p=[{value:`site`,label:i(`apiTokens.scopeSite`,{name:o?.site.name??``}),description:i(`apiTokens.scopeSiteDescription`)},{value:`network`,label:i(`apiTokens.scopeNetwork`),description:i(`apiTokens.scopeNetworkDescription`)}],h=(a.data??[]).map(e=>({value:e.id,label:e.name})),g=It.map(e=>({value:e,label:e===`never`?i(`apiTokens.expiryNever`):i(`apiTokens.expiryDays`,{count:Number(e)})}));return(0,Y.jsxs)(St,{open:e,onOpenChange:t,size:`md`,...r?{onCloseAutoFocus:r}:{},title:i(`apiTokens.createTitle`),dirty:l.formState.isDirty,pending:d.isPending,submitLabel:i(`common.create`),pendingLabel:i(`common.saving`),onSubmit:e=>void u(e),children:[(0,Y.jsx)(N,{control:l.control,name:`name`,label:i(`apiTokens.name`),autoComplete:`off`}),(0,Y.jsx)(Ct,{control:l.control,name:`roleId`,label:i(`apiTokens.role`),options:h}),c(f)?(0,Y.jsx)(et,{control:l.control,name:`scope`,legend:i(`apiTokens.scope`),options:p}):null,(0,Y.jsx)(Ct,{control:l.control,name:`expiry`,label:i(`apiTokens.expiry`),options:g}),(0,Y.jsx)(k,{error:d.error??a.error})]})},Ht=({tokens:e,roleNames:t,draftRoleIds:n,siteName:r,onRevoke:i})=>{let{t:a}=x();return(0,Y.jsx)(W,{children:(0,Y.jsxs)(G,{children:[(0,Y.jsx)(R,{children:(0,Y.jsxs)(H,{children:[(0,Y.jsx)(B,{children:a(`apiTokens.name`)}),(0,Y.jsx)(B,{children:a(`apiTokens.prefix`)}),(0,Y.jsx)(B,{children:a(`apiTokens.role`)}),(0,Y.jsx)(B,{children:a(`apiTokens.appliesTo`)}),(0,Y.jsx)(B,{children:a(`apiTokens.status`)}),(0,Y.jsx)(B,{children:a(`apiTokens.lastUsed`)}),(0,Y.jsx)(B,{children:a(`apiTokens.expires`)}),(0,Y.jsx)(B,{children:(0,Y.jsx)(`span`,{className:`sr-only`,children:a(`common.actions`)})})]})}),(0,Y.jsx)(V,{children:e.map(e=>(0,Y.jsxs)(H,{children:[(0,Y.jsx)(U,{children:(0,Y.jsx)(w,{children:e.name})}),(0,Y.jsx)(U,{className:`font-mono text-xs`,children:`${e.tokenPrefix}…`}),(0,Y.jsx)(U,{children:(0,Y.jsxs)(`span`,{className:`flex items-center gap-2`,children:[t.get(e.roleId)??a(`common.unknown`),n.has(e.roleId)?(0,Y.jsx)(y,{tone:`warning`,size:`sm`,label:a(`apiTokens.draftsChip`)}):null]})}),(0,Y.jsx)(U,{children:e.siteId===null?a(`sites.everySite`):r}),(0,Y.jsx)(U,{children:e.revokedAt?(0,Y.jsx)(y,{tone:`muted`,label:a(`apiTokens.revokedBadge`)}):(0,Y.jsx)(y,{tone:`success`,label:a(`apiTokens.active`)})}),(0,Y.jsx)(U,{title:C(e.lastUsedAt)||void 0,children:e.lastUsedAt?S(e.lastUsedAt):a(`common.never`)}),(0,Y.jsx)(U,{children:e.expiresAt?C(e.expiresAt):a(`common.never`)}),(0,Y.jsx)(U,{className:`text-right`,children:e.revokedAt?null:(0,Y.jsx)(A,{tone:`danger`,title:a(`apiTokens.revokeTitle`,{name:e.name}),description:a(`apiTokens.revokeDescription`),confirmLabel:a(`common.revoke`),onConfirm:()=>i(e),trigger:(0,Y.jsx)(O,{variant:`outline`,size:`sm`,"aria-label":`${a(`common.revoke`)}: ${e.name}`,children:a(`common.revoke`)})})})]},e.id))})]})})},Ut=()=>{let{t:e}=x(),t=Et(),{names:n}=Dt(),{draftRoleIds:r}=Ot(),i=m().data?.site.name??``,a=Tt(),[o,s]=(0,X.useState)(!1),[c,l]=(0,X.useState)(void 0),u=async t=>{await a.mutateAsync(t.id),E.success(e(`apiTokens.revoked`))},d=(0,Y.jsxs)(O,{onClick:()=>s(!0),children:[(0,Y.jsx)(He,{"aria-hidden":`true`}),e(`apiTokens.create`)]});return(0,Y.jsxs)(_,{width:`full`,children:[(0,Y.jsx)(v,{title:e(`apiTokens.title`),actions:d}),c?(0,Y.jsx)(At,{title:e(`apiTokens.secretTitle`),description:e(`apiTokens.secretDescription`),label:e(`apiTokens.secretLabel`),secret:c,dismissLabel:e(`apiTokens.secretDone`),onDismiss:()=>l(void 0)}):null,(0,Y.jsx)(q,{query:t,isEmpty:e=>e.length===0,empty:(0,Y.jsx)(b,{icon:Ne,title:e(`apiTokens.empty`),description:e(`apiTokens.emptyDescription`),action:d}),children:e=>(0,Y.jsx)(Ht,{tokens:e,roleNames:n,draftRoleIds:r,siteName:i,onRevoke:u})}),(0,Y.jsx)(Vt,{open:o,onOpenChange:s,onCreated:e=>{l(e.token),s(!1)},onCloseAutoFocus:e=>c!==void 0&&e.preventDefault()})]})},Wt=()=>{let{t:e}=x(),{looks:t,selectedLook:n,selectLook:r}=ze();return(0,Y.jsxs)(_,{width:`full`,children:[(0,Y.jsx)(v,{title:e(`appearance.title`)}),(0,Y.jsx)(J,{title:e(`appearance.theme`),description:e(`appearance.storedHere`),children:(0,Y.jsx)(Ue,{"aria-label":e(`appearance.theme`),value:n,onValueChange:r,className:`sm:grid-cols-2 xl:grid-cols-3`,children:t.map(e=>(0,Y.jsx)(_t,{value:e.value,label:e.name,description:e.description,media:(0,Y.jsx)(Re,{themeKey:e.themeKey,variant:e.variant,size:`lg`})},e.value))})})]})},Gt=()=>{let{t:e}=x(),t=(0,X.useId)(),[n,r]=(0,X.useState)(``),[i,a]=(0,X.useState)(``),o=ut(),s=n.trim()!==``&&i.trim()!==``;return(0,Y.jsx)(J,{title:e(`assist.settings.tryIt`),titleAs:`h2`,children:(0,Y.jsxs)(`form`,{className:`space-y-4`,onSubmit:e=>{e.preventDefault(),s&&o.mutate({text:n.trim(),instruction:i.trim()})},children:[(0,Y.jsxs)(`div`,{className:`space-y-2`,children:[(0,Y.jsx)(ye,{htmlFor:`${t}-text`,children:e(`assist.settings.tryText`)}),(0,Y.jsx)(ht,{id:`${t}-text`,value:n,rows:3,maxLength:dt,onChange:e=>r(e.target.value)})]}),(0,Y.jsxs)(`div`,{className:`space-y-2`,children:[(0,Y.jsx)(ye,{htmlFor:`${t}-instruction`,children:e(`assist.rewrite.instruction`)}),(0,Y.jsx)(ve,{id:`${t}-instruction`,value:i,maxLength:500,placeholder:e(`assist.rewrite.instructionPlaceholder`),onChange:e=>a(e.target.value)})]}),(0,Y.jsx)(mt,{error:o.error}),(0,Y.jsx)(`div`,{className:`flex justify-end`,children:(0,Y.jsx)(pt,{type:`submit`,variant:`default`,size:`default`,pending:o.isPending,pendingLabel:e(`assist.working`),disabled:!s,children:e(`assist.rewrite.run`)})}),(0,Y.jsx)(`div`,{"aria-live":`polite`,children:o.data?(0,Y.jsxs)(`figure`,{className:`space-y-1 rounded-lg border bg-muted/40 p-3`,children:[(0,Y.jsx)(`figcaption`,{className:`text-meta text-muted-foreground`,children:e(`assist.rewrite.proposal`,{model:o.data.model})}),(0,Y.jsx)(`p`,{className:`text-sm whitespace-pre-wrap`,children:o.data.text})]}):null})]})})},Kt=({usage:e})=>{let{t}=x(),n=[{key:`runs`,label:t(`assist.settings.runs`),value:e.runs},{key:`input`,label:t(`assist.settings.inputTokens`),value:e.inputTokens},{key:`output`,label:t(`assist.settings.outputTokens`),value:e.outputTokens}];return(0,Y.jsx)(J,{title:t(`assist.settings.usage`,{month:re(e.month)}),titleAs:`h2`,children:(0,Y.jsx)(`dl`,{className:`grid gap-4 sm:grid-cols-3`,children:n.map(e=>(0,Y.jsxs)(`div`,{className:`space-y-1`,children:[(0,Y.jsx)(`dt`,{className:`text-meta text-muted-foreground`,children:e.label}),(0,Y.jsx)(`dd`,{className:`text-2xl font-semibold tabular-nums`,children:e.value.toLocaleString()})]},e.key))})})},qt=()=>{let{t:e}=x(),t=lt();return(0,Y.jsxs)(_,{width:`narrow`,children:[(0,Y.jsx)(v,{title:e(`settings.assist`)}),(0,Y.jsx)(q,{query:t,loadingRows:3,children:t=>(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(J,{title:e(`assist.settings.status`),titleAs:`h2`,actions:(0,Y.jsx)(y,{tone:t.enabled?`success`:`muted`,label:t.enabled?e(`assist.settings.on`):e(`assist.settings.off`)}),children:[t.enabled?(0,Y.jsxs)(`dl`,{className:`space-y-2 text-sm`,children:[(0,Y.jsxs)(`div`,{className:`flex justify-between gap-3`,children:[(0,Y.jsx)(`dt`,{className:`text-muted-foreground`,children:e(`assist.settings.provider`)}),(0,Y.jsx)(`dd`,{className:`font-mono`,children:t.provider})]}),(0,Y.jsxs)(`div`,{className:`flex justify-between gap-3`,children:[(0,Y.jsx)(`dt`,{className:`text-muted-foreground`,children:e(`assist.settings.model`)}),(0,Y.jsx)(`dd`,{className:`min-w-0 font-mono break-all`,children:t.model})]})]}):(0,Y.jsx)(`p`,{className:`text-sm`,children:e(`assist.settings.offDescription`)}),(0,Y.jsx)(`p`,{className:`mt-4 text-meta`,children:(0,Y.jsx)(gt,{href:ft,children:e(`assist.settings.guide`)})})]}),t.enabled&&t.usage?(0,Y.jsx)(Kt,{usage:t.usage}):null,t.enabled?(0,Y.jsx)(Gt,{}):null]})})]})},Jt=e=>{let t=e.details?.plan?.impact?.affectedHeads;return typeof t==`number`?t:null},Yt=e=>E.success(D.t(`locales.deleted`,{label:e.label})),Xt=()=>{let e=it(),[t,n]=(0,X.useState)(void 0),[r,i]=(0,X.useState)(!1);return{attempt:async t=>{try{await e.mutateAsync({code:t.code,acknowledged:!1})}catch(r){if(!d(r,`SCHEMA_CHANGE_NOT_ACKNOWLEDGED`))throw r;e.reset(),n({locale:t,affectedHeads:Jt(r)??0}),i(!0);return}Yt(t)},withContent:t,open:r,onOpenChange:i,confirm:()=>{t&&e.mutate({code:t.locale.code,acknowledged:!0},{onSuccess:()=>{Yt(t.locale),i(!1)}})},pending:e.isPending,error:e.error}},Zt=`locale-fallbacks-legend`,Qt=({control:e,locales:t,code:n})=>{let{t:r}=x(),{field:i,fieldState:a}=Ge({control:e,name:`fallbacks`}),[o,s]=(0,X.useState)(``),c=i.value,l=e=>t.find(t=>t.code===e)?.label??e,u=t.filter(e=>e.code!==n&&!c.includes(e.code)),d=(e,t)=>{let n=[...c],[r]=n.splice(e,1);n.splice(t,0,r),i.onChange(n)};return(0,Y.jsxs)(De,{className:`gap-3`,"aria-labelledby":Zt,children:[(0,Y.jsxs)(Oe,{variant:`label`,className:`mb-0 flex items-center gap-1`,children:[(0,Y.jsx)(`span`,{id:Zt,children:r(`locales.fallbacks`)}),(0,Y.jsx)(de,{about:r(`locales.fallbacks`),children:r(`locales.fallbacksHint`)})]}),c.length>0?(0,Y.jsx)(`ol`,{className:`space-y-1`,children:c.map((e,t)=>(0,Y.jsxs)(`li`,{className:`flex items-center gap-2 rounded-lg border py-1 pr-1 pl-3 text-sm`,children:[(0,Y.jsxs)(`span`,{className:`w-5 text-muted-foreground`,children:[t+1,`.`]}),(0,Y.jsxs)(`span`,{className:`flex-1`,children:[l(e),` `,(0,Y.jsx)(`span`,{className:`font-mono text-xs text-muted-foreground`,children:e})]}),(0,Y.jsx)(O,{type:`button`,variant:`ghost`,size:`icon-sm`,"aria-label":r(`locales.moveUp`,{locale:l(e)}),disabled:t===0,onClick:()=>d(t,t-1),children:(0,Y.jsx)(ge,{"aria-hidden":`true`})}),(0,Y.jsx)(O,{type:`button`,variant:`ghost`,size:`icon-sm`,"aria-label":r(`locales.moveDown`,{locale:l(e)}),disabled:t===c.length-1,onClick:()=>d(t,t+1),children:(0,Y.jsx)(me,{"aria-hidden":`true`})}),(0,Y.jsx)(O,{type:`button`,variant:`ghost`,size:`icon-sm`,"aria-label":r(`locales.removeFallback`,{locale:l(e)}),onClick:()=>i.onChange(c.filter(t=>t!==e)),children:(0,Y.jsx)(h,{"aria-hidden":`true`})})]},e))}):(0,Y.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:r(`locales.noFallbacks`)}),u.length>0&&c.length<10?(0,Y.jsxs)(we,{value:o,onValueChange:e=>{i.onChange([...c,e]),s(``)},children:[(0,Y.jsx)(xe,{className:`w-full sm:w-64`,"aria-label":r(`locales.addFallback`),children:(0,Y.jsx)(be,{placeholder:r(`locales.addFallback`)})}),(0,Y.jsx)(Se,{children:u.map(e=>(0,Y.jsxs)(Ce,{value:e.code,children:[e.label,` (`,e.code,`)`]},e.code))})]}):null,(0,Y.jsx)(qe,{message:a.error?.message})]})},$t=z({code:K().trim().min(1,`validation.required`).max(35,`validation.localeCode`).regex(ae,`validation.localeCode`),label:P(),fallbacks:Qe(K())}),en=e=>({code:e?.code??``,label:e?.label??``,fallbacks:e?.fallbacks??[]}),tn=(e,t,n)=>{let r=ot(),i=nt(),a=I({resolver:F($t),defaultValues:en(t)}),{reset:o}=a;(0,X.useEffect)(()=>{e&&(o(en(t)),r.reset(),i.reset())},[e,t,o]);let s=a.handleSubmit(async({code:e,label:a,fallbacks:o})=>{(await L(t?i.mutateAsync({code:t.code,input:{label:a,fallbacks:o}}):r.mutateAsync({code:e,label:a,fallbacks:o}))).ok&&(E.success(D.t(t?`locales.saved`:`locales.created`,{label:a})),n())}),c=t?i:r;return{form:a,onSubmit:s,pending:c.isPending,error:c.error}},nn=({open:e,onOpenChange:t,locale:n,locales:r})=>{let{t:i}=x(),{form:a,onSubmit:o,pending:s,error:c}=tn(e,n,()=>t(!1)),l=a.watch(`code`);return(0,Y.jsxs)(St,{open:e,onOpenChange:t,size:`md`,title:n?i(`locales.editTitle`,{label:n.label}):i(`locales.addTitle`),dirty:a.formState.isDirty,pending:s,submitLabel:i(n?`common.saveChanges`:`locales.add`),pendingLabel:i(`common.saving`),onSubmit:e=>void o(e),children:[(0,Y.jsx)(N,{control:a.control,name:`code`,label:i(`locales.code`),hint:i(`locales.codeHint`),autoComplete:`off`,spellCheck:!1,className:`font-mono`,disabled:n!==void 0}),(0,Y.jsx)(N,{control:a.control,name:`label`,label:i(`locales.label`),autoComplete:`off`}),(0,Y.jsx)(Qt,{control:a.control,locales:r,code:l}),(0,Y.jsx)(k,{error:c})]})},rn=({locale:e,chain:t,canManage:n,onEdit:r,onMakeDefault:i,onDelete:a})=>{let{t:o}=x(),[s,c]=(0,X.useState)(!1);return(0,Y.jsxs)(H,{children:[(0,Y.jsx)(U,{children:(0,Y.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(w,{children:e.label}),e.isDefault?(0,Y.jsx)(ee,{variant:`secondary`,children:o(`locales.default`)}):null]})}),(0,Y.jsx)(U,{className:`font-mono text-xs`,children:e.code}),(0,Y.jsx)(U,{className:`font-mono text-xs`,children:t.length>0?t.join(` → `):o(`common.none`)}),(0,Y.jsx)(U,{className:`text-right`,children:n?(0,Y.jsxs)(Ie,{children:[(0,Y.jsx)(A,{tone:`danger`,open:s,onOpenChange:c,title:o(`locales.deleteTitle`,{label:e.label}),description:o(`locales.deleteDescription`),confirmLabel:o(`common.delete`),pendingLabel:o(`locales.deleting`),onConfirm:()=>a(e),children:(0,Y.jsx)(Pe,{asChild:!0,children:(0,Y.jsx)(O,{variant:`ghost`,size:`icon-sm`,"aria-label":`${o(`common.actions`)}: ${e.label}`,children:(0,Y.jsx)(Ae,{"aria-hidden":`true`})})})}),(0,Y.jsxs)(Fe,{align:`end`,onCloseAutoFocus:e=>s&&e.preventDefault(),children:[(0,Y.jsxs)(M,{onSelect:()=>r(e),children:[(0,Y.jsx)(Ve,{"aria-hidden":`true`}),o(`common.edit`)]}),e.isDefault?null:(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(M,{onSelect:()=>i(e),children:[(0,Y.jsx)(Nt,{"aria-hidden":`true`}),o(`locales.makeDefault`)]}),(0,Y.jsxs)(M,{variant:`destructive`,onSelect:()=>c(!0),children:[(0,Y.jsx)(Ee,{"aria-hidden":`true`}),o(`common.delete`)]})]})]})]}):null})]})},an=({locales:e,canManage:t,onEdit:n,onMakeDefault:r,onDelete:i})=>{let{t:a}=x(),o=e.find(e=>e.isDefault);return(0,Y.jsx)(W,{children:(0,Y.jsxs)(G,{children:[(0,Y.jsx)(R,{children:(0,Y.jsxs)(H,{children:[(0,Y.jsx)(B,{children:a(`locales.label`)}),(0,Y.jsx)(B,{children:a(`locales.code`)}),(0,Y.jsx)(B,{children:a(`locales.fallbacks`)}),(0,Y.jsx)(B,{children:(0,Y.jsx)(`span`,{className:`sr-only`,children:a(`common.actions`)})})]})}),(0,Y.jsx)(V,{children:e.map(e=>(0,Y.jsx)(rn,{locale:e,chain:[...e.fallbacks,...o&&!e.isDefault&&!e.fallbacks.includes(o.code)?[o.code]:[]],canManage:t,onEdit:n,onMakeDefault:r,onDelete:i},e.code))})]})})},on=()=>{let{t:e}=x(),t=at(),n=tt(`schema.create`),r=rt(),i=jt(),a=Xt(),[o,s]=(0,X.useState)({open:!1,locale:void 0}),c=t.data?.find(e=>e.isDefault),l=a.withContent;return(0,Y.jsxs)(_,{width:`full`,children:[(0,Y.jsx)(v,{title:e(`locales.title`),actions:n?(0,Y.jsxs)(O,{onClick:()=>s({open:!0,locale:void 0}),children:[(0,Y.jsx)(He,{"aria-hidden":`true`}),e(`locales.add`)]}):null}),(0,Y.jsx)(q,{query:t,isEmpty:e=>e.length===0,empty:(0,Y.jsx)(b,{icon:Me,title:e(`locales.empty`)}),children:e=>(0,Y.jsx)(an,{locales:e,canManage:n,onEdit:e=>s({open:!0,locale:e}),onMakeDefault:e=>{r.reset(),i.ask(e)},onDelete:a.attempt})}),(0,Y.jsx)(nn,{open:o.open,onOpenChange:e=>s(t=>({...t,open:e})),locale:o.locale,locales:t.data??[]}),(0,Y.jsx)(Te,{open:i.open,onOpenChange:i.onOpenChange,title:e(`locales.defaultTitle`,{label:i.target?.label??``}),description:e(`locales.defaultDescription`,{label:i.target?.label??``,current:c?.label??``}),acknowledgement:e(`locales.defaultAcknowledge`),confirmLabel:e(`locales.makeDefault`),destructive:!0,pending:r.isPending,pendingLabel:e(`common.saving`),error:r.error,onConfirm:()=>{let t=i.target;t&&r.mutate(t.code,{onSuccess:()=>{E.success(e(`locales.defaultChanged`,{label:t.label})),i.close()}})}}),(0,Y.jsx)(Te,{open:a.open,onOpenChange:a.onOpenChange,title:e(`locales.deleteTitle`,{label:l?.locale.label??``}),description:e(`locales.deleteContent`,{count:l?.affectedHeads??0,label:l?.locale.label??``}),acknowledgement:e(`locales.deleteAcknowledge`,{count:l?.affectedHeads??0}),confirmLabel:e(`common.delete`),destructive:!0,pending:a.pending,pendingLabel:e(`locales.deleting`),error:a.error,onConfirm:a.confirm})]})},sn=z({name:P()}),cn=()=>{let{data:e}=m(),t=p(),n=I({resolver:F(sn),defaultValues:{name:e?.user.name??``}}),{reset:r,formState:i}=n,a=e?.user.name;return(0,X.useEffect)(()=>{!i.isDirty&&a!==void 0&&r({name:a})},[a,r,i.isDirty]),{form:n,onSubmit:n.handleSubmit(async e=>{let n=await L(t.mutateAsync(e));n.ok&&(r({name:n.value.name}),E.success(D.t(`profile.detailsSaved`)))}),updateProfile:t,email:e?.user.email??``}},ln=`profile-email`,un=`profile-email-hint`,dn=({onDirtyChange:e})=>{let{t}=x(),{form:n,onSubmit:r,updateProfile:i,email:a}=cn(),{isDirty:o}=n.formState;return(0,X.useEffect)(()=>e(o),[o,e]),(0,Y.jsx)(J,{title:t(`profile.detailsTitle`),children:(0,Y.jsx)(`form`,{noValidate:!0,onSubmit:e=>void r(e),className:`max-w-md`,children:(0,Y.jsxs)(j,{children:[(0,Y.jsx)(N,{control:n.control,name:`name`,label:t(`auth.name`),autoComplete:`name`}),(0,Y.jsxs)(ke,{children:[(0,Y.jsx)($e,{htmlFor:ln,label:t(`auth.email`),hint:t(`profile.emailHint`),hintId:un}),(0,Y.jsx)(ve,{id:ln,value:a,readOnly:!0,"aria-describedby":un})]}),(0,Y.jsx)(k,{error:i.error}),(0,Y.jsx)(`div`,{children:(0,Y.jsx)(g,{pending:i.isPending,pendingLabel:t(`common.saving`),disabled:!o,children:t(`common.saveChanges`)})})]})})})},fn=Je({currentPassword:K().min(1,`validation.required`),password:We()}),pn={currentPassword:``,password:``,confirmPassword:``},mn=()=>{let e=f(),t=I({resolver:F(fn),defaultValues:pn});return{form:t,onSubmit:t.handleSubmit(async({currentPassword:n,password:r})=>{(await L(e.mutateAsync({currentPassword:n,newPassword:r}))).ok&&(t.reset(pn),E.success(D.t(`profile.passwordChanged`)))}),changePassword:e}},hn=({onDirtyChange:e})=>{let{t}=x(),{form:n,onSubmit:r,changePassword:i}=mn(),{isDirty:a}=n.formState;return(0,X.useEffect)(()=>e(a),[a,e]),(0,Y.jsx)(J,{title:t(`profile.passwordTitle`),description:t(`profile.passwordDescription`),children:(0,Y.jsx)(`form`,{noValidate:!0,onSubmit:e=>void r(e),className:`max-w-md`,children:(0,Y.jsxs)(j,{children:[(0,Y.jsx)(N,{control:n.control,name:`currentPassword`,label:t(`profile.currentPassword`),type:`password`,autoComplete:`current-password`}),(0,Y.jsx)(N,{control:n.control,name:`password`,label:t(`auth.newPassword`),description:t(`auth.passwordHint`),type:`password`,autoComplete:`new-password`}),(0,Y.jsx)(N,{control:n.control,name:`confirmPassword`,label:t(`auth.confirmPassword`),type:`password`,autoComplete:`new-password`}),(0,Y.jsx)(k,{error:i.error}),(0,Y.jsx)(`div`,{children:(0,Y.jsx)(g,{pending:i.isPending,pendingLabel:t(`common.saving`),children:t(`profile.changePassword`)})})]})})})},gn=()=>{let{t:e}=x(),[t,n]=(0,X.useState)(!1),[r,i]=(0,X.useState)(!1),a=(0,X.useCallback)(e=>n(e),[]),o=(0,X.useCallback)(e=>i(e),[]);return(0,Y.jsxs)(_,{width:`full`,children:[(0,Y.jsx)(v,{title:e(`profile.title`)}),(0,Y.jsx)(dn,{onDirtyChange:a}),(0,Y.jsx)(hn,{onDirtyChange:o}),(0,Y.jsx)(ie,{when:t||r})]})},Q=`seo-default-image`,_n=`${Q}-hint`,vn=`${Q}-error`,yn=({control:e,imagePrivate:t})=>{let{t:n}=x(),{field:r,fieldState:i}=Ge({control:e,name:`imageId`}),a=t?n(`seo.settings.imagePrivate`):i.error?.message,{canWrite:o}=je(),s=ct(),c=async()=>{let e=(await s.pickMedia({multiple:!1,allowedKinds:[`image`]}))?.[0];e&&r.onChange(e.id)};return(0,Y.jsxs)(ke,{"data-invalid":a?!0:void 0,children:[(0,Y.jsx)($e,{htmlFor:Q,label:n(`seo.settings.image`),hint:n(`seo.settings.imageHint`),hintId:_n}),r.value?(0,Y.jsx)(`ul`,{children:(0,Y.jsx)(_e,{assetId:r.value,inputId:Q,index:0,count:1,editable:!0,canEditAlt:o,onRemove:()=>r.onChange(null)})}):null,(0,Y.jsx)(`div`,{children:(0,Y.jsxs)(O,{id:Q,type:`button`,variant:`outline`,size:`sm`,"aria-describedby":Ye(_n,a?vn:void 0),onClick:()=>void c(),children:[(0,Y.jsx)(he,{"aria-hidden":`true`}),r.value?n(`seo.settings.changeImage`):n(`seo.settings.chooseImage`)]})}),(0,Y.jsx)(qe,{id:a?vn:void 0,message:a}),s.dialog]})},bn=200,xn=1e3,$=e=>K().trim().max(e,`validation.tooLong`),Sn=z({siteName:$(bn),titleTemplate:$(bn).refine(e=>e===``||se(e),`validation.titleTemplate`),description:$(xn)}),Cn=z({locales:Xe(K(),Sn),imageId:K().nullable(),twitterHandle:K().trim().refine(e=>e===``||oe.test(e),`validation.twitterHandle`)}),wn={siteName:``,titleTemplate:``,description:``},Tn=(e,t)=>{let n=[...new Set([...t.map(e=>e.code),...Object.keys(e.locales)])];return{locales:Object.fromEntries(n.map(t=>[t,{...wn,...e.locales[t]}])),imageId:e.imageId,twitterHandle:e.twitterHandle??``}},En=e=>{let t={};for(let[n,r]of Object.entries(e.locales)){let e=Object.fromEntries(Object.entries(r).map(([e,t])=>[e,t.trim()]).filter(([,e])=>e!==``));Object.keys(e).length>0&&(t[n]=e)}let n=e.twitterHandle.trim();return{locales:t,imageId:e.imageId,twitterHandle:n===``?null:n}},Dn=e=>Object.keys(e.locales??{})[0],On=`SEO_IMAGE_INVALID`,kn=(e,t)=>{let n=s(),r=ue(),i=t.find(e=>e.isDefault)?.code??t[0]?.code??``,[a,o]=(0,X.useState)(i),[c,f]=(0,X.useState)(e.version),p=I({resolver:F(Cn),defaultValues:Tn(e.seo,t)}),m=Ke({control:p.control,name:`imageId`}),h=l(m??void 0),g=m!==null&&h.data?.visibility===`private`,{clearErrors:_}=p;(0,X.useEffect)(()=>_(`imageId`),[m,_]);let v=async()=>{try{let e=await n.fetchQuery({...le,staleTime:0});p.reset(Tn(e.seo,t)),f(e.version)}catch(e){fe(e,`reloading the SEO settings`)}};return{form:p,locale:a,setLocale:o,imagePrivate:g,pending:r.isPending,onSubmit:p.handleSubmit(async e=>{if(!g)try{let n=await r.mutateAsync({expectedVersion:c,seo:En(e)});p.reset(Tn(n.seo,t)),f(n.version),E.success(D.t(`seo.settings.saved`))}catch(e){if(u(e)){E.error(D.t(`seo.settings.conflict`),{action:{label:D.t(`seo.settings.reload`),onClick:()=>void v()}});return}if(d(e,On)){p.setError(`imageId`,{message:pe(e)},{shouldFocus:!1});return}E.error(pe(e))}},e=>{let t=Dn(e);t!==void 0&&o(t)})}},An=({control:e,locales:t,locale:n,onLocaleChange:r})=>{let{t:i}=x();return(0,Y.jsx)(J,{title:i(`seo.settings.textsTitle`),titleAs:`h2`,actions:t.length>1?(0,Y.jsx)(st,{locales:t,value:n,onChange:r,size:`sm`}):null,children:(0,Y.jsxs)(j,{className:`max-w-xl`,children:[(0,Y.jsx)(N,{control:e,name:`locales.${n}.siteName`,label:i(`seo.settings.siteName`),hint:i(`seo.settings.siteNameHint`)}),(0,Y.jsx)(N,{control:e,name:`locales.${n}.titleTemplate`,label:i(`seo.settings.titleTemplate`),hint:i(`seo.settings.titleTemplateHint`),placeholder:i(`seo.settings.titleTemplatePlaceholder`)}),(0,Y.jsx)(vt,{control:e,name:`locales.${n}.description`,label:i(`seo.settings.description`),hint:i(`seo.settings.descriptionHint`),rows:3})]},n)})},jn=({siteSeo:e,locales:t})=>{let{t:n}=x(),{form:r,locale:i,setLocale:a,imagePrivate:o,pending:s,onSubmit:c}=kn(e,t),{isDirty:l}=r.formState;return(0,Y.jsxs)(`form`,{noValidate:!0,onSubmit:e=>void c(e),className:`space-y-6`,children:[(0,Y.jsx)(ie,{when:l}),(0,Y.jsx)(An,{control:r.control,locales:t,locale:i,onLocaleChange:a}),(0,Y.jsx)(J,{title:n(`seo.settings.socialTitle`),titleAs:`h2`,children:(0,Y.jsxs)(j,{className:`max-w-xl`,children:[(0,Y.jsx)(yn,{control:r.control,imagePrivate:o}),(0,Y.jsx)(N,{control:r.control,name:`twitterHandle`,label:n(`seo.settings.twitterHandle`),hint:n(`seo.settings.twitterHandleHint`),placeholder:n(`seo.settings.twitterHandlePlaceholder`),autoComplete:`off`})]})}),(0,Y.jsx)(`div`,{children:(0,Y.jsx)(g,{pending:s,pendingLabel:n(`common.saving`),disabled:!l||o,children:n(`common.saveChanges`)})})]})},Mn=()=>{let{t:e}=x(),t=ce(),n=at();return(0,Y.jsxs)(_,{width:`full`,children:[(0,Y.jsx)(v,{title:e(`seo.settings.title`)}),(0,Y.jsx)(q,{query:t,loadingRows:4,children:e=>(0,Y.jsx)(q,{query:n,loadingRows:4,children:t=>(0,Y.jsx)(jn,{siteSeo:e,locales:t})})})]})},Nn=()=>o({queryKey:i.sessions,queryFn:()=>c.sessions.list(),meta:{silent:!0}}),Pn=()=>{let e=s();return r({mutationKey:[`sessions`,`revoke`],mutationFn:e=>a(()=>c.sessions.revoke(e)),onSettled:()=>e.invalidateQueries({queryKey:i.sessions})})},Fn=[[/Edg\//,`Edge`],[/OPR\//,`Opera`],[/Firefox\//,`Firefox`],[/Chrome\//,`Chrome`],[/Safari\//,`Safari`]],In=[[/iPhone|iPad/,`iOS`],[/Android/,`Android`],[/Mac OS X|Macintosh/,`macOS`],[/Windows/,`Windows`],[/Linux/,`Linux`]],Ln=(e,t)=>t.find(([t])=>t.test(e))?.[1],Rn=e=>{if(!e)return;let t=Ln(e,Fn),n=Ln(e,In);return t&&n?`${t} · ${n}`:t??n},zn=({sessions:e,onRevoke:t})=>{let{t:n}=x();return(0,Y.jsx)(W,{children:(0,Y.jsxs)(G,{children:[(0,Y.jsx)(R,{children:(0,Y.jsxs)(H,{children:[(0,Y.jsx)(B,{children:n(`sessions.device`)}),(0,Y.jsx)(B,{children:n(`sessions.ipAddress`)}),(0,Y.jsx)(B,{children:n(`sessions.signedIn`)}),(0,Y.jsx)(B,{children:n(`sessions.lastActive`)}),(0,Y.jsx)(B,{children:(0,Y.jsx)(`span`,{className:`sr-only`,children:n(`common.actions`)})})]})}),(0,Y.jsx)(V,{children:e.map(e=>(0,Y.jsxs)(H,{children:[(0,Y.jsx)(U,{children:(0,Y.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(w,{children:Rn(e.userAgent)??n(`sessions.unknownDevice`)}),e.current?(0,Y.jsx)(ee,{variant:`secondary`,children:n(`sessions.current`)}):null]})}),(0,Y.jsx)(U,{className:`font-mono text-xs`,children:e.ip??n(`common.unknown`)}),(0,Y.jsx)(U,{title:C(e.createdAt),children:S(e.createdAt)}),(0,Y.jsx)(U,{title:C(e.lastSeenAt),children:S(e.lastSeenAt)}),(0,Y.jsx)(U,{className:`text-right`,children:e.current?null:(0,Y.jsx)(A,{tone:`danger`,title:n(`sessions.revokeTitle`),description:n(`sessions.revokeDescription`),confirmLabel:n(`common.revoke`),onConfirm:()=>t(e),trigger:(0,Y.jsx)(O,{variant:`outline`,size:`sm`,children:n(`common.revoke`)})})})]},e.id))})]})})},Bn={settings:T(`/app/settings`)({component:Ft}),profile:T(`/app/settings/profile`)({component:gn}),sessions:T(`/app/settings/sessions`)({component:()=>{let{t:e}=x(),t=Nn(),n=Pn(),r=async t=>{await n.mutateAsync(t.id),E.success(e(`sessions.revoked`))};return(0,Y.jsxs)(_,{width:`full`,children:[(0,Y.jsx)(v,{title:e(`sessions.title`)}),(0,Y.jsx)(q,{query:t,isEmpty:e=>e.length===0,empty:(0,Y.jsx)(b,{icon:Le,title:e(`sessions.empty`)}),children:e=>(0,Y.jsx)(zn,{sessions:e,onRevoke:r})})]})}}),theme:T(`/app/settings/theme`)({component:Wt}),locales:T(`/app/settings/locales`)({component:on}),seo:T(`/app/settings/seo`)({component:Mn}),assist:T(`/app/settings/assist`)({component:qt}),apiTokens:T(`/app/settings/api-tokens`)({component:Ut})};export{Bn as settingsLazyRoutes};
|
|
2
|
+
//# sourceMappingURL=settings-DRZ33PTg.js.map
|