@weppy/roblox-mcp 2.17.17 → 2.17.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dashboard/dist/assets/{AiPromptExamples-BT5RrshJ.js → AiPromptExamples-D2sS2PSu.js} +1 -1
  3. package/dashboard/dist/assets/{AssetsPage-B91Jd91K.js → AssetsPage-B2qzqnkt.js} +1 -1
  4. package/dashboard/dist/assets/{ChangelogPage-D8QDjq9V.js → ChangelogPage-C5ja0j4I.js} +1 -1
  5. package/dashboard/dist/assets/{ConfirmModal-D2yw01tT.js → ConfirmModal-Bs6DRyDJ.js} +1 -1
  6. package/dashboard/dist/assets/{ConnectionPage-DuE65ANO.js → ConnectionPage-BlX_FCoU.js} +1 -1
  7. package/dashboard/dist/assets/{ControlsPage-Cl2JDzO5.js → ControlsPage-BJrBVm7J.js} +1 -1
  8. package/dashboard/dist/assets/{GameChangeDetail-B-rutxUx.js → GameChangeDetail-BzNOM8NR.js} +1 -1
  9. package/dashboard/dist/assets/{InfoLabel-DfinjjFO.js → InfoLabel-ZcP_cIQR.js} +1 -1
  10. package/dashboard/dist/assets/{OverviewPage-D_R1KBze.js → OverviewPage-B9a6q4Ii.js} +1 -1
  11. package/dashboard/dist/assets/{PageHeader-QiUV3oJs.js → PageHeader-DJRyLHjf.js} +1 -1
  12. package/dashboard/dist/assets/{PlaceSelectOptions-BArB7wnB.js → PlaceSelectOptions-CM4-kAp6.js} +1 -1
  13. package/dashboard/dist/assets/{PlaytestAiPromptExamples-BymEsVMx.js → PlaytestAiPromptExamples-xPI9gFIa.js} +1 -1
  14. package/dashboard/dist/assets/{PlaytestPage-xSVycgy8.js → PlaytestPage-DAmSdhjK.js} +1 -1
  15. package/dashboard/dist/assets/SettingsPage-vFF8B8_s.js +1 -0
  16. package/dashboard/dist/assets/{SyncPage-CMHX43na.js → SyncPage-Bdvcmu3d.js} +1 -1
  17. package/dashboard/dist/assets/{Tabs-Cnh4bdIv.js → Tabs-CKXzr1J0.js} +1 -1
  18. package/dashboard/dist/assets/{TierPromoPanel-DWTUB0jD.js → TierPromoPanel-BKRqAd84.js} +1 -1
  19. package/dashboard/dist/assets/{ToolsPage-BWDGROg9.js → ToolsPage-CIujiMTB.js} +1 -1
  20. package/dashboard/dist/assets/{TooltipText-x86NSn8t.js → TooltipText-3t8YedaH.js} +1 -1
  21. package/dashboard/dist/assets/{UiStudioPage-DruAP3cs.js → UiStudioPage-BDsl75Db.js} +1 -1
  22. package/dashboard/dist/assets/{WhatsNewPage-DdlnBlsD.js → WhatsNewPage-C5UL-0oc.js} +1 -1
  23. package/dashboard/dist/assets/{bot-SjZv9JDp.js → bot-CtZWcMz-.js} +1 -1
  24. package/dashboard/dist/assets/{check-BTcudP1t.js → check-Baab5uf0.js} +1 -1
  25. package/dashboard/dist/assets/{copy-BV32y84n.js → copy-C3LkcanH.js} +1 -1
  26. package/dashboard/dist/assets/{index-B1SnAt0o.js → index-DOEmzpkJ.js} +54 -54
  27. package/dashboard/dist/assets/{rotate-ccw-DFqk1Xmr.js → rotate-ccw-Qw8waJGt.js} +1 -1
  28. package/dashboard/dist/assets/{sample-requests-BxNYwxW0.js → sample-requests-D-1qxdk0.js} +1 -1
  29. package/dashboard/dist/assets/{trash-2-CYsYg3as.js → trash-2-BEuYnkkE.js} +1 -1
  30. package/dashboard/dist/assets/{useLiveUptime-IBRIkiaM.js → useLiveUptime-DqFiew1s.js} +1 -1
  31. package/dashboard/dist/assets/useSettings-B4O8NGPH.js +1 -0
  32. package/dashboard/dist/index.html +1 -1
  33. package/dist/index.js +157 -157
  34. package/package.json +1 -1
  35. package/roblox-plugin/WeppyRobloxMCP.rbxm +0 -0
  36. package/dashboard/dist/assets/SettingsPage-f3RT7b9T.js +0 -1
  37. package/dashboard/dist/assets/useSettings-BiOxUpzD.js +0 -1
@@ -1,4 +1,4 @@
1
- import{f as t}from"./index-B1SnAt0o.js";/**
1
+ import{f as t}from"./index-DOEmzpkJ.js";/**
2
2
  * @license lucide-react v1.8.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1 +1 @@
1
- import{l as v,h as k,u as G,r as d,j as n}from"./index-B1SnAt0o.js";import{C as D}from"./PageHeader-QiUV3oJs.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_1jrww_4",w="_dialog_1jrww_15",A="_title_1jrww_28",E="_titleDanger_1jrww_38",x="_message_1jrww_43",U="_cascadeRow_1jrww_51",H="_actions_1jrww_66",Z="_cancelBtn_1jrww_74",j="_confirmBtn_1jrww_96",R="_confirmBtnDanger_1jrww_119",L="_busySpinner_1jrww_126",o={overlay:C,dialog:w,title:A,titleDanger:E,message:x,cascadeRow:U,actions:H,cancelBtn:Z,confirmBtn:j,confirmBtnDanger:R,busySpinner:L};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),b=d.useRef(null),y=d.useRef(null);d.useEffect(()=>{var m;(m=b.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 q=f[0],I=f[f.length-1];l.shiftKey&&document.activeElement===q?(l.preventDefault(),I.focus()):!l.shiftKey&&document.activeElement===I&&(l.preventDefault(),q.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:b,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{m as v,h as k,u as G,r as d,j as n}from"./index-DOEmzpkJ.js";import{C as D}from"./PageHeader-DJRyLHjf.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_1jrww_4",w="_dialog_1jrww_15",A="_title_1jrww_28",E="_titleDanger_1jrww_38",x="_message_1jrww_43",U="_cascadeRow_1jrww_51",H="_actions_1jrww_66",Z="_cancelBtn_1jrww_74",j="_confirmBtn_1jrww_96",R="_confirmBtnDanger_1jrww_119",L="_busySpinner_1jrww_126",o={overlay:C,dialog:w,title:A,titleDanger:E,message:x,cascadeRow:U,actions:H,cancelBtn:Z,confirmBtn:j,confirmBtnDanger:R,busySpinner:L};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),b=d.useRef(null),y=d.useRef(null);d.useEffect(()=>{var m;(m=b.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 q=f[0],I=f[f.length-1];l.shiftKey&&document.activeElement===q?(l.preventDefault(),I.focus()):!l.shiftKey&&document.activeElement===I&&(l.preventDefault(),q.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:b,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,4 +1,4 @@
1
- import{f as a}from"./index-B1SnAt0o.js";/**
1
+ import{f as a}from"./index-DOEmzpkJ.js";/**
2
2
  * @license lucide-react v1.8.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1 +1 @@
1
- import{u as l,j as a,r as c}from"./index-B1SnAt0o.js";const r="_badge_1ucqq_2",u="_dot_1ucqq_12",_="_online_1ucqq_20",f="_offline_1ucqq_25",d="_idle_1ucqq_30",g="_syncing_1ucqq_34",q="_initializing_1ucqq_35",e={badge:r,dot:u,online:_,offline:f,idle:d,syncing:g,initializing:q},S={online:"status.online",offline:"status.offline",idle:"status.idle",syncing:"status.syncing",initializing:"status.initializing"};function h({status:t}){const{t:n}=l();return a.jsxs("span",{className:e.badge,children:[a.jsx("span",{className:`${e.dot} ${e[t]}`}),n(S[t])]})}function x(t){const n=Math.max(0,Math.floor(t/1e3)),i=Math.floor(n/3600),s=Math.floor(n%3600/60),o=Math.floor(n%60);return`${String(i).padStart(2,"0")}:${String(s).padStart(2,"0")}:${String(o).padStart(2,"0")}`}const m=1e3;function w(t){const[n,i]=c.useState(t??null);return c.useEffect(()=>{if(t==null){i(null);return}const s=Date.now();i(t);const o=window.setInterval(()=>{i(t+(Date.now()-s))},m);return()=>{window.clearInterval(o)}},[t]),n}export{h as S,x as f,w as u};
1
+ import{u as l,j as a,r as c}from"./index-DOEmzpkJ.js";const r="_badge_1ucqq_2",u="_dot_1ucqq_12",_="_online_1ucqq_20",f="_offline_1ucqq_25",d="_idle_1ucqq_30",g="_syncing_1ucqq_34",q="_initializing_1ucqq_35",e={badge:r,dot:u,online:_,offline:f,idle:d,syncing:g,initializing:q},S={online:"status.online",offline:"status.offline",idle:"status.idle",syncing:"status.syncing",initializing:"status.initializing"};function h({status:t}){const{t:n}=l();return a.jsxs("span",{className:e.badge,children:[a.jsx("span",{className:`${e.dot} ${e[t]}`}),n(S[t])]})}function x(t){const n=Math.max(0,Math.floor(t/1e3)),i=Math.floor(n/3600),s=Math.floor(n%3600/60),o=Math.floor(n%60);return`${String(i).padStart(2,"0")}:${String(s).padStart(2,"0")}:${String(o).padStart(2,"0")}`}const m=1e3;function w(t){const[n,i]=c.useState(t??null);return c.useEffect(()=>{if(t==null){i(null);return}const s=Date.now();i(t);const o=window.setInterval(()=>{i(t+(Date.now()-s))},m);return()=>{window.clearInterval(o)}},[t]),n}export{h as S,x as f,w as u};
@@ -0,0 +1 @@
1
+ import{d as k,r as a,s as P,V as A,D as F,W as G,Y as E,Z as M,b as y}from"./index-DOEmzpkJ.js";const U="_page_nev6i_2",W="_card_nev6i_10",N="_licenseCardTarget_nev6i_26",O="_licenseCardPro_nev6i_31",x="_dashboardCard_nev6i_41",V="_dashboardCardTarget_nev6i_45",q="_dashboardSettingRow_nev6i_49",K="_dashboardSettingCopy_nev6i_56",Q="_dashboardSettingLabel_nev6i_62",$="_dashboardSettingDescription_nev6i_70",Y="_dashboardSettingMeta_nev6i_71",Z="_dashboardSaveFeedback_nev6i_72",z="_dashboardToggleTarget_nev6i_86",J="_dashboardDetails_nev6i_92",X="_dashboardDetailRow_nev6i_100",ee="_dashboardSettingsFilePath_nev6i_119",te="_dashboardAgentPrompt_nev6i_120",ne="_dashboardSaveFeedbackError_nev6i_145",oe="_cardHeader_nev6i_150",ae="_cardHeaderActions_nev6i_163",ie="_cardHeaderTitleGroup_nev6i_169",se="_cardHelpButton_nev6i_176",re="_validationCard_nev6i_208",ce="_validationSettingRow_nev6i_212",_e="_validationSettingCopy_nev6i_219",de="_validationSettingLabel_nev6i_225",le="_validationSettingStatus_nev6i_233",ge="_validationPolicyControl_nev6i_240",ue="_validationToggleTarget_nev6i_248",ve="_touchTarget44_nev6i_254",he="_collapseButton_nev6i_259",pe="_headerBadge_nev6i_286",Ce="_headerBadgeLive_nev6i_300",be="_licenseGrid_nev6i_306",ye="_statusDot_nev6i_324",Se="_statusActive_nev6i_333",je="_statusGrace_nev6i_338",me="_statusInactive_nev6i_343",fe="_statusError_nev6i_347",Le="_proBadge_nev6i_352",He="_upgradeLink_nev6i_366",Re="_licenseControls_nev6i_380",we="_licenseControlRow_nev6i_389",Te="_licenseField_nev6i_396",Be="_licenseFieldGrow_nev6i_402",De="_controlLabel_nev6i_407",Ie="_textInput_nev6i_413",ke="_actionBtn_nev6i_433",Pe="_licenseMessage_nev6i_460",Ae="_licenseNotice_nev6i_467",Fe="_licenseNoticeInfo_nev6i_477",Ge="_licenseNoticeWarning_nev6i_483",Ee="_licenseNoticeMuted_nev6i_489",Me="_controlGrid_nev6i_494",Ue="_controlHint_nev6i_516",We="_routingOverview_nev6i_524",Ne="_routingOverviewCopy_nev6i_536",Oe="_routingEyebrow_nev6i_543",xe="_priorityTargetSummary_nev6i_568",Ve="_routingFeedback_nev6i_596",qe="_tableWrap_nev6i_601",Ke="_table_nev6i_601",Qe="_routingTargetsTable_nev6i_612",$e="_routingActionColumn_nev6i_617",Ye="_routingActionSlot_nev6i_621",Ze="_studioRoutingChoiceControl_nev6i_643",ze="_segment_nev6i_652",Je="_segmentActive_nev6i_653",Xe="_segmentCopy_nev6i_674",et="_segmentLabel_nev6i_680",tt="_segmentDescription_nev6i_687",nt="_segmentIndicator_nev6i_694",ot="_routingDisabledReason_nev6i_733",at="_routingWarning_nev6i_741",it="_monoMuted_nev6i_749",st="_copyIconButton_nev6i_753",rt="_routingBadge_nev6i_778",ct="_routingTargetRadio_nev6i_792",_t="_routingTargetRadioActive_nev6i_813",dt="_routingRadioIndicator_nev6i_829",lt="_emptyRow_nev6i_845",gt="_settingRow_nev6i_898",ut="_settingLabel_nev6i_912",vt="_settingControl_nev6i_919",ht="_select_nev6i_928",pt="_numberInput_nev6i_950",Ct="_toggleSwitch_nev6i_972",bt="_toggleInput_nev6i_979",yt="_toggleTrack_nev6i_987",St="_toggleThumb_nev6i_1009",jt="_savedIndicator_nev6i_1058",mt="_savedIndicatorHidden_nev6i_1070",ft="_savedIndicatorFailed_nev6i_1074",Lt="_dataHistoryIntro_nev6i_1079",Ht="_dataHistoryList_nev6i_1087",Rt="_dataHistoryRow_nev6i_1093",wt="_dataHistoryDetail_nev6i_1102",Tt="_dataHistoryRowExpanded_nev6i_1113",Bt="_projectChangesDataHistoryDetail_nev6i_1120",Dt="_uiStudioDataHistoryDetail_nev6i_1124",It="_dataHistoryMain_nev6i_1128",kt="_dataHistoryTitle_nev6i_1132",Pt="_dataHistoryDescription_nev6i_1138",At="_dataHistoryMetric_nev6i_1146",Ft="_dataHistoryActions_nev6i_1153",Gt="_linkButton_nev6i_1159",Et="_manageStorageButton_nev6i_1160",Mt="_dangerButton_nev6i_1161",Ut="_inlineStatus_nev6i_1228",Wt="_projectChangesPanel_nev6i_1236",Nt="_projectChangesConsoleGrid_nev6i_1247",Ot="_projectChangesUsageColumn_nev6i_1254",xt="_projectChangesPolicyColumn_nev6i_1255",Vt="_projectChangesPanelTitle_nev6i_1266",qt="_projectChangesScope_nev6i_1273",Kt="_projectChangesUsageBlock_nev6i_1279",Qt="_projectChangesUsageSummary_nev6i_1285",$t="_projectChangesQuotaRail_nev6i_1294",Yt="_projectChangesSessionRail_nev6i_1303",Zt="_projectChangesContextRail_nev6i_1304",zt="_projectChangesUsageLegend_nev6i_1319",Jt="_projectChangesPolicyFieldset_nev6i_1335",Xt="_projectChangesPolicyLegend_nev6i_1349",en="_projectChangesPresetGroup_nev6i_1358",tn="_projectChangesPresetButton_nev6i_1364",nn="_projectChangesPresetButtonActive_nev6i_1391",on="_projectChangesActions_nev6i_1398",an="_projectChangesSaveButton_nev6i_1405",sn="_projectChangesSecondaryButton_nev6i_1406",rn="_projectChangesSaved_nev6i_1463",cn="_projectChangesWarning_nev6i_1469",_n="_projectChangesError_nev6i_1470",dn="_projectChangesEmpty_nev6i_1471",ln="_projectChangesLastRun_nev6i_1491",gn="_projectChangesLastRunLabel_nev6i_1502",un="_coldGrid_nev6i_1508",vn="_coldHint_nev6i_1526",hn="_langRow_nev6i_1535",pn="_loading_nev6i_1548",Cn="_unit_nev6i_1557",yn={page:U,card:W,licenseCardTarget:N,licenseCardPro:O,dashboardCard:x,dashboardCardTarget:V,dashboardSettingRow:q,dashboardSettingCopy:K,dashboardSettingLabel:Q,dashboardSettingDescription:$,dashboardSettingMeta:Y,dashboardSaveFeedback:Z,dashboardToggleTarget:z,dashboardDetails:J,dashboardDetailRow:X,dashboardSettingsFilePath:ee,dashboardAgentPrompt:te,dashboardSaveFeedbackError:ne,cardHeader:oe,cardHeaderActions:ae,cardHeaderTitleGroup:ie,cardHelpButton:se,validationCard:re,validationSettingRow:ce,validationSettingCopy:_e,validationSettingLabel:de,validationSettingStatus:le,validationPolicyControl:ge,validationToggleTarget:ue,touchTarget44:ve,collapseButton:he,headerBadge:pe,headerBadgeLive:Ce,licenseGrid:be,statusDot:ye,statusActive:Se,statusGrace:je,statusInactive:me,statusError:fe,proBadge:Le,upgradeLink:He,licenseControls:Re,licenseControlRow:we,licenseField:Te,licenseFieldGrow:Be,controlLabel:De,textInput:Ie,actionBtn:ke,licenseMessage:Pe,licenseNotice:Ae,licenseNoticeInfo:Fe,licenseNoticeWarning:Ge,licenseNoticeMuted:Ee,controlGrid:Me,controlHint:Ue,routingOverview:We,routingOverviewCopy:Ne,routingEyebrow:Oe,priorityTargetSummary:xe,routingFeedback:Ve,tableWrap:qe,table:Ke,routingTargetsTable:Qe,routingActionColumn:$e,routingActionSlot:Ye,studioRoutingChoiceControl:Ze,segment:ze,segmentActive:Je,segmentCopy:Xe,segmentLabel:et,segmentDescription:tt,segmentIndicator:nt,routingDisabledReason:ot,routingWarning:at,monoMuted:it,copyIconButton:st,routingBadge:rt,routingTargetRadio:ct,routingTargetRadioActive:_t,routingRadioIndicator:dt,emptyRow:lt,settingRow:gt,settingLabel:ut,settingControl:vt,select:ht,numberInput:pt,toggleSwitch:Ct,toggleInput:bt,toggleTrack:yt,toggleThumb:St,savedIndicator:jt,savedIndicatorHidden:mt,savedIndicatorFailed:ft,dataHistoryIntro:Lt,dataHistoryList:Ht,dataHistoryRow:Rt,dataHistoryDetail:wt,dataHistoryRowExpanded:Tt,projectChangesDataHistoryDetail:Bt,uiStudioDataHistoryDetail:Dt,dataHistoryMain:It,dataHistoryTitle:kt,dataHistoryDescription:Pt,dataHistoryMetric:At,dataHistoryActions:Ft,linkButton:Gt,manageStorageButton:Et,dangerButton:Mt,inlineStatus:Ut,projectChangesPanel:Wt,projectChangesConsoleGrid:Nt,projectChangesUsageColumn:Ot,projectChangesPolicyColumn:xt,projectChangesPanelTitle:Vt,projectChangesScope:qt,projectChangesUsageBlock:Kt,projectChangesUsageSummary:Qt,projectChangesQuotaRail:$t,projectChangesSessionRail:Yt,projectChangesContextRail:Zt,projectChangesUsageLegend:zt,projectChangesPolicyFieldset:Jt,projectChangesPolicyLegend:Xt,projectChangesPresetGroup:en,projectChangesPresetButton:tn,projectChangesPresetButtonActive:nn,projectChangesActions:on,projectChangesSaveButton:an,projectChangesSecondaryButton:sn,projectChangesSaved:rn,projectChangesWarning:cn,projectChangesError:_n,projectChangesEmpty:dn,projectChangesLastRun:ln,projectChangesLastRunLabel:gn,coldGrid:un,coldHint:vn,langRow:hn,loading:pn,unit:Cn};function Sn(){var S;const{level:j}=k(),[r,d]=a.useState(null),[i,v]=a.useState(null),[m,p]=a.useState(!1),[f,L]=a.useState(!0),[H,l]=a.useState(!1),[R,h]=a.useState(null),c=j==="disconnected";a.useEffect(()=>{if(!(i!=null&&i.provisional)||!i.graceUntil||i.tier!=="pro")return;const e=i.provisional.decisionId,n=i.graceUntil,t=setTimeout(()=>{v(o=>{var _;return((_=o==null?void 0:o.provisional)==null?void 0:_.decisionId)===e&&o.graceUntil===n?{...o,tier:"basic",status:"unknown",statusDetail:"unknown_verification_required"}:o})},Math.min(2147483647,Math.max(0,n*1e3-Date.now())));return()=>clearTimeout(t)},[(S=i==null?void 0:i.provisional)==null?void 0:S.decisionId,i==null?void 0:i.graceUntil,i==null?void 0:i.tier]);const s=a.useCallback(e=>{e&&v(n=>({...n,...e,provisional:e.provisional,graceUntil:e.graceUntil,diagnostic:e.diagnostic,maskedKey:e.maskedKey??(n==null?void 0:n.maskedKey),provider:e.provider??(n==null?void 0:n.provider)??"auto"}))},[]),g=a.useCallback(e=>{var t;const n=P((t=e==null?void 0:e.payload)==null?void 0:t.diagnostic);n&&v(o=>o?{...o,diagnostic:n}:{tier:"basic",status:"unknown",provider:"auto",refreshRequired:!1,diagnostic:n})},[]),C=a.useCallback(e=>{if(!e){v(null);return}v({...e,provider:e.provider??"auto"})},[]),b=a.useCallback(async()=>{try{return await A()}catch{return null}},[]);a.useEffect(()=>{let e=!1;async function n(){try{const[t,o]=await Promise.all([y.get("/api/dashboard/settings").catch(()=>null),b()]);if(e)return;t&&d(t),o&&s(o)}catch{}finally{e||L(!1)}}return n(),()=>{e=!0}},[b,s]),a.useEffect(()=>{const e=new F;e.connect();const n=e.on("license",t=>{b().then(o=>{if(o){if((t==null?void 0:t.cleared)===!0){C(o);return}s(o)}})});return()=>{n(),e.disconnect()}},[b,s,C]);const u=a.useCallback((e,n)=>{h(e??n)},[]),w=a.useCallback(async e=>{var n;if(c)return!1;if(!e.trim())return h("License key is required."),!1;l(!0);try{const t=await G({licenseKey:e.trim()});return s(t.license),u((n=t.license)!=null&&n.provisional?t.license.tier==="pro"?"Verification is pending. Temporary Pro access is available until its expiry.":"Temporary access has ended. Verify your license when the service recovers.":t.message,t.ok?"License updated.":"License activation failed."),t.ok}catch(t){return g(t),h("License activation failed."),!1}finally{l(!1)}},[u,c,s,g]),T=a.useCallback(async()=>{if(!c){l(!0);try{const e=await E();s(e.license),u(e.message,e.ok?"License updated.":"License refresh failed.")}catch(e){g(e),h("License refresh failed.")}finally{l(!1)}}},[u,c,s,g]),B=a.useCallback(async()=>{if(!c){l(!0);try{const e=await M();C(e.license),u(e.message,e.ok?"License reset.":"License reset failed.")}catch(e){g(e),h("License reset failed.")}finally{l(!1)}}},[u,c,C,g]),D=a.useCallback(async(e,n)=>{if(!r)return;const t=r.hot[e];d(o=>o&&{...o,hot:{...o.hot,[e]:n}}),p(!0);try{await y.patch("/api/dashboard/settings",{[e]:n})}catch(o){throw d(_=>_&&{..._,hot:{..._.hot,[e]:t}}),o}finally{p(!1)}},[r]),I=a.useCallback(async e=>{if(!r)return;const n=r.dashboard;d(t=>t&&{...t,dashboard:{...t.dashboard,...e}}),p(!0);try{const t=await y.patch("/api/dashboard/preferences",e);d(t)}catch(t){throw d(o=>o&&{...o,dashboard:n}),t}finally{p(!1)}},[r]);return{settings:r,license:i,saving:m,licenseControlsDisabled:c,licenseSubmitting:H,licenseMessage:R,activateLicense:w,refreshLicense:T,resetLicense:B,updateHotSetting:D,updateDashboardPreferences:I,loading:f}}export{yn as s,Sn as u};
@@ -5,7 +5,7 @@
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-B1SnAt0o.js"></script>
8
+ <script type="module" crossorigin src="/dashboard/assets/index-DOEmzpkJ.js"></script>
9
9
  <link rel="stylesheet" crossorigin href="/dashboard/assets/index-VXvX8jPK.css">
10
10
  </head>
11
11
  <body>