{
  "schemaVersion": 1,
  "kind": "kittycord-studio",
  "language": "javascript",
  "metadata": {
    "id": "local.focus-sessions",
    "name": "Focus Sessions",
    "version": "1.0.0",
    "author": "Local author"
  },
  "source": "globalThis.kittycordPlugin = /** @type {KittyPlugin} */ ({\n    start(api) {\n        let remaining = Number(api.settings.minutes ?? 25) * 60;\n        let timer = /** @type {number | undefined} */ (undefined);\n        const show = () => api.publishPanel({title: \"Focus sessions\", text: Math.floor(remaining / 60) + \":\" + String(remaining % 60).padStart(2, \"0\"), actions: [{id:\"start\",label:\"Start\"},{id:\"pause\",label:\"Pause\"},{id:\"reset\",label:\"Reset\"}], settings:[{id:\"minutes\",label:\"Session minutes\",type:\"number\",default:25,min:1,max:120}]});\n        const pause = () => { clearInterval(timer); timer = undefined; };\n        api.onAction(id => { if(id === \"start\" && timer === undefined) timer = setInterval(() => { if(remaining > 0) remaining--; if(remaining === 0) pause(); show(); }, 1000); if(id === \"pause\") pause(); if(id === \"reset\") { pause(); remaining = Number(api.settings.minutes ?? 25) * 60; show(); } });\n        api.onSettings(values => { pause(); remaining = Number(values.minutes) * 60; show(); });\n        show();\n    }\n});",
  "tokens": [],
  "tests": [],
  "api": "utility-v1"
}