@weppy/roblox-mcp 2.17.21 → 2.17.22

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 (41) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dashboard/dist/assets/AiPromptExamples-CQGYhsSq.js +1 -0
  3. package/dashboard/dist/assets/{AssetsPage-BiFlajKz.js → AssetsPage-tnh7G0oI.js} +1 -1
  4. package/dashboard/dist/assets/{ChangelogPage-CZ4M3zvA.js → ChangelogPage-niZk_9S5.js} +1 -1
  5. package/dashboard/dist/assets/{ConfirmModal-EJt_S9vY.js → ConfirmModal-BSuAB3WU.js} +1 -1
  6. package/dashboard/dist/assets/{ConnectionPage-n7saIQzt.js → ConnectionPage-4Bu7ELYr.js} +1 -1
  7. package/dashboard/dist/assets/{ContentScopedDialog-BcNAWEg1.js → ContentScopedDialog-BZBRfU-h.js} +1 -1
  8. package/dashboard/dist/assets/{ControlsPage-BtjiFRSB.js → ControlsPage-CMQLZIv5.js} +1 -1
  9. package/dashboard/dist/assets/{DialogHeader-BMv5alOx.js → DialogHeader-DYe1ZbDg.js} +1 -1
  10. package/dashboard/dist/assets/{GameChangeDetail-BNoyNyoe.js → GameChangeDetail-C3zrRv4g.js} +1 -1
  11. package/dashboard/dist/assets/{InfoLabel-xpwjU19F.js → InfoLabel-C9QuVrs9.js} +1 -1
  12. package/dashboard/dist/assets/{OverviewPage-gmgRY2nN.js → OverviewPage-CI3l2Ay4.js} +1 -1
  13. package/dashboard/dist/assets/{PageHeader-C7zSPJ0K.js → PageHeader-plAaGWcw.js} +1 -1
  14. package/dashboard/dist/assets/{PlaceSelectOptions-e39l4_SC.js → PlaceSelectOptions-Bh6TVGoa.js} +1 -1
  15. package/dashboard/dist/assets/{PlaytestAiPromptExamples-DNcOx55_.js → PlaytestAiPromptExamples-CV1U6nF6.js} +1 -1
  16. package/dashboard/dist/assets/{PlaytestPage-C1cvi3ce.js → PlaytestPage-BgG_4l9a.js} +1 -1
  17. package/dashboard/dist/assets/SettingsPage-CKqiItPX.js +23 -0
  18. package/dashboard/dist/assets/{SyncPage-C1xj3Vtj.js → SyncPage-k_67oQ0S.js} +1 -1
  19. package/dashboard/dist/assets/{Tabs-CJSfllHd.js → Tabs-BDAljzT9.js} +1 -1
  20. package/dashboard/dist/assets/{TierPromoPanel-Cj3f7idb.js → TierPromoPanel-DUwTC3Zz.js} +1 -1
  21. package/dashboard/dist/assets/{ToolsPage-DxgcVWzx.js → ToolsPage-RoWl4i2b.js} +1 -1
  22. package/dashboard/dist/assets/{TooltipText-CKbtCUcM.js → TooltipText-Btgvmrqc.js} +1 -1
  23. package/dashboard/dist/assets/{UiStudioPage-DmWjv22S.css → UiStudioPage-SojeKPNs.css} +1 -1
  24. package/dashboard/dist/assets/UiStudioPage-Tbo30itW.js +23 -0
  25. package/dashboard/dist/assets/{WhatsNewPage-D91VijNf.js → WhatsNewPage-n-lW5_0g.js} +1 -1
  26. package/dashboard/dist/assets/{bot-DBgSRd9L.js → bot-Cw9-c1xX.js} +1 -1
  27. package/dashboard/dist/assets/{check-BGgW005M.js → check-D8GciAv-.js} +1 -1
  28. package/dashboard/dist/assets/{copy-B53fec-q.js → copy-CcmKRqlO.js} +1 -1
  29. package/dashboard/dist/assets/{index-B-46k2zD.js → index-CfT3smRY.js} +64 -32
  30. package/dashboard/dist/assets/{rotate-ccw-C68bQzOX.js → rotate-ccw-B9h7F-0m.js} +1 -1
  31. package/dashboard/dist/assets/{sample-requests-Cb8_d2yO.js → sample-requests-cbyN06Aw.js} +1 -1
  32. package/dashboard/dist/assets/{trash-2-DMaFDTK8.js → trash-2-ElF9PcCM.js} +1 -1
  33. package/dashboard/dist/assets/{useLiveUptime-Dd5RwIEz.js → useLiveUptime-CXdR7Bos.js} +1 -1
  34. package/dashboard/dist/assets/{useSettings-DpFpA827.js → useSettings-DhD_vaHX.js} +1 -1
  35. package/dashboard/dist/index.html +1 -1
  36. package/dist/index.js +165 -518
  37. package/package.json +1 -1
  38. package/roblox-plugin/WeppyRobloxMCP.rbxm +0 -0
  39. package/dashboard/dist/assets/AiPromptExamples-v7F0ZqtA.js +0 -1
  40. package/dashboard/dist/assets/SettingsPage-BMmYemqI.js +0 -23
  41. package/dashboard/dist/assets/UiStudioPage-Ch9n11Rs.js +0 -11
@@ -1,4 +1,4 @@
1
- import{c as t}from"./index-B-46k2zD.js";/**
1
+ import{c as t}from"./index-CfT3smRY.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{m as v,h as k,u as G,r as d,j as n}from"./index-B-46k2zD.js";import{C as D}from"./PageHeader-C7zSPJ0K.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-CfT3smRY.js";import{C as D}from"./PageHeader-plAaGWcw.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{c as a}from"./index-B-46k2zD.js";/**
1
+ import{c as a}from"./index-CfT3smRY.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-B-46k2zD.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-CfT3smRY.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,2 +1,2 @@
1
- import{r as i,s as I,a as K,Z as x,D as z,_ as N,$ as Q,a0 as V,d as k}from"./index-B-46k2zD.js";const Y="_page_v17re_2",Z="_card_v17re_10",J="_licenseCardTarget_v17re_26",X="_licenseCardPro_v17re_31",tt="_dashboardCard_v17re_41",et="_dashboardCardTarget_v17re_45",at="_dashboardSettingRow_v17re_49",ot="_dashboardSettingCopy_v17re_56",rt="_dashboardSettingLabel_v17re_62",nt="_dashboardSettingDescription_v17re_70",st="_dashboardSettingMeta_v17re_71",it="_dashboardSaveFeedback_v17re_72",ct="_dashboardToggleTarget_v17re_86",dt="_dashboardDetails_v17re_92",_t="_dashboardDetailRow_v17re_100",gt="_dashboardSettingsFilePath_v17re_119",ut="_dashboardAgentPrompt_v17re_120",lt="_dashboardSaveFeedbackError_v17re_145",vt="_cardHeader_v17re_150",ht="_cardHeaderActions_v17re_163",pt="_cardHeaderTitleGroup_v17re_169",Ct="_cardHelpButton_v17re_176",bt="_validationCard_v17re_208",ft="_validationSettingRow_v17re_212",yt="_validationSettingCopy_v17re_219",St="_validationSettingLabel_v17re_225",mt="_validationSettingStatus_v17re_233",jt="_validationPolicyControl_v17re_240",Lt="_validationToggleTarget_v17re_248",wt="_touchTarget44_v17re_254",Rt="_collapseButton_v17re_259",Ht="_headerBadge_v17re_286",Tt="_headerBadgeLive_v17re_300",Dt="_actionBtn_v17re_433",Bt="_controlGrid_v17re_494",kt="_controlHint_v17re_516",It="_routingOverview_v17re_524",Pt="_routingOverviewCopy_v17re_536",At="_routingEyebrow_v17re_543",Et="_priorityTargetSummary_v17re_568",$t="_routingFeedback_v17re_596",Mt="_tableWrap_v17re_601",Ut="_table_v17re_601",Ft="_routingTargetsTable_v17re_612",Gt="_routingActionColumn_v17re_617",Ot="_routingActionSlot_v17re_621",Wt="_studioRoutingChoiceControl_v17re_643",qt="_segment_v17re_652",Kt="_segmentActive_v17re_653",xt="_segmentCopy_v17re_674",zt="_segmentLabel_v17re_680",Nt="_segmentDescription_v17re_687",Qt="_segmentIndicator_v17re_694",Vt="_routingDisabledReason_v17re_733",Yt="_routingWarning_v17re_741",Zt="_monoMuted_v17re_749",Jt="_copyIconButton_v17re_753",Xt="_routingBadge_v17re_778",te="_routingTargetRadio_v17re_792",ee="_routingTargetRadioActive_v17re_813",ae="_routingRadioIndicator_v17re_829",oe="_emptyRow_v17re_845",re="_settingRow_v17re_898",ne="_settingLabel_v17re_912",se="_settingControl_v17re_919",ie="_select_v17re_928",ce="_numberInput_v17re_950",de="_toggleSwitch_v17re_972",_e="_toggleInput_v17re_979",ge="_toggleTrack_v17re_987",ue="_toggleThumb_v17re_1009",le="_savedIndicator_v17re_1058",ve="_savedIndicatorHidden_v17re_1070",he="_savedIndicatorFailed_v17re_1074",pe="_dataHistoryIntro_v17re_1079",Ce="_dataHistoryList_v17re_1087",be="_dataHistoryRow_v17re_1093",fe="_dataHistoryDetail_v17re_1102",ye="_dataHistoryRowExpanded_v17re_1113",Se="_projectChangesDataHistoryDetail_v17re_1120",me="_uiStudioDataHistoryDetail_v17re_1124",je="_dataHistoryMain_v17re_1128",Le="_dataHistoryTitle_v17re_1132",we="_dataHistoryDescription_v17re_1138",Re="_dataHistoryMetric_v17re_1146",He="_dataHistoryActions_v17re_1153",Te="_linkButton_v17re_1159",De="_manageStorageButton_v17re_1160",Be="_dangerButton_v17re_1161",ke="_inlineStatus_v17re_1228",Ie="_projectChangesPanel_v17re_1236",Pe="_projectChangesConsoleGrid_v17re_1247",Ae="_projectChangesUsageColumn_v17re_1254",Ee="_projectChangesPolicyColumn_v17re_1255",$e="_projectChangesPanelTitle_v17re_1266",Me="_projectChangesScope_v17re_1273",Ue="_projectChangesUsageBlock_v17re_1279",Fe="_projectChangesUsageSummary_v17re_1285",Ge="_projectChangesQuotaRail_v17re_1294",Oe="_projectChangesSessionRail_v17re_1303",We="_projectChangesContextRail_v17re_1304",qe="_projectChangesUsageLegend_v17re_1319",Ke="_projectChangesPolicyFieldset_v17re_1335",xe="_projectChangesPolicyLegend_v17re_1349",ze="_projectChangesPresetGroup_v17re_1358",Ne="_projectChangesPresetButton_v17re_1364",Qe="_projectChangesPresetButtonActive_v17re_1391",Ve="_projectChangesActions_v17re_1398",Ye="_projectChangesSaveButton_v17re_1405",Ze="_projectChangesSecondaryButton_v17re_1406",Je="_projectChangesSaved_v17re_1463",Xe="_projectChangesWarning_v17re_1469",ta="_projectChangesError_v17re_1470",ea="_projectChangesEmpty_v17re_1471",aa="_projectChangesLastRun_v17re_1491",oa="_projectChangesLastRunLabel_v17re_1502",ra="_coldGrid_v17re_1508",na="_coldHint_v17re_1526",sa="_licenseNotices_v17re_1535",ia="_langRow_v17re_1552",ca="_loading_v17re_1565",da="_unit_v17re_1574",ha={page:Y,card:Z,licenseCardTarget:J,licenseCardPro:X,dashboardCard:tt,dashboardCardTarget:et,dashboardSettingRow:at,dashboardSettingCopy:ot,dashboardSettingLabel:rt,dashboardSettingDescription:nt,dashboardSettingMeta:st,dashboardSaveFeedback:it,dashboardToggleTarget:ct,dashboardDetails:dt,dashboardDetailRow:_t,dashboardSettingsFilePath:gt,dashboardAgentPrompt:ut,dashboardSaveFeedbackError:lt,cardHeader:vt,cardHeaderActions:ht,cardHeaderTitleGroup:pt,cardHelpButton:Ct,validationCard:bt,validationSettingRow:ft,validationSettingCopy:yt,validationSettingLabel:St,validationSettingStatus:mt,validationPolicyControl:jt,validationToggleTarget:Lt,touchTarget44:wt,collapseButton:Rt,headerBadge:Ht,headerBadgeLive:Tt,actionBtn:Dt,controlGrid:Bt,controlHint:kt,routingOverview:It,routingOverviewCopy:Pt,routingEyebrow:At,priorityTargetSummary:Et,routingFeedback:$t,tableWrap:Mt,table:Ut,routingTargetsTable:Ft,routingActionColumn:Gt,routingActionSlot:Ot,studioRoutingChoiceControl:Wt,segment:qt,segmentActive:Kt,segmentCopy:xt,segmentLabel:zt,segmentDescription:Nt,segmentIndicator:Qt,routingDisabledReason:Vt,routingWarning:Yt,monoMuted:Zt,copyIconButton:Jt,routingBadge:Xt,routingTargetRadio:te,routingTargetRadioActive:ee,routingRadioIndicator:ae,emptyRow:oe,settingRow:re,settingLabel:ne,settingControl:se,select:ie,numberInput:ce,toggleSwitch:de,toggleInput:_e,toggleTrack:ge,toggleThumb:ue,savedIndicator:le,savedIndicatorHidden:ve,savedIndicatorFailed:he,dataHistoryIntro:pe,dataHistoryList:Ce,dataHistoryRow:be,dataHistoryDetail:fe,dataHistoryRowExpanded:ye,projectChangesDataHistoryDetail:Se,uiStudioDataHistoryDetail:me,dataHistoryMain:je,dataHistoryTitle:Le,dataHistoryDescription:we,dataHistoryMetric:Re,dataHistoryActions:He,linkButton:Te,manageStorageButton:De,dangerButton:Be,inlineStatus:ke,projectChangesPanel:Ie,projectChangesConsoleGrid:Pe,projectChangesUsageColumn:Ae,projectChangesPolicyColumn:Ee,projectChangesPanelTitle:$e,projectChangesScope:Me,projectChangesUsageBlock:Ue,projectChangesUsageSummary:Fe,projectChangesQuotaRail:Ge,projectChangesSessionRail:Oe,projectChangesContextRail:We,projectChangesUsageLegend:qe,projectChangesPolicyFieldset:Ke,projectChangesPolicyLegend:xe,projectChangesPresetGroup:ze,projectChangesPresetButton:Ne,projectChangesPresetButtonActive:Qe,projectChangesActions:Ve,projectChangesSaveButton:Ye,projectChangesSecondaryButton:Ze,projectChangesSaved:Je,projectChangesWarning:Xe,projectChangesError:ta,projectChangesEmpty:ea,projectChangesLastRun:aa,projectChangesLastRunLabel:oa,coldGrid:ra,coldHint:na,licenseNotices:sa,langRow:ia,loading:ca,unit:da};let b=[],_a=0;const P=new Set;function $(e){const o=I(e);return o&&o.code!=="weppy_issuance_unavailable"&&!/guest|handoff/.test(o.operation??"")&&!/auth|account/.test(o.service??"")?o:void 0}function H(e,o,c,a,l=c==null?void 0:c.diagnostic){var p,j,f;const d=$(l),u={id:++_a,at:Date.now(),operation:e,success:o,tier:(c==null?void 0:c.tier)??"basic",...a&&/^[a-z][a-z0-9_]{0,79}$/.test(a)?{reason:a}:{},...d?{diagnostic:d}:{}};e==="status"&&((p=b[0])==null?void 0:p.operation)==="status"&&b[0].tier===u.tier&&b[0].success===u.success&&((j=b[0].diagnostic)==null?void 0:j.code)===((f=u.diagnostic)==null?void 0:f.code)||(b=[u,...b].slice(0,50),P.forEach(L=>L()))}function ga(){return i.useSyncExternalStore(e=>(P.add(e),()=>{P.delete(e)}),()=>b)}function ua(e){var o,c;return((o=e.license)==null?void 0:o.tier)==="basic"&&e.license.provisional?!1:e.ok||((c=e.license)==null?void 0:c.tier)==="pro"&&e.license.status==="grace"&&e.recoverable&&["verification_pending","provider_unavailable","provider_temporarily_unavailable","billing_temporarily_unavailable","license_v3_timeout","license_v3_network_error","license_v3_server_error"].includes(e.reasonCode??"")}function pa(e,o){var c;if(o&&!o.success&&o.operation!=="status"){const a=o.reason??((c=o.diagnostic)==null?void 0:c.code)??"";return/invalid_license|credential_revoked|entitlement_revoked/.test(a)?"invalid":/network|timeout|unavailable|rate_limit/.test(a)?"connection":"unavailable"}return(e==null?void 0:e.tier)==="pro"?"active":(e==null?void 0:e.status)==="invalid"?"invalid":(e==null?void 0:e.status)==="revoked"?"revoked":(e==null?void 0:e.status)==="unknown"?"unavailable":(o==null?void 0:o.operation)==="reset"&&o.success?"reset":"required"}function la(e){var c;if(!e||!/[*•]/.test(e))return;const o=(c=e.match(/([a-z0-9]{1,4})$/i))==null?void 0:c[1];return o?`********${o}`:"********"}function Ca(e,o,c){var l;const a=((l=o[0])==null?void 0:l.diagnostic)??$(e==null?void 0:e.diagnostic);return["WEPPY License Support",`Time: ${new Date().toISOString()}`,`Environment: ${c}`,`Access: ${(e==null?void 0:e.tier)==="pro"?"Pro available":"Basic"}`,`Status: ${(e==null?void 0:e.status)??"unknown"}`,`Provider: ${["polar","gumroad","weppy"].includes((e==null?void 0:e.provider)??"")?e.provider:"auto"}`,`Masked key: ${la(e==null?void 0:e.maskedKey)??"-"}`,...a!=null&&a.traceId?[`Server trace ID: ${a.traceId}`]:a!=null&&a.clientOperationId?[`Local request ID: ${a.clientOperationId}`]:[],"Recent license actions (this Dashboard tab only):",...o.slice(0,10).map(d=>{var u,p;return`${new Date(d.at).toISOString()} | ${d.operation} | ${d.success?"success":"needs_attention"} | ${d.tier}${d.diagnostic?` | ${d.diagnostic.code}`:""}${(u=d.diagnostic)!=null&&u.traceId?` | server_trace=${d.diagnostic.traceId}`:(p=d.diagnostic)!=null&&p.clientOperationId?` | local_request=${d.diagnostic.clientOperationId}`:""}`})].join(`
1
+ import{r as i,s as I,a as K,Z as x,D as z,_ as N,$ as Q,a0 as V,d as k}from"./index-CfT3smRY.js";const Y="_page_v17re_2",Z="_card_v17re_10",J="_licenseCardTarget_v17re_26",X="_licenseCardPro_v17re_31",tt="_dashboardCard_v17re_41",et="_dashboardCardTarget_v17re_45",at="_dashboardSettingRow_v17re_49",ot="_dashboardSettingCopy_v17re_56",rt="_dashboardSettingLabel_v17re_62",nt="_dashboardSettingDescription_v17re_70",st="_dashboardSettingMeta_v17re_71",it="_dashboardSaveFeedback_v17re_72",ct="_dashboardToggleTarget_v17re_86",dt="_dashboardDetails_v17re_92",_t="_dashboardDetailRow_v17re_100",gt="_dashboardSettingsFilePath_v17re_119",ut="_dashboardAgentPrompt_v17re_120",lt="_dashboardSaveFeedbackError_v17re_145",vt="_cardHeader_v17re_150",ht="_cardHeaderActions_v17re_163",pt="_cardHeaderTitleGroup_v17re_169",Ct="_cardHelpButton_v17re_176",bt="_validationCard_v17re_208",ft="_validationSettingRow_v17re_212",yt="_validationSettingCopy_v17re_219",St="_validationSettingLabel_v17re_225",mt="_validationSettingStatus_v17re_233",jt="_validationPolicyControl_v17re_240",Lt="_validationToggleTarget_v17re_248",wt="_touchTarget44_v17re_254",Rt="_collapseButton_v17re_259",Ht="_headerBadge_v17re_286",Tt="_headerBadgeLive_v17re_300",Dt="_actionBtn_v17re_433",Bt="_controlGrid_v17re_494",kt="_controlHint_v17re_516",It="_routingOverview_v17re_524",Pt="_routingOverviewCopy_v17re_536",At="_routingEyebrow_v17re_543",Et="_priorityTargetSummary_v17re_568",$t="_routingFeedback_v17re_596",Mt="_tableWrap_v17re_601",Ut="_table_v17re_601",Ft="_routingTargetsTable_v17re_612",Gt="_routingActionColumn_v17re_617",Ot="_routingActionSlot_v17re_621",Wt="_studioRoutingChoiceControl_v17re_643",qt="_segment_v17re_652",Kt="_segmentActive_v17re_653",xt="_segmentCopy_v17re_674",zt="_segmentLabel_v17re_680",Nt="_segmentDescription_v17re_687",Qt="_segmentIndicator_v17re_694",Vt="_routingDisabledReason_v17re_733",Yt="_routingWarning_v17re_741",Zt="_monoMuted_v17re_749",Jt="_copyIconButton_v17re_753",Xt="_routingBadge_v17re_778",te="_routingTargetRadio_v17re_792",ee="_routingTargetRadioActive_v17re_813",ae="_routingRadioIndicator_v17re_829",oe="_emptyRow_v17re_845",re="_settingRow_v17re_898",ne="_settingLabel_v17re_912",se="_settingControl_v17re_919",ie="_select_v17re_928",ce="_numberInput_v17re_950",de="_toggleSwitch_v17re_972",_e="_toggleInput_v17re_979",ge="_toggleTrack_v17re_987",ue="_toggleThumb_v17re_1009",le="_savedIndicator_v17re_1058",ve="_savedIndicatorHidden_v17re_1070",he="_savedIndicatorFailed_v17re_1074",pe="_dataHistoryIntro_v17re_1079",Ce="_dataHistoryList_v17re_1087",be="_dataHistoryRow_v17re_1093",fe="_dataHistoryDetail_v17re_1102",ye="_dataHistoryRowExpanded_v17re_1113",Se="_projectChangesDataHistoryDetail_v17re_1120",me="_uiStudioDataHistoryDetail_v17re_1124",je="_dataHistoryMain_v17re_1128",Le="_dataHistoryTitle_v17re_1132",we="_dataHistoryDescription_v17re_1138",Re="_dataHistoryMetric_v17re_1146",He="_dataHistoryActions_v17re_1153",Te="_linkButton_v17re_1159",De="_manageStorageButton_v17re_1160",Be="_dangerButton_v17re_1161",ke="_inlineStatus_v17re_1228",Ie="_projectChangesPanel_v17re_1236",Pe="_projectChangesConsoleGrid_v17re_1247",Ae="_projectChangesUsageColumn_v17re_1254",Ee="_projectChangesPolicyColumn_v17re_1255",$e="_projectChangesPanelTitle_v17re_1266",Me="_projectChangesScope_v17re_1273",Ue="_projectChangesUsageBlock_v17re_1279",Fe="_projectChangesUsageSummary_v17re_1285",Ge="_projectChangesQuotaRail_v17re_1294",Oe="_projectChangesSessionRail_v17re_1303",We="_projectChangesContextRail_v17re_1304",qe="_projectChangesUsageLegend_v17re_1319",Ke="_projectChangesPolicyFieldset_v17re_1335",xe="_projectChangesPolicyLegend_v17re_1349",ze="_projectChangesPresetGroup_v17re_1358",Ne="_projectChangesPresetButton_v17re_1364",Qe="_projectChangesPresetButtonActive_v17re_1391",Ve="_projectChangesActions_v17re_1398",Ye="_projectChangesSaveButton_v17re_1405",Ze="_projectChangesSecondaryButton_v17re_1406",Je="_projectChangesSaved_v17re_1463",Xe="_projectChangesWarning_v17re_1469",ta="_projectChangesError_v17re_1470",ea="_projectChangesEmpty_v17re_1471",aa="_projectChangesLastRun_v17re_1491",oa="_projectChangesLastRunLabel_v17re_1502",ra="_coldGrid_v17re_1508",na="_coldHint_v17re_1526",sa="_licenseNotices_v17re_1535",ia="_langRow_v17re_1552",ca="_loading_v17re_1565",da="_unit_v17re_1574",ha={page:Y,card:Z,licenseCardTarget:J,licenseCardPro:X,dashboardCard:tt,dashboardCardTarget:et,dashboardSettingRow:at,dashboardSettingCopy:ot,dashboardSettingLabel:rt,dashboardSettingDescription:nt,dashboardSettingMeta:st,dashboardSaveFeedback:it,dashboardToggleTarget:ct,dashboardDetails:dt,dashboardDetailRow:_t,dashboardSettingsFilePath:gt,dashboardAgentPrompt:ut,dashboardSaveFeedbackError:lt,cardHeader:vt,cardHeaderActions:ht,cardHeaderTitleGroup:pt,cardHelpButton:Ct,validationCard:bt,validationSettingRow:ft,validationSettingCopy:yt,validationSettingLabel:St,validationSettingStatus:mt,validationPolicyControl:jt,validationToggleTarget:Lt,touchTarget44:wt,collapseButton:Rt,headerBadge:Ht,headerBadgeLive:Tt,actionBtn:Dt,controlGrid:Bt,controlHint:kt,routingOverview:It,routingOverviewCopy:Pt,routingEyebrow:At,priorityTargetSummary:Et,routingFeedback:$t,tableWrap:Mt,table:Ut,routingTargetsTable:Ft,routingActionColumn:Gt,routingActionSlot:Ot,studioRoutingChoiceControl:Wt,segment:qt,segmentActive:Kt,segmentCopy:xt,segmentLabel:zt,segmentDescription:Nt,segmentIndicator:Qt,routingDisabledReason:Vt,routingWarning:Yt,monoMuted:Zt,copyIconButton:Jt,routingBadge:Xt,routingTargetRadio:te,routingTargetRadioActive:ee,routingRadioIndicator:ae,emptyRow:oe,settingRow:re,settingLabel:ne,settingControl:se,select:ie,numberInput:ce,toggleSwitch:de,toggleInput:_e,toggleTrack:ge,toggleThumb:ue,savedIndicator:le,savedIndicatorHidden:ve,savedIndicatorFailed:he,dataHistoryIntro:pe,dataHistoryList:Ce,dataHistoryRow:be,dataHistoryDetail:fe,dataHistoryRowExpanded:ye,projectChangesDataHistoryDetail:Se,uiStudioDataHistoryDetail:me,dataHistoryMain:je,dataHistoryTitle:Le,dataHistoryDescription:we,dataHistoryMetric:Re,dataHistoryActions:He,linkButton:Te,manageStorageButton:De,dangerButton:Be,inlineStatus:ke,projectChangesPanel:Ie,projectChangesConsoleGrid:Pe,projectChangesUsageColumn:Ae,projectChangesPolicyColumn:Ee,projectChangesPanelTitle:$e,projectChangesScope:Me,projectChangesUsageBlock:Ue,projectChangesUsageSummary:Fe,projectChangesQuotaRail:Ge,projectChangesSessionRail:Oe,projectChangesContextRail:We,projectChangesUsageLegend:qe,projectChangesPolicyFieldset:Ke,projectChangesPolicyLegend:xe,projectChangesPresetGroup:ze,projectChangesPresetButton:Ne,projectChangesPresetButtonActive:Qe,projectChangesActions:Ve,projectChangesSaveButton:Ye,projectChangesSecondaryButton:Ze,projectChangesSaved:Je,projectChangesWarning:Xe,projectChangesError:ta,projectChangesEmpty:ea,projectChangesLastRun:aa,projectChangesLastRunLabel:oa,coldGrid:ra,coldHint:na,licenseNotices:sa,langRow:ia,loading:ca,unit:da};let b=[],_a=0;const P=new Set;function $(e){const o=I(e);return o&&o.code!=="weppy_issuance_unavailable"&&!/guest|handoff/.test(o.operation??"")&&!/auth|account/.test(o.service??"")?o:void 0}function H(e,o,c,a,l=c==null?void 0:c.diagnostic){var p,j,f;const d=$(l),u={id:++_a,at:Date.now(),operation:e,success:o,tier:(c==null?void 0:c.tier)??"basic",...a&&/^[a-z][a-z0-9_]{0,79}$/.test(a)?{reason:a}:{},...d?{diagnostic:d}:{}};e==="status"&&((p=b[0])==null?void 0:p.operation)==="status"&&b[0].tier===u.tier&&b[0].success===u.success&&((j=b[0].diagnostic)==null?void 0:j.code)===((f=u.diagnostic)==null?void 0:f.code)||(b=[u,...b].slice(0,50),P.forEach(L=>L()))}function ga(){return i.useSyncExternalStore(e=>(P.add(e),()=>{P.delete(e)}),()=>b)}function ua(e){var o,c;return((o=e.license)==null?void 0:o.tier)==="basic"&&e.license.provisional?!1:e.ok||((c=e.license)==null?void 0:c.tier)==="pro"&&e.license.status==="grace"&&e.recoverable&&["verification_pending","provider_unavailable","provider_temporarily_unavailable","billing_temporarily_unavailable","license_v3_timeout","license_v3_network_error","license_v3_server_error"].includes(e.reasonCode??"")}function pa(e,o){var c;if(o&&!o.success&&o.operation!=="status"){const a=o.reason??((c=o.diagnostic)==null?void 0:c.code)??"";return/invalid_license|credential_revoked|entitlement_revoked/.test(a)?"invalid":/network|timeout|unavailable|rate_limit/.test(a)?"connection":"unavailable"}return(e==null?void 0:e.tier)==="pro"?"active":(e==null?void 0:e.status)==="invalid"?"invalid":(e==null?void 0:e.status)==="revoked"?"revoked":(e==null?void 0:e.status)==="unknown"?"unavailable":(o==null?void 0:o.operation)==="reset"&&o.success?"reset":"required"}function la(e){var c;if(!e||!/[*•]/.test(e))return;const o=(c=e.match(/([a-z0-9]{1,4})$/i))==null?void 0:c[1];return o?`********${o}`:"********"}function Ca(e,o,c){var l;const a=((l=o[0])==null?void 0:l.diagnostic)??$(e==null?void 0:e.diagnostic);return["WEPPY License Support",`Time: ${new Date().toISOString()}`,`Environment: ${c}`,`Access: ${(e==null?void 0:e.tier)==="pro"?"Pro available":"Basic"}`,`Status: ${(e==null?void 0:e.status)??"unknown"}`,`Provider: ${["polar","gumroad","weppy"].includes((e==null?void 0:e.provider)??"")?e.provider:"auto"}`,`Masked key: ${la(e==null?void 0:e.maskedKey)??"-"}`,...a!=null&&a.traceId?[`Server trace ID: ${a.traceId}`]:a!=null&&a.clientOperationId?[`Local request ID: ${a.clientOperationId}`]:[],"Recent license actions (this Dashboard tab only):",...o.slice(0,10).map(d=>{var u,p;return`${new Date(d.at).toISOString()} | ${d.operation} | ${d.success?"success":"needs_attention"} | ${d.tier}${d.diagnostic?` | ${d.diagnostic.code}`:""}${(u=d.diagnostic)!=null&&u.traceId?` | server_trace=${d.diagnostic.traceId}`:(p=d.diagnostic)!=null&&p.clientOperationId?` | local_request=${d.diagnostic.clientOperationId}`:""}`})].join(`
2
2
  `)}function ba(){var E;const{level:e}=K(),[o,c]=i.useState(null),[a,l]=i.useState(null),[d,u]=i.useState(!1),[p,j]=i.useState(!0),[f,L]=i.useState(!1),[M,T]=i.useState(null),m=e==="disconnected",U=ga(),v=i.useRef(""),C=i.useRef(0),D=i.useRef(!1),B=i.useRef(0);i.useEffect(()=>()=>{v.current="",C.current+=1},[]),i.useEffect(()=>{var n;if((a==null?void 0:a.status)!=="grace"||!a.graceUntil||a.tier!=="pro")return;const t=(n=a.provisional)==null?void 0:n.decisionId,r=a.graceUntil,s=setTimeout(()=>{l(g=>{var _;return g&&((_=g.provisional)==null?void 0:_.decisionId)===t&&g.graceUntil===r?{...g,tier:"basic",status:"unknown",statusDetail:"unknown_verification_required"}:g})},Math.min(2147483647,Math.max(0,r*1e3-Date.now())));return()=>clearTimeout(s)},[(E=a==null?void 0:a.provisional)==null?void 0:E.decisionId,a==null?void 0:a.graceUntil,a==null?void 0:a.tier]);const y=i.useCallback(t=>{t&&l(r=>({...r,...t,provisional:t.provisional,graceUntil:t.graceUntil,diagnostic:t.diagnostic,maskedKey:t.maskedKey??(r==null?void 0:r.maskedKey),provider:t.provider??(r==null?void 0:r.provider)??"auto"}))},[]),A=i.useCallback(t=>{var s;const r=I((s=t==null?void 0:t.payload)==null?void 0:s.diagnostic);r&&l(n=>n?{...n,diagnostic:r}:{tier:"basic",status:"unknown",provider:"auto",refreshRequired:!1,diagnostic:r})},[]),w=i.useCallback(t=>{if(!t){l(null);return}l({...t,provider:t.provider??"auto"})},[]),R=i.useCallback(async()=>{try{const t=C.current,r=await x();return t===C.current?r:null}catch{return null}},[]);i.useEffect(()=>{let t=!1;async function r(){try{const[s,n]=await Promise.all([k.get("/api/dashboard/settings").catch(()=>null),R()]);if(t)return;s&&c(s),n&&(y(n),H("status",n.tier==="pro",n))}catch{}finally{t||j(!1)}}return r(),()=>{t=!0}},[R,y]),i.useEffect(()=>{const t=new z;t.connect();const r=t.on("license",s=>{R().then(n=>{if(n){if((s==null?void 0:s.cleared)===!0){w(n);return}y(n)}})});return()=>{r(),t.disconnect()}},[R,y,w]);const h=i.useCallback(async(t,r)=>{var n,g;if(m||D.current)return!1;if(t==="activate"&&!(r!=null&&r.trim()))return T("License key is required."),H("activate",!1,a,"license_key_required"),!1;const s=++C.current;t==="reset"&&(v.current=""),t==="activate"&&(v.current=r.trim(),B.current=0),D.current=!0,L(!0);try{const _=t==="reset"?await N():t==="activate"||t==="recheck"&&v.current?await Q({licenseKey:v.current}):await V();if(s!==C.current)return!1;t==="reset"?w(_.license):y(_.license);const S=ua(_);return T(S?t==="reset"?"License reset.":"License updated.":t==="reset"?"License reset failed.":t==="activate"?"License activation failed.":"License refresh failed."),H(t,S,_.license,_.reasonCode),(!((n=_.license)!=null&&n.provisional)||!S&&!_.recoverable)&&(v.current=""),t==="reset"&&(v.current=""),S}catch(_){if(s!==C.current)return!1;t==="activate"&&(v.current=""),A(_);const S=I((g=_==null?void 0:_.payload)==null?void 0:g.diagnostic);return H(t,!1,a,void 0,S),T(t==="reset"?"License reset failed.":t==="activate"?"License activation failed.":"License refresh failed."),!1}finally{s===C.current&&(D.current=!1,L(!1))}},[m,a,y,w,A]),F=i.useCallback(t=>h("activate",t),[h]),G=i.useCallback(async()=>{await h("refresh")},[h]),O=i.useCallback(async()=>{await h("reset")},[h]);i.useEffect(()=>{if(m||f||(a==null?void 0:a.tier)!=="pro"||a.status!=="grace"||!a.graceUntil||a.refreshBlockedReason==="missing_session_token"&&!v.current||a.provisional&&!v.current)return;const t=a.graceUntil*1e3-Date.now();if(t<=3e4)return;const r=Math.min(3e5,3e4*2**Math.min(B.current,4)),s=Math.max(3e4,Math.min(r,t-15e3)),n=setTimeout(()=>{B.current+=1,h("recheck")},s);return()=>clearTimeout(n)},[a,m,f,h]);const W=i.useCallback(async(t,r)=>{if(!o)return;const s=o.hot[t];c(n=>n&&{...n,hot:{...n.hot,[t]:r}}),u(!0);try{await k.patch("/api/dashboard/settings",{[t]:r})}catch(n){throw c(g=>g&&{...g,hot:{...g.hot,[t]:s}}),n}finally{u(!1)}},[o]),q=i.useCallback(async t=>{if(!o)return;const r=o.dashboard;c(s=>s&&{...s,dashboard:{...s.dashboard,...t}}),u(!0);try{const s=await k.patch("/api/dashboard/preferences",t);c(s)}catch(s){throw c(n=>n&&{...n,dashboard:r}),s}finally{u(!1)}},[o]);return{settings:o,license:a,saving:d,licenseControlsDisabled:m,licenseSubmitting:f,licenseMessage:M,licenseRecords:U,activateLicense:F,refreshLicense:G,resetLicense:O,updateHotSetting:W,updateDashboardPreferences:q,loading:p}}export{Ca as c,pa as l,la as m,ha as s,ba 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-B-46k2zD.js"></script>
8
+ <script type="module" crossorigin src="/dashboard/assets/index-CfT3smRY.js"></script>
9
9
  <link rel="stylesheet" crossorigin href="/dashboard/assets/index-CrljkNgf.css">
10
10
  </head>
11
11
  <body>