@weppy/roblox-mcp 2.14.5 → 2.15.0
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 +40 -0
- package/README.md +5 -2
- package/dashboard/dist/assets/{AssetsPage-CNX7DCV_.js → AssetsPage-D3-InAlf.js} +1 -1
- package/dashboard/dist/assets/{ChangelogDetailPage-DLvmebHY.js → ChangelogDetailPage-fmLGEZVO.js} +1 -1
- package/dashboard/dist/assets/{ChangelogPage-0aA43feO.js → ChangelogPage-6KtWInS5.js} +1 -1
- package/dashboard/dist/assets/{ConfirmModal-zVAe5VBr.js → ConfirmModal-DJp4ax33.js} +1 -1
- package/dashboard/dist/assets/ConnectionPage-D375gmxK.js +11 -0
- package/dashboard/dist/assets/{ControlsPage-B2bjY0jv.js → ControlsPage-C7zSLjWc.js} +1 -1
- package/dashboard/dist/assets/{CurrentPlaceScope-DeLb8cR4.js → CurrentPlaceScope-DrtUw6py.js} +1 -1
- package/dashboard/dist/assets/{GameChangeDetail-DCbGMtO_.js → GameChangeDetail-Bd5Hg2ZD.js} +1 -1
- package/dashboard/dist/assets/{InfoLabel-DjHpz03t.js → InfoLabel-HLPMIIL4.js} +1 -1
- package/dashboard/dist/assets/{OverviewPage-BIglETRP.js → OverviewPage-Bmem2hyc.js} +1 -1
- package/dashboard/dist/assets/{PageHeader-D-x0uGJu.js → PageHeader-Cvi0LO4r.js} +1 -1
- package/dashboard/dist/assets/{PlaytestPage-DCKGzlBd.js → PlaytestPage-ChFkixWj.js} +1 -1
- package/dashboard/dist/assets/SettingsPage-v3EWZSAn.js +1 -0
- package/dashboard/dist/assets/{StatusBadge-DqdYVuOn.js → StatusBadge-Cf1Ncow3.js} +1 -1
- package/dashboard/dist/assets/SyncPage-BG7u00IT.js +1 -0
- package/dashboard/dist/assets/SyncPage-sHUpW30U.css +1 -0
- package/dashboard/dist/assets/{Tabs-fJOR1mc6.js → Tabs-2QEkInbt.js} +1 -1
- package/dashboard/dist/assets/{ToolsPage-Bv0CkVUl.js → ToolsPage-DbtQxCAM.js} +1 -1
- package/dashboard/dist/assets/{TooltipText-BAHqtajG.js → TooltipText-1fJvqtMt.js} +1 -1
- package/dashboard/dist/assets/{UiPrimitive-DGkX6nPT.js → UiPrimitive-CsV5QE01.js} +1 -1
- package/dashboard/dist/assets/{UiStudioPage-BOnzb7DH.js → UiStudioPage-ZLA3xIIN.js} +1 -1
- package/dashboard/dist/assets/{WhatsNewPage-CXu_qUFe.js → WhatsNewPage-S4qEx4iN.js} +1 -1
- package/dashboard/dist/assets/{copy-BH9EvKHQ.js → copy-d0x3Roiq.js} +1 -1
- package/dashboard/dist/assets/{index-CkZeRxRT.css → index-BDzb8NjS.css} +1 -1
- package/dashboard/dist/assets/{index-5nAADWD6.js → index-C_exRd2o.js} +151 -55
- package/dashboard/dist/assets/{sample-requests-CCiQt0Pe.js → sample-requests-BRAniRWZ.js} +1 -1
- package/dashboard/dist/assets/{useLiveUptime-CLDBTvFQ.js → useLiveUptime-D0TQTjV7.js} +1 -1
- package/dashboard/dist/assets/useSettings-Ce19GEW2.css +1 -0
- package/dashboard/dist/assets/useSettings-DlZqZGnP.js +1 -0
- package/dashboard/dist/index.html +2 -2
- package/dist/index.js +241 -236
- package/package.json +1 -1
- package/roblox-plugin/WeppyRobloxMCP.rbxm +0 -0
- package/dashboard/dist/assets/ConnectionPage-D8FF2toA.js +0 -11
- package/dashboard/dist/assets/SettingsPage-lgifXJ6E.js +0 -1
- package/dashboard/dist/assets/SyncPage-BbqGQ8N-.js +0 -4
- package/dashboard/dist/assets/SyncPage-BnVXEQel.css +0 -1
- package/dashboard/dist/assets/useSettings-BNH9ENDy.css +0 -1
- package/dashboard/dist/assets/useSettings-_F_53t5J.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as v,m as k,u as G,r as d,j as n}from"./index-5nAADWD6.js";import{C as D}from"./UiPrimitive-DGkX6nPT.js";async function u(t,e){const r=await fetch(`${v}${t}`,e);if(!r.ok){let a=null;try{a=await r.json()}catch{}throw new k(r.status,(a==null?void 0:a.message)??r.statusText,(a==null?void 0:a.error)??null,a)}return r.json()}function S(t){return{headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}}function V(t){return u(`/api/ui-studio/usage?placeId=${t}`)}function X(t,e={}){const r=new URLSearchParams({placeId:String(t)});for(const[a,s]of Object.entries(e))s!=null&&r.set(a,String(s));return u(`/api/ui-studio/requests?${r}`)}function ee(t,e){return u(`/api/ui-studio/requests/${encodeURIComponent(e)}?placeId=${t}`)}function te(t,e){return u("/api/ui-studio/requests",{method:"DELETE",...S({placeId:t,...e})})}function ae(t,e){return u(`/api/ui-studio/snapshots/${encodeURIComponent(e)}?placeId=${t}`,{method:"DELETE"})}function re(t,e){return u("/api/ui-studio/snapshots",{method:"DELETE",...S({placeId:t,...e})})}function se(t,e){const r=new URLSearchParams({placeId:String(t)});if(e)for(const[a,s]of Object.entries(e))s!=null&&r.set(`preview.${a}`,String(s));return u(`/api/ui-studio/cleanup?${r}`)}function ie(t,e){return u("/api/ui-studio/cleanup",{method:"PUT",...S({placeId:t,...e})})}function oe(t){return u(`/api/ui-studio/cleanup/run?placeId=${t}`,{method:"POST"})}function ne(t,e){return u("/api/ui-studio/run",{method:"POST",...S({action:t,params:e})})}const C="_overlay_t66q4_4",A="_dialog_t66q4_15",E="_title_t66q4_28",x="_titleDanger_t66q4_37",U="_message_t66q4_42",H="_cascadeRow_t66q4_50",Z="_actions_t66q4_65",R="_cancelBtn_t66q4_73",w="_confirmBtn_t66q4_95",L="_confirmBtnDanger_t66q4_118",j="_busySpinner_t66q4_125",o={overlay:C,dialog:A,title:E,titleDanger:x,message:U,cascadeRow:H,actions:Z,cancelBtn:R,confirmBtn:w,confirmBtnDanger:L,busySpinner:j};function ue({title:t,message:e,danger:r=!1,cascadeOption:a,confirmLabel:s,busy:i=!1,onConfirm:T,onClose:p}){const{t:h}=G(),[_,g]=d.useState(!1),q=d.useRef(null),y=d.useRef(null);d.useEffect(()=>{var m;(m=q.current)==null||m.focus()},[]),d.useEffect(()=>{const m=l=>{if(l.key==="Escape"&&!i&&!_){p();return}if(l.key==="Tab"&&y.current){const f=Array.from(y.current.querySelectorAll('button:not([disabled]), input:not([disabled]), [tabindex]:not([tabindex="-1"])'));if(f.length===0)return;const b=f[0],I=f[f.length-1];l.shiftKey&&document.activeElement===b?(l.preventDefault(),I.focus()):!l.shiftKey&&document.activeElement===I&&(l.preventDefault(),b.focus())}};return document.addEventListener("keydown",m),()=>document.removeEventListener("keydown",m)},[i,_,p]);const B=async()=>{if(!(_||i)){g(!0);try{await T()}finally{g(!1)}}},M=()=>{!i&&!_&&p()},c=i||_,P=s??h("common.delete","삭제");return n.jsx("div",{className:o.overlay,role:"presentation",onClick:M,children:n.jsxs("div",{ref:y,className:o.dialog,role:"dialog","aria-modal":"true","aria-labelledby":"delete-confirm-title",onClick:m=>m.stopPropagation(),children:[n.jsx("h2",{id:"delete-confirm-title",className:`${o.title} ${r?o.titleDanger:""}`,children:t}),n.jsx("p",{className:o.message,children:e}),a&&n.jsxs("label",{className:o.cascadeRow,children:[n.jsx(D,{checked:a.checked,onChange:m=>a.onChange(m.target.checked),disabled:c}),a.label]}),n.jsxs("div",{className:o.actions,children:[n.jsx("button",{ref:q,className:o.cancelBtn,onClick:p,disabled:c,type:"button",children:h("common.cancel","취소")}),n.jsxs("button",{className:`${o.confirmBtn} ${r?o.confirmBtnDanger:""}`,onClick:()=>void B(),disabled:c,type:"button",children:[c&&n.jsx("span",{className:o.busySpinner,"aria-hidden":"true"}),P]})]})]})})}const z="/dashboard/assets/ui-studio-sample-DrNTD6yi.png",me=z,le={requestCount:6,mutationCount:22,snapshotCount:8,historyBytes:12e3,snapshotBytes:48e4,totalBytes:492e3},_e={mode:"off",cascadeSnapshots:!0},O={sample_req_1:"uiStudio.sample.history.request1.label",sample_req_2:"uiStudio.sample.history.request2.label",sample_req_3:"uiStudio.sample.history.request3.label",sample_req_4:"uiStudio.sample.history.request4.label",sample_req_5:"uiStudio.sample.history.request5.label",sample_req_6:"uiStudio.sample.history.request6.label"},N={sample_mut_1_1:"uiStudio.sample.history.request1.mutation1.diff",sample_mut_1_2:"uiStudio.sample.history.request1.mutation2.diff",sample_mut_1_3:"uiStudio.sample.history.request1.mutation3.diff",sample_mut_1_4:"uiStudio.sample.history.request1.mutation4.diff",sample_mut_1_5:"uiStudio.sample.history.request1.mutation5.diff",sample_mut_2_1:"uiStudio.sample.history.request2.mutation1.diff",sample_mut_2_2:"uiStudio.sample.history.request2.mutation2.diff",sample_mut_2_3:"uiStudio.sample.history.request2.mutation3.diff",sample_mut_2_4:"uiStudio.sample.history.request2.mutation4.diff",sample_mut_3_1:"uiStudio.sample.history.request3.mutation1.diff",sample_mut_3_2:"uiStudio.sample.history.request3.mutation2.diff",sample_mut_4_1:"uiStudio.sample.history.request4.mutation1.diff",sample_mut_4_2:"uiStudio.sample.history.request4.mutation2.diff",sample_mut_4_3:"uiStudio.sample.history.request4.mutation3.diff",sample_mut_4_4:"uiStudio.sample.history.request4.mutation4.diff",sample_mut_4_5:"uiStudio.sample.history.request4.mutation5.diff",sample_mut_4_6:"uiStudio.sample.history.request4.mutation6.diff",sample_mut_5_1:"uiStudio.sample.history.request5.mutation1.diff",sample_mut_6_1:"uiStudio.sample.history.request6.mutation1.diff",sample_mut_6_2:"uiStudio.sample.history.request6.mutation2.diff",sample_mut_6_3:"uiStudio.sample.history.request6.mutation3.diff",sample_mut_6_4:"uiStudio.sample.history.request6.mutation4.diff"},$={BackgroundColor3:"uiStudio.sample.history.detail.backgroundColor",AnchorPoint:"uiStudio.sample.history.detail.anchorPoint",Position:"uiStudio.sample.history.detail.position",Size:"uiStudio.sample.history.detail.size",TextColor3:"uiStudio.sample.history.detail.textColor",TextSize:"uiStudio.sample.history.detail.textSize",BorderSizePixel:"uiStudio.sample.history.detail.borderSize",BorderColor3:"uiStudio.sample.history.detail.borderColor"},K={sample_mut_6_3:"uiStudio.sample.history.request6.mutation3.error",sample_mut_6_4:"uiStudio.sample.history.request6.mutation4.error"},Y=[{requestId:"sample_req_1",label:"HUD 레이아웃 초기 생성",startedAt:"2026-05-03T09:12:00.000Z",closedAt:"2026-05-03T09:12:04.321Z",closeReason:"explicit",ok:!0,affectedPaths:["StarterGui.HUD"],mutationCount:5,beforeSnapshots:{"StarterGui.HUD":null},afterSnapshots:{"StarterGui.HUD":"sample_snap_1"},childMutationIds:["sample_mut_1_1","sample_mut_1_2","sample_mut_1_3","sample_mut_1_4","sample_mut_1_5"]},{requestId:"sample_req_2",label:"Inventory 모달 디자인 업데이트",startedAt:"2026-05-03T10:04:18.000Z",closedAt:"2026-05-03T10:04:22.817Z",closeReason:"idle_timeout",ok:!0,affectedPaths:["StarterGui.Inventory.Modal","StarterGui.Inventory.Modal.Header"],mutationCount:4,beforeSnapshots:{"StarterGui.Inventory.Modal":"sample_snap_1","StarterGui.Inventory.Modal.Header":"sample_snap_1"},afterSnapshots:{"StarterGui.Inventory.Modal":"sample_snap_2","StarterGui.Inventory.Modal.Header":"sample_snap_2"},childMutationIds:["sample_mut_2_1","sample_mut_2_2","sample_mut_2_3","sample_mut_2_4"]},{requestId:"sample_req_3",label:"HUD HealthBar 색상 수정",startedAt:"2026-05-03T11:30:55.000Z",closedAt:"2026-05-03T11:30:57.102Z",closeReason:"context_change",ok:!0,affectedPaths:["StarterGui.HUD.HealthBar"],mutationCount:2,beforeSnapshots:{"StarterGui.HUD.HealthBar":"sample_snap_2"},afterSnapshots:{"StarterGui.HUD.HealthBar":"sample_snap_3"},childMutationIds:["sample_mut_3_1","sample_mut_3_2"]},{requestId:"sample_req_4",label:"Inventory 탭 버튼 터치 타겟 확대",startedAt:"2026-05-03T13:22:11.000Z",closedAt:"2026-05-03T13:22:14.500Z",closeReason:"explicit",ok:!0,affectedPaths:["StarterGui.Inventory.TabBar.TabAll","StarterGui.Inventory.TabBar.TabWeapon","StarterGui.Inventory.TabBar.TabArmor"],mutationCount:6,beforeSnapshots:{"StarterGui.Inventory.TabBar.TabAll":"sample_snap_3","StarterGui.Inventory.TabBar.TabWeapon":"sample_snap_3","StarterGui.Inventory.TabBar.TabArmor":"sample_snap_3"},afterSnapshots:{"StarterGui.Inventory.TabBar.TabAll":"sample_snap_4","StarterGui.Inventory.TabBar.TabWeapon":"sample_snap_4","StarterGui.Inventory.TabBar.TabArmor":"sample_snap_4"},childMutationIds:["sample_mut_4_1","sample_mut_4_2","sample_mut_4_3","sample_mut_4_4","sample_mut_4_5","sample_mut_4_6"]},{requestId:"sample_req_5",label:"Settings 팝업 삭제",startedAt:"2026-05-03T14:45:33.000Z",closedAt:"2026-05-03T14:45:34.290Z",closeReason:"legacy_single",ok:!0,affectedPaths:["StarterGui.Settings"],mutationCount:1,beforeSnapshots:{"StarterGui.Settings":"sample_snap_4"},afterSnapshots:{"StarterGui.Settings":null},childMutationIds:["sample_mut_5_1"]},{requestId:"sample_req_6",label:"HUD 미니맵 컴포넌트 추가",startedAt:"2026-05-03T16:08:47.000Z",closedAt:"2026-05-03T16:08:51.776Z",closeReason:"server_restart",ok:!1,affectedPaths:["StarterGui.HUD.Minimap"],mutationCount:4,beforeSnapshots:{"StarterGui.HUD.Minimap":null},afterSnapshots:{"StarterGui.HUD.Minimap":"sample_snap_5"},childMutationIds:["sample_mut_6_1","sample_mut_6_2","sample_mut_6_3","sample_mut_6_4"]}],F={sample_req_1:[{mutationId:"sample_mut_1_1",requestId:"sample_req_1",ts:"2026-05-03T09:12:00.500Z",command:"manage_ui_create_tree",origin:"ai",targetPath:"StarterGui.HUD",diffSummary:"Frame + HealthBar + StaminaBar 생성",ok:!0,durationMs:312},{mutationId:"sample_mut_1_2",requestId:"sample_req_1",ts:"2026-05-03T09:12:01.000Z",command:"manage_ui_update",origin:"ai",targetPath:"StarterGui.HUD.HealthBar",diffSummary:"BackgroundColor3 → Color3.new(0.2,0.8,0.2)",changeDetails:[{property:"BackgroundColor3",category:"color",label:"배경색",before:{r:36,g:42,b:52},after:{r:51,g:204,b:51}}],ok:!0,durationMs:84},{mutationId:"sample_mut_1_3",requestId:"sample_req_1",ts:"2026-05-03T09:12:01.500Z",command:"manage_ui_update",origin:"ai",targetPath:"StarterGui.HUD.StaminaBar",diffSummary:"BackgroundColor3 → Color3.new(0.1,0.6,1.0)",ok:!0,durationMs:76},{mutationId:"sample_mut_1_4",requestId:"sample_req_1",ts:"2026-05-03T09:12:02.000Z",command:"manage_ui_update",origin:"ai",targetPath:"StarterGui.HUD",diffSummary:"AnchorPoint, Position, Size 설정",changeDetails:[{property:"AnchorPoint",category:"layout",label:"앵커",before:{x:.5,y:.5},after:{x:0,y:0}},{property:"Position",category:"layout",label:"위치",before:{xScale:.5,xOffset:0,yScale:.5,yOffset:0},after:{xScale:0,xOffset:16,yScale:0,yOffset:16}},{property:"Size",category:"size",label:"사이즈",before:{xScale:0,xOffset:240,yScale:0,yOffset:64},after:{xScale:0,xOffset:320,yScale:0,yOffset:80}}],ok:!0,durationMs:91},{mutationId:"sample_mut_1_5",requestId:"sample_req_1",ts:"2026-05-03T09:12:02.500Z",command:"manage_ui_preview",origin:"ai",targetPath:"StarterGui.HUD",diffSummary:"화면 캡처 저장 완료",ok:!0,durationMs:1521}],sample_req_2:[{mutationId:"sample_mut_2_1",requestId:"sample_req_2",ts:"2026-05-03T10:04:18.500Z",command:"manage_ui_update",origin:"ai",targetPath:"StarterGui.Inventory.Modal.Header",diffSummary:"BackgroundColor3 어둡게 조정 (대비 개선)",ok:!0,durationMs:102},{mutationId:"sample_mut_2_2",requestId:"sample_req_2",ts:"2026-05-03T10:04:19.000Z",command:"manage_ui_update",origin:"ai",targetPath:"StarterGui.Inventory.Modal.Header.Title",diffSummary:"TextColor3 → Color3.new(1,1,1), TextSize 16→18",changeDetails:[{property:"TextColor3",category:"color",label:"글자색",before:{r:212,g:222,b:238},after:{r:255,g:255,b:255}},{property:"TextSize",category:"size",label:"글자 크기",before:16,after:18}],ok:!0,durationMs:88},{mutationId:"sample_mut_2_3",requestId:"sample_req_2",ts:"2026-05-03T10:04:19.500Z",command:"manage_ui_update",origin:"ai",targetPath:"StarterGui.Inventory.Modal",diffSummary:"BorderSizePixel 0→2, BorderColor3 설정",changeDetails:[{property:"BorderSizePixel",category:"size",label:"테두리 크기",before:0,after:2},{property:"BorderColor3",category:"color",label:"테두리색",before:{r:86,g:99,b:122},after:{r:255,g:255,b:255}}],ok:!0,durationMs:95},{mutationId:"sample_mut_2_4",requestId:"sample_req_2",ts:"2026-05-03T10:04:20.000Z",command:"manage_ui_preview",origin:"ai",targetPath:"StarterGui.Inventory.Modal",diffSummary:"화면 캡처 저장 완료",ok:!0,durationMs:1802}],sample_req_3:[{mutationId:"sample_mut_3_1",requestId:"sample_req_3",ts:"2026-05-03T11:30:55.500Z",command:"manage_ui_update",origin:"ai",targetPath:"StarterGui.HUD.HealthBar",diffSummary:"BackgroundColor3 → Color3.new(0.9,0.2,0.2) (빨간 계열)",ok:!0,durationMs:80},{mutationId:"sample_mut_3_2",requestId:"sample_req_3",ts:"2026-05-03T11:30:56.000Z",command:"manage_ui_preview",origin:"ai",targetPath:"StarterGui.HUD.HealthBar",diffSummary:"화면 캡처 저장 완료",ok:!0,durationMs:1102}],sample_req_4:[{mutationId:"sample_mut_4_1",requestId:"sample_req_4",ts:"2026-05-03T13:22:11.300Z",command:"manage_ui_update",origin:"ai",targetPath:"StarterGui.Inventory.TabBar.TabAll",diffSummary:"Size {0,64},{0,32} → {0,64},{0,44}",ok:!0,durationMs:78},{mutationId:"sample_mut_4_2",requestId:"sample_req_4",ts:"2026-05-03T13:22:11.700Z",command:"manage_ui_update",origin:"ai",targetPath:"StarterGui.Inventory.TabBar.TabWeapon",diffSummary:"Size {0,64},{0,32} → {0,64},{0,44}",ok:!0,durationMs:71},{mutationId:"sample_mut_4_3",requestId:"sample_req_4",ts:"2026-05-03T13:22:12.100Z",command:"manage_ui_update",origin:"ai",targetPath:"StarterGui.Inventory.TabBar.TabArmor",diffSummary:"Size {0,64},{0,32} → {0,64},{0,44}",ok:!0,durationMs:73},{mutationId:"sample_mut_4_4",requestId:"sample_req_4",ts:"2026-05-03T13:22:12.500Z",command:"manage_ui_update",origin:"ai",targetPath:"StarterGui.Inventory.TabBar.TabConsume",diffSummary:"Size {0,64},{0,32} → {0,64},{0,44}",ok:!0,durationMs:70},{mutationId:"sample_mut_4_5",requestId:"sample_req_4",ts:"2026-05-03T13:22:12.900Z",command:"manage_ui_update",origin:"ai",targetPath:"StarterGui.Inventory.TabBar.TabMisc",diffSummary:"Size {0,64},{0,32} → {0,64},{0,44}",ok:!0,durationMs:72},{mutationId:"sample_mut_4_6",requestId:"sample_req_4",ts:"2026-05-03T13:22:13.300Z",command:"manage_ui_preview",origin:"ai",targetPath:"StarterGui.Inventory.TabBar.TabAll",diffSummary:"화면 캡처 저장 완료",ok:!0,durationMs:1200}],sample_req_5:[{mutationId:"sample_mut_5_1",requestId:"sample_req_5",ts:"2026-05-03T14:45:33.500Z",command:"manage_ui_delete",origin:"ai",targetPath:"StarterGui.Settings",diffSummary:"ScreenGui 제거 (Settings 전용 UI)",ok:!0,durationMs:290}],sample_req_6:[{mutationId:"sample_mut_6_1",requestId:"sample_req_6",ts:"2026-05-03T16:08:47.500Z",command:"manage_ui_create_tree",origin:"ai",targetPath:"StarterGui.HUD.Minimap",diffSummary:"Frame + MapImage + PlayerDot 생성 시도",ok:!0,durationMs:340},{mutationId:"sample_mut_6_2",requestId:"sample_req_6",ts:"2026-05-03T16:08:48.200Z",command:"manage_ui_update",origin:"ai",targetPath:"StarterGui.HUD.Minimap",diffSummary:"Size, Position, BackgroundTransparency 설정",ok:!0,durationMs:84},{mutationId:"sample_mut_6_3",requestId:"sample_req_6",ts:"2026-05-03T16:08:48.900Z",command:"manage_ui_update",origin:"ai",targetPath:"StarterGui.HUD.Minimap.MapImage",diffSummary:"ImageLabel 설정 중 서버 재시작으로 중단",ok:!1,error:"server_restart: connection lost",durationMs:700},{mutationId:"sample_mut_6_4",requestId:"sample_req_6",ts:"2026-05-03T16:08:49.700Z",command:"manage_ui_preview",origin:"ai",targetPath:"StarterGui.HUD.Minimap",diffSummary:"불완전 화면 캡처 저장",ok:!1,error:"partial snapshot: missing layers",durationMs:876}]};function W(t,e){var s;const r=N[e.mutationId],a=K[e.mutationId];return{...e,diffSummary:e.diffSummary&&r?t(r,e.diffSummary):e.diffSummary,error:e.error&&a?t(a,e.error):e.error,changeDetails:(s=e.changeDetails)==null?void 0:s.map(i=>({...i,label:t($[i.property]??"",i.label)}))}}function de(t){const e=Y.map(a=>({...a,label:a.label?t(O[a.requestId]??"",a.label):a.label})),r=Object.fromEntries(Object.entries(F).map(([a,s])=>[a,s.map(i=>W(t,i))]));return{requests:e,mutationsByRequest:r}}export{ue as D,le as S,V as a,_e as b,ne as c,te as d,ae as e,se as f,z as g,re as h,X as i,ee as j,de as k,me as l,oe as r,ie as s};
|
|
1
|
+
import{o as v,m as k,u as G,r as d,j as n}from"./index-C_exRd2o.js";import{C as D}from"./UiPrimitive-CsV5QE01.js";async function u(t,e){const r=await fetch(`${v}${t}`,e);if(!r.ok){let a=null;try{a=await r.json()}catch{}throw new k(r.status,(a==null?void 0:a.message)??r.statusText,(a==null?void 0:a.error)??null,a)}return r.json()}function S(t){return{headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}}function V(t){return u(`/api/ui-studio/usage?placeId=${t}`)}function X(t,e={}){const r=new URLSearchParams({placeId:String(t)});for(const[a,s]of Object.entries(e))s!=null&&r.set(a,String(s));return u(`/api/ui-studio/requests?${r}`)}function ee(t,e){return u(`/api/ui-studio/requests/${encodeURIComponent(e)}?placeId=${t}`)}function te(t,e){return u("/api/ui-studio/requests",{method:"DELETE",...S({placeId:t,...e})})}function ae(t,e){return u(`/api/ui-studio/snapshots/${encodeURIComponent(e)}?placeId=${t}`,{method:"DELETE"})}function re(t,e){return u("/api/ui-studio/snapshots",{method:"DELETE",...S({placeId:t,...e})})}function se(t,e){const r=new URLSearchParams({placeId:String(t)});if(e)for(const[a,s]of Object.entries(e))s!=null&&r.set(`preview.${a}`,String(s));return u(`/api/ui-studio/cleanup?${r}`)}function ie(t,e){return u("/api/ui-studio/cleanup",{method:"PUT",...S({placeId:t,...e})})}function oe(t){return u(`/api/ui-studio/cleanup/run?placeId=${t}`,{method:"POST"})}function ne(t,e){return u("/api/ui-studio/run",{method:"POST",...S({action:t,params:e})})}const C="_overlay_t66q4_4",A="_dialog_t66q4_15",E="_title_t66q4_28",x="_titleDanger_t66q4_37",U="_message_t66q4_42",H="_cascadeRow_t66q4_50",Z="_actions_t66q4_65",R="_cancelBtn_t66q4_73",w="_confirmBtn_t66q4_95",L="_confirmBtnDanger_t66q4_118",j="_busySpinner_t66q4_125",o={overlay:C,dialog:A,title:E,titleDanger:x,message:U,cascadeRow:H,actions:Z,cancelBtn:R,confirmBtn:w,confirmBtnDanger:L,busySpinner:j};function ue({title:t,message:e,danger:r=!1,cascadeOption:a,confirmLabel:s,busy:i=!1,onConfirm:T,onClose:p}){const{t:h}=G(),[_,g]=d.useState(!1),q=d.useRef(null),y=d.useRef(null);d.useEffect(()=>{var m;(m=q.current)==null||m.focus()},[]),d.useEffect(()=>{const m=l=>{if(l.key==="Escape"&&!i&&!_){p();return}if(l.key==="Tab"&&y.current){const f=Array.from(y.current.querySelectorAll('button:not([disabled]), input:not([disabled]), [tabindex]:not([tabindex="-1"])'));if(f.length===0)return;const b=f[0],I=f[f.length-1];l.shiftKey&&document.activeElement===b?(l.preventDefault(),I.focus()):!l.shiftKey&&document.activeElement===I&&(l.preventDefault(),b.focus())}};return document.addEventListener("keydown",m),()=>document.removeEventListener("keydown",m)},[i,_,p]);const B=async()=>{if(!(_||i)){g(!0);try{await T()}finally{g(!1)}}},M=()=>{!i&&!_&&p()},c=i||_,P=s??h("common.delete","삭제");return n.jsx("div",{className:o.overlay,role:"presentation",onClick:M,children:n.jsxs("div",{ref:y,className:o.dialog,role:"dialog","aria-modal":"true","aria-labelledby":"delete-confirm-title",onClick:m=>m.stopPropagation(),children:[n.jsx("h2",{id:"delete-confirm-title",className:`${o.title} ${r?o.titleDanger:""}`,children:t}),n.jsx("p",{className:o.message,children:e}),a&&n.jsxs("label",{className:o.cascadeRow,children:[n.jsx(D,{checked:a.checked,onChange:m=>a.onChange(m.target.checked),disabled:c}),a.label]}),n.jsxs("div",{className:o.actions,children:[n.jsx("button",{ref:q,className:o.cancelBtn,onClick:p,disabled:c,type:"button",children:h("common.cancel","취소")}),n.jsxs("button",{className:`${o.confirmBtn} ${r?o.confirmBtnDanger:""}`,onClick:()=>void B(),disabled:c,type:"button",children:[c&&n.jsx("span",{className:o.busySpinner,"aria-hidden":"true"}),P]})]})]})})}const z="/dashboard/assets/ui-studio-sample-DrNTD6yi.png",me=z,le={requestCount:6,mutationCount:22,snapshotCount:8,historyBytes:12e3,snapshotBytes:48e4,totalBytes:492e3},_e={mode:"off",cascadeSnapshots:!0},O={sample_req_1:"uiStudio.sample.history.request1.label",sample_req_2:"uiStudio.sample.history.request2.label",sample_req_3:"uiStudio.sample.history.request3.label",sample_req_4:"uiStudio.sample.history.request4.label",sample_req_5:"uiStudio.sample.history.request5.label",sample_req_6:"uiStudio.sample.history.request6.label"},N={sample_mut_1_1:"uiStudio.sample.history.request1.mutation1.diff",sample_mut_1_2:"uiStudio.sample.history.request1.mutation2.diff",sample_mut_1_3:"uiStudio.sample.history.request1.mutation3.diff",sample_mut_1_4:"uiStudio.sample.history.request1.mutation4.diff",sample_mut_1_5:"uiStudio.sample.history.request1.mutation5.diff",sample_mut_2_1:"uiStudio.sample.history.request2.mutation1.diff",sample_mut_2_2:"uiStudio.sample.history.request2.mutation2.diff",sample_mut_2_3:"uiStudio.sample.history.request2.mutation3.diff",sample_mut_2_4:"uiStudio.sample.history.request2.mutation4.diff",sample_mut_3_1:"uiStudio.sample.history.request3.mutation1.diff",sample_mut_3_2:"uiStudio.sample.history.request3.mutation2.diff",sample_mut_4_1:"uiStudio.sample.history.request4.mutation1.diff",sample_mut_4_2:"uiStudio.sample.history.request4.mutation2.diff",sample_mut_4_3:"uiStudio.sample.history.request4.mutation3.diff",sample_mut_4_4:"uiStudio.sample.history.request4.mutation4.diff",sample_mut_4_5:"uiStudio.sample.history.request4.mutation5.diff",sample_mut_4_6:"uiStudio.sample.history.request4.mutation6.diff",sample_mut_5_1:"uiStudio.sample.history.request5.mutation1.diff",sample_mut_6_1:"uiStudio.sample.history.request6.mutation1.diff",sample_mut_6_2:"uiStudio.sample.history.request6.mutation2.diff",sample_mut_6_3:"uiStudio.sample.history.request6.mutation3.diff",sample_mut_6_4:"uiStudio.sample.history.request6.mutation4.diff"},$={BackgroundColor3:"uiStudio.sample.history.detail.backgroundColor",AnchorPoint:"uiStudio.sample.history.detail.anchorPoint",Position:"uiStudio.sample.history.detail.position",Size:"uiStudio.sample.history.detail.size",TextColor3:"uiStudio.sample.history.detail.textColor",TextSize:"uiStudio.sample.history.detail.textSize",BorderSizePixel:"uiStudio.sample.history.detail.borderSize",BorderColor3:"uiStudio.sample.history.detail.borderColor"},K={sample_mut_6_3:"uiStudio.sample.history.request6.mutation3.error",sample_mut_6_4:"uiStudio.sample.history.request6.mutation4.error"},Y=[{requestId:"sample_req_1",label:"HUD 레이아웃 초기 생성",startedAt:"2026-05-03T09:12:00.000Z",closedAt:"2026-05-03T09:12:04.321Z",closeReason:"explicit",ok:!0,affectedPaths:["StarterGui.HUD"],mutationCount:5,beforeSnapshots:{"StarterGui.HUD":null},afterSnapshots:{"StarterGui.HUD":"sample_snap_1"},childMutationIds:["sample_mut_1_1","sample_mut_1_2","sample_mut_1_3","sample_mut_1_4","sample_mut_1_5"]},{requestId:"sample_req_2",label:"Inventory 모달 디자인 업데이트",startedAt:"2026-05-03T10:04:18.000Z",closedAt:"2026-05-03T10:04:22.817Z",closeReason:"idle_timeout",ok:!0,affectedPaths:["StarterGui.Inventory.Modal","StarterGui.Inventory.Modal.Header"],mutationCount:4,beforeSnapshots:{"StarterGui.Inventory.Modal":"sample_snap_1","StarterGui.Inventory.Modal.Header":"sample_snap_1"},afterSnapshots:{"StarterGui.Inventory.Modal":"sample_snap_2","StarterGui.Inventory.Modal.Header":"sample_snap_2"},childMutationIds:["sample_mut_2_1","sample_mut_2_2","sample_mut_2_3","sample_mut_2_4"]},{requestId:"sample_req_3",label:"HUD HealthBar 색상 수정",startedAt:"2026-05-03T11:30:55.000Z",closedAt:"2026-05-03T11:30:57.102Z",closeReason:"context_change",ok:!0,affectedPaths:["StarterGui.HUD.HealthBar"],mutationCount:2,beforeSnapshots:{"StarterGui.HUD.HealthBar":"sample_snap_2"},afterSnapshots:{"StarterGui.HUD.HealthBar":"sample_snap_3"},childMutationIds:["sample_mut_3_1","sample_mut_3_2"]},{requestId:"sample_req_4",label:"Inventory 탭 버튼 터치 타겟 확대",startedAt:"2026-05-03T13:22:11.000Z",closedAt:"2026-05-03T13:22:14.500Z",closeReason:"explicit",ok:!0,affectedPaths:["StarterGui.Inventory.TabBar.TabAll","StarterGui.Inventory.TabBar.TabWeapon","StarterGui.Inventory.TabBar.TabArmor"],mutationCount:6,beforeSnapshots:{"StarterGui.Inventory.TabBar.TabAll":"sample_snap_3","StarterGui.Inventory.TabBar.TabWeapon":"sample_snap_3","StarterGui.Inventory.TabBar.TabArmor":"sample_snap_3"},afterSnapshots:{"StarterGui.Inventory.TabBar.TabAll":"sample_snap_4","StarterGui.Inventory.TabBar.TabWeapon":"sample_snap_4","StarterGui.Inventory.TabBar.TabArmor":"sample_snap_4"},childMutationIds:["sample_mut_4_1","sample_mut_4_2","sample_mut_4_3","sample_mut_4_4","sample_mut_4_5","sample_mut_4_6"]},{requestId:"sample_req_5",label:"Settings 팝업 삭제",startedAt:"2026-05-03T14:45:33.000Z",closedAt:"2026-05-03T14:45:34.290Z",closeReason:"legacy_single",ok:!0,affectedPaths:["StarterGui.Settings"],mutationCount:1,beforeSnapshots:{"StarterGui.Settings":"sample_snap_4"},afterSnapshots:{"StarterGui.Settings":null},childMutationIds:["sample_mut_5_1"]},{requestId:"sample_req_6",label:"HUD 미니맵 컴포넌트 추가",startedAt:"2026-05-03T16:08:47.000Z",closedAt:"2026-05-03T16:08:51.776Z",closeReason:"server_restart",ok:!1,affectedPaths:["StarterGui.HUD.Minimap"],mutationCount:4,beforeSnapshots:{"StarterGui.HUD.Minimap":null},afterSnapshots:{"StarterGui.HUD.Minimap":"sample_snap_5"},childMutationIds:["sample_mut_6_1","sample_mut_6_2","sample_mut_6_3","sample_mut_6_4"]}],F={sample_req_1:[{mutationId:"sample_mut_1_1",requestId:"sample_req_1",ts:"2026-05-03T09:12:00.500Z",command:"manage_ui_create_tree",origin:"ai",targetPath:"StarterGui.HUD",diffSummary:"Frame + HealthBar + StaminaBar 생성",ok:!0,durationMs:312},{mutationId:"sample_mut_1_2",requestId:"sample_req_1",ts:"2026-05-03T09:12:01.000Z",command:"manage_ui_update",origin:"ai",targetPath:"StarterGui.HUD.HealthBar",diffSummary:"BackgroundColor3 → Color3.new(0.2,0.8,0.2)",changeDetails:[{property:"BackgroundColor3",category:"color",label:"배경색",before:{r:36,g:42,b:52},after:{r:51,g:204,b:51}}],ok:!0,durationMs:84},{mutationId:"sample_mut_1_3",requestId:"sample_req_1",ts:"2026-05-03T09:12:01.500Z",command:"manage_ui_update",origin:"ai",targetPath:"StarterGui.HUD.StaminaBar",diffSummary:"BackgroundColor3 → Color3.new(0.1,0.6,1.0)",ok:!0,durationMs:76},{mutationId:"sample_mut_1_4",requestId:"sample_req_1",ts:"2026-05-03T09:12:02.000Z",command:"manage_ui_update",origin:"ai",targetPath:"StarterGui.HUD",diffSummary:"AnchorPoint, Position, Size 설정",changeDetails:[{property:"AnchorPoint",category:"layout",label:"앵커",before:{x:.5,y:.5},after:{x:0,y:0}},{property:"Position",category:"layout",label:"위치",before:{xScale:.5,xOffset:0,yScale:.5,yOffset:0},after:{xScale:0,xOffset:16,yScale:0,yOffset:16}},{property:"Size",category:"size",label:"사이즈",before:{xScale:0,xOffset:240,yScale:0,yOffset:64},after:{xScale:0,xOffset:320,yScale:0,yOffset:80}}],ok:!0,durationMs:91},{mutationId:"sample_mut_1_5",requestId:"sample_req_1",ts:"2026-05-03T09:12:02.500Z",command:"manage_ui_preview",origin:"ai",targetPath:"StarterGui.HUD",diffSummary:"화면 캡처 저장 완료",ok:!0,durationMs:1521}],sample_req_2:[{mutationId:"sample_mut_2_1",requestId:"sample_req_2",ts:"2026-05-03T10:04:18.500Z",command:"manage_ui_update",origin:"ai",targetPath:"StarterGui.Inventory.Modal.Header",diffSummary:"BackgroundColor3 어둡게 조정 (대비 개선)",ok:!0,durationMs:102},{mutationId:"sample_mut_2_2",requestId:"sample_req_2",ts:"2026-05-03T10:04:19.000Z",command:"manage_ui_update",origin:"ai",targetPath:"StarterGui.Inventory.Modal.Header.Title",diffSummary:"TextColor3 → Color3.new(1,1,1), TextSize 16→18",changeDetails:[{property:"TextColor3",category:"color",label:"글자색",before:{r:212,g:222,b:238},after:{r:255,g:255,b:255}},{property:"TextSize",category:"size",label:"글자 크기",before:16,after:18}],ok:!0,durationMs:88},{mutationId:"sample_mut_2_3",requestId:"sample_req_2",ts:"2026-05-03T10:04:19.500Z",command:"manage_ui_update",origin:"ai",targetPath:"StarterGui.Inventory.Modal",diffSummary:"BorderSizePixel 0→2, BorderColor3 설정",changeDetails:[{property:"BorderSizePixel",category:"size",label:"테두리 크기",before:0,after:2},{property:"BorderColor3",category:"color",label:"테두리색",before:{r:86,g:99,b:122},after:{r:255,g:255,b:255}}],ok:!0,durationMs:95},{mutationId:"sample_mut_2_4",requestId:"sample_req_2",ts:"2026-05-03T10:04:20.000Z",command:"manage_ui_preview",origin:"ai",targetPath:"StarterGui.Inventory.Modal",diffSummary:"화면 캡처 저장 완료",ok:!0,durationMs:1802}],sample_req_3:[{mutationId:"sample_mut_3_1",requestId:"sample_req_3",ts:"2026-05-03T11:30:55.500Z",command:"manage_ui_update",origin:"ai",targetPath:"StarterGui.HUD.HealthBar",diffSummary:"BackgroundColor3 → Color3.new(0.9,0.2,0.2) (빨간 계열)",ok:!0,durationMs:80},{mutationId:"sample_mut_3_2",requestId:"sample_req_3",ts:"2026-05-03T11:30:56.000Z",command:"manage_ui_preview",origin:"ai",targetPath:"StarterGui.HUD.HealthBar",diffSummary:"화면 캡처 저장 완료",ok:!0,durationMs:1102}],sample_req_4:[{mutationId:"sample_mut_4_1",requestId:"sample_req_4",ts:"2026-05-03T13:22:11.300Z",command:"manage_ui_update",origin:"ai",targetPath:"StarterGui.Inventory.TabBar.TabAll",diffSummary:"Size {0,64},{0,32} → {0,64},{0,44}",ok:!0,durationMs:78},{mutationId:"sample_mut_4_2",requestId:"sample_req_4",ts:"2026-05-03T13:22:11.700Z",command:"manage_ui_update",origin:"ai",targetPath:"StarterGui.Inventory.TabBar.TabWeapon",diffSummary:"Size {0,64},{0,32} → {0,64},{0,44}",ok:!0,durationMs:71},{mutationId:"sample_mut_4_3",requestId:"sample_req_4",ts:"2026-05-03T13:22:12.100Z",command:"manage_ui_update",origin:"ai",targetPath:"StarterGui.Inventory.TabBar.TabArmor",diffSummary:"Size {0,64},{0,32} → {0,64},{0,44}",ok:!0,durationMs:73},{mutationId:"sample_mut_4_4",requestId:"sample_req_4",ts:"2026-05-03T13:22:12.500Z",command:"manage_ui_update",origin:"ai",targetPath:"StarterGui.Inventory.TabBar.TabConsume",diffSummary:"Size {0,64},{0,32} → {0,64},{0,44}",ok:!0,durationMs:70},{mutationId:"sample_mut_4_5",requestId:"sample_req_4",ts:"2026-05-03T13:22:12.900Z",command:"manage_ui_update",origin:"ai",targetPath:"StarterGui.Inventory.TabBar.TabMisc",diffSummary:"Size {0,64},{0,32} → {0,64},{0,44}",ok:!0,durationMs:72},{mutationId:"sample_mut_4_6",requestId:"sample_req_4",ts:"2026-05-03T13:22:13.300Z",command:"manage_ui_preview",origin:"ai",targetPath:"StarterGui.Inventory.TabBar.TabAll",diffSummary:"화면 캡처 저장 완료",ok:!0,durationMs:1200}],sample_req_5:[{mutationId:"sample_mut_5_1",requestId:"sample_req_5",ts:"2026-05-03T14:45:33.500Z",command:"manage_ui_delete",origin:"ai",targetPath:"StarterGui.Settings",diffSummary:"ScreenGui 제거 (Settings 전용 UI)",ok:!0,durationMs:290}],sample_req_6:[{mutationId:"sample_mut_6_1",requestId:"sample_req_6",ts:"2026-05-03T16:08:47.500Z",command:"manage_ui_create_tree",origin:"ai",targetPath:"StarterGui.HUD.Minimap",diffSummary:"Frame + MapImage + PlayerDot 생성 시도",ok:!0,durationMs:340},{mutationId:"sample_mut_6_2",requestId:"sample_req_6",ts:"2026-05-03T16:08:48.200Z",command:"manage_ui_update",origin:"ai",targetPath:"StarterGui.HUD.Minimap",diffSummary:"Size, Position, BackgroundTransparency 설정",ok:!0,durationMs:84},{mutationId:"sample_mut_6_3",requestId:"sample_req_6",ts:"2026-05-03T16:08:48.900Z",command:"manage_ui_update",origin:"ai",targetPath:"StarterGui.HUD.Minimap.MapImage",diffSummary:"ImageLabel 설정 중 서버 재시작으로 중단",ok:!1,error:"server_restart: connection lost",durationMs:700},{mutationId:"sample_mut_6_4",requestId:"sample_req_6",ts:"2026-05-03T16:08:49.700Z",command:"manage_ui_preview",origin:"ai",targetPath:"StarterGui.HUD.Minimap",diffSummary:"불완전 화면 캡처 저장",ok:!1,error:"partial snapshot: missing layers",durationMs:876}]};function W(t,e){var s;const r=N[e.mutationId],a=K[e.mutationId];return{...e,diffSummary:e.diffSummary&&r?t(r,e.diffSummary):e.diffSummary,error:e.error&&a?t(a,e.error):e.error,changeDetails:(s=e.changeDetails)==null?void 0:s.map(i=>({...i,label:t($[i.property]??"",i.label)}))}}function de(t){const e=Y.map(a=>({...a,label:a.label?t(O[a.requestId]??"",a.label):a.label})),r=Object.fromEntries(Object.entries(F).map(([a,s])=>[a,s.map(i=>W(t,i))]));return{requests:e,mutationsByRequest:r}}export{ue as D,le as S,V as a,_e as b,ne as c,te as d,ae as e,se as f,z as g,re as h,X as i,ee as j,de as k,me as l,oe as r,ie as s};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as a}from"./index-
|
|
1
|
+
import{r as a}from"./index-C_exRd2o.js";function c(t){const r=Math.max(0,Math.floor(t/1e3)),n=Math.floor(r/3600),o=Math.floor(r%3600/60),e=Math.floor(r%60);return`${String(n).padStart(2,"0")}:${String(o).padStart(2,"0")}:${String(e).padStart(2,"0")}`}const s=1e3;function i(t){const[r,n]=a.useState(t??null);return a.useEffect(()=>{if(t==null){n(null);return}const o=Date.now();n(t);const e=window.setInterval(()=>{n(t+(Date.now()-o))},s);return()=>{window.clearInterval(e)}},[t]),r}export{c as f,i as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
._page_16202_2{display:flex;flex-direction:column;gap:16px;max-width:820px}._card_16202_10{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:16px 20px}._card_16202_10:focus{outline:none}._card_16202_10:focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 68%,white 8%);outline-offset:3px}._licenseCardTarget_16202_26{scroll-margin-top:18px;box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 24%,transparent)}._licenseCardPro_16202_31{border-color:var(--pro-border);background:linear-gradient(180deg,var(--pro-bg-soft),transparent 28%),var(--bg-card);box-shadow:inset 0 1px #f3d46b2e,0 0 0 1px #8f6f1f24}._dashboardCard_16202_41{scroll-margin-top:18px}._dashboardCardTarget_16202_45{box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 24%,transparent)}._dashboardSettingRow_16202_49{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px}._dashboardSettingCopy_16202_56{display:grid;gap:4px;min-width:0}._dashboardSettingLabel_16202_62{color:var(--text-primary);font-family:var(--font-label);font-size:16px;font-weight:600;line-height:1.4}._dashboardSettingDescription_16202_70,._dashboardSettingMeta_16202_71,._dashboardSaveFeedback_16202_72{font-family:var(--font-label);font-size:12px;line-height:1.5}._dashboardSettingDescription_16202_70{color:var(--text-secondary)}._dashboardSettingMeta_16202_71{color:var(--text-muted)}._dashboardToggleTarget_16202_86{min-width:48px;min-height:44px;justify-content:center}._dashboardDetails_16202_92{display:grid;gap:10px;margin:14px 0 0;padding-top:12px;border-top:1px solid var(--border)}._dashboardDetailRow_16202_100{display:grid;grid-template-columns:112px minmax(0,1fr);gap:12px;align-items:start}._dashboardDetailRow_16202_100 dt,._dashboardDetailRow_16202_100 dd{margin:0}._dashboardDetailRow_16202_100 dt{color:var(--text-muted);font-family:var(--font-label);font-size:11px;line-height:1.5}._dashboardSettingsFilePath_16202_119,._dashboardAgentPrompt_16202_120{display:block;min-width:0;overflow-wrap:anywhere;word-break:break-word;font-size:12px;line-height:1.5}._dashboardSettingsFilePath_16202_119{color:var(--text-secondary);font-family:var(--font-code)}._dashboardAgentPrompt_16202_120{color:var(--text-secondary);font-family:var(--font-label)}._dashboardSaveFeedback_16202_72{min-height:18px;margin:4px 0 0;color:var(--success)}._dashboardSaveFeedbackError_16202_145{color:var(--error)}._cardHeader_16202_150{font-family:var(--font-label);font-weight:500;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin-bottom:12px;display:flex;align-items:center;justify-content:space-between}._cardHeaderActions_16202_163{display:flex;align-items:center;gap:8px}._cardHeaderTitleGroup_16202_169{display:inline-flex;align-items:center;gap:0;min-width:0}._cardHelpButton_16202_176{display:inline-flex;align-items:center;justify-content:flex-start;min-width:44px;min-height:44px;margin:-12px 0;padding:0 0 0 6px;border:1px solid transparent;border-radius:var(--radius-control);background:transparent;color:var(--text-muted);cursor:pointer;transition:border-color var(--transition),color var(--transition),background var(--transition)}._cardHelpButton_16202_176:hover,._cardHelpButton_16202_176[aria-expanded=true]{border-color:var(--border);background:var(--accent-dim);color:var(--text-primary)}._cardHelpButton_16202_176:focus-visible{outline:none;box-shadow:var(--focus-ring)}._validationCard_16202_208{scroll-margin-top:18px}._validationSettingRow_16202_212{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px}._validationSettingCopy_16202_219{display:grid;gap:4px;min-width:0}._validationSettingLabel_16202_225{font-family:var(--font-label);color:var(--text-primary);font-size:16px;font-weight:600;line-height:1.4}._validationSettingStatus_16202_233{font-family:var(--font-code);font-size:12px;color:var(--text-secondary);line-height:1.5}._validationPolicyControl_16202_240{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:120px}._validationToggleTarget_16202_248{min-width:46px;min-height:44px;justify-content:center}._touchTarget44_16202_254{min-width:44px;min-height:44px}._collapseButton_16202_259{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:var(--radius-control);background:var(--bg-secondary);color:var(--text-secondary);font-size:12px;line-height:1;cursor:pointer;transition:border-color var(--transition),color var(--transition),background var(--transition)}._collapseButton_16202_259:hover{border-color:var(--accent);color:var(--text-primary)}._collapseButton_16202_259:focus-visible{outline:none;box-shadow:var(--focus-ring)}._headerBadge_16202_286{display:inline-flex;align-items:center;min-height:20px;font-size:10px;font-weight:400;padding:2px 8px;border-radius:var(--radius-control);border:1px solid var(--border);color:var(--text-muted);text-transform:none;letter-spacing:0}._headerBadgeLive_16202_300{color:var(--success);border-color:var(--success)}._licenseGrid_16202_306{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;font-family:var(--font-code);font-size:13px}._licenseGrid_16202_306 dt{color:var(--text-muted)}._licenseGrid_16202_306 dd{color:var(--text-primary);margin:0}._statusDot_16202_324{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:middle}._statusActive_16202_333{background:var(--success);box-shadow:0 0 4px var(--success)}._statusGrace_16202_338{background:var(--warning);box-shadow:0 0 4px color-mix(in srgb,var(--warning) 70%,transparent)}._statusInactive_16202_343{background:var(--text-muted)}._statusError_16202_347{background:var(--error)}._proBadge_16202_352{color:var(--pro-badge);font-weight:500}._licenseCardPro_16202_31 ._cardHeader_16202_150 span:first-child{color:var(--pro-text)}._licenseCardPro_16202_31 ._licenseGrid_16202_306 dt{color:var(--pro-badge)}._upgradeLink_16202_366{display:inline-block;margin-top:8px;font-family:var(--font-label);font-size:12px;color:var(--accent);cursor:pointer;text-decoration:underline}._upgradeLink_16202_366:hover{opacity:.8}._licenseControls_16202_380{display:flex;flex-direction:column;gap:10px;margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}._licenseControlRow_16202_389{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}._licenseField_16202_396{display:flex;flex-direction:column;gap:6px}._licenseFieldGrow_16202_402{flex:1;min-width:220px}._controlLabel_16202_407{font-family:var(--font-label);font-size:12px;color:var(--text-primary)}._textInput_16202_413{font-family:var(--font-code);font-size:12px;padding:6px 8px;border-radius:var(--radius-control);border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);outline:none;transition:border-color var(--transition)}._textInput_16202_413:focus{border-color:var(--accent)}._textInput_16202_413:focus-visible{box-shadow:var(--focus-ring)}._actionBtn_16202_433{font-family:var(--font-label);font-size:12px;padding:6px 14px;border-radius:var(--radius-control);border:1px solid var(--accent);background:transparent;color:var(--accent);cursor:pointer;transition:background var(--transition),color var(--transition),opacity var(--transition)}._actionBtn_16202_433:hover{background:var(--accent);color:var(--bg-primary)}._actionBtn_16202_433:focus-visible{outline:none;box-shadow:var(--focus-ring)}._actionBtn_16202_433:disabled{opacity:.5;cursor:not-allowed}._licenseMessage_16202_460{margin:0;font-family:var(--font-code);font-size:12px;color:var(--text-secondary)}._licenseNotice_16202_467{margin:12px 0 0;padding:10px 12px;border-radius:8px;border:1px solid var(--border);font-family:var(--font-label);font-size:12px;line-height:1.5}._licenseNoticeInfo_16202_477{color:var(--text-primary);background:color-mix(in srgb,var(--accent) 8%,transparent);border-color:color-mix(in srgb,var(--accent) 28%,var(--border))}._licenseNoticeWarning_16202_483{color:var(--text-primary);background:color-mix(in srgb,var(--warning) 12%,transparent);border-color:color-mix(in srgb,var(--warning) 34%,var(--border))}._licenseNoticeMuted_16202_489{color:var(--text-secondary);background:var(--bg-secondary)}._controlGrid_16202_494{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 16px;margin:0 0 10px;font-family:var(--font-code);font-size:12px}._controlGrid_16202_494 dt{color:var(--text-muted)}._controlGrid_16202_494 dd{min-width:0;margin:0;overflow:hidden;color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap}._controlHint_16202_516{margin:0 0 12px;font-family:var(--font-label);font-size:12px;line-height:1.5;color:var(--text-secondary)}._routingOverview_16202_524{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,34%);align-items:stretch;gap:16px;margin-bottom:12px;padding:12px;border:1px solid var(--border);border-radius:var(--radius-control);background:var(--bg-secondary)}._routingOverviewCopy_16202_536{display:flex;flex-direction:column;gap:5px;min-width:0}._routingEyebrow_16202_543{color:var(--text-muted);font-family:var(--font-label);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}._routingOverviewCopy_16202_536 strong{color:var(--text-primary);font-family:var(--font-label);font-size:14px;font-weight:600;line-height:1.4}._routingOverviewCopy_16202_536 p{margin:0;color:var(--text-secondary);font-family:var(--font-label);font-size:12px;line-height:1.45}._priorityTargetSummary_16202_568{display:grid;align-content:center;gap:4px;min-width:0;padding-left:16px;border-left:1px solid var(--border)}._priorityTargetSummary_16202_568>span:first-child{color:var(--text-muted);font-family:var(--font-label);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}._priorityTargetSummary_16202_568 strong{color:var(--text-primary);font-family:var(--font-code);font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._routingFeedback_16202_596{min-height:18px;text-align:left}._tableWrap_16202_601{overflow-x:auto}._table_16202_601{width:100%;border-collapse:collapse;font-family:var(--font-code);font-size:12px}._routingTargetsTable_16202_612{table-layout:fixed;min-width:720px}._routingActionColumn_16202_617{width:104px}._routingActionSlot_16202_621{box-sizing:border-box;display:flex;align-items:center;min-width:0;min-height:44px}._table_16202_601 th{padding:6px 8px 6px 0;color:var(--text-muted);font-weight:500;text-align:left;border-bottom:1px solid var(--border)}._table_16202_601 td{padding:7px 8px 7px 0;color:var(--text-primary);border-bottom:1px solid color-mix(in srgb,var(--border) 70%,transparent)}._studioRoutingChoiceControl_16202_643{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1fr;align-items:stretch;gap:8px;margin-bottom:12px}._segment_16202_652,._segmentActive_16202_653{display:grid;grid-template-columns:22px minmax(0,1fr);align-items:center;gap:10px;min-height:72px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-control);background:var(--bg-secondary);color:var(--text-secondary);font-family:var(--font-label);cursor:pointer;text-align:left;transition:border-color var(--transition),background var(--transition),color var(--transition),box-shadow var(--transition)}._segmentCopy_16202_674{display:grid;gap:3px;min-width:0}._segmentLabel_16202_680{color:inherit;font-size:14px;font-weight:600;line-height:1.35}._segmentDescription_16202_687{color:var(--text-muted);font-size:11px;font-weight:400;line-height:1.4}._segmentIndicator_16202_694{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border:1px solid var(--border-highlight);border-radius:50%;color:#fff}._segment_16202_652:hover:not(:disabled){border-color:var(--border-highlight);background:var(--accent-dim);color:var(--accent)}._segmentActive_16202_653{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 15%,var(--bg-secondary));color:var(--text-primary);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 55%,transparent)}._segmentActive_16202_653 ._segmentDescription_16202_687{color:var(--text-secondary)}._segmentActive_16202_653 ._segmentIndicator_16202_694{border-color:var(--accent);background:var(--accent)}._segment_16202_652:disabled,._segmentActive_16202_653:disabled{cursor:default;opacity:.55}._routingDisabledReason_16202_733{margin:-4px 0 12px;color:var(--text-muted);font-family:var(--font-label);font-size:12px;line-height:1.45}._routingWarning_16202_741{margin:-2px 0 12px;color:var(--warning-text);font-family:var(--font-label);font-size:12px;line-height:1.45}._monoMuted_16202_749{color:var(--text-secondary)}._copyIconButton_16202_753{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;margin-left:6px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;vertical-align:middle;transition:border-color var(--transition),background var(--transition),color var(--transition)}._copyIconButton_16202_753:hover{color:var(--accent);border-color:var(--border-highlight);background:var(--accent-dim)}._routingBadge_16202_778{display:inline-flex;align-items:center;min-height:22px;padding:0 8px;border:1px solid var(--border-highlight);border-radius:var(--radius-sm);background:var(--accent-dim);color:var(--text-primary);font-family:var(--font-label);font-size:11px;font-weight:600}._routingTargetRadio_16202_792{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:4px 8px;border:1px solid var(--border);border-radius:var(--radius-control);background:transparent;color:var(--text-secondary);font-family:var(--font-label);font-size:11px;font-weight:600;cursor:pointer;transition:border-color var(--transition),background var(--transition),color var(--transition)}._routingTargetRadio_16202_792:hover:not(:disabled),._routingTargetRadioActive_16202_813{border-color:var(--border-highlight);background:var(--accent-dim);color:var(--text-primary)}._routingTargetRadio_16202_792:focus-visible{outline:none;box-shadow:var(--focus-ring)}._routingTargetRadio_16202_792:disabled{cursor:default;opacity:.55}._routingRadioIndicator_16202_829{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border:1px solid var(--border-highlight);border-radius:50%;color:#fff}._routingTargetRadioActive_16202_813 ._routingRadioIndicator_16202_829{border-color:var(--accent);background:var(--accent)}._emptyRow_16202_845{padding:14px 0;color:var(--text-muted);font-family:var(--font-label);text-align:center}@media(max-width:760px){._validationPolicyControl_16202_240{justify-content:flex-end}._routingOverview_16202_524{grid-template-columns:minmax(0,1fr)}._priorityTargetSummary_16202_568{padding-top:10px;padding-left:0;border-top:1px solid var(--border);border-left:none}._studioRoutingChoiceControl_16202_643{grid-template-columns:1fr}._segment_16202_652,._segmentActive_16202_653{width:100%}}@media(max-width:520px){._dashboardSettingRow_16202_49{grid-template-columns:minmax(0,1fr)}._dashboardToggleTarget_16202_86{justify-self:start}._dashboardDetailRow_16202_100{grid-template-columns:minmax(0,1fr);gap:3px}._validationSettingRow_16202_212{grid-template-columns:minmax(0,1fr)}}._settingRow_16202_898{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border);font-size:13px}._settingRow_16202_898:last-child{border-bottom:none}._settingLabel_16202_912{font-family:var(--font-label);color:var(--text-primary);flex:1}._settingControl_16202_919{display:flex;align-items:center;gap:8px;justify-content:flex-end;min-width:112px}._select_16202_928{font-family:var(--font-code);font-size:12px;padding:4px 8px;border-radius:var(--radius-control);border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;outline:none;transition:border-color var(--transition)}._select_16202_928:focus{border-color:var(--accent)}._select_16202_928:focus-visible{box-shadow:var(--focus-ring)}._numberInput_16202_950{font-family:var(--font-code);font-size:12px;padding:4px 8px;border-radius:var(--radius-control);border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);width:80px;outline:none;transition:border-color var(--transition)}._numberInput_16202_950:focus{border-color:var(--accent)}._numberInput_16202_950:focus-visible{box-shadow:var(--focus-ring)}._toggleSwitch_16202_972{position:relative;display:inline-flex;align-items:center;cursor:pointer}._toggleInput_16202_979{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}._toggleTrack_16202_987{position:relative;display:inline-flex;align-items:center;width:46px;height:28px;padding:3px;border-radius:999px;border:1px solid color-mix(in srgb,var(--border) 82%,transparent);background:linear-gradient(180deg,#ffffff08,#fff0),color-mix(in srgb,var(--bg-secondary) 88%,#0b1220 12%);box-shadow:inset 0 1px #ffffff0d,inset 0 0 0 1px #070a122e;transition:background var(--transition),border-color var(--transition),box-shadow var(--transition),transform var(--transition)}._toggleThumb_16202_1009{width:20px;height:20px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#ffffffd1,#ffffff14 45%),linear-gradient(180deg,#f7fbff,#c8d4ea);box-shadow:0 4px 10px #00000047,inset 0 1px #ffffffa6;transform:translate(0);transition:transform var(--transition),background var(--transition),box-shadow var(--transition)}._toggleInput_16202_979:focus-visible+._toggleTrack_16202_987{border-color:color-mix(in srgb,var(--accent) 70%,white 8%);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 24%,transparent),inset 0 1px #ffffff0d}._toggleInput_16202_979:checked+._toggleTrack_16202_987{border-color:color-mix(in srgb,var(--accent) 62%,white 6%);background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 36%,white 4%),color-mix(in srgb,var(--accent) 78%,#1b2640 22%)),var(--accent);box-shadow:inset 0 1px #ffffff29,0 0 16px color-mix(in srgb,var(--accent) 22%,transparent)}._toggleInput_16202_979:checked+._toggleTrack_16202_987 ._toggleThumb_16202_1009{transform:translate(18px);background:radial-gradient(circle at 30% 30%,#ffffffeb,#ffffff1f 42%),linear-gradient(180deg,#fff,#d8e5ff)}._toggleSwitch_16202_972:hover ._toggleTrack_16202_987{border-color:color-mix(in srgb,var(--accent) 38%,var(--border))}._toggleSwitch_16202_972:hover ._toggleInput_16202_979:checked+._toggleTrack_16202_987{box-shadow:inset 0 1px #ffffff29,0 0 20px color-mix(in srgb,var(--accent) 28%,transparent)}._savedIndicator_16202_1058{font-family:var(--font-code);font-size:12px;line-height:1.5;color:var(--success);opacity:1;min-width:56px;text-align:right;white-space:nowrap;transition:opacity .3s ease}._savedIndicatorHidden_16202_1070{opacity:0}._savedIndicatorFailed_16202_1074{color:var(--error)}._dataHistoryIntro_16202_1079{margin:0 0 12px;font-family:var(--font-label);font-size:12px;line-height:1.5;color:var(--text-secondary)}._dataHistoryList_16202_1087{display:flex;flex-direction:column;border-top:1px solid var(--border)}._dataHistoryRow_16202_1093{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid var(--border)}._dataHistoryDetail_16202_1102{padding:12px 14px;border-left:2px solid color-mix(in srgb,var(--accent) 68%,var(--border));border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--bg-secondary) 44%,transparent)}._dataHistoryDetail_16202_1102[hidden]{display:none}._dataHistoryRowExpanded_16202_1113{padding-left:14px;border-left:2px solid color-mix(in srgb,var(--accent) 68%,var(--border));border-bottom-color:transparent;background:var(--accent-dim)}._projectChangesDataHistoryDetail_16202_1120,._uiStudioDataHistoryDetail_16202_1124{padding-top:12px}._dataHistoryMain_16202_1128{min-width:0}._dataHistoryTitle_16202_1132{font-family:var(--font-label);font-size:13px;color:var(--text-primary)}._dataHistoryDescription_16202_1138{margin-top:3px;font-family:var(--font-label);font-size:12px;line-height:1.45;color:var(--text-muted)}._dataHistoryMetric_16202_1146{font-family:var(--font-code);font-size:12px;color:var(--text-secondary);white-space:nowrap}._dataHistoryActions_16202_1153{display:flex;align-items:center;gap:8px}._linkButton_16202_1159,._manageStorageButton_16202_1160,._dangerButton_16202_1161{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;font-family:var(--font-label);font-size:12px;line-height:1;padding:7px 10px;border-radius:var(--radius-control);text-decoration:none;cursor:pointer;transition:background var(--transition),color var(--transition),border-color var(--transition),opacity var(--transition)}._linkButton_16202_1159{color:var(--accent);border:1px solid var(--border);background:transparent}._linkButton_16202_1159:hover{border-color:var(--accent)}._linkButton_16202_1159:focus-visible,._manageStorageButton_16202_1160:focus-visible,._dangerButton_16202_1161:focus-visible{outline:none;box-shadow:var(--focus-ring)}._manageStorageButton_16202_1160{color:var(--text-secondary);border:1px solid var(--border);background:var(--bg-secondary)}._manageStorageButton_16202_1160:hover,._manageStorageButton_16202_1160[aria-expanded=true]{border-color:color-mix(in srgb,var(--accent) 72%,var(--border));background:var(--accent-dim);color:var(--accent)}._manageStorageButton_16202_1160 span{font-family:var(--font-code);font-size:10px}._dangerButton_16202_1161{color:var(--danger-text);border:1px solid var(--danger-border);background:var(--danger-bg)}._dangerButton_16202_1161:hover{border-color:var(--danger);background:var(--danger-hover-bg)}._dangerButton_16202_1161:disabled{opacity:.45;cursor:not-allowed}._inlineStatus_16202_1228{margin:12px 0 0;font-family:var(--font-code);font-size:12px;color:var(--text-secondary)}._projectChangesPanel_16202_1236{display:flex;flex-direction:column;gap:12px;padding:0;color:var(--text-secondary);font-family:var(--font-label);font-size:12px;line-height:1.5}._projectChangesConsoleGrid_16202_1247{display:grid;grid-template-columns:minmax(220px,.75fr) minmax(0,1.25fr);gap:16px;align-items:start}._projectChangesUsageColumn_16202_1254,._projectChangesPolicyColumn_16202_1255{min-width:0}._projectChangesUsageColumn_16202_1254,._projectChangesPolicyColumn_16202_1255{display:flex;flex-direction:column;gap:12px}._projectChangesPanelTitle_16202_1266{margin:0;color:var(--text-primary);font-size:12px;font-weight:600}._projectChangesScope_16202_1273{margin:0;color:var(--text-muted);font-size:12px}._projectChangesUsageBlock_16202_1279{display:flex;flex-direction:column;gap:8px}._projectChangesUsageSummary_16202_1285{color:var(--text-primary);font-family:var(--font-code);font-size:13px;font-weight:600;line-height:1.35;font-variant-numeric:tabular-nums}._projectChangesQuotaRail_16202_1294{display:flex;width:100%;height:6px;overflow:hidden;border:1px solid var(--border);background:var(--bg-card)}._projectChangesSessionRail_16202_1303,._projectChangesContextRail_16202_1304{display:block;height:100%;transition:width var(--transition)}._projectChangesSessionRail_16202_1303{background:var(--accent)}._projectChangesContextRail_16202_1304{background:color-mix(in srgb,var(--accent) 44%,var(--bg-card));border-left:1px solid color-mix(in srgb,var(--bg-card) 72%,transparent)}._projectChangesUsageLegend_16202_1319{display:flex;flex-wrap:wrap;gap:8px 20px;color:var(--text-muted);font-size:12px;font-variant-numeric:tabular-nums}._projectChangesUsageLegend_16202_1319 strong{color:var(--text-secondary);font-family:var(--font-code);font-size:12px;font-weight:500}._projectChangesPolicyFieldset_16202_1335{display:flex;flex-direction:column;gap:8px;min-width:0;margin:0;padding:0;border:none}._projectChangesPolicyFieldset_16202_1335:disabled{opacity:.62}._projectChangesPolicyLegend_16202_1349{padding:0;color:var(--text-secondary);font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}._projectChangesPresetGroup_16202_1358{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}._projectChangesPresetButton_16202_1364{position:relative;min-height:36px;padding:0 10px;border:1px solid var(--border);border-radius:var(--radius-control);background:var(--bg-card);color:var(--text-secondary);font-family:var(--font-label);font-size:11px;cursor:pointer;transition:border-color var(--transition),background var(--transition),color var(--transition)}._projectChangesPresetButton_16202_1364:hover:not(:disabled){border-color:var(--accent);color:var(--text-primary)}._projectChangesPresetButton_16202_1364:focus-visible{outline:none;box-shadow:var(--focus-ring)}._projectChangesPresetButtonActive_16202_1391{border-color:var(--accent);background:var(--accent-dim);color:var(--accent);font-weight:600}._projectChangesActions_16202_1398{display:flex;align-items:center;flex-wrap:wrap;gap:8px}._projectChangesSaveButton_16202_1405,._projectChangesSecondaryButton_16202_1406{position:relative;min-height:36px;padding:0 12px;border-radius:var(--radius-control);font-family:var(--font-label);font-size:11px;cursor:pointer;transition:border-color var(--transition),background var(--transition),color var(--transition),opacity var(--transition)}._projectChangesSaveButton_16202_1405{border:1px solid var(--accent);background:var(--accent);color:var(--button-primary-text);font-weight:600}._projectChangesSecondaryButton_16202_1406{border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary)}._projectChangesSaveButton_16202_1405:hover:not(:disabled){background:var(--accent-hover)}._projectChangesSecondaryButton_16202_1406:hover:not(:disabled){border-color:var(--accent);color:var(--text-primary)}._projectChangesSaveButton_16202_1405:focus-visible,._projectChangesSecondaryButton_16202_1406:focus-visible{outline:none;box-shadow:var(--focus-ring)}._projectChangesSaveButton_16202_1405:disabled,._projectChangesSecondaryButton_16202_1406:disabled{cursor:not-allowed;opacity:.48}._projectChangesPresetButton_16202_1364:after,._projectChangesSaveButton_16202_1405:after,._projectChangesSecondaryButton_16202_1406:after{position:absolute;top:-4px;right:0;bottom:-4px;left:0;content:""}._projectChangesSaved_16202_1463{color:var(--success-text);font-family:var(--font-code);font-size:12px}._projectChangesWarning_16202_1469,._projectChangesError_16202_1470,._projectChangesEmpty_16202_1471{margin:0;font-size:12px}._projectChangesWarning_16202_1469{padding:10px 12px;border:1px solid var(--warning-border);color:var(--warning-text);background:var(--warning-bg)}._projectChangesError_16202_1470{color:var(--error-text)}._projectChangesEmpty_16202_1471{color:var(--text-muted)}._projectChangesLastRun_16202_1491{display:flex;flex-wrap:wrap;gap:4px 8px;padding-top:12px;border-top:1px solid var(--border);color:var(--text-secondary);font-size:12px;font-variant-numeric:tabular-nums}._projectChangesLastRunLabel_16202_1502{color:var(--text-muted);font-weight:600}._coldGrid_16202_1508{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;font-family:var(--font-code);font-size:13px}._coldGrid_16202_1508 dt{color:var(--text-muted)}._coldGrid_16202_1508 dd{color:var(--text-primary);margin:0}._coldHint_16202_1526{margin-top:10px;font-family:var(--font-label);font-size:12px;color:var(--text-muted);font-style:italic}._langRow_16202_1535{display:flex;align-items:center;gap:12px;font-size:13px}._langRow_16202_1535 label{font-family:var(--font-label);color:var(--text-primary)}._loading_16202_1548{color:var(--text-muted);font-family:var(--font-code);font-size:13px;padding:32px 0;text-align:center}._unit_16202_1557{font-family:var(--font-code);font-size:11px;color:var(--text-muted)}@media(max-width:720px){._dataHistoryRow_16202_1093{grid-template-columns:minmax(0,1fr);align-items:stretch}._dataHistoryMetric_16202_1146{white-space:normal}._dataHistoryActions_16202_1153{justify-content:flex-start}._projectChangesDataHistoryDetail_16202_1120{margin-left:0;padding-left:12px;padding-right:12px}._projectChangesPanelHeader_16202_1583{flex-direction:column}._projectChangesConsoleGrid_16202_1247{grid-template-columns:minmax(0,1fr);gap:20px}._projectChangesPresetGroup_16202_1358{grid-template-columns:repeat(2,minmax(0,1fr))}._uiStudioDataHistoryDetail_16202_1124{margin-left:0;padding-left:12px;padding-right:12px}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{f as D,r as n,z as P,D as I,B as k,C as A,G,a as b}from"./index-C_exRd2o.js";const F="_page_16202_2",E="_card_16202_10",M="_licenseCardTarget_16202_26",N="_licenseCardPro_16202_31",U="_dashboardCard_16202_41",W="_dashboardCardTarget_16202_45",x="_dashboardSettingRow_16202_49",O="_dashboardSettingCopy_16202_56",K="_dashboardSettingLabel_16202_62",Q="_dashboardSettingDescription_16202_70",$="_dashboardSettingMeta_16202_71",q="_dashboardSaveFeedback_16202_72",z="_dashboardToggleTarget_16202_86",V="_dashboardDetails_16202_92",J="_dashboardDetailRow_16202_100",X="_dashboardSettingsFilePath_16202_119",Y="_dashboardAgentPrompt_16202_120",Z="_dashboardSaveFeedbackError_16202_145",tt="_cardHeader_16202_150",et="_cardHeaderActions_16202_163",ot="_cardHeaderTitleGroup_16202_169",at="_cardHelpButton_16202_176",nt="_validationCard_16202_208",st="_validationSettingRow_16202_212",rt="_validationSettingCopy_16202_219",it="_validationSettingLabel_16202_225",ct="_validationSettingStatus_16202_233",_t="_validationPolicyControl_16202_240",dt="_validationToggleTarget_16202_248",gt="_touchTarget44_16202_254",lt="_collapseButton_16202_259",ut="_headerBadge_16202_286",ht="_headerBadgeLive_16202_300",pt="_licenseGrid_16202_306",Ct="_statusDot_16202_324",bt="_statusActive_16202_333",yt="_statusGrace_16202_338",St="_statusInactive_16202_343",jt="_statusError_16202_347",mt="_proBadge_16202_352",Lt="_upgradeLink_16202_366",ft="_licenseControls_16202_380",vt="_licenseControlRow_16202_389",Ht="_licenseField_16202_396",Rt="_licenseFieldGrow_16202_402",wt="_controlLabel_16202_407",Tt="_textInput_16202_413",Bt="_actionBtn_16202_433",Dt="_licenseMessage_16202_460",Pt="_licenseNotice_16202_467",It="_licenseNoticeInfo_16202_477",kt="_licenseNoticeWarning_16202_483",At="_licenseNoticeMuted_16202_489",Gt="_controlGrid_16202_494",Ft="_controlHint_16202_516",Et="_routingOverview_16202_524",Mt="_routingOverviewCopy_16202_536",Nt="_routingEyebrow_16202_543",Ut="_priorityTargetSummary_16202_568",Wt="_routingFeedback_16202_596",xt="_tableWrap_16202_601",Ot="_table_16202_601",Kt="_routingTargetsTable_16202_612",Qt="_routingActionColumn_16202_617",$t="_routingActionSlot_16202_621",qt="_studioRoutingChoiceControl_16202_643",zt="_segment_16202_652",Vt="_segmentActive_16202_653",Jt="_segmentCopy_16202_674",Xt="_segmentLabel_16202_680",Yt="_segmentDescription_16202_687",Zt="_segmentIndicator_16202_694",te="_routingDisabledReason_16202_733",ee="_routingWarning_16202_741",oe="_monoMuted_16202_749",ae="_copyIconButton_16202_753",ne="_routingBadge_16202_778",se="_routingTargetRadio_16202_792",re="_routingTargetRadioActive_16202_813",ie="_routingRadioIndicator_16202_829",ce="_emptyRow_16202_845",_e="_settingRow_16202_898",de="_settingLabel_16202_912",ge="_settingControl_16202_919",le="_select_16202_928",ue="_numberInput_16202_950",he="_toggleSwitch_16202_972",pe="_toggleInput_16202_979",Ce="_toggleTrack_16202_987",be="_toggleThumb_16202_1009",ye="_savedIndicator_16202_1058",Se="_savedIndicatorHidden_16202_1070",je="_savedIndicatorFailed_16202_1074",me="_dataHistoryIntro_16202_1079",Le="_dataHistoryList_16202_1087",fe="_dataHistoryRow_16202_1093",ve="_dataHistoryDetail_16202_1102",He="_dataHistoryRowExpanded_16202_1113",Re="_projectChangesDataHistoryDetail_16202_1120",we="_uiStudioDataHistoryDetail_16202_1124",Te="_dataHistoryMain_16202_1128",Be="_dataHistoryTitle_16202_1132",De="_dataHistoryDescription_16202_1138",Pe="_dataHistoryMetric_16202_1146",Ie="_dataHistoryActions_16202_1153",ke="_linkButton_16202_1159",Ae="_manageStorageButton_16202_1160",Ge="_dangerButton_16202_1161",Fe="_inlineStatus_16202_1228",Ee="_projectChangesPanel_16202_1236",Me="_projectChangesConsoleGrid_16202_1247",Ne="_projectChangesUsageColumn_16202_1254",Ue="_projectChangesPolicyColumn_16202_1255",We="_projectChangesPanelTitle_16202_1266",xe="_projectChangesScope_16202_1273",Oe="_projectChangesUsageBlock_16202_1279",Ke="_projectChangesUsageSummary_16202_1285",Qe="_projectChangesQuotaRail_16202_1294",$e="_projectChangesSessionRail_16202_1303",qe="_projectChangesContextRail_16202_1304",ze="_projectChangesUsageLegend_16202_1319",Ve="_projectChangesPolicyFieldset_16202_1335",Je="_projectChangesPolicyLegend_16202_1349",Xe="_projectChangesPresetGroup_16202_1358",Ye="_projectChangesPresetButton_16202_1364",Ze="_projectChangesPresetButtonActive_16202_1391",to="_projectChangesActions_16202_1398",eo="_projectChangesSaveButton_16202_1405",oo="_projectChangesSecondaryButton_16202_1406",ao="_projectChangesSaved_16202_1463",no="_projectChangesWarning_16202_1469",so="_projectChangesError_16202_1470",ro="_projectChangesEmpty_16202_1471",io="_projectChangesLastRun_16202_1491",co="_projectChangesLastRunLabel_16202_1502",_o="_coldGrid_16202_1508",go="_coldHint_16202_1526",lo="_langRow_16202_1535",uo="_loading_16202_1548",ho="_unit_16202_1557",Co={page:F,card:E,licenseCardTarget:M,licenseCardPro:N,dashboardCard:U,dashboardCardTarget:W,dashboardSettingRow:x,dashboardSettingCopy:O,dashboardSettingLabel:K,dashboardSettingDescription:Q,dashboardSettingMeta:$,dashboardSaveFeedback:q,dashboardToggleTarget:z,dashboardDetails:V,dashboardDetailRow:J,dashboardSettingsFilePath:X,dashboardAgentPrompt:Y,dashboardSaveFeedbackError:Z,cardHeader:tt,cardHeaderActions:et,cardHeaderTitleGroup:ot,cardHelpButton:at,validationCard:nt,validationSettingRow:st,validationSettingCopy:rt,validationSettingLabel:it,validationSettingStatus:ct,validationPolicyControl:_t,validationToggleTarget:dt,touchTarget44:gt,collapseButton:lt,headerBadge:ut,headerBadgeLive:ht,licenseGrid:pt,statusDot:Ct,statusActive:bt,statusGrace:yt,statusInactive:St,statusError:jt,proBadge:mt,upgradeLink:Lt,licenseControls:ft,licenseControlRow:vt,licenseField:Ht,licenseFieldGrow:Rt,controlLabel:wt,textInput:Tt,actionBtn:Bt,licenseMessage:Dt,licenseNotice:Pt,licenseNoticeInfo:It,licenseNoticeWarning:kt,licenseNoticeMuted:At,controlGrid:Gt,controlHint:Ft,routingOverview:Et,routingOverviewCopy:Mt,routingEyebrow:Nt,priorityTargetSummary:Ut,routingFeedback:Wt,tableWrap:xt,table:Ot,routingTargetsTable:Kt,routingActionColumn:Qt,routingActionSlot:$t,studioRoutingChoiceControl:qt,segment:zt,segmentActive:Vt,segmentCopy:Jt,segmentLabel:Xt,segmentDescription:Yt,segmentIndicator:Zt,routingDisabledReason:te,routingWarning:ee,monoMuted:oe,copyIconButton:ae,routingBadge:ne,routingTargetRadio:se,routingTargetRadioActive:re,routingRadioIndicator:ie,emptyRow:ce,settingRow:_e,settingLabel:de,settingControl:ge,select:le,numberInput:ue,toggleSwitch:he,toggleInput:pe,toggleTrack:Ce,toggleThumb:be,savedIndicator:ye,savedIndicatorHidden:Se,savedIndicatorFailed:je,dataHistoryIntro:me,dataHistoryList:Le,dataHistoryRow:fe,dataHistoryDetail:ve,dataHistoryRowExpanded:He,projectChangesDataHistoryDetail:Re,uiStudioDataHistoryDetail:we,dataHistoryMain:Te,dataHistoryTitle:Be,dataHistoryDescription:De,dataHistoryMetric:Pe,dataHistoryActions:Ie,linkButton:ke,manageStorageButton:Ae,dangerButton:Ge,inlineStatus:Fe,projectChangesPanel:Ee,projectChangesConsoleGrid:Me,projectChangesUsageColumn:Ne,projectChangesPolicyColumn:Ue,projectChangesPanelTitle:We,projectChangesScope:xe,projectChangesUsageBlock:Oe,projectChangesUsageSummary:Ke,projectChangesQuotaRail:Qe,projectChangesSessionRail:$e,projectChangesContextRail:qe,projectChangesUsageLegend:ze,projectChangesPolicyFieldset:Ve,projectChangesPolicyLegend:Je,projectChangesPresetGroup:Xe,projectChangesPresetButton:Ye,projectChangesPresetButtonActive:Ze,projectChangesActions:to,projectChangesSaveButton:eo,projectChangesSecondaryButton:oo,projectChangesSaved:ao,projectChangesWarning:no,projectChangesError:so,projectChangesEmpty:ro,projectChangesLastRun:io,projectChangesLastRunLabel:co,coldGrid:_o,coldHint:go,langRow:lo,loading:uo,unit:ho};function bo(){const{level:y}=D(),[r,c]=n.useState(null),[S,C]=n.useState(null),[j,l]=n.useState(!1),[m,L]=n.useState(!0),[f,_]=n.useState(!1),[v,g]=n.useState(null),i=y==="disconnected",s=n.useCallback(t=>{t&&C(e=>({...e,...t,maskedKey:t.maskedKey??(e==null?void 0:e.maskedKey),provider:t.provider??(e==null?void 0:e.provider)??"auto"}))},[]),u=n.useCallback(t=>{if(!t){C(null);return}C({...t,provider:t.provider??"auto"})},[]),h=n.useCallback(async()=>{try{return await P()}catch{return null}},[]);n.useEffect(()=>{let t=!1;async function e(){try{const[o,a]=await Promise.all([b.get("/api/dashboard/settings").catch(()=>null),h()]);if(t)return;o&&c(o),a&&s(a)}catch{}finally{t||L(!1)}}return e(),()=>{t=!0}},[h,s]),n.useEffect(()=>{const t=new I;t.connect();const e=t.on("license",o=>{h().then(a=>{if(a){if((o==null?void 0:o.cleared)===!0){u(a);return}s(a)}})});return()=>{e(),t.disconnect()}},[h,s,u]);const d=n.useCallback((t,e)=>{g(t??e)},[]),H=n.useCallback(async t=>{if(i)return!1;if(!t.trim())return g("License key is required."),!1;_(!0);try{const e=await k({licenseKey:t.trim()});return s(e.license),d(e.message,e.ok?"License updated.":"License activation failed."),e.ok}catch{return g("License activation failed."),!1}finally{_(!1)}},[d,i,s]),R=n.useCallback(async()=>{if(!i){_(!0);try{const t=await A();s(t.license),d(t.message,t.ok?"License updated.":"License refresh failed.")}catch{g("License refresh failed.")}finally{_(!1)}}},[d,i,s]),w=n.useCallback(async()=>{if(!i){_(!0);try{const t=await G();u(t.license),d(t.message,t.ok?"License reset.":"License reset failed.")}catch{g("License reset failed.")}finally{_(!1)}}},[d,i,u]),T=n.useCallback(async(t,e)=>{if(!r)return;const o=r.hot[t];c(a=>a&&{...a,hot:{...a.hot,[t]:e}}),l(!0);try{await b.patch("/api/dashboard/settings",{[t]:e})}catch(a){throw c(p=>p&&{...p,hot:{...p.hot,[t]:o}}),a}finally{l(!1)}},[r]),B=n.useCallback(async t=>{if(!r)return;const e=r.dashboard;c(o=>o&&{...o,dashboard:{...o.dashboard,...t}}),l(!0);try{const o=await b.patch("/api/dashboard/preferences",t);c(o)}catch(o){throw c(a=>a&&{...a,dashboard:e}),o}finally{l(!1)}},[r]);return{settings:r,license:S,saving:j,licenseControlsDisabled:i,licenseSubmitting:f,licenseMessage:v,activateLicense:H,refreshLicense:R,resetLicense:w,updateHotSetting:T,updateDashboardPreferences:B,loading:m}}export{Co as s,bo as u};
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<link rel="icon" href="/dashboard/weppy-icon.png" />
|
|
7
7
|
<title>WEPPY Dashboard</title>
|
|
8
|
-
<script type="module" crossorigin src="/dashboard/assets/index-
|
|
9
|
-
<link rel="stylesheet" crossorigin href="/dashboard/assets/index-
|
|
8
|
+
<script type="module" crossorigin src="/dashboard/assets/index-C_exRd2o.js"></script>
|
|
9
|
+
<link rel="stylesheet" crossorigin href="/dashboard/assets/index-BDzb8NjS.css">
|
|
10
10
|
</head>
|
|
11
11
|
<body>
|
|
12
12
|
<div id="root"></div>
|