@weppy/roblox-mcp 2.16.2 → 2.17.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +28 -0
- package/README.md +9 -1
- package/dashboard/dist/assets/AssetsPage-BRZSoLQp.css +1 -0
- package/dashboard/dist/assets/{AssetsPage-_CPMetwm.js → AssetsPage-ClzgrkC_.js} +9 -14
- package/dashboard/dist/assets/ChangelogPage-B1CY41my.css +1 -0
- package/dashboard/dist/assets/ChangelogPage-CRXXHovV.js +1 -0
- package/dashboard/dist/assets/ConfirmModal-Dz7mVKLZ.js +1 -0
- package/dashboard/dist/assets/ConnectionPage-B3fGIK2X.css +1 -0
- package/dashboard/dist/assets/ConnectionPage-CKKn3lt0.js +6 -0
- package/dashboard/dist/assets/ControlsPage-Ch6He2CV.js +1 -0
- package/dashboard/dist/assets/CurrentPlaceScope-COd50R0N.css +1 -0
- package/dashboard/dist/assets/CurrentPlaceScope-DhPCqaMU.js +1 -0
- package/dashboard/dist/assets/{GameChangeDetail-CCQ8h1ft.js → GameChangeDetail-CZuYgFvS.js} +1 -1
- package/dashboard/dist/assets/{InfoLabel-D6WxKFnG.js → InfoLabel-BGeOUBIl.js} +1 -1
- package/dashboard/dist/assets/OverviewPage-B-CtTLEP.js +1 -0
- package/dashboard/dist/assets/OverviewPage-CviBL36S.css +1 -0
- package/dashboard/dist/assets/PageHeader-CYbeZdtL.js +6 -0
- package/dashboard/dist/assets/PageHeader-ip0Enk1k.css +1 -0
- package/dashboard/dist/assets/PlaytestAiPromptExamples-DHVX0Ljy.css +1 -0
- package/dashboard/dist/assets/PlaytestAiPromptExamples-flhav1EU.js +1 -0
- package/dashboard/dist/assets/PlaytestPage-C092tN-C.js +127 -0
- package/dashboard/dist/assets/PlaytestPage-C3Vjgtlg.css +1 -0
- package/dashboard/dist/assets/SettingsPage-BO1WqaOl.css +1 -0
- package/dashboard/dist/assets/{SettingsPage-B_9NwPEF.js → SettingsPage-bEHQn_8W.js} +1 -1
- package/dashboard/dist/assets/{StatusBadge-Ddzg1cSk.js → StatusBadge-BmR5_DsF.js} +1 -1
- package/dashboard/dist/assets/SyncPage-BFz_XQ40.js +1 -0
- package/dashboard/dist/assets/SyncPage-BgbrC3SP.css +1 -0
- package/dashboard/dist/assets/Tabs-C7TenrZD.js +1 -0
- package/dashboard/dist/assets/Tabs-CPTkUoYi.css +1 -0
- package/dashboard/dist/assets/TierPromoPanel-C02VRkHz.js +1 -0
- package/dashboard/dist/assets/TierPromoPanel-Ch583WAw.css +1 -0
- package/dashboard/dist/assets/ToolsPage-ApMAWvg3.css +1 -0
- package/dashboard/dist/assets/ToolsPage-CJeoFakm.js +1 -0
- package/dashboard/dist/assets/{TooltipText-B1An7dUI.js → TooltipText-sb-BSgUg.js} +1 -1
- package/dashboard/dist/assets/{UiStudioPage-CWQgLMHO.js → UiStudioPage-C5dYQMax.js} +3 -3
- package/dashboard/dist/assets/UiStudioPage-CSK5gQMN.css +1 -0
- package/dashboard/dist/assets/WhatsNewPage-C_z4g3oa.js +1 -0
- package/dashboard/dist/assets/WhatsNewPage-WMbbAUsL.css +1 -0
- package/dashboard/dist/assets/bot-oMwejCZF.js +6 -0
- package/dashboard/dist/assets/check-EdHXSSef.js +6 -0
- package/dashboard/dist/assets/{copy-B03ftJiE.js → copy-CePVq0VI.js} +1 -1
- package/dashboard/dist/assets/index-DchewB5y.js +874 -0
- package/dashboard/dist/assets/index-VXvX8jPK.css +1 -0
- package/dashboard/dist/assets/sample-requests-BeoPIWbH.css +1 -0
- package/dashboard/dist/assets/{sample-requests-r6iFLFba.js → sample-requests-CQvn7a4-.js} +1 -1
- package/dashboard/dist/assets/trash-2-8V3SCC8q.js +6 -0
- package/dashboard/dist/assets/{useLiveUptime-CnfGQ_vS.js → useLiveUptime-BeZ9TLyF.js} +1 -1
- package/dashboard/dist/assets/useSettings-D5XHMODc.js +1 -0
- package/dashboard/dist/assets/useSettings-I6BaXsZq.css +1 -0
- package/dashboard/dist/index.html +2 -2
- package/dist/index.js +218 -126
- package/package.json +1 -1
- package/roblox-plugin/WeppyRobloxMCP.rbxm +0 -0
- package/dashboard/dist/assets/AssetsPage-BVUpssWN.css +0 -1
- package/dashboard/dist/assets/ChangelogPage-B9Ct115r.css +0 -1
- package/dashboard/dist/assets/ChangelogPage-BpTjHwvr.js +0 -1
- package/dashboard/dist/assets/ConfirmModal-BSbhJt6x.js +0 -1
- package/dashboard/dist/assets/ConnectionPage-BMIbBueG.js +0 -11
- package/dashboard/dist/assets/ConnectionPage-Ca5WLCm3.css +0 -1
- package/dashboard/dist/assets/ContentScopedDialog-D92wgDaU.js +0 -1
- package/dashboard/dist/assets/ContentScopedDialog-DCgVfmeB.css +0 -1
- package/dashboard/dist/assets/ControlsPage-C828Cgwo.js +0 -6
- package/dashboard/dist/assets/CurrentPlaceScope-BFYSAg2T.js +0 -1
- package/dashboard/dist/assets/CurrentPlaceScope-D-0g0WrM.css +0 -1
- package/dashboard/dist/assets/OverviewPage-B8RMrIaQ.js +0 -1
- package/dashboard/dist/assets/OverviewPage-Dsfl-NRT.css +0 -1
- package/dashboard/dist/assets/PageHeader-CrhjZjgp.css +0 -1
- package/dashboard/dist/assets/PageHeader-Xrn6BpcL.js +0 -6
- package/dashboard/dist/assets/PlaytestPage-C-WO2SsY.css +0 -1
- package/dashboard/dist/assets/PlaytestPage-CrCurhRT.js +0 -11
- package/dashboard/dist/assets/SettingsPage-BR71s-WH.css +0 -1
- package/dashboard/dist/assets/SyncPage-BNadN0NU.js +0 -1
- package/dashboard/dist/assets/SyncPage-sHUpW30U.css +0 -1
- package/dashboard/dist/assets/Tabs-CIszXeoU.css +0 -1
- package/dashboard/dist/assets/Tabs-DZDOsT6_.js +0 -1
- package/dashboard/dist/assets/ToolsPage-B4t6LvfV.css +0 -1
- package/dashboard/dist/assets/ToolsPage-bHm2QbDR.js +0 -1
- package/dashboard/dist/assets/UiStudioPage-Ds-eaGvd.css +0 -1
- package/dashboard/dist/assets/WhatsNewPage-D-iibgAc.js +0 -1
- package/dashboard/dist/assets/WhatsNewPage-wF04BABp.css +0 -1
- package/dashboard/dist/assets/index-BDzb8NjS.css +0 -1
- package/dashboard/dist/assets/index-Ygt1Wh6v.js +0 -778
- package/dashboard/dist/assets/sample-requests-DmUwqmFE.css +0 -1
- package/dashboard/dist/assets/useSettings-BrnGUYZY.js +0 -1
- package/dashboard/dist/assets/useSettings-Ce19GEW2.css +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
._page_1rrgy_2{display:flex;flex-direction:column;gap:var(--space-page);max-width:900px}._card_1rrgy_10{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:var(--card-padding-block) var(--card-padding-inline)}._cardHeader_1rrgy_17{font-family:var(--font-label);font-size:var(--type-card-title-size);font-weight:600;color:var(--text-primary);margin-bottom:var(--space-section);display:flex;align-items:center;justify-content:space-between;gap:var(--space-related)}._clearButton_1rrgy_29{border:1px solid var(--danger-border);background:var(--danger-bg);color:var(--danger-text);border-radius:var(--radius-control);padding:6px 12px;font-family:var(--font-label);font-size:12px;font-weight:600;cursor:pointer;transition:background var(--transition),border-color var(--transition),color var(--transition)}._clearButton_1rrgy_29:hover{background:var(--danger-hover-bg);border-color:var(--danger)}._clearButton_1rrgy_29:focus-visible{outline:none;box-shadow:var(--focus-ring)}._statusRow_1rrgy_53{display:flex;align-items:center;gap:12px;margin-bottom:8px}._metaItem_1rrgy_60{font-family:var(--font-code);font-size:12px;color:var(--text-secondary)}._statusGrid_1rrgy_66{display:grid;grid-template-columns:auto 1fr;gap:4px 16px;font-size:12px}._statusGrid_1rrgy_66 dt{color:var(--text-secondary);font-family:var(--font-label)}._statusGrid_1rrgy_66 dd{margin:0;font-family:var(--font-code);color:var(--text-primary)}._migrationPanel_1rrgy_85{display:flex;flex-direction:column;gap:16px;font-size:16px}._migrationHeader_1rrgy_92{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}._migrationTitle_1rrgy_99{margin:0;color:var(--text-primary);font-family:var(--font-label);font-size:20px;line-height:1.25;font-weight:600}._migrationDescription_1rrgy_108{max-width:640px;margin:8px 0 0;color:var(--text-secondary);font-size:16px;line-height:1.5}._migrationLedger_1rrgy_116{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--border);background:var(--bg-secondary)}._migrationLedgerItem_1rrgy_123{display:flex;min-width:0;min-height:64px;flex-direction:column;justify-content:center;gap:4px;padding:8px 12px;border-right:1px solid var(--border);color:var(--text-secondary);font-family:var(--font-label);font-size:14px}._migrationLedgerItem_1rrgy_123:last-child{border-right:0}._migrationLedgerItem_1rrgy_123 strong{color:var(--text-primary);font-family:var(--font-code);font-size:20px;font-variant-numeric:tabular-nums}._migrationLedgerBlocked_1rrgy_148 strong{color:var(--warning-text)}._migrationSection_1rrgy_152{display:flex;flex-direction:column;gap:8px}._migrationSection_1rrgy_152 h3{margin:0;color:var(--text-secondary);font-family:var(--font-label);font-size:14px;font-weight:600}._migrationList_1rrgy_166{display:flex;flex-direction:column;gap:0;margin:0;padding:0;border:1px solid var(--border);list-style:none}._migrationRow_1rrgy_176{display:grid;grid-template-columns:84px minmax(0,1fr);align-items:start;gap:12px;padding:12px;border-bottom:1px solid var(--border)}._migrationRow_1rrgy_176:last-child{border-bottom:0}._migrationOperation_1rrgy_189{min-width:76px;text-transform:uppercase}._migrationRowBody_1rrgy_194{display:flex;min-width:0;flex-direction:column;gap:4px}._migrationRowBody_1rrgy_194 code{overflow-wrap:anywhere;color:var(--text-primary);font-family:var(--font-code);font-size:14px;line-height:1.4}._migrationRowBody_1rrgy_194 span{color:var(--text-secondary);font-size:14px;line-height:1.4}._migrationNotice_1rrgy_215{min-height:24px;color:var(--warning-text);font-size:16px;line-height:1.5}._migrationActions_1rrgy_222{display:flex;justify-content:flex-end;gap:8px}._migrationButton_1rrgy_228{min-height:44px;padding:0 16px;font-size:16px}@media(max-width:640px){._migrationHeader_1rrgy_92{flex-direction:column}._migrationLedger_1rrgy_116{grid-template-columns:repeat(2,minmax(0,1fr))}._migrationLedgerItem_1rrgy_123:nth-child(2){border-right:0}._migrationLedgerItem_1rrgy_123:nth-child(-n+2){border-bottom:1px solid var(--border)}._migrationRow_1rrgy_176{grid-template-columns:1fr}._migrationActions_1rrgy_222{flex-direction:column-reverse}._migrationButton_1rrgy_228{width:100%}}._policySummary_1rrgy_265{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin:0;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-control);background:var(--border)}._policySummaryItem_1rrgy_276{display:grid;grid-template-columns:minmax(120px,.8fr) minmax(0,1.2fr);align-items:center;min-height:48px;gap:12px;padding:10px 12px;background:var(--bg-secondary)}._policySummaryItem_1rrgy_276 dt{color:var(--text-secondary);font-family:var(--font-label);font-size:12px}._policySummaryItem_1rrgy_276 dd{min-width:0;margin:0;color:var(--text-primary);font-family:var(--font-code);font-size:13px;overflow-wrap:anywhere}._policyPrimaryValue_1rrgy_301{font-family:var(--font-label)!important;font-size:16px!important;font-weight:600}._policyReviewNotice_1rrgy_307{margin-top:12px;padding:10px 12px;border:1px solid var(--warning-border);border-radius:var(--radius-control);background:var(--warning-bg);color:var(--warning-text);font-size:14px;line-height:1.45}._policyApplySection_1rrgy_318{margin-top:12px}._policyApplyHeader_1rrgy_322{margin-bottom:10px}._policyApplyTitle_1rrgy_326{margin:0;color:var(--text-primary);font-family:var(--font-label);font-size:14px;font-weight:600}._policyApplyDescription_1rrgy_334{margin:4px 0 0;color:var(--text-secondary);font-family:var(--font-label);font-size:13px;line-height:1.45}._policyInfoLabel_1rrgy_342{border-bottom:1px dotted var(--text-muted);cursor:help}._policyInfoLabel_1rrgy_342:focus-visible{outline:none;border-radius:2px;box-shadow:var(--focus-ring)}._policySafetyRow_1rrgy_353{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;min-height:48px;margin-top:8px;padding:0 12px;border:1px solid var(--border);border-radius:var(--radius-control)}._policySafetyLabel_1rrgy_365{color:var(--text-secondary);font-family:var(--font-label);font-size:12px}._policySafetyBadge_1rrgy_371{min-height:22px}._policyDisclosure_1rrgy_375{display:flex;width:100%;min-height:42px;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;padding:0 12px;border:1px solid var(--border);border-radius:var(--radius-control);background:var(--bg-card);color:var(--text-primary);font-family:var(--font-label);font-size:13px;font-weight:600;text-align:left;cursor:pointer;transition:background var(--transition),border-color var(--transition),color var(--transition)}._policyDisclosure_1rrgy_375:hover{border-color:var(--border-highlight);background:var(--bg-secondary);color:var(--accent)}._policyDisclosure_1rrgy_375:focus-visible{outline:none;box-shadow:var(--focus-ring)}._policyDisclosureIcon_1rrgy_407{flex:0 0 auto;color:var(--text-muted);font-family:var(--font-code);transition:transform var(--transition)}._policyDisclosureIconOpen_1rrgy_414{transform:rotate(180deg)}._policyScopeList_1rrgy_418{margin-top:8px;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-control)}._policyScopeRow_1rrgy_425{display:grid;grid-template-columns:minmax(180px,.9fr) minmax(0,1.1fr);align-items:center;min-height:44px;gap:16px;padding:8px 12px;border-bottom:1px solid var(--border)}._policyScopeRow_1rrgy_425:last-child{border-bottom:0}._policyScopeName_1rrgy_439{min-width:0;color:var(--text-secondary);font-family:var(--font-label);font-size:13px;overflow-wrap:anywhere}._policyScopeRow_1rrgy_425>[data-tooltip-text]{width:100%}._policyDirectionRail_1rrgy_451{display:grid;width:100%;min-width:0;grid-template-columns:minmax(0,1fr) 32px minmax(0,1fr);align-items:center;color:var(--text-secondary);font-family:var(--font-code)}._policyDirectionRail_1rrgy_451:focus-visible{outline:none;border-radius:2px;box-shadow:var(--focus-ring)}._policyDirectionEndpoint_1rrgy_467{min-width:0;font-size:11px;font-weight:500;overflow-wrap:anywhere}._policyDirectionEndpointStudio_1rrgy_474{text-align:right}._policyDirectionArrow_1rrgy_478{color:var(--accent);font-size:15px;font-weight:600;text-align:center}@media(max-width:640px){._policySummary_1rrgy_265{grid-template-columns:1fr}._policySummaryItem_1rrgy_276{grid-template-columns:minmax(112px,.8fr) minmax(0,1.2fr)}._policyScopeRow_1rrgy_425{grid-template-columns:1fr;gap:6px}._policySafetyRow_1rrgy_353{grid-template-columns:1fr;align-items:start;gap:8px;padding:10px 12px}._policySafetyRow_1rrgy_353>[data-tooltip-text]{max-width:100%;justify-self:start}._policySafetyBadge_1rrgy_371{height:auto;min-height:22px;white-space:normal;line-height:1.25;text-align:left}}._forwardBadge_1rrgy_521{display:inline-flex;align-items:center;min-height:20px;padding:2px 8px;font-size:10px;font-weight:600;letter-spacing:.04em;color:var(--text-secondary);background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-control)}._logContainer_1rrgy_536{max-height:240px;overflow-y:auto;font-family:var(--font-code);font-size:11px}._logEntry_1rrgy_543{display:flex;gap:10px;padding:3px 0;border-bottom:1px solid var(--border);color:var(--text-primary)}._logEntry_1rrgy_543:last-child{border-bottom:none}._logTime_1rrgy_555{color:var(--text-muted);flex-shrink:0;width:44px}._logType_1rrgy_561{font-weight:500;flex-shrink:0;width:90px;text-transform:uppercase;font-size:10px;letter-spacing:.04em}._logTypeWrite_1rrgy_570{color:var(--success)}._logTypeUpdate_1rrgy_574{color:var(--accent)}._logTypeDelete_1rrgy_578{color:var(--error)}._logTypeIdle_1rrgy_582{color:var(--text-muted)}._logPath_1rrgy_586{color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._logEmpty_1rrgy_593{color:var(--text-muted);font-style:italic;padding:8px 0}._overlay_1rrgy_600{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:48px 24px;gap:16px}._overlayTitle_1rrgy_610{font-family:var(--font-label);font-size:15px;font-weight:600;color:var(--text-primary)}._overlayMessage_1rrgy_617{font-size:13px;color:var(--text-secondary);max-width:400px}._checklist_1rrgy_623{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px;text-align:left}._checkItem_1rrgy_633{font-family:var(--font-code);font-size:12px;color:var(--text-secondary);padding-left:20px;position:relative}._checkItem_1rrgy_633:before{content:"○";position:absolute;left:0;color:var(--text-muted)}._upgradePanel_1rrgy_649{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);padding:16px 20px}._upgradePanelHeader_1rrgy_656{font-family:var(--font-label);font-size:13px;font-weight:600;color:var(--accent);margin-bottom:8px}._benefitList_1rrgy_664{list-style:none;padding:0;margin:0 0 12px;display:flex;flex-direction:column;gap:4px}._benefitItem_1rrgy_673{font-size:12px;color:var(--text-secondary);padding-left:16px;position:relative}._benefitItem_1rrgy_673:before{content:"+";position:absolute;left:0;color:var(--accent);font-weight:600}._upgradeActions_1rrgy_688{display:flex;gap:8px}._btn_1rrgy_693{font-family:var(--font-label);font-size:12px;padding:6px 14px;border-radius:var(--radius-control);border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;transition:background var(--transition),border-color var(--transition)}._btn_1rrgy_693:hover{border-color:var(--accent);background:var(--accent-dim)}._btnPrimary_1rrgy_710{background:var(--accent);color:var(--bg-card);border-color:var(--accent)}._btnPrimary_1rrgy_710:hover{opacity:.9}._disabled_1rrgy_721{opacity:.4;pointer-events:none}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r,p as k,j as d}from"./index-DchewB5y.js";const w="_backdrop_1sgib_1",T="_dialog_1sgib_19",j={backdrop:w,dialog:T},B=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[contenteditable="true"]','[tabindex]:not([tabindex="-1"])'].join(", ");function L(a){return Array.from(a.querySelectorAll(B))}function R(a){const s=document.activeElement;if(!(s instanceof HTMLElement))return!1;const c=s.closest('[role="dialog"][aria-modal="true"]');return c!==null&&c!==a}function M({open:a,ariaLabel:s,onClose:c,returnFocusTo:f=null,initialFocusRef:l,dismissDisabled:i=!1,children:m,testId:v}){const e=r.useRef(null),t=r.useRef(c),u=r.useRef(i),E=r.useRef(null);return t.current=c,u.current=i,r.useEffect(()=>{if(!a)return;const o=e.current;if(!o)return;const x=document.body.style.overflow;E.current=f??(document.activeElement instanceof HTMLElement?document.activeElement:null),document.body.style.overflow="hidden",((l==null?void 0:l.current)??o).focus();const _=n=>{if(R(o))return;if(n.key==="Escape"){n.preventDefault(),u.current||t.current();return}if(n.key!=="Tab")return;const g=L(o);if(g.length===0){n.preventDefault(),o.focus();return}const p=g[0],h=g[g.length-1],y=document.activeElement;n.shiftKey&&(y===p||!o.contains(y))?(n.preventDefault(),h.focus()):!n.shiftKey&&(y===h||!o.contains(y))&&(n.preventDefault(),p.focus())};return document.addEventListener("keydown",_),()=>{document.removeEventListener("keydown",_),document.body.style.overflow=x;const n=f??E.current;n&&document.contains(n)&&n.focus()}},[l,a,f]),a?k.createPortal(d.jsx("div",{className:j.backdrop,"data-testid":v,role:"presentation",onClick:o=>{o.target===o.currentTarget&&!i&&t.current()},children:d.jsx("section",{ref:e,className:j.dialog,role:"dialog","aria-modal":"true","aria-label":s,tabIndex:-1,children:m})}),document.body):null}const A="_tabBar_jefog_2",D="_tabs_jefog_9",N="_actions_jefog_14",C="_tab_jefog_2",S="_tabActive_jefog_52",b={tabBar:A,tabs:D,actions:N,tab:C,tabActive:S};function O({items:a,value:s,onChange:c,ariaLabel:f,className:l,rightActions:i}){const m=r.useRef(null),v=r.useRef(null);return r.useEffect(()=>{const e=()=>{const t=m.current,u=v.current;!t||!u||typeof t.scrollTo!="function"||t.scrollTo({left:Math.max(0,u.offsetLeft+u.offsetWidth/2-t.clientWidth/2),behavior:"auto"})};return e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[s]),d.jsxs("div",{ref:m,className:[b.tabBar,l].filter(Boolean).join(" "),role:"tablist","aria-label":f,children:[d.jsx("div",{className:b.tabs,children:a.map(e=>{const t=e.key===s;return d.jsx("button",{ref:t?v:void 0,type:"button",role:"tab","aria-selected":t,"data-testid":e.testId,className:[b.tab,t?b.tabActive:""].filter(Boolean).join(" "),onClick:()=>c(e.key),children:e.label},e.key)})}),i?d.jsx("div",{className:b.actions,children:i}):null]})}export{M as C,O as T};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
._backdrop_1sgib_1{position:fixed;top:calc(var(--header-height) + 16px);right:24px;bottom:24px;left:calc(var(--sidebar-width) + 24px);z-index:900;display:flex;align-items:stretch;justify-content:center;min-width:0;padding:clamp(12px,2vw,24px);overflow:hidden;box-sizing:border-box;background:#03071294;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}._dialog_1sgib_19{display:flex;flex:1;flex-direction:column;width:100%;height:100%;min-width:0;min-height:0;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);box-shadow:0 24px 60px #0000006b}._dialog_1sgib_19>*{min-width:0;min-height:0;max-height:100%}@media(max-width:1120px){._backdrop_1sgib_1{right:16px;bottom:16px;left:calc(var(--sidebar-width) + 16px);padding:12px}}@media(max-width:768px){._backdrop_1sgib_1{top:calc(var(--header-height) + 10px);right:10px;bottom:10px;left:calc(var(--sidebar-collapsed) + 10px);padding:8px}}._tabBar_jefog_2{display:flex;align-items:stretch;gap:2px;border-bottom:1px solid var(--border)}._tabs_jefog_9{display:flex;gap:2px}._actions_jefog_14{margin-left:auto;display:flex;align-items:center;gap:8px;padding-bottom:4px}._tab_jefog_2{font-family:var(--font-label);font-size:12px;font-weight:500;min-height:34px;padding:0 14px;background:transparent;border:1px solid transparent;border-bottom:2px solid transparent;border-radius:var(--radius-control) var(--radius-control) 0 0;color:var(--text-secondary);cursor:pointer;transition:background var(--transition),border-color var(--transition),color var(--transition)}._tab_jefog_2:hover{background:var(--bg-secondary);border-color:var(--border);border-bottom-color:transparent;color:var(--text-primary)}._tab_jefog_2:focus-visible{outline:none;box-shadow:var(--focus-ring)}._tabActive_jefog_52{background:var(--accent-dim);color:var(--accent);border-bottom-color:var(--accent)}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as m,c as d,q as h,j as n}from"./index-DchewB5y.js";const x="_actions_z7b39_60",f="_btn_z7b39_68",j="_btnPrimary_z7b39_99",z="_panel_z7b39_109",I="_panelIcon_z7b39_116",N="_panelTitle_z7b39_122",u="_panelDesc_z7b39_132",v="_benefitList_z7b39_140",y="_benefitItem_z7b39_149",e={actions:x,btn:f,btnPrimary:j,panel:z,panelIcon:I,panelTitle:N,panelDesc:u,benefitList:v,benefitItem:y};function g({icon:a,title:s,description:c,benefits:l,upgradeLabel:i,upgradeHref:r}){const{trackEvent:o}=m(),{pathname:_,search:b}=d(),p=h(_,b);return n.jsxs("div",{className:e.panel,children:[a&&n.jsx("div",{className:e.panelIcon,children:a}),n.jsx("div",{className:e.panelTitle,children:s}),n.jsx("div",{className:e.panelDesc,children:c}),n.jsx("ul",{className:e.benefitList,children:l.map(t=>n.jsx("li",{className:e.benefitItem,children:t},t))}),n.jsx("div",{className:e.actions,children:n.jsx("a",{className:`${e.btn} ${e.btnPrimary}`,href:r,target:"_blank",rel:"noreferrer",onClick:()=>o("dashboard_click_event",{click_target:"upgrade_cta",placement:"tier_panel",...p}),children:i})})]})}export{g as T};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
._progressPromoWrap_z7b39_1{display:flex;flex-direction:column;gap:8px}._progressPromo_z7b39_1{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:14px 20px;display:flex;align-items:center;gap:16px}._progressMain_z7b39_17{flex:1;min-width:0}._progressLabel_z7b39_22{font-family:var(--font-label);font-size:11px;color:var(--text-secondary);margin-bottom:6px;display:flex;justify-content:space-between;gap:12px}._progressBar_z7b39_32{height:6px;background:var(--bg-secondary);border-radius:3px;overflow:hidden}._progressFill_z7b39_39{height:100%;background:var(--pro-badge);border-radius:3px;transition:width var(--transition)}._progressTextGroup_z7b39_46{display:flex;flex-direction:column;gap:3px}._progressText_z7b39_46{font-family:var(--font-label);font-size:13px;color:var(--pro-badge);white-space:nowrap;font-weight:500}._actions_z7b39_60{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}._btn_z7b39_68{display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-label);font-size:12px;padding:6px 14px;border-radius:4px;border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;text-decoration:none;transition:background var(--transition),border-color var(--transition),opacity var(--transition)}._btn_z7b39_68:hover{border-color:var(--accent);background:var(--accent-dim)}._btnOutline_z7b39_89{border-color:var(--pro-badge);color:var(--pro-badge)}._btnOutline_z7b39_89:hover{background:var(--pro-bg-soft);border-color:var(--pro-badge)}._btnPrimary_z7b39_99{background:var(--pro-badge);color:var(--pro-text-on-badge);border-color:var(--pro-badge)}._btnPrimary_z7b39_99:hover{opacity:.9}._panel_z7b39_109{background:linear-gradient(180deg,var(--pro-bg-soft),transparent 60%),var(--bg-secondary);border:1px solid var(--pro-border);border-radius:var(--radius);padding:24px 20px}._panelIcon_z7b39_116{font-size:32px;margin-bottom:12px;text-align:center}._panelTitle_z7b39_122{font-family:var(--font-label);font-size:var(--type-section-title-size);font-weight:600;line-height:var(--leading-title);color:var(--pro-text);margin-bottom:8px;text-align:center}._panelDesc_z7b39_132{font-size:var(--type-body-size);color:var(--text-secondary);margin-bottom:16px;line-height:var(--leading-body);text-align:center}._benefitList_z7b39_140{list-style:none;padding:0;margin:0 0 16px;display:flex;flex-direction:column;gap:4px}._benefitItem_z7b39_149{font-size:12px;color:var(--text-secondary);padding-left:16px;position:relative}._benefitItem_z7b39_149:before{content:"+";position:absolute;left:0;color:var(--pro-badge);font-weight:600}@media(max-width:720px){._progressPromo_z7b39_1{flex-direction:column;align-items:stretch}._progressText_z7b39_46{white-space:normal}._actions_z7b39_60{justify-content:stretch}._btn_z7b39_68{width:100%}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
._wrapper_1s3lp_2{overflow-x:auto}._table_1s3lp_7{width:100%;border-collapse:collapse;font-family:var(--font-code);font-size:12px}._table_1s3lp_7 th{text-align:left;color:var(--text-muted);font-weight:500;padding:6px 8px;border-bottom:1px solid var(--border);background:var(--bg-secondary);white-space:nowrap;-webkit-user-select:none;user-select:none}._table_1s3lp_7 td{padding:6px 8px;color:var(--text-primary);border-bottom:1px solid var(--border-dim, rgba(255, 255, 255, .04))}._sortable_1s3lp_32{cursor:pointer;transition:color var(--transition)}._sortable_1s3lp_32:hover{color:var(--accent)}._sortArrow_1s3lp_41{margin-left:4px;font-size:10px}._table_1s3lp_7 tbody tr:hover td{background:var(--accent-dim)}._clickable_1s3lp_52{cursor:pointer}._empty_1s3lp_57{text-align:center;color:var(--text-muted);font-style:italic;padding:24px 8px}._page_1rtjt_2{display:flex;flex-direction:column;width:100%;min-width:0;gap:var(--content-gap);max-width:var(--content-max)}._card_1rtjt_14{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:var(--card-padding-block) var(--card-padding-inline)}._cardToolbar_1rtjt_21{display:flex;align-items:center;justify-content:space-between;gap:var(--space-section);margin-bottom:var(--space-section)}._sectionTitle_1rtjt_29{font-family:var(--font-label);font-size:var(--type-card-title-size);font-weight:600;color:var(--text-primary)}._dangerButton_1rtjt_36{border:1px solid var(--danger-border);background:var(--danger-bg);color:var(--danger-text);border-radius:var(--radius-control);padding:6px 12px;font-family:var(--font-label);font-size:12px;font-weight:500;cursor:pointer;transition:background var(--transition),border-color var(--transition)}._dangerButton_1rtjt_36:hover{background:var(--danger-hover-bg);border-color:var(--danger)}._proBadge_1rtjt_55{display:inline-block;margin-left:6px;padding:1px 5px;font-size:9px;font-weight:600;letter-spacing:.05em;color:var(--pro-text-on-badge);background:var(--pro-badge);border-radius:3px;vertical-align:middle}._statusOk_1rtjt_70{display:inline-flex;align-items:center;min-height:22px;padding:2px 8px;border:1px solid var(--success-border);border-radius:var(--radius-control);background:var(--success-bg);color:var(--success-text);font-weight:500;cursor:default}._statusFallback_1rtjt_83{display:inline-flex;align-items:center;min-height:22px;padding:2px 8px;border:1px solid var(--info-border);border-radius:var(--radius-control);background:var(--info-bg);color:var(--info-text);font-weight:600;cursor:default}._statusUnsupported_1rtjt_96,._statusWarning_1rtjt_109{display:inline-flex;align-items:center;min-height:22px;padding:2px 8px;border:1px solid var(--warning-border);border-radius:var(--radius-control);background:var(--warning-bg);color:var(--warning-text);font-weight:600;cursor:default}._statusError_1rtjt_122{display:inline-flex;align-items:center;min-height:22px;padding:2px 8px;border:1px solid var(--error-border);border-radius:var(--radius-control);background:var(--error-bg);color:var(--error-text);font-weight:600;cursor:default}._tierBasic_1rtjt_136{color:var(--text-secondary)}._tierPro_1rtjt_140{color:var(--pro-badge);font-weight:500}._tierMixed_1rtjt_145{color:var(--text-primary);font-weight:500}._errorText_1rtjt_151{color:var(--error)}._filterRow_1rtjt_156{display:flex;align-items:center;gap:12px;margin-bottom:12px}._filterLabel_1rtjt_163{font-family:var(--font-label);font-size:11px;color:var(--text-secondary);display:flex;align-items:center;gap:6px}._filterSelect_1rtjt_172{font-family:var(--font-code);font-size:12px;padding:3px 8px;border:1px solid var(--border);border-radius:var(--radius-control);background:var(--bg-secondary);color:var(--text-primary)}._filterSelect_1rtjt_172:focus-visible{outline:none;box-shadow:var(--focus-ring)}._detailsButton_1rtjt_187{min-height:28px;padding:3px 8px;border:1px solid var(--border);border-radius:var(--radius-control);background:var(--bg-secondary);color:var(--text-primary);font-family:var(--font-label);font-size:11px;cursor:pointer}._detailsButton_1rtjt_187:hover{border-color:var(--accent);background:var(--accent-dim)}._detailsButton_1rtjt_187:focus-visible{outline:none;box-shadow:var(--focus-ring)}._detailShell_1rtjt_210{display:flex;flex:1;min-width:0;min-height:0;flex-direction:column}._detailHeader_1rtjt_218{display:flex;flex:0 0 auto;align-items:center;justify-content:space-between;gap:16px;min-width:0;padding:16px 20px;border-bottom:1px solid var(--border)}._detailHeading_1rtjt_229{display:flex;min-width:0;flex-direction:column;gap:4px}._detailTitle_1rtjt_236{color:var(--text-primary);font-family:var(--font-label);font-size:13px;font-weight:600}._detailRecordName_1rtjt_243{overflow:hidden;color:var(--text-secondary);font-family:var(--font-code);font-size:11px;text-overflow:ellipsis;white-space:nowrap}._detailHeaderActions_1rtjt_252{display:flex;flex:0 0 auto;align-items:center;gap:10px}._detailCloseButton_1rtjt_259{display:inline-grid;width:34px;height:34px;place-items:center;padding:0;border:1px solid var(--border);border-radius:var(--radius-control);background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer}._detailCloseButton_1rtjt_259:hover{border-color:var(--accent);color:var(--text-primary)}._detailCloseButton_1rtjt_259:focus-visible{outline:none;box-shadow:var(--focus-ring)}._detailBody_1rtjt_282{display:flex;flex:1;min-width:0;min-height:0;overflow-x:hidden;overflow-y:auto;flex-direction:column;gap:12px;padding:20px}._detailSection_1rtjt_294{min-width:0;padding:14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-secondary);color:var(--text-secondary);font-size:12px}._detailSection_1rtjt_294>strong{display:block;margin-bottom:8px;color:var(--text-primary);font-family:var(--font-label);font-size:12px;font-weight:600}._detailList_1rtjt_313{display:flex;flex-direction:column;gap:6px}._detailItem_1rtjt_319{display:flex;flex-wrap:wrap;gap:6px;min-width:0}._detailLabel_1rtjt_326{font-family:var(--font-label);color:var(--text-muted)}._detailValue_1rtjt_331{min-width:0;color:var(--text-primary);overflow-wrap:anywhere}._pre_1rtjt_337{max-width:100%;font-family:var(--font-code);font-size:11px;color:var(--text-primary);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-control);padding:8px;margin-top:4px;overflow-x:auto;max-height:200px;overflow-y:auto;white-space:pre-wrap;word-break:break-all}._pagination_1rtjt_355{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:12px}._pageInfo_1rtjt_363{font-family:var(--font-code);font-size:12px;color:var(--text-secondary)}._btn_1rtjt_369{font-family:var(--font-label);font-size:12px;padding:4px 12px;border-radius:var(--radius-control);border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;transition:background var(--transition),border-color var(--transition)}._btn_1rtjt_369:hover:not(:disabled){border-color:var(--accent);background:var(--accent-dim)}._btn_1rtjt_369:disabled{opacity:.4;cursor:default}._btn_1rtjt_369:focus-visible{outline:none;box-shadow:var(--focus-ring)}._tierDistribution_1rtjt_397{margin-bottom:16px}._tierBarWrap_1rtjt_401{display:flex;height:12px;border-radius:6px;overflow:hidden;background:var(--bg-secondary)}._tierBarBasic_1rtjt_409{background:var(--text-secondary);transition:width .3s ease}._tierBarPro_1rtjt_414{background:var(--accent);transition:width .3s ease}._tierLabels_1rtjt_419{display:flex;justify-content:space-between;margin-top:4px;font-family:var(--font-code);font-size:11px;color:var(--text-secondary)}._statsTableWrap_1rtjt_428{border:1px solid var(--border);border-radius:var(--radius);overflow-x:auto;overflow-y:hidden}._statsTable_1rtjt_428{width:100%;border-collapse:collapse}._statsTable_1rtjt_428 th,._statsTable_1rtjt_428 td{padding:10px 12px;font-size:12px;text-align:left;border-bottom:1px solid var(--border)}._statsTable_1rtjt_428 th{font-family:var(--font-label);font-size:11px;font-weight:500;color:var(--text-secondary);background:var(--bg-secondary)}._statsTable_1rtjt_428 tbody tr:last-child td{border-bottom:none}._sortableHeader_1rtjt_460{cursor:pointer;-webkit-user-select:none;user-select:none}._sortArrow_1rtjt_465{margin-left:4px}._statsToolRow_1rtjt_469{cursor:pointer}._statsToolRow_1rtjt_469:hover td{background:var(--bg-secondary)}._statsActionRow_1rtjt_477 td{background:color-mix(in srgb,var(--bg-secondary) 72%,transparent)}._expandButton_1rtjt_481{display:inline-flex;align-items:center;gap:8px;padding:0;border:none;background:transparent;color:inherit;font:inherit;cursor:pointer}._expandIcon_1rtjt_493{width:10px;color:var(--text-secondary)}._actionLabel_1rtjt_498{display:inline-block;padding-left:18px;font-family:var(--font-code);color:var(--text-secondary)}._emptyStats_1rtjt_505{text-align:center;color:var(--text-muted)}._summaryLine_1rtjt_511{margin-top:12px;font-family:var(--font-code);font-size:12px;color:var(--text-muted);text-align:right}@media(max-width:720px){._card_1rtjt_14,._detailHeader_1rtjt_218{padding:14px 16px}._detailBody_1rtjt_282{padding:16px}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as e,r as i,b as I,D as ht,u as at,X as mt,a as bt,i as xt}from"./index-DchewB5y.js";import{P as ft}from"./PageHeader-CYbeZdtL.js";import{T as M}from"./TooltipText-sb-BSgUg.js";import{C as _t}from"./ConfirmModal-Dz7mVKLZ.js";import{T as gt,C as jt}from"./Tabs-C7TenrZD.js";import{C as yt}from"./CurrentPlaceScope-DhPCqaMU.js";import"./ConfirmModal.module-DJksQHBd.js";const Ct="_wrapper_1s3lp_2",Tt="_table_1s3lp_7",kt="_sortable_1s3lp_32",Nt="_sortArrow_1s3lp_41",St="_clickable_1s3lp_52",wt="_empty_1s3lp_57",A={wrapper:Ct,table:Tt,sortable:kt,sortArrow:Nt,clickable:St,empty:wt};function vt({columns:t,data:o,sortBy:c,sortDir:T="asc",onSort:b,onRowClick:l,rowKey:N,emptyMessage:S}){return e.jsx("div",{className:A.wrapper,children:e.jsxs("table",{className:A.table,children:[e.jsx("thead",{children:e.jsx("tr",{children:t.map(h=>e.jsxs("th",{style:h.width?{width:h.width}:void 0,className:h.sortable?A.sortable:void 0,onClick:h.sortable&&b?()=>b(h.key):void 0,children:[e.jsx("span",{children:h.label}),h.sortable&&c===h.key&&e.jsx("span",{className:A.sortArrow,children:T==="asc"?"▴":"▾"})]},h.key))})}),e.jsx("tbody",{children:o.length===0?e.jsx("tr",{children:e.jsx("td",{colSpan:t.length,className:A.empty,children:S||"No data"})}):o.map((h,w)=>{const C=N?N(h):String(w);return e.jsx("tr",{className:l?A.clickable:void 0,tabIndex:l?-1:void 0,onClick:l?_=>l(h,_.currentTarget):void 0,children:t.map(_=>e.jsx("td",{children:_.render?_.render(h):String(h[_.key]??"")},_.key))},C)})})]})})}function Mt(t){return{...t,sequenceNumber:typeof t.sequenceNumber=="number"?t.sequenceNumber:void 0,executionTimeMs:typeof t.executionTimeMs=="number"?t.executionTimeMs:void 0}}const Bt=50;function Pt(t){if(typeof t=="number")return{placeId:String(t)}}function Y(t,o){return typeof o!="number"?t:`${t}?placeId=${encodeURIComponent(String(o))}`}function Lt(t){const o=(t==null?void 0:t.placeId)??null,[c,T]=i.useState(null),[b,l]=i.useState(!0),[N,S]=i.useState([]),[h,w]=i.useState(0),[C,_]=i.useState(!1),[U,O]=i.useState(!0),[m,E]=i.useState(0),[g,F]=i.useState(""),B=i.useRef(null),k=i.useCallback(async()=>{l(!0);try{const j=Pt(o),u=j?await I.get("/api/dashboard/tool-stats",j):await I.get("/api/dashboard/tool-stats");T(u)}catch{}finally{l(!1)}},[o]),x=i.useCallback(async(j,u)=>{O(!0);try{const P={limit:String(Bt),offset:String(j)};u&&(P.tool=u),typeof o=="number"&&(P.placeId=String(o));const H=await I.get("/api/dashboard/history",P);S(H.entries.map(Mt)),w(H.total),_(H.hasMore)}catch{S([]),w(0),_(!1)}finally{O(!1)}},[o]),D=i.useCallback(()=>{k(),x(m,g)},[x,k,m,g]),V=i.useCallback(async()=>{await I.post(Y("/api/dashboard/tools/history/clear",o)),x(m,g)},[x,m,g,o]),K=i.useCallback(async()=>{await I.post(Y("/api/dashboard/tools/statistics/clear",o)),k()},[k,o]);return i.useEffect(()=>{k()},[k]),i.useEffect(()=>{x(m,g)},[x,m,g]),i.useEffect(()=>{const j=new ht;B.current=j,j.connect();const u=j.on("command",()=>{k(),x(m,g)});return()=>{u(),j.disconnect(),B.current=null}},[x,k,m,g]),{statistics:c,statsLoading:b,history:N,historyTotal:h,historyHasMore:C,historyLoading:U,historyOffset:m,historyToolFilter:g,setHistoryOffset:E,setHistoryToolFilter:F,refresh:D,clearHistory:V,clearStatistics:K}}const Et="_page_1rtjt_2",Ht="_card_1rtjt_14",At="_cardToolbar_1rtjt_21",Rt="_sectionTitle_1rtjt_29",It="_dangerButton_1rtjt_36",Ot="_proBadge_1rtjt_55",Ft="_statusOk_1rtjt_70",Dt="_statusFallback_1rtjt_83",$t="_statusUnsupported_1rtjt_96",qt="_statusWarning_1rtjt_109",Wt="_statusError_1rtjt_122",Ut="_tierBasic_1rtjt_136",Vt="_tierPro_1rtjt_140",Kt="_tierMixed_1rtjt_145",Gt="_filterRow_1rtjt_156",zt="_filterLabel_1rtjt_163",Jt="_filterSelect_1rtjt_172",Qt="_detailsButton_1rtjt_187",Zt="_detailShell_1rtjt_210",Xt="_detailHeader_1rtjt_218",Yt="_detailHeading_1rtjt_229",te="_detailTitle_1rtjt_236",ee="_detailRecordName_1rtjt_243",se="_detailHeaderActions_1rtjt_252",ae="_detailCloseButton_1rtjt_259",oe="_detailBody_1rtjt_282",le="_detailSection_1rtjt_294",re="_detailList_1rtjt_313",ie="_detailItem_1rtjt_319",ne="_detailLabel_1rtjt_326",ce="_detailValue_1rtjt_331",de="_pre_1rtjt_337",ue="_pagination_1rtjt_355",pe="_pageInfo_1rtjt_363",he="_btn_1rtjt_369",me="_tierDistribution_1rtjt_397",be="_tierBarWrap_1rtjt_401",xe="_tierBarBasic_1rtjt_409",fe="_tierBarPro_1rtjt_414",_e="_tierLabels_1rtjt_419",ge="_statsTableWrap_1rtjt_428",je="_statsTable_1rtjt_428",ye="_sortableHeader_1rtjt_460",Ce="_sortArrow_1rtjt_465",Te="_statsToolRow_1rtjt_469",ke="_statsActionRow_1rtjt_477",Ne="_expandButton_1rtjt_481",Se="_expandIcon_1rtjt_493",we="_actionLabel_1rtjt_498",ve="_emptyStats_1rtjt_505",Me="_summaryLine_1rtjt_511",a={page:Et,card:Ht,cardToolbar:At,sectionTitle:Rt,dangerButton:It,proBadge:Ot,statusOk:Ft,statusFallback:Dt,statusUnsupported:$t,statusWarning:qt,statusError:Wt,tierBasic:Ut,tierPro:Vt,tierMixed:Kt,filterRow:Gt,filterLabel:zt,filterSelect:Jt,detailsButton:Qt,detailShell:Zt,detailHeader:Xt,detailHeading:Yt,detailTitle:te,detailRecordName:ee,detailHeaderActions:se,detailCloseButton:ae,detailBody:oe,detailSection:le,detailList:re,detailItem:ie,detailLabel:ne,detailValue:ce,pre:de,pagination:ue,pageInfo:pe,btn:he,tierDistribution:me,tierBarWrap:be,tierBarBasic:xe,tierBarPro:fe,tierLabels:_e,statsTableWrap:ge,statsTable:je,sortableHeader:ye,sortArrow:Ce,statsToolRow:Te,statsActionRow:ke,expandButton:Ne,expandIcon:Se,actionLabel:we,emptyStats:ve,summaryLine:Me},Be=new Set(["clientId","placeId","pinnedTarget","recentPriority","globalQueue"]);function tt(t){return typeof t=="string"&&t.length>0?t:void 0}function Pe(t){if(!Array.isArray(t))return;const o=t.filter(c=>typeof c=="string"&&c.length>0);return o.length>0?o:void 0}function Le(t){const o=t.result??{};return{requestedCommand:t.requestedCommand??tt(o.requestedCommand),executedCommand:t.executedCommand??tt(o.executedCommand),alternatives:t.alternatives??Pe(o.alternatives)}}function ot(t,o){switch(t.status){case"fallback":return{label:o("tools.badge.fallback","FALLBACK"),tooltip:o("tools.badge.fallback.tooltip","The requested Pro action succeeded via a Basic fallback."),className:a.statusFallback};case"unsupported":return{label:o("tools.badge.unsupported","UNSUPPORTED"),tooltip:o("tools.badge.unsupported.tooltip","The requested Pro action was blocked and no fallback ran."),className:a.statusUnsupported};case"warning":return{label:o("tools.badge.warn","WARN"),tooltip:o("tools.badge.warn.tooltip","The tool call failed as an expected caller, project, policy, or user-code issue."),className:a.statusWarning};case"error":return{label:o("tools.badge.err","FAILED"),tooltip:o("tools.badge.err.tooltip","The tool run failed."),className:a.statusError};default:return{label:o("tools.status.ok","OK"),tooltip:o("tools.status.ok.tooltip","The tool run completed successfully."),className:a.statusOk}}}function y(t,o){return e.jsxs("div",{className:a.detailItem,children:[e.jsx("span",{className:a.detailLabel,children:t}),e.jsx("span",{className:a.detailValue,children:o})]})}function Ee(t){if(!t||typeof t!="object")return;const o=t;if(typeof o.selectionMode=="string"&&Be.has(o.selectionMode))return o}function et(t){if(!(!t||typeof t!="object"||!("routing"in t)))return Ee(t.routing)}function He(t){return t.routing??et(t.result)??et(t.data)}function Ae(t,o){return t.requestedClientId?t.requestedClientId:t.requestedPlaceId!==void 0?t.requestedPlaceId:o("tools.history.routing.none","No Studio target named")}function Re(t){return t.actualPlaceName?`${t.actualPlaceName} · ${t.actualPlaceId??"-"}`:t.actualClientId??"-"}function Ie({entry:t,onClose:o}){const{t:c}=at(),T=ot(t,c),b=Le(t),l=He(t);return e.jsxs("div",{className:a.detailShell,children:[e.jsxs("header",{className:a.detailHeader,children:[e.jsxs("div",{className:a.detailHeading,children:[e.jsx("span",{className:a.detailTitle,children:c("tools.detail.title","Tool execution")}),e.jsx("span",{className:a.detailRecordName,children:t.command})]}),e.jsxs("div",{className:a.detailHeaderActions,children:[e.jsx(M,{text:T.tooltip,children:e.jsx("span",{className:T.className,children:T.label})}),e.jsx("button",{type:"button",className:a.detailCloseButton,onClick:o,"aria-label":c("common.close","Close"),children:e.jsx(mt,{size:18,"aria-hidden":"true"})})]})]}),e.jsxs("div",{className:a.detailBody,children:[e.jsxs("section",{className:a.detailSection,children:[e.jsx("strong",{children:e.jsx(M,{text:c("tools.detail.params.tooltip","Input parameters passed to this tool run."),children:c("tools.detail.params","Parameters")})}),e.jsx("pre",{className:a.pre,children:JSON.stringify(t.parameters,null,2)})]}),t.result&&e.jsxs("section",{className:a.detailSection,children:[e.jsx("strong",{children:e.jsx(M,{text:c("tools.detail.result.tooltip","Returned result payload for this tool run."),children:c("tools.detail.result","Result")})}),e.jsx("pre",{className:a.pre,children:JSON.stringify(t.result,null,2)})]}),l&&e.jsxs("section",{className:a.detailSection,children:[e.jsx("strong",{children:c("tools.history.routing","Routing")}),e.jsxs("div",{className:a.detailList,children:[y(c("tools.history.routing.mode","Mode"),l.selectionMode),y(c("tools.history.routing.requested","Requested"),Ae(l,c)),y(c("tools.history.routing.actual","Actual"),Re(l))]})]}),(t.status==="fallback"||t.status==="unsupported"||t.status==="warning"||t.status==="error")&&e.jsx("section",{className:a.detailSection,children:e.jsxs("div",{className:a.detailList,children:[t.status==="fallback"&&b.requestedCommand?y(c("tools.detail.requestedCommand","Requested Command"),b.requestedCommand):null,t.status==="fallback"&&b.executedCommand?y(c("tools.detail.executedCommand","Executed Command"),b.executedCommand):null,t.status==="fallback"&&b.alternatives?y(c("tools.detail.alternatives","Alternatives"),b.alternatives.join(", ")):null,t.status==="unsupported"&&t.blockedMessage?y(c("tools.detail.blockedMessage","Blocked Reason"),t.blockedMessage):null,t.status==="unsupported"?y(c("tools.detail.noFallback","No Fallback"),c("tools.detail.noFallback.value","No fallback ran.")):null,t.status==="warning"&&t.warningMessage?y(c("tools.detail.warningMessage","Warning Message"),t.warningMessage):null,t.status==="error"&&t.errorMessage?y(c("tools.detail.errorMessage","Error Message"),t.errorMessage):null,t.status==="error"&&t.blockedMessage?y(c("tools.detail.blockedMessage","Blocked Reason"),t.blockedMessage):null,t.status==="error"&&t.fallbackCommand?y(c("tools.detail.executedCommand","Executed Command"),t.fallbackCommand):null]})})]})]})}const G=50;function Oe(t){const o=new Date(t);return`${String(o.getHours()).padStart(2,"0")}:${String(o.getMinutes()).padStart(2,"0")}:${String(o.getSeconds()).padStart(2,"0")}`}function W(t){return typeof t!="number"||!Number.isFinite(t)?"-":t<1e3?`${t}ms`:`${(t/1e3).toFixed(1)}s`}function R(t,o){return o==="pro"?t("tier.pro","Pro"):o==="mixed"?t("tier.mixed","Mixed"):t("tier.basic","Basic")}function lt(t,o){return o!==t&&o.startsWith(`${t}_`)?o.slice(t.length+1):""}function st(t,o){const c=lt(t,o);return c?`${t}.${c}`:t}function Ge(){const{t}=at(),{trackEvent:o,trackPageView:c}=bt(),[T,b]=i.useState(null),l=Lt({placeId:T}),{show:N}=xt(),[S,h]=i.useState("history"),[w,C]=i.useState(null),_=i.useRef(null),[U,O]=i.useState(null),[m,E]=i.useState(null),[g,F]=i.useState(!1),[B,k]=i.useState("totalCalls"),[x,D]=i.useState("desc"),V=i.useCallback(s=>{k(n=>n===s?(D(r=>r==="asc"?"desc":"asc"),s):(D("desc"),s))},[]),K=i.useMemo(()=>{var n;const s=new Set;return Object.keys(((n=l.statistics)==null?void 0:n.tools)??{}).forEach(r=>s.add(r)),l.history.forEach(r=>{r.tool&&s.add(r.tool)}),l.historyToolFilter&&s.add(l.historyToolFilter),Array.from(s).sort()},[l.history,l.historyToolFilter,l.statistics]),j=i.useMemo(()=>{var s;return(s=l.statistics)!=null&&s.tools?Object.values(l.statistics.tools).map(n=>{var X;const r=Object.entries(n.commands??{}).map(([p,d])=>({toolName:n.tool,commandName:d.command??p,label:lt(n.tool,d.command??p)||(d.command??p),tier:d.tier,totalCalls:d.totalCalls,successCount:d.successCount,fallbackCount:d.fallbackCount,unsupportedCount:d.unsupportedCount,warningCount:d.warningCount??0,failureCount:d.failureCount,totalExecutionTimeMs:d.totalExecutionTimeMs,avgExecutionTimeMs:d.avgExecutionTimeMs})),f=r.reduce((p,d)=>p+d.totalCalls,0),v=r.reduce((p,d)=>p+d.successCount,0),$=r.reduce((p,d)=>p+d.fallbackCount,0),q=r.reduce((p,d)=>p+d.unsupportedCount,0),dt=r.reduce((p,d)=>p+d.warningCount,0),ut=r.reduce((p,d)=>p+d.failureCount,0),Z=r.reduce((p,d)=>p+d.totalExecutionTimeMs,0),pt=new Set(r.map(p=>p.tier)).size>1?"mixed":((X=r[0])==null?void 0:X.tier)??n.tier;return{toolName:n.tool,tier:pt,commands:r,totalCalls:f,successCount:v,fallbackCount:$,unsupportedCount:q,warningCount:dt,failureCount:ut,totalExecutionTimeMs:Z,avgExecutionTimeMs:f>0?Math.round(Z/f):0}}):[]},[l.statistics]),u=i.useCallback((s,n,r,f)=>e.jsx(M,{text:t(r,f),children:t(s,n)}),[t]),P=i.useCallback((s,n)=>{_.current=n,C(s)},[]),H=i.useCallback(()=>{C(null)},[]),z=i.useMemo(()=>[...j].sort((n,r)=>{const f=n[B],v=r[B];if(typeof f=="number"&&typeof v=="number")return x==="asc"?f-v:v-f;const $=String(f??""),q=String(v??"");return x==="asc"?$.localeCompare(q):q.localeCompare($)}),[j,B,x]),rt=i.useMemo(()=>[{key:"timestamp",label:u("tools.col.time","Time","tools.col.time.tooltip","When the tool run was recorded."),width:"80px",render:s=>Oe(s.timestamp)},{key:"toolName",label:u("tools.col.toolAction","Tool.Action","tools.col.toolAction.tooltip","Tool name and action that were executed."),render:s=>e.jsxs("span",{children:[st(s.tool,s.command),s.tier==="pro"&&e.jsx(M,{text:t("tools.badge.pro.tooltip","This entry used a Pro-only tool or action."),children:e.jsx("span",{className:a.proBadge,children:t("tools.badge.pro","PRO")})})]})},{key:"executionTimeMs",label:u("tools.col.duration","Duration","tools.col.duration.tooltip","How long the tool took to finish."),width:"80px",render:s=>W(s.executionTimeMs)},{key:"status",label:u("tools.col.status","Status","tools.col.status.tooltip","Outcome of the recorded tool run."),width:"120px",render:s=>{const n=ot(s,t);return e.jsx(M,{text:n.tooltip,children:e.jsx("span",{className:n.className,children:n.label})})}},{key:"tier",label:u("tools.col.tier","Tier","tools.col.tier.tooltip","License tier required for the tool or action."),width:"60px",render:s=>e.jsx("span",{className:s.tier==="pro"?a.tierPro:a.tierBasic,children:R(t,s.tier)})},{key:"details",label:t("tools.detail.open","Details"),width:"84px",render:s=>{const n=st(s.tool,s.command);return e.jsx("button",{type:"button",className:a.detailsButton,"aria-haspopup":"dialog","aria-label":t("tools.detail.openLabel","View details for {command}").replace("{command}",n),onClick:r=>{r.stopPropagation(),P(s,r.currentTarget)},children:t("tools.detail.open","Details")})}}],[P,t,u]),J=i.useMemo(()=>[{key:"toolName",label:u("tools.col.tool","Tool","tools.col.tool.tooltip","Consolidated tool name in the statistics table."),sortable:!0},{key:"totalCalls",label:u("tools.col.calls","Calls","tools.col.calls.tooltip","Total number of recorded calls for this tool."),sortable:!0,width:"70px"},{key:"successCount",label:u("tools.col.ok","OK","tools.col.ok.tooltip","Number of direct successful runs."),sortable:!0,width:"70px"},{key:"fallbackCount",label:u("tools.col.fallback","FALLBACK","tools.col.fallback.tooltip","Number of runs that succeeded through fallback execution."),sortable:!0,width:"110px"},{key:"unsupportedCount",label:u("tools.col.unsupported","UNSUPPORTED","tools.col.unsupported.tooltip","Number of blocked runs without fallback execution."),sortable:!0,width:"130px"},{key:"warningCount",label:u("tools.col.warn","WARN","tools.col.warn.tooltip","Number of expected failures caused by caller input, project state, Roblox policy, or user code."),sortable:!0,width:"80px"},{key:"failureCount",label:u("tools.col.err","FAILED","tools.col.err.tooltip","Number of runs that failed."),sortable:!0,width:"70px"},{key:"avgExecutionTimeMs",label:u("tools.col.avgTime","Avg Time","tools.col.avgTime.tooltip","Average execution time across recorded calls."),sortable:!0,width:"90px",render:s=>W(s.avgExecutionTimeMs)},{key:"tier",label:u("tools.col.tier","Tier","tools.col.tierStats.tooltip","Basic, Pro, or Mixed summary for the tool statistics row."),sortable:!0,width:"70px",render:s=>e.jsx(M,{text:s.tier==="mixed"?t("tools.tier.mixed.tooltip","This tool includes both Basic and Pro actions."):"",children:e.jsx("span",{className:s.tier==="pro"?a.tierPro:s.tier==="mixed"?a.tierMixed:a.tierBasic,children:R(t,s.tier)})})}],[t,u]),L=i.useMemo(()=>{if(!l.statistics)return null;const s=l.statistics.tierSummary.basic.totalCalls,n=l.statistics.tierSummary.pro.totalCalls,r=s+n;if(r===0)return null;const f=Math.round(s/r*100),v=100-f;return{basic:s,pro:n,basicPct:f,proPct:v}},[l.statistics]),Q=i.useCallback(s=>{O(n=>n===s?null:s)},[]),it=i.useCallback(async()=>{if(m){F(!0);try{m==="history"?await l.clearHistory():await l.clearStatistics(),N(t("toast.clearSuccess","Cleared successfully"),"success"),E(null)}catch{N(t("toast.clearFailed","Failed to clear data"),"error")}finally{F(!1)}}},[m,N,t,l]),nt=i.useCallback(s=>{const n=s==="history"?"tools_history":"tools_statistics";o("dashboard_click_event",{click_target:s==="history"?"tools_tab_history":"tools_tab_statistics",page:"tools",tab:n}),c({page:"tools",tab:n}),C(null),h(s)},[o,c]),ct=["history","statistics"].map(s=>({key:s,label:t(`tools.tab.${s}`,s.charAt(0).toUpperCase()+s.slice(1))}));return e.jsxs("div",{className:a.page,children:[e.jsx(ft,{title:t("page.tools.title","Tools"),description:t("page.tools.description","Inspect tool history, outcomes, fallback details, and usage statistics."),helpTopicId:"tools"}),e.jsx(yt,{surface:"tools",selectable:!0,selectedPlaceId:T,onSelectedPlaceIdChange:s=>{C(null),b(s),l.setHistoryOffset(0)}}),e.jsx(gt,{items:ct,value:S,onChange:nt}),S==="history"&&e.jsxs("div",{className:a.card,children:[e.jsxs("div",{className:a.cardToolbar,children:[e.jsx("div",{className:a.sectionTitle,children:t("tools.tab.history","History")}),e.jsx("button",{className:a.dangerButton,onClick:()=>{o("dashboard_click_event",{click_target:"tools_clear_history",page:"tools",tab:"tools_history"}),E("history")},children:t("common.clear","Clear")})]}),e.jsx("div",{className:a.filterRow,children:e.jsxs("label",{className:a.filterLabel,children:[t("tools.filter.tool","Tool"),":",e.jsxs("select",{className:a.filterSelect,value:l.historyToolFilter,onChange:s=>{C(null),l.setHistoryToolFilter(s.target.value),l.setHistoryOffset(0)},children:[e.jsx("option",{value:"",children:t("tools.filter.all","All")}),K.map(s=>e.jsx("option",{value:s,children:s},s))]})]})}),e.jsx(vt,{columns:rt,data:l.history,rowKey:s=>s.id,onRowClick:(s,n)=>P(s,n),emptyMessage:t("tools.empty.history","No tool history entries for this place")}),e.jsxs("div",{className:a.pagination,children:[e.jsx("button",{className:a.btn,disabled:l.historyOffset===0,title:t("tools.page.prev.tooltip","Go to the previous page of tool history results."),onClick:()=>{C(null),l.setHistoryOffset(Math.max(0,l.historyOffset-G))},children:t("tools.page.prev","Prev")}),e.jsxs("span",{className:a.pageInfo,children:[l.historyOffset+1,"–",Math.min(l.historyOffset+G,l.historyTotal)," / ",l.historyTotal]}),e.jsx("button",{className:a.btn,disabled:!l.historyHasMore,title:t("tools.page.next.tooltip","Go to the next page of tool history results."),onClick:()=>{C(null),l.setHistoryOffset(l.historyOffset+G)},children:t("tools.page.next","Next")})]})]}),S==="statistics"&&e.jsxs("div",{className:a.card,children:[e.jsxs("div",{className:a.cardToolbar,children:[e.jsx("div",{className:a.sectionTitle,children:t("tools.tab.statistics","Statistics")}),e.jsx("button",{className:a.dangerButton,onClick:()=>{o("dashboard_click_event",{click_target:"tools_clear_statistics",page:"tools",tab:"tools_statistics"}),E("statistics")},children:t("common.clear","Clear")})]}),L&&e.jsxs("div",{className:a.tierDistribution,children:[e.jsxs("div",{className:a.tierBarWrap,children:[e.jsx("div",{className:a.tierBarBasic,style:{width:`${L.basicPct}%`}}),e.jsx("div",{className:a.tierBarPro,style:{width:`${L.proPct}%`}})]}),e.jsxs("div",{className:a.tierLabels,children:[e.jsxs("span",{children:[R(t,"basic")," ",L.basicPct,"% (",L.basic,")"]}),e.jsxs("span",{children:[R(t,"pro")," ",L.proPct,"% (",L.pro,")"]})]})]}),e.jsx("div",{className:a.statsTableWrap,children:e.jsxs("table",{className:a.statsTable,children:[e.jsx("thead",{children:e.jsx("tr",{children:J.map(s=>e.jsxs("th",{style:s.width?{width:s.width}:void 0,className:s.sortable?a.sortableHeader:void 0,onClick:s.sortable?()=>V(s.key):void 0,children:[e.jsx("span",{children:s.label}),s.sortable&&B===s.key&&e.jsx("span",{className:a.sortArrow,children:x==="asc"?"▴":"▾"})]},s.key))})}),e.jsx("tbody",{children:z.length===0?e.jsx("tr",{children:e.jsx("td",{colSpan:J.length,className:a.emptyStats,children:t("tools.empty.stats","No tool statistics for this place")})}):z.map(s=>{const n=U===s.toolName;return e.jsxs(i.Fragment,{children:[e.jsxs("tr",{className:a.statsToolRow,onClick:()=>Q(s.toolName),children:[e.jsx("td",{children:e.jsxs("button",{type:"button",className:a.expandButton,"aria-expanded":n,"aria-label":`${s.toolName} ${n?t("common.collapse","Collapse"):t("common.expand","Expand")}`,onClick:r=>{r.stopPropagation(),Q(s.toolName)},children:[e.jsx("span",{className:a.expandIcon,"aria-hidden":"true",children:n?"▾":"▸"}),e.jsx("span",{children:s.toolName})]})}),e.jsx("td",{children:s.totalCalls}),e.jsx("td",{children:s.successCount}),e.jsx("td",{children:s.fallbackCount}),e.jsx("td",{children:s.unsupportedCount}),e.jsx("td",{children:s.warningCount}),e.jsx("td",{children:s.failureCount}),e.jsx("td",{children:W(s.avgExecutionTimeMs)}),e.jsx("td",{children:e.jsx(M,{text:s.tier==="mixed"?t("tools.tier.mixed.tooltip","This tool includes both Basic and Pro actions."):"",children:e.jsx("span",{className:s.tier==="pro"?a.tierPro:s.tier==="mixed"?a.tierMixed:a.tierBasic,children:R(t,s.tier)})})})]}),n&&s.commands.map(r=>e.jsxs("tr",{className:a.statsActionRow,children:[e.jsx("td",{children:e.jsx("span",{className:a.actionLabel,children:r.label})}),e.jsx("td",{children:r.totalCalls}),e.jsx("td",{children:r.successCount}),e.jsx("td",{children:r.fallbackCount}),e.jsx("td",{children:r.unsupportedCount}),e.jsx("td",{children:r.warningCount}),e.jsx("td",{children:r.failureCount}),e.jsx("td",{children:W(r.avgExecutionTimeMs)}),e.jsx("td",{children:e.jsx("span",{className:r.tier==="pro"?a.tierPro:a.tierBasic,children:R(t,r.tier)})})]},`${s.toolName}:${r.commandName}`))]},s.toolName)})})]})}),l.statistics&&e.jsxs("div",{className:a.summaryLine,children:[t("tools.summary.total","Total"),": ",l.statistics.totalCalls," ",t("tools.summary.calls","calls")," | ",t("tools.summary.sessions","Sessions"),": ",l.statistics.totalSessions]})]}),e.jsx(jt,{open:w!==null,ariaLabel:t("tools.detail.dialogLabel","Tool execution detail"),onClose:H,returnFocusTo:_.current,testId:"tools-history-detail-popup-layer",children:w&&e.jsx(Ie,{entry:w,onClose:H})}),e.jsx(_t,{open:m!==null,title:m==="history"?t("tools.clear.history.title","Clear history?"):t("tools.clear.statistics.title","Clear statistics?"),message:m==="history"?t("tools.clear.history.message","This permanently removes the current place tools history."):t("tools.clear.statistics.message","This permanently resets the current place tool statistics."),cancelLabel:t("common.cancel","Cancel"),confirmLabel:t("common.clear","Clear"),loading:g,onCancel:()=>!g&&E(null),onConfirm:it})]})}export{Ge as Component};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as r,h as s}from"./index-
|
|
1
|
+
import{j as r,h as s}from"./index-DchewB5y.js";function p({text:o,children:t}){return r.jsx(s,{text:o,children:t})}export{p as T};
|