dev-process-kit 0.3.1 → 0.3.2
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/dist/boards.js +1 -1
- package/dist/chunks/{shared-CeCpFPDQ.js → shared-7Yki1uKI.js} +1 -1
- package/dist/chunks/{shared-CF2_VP2x.js → shared-BBTySCXK.js} +1 -1
- package/dist/chunks/{shared-egtdNQhY.js → shared-BPVvO01I.js} +1 -1
- package/dist/chunks/{shared-2OsWmhrI.js → shared-BblP0eEY.js} +1 -1
- package/dist/chunks/{shared-DJtGS7Ct.js → shared-Bu1HuBxn.js} +1 -1
- package/dist/chunks/{shared-C89fKgKG.js → shared-C44CU0VV.js} +1 -1
- package/dist/chunks/{shared-Dd8JfvQe.js → shared-C4EqS9Lp.js} +1 -1
- package/dist/chunks/{shared-Dn92ukYW.js → shared-C5wXNKl3.js} +1 -1
- package/dist/chunks/{shared-DIEJ9E2G.js → shared-Cbm3cQ8l.js} +1 -1
- package/dist/chunks/{shared-C0M3Ib7z.js → shared-DPD_tBh8.js} +1 -1
- package/dist/chunks/{shared-B8ZhyjWv.js → shared-DlZJHHpN.js} +287 -205
- package/dist/chunks/{shared-BXywwm1a.js → shared-UH4xqvj9.js} +395 -371
- package/dist/chunks/{shared-Dql0ZVdC.js → shared-bP-1q7ZQ.js} +1 -1
- package/dist/chunks/{shared-Be43xweD.js → shared-bQPXht-t.js} +1 -1
- package/dist/chunks/shared-hhwSHdS3.js +1 -0
- package/dist/chunks/{shared-ubG0-RQ-.js → shared-nrgnwzCU.js} +1 -1
- package/dist/chunks/{shared-B57TT0rn.js → shared-pYjptMZ1.js} +1 -1
- package/dist/components.js +1 -1
- package/dist/index.js +1 -1
- package/dist/views/delegation-poker.js +1 -1
- package/dist/views/plain.js +1 -1
- package/dist/views/prototype.js +1 -1
- package/dist/views/slides.js +1 -1
- package/dist/views/task-board.js +1 -1
- package/dist/views/usm.js +1 -1
- package/package.json +1 -1
- package/dist/chunks/shared-LHG2FbnK.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{au as qe,bf as B,av as u,aw as l,aa as w,az as $,ac as b,aM as g,aB as j,aN as _,ax as Y,ay as V,p as y,t as Ce,aC as Be,aO as _e,aA as Le,ab as L,N as Pe,e as Ne,a5 as Re,S as Ge,P as S,ai as n,as as d,z as Ie,bm as Qe,bn as Ue,aH as E,bc as J,bd as Me,I as He,bz as P,ah as We,V as X,bh as Ke,l as Fe,aW as je}from"./shared-B8ZhyjWv.js";import{a as Ye}from"./shared-C0M3Ib7z.js";import{D as Ve,d as Je}from"./shared-ubG0-RQ-.js";import{o as T}from"./shared-LHG2FbnK.js";const Z=["working","waiting","blocked","done"],D=["todo","doing","blocked","done"],ee=["agent","human"],v=Y(b(),V(1)),Xe=u({id:g,name:v,kind:l($(ee),"agent")}),Ze=u({id:g,title:v,status:l($(D),"todo"),assignee:l(g),note:l(b()),design:l(g),proposed:l(j(),!1),reason:l(b()),questions:_}),ea=u({id:g,label:l(b()),href:v,kind:l(b()),description:l(b()),questions:_}),aa=u({id:g,title:v,body:l(b()),questions:_}),ta=u({id:g,ref:l(v),title:v,description:l(b()),blocking:l(j(),!1),assumption:l(b())}),ae=u({title:l(b(),""),status:l($(Z)),designs:l(w(aa),[]),members:l(w(Xe),[]),todos:l(w(Ze),[]),outputs:l(w(ea),[]),questions:l(w(ta),[])}),O=(a,e)=>{const t=new Set;for(const s of e){if(t.has(s))throw new Error(`duplicate ${a} id: ${s}`);t.add(s)}},k=a=>a===void 0||a.trim()===""?null:a,te=a=>{const e=qe(ae,a);O("member",e.members.map(o=>o.id)),O("design",e.designs.map(o=>o.id)),O("todo",e.todos.map(o=>o.id)),O("output",e.outputs.map(o=>o.id)),O("question",e.questions.map(o=>o.id));const t=new Set(e.members.map(o=>o.id));for(const o of e.todos)if(o.assignee!==void 0&&!t.has(o.assignee))throw new Error(`todo ${o.id} is assigned to ${o.assignee}, which is not in members`);const s=new Set(e.designs.map(o=>o.id));for(const o of e.todos)if(o.design!==void 0&&!s.has(o.design))throw new Error(`todo ${o.id} belongs to ${o.design}, which is not in designs`);for(const o of e.questions)if(!o.blocking&&k(o.assumption)===null)throw new Error(`question ${o.id} does not block, so it needs the assumption the agent works on`);return{title:e.title,status:e.status??null,designs:e.designs.map(o=>({id:o.id,title:o.title,body:k(o.body),...B(o.questions)})),members:e.members,todos:e.todos.map(o=>({id:o.id,title:o.title,status:o.status,assignee:o.assignee??null,note:k(o.note),design:o.design??null,proposed:o.proposed,reason:k(o.reason),added:!1,...B(o.questions)})),outputs:e.outputs.map(o=>({id:o.id,label:k(o.label),href:o.href,kind:k(o.kind),description:k(o.description),...B(o.questions)})),questions:e.questions.map((o,r)=>({id:o.id,ref:o.ref??`Q${r+1}`,title:o.title,description:k(o.description),blocking:o.blocking,assumption:k(o.assumption)})),answers:{},decisions:{}}},oe=()=>({title:"",status:null,designs:[],members:[],todos:[],outputs:[],questions:[],answers:{},decisions:{}}),z=(a,e)=>e===null?void 0:a.members.find(t=>t.id===e),h=(a,e)=>a.todos.find(t=>t.id===e),N=(a,e)=>a.designs.find(t=>t.id===e),se=(a,e)=>a.todos.filter(t=>t.design===e),q=(a,e)=>a.questions.find(t=>t.id===e),re=(a,e)=>{const t=a.answers[e.id];return t===void 0?!1:t.kind==="approve"||t.text.trim()!==""},R=(a,e)=>!e.proposed||a.decisions[e.id]==="accept",C=(a,e)=>R(a,e)&&z(a,e.assignee)?.kind==="human",de=(a,e,t)=>{const s={...a};return t===null?delete s[e]:s[e]=t,s},G=(a,e,t)=>({...a,answers:de(a.answers,e,t)}),oa=(a,e,t)=>({...a,decisions:de(a.decisions,e,t)}),sa=(a,e,t)=>({...a,todos:a.todos.map(s=>s.id===e?t(s):s)}),f={ANSWER_QUESTION:y("ANSWER_QUESTION","question",Be("kind",[u({kind:L("approve")}),u({kind:L("answer"),text:b()}),u({kind:L("clear")})])),DECIDE_PROPOSAL:y("DECIDE_PROPOSAL","todo",u({decision:$(["accept","decline","clear"])})),SET_TODO_STATUS:y("SET_TODO_STATUS","todo",u({status:$(D)})),ADD_TODO:y("ADD_TODO","page",u({id:g,title:Y(b(),Le(),V(1)),assignee:_e(g)}),{dedupeKey:Ce}),DELETE_TODO:y("DELETE_TODO","todo",u({}))},ne={type:"page",id:"task-board"},I=(a,e)=>({type:"ANSWER_QUESTION",target:{type:"question",id:a},payload:e}),ie=(a,e)=>({type:"DECIDE_PROPOSAL",target:{type:"todo",id:a},payload:{decision:e}}),Q=(a,e)=>({type:"SET_TODO_STATUS",target:{type:"todo",id:a},payload:{status:e}}),le=(a,e,t)=>({type:"ADD_TODO",target:ne,payload:{id:a,title:e,assignee:t}}),pe=a=>({type:"DELETE_TODO",target:{type:"todo",id:a},payload:{}}),ce=(a,e)=>{const t=Pe(f,e);if(t===null)return null;const s=t.target.id;switch(t.type){case"ANSWER_QUESTION":{const o=q(a,s);if(o===void 0)return null;const r=t.payload;return r.kind==="clear"?G(a,s,null):r.kind==="approve"?o.assumption===null?null:G(a,s,{kind:"approve"}):G(a,s,{kind:"answer",text:r.text})}case"DECIDE_PROPOSAL":{if(h(a,s)?.proposed!==!0)return null;const{decision:o}=t.payload;return oa(a,s,o==="clear"?null:o)}case"SET_TODO_STATUS":{const o=h(a,s);if(o===void 0||!C(a,o))return null;const{status:r}=t.payload;return sa(a,s,i=>({...i,status:r}))}case"ADD_TODO":{const{payload:o}=t;return h(a,o.id)!==void 0||o.assignee!==null&&z(a,o.assignee)===void 0?null:{...a,todos:[...a.todos,{id:o.id,title:o.title,status:"todo",assignee:o.assignee,note:null,design:null,proposed:!1,reason:null,added:!0}]}}case"DELETE_TODO":return h(a,s)?.added!==!0?null:{...a,todos:a.todos.filter(o=>o.id!==s)};default:return Ne(t)}},U=Re({en:{wholeBoard:"Whole board",statusWorking:"Working",statusWaiting:"Waiting on you",statusBlocked:"Blocked",statusDone:"Done",todoTodo:"To do",todoDoing:"In progress",todoBlocked:"Blocked",todoDone:"Done",kindAgent:"Agent",kindHuman:"Human",designs:"Design docs",designTasks:"Tasks under this design",noDesigns:"The agent has not written a design doc yet.",noDesignTasks:"No task is linked to this design doc yet.",tabs:"Board sections",tabDesigns:"Design Docs",tabQuestions:"Questions",tabTasks:"Tasks",openCount:a=>`${a} open`,noQuestions:"The agent has nothing to ask right now.",questions:"Questions from the agent",questionsProgress:(a,e)=>`${a} of ${e} replied`,blockingGroup:"Blocking \u2014 the agent waits for your decision",provisionalGroup:"Going ahead on an assumption \u2014 the agent adjusts if you answer otherwise",blockingTag:"Blocking",assumption:"Assumption",recommendation:"Agent recommends",approveAssumption:"OK, go with this",approveRecommendation:"OK, go with the recommendation",answerOther:"Answer differently",answerOf:a=>`Your answer to ${a}`,answerPlaceholder:"What you expect instead\u2026",blockingPlaceholder:"Your decision\u2026",approvedTag:"Approved",answeredTag:"Answered",progress:(a,e)=>`${a} of ${e} done`,noTodosYet:"No todos yet",tasksBoard:"Tasks by status",laneCount:a=>a===1?"1 task":`${a} tasks`,laneEmpty:"Nothing here",dragHint:"Drop on another column to change the status",assignee:"Assignee",unassigned:"Unassigned",memberOption:(a,e)=>`${a} (${e})`,statusOf:a=>`Status of \u201C${a}\u201D`,filterTodos:"Show todos",filterAll:"All",filterHuman:"People",addedTag:"Added by you",changedTag:"Changed",removeAdded:"Remove this todo you added",newTodo:"New todo",newTodoPlaceholder:"Add a todo for the agent\u2026",newTodoAssignee:"Assignee of the new todo",addTodo:"Add",proposedMark:"Proposed by the agent",reason:"Why",accept:"Accept",decline:"Decline",decisionOf:a=>`Decision on \u201C${a}\u201D`,acceptedTag:"Accepted",declinedTag:"Declined",undoDecision:"Undo",outputs:"Outputs",noOutputs:"Nothing has been produced yet.",copy:a=>`Copy ${a}`,copied:"Copied",commentOn:a=>`Comment on ${a}`,todoGroup:"Todo",designGroup:"Design Doc",proposalGroup:"Proposal",questionGroup:"Question",approved:"Approve the assumption",answered:"Answer",answerCleared:"Clear the reply",accepted:"Accept the proposal",declined:"Decline the proposal",decisionCleared:"Clear the decision",statusChanged:"Change the status",todoAdded:"Add a todo",todoRemoved:"Remove the added todo",quoted:a=>`\u2192 \u201C${a}\u201D`,change:(a,e)=>`${a} \u2192 ${e}`},ja:{wholeBoard:"\u30DC\u30FC\u30C9\u5168\u4F53",statusWorking:"\u4F5C\u696D\u4E2D",statusWaiting:"\u3042\u306A\u305F\u306E\u8FD4\u7B54\u5F85\u3061",statusBlocked:"\u30D6\u30ED\u30C3\u30AF\u4E2D",statusDone:"\u5B8C\u4E86",todoTodo:"\u672A\u7740\u624B",todoDoing:"\u9032\u884C\u4E2D",todoBlocked:"\u30D6\u30ED\u30C3\u30AF",todoDone:"\u5B8C\u4E86",kindAgent:"Agent",kindHuman:"\u4EBA\u9593",designs:"Design Doc",designTasks:"\u3053\u306E Design Doc \u306E\u30BF\u30B9\u30AF",noDesigns:"Agent \u306F\u307E\u3060 Design Doc \u3092\u66F8\u3044\u3066\u3044\u307E\u305B\u3093\u3002",noDesignTasks:"\u3053\u306E Design Doc \u306B\u7D10\u3065\u304F\u30BF\u30B9\u30AF\u306F\u307E\u3060\u3042\u308A\u307E\u305B\u3093\u3002",tabs:"\u30DC\u30FC\u30C9\u306E\u533A\u5206",tabDesigns:"Design Doc",tabQuestions:"\u8CEA\u554F",tabTasks:"\u30BF\u30B9\u30AF",openCount:a=>`\u672A\u56DE\u7B54 ${a} \u4EF6`,noQuestions:"\u4ECA Agent \u304B\u3089\u805E\u304D\u305F\u3044\u3053\u3068\u306F\u3042\u308A\u307E\u305B\u3093\u3002",questions:"Agent \u304B\u3089\u306E\u8CEA\u554F",questionsProgress:(a,e)=>`\u8FD4\u7B54\u6E08\u307F ${a} / ${e}`,blockingGroup:"\u30D6\u30ED\u30C3\u30AB\u30FC \u2014 \u6C7A\u3081\u3066\u3082\u3089\u3046\u307E\u3067\u5148\u306B\u9032\u3081\u306A\u3044",provisionalGroup:"\u4EEE\u306E\u524D\u63D0\u3067\u9032\u884C\u4E2D \u2014 \u9055\u3048\u3070\u65B9\u91DD\u3092\u76F4\u3059",blockingTag:"\u30D6\u30ED\u30C3\u30AB\u30FC",assumption:"\u4EEE\u56DE\u7B54",recommendation:"Agent \u306E\u63A8\u5968",approveAssumption:"\u3053\u306E\u524D\u63D0\u3067 OK",approveRecommendation:"\u63A8\u5968\u3069\u304A\u308A\u3067 OK",answerOther:"\u5225\u306E\u56DE\u7B54\u3092\u3059\u308B",answerOf:a=>`${a} \u3078\u306E\u56DE\u7B54`,answerPlaceholder:"\u671F\u5F85\u3059\u308B\u56DE\u7B54\u3092\u5165\u529B\u2026",blockingPlaceholder:"\u3069\u3046\u3059\u308B\u304B\u3092\u5165\u529B\u2026",approvedTag:"\u627F\u8A8D\u6E08\u307F",answeredTag:"\u56DE\u7B54\u6E08\u307F",progress:(a,e)=>`${e} \u4EF6\u4E2D ${a} \u4EF6\u5B8C\u4E86`,noTodosYet:"Todo \u306F\u307E\u3060\u3042\u308A\u307E\u305B\u3093",tasksBoard:"\u72B6\u614B\u3054\u3068\u306E\u30BF\u30B9\u30AF",laneCount:a=>`${a} \u4EF6`,laneEmpty:"\u306A\u3057",dragHint:"\u5225\u306E\u5217\u306B\u30C9\u30ED\u30C3\u30D7\u3059\u308B\u3068\u72B6\u614B\u304C\u5909\u308F\u308A\u307E\u3059",assignee:"\u62C5\u5F53",unassigned:"\u672A\u5272\u308A\u5F53\u3066",memberOption:(a,e)=>`${a}\uFF08${e}\uFF09`,statusOf:a=>`\u300C${a}\u300D\u306E\u72B6\u614B`,filterTodos:"\u8868\u793A\u3059\u308B Todo",filterAll:"\u3059\u3079\u3066",filterHuman:"\u4EBA\u9593\u306E\u62C5\u5F53",addedTag:"\u3042\u306A\u305F\u304C\u8FFD\u52A0",changedTag:"\u5909\u66F4\u3042\u308A",removeAdded:"\u8FFD\u52A0\u3057\u305F Todo \u3092\u53D6\u308A\u6D88\u3059",newTodo:"\u65B0\u3057\u3044 Todo",newTodoPlaceholder:"Agent \u306B\u983C\u3080 Todo \u3092\u8FFD\u52A0\u2026",newTodoAssignee:"\u65B0\u3057\u3044 Todo \u306E\u62C5\u5F53",addTodo:"\u8FFD\u52A0",proposedMark:"Agent \u304B\u3089\u306E\u63D0\u6848",reason:"\u306A\u305C",accept:"\u627F\u8A8D",decline:"\u898B\u9001\u308A",decisionOf:a=>`\u300C${a}\u300D\u306E\u5224\u65AD`,acceptedTag:"\u627F\u8A8D\u6E08\u307F",declinedTag:"\u898B\u9001\u308A",undoDecision:"\u53D6\u308A\u6D88\u3059",outputs:"\u6210\u679C\u7269",noOutputs:"\u307E\u3060\u6210\u679C\u7269\u306F\u3042\u308A\u307E\u305B\u3093\u3002",copy:a=>`${a} \u3092\u30B3\u30D4\u30FC`,copied:"\u30B3\u30D4\u30FC\u3057\u307E\u3057\u305F",commentOn:a=>`${a} \u306B\u30B3\u30E1\u30F3\u30C8`,todoGroup:"Todo",designGroup:"Design Doc",proposalGroup:"\u63D0\u6848",questionGroup:"\u8CEA\u554F",approved:"\u524D\u63D0\u3092\u627F\u8A8D",answered:"\u56DE\u7B54",answerCleared:"\u8FD4\u7B54\u3092\u30AF\u30EA\u30A2",accepted:"\u63D0\u6848\u3092\u627F\u8A8D",declined:"\u63D0\u6848\u3092\u898B\u9001\u308A",decisionCleared:"\u63D0\u6848\u306E\u5224\u65AD\u3092\u30AF\u30EA\u30A2",statusChanged:"\u72B6\u614B\u3092\u5909\u66F4",todoAdded:"Todo \u3092\u8FFD\u52A0",todoRemoved:"\u8FFD\u52A0\u3057\u305F Todo \u3092\u53D6\u308A\u6D88\u3057",quoted:a=>`\u2192 \u300C${a}\u300D`,change:(a,e)=>`${a} \u2192 ${e}`}}),ra=(a,e)=>{switch(e){case"working":return a.statusWorking;case"waiting":return a.statusWaiting;case"blocked":return a.statusBlocked;case"done":return a.statusDone}},x=(a,e)=>{switch(e){case"todo":return a.todoTodo;case"doing":return a.todoDoing;case"blocked":return a.todoBlocked;case"done":return a.todoDone}},da=(a,e)=>e==="agent"?a.kindAgent:a.kindHuman,na=(a,e,t)=>t===null?a.unassigned:z(e,t)?.name??t,ue=a=>a.title===""?"Task Context Board":a.title,be=(a,e,t)=>{switch(t.type){case"todo":{const s=h(e,t.id);return`${s?.proposed===!0?a.proposalGroup:a.todoGroup} \xB7 ${s?.title??t.id}`}case"design":{const s=N(e,t.id);return`${a.designGroup} \xB7 ${s?.title??t.id}`}case"question":{const s=q(e,t.id);return s===void 0?t.id:`${s.ref} \xB7 ${s.title}`}case"page":return a.wholeBoard;default:return t.id}},ia=(a,e)=>{switch(e){case"accept":return{title:a.accepted,tone:"update"};case"decline":return{title:a.declined,tone:"update"};case"clear":return{title:a.decisionCleared,tone:"delete"}}},la=(a,e,t)=>{switch(t.type){case"ANSWER_QUESTION":{const s=S(f.ANSWER_QUESTION,t);if(s.kind==="clear")return{title:a.answerCleared,tone:"delete"};if(s.kind==="approve"){const o=q(e,t.target.id)?.assumption??null;return{title:a.approved,tone:"update",...o===null?{}:{body:a.quoted(o)}}}return{title:a.answered,tone:"update",body:a.quoted(s.text.slice(0,120))}}case"DECIDE_PROPOSAL":return ia(a,S(f.DECIDE_PROPOSAL,t).decision);case"SET_TODO_STATUS":{const{status:s}=S(f.SET_TODO_STATUS,t),o=h(e,t.target.id)?.status,r=x(a,s);return{title:a.statusChanged,tone:"update",body:o===void 0?r:a.change(x(a,o),r)}}case"ADD_TODO":{const s=S(f.ADD_TODO,t);return{title:a.todoAdded,tone:"create",targetLabel:`${a.todoGroup} \xB7 ${s.title}`,...s.assignee===null?{}:{body:`${a.assignee}: ${na(a,e,s.assignee)}`}}}case"DELETE_TODO":return{title:a.todoRemoved,tone:"delete"};default:return{title:t.type,tone:"meta"}}},ge=(a,e,t,s)=>{let o;try{o=la(a,s??t,e)}catch{o={title:e.type,tone:"meta"}}return{title:o.title,targetLabel:o.targetLabel??be(a,t,e.target),tone:o.tone,...o.body===void 0?{}:{summary:o.body}}},ke=a=>`${a.type} ${Ge(a.target)} ${JSON.stringify(a.payload)}`,he=(a,e)=>[...e.questions.map(t=>({value:`question:${t.id}`,label:`${t.ref} \xB7 ${t.title}`,group:a.questionGroup})),...e.todos.map(t=>({value:`todo:${t.id}`,label:t.title,group:t.proposed?a.proposalGroup:a.todoGroup})),...e.designs.map(t=>({value:`design:${t.id}`,label:t.title,group:a.designGroup}))],fe=(a,e)=>e,pa=(a,e,t)=>{const s=a.answers[e.id];return{id:e.id,ref:e.ref,title:e.title,description:e.description,blocking:e.blocking,assumption:e.assumption,reply:s?.kind??"none",resolved:re(a,e),draft:s?.kind==="answer"?s.text:"",comments:t(`question:${e.id}`)}},me=(a,e)=>{const t=a.questions.map(o=>pa(a,o,e)),s=t.filter(o=>o.resolved).length;return{blocking:t.filter(o=>o.blocking),provisional:t.filter(o=>!o.blocking),resolved:s,total:t.length,open:t.length-s,blockingOpen:t.filter(o=>o.blocking&&!o.resolved).length}},ca={todo:"gray",doing:"blue",blocked:"red",done:"green"},ve=(a,e,t,s=null)=>{const o=e.designs.find(r=>r.id===s)??e.designs[0];return{items:e.designs.map(r=>({id:r.id,title:r.title,taskCount:se(e,r.id).length})),selected:o===void 0?null:ua(a,e,o,t)}},ua=(a,e,t,s)=>({id:t.id,title:t.title,body:t.body,tasks:se(e,t.id).map(o=>({id:o.id,title:o.title,status:o.status,statusLabel:x(a,o.status),proposal:o.proposed?e.decisions[o.id]??"pending":null})),comments:s(`design:${t.id}`),...t.questions===void 0?{}:{questions:t.questions}}),ba=(a,e,t,s,o)=>{const r=h(t,s.id),i=z(e,s.assignee),c=s.design===null?void 0:N(e,s.design);return{id:s.id,title:s.title,note:s.note,reason:s.reason,design:c===void 0?null:{id:c.id,title:c.title},status:s.status,statusLabel:x(a,s.status),assignee:s.assignee,assigneeName:i?.name??null,assigneeKind:i?.kind??null,editable:C(e,s),proposal:s.proposed?e.decisions[s.id]??"pending":null,added:s.added,changed:r!==void 0&&r.status!==s.status,comments:o(`todo:${s.id}`),...s.questions===void 0?{}:{questions:s.questions}}},xe=(a,e,t,s,o="all")=>{const r=e.members.some(p=>p.kind==="human"),i=r?o:"all",c=e.todos.map(p=>ba(a,e,t,p,s)),K=p=>p.assigneeKind==="human",Ee=i==="human"?c.filter(K):c,A=e.todos.filter(p=>R(e,p)),F=A.filter(p=>p.status==="done").length;return{lanes:D.map(p=>({status:p,label:x(a,p),tone:ca[p],cards:Ee.filter(ze=>ze.status===p)})),filter:i,canFilter:r,humanCount:c.filter(K).length,progress:{done:F,total:A.length,label:A.length===0?a.noTodosYet:a.progress(F,A.length)},statuses:D.map(p=>({value:p,label:x(a,p)})),members:e.members.map(p=>({id:p.id,label:a.memberOption(p.name,da(a,p.kind))}))}},we=a=>{if(!/^[a-z][a-z\d+.-]*:\/\//i.test(a))return{kind:"path"};try{return{kind:"url",host:new URL(a).host}}catch{return{kind:"path"}}},$e=a=>a.outputs.map(e=>({id:e.id,title:e.label??e.href,labelled:e.label!==null,href:e.href,kind:e.kind,description:e.description,place:we(e.href),...e.questions===void 0?{}:{questions:e.questions}})),ye=(a,e)=>{switch(e.type){case"todo":return h(a,e.id)!==void 0;case"design":return N(a,e.id)!==void 0;case"question":return q(a,e.id)!==void 0;case"page":return!0;default:return!1}},Te=a=>{const e=U(a);return{kind:"view",name:"task-board",label:"Task Context Board",addable:!1,parseBase:te,emptyBase:oe,actions:f,apply:ce,hasTarget:ye,describe:(t,s,o)=>ge(e,t,s,o),serialize:ke,resolveNavigation:fe,commentTargets:t=>he(e,t),title:ue}},M=(a,e,t,s)=>d`
|
|
1
|
+
import{au as qe,bf as B,av as u,aw as l,aa as w,az as $,ac as b,aM as g,aB as j,aN as _,ax as Y,ay as V,p as y,t as Ce,aC as Be,aO as _e,aA as Le,ab as L,N as Pe,e as Ne,a5 as Re,S as Ge,P as S,ai as n,as as d,z as Ie,bm as Qe,bn as Ue,aH as E,bc as J,bd as Me,I as He,bz as P,ah as We,V as X,bh as Ke,l as Fe,aW as je}from"./shared-DlZJHHpN.js";import{a as Ye}from"./shared-DPD_tBh8.js";import{D as Ve,d as Je}from"./shared-nrgnwzCU.js";import{o as T}from"./shared-hhwSHdS3.js";const Z=["working","waiting","blocked","done"],D=["todo","doing","blocked","done"],ee=["agent","human"],v=Y(b(),V(1)),Xe=u({id:g,name:v,kind:l($(ee),"agent")}),Ze=u({id:g,title:v,status:l($(D),"todo"),assignee:l(g),note:l(b()),design:l(g),proposed:l(j(),!1),reason:l(b()),questions:_}),ea=u({id:g,label:l(b()),href:v,kind:l(b()),description:l(b()),questions:_}),aa=u({id:g,title:v,body:l(b()),questions:_}),ta=u({id:g,ref:l(v),title:v,description:l(b()),blocking:l(j(),!1),assumption:l(b())}),ae=u({title:l(b(),""),status:l($(Z)),designs:l(w(aa),[]),members:l(w(Xe),[]),todos:l(w(Ze),[]),outputs:l(w(ea),[]),questions:l(w(ta),[])}),O=(a,e)=>{const t=new Set;for(const s of e){if(t.has(s))throw new Error(`duplicate ${a} id: ${s}`);t.add(s)}},k=a=>a===void 0||a.trim()===""?null:a,te=a=>{const e=qe(ae,a);O("member",e.members.map(o=>o.id)),O("design",e.designs.map(o=>o.id)),O("todo",e.todos.map(o=>o.id)),O("output",e.outputs.map(o=>o.id)),O("question",e.questions.map(o=>o.id));const t=new Set(e.members.map(o=>o.id));for(const o of e.todos)if(o.assignee!==void 0&&!t.has(o.assignee))throw new Error(`todo ${o.id} is assigned to ${o.assignee}, which is not in members`);const s=new Set(e.designs.map(o=>o.id));for(const o of e.todos)if(o.design!==void 0&&!s.has(o.design))throw new Error(`todo ${o.id} belongs to ${o.design}, which is not in designs`);for(const o of e.questions)if(!o.blocking&&k(o.assumption)===null)throw new Error(`question ${o.id} does not block, so it needs the assumption the agent works on`);return{title:e.title,status:e.status??null,designs:e.designs.map(o=>({id:o.id,title:o.title,body:k(o.body),...B(o.questions)})),members:e.members,todos:e.todos.map(o=>({id:o.id,title:o.title,status:o.status,assignee:o.assignee??null,note:k(o.note),design:o.design??null,proposed:o.proposed,reason:k(o.reason),added:!1,...B(o.questions)})),outputs:e.outputs.map(o=>({id:o.id,label:k(o.label),href:o.href,kind:k(o.kind),description:k(o.description),...B(o.questions)})),questions:e.questions.map((o,r)=>({id:o.id,ref:o.ref??`Q${r+1}`,title:o.title,description:k(o.description),blocking:o.blocking,assumption:k(o.assumption)})),answers:{},decisions:{}}},oe=()=>({title:"",status:null,designs:[],members:[],todos:[],outputs:[],questions:[],answers:{},decisions:{}}),z=(a,e)=>e===null?void 0:a.members.find(t=>t.id===e),h=(a,e)=>a.todos.find(t=>t.id===e),N=(a,e)=>a.designs.find(t=>t.id===e),se=(a,e)=>a.todos.filter(t=>t.design===e),q=(a,e)=>a.questions.find(t=>t.id===e),re=(a,e)=>{const t=a.answers[e.id];return t===void 0?!1:t.kind==="approve"||t.text.trim()!==""},R=(a,e)=>!e.proposed||a.decisions[e.id]==="accept",C=(a,e)=>R(a,e)&&z(a,e.assignee)?.kind==="human",de=(a,e,t)=>{const s={...a};return t===null?delete s[e]:s[e]=t,s},G=(a,e,t)=>({...a,answers:de(a.answers,e,t)}),oa=(a,e,t)=>({...a,decisions:de(a.decisions,e,t)}),sa=(a,e,t)=>({...a,todos:a.todos.map(s=>s.id===e?t(s):s)}),f={ANSWER_QUESTION:y("ANSWER_QUESTION","question",Be("kind",[u({kind:L("approve")}),u({kind:L("answer"),text:b()}),u({kind:L("clear")})])),DECIDE_PROPOSAL:y("DECIDE_PROPOSAL","todo",u({decision:$(["accept","decline","clear"])})),SET_TODO_STATUS:y("SET_TODO_STATUS","todo",u({status:$(D)})),ADD_TODO:y("ADD_TODO","page",u({id:g,title:Y(b(),Le(),V(1)),assignee:_e(g)}),{dedupeKey:Ce}),DELETE_TODO:y("DELETE_TODO","todo",u({}))},ne={type:"page",id:"task-board"},I=(a,e)=>({type:"ANSWER_QUESTION",target:{type:"question",id:a},payload:e}),ie=(a,e)=>({type:"DECIDE_PROPOSAL",target:{type:"todo",id:a},payload:{decision:e}}),Q=(a,e)=>({type:"SET_TODO_STATUS",target:{type:"todo",id:a},payload:{status:e}}),le=(a,e,t)=>({type:"ADD_TODO",target:ne,payload:{id:a,title:e,assignee:t}}),pe=a=>({type:"DELETE_TODO",target:{type:"todo",id:a},payload:{}}),ce=(a,e)=>{const t=Pe(f,e);if(t===null)return null;const s=t.target.id;switch(t.type){case"ANSWER_QUESTION":{const o=q(a,s);if(o===void 0)return null;const r=t.payload;return r.kind==="clear"?G(a,s,null):r.kind==="approve"?o.assumption===null?null:G(a,s,{kind:"approve"}):G(a,s,{kind:"answer",text:r.text})}case"DECIDE_PROPOSAL":{if(h(a,s)?.proposed!==!0)return null;const{decision:o}=t.payload;return oa(a,s,o==="clear"?null:o)}case"SET_TODO_STATUS":{const o=h(a,s);if(o===void 0||!C(a,o))return null;const{status:r}=t.payload;return sa(a,s,i=>({...i,status:r}))}case"ADD_TODO":{const{payload:o}=t;return h(a,o.id)!==void 0||o.assignee!==null&&z(a,o.assignee)===void 0?null:{...a,todos:[...a.todos,{id:o.id,title:o.title,status:"todo",assignee:o.assignee,note:null,design:null,proposed:!1,reason:null,added:!0}]}}case"DELETE_TODO":return h(a,s)?.added!==!0?null:{...a,todos:a.todos.filter(o=>o.id!==s)};default:return Ne(t)}},U=Re({en:{wholeBoard:"Whole board",statusWorking:"Working",statusWaiting:"Waiting on you",statusBlocked:"Blocked",statusDone:"Done",todoTodo:"To do",todoDoing:"In progress",todoBlocked:"Blocked",todoDone:"Done",kindAgent:"Agent",kindHuman:"Human",designs:"Design docs",designTasks:"Tasks under this design",noDesigns:"The agent has not written a design doc yet.",noDesignTasks:"No task is linked to this design doc yet.",tabs:"Board sections",tabDesigns:"Design Docs",tabQuestions:"Questions",tabTasks:"Tasks",openCount:a=>`${a} open`,noQuestions:"The agent has nothing to ask right now.",questions:"Questions from the agent",questionsProgress:(a,e)=>`${a} of ${e} replied`,blockingGroup:"Blocking \u2014 the agent waits for your decision",provisionalGroup:"Going ahead on an assumption \u2014 the agent adjusts if you answer otherwise",blockingTag:"Blocking",assumption:"Assumption",recommendation:"Agent recommends",approveAssumption:"OK, go with this",approveRecommendation:"OK, go with the recommendation",answerOther:"Answer differently",answerOf:a=>`Your answer to ${a}`,answerPlaceholder:"What you expect instead\u2026",blockingPlaceholder:"Your decision\u2026",approvedTag:"Approved",answeredTag:"Answered",progress:(a,e)=>`${a} of ${e} done`,noTodosYet:"No todos yet",tasksBoard:"Tasks by status",laneCount:a=>a===1?"1 task":`${a} tasks`,laneEmpty:"Nothing here",dragHint:"Drop on another column to change the status",assignee:"Assignee",unassigned:"Unassigned",memberOption:(a,e)=>`${a} (${e})`,statusOf:a=>`Status of \u201C${a}\u201D`,filterTodos:"Show todos",filterAll:"All",filterHuman:"People",addedTag:"Added by you",changedTag:"Changed",removeAdded:"Remove this todo you added",newTodo:"New todo",newTodoPlaceholder:"Add a todo for the agent\u2026",newTodoAssignee:"Assignee of the new todo",addTodo:"Add",proposedMark:"Proposed by the agent",reason:"Why",accept:"Accept",decline:"Decline",decisionOf:a=>`Decision on \u201C${a}\u201D`,acceptedTag:"Accepted",declinedTag:"Declined",undoDecision:"Undo",outputs:"Outputs",noOutputs:"Nothing has been produced yet.",copy:a=>`Copy ${a}`,copied:"Copied",commentOn:a=>`Comment on ${a}`,todoGroup:"Todo",designGroup:"Design Doc",proposalGroup:"Proposal",questionGroup:"Question",approved:"Approve the assumption",answered:"Answer",answerCleared:"Clear the reply",accepted:"Accept the proposal",declined:"Decline the proposal",decisionCleared:"Clear the decision",statusChanged:"Change the status",todoAdded:"Add a todo",todoRemoved:"Remove the added todo",quoted:a=>`\u2192 \u201C${a}\u201D`,change:(a,e)=>`${a} \u2192 ${e}`},ja:{wholeBoard:"\u30DC\u30FC\u30C9\u5168\u4F53",statusWorking:"\u4F5C\u696D\u4E2D",statusWaiting:"\u3042\u306A\u305F\u306E\u8FD4\u7B54\u5F85\u3061",statusBlocked:"\u30D6\u30ED\u30C3\u30AF\u4E2D",statusDone:"\u5B8C\u4E86",todoTodo:"\u672A\u7740\u624B",todoDoing:"\u9032\u884C\u4E2D",todoBlocked:"\u30D6\u30ED\u30C3\u30AF",todoDone:"\u5B8C\u4E86",kindAgent:"Agent",kindHuman:"\u4EBA\u9593",designs:"Design Doc",designTasks:"\u3053\u306E Design Doc \u306E\u30BF\u30B9\u30AF",noDesigns:"Agent \u306F\u307E\u3060 Design Doc \u3092\u66F8\u3044\u3066\u3044\u307E\u305B\u3093\u3002",noDesignTasks:"\u3053\u306E Design Doc \u306B\u7D10\u3065\u304F\u30BF\u30B9\u30AF\u306F\u307E\u3060\u3042\u308A\u307E\u305B\u3093\u3002",tabs:"\u30DC\u30FC\u30C9\u306E\u533A\u5206",tabDesigns:"Design Doc",tabQuestions:"\u8CEA\u554F",tabTasks:"\u30BF\u30B9\u30AF",openCount:a=>`\u672A\u56DE\u7B54 ${a} \u4EF6`,noQuestions:"\u4ECA Agent \u304B\u3089\u805E\u304D\u305F\u3044\u3053\u3068\u306F\u3042\u308A\u307E\u305B\u3093\u3002",questions:"Agent \u304B\u3089\u306E\u8CEA\u554F",questionsProgress:(a,e)=>`\u8FD4\u7B54\u6E08\u307F ${a} / ${e}`,blockingGroup:"\u30D6\u30ED\u30C3\u30AB\u30FC \u2014 \u6C7A\u3081\u3066\u3082\u3089\u3046\u307E\u3067\u5148\u306B\u9032\u3081\u306A\u3044",provisionalGroup:"\u4EEE\u306E\u524D\u63D0\u3067\u9032\u884C\u4E2D \u2014 \u9055\u3048\u3070\u65B9\u91DD\u3092\u76F4\u3059",blockingTag:"\u30D6\u30ED\u30C3\u30AB\u30FC",assumption:"\u4EEE\u56DE\u7B54",recommendation:"Agent \u306E\u63A8\u5968",approveAssumption:"\u3053\u306E\u524D\u63D0\u3067 OK",approveRecommendation:"\u63A8\u5968\u3069\u304A\u308A\u3067 OK",answerOther:"\u5225\u306E\u56DE\u7B54\u3092\u3059\u308B",answerOf:a=>`${a} \u3078\u306E\u56DE\u7B54`,answerPlaceholder:"\u671F\u5F85\u3059\u308B\u56DE\u7B54\u3092\u5165\u529B\u2026",blockingPlaceholder:"\u3069\u3046\u3059\u308B\u304B\u3092\u5165\u529B\u2026",approvedTag:"\u627F\u8A8D\u6E08\u307F",answeredTag:"\u56DE\u7B54\u6E08\u307F",progress:(a,e)=>`${e} \u4EF6\u4E2D ${a} \u4EF6\u5B8C\u4E86`,noTodosYet:"Todo \u306F\u307E\u3060\u3042\u308A\u307E\u305B\u3093",tasksBoard:"\u72B6\u614B\u3054\u3068\u306E\u30BF\u30B9\u30AF",laneCount:a=>`${a} \u4EF6`,laneEmpty:"\u306A\u3057",dragHint:"\u5225\u306E\u5217\u306B\u30C9\u30ED\u30C3\u30D7\u3059\u308B\u3068\u72B6\u614B\u304C\u5909\u308F\u308A\u307E\u3059",assignee:"\u62C5\u5F53",unassigned:"\u672A\u5272\u308A\u5F53\u3066",memberOption:(a,e)=>`${a}\uFF08${e}\uFF09`,statusOf:a=>`\u300C${a}\u300D\u306E\u72B6\u614B`,filterTodos:"\u8868\u793A\u3059\u308B Todo",filterAll:"\u3059\u3079\u3066",filterHuman:"\u4EBA\u9593\u306E\u62C5\u5F53",addedTag:"\u3042\u306A\u305F\u304C\u8FFD\u52A0",changedTag:"\u5909\u66F4\u3042\u308A",removeAdded:"\u8FFD\u52A0\u3057\u305F Todo \u3092\u53D6\u308A\u6D88\u3059",newTodo:"\u65B0\u3057\u3044 Todo",newTodoPlaceholder:"Agent \u306B\u983C\u3080 Todo \u3092\u8FFD\u52A0\u2026",newTodoAssignee:"\u65B0\u3057\u3044 Todo \u306E\u62C5\u5F53",addTodo:"\u8FFD\u52A0",proposedMark:"Agent \u304B\u3089\u306E\u63D0\u6848",reason:"\u306A\u305C",accept:"\u627F\u8A8D",decline:"\u898B\u9001\u308A",decisionOf:a=>`\u300C${a}\u300D\u306E\u5224\u65AD`,acceptedTag:"\u627F\u8A8D\u6E08\u307F",declinedTag:"\u898B\u9001\u308A",undoDecision:"\u53D6\u308A\u6D88\u3059",outputs:"\u6210\u679C\u7269",noOutputs:"\u307E\u3060\u6210\u679C\u7269\u306F\u3042\u308A\u307E\u305B\u3093\u3002",copy:a=>`${a} \u3092\u30B3\u30D4\u30FC`,copied:"\u30B3\u30D4\u30FC\u3057\u307E\u3057\u305F",commentOn:a=>`${a} \u306B\u30B3\u30E1\u30F3\u30C8`,todoGroup:"Todo",designGroup:"Design Doc",proposalGroup:"\u63D0\u6848",questionGroup:"\u8CEA\u554F",approved:"\u524D\u63D0\u3092\u627F\u8A8D",answered:"\u56DE\u7B54",answerCleared:"\u8FD4\u7B54\u3092\u30AF\u30EA\u30A2",accepted:"\u63D0\u6848\u3092\u627F\u8A8D",declined:"\u63D0\u6848\u3092\u898B\u9001\u308A",decisionCleared:"\u63D0\u6848\u306E\u5224\u65AD\u3092\u30AF\u30EA\u30A2",statusChanged:"\u72B6\u614B\u3092\u5909\u66F4",todoAdded:"Todo \u3092\u8FFD\u52A0",todoRemoved:"\u8FFD\u52A0\u3057\u305F Todo \u3092\u53D6\u308A\u6D88\u3057",quoted:a=>`\u2192 \u300C${a}\u300D`,change:(a,e)=>`${a} \u2192 ${e}`}}),ra=(a,e)=>{switch(e){case"working":return a.statusWorking;case"waiting":return a.statusWaiting;case"blocked":return a.statusBlocked;case"done":return a.statusDone}},x=(a,e)=>{switch(e){case"todo":return a.todoTodo;case"doing":return a.todoDoing;case"blocked":return a.todoBlocked;case"done":return a.todoDone}},da=(a,e)=>e==="agent"?a.kindAgent:a.kindHuman,na=(a,e,t)=>t===null?a.unassigned:z(e,t)?.name??t,ue=a=>a.title===""?"Task Context Board":a.title,be=(a,e,t)=>{switch(t.type){case"todo":{const s=h(e,t.id);return`${s?.proposed===!0?a.proposalGroup:a.todoGroup} \xB7 ${s?.title??t.id}`}case"design":{const s=N(e,t.id);return`${a.designGroup} \xB7 ${s?.title??t.id}`}case"question":{const s=q(e,t.id);return s===void 0?t.id:`${s.ref} \xB7 ${s.title}`}case"page":return a.wholeBoard;default:return t.id}},ia=(a,e)=>{switch(e){case"accept":return{title:a.accepted,tone:"update"};case"decline":return{title:a.declined,tone:"update"};case"clear":return{title:a.decisionCleared,tone:"delete"}}},la=(a,e,t)=>{switch(t.type){case"ANSWER_QUESTION":{const s=S(f.ANSWER_QUESTION,t);if(s.kind==="clear")return{title:a.answerCleared,tone:"delete"};if(s.kind==="approve"){const o=q(e,t.target.id)?.assumption??null;return{title:a.approved,tone:"update",...o===null?{}:{body:a.quoted(o)}}}return{title:a.answered,tone:"update",body:a.quoted(s.text.slice(0,120))}}case"DECIDE_PROPOSAL":return ia(a,S(f.DECIDE_PROPOSAL,t).decision);case"SET_TODO_STATUS":{const{status:s}=S(f.SET_TODO_STATUS,t),o=h(e,t.target.id)?.status,r=x(a,s);return{title:a.statusChanged,tone:"update",body:o===void 0?r:a.change(x(a,o),r)}}case"ADD_TODO":{const s=S(f.ADD_TODO,t);return{title:a.todoAdded,tone:"create",targetLabel:`${a.todoGroup} \xB7 ${s.title}`,...s.assignee===null?{}:{body:`${a.assignee}: ${na(a,e,s.assignee)}`}}}case"DELETE_TODO":return{title:a.todoRemoved,tone:"delete"};default:return{title:t.type,tone:"meta"}}},ge=(a,e,t,s)=>{let o;try{o=la(a,s??t,e)}catch{o={title:e.type,tone:"meta"}}return{title:o.title,targetLabel:o.targetLabel??be(a,t,e.target),tone:o.tone,...o.body===void 0?{}:{summary:o.body}}},ke=a=>`${a.type} ${Ge(a.target)} ${JSON.stringify(a.payload)}`,he=(a,e)=>[...e.questions.map(t=>({value:`question:${t.id}`,label:`${t.ref} \xB7 ${t.title}`,group:a.questionGroup})),...e.todos.map(t=>({value:`todo:${t.id}`,label:t.title,group:t.proposed?a.proposalGroup:a.todoGroup})),...e.designs.map(t=>({value:`design:${t.id}`,label:t.title,group:a.designGroup}))],fe=(a,e)=>e,pa=(a,e,t)=>{const s=a.answers[e.id];return{id:e.id,ref:e.ref,title:e.title,description:e.description,blocking:e.blocking,assumption:e.assumption,reply:s?.kind??"none",resolved:re(a,e),draft:s?.kind==="answer"?s.text:"",comments:t(`question:${e.id}`)}},me=(a,e)=>{const t=a.questions.map(o=>pa(a,o,e)),s=t.filter(o=>o.resolved).length;return{blocking:t.filter(o=>o.blocking),provisional:t.filter(o=>!o.blocking),resolved:s,total:t.length,open:t.length-s,blockingOpen:t.filter(o=>o.blocking&&!o.resolved).length}},ca={todo:"gray",doing:"blue",blocked:"red",done:"green"},ve=(a,e,t,s=null)=>{const o=e.designs.find(r=>r.id===s)??e.designs[0];return{items:e.designs.map(r=>({id:r.id,title:r.title,taskCount:se(e,r.id).length})),selected:o===void 0?null:ua(a,e,o,t)}},ua=(a,e,t,s)=>({id:t.id,title:t.title,body:t.body,tasks:se(e,t.id).map(o=>({id:o.id,title:o.title,status:o.status,statusLabel:x(a,o.status),proposal:o.proposed?e.decisions[o.id]??"pending":null})),comments:s(`design:${t.id}`),...t.questions===void 0?{}:{questions:t.questions}}),ba=(a,e,t,s,o)=>{const r=h(t,s.id),i=z(e,s.assignee),c=s.design===null?void 0:N(e,s.design);return{id:s.id,title:s.title,note:s.note,reason:s.reason,design:c===void 0?null:{id:c.id,title:c.title},status:s.status,statusLabel:x(a,s.status),assignee:s.assignee,assigneeName:i?.name??null,assigneeKind:i?.kind??null,editable:C(e,s),proposal:s.proposed?e.decisions[s.id]??"pending":null,added:s.added,changed:r!==void 0&&r.status!==s.status,comments:o(`todo:${s.id}`),...s.questions===void 0?{}:{questions:s.questions}}},xe=(a,e,t,s,o="all")=>{const r=e.members.some(p=>p.kind==="human"),i=r?o:"all",c=e.todos.map(p=>ba(a,e,t,p,s)),K=p=>p.assigneeKind==="human",Ee=i==="human"?c.filter(K):c,A=e.todos.filter(p=>R(e,p)),F=A.filter(p=>p.status==="done").length;return{lanes:D.map(p=>({status:p,label:x(a,p),tone:ca[p],cards:Ee.filter(ze=>ze.status===p)})),filter:i,canFilter:r,humanCount:c.filter(K).length,progress:{done:F,total:A.length,label:A.length===0?a.noTodosYet:a.progress(F,A.length)},statuses:D.map(p=>({value:p,label:x(a,p)})),members:e.members.map(p=>({id:p.id,label:a.memberOption(p.name,da(a,p.kind))}))}},we=a=>{if(!/^[a-z][a-z\d+.-]*:\/\//i.test(a))return{kind:"path"};try{return{kind:"url",host:new URL(a).host}}catch{return{kind:"path"}}},$e=a=>a.outputs.map(e=>({id:e.id,title:e.label??e.href,labelled:e.label!==null,href:e.href,kind:e.kind,description:e.description,place:we(e.href),...e.questions===void 0?{}:{questions:e.questions}})),ye=(a,e)=>{switch(e.type){case"todo":return h(a,e.id)!==void 0;case"design":return N(a,e.id)!==void 0;case"question":return q(a,e.id)!==void 0;case"page":return!0;default:return!1}},Te=a=>{const e=U(a);return{kind:"view",name:"task-board",label:"Task Context Board",addable:!1,parseBase:te,emptyBase:oe,actions:f,apply:ce,hasTarget:ye,describe:(t,s,o)=>ge(e,t,s,o),serialize:ke,resolveNavigation:fe,commentTargets:t=>he(e,t),title:ue}},M=(a,e,t,s)=>d`
|
|
2
2
|
<button
|
|
3
3
|
class="dpk-icon-btn board-comment"
|
|
4
4
|
type="button"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{ax as w,bi as Ae,av as D,aM as _,aL as g,ac as u,aw as M,az as he,bj as Yi,aD as Ie,au as Hi,bk as Je,bl as Bi,aa as N,ay as x,b9 as Wi,aB as qi,p as y,a9 as b,t as se,aO as oe,a8 as Fi,N as Gi,e as ji,a5 as Ki,h as Qe,K as _e,S as Y,R as Xi,P as k,as as l,ai as h,bm as Pe,bn as De,aH as Zi,y as Re,aP as et,l as tt,b0 as q,bo as Ji,z as it,bp as nt,G as Qi,I as en,b4 as tn,b5 as nn,ah as sn,V as st,ag as on,bq as rn,aE as an,aF as ve,aG as ot,C as dn,br as ln}from"./shared-B8ZhyjWv.js";import{c as pn,a as cn}from"./shared-Dn92ukYW.js";import{m as un}from"./shared-2OsWmhrI.js";import{h as rt,d as at,e as hn,f as vn,a as dt,b as lt,i as pt,p as fn,r as gn,k as mn,l as wn,m as yn,g as bn,c as kn,s as xn,n as ct,j as ut,t as En}from"./shared-Dql0ZVdC.js";const Sn=[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21"}]],$n=[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z"}]],Tn=[["rect",{width:"14",height:"20",x:"5",y:"2",rx:"2",ry:"2"}],["path",{d:"M12 18h.01"}]],An=[["rect",{width:"16",height:"20",x:"4",y:"2",rx:"2",ry:"2"}],["line",{x1:"12",x2:"12.01",y1:"18",y2:"18"}]],In=[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"}],["circle",{cx:"12",cy:"7",r:"4"}]],_n=[["path",{d:"m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72"}],["path",{d:"m14 7 3 3"}],["path",{d:"M5 6v4"}],["path",{d:"M19 14v4"}],["path",{d:"M10 2v2"}],["path",{d:"M7 8H3"}],["path",{d:"M21 16h-4"}],["path",{d:"M11 3H9"}]],ht=["browser","native","mail","plain"],vt=["mobile","tablet","desktop","fluid"],J=t=>"screen"in t,Pn=D({from:g(u()),to:g(u()),cc:g(u()),subject:g(u()),date:g(u())}),ft={id:_,kind:M(he(ht),"browser"),viewport:M(he(vt),"fluid"),label:g(u()),url:g(u()),mail:g(Pn)},Ne=w(u(),Ae(t=>t.trim()!=="","a note needs some text")),gt=w(u(),Yi()),Dn=D({id:_,selector:w(u(),x(1)),text:g(u()),body:Ne,createdAt:g(gt)}),mt='a preview `mail` envelope needs `"kind": "mail"`',wt=w(D(ft),Ae(t=>t.mail===void 0||t.kind==="mail",mt)),yt=w(D({...ft,notes:g(N(Dn))}),Ae(t=>t.mail===void 0||t.kind==="mail",mt)),bt=D({screen:_,preview:g(_)}),Rn=Ie([bt,D({material:wt})]),Nn=Ie([bt,D({material:yt})]),On=D({id:_,name:w(u(),x(1)),description:g(u()),actor:g(w(u(),x(1))),situation:g(w(u(),x(1))),panes:M(N(Nn),[])}),Cn=D({id:_,name:w(u(),x(1)),description:g(u()),actor:g(w(u(),x(1))),steps:M(N(On),[])}),Mn=D({id:_,name:w(u(),x(1)),description:g(u()),actor:g(w(u(),x(1))),stories:M(N(Cn),[])}),kt=w(u(),x(1)),Ln=D({id:_,label:w(u(),x(1)),description:g(u()),fill:g(Wi(kt,Ie([u(),qi()]))),click:g(N(kt))}),Un=D({id:_,title:w(u(),x(1)),description:g(u()),previews:M(N(yt),[]),actions:M(N(Ln),[])}),Vn=D({id:_,name:w(u(),x(1)),description:g(u()),actor:g(w(u(),x(1))),screens:M(N(Un),[])}),xt=D({title:g(u()),baseUrl:g(u()),apps:M(N(Vn),[]),activities:M(N(Mn),[])}),Et=t=>t.flatMap(e=>J(e)?[]:[e.material]),zn=t=>{const e=new Set,i=new Set,n=a=>{for(const d of a){if(e.has(d.id))return`duplicate preview id "${d.id}": preview ids are global, they name a light DOM slot`;e.add(d.id);for(const p of d.notes??[]){if(i.has(p.id))return`duplicate note id "${p.id}": note ids are global`;i.add(p.id)}}return null},s=new Set,o=new Set;for(const a of t.apps){if(s.has(a.id))return`duplicate app id "${a.id}"`;s.add(a.id);for(const d of a.screens){if(o.has(d.id))return`duplicate screen id "${d.id}": screen ids are global`;o.add(d.id);const p=n(d.previews);if(p!==null)return p;const c=new Set;for(const v of d.actions){if(c.has(v.id))return`duplicate action id "${v.id}" on screen "${d.id}"`;c.add(v.id)}}}const r=new Set;for(const a of t.activities){if(r.has(a.id))return`duplicate activity id "${a.id}"`;r.add(a.id);const d=new Set;for(const p of a.stories){if(d.has(p.id))return`duplicate story id "${p.id}" in activity "${a.id}"`;d.add(p.id);const c=new Set;for(const v of p.steps){if(c.has(v.id))return`duplicate step id "${v.id}" in story "${p.id}"`;c.add(v.id);const f=n(Et(v.panes));if(f!==null)return f}}}return null},St=(t,e)=>{const i=new Map;for(const n of e.panes){if(!J(n))continue;const s=t(n.screen);if(s===void 0)return`unknown screen "${n.screen}" on step "${e.id}": declare it under \`apps[].screens\``;if(n.preview!==void 0&&!s.includes(n.preview))return`preview "${n.preview}" on step "${e.id}" is not a rendition of screen "${n.screen}"`;const o=i.get(n.screen)??[];if(o.length>0&&(n.preview===void 0||o.includes(n.preview)||o.includes(void 0)))return`screen "${n.screen}" is shown twice on step "${e.id}": give each pane a different \`preview\``;i.set(n.screen,[...o,n.preview])}return null},Yn=t=>{const e=new Map(t.apps.flatMap(i=>i.screens.map(n=>[n.id,n.previews.map(s=>s.id)])));for(const i of t.activities.flatMap(n=>n.stories.flatMap(s=>s.steps))){const n=St(s=>e.get(s),i);if(n!==null)return n}return null},Hn=(t,e)=>St(i=>L(t,i)?.screen.previews.map(n=>n.id),e),O="ui",re=t=>{const e=t.text?.replaceAll('"',"'");return`${t.previewId}/${t.selector}${e===void 0?"":` "${e}"`}`},Q=t=>{const e=t.indexOf("/");if(e<=0)return;const i=t.slice(0,e);if(!Bi(_,i))return;const n=t.slice(e+1),s=/ "([^"]*)"$/.exec(n),o=(s?n.slice(0,s.index):n).trim();if(o!=="")return s?.[1]===void 0?{previewId:i,selector:o}:{previewId:i,selector:o,text:s[1]}},$t=t=>{const e=Hi(xt,t),i=zn(e)??Yn(e);if(i!==null)throw new Error(i);return e},Tt=()=>({apps:[],activities:[]}),H=t=>t.apps.flatMap(e=>e.screens.map(i=>({app:e,screen:i}))),L=(t,e)=>{if(e!==void 0)return H(t).find(i=>i.screen.id===e)},fe=(t,e)=>e.panes.flatMap(i=>{const n=J(i)?L(t,i.screen):void 0;return n?[n]:[]}),F=t=>Et(t.panes),Bn=(t,e)=>t.panes.some(i=>J(i)&&i.screen===e),U=(t,e)=>{if(e!==void 0)return t.activities.find(i=>i.id===e)},C=(t,e)=>`${t}.${e}`,$=(t,e)=>{if(e===void 0)return;const i=Je(e,2);if(i){const[s,o]=i;if(s===void 0||o===void 0)return;const r=t.activities.find(d=>d.id===s),a=r?.stories.find(d=>d.id===o);return r&&a?{activity:r,story:a}:void 0}if(e.includes("."))return;const n=t.activities.flatMap(s=>s.stories.filter(o=>o.id===e).map(o=>({activity:s,story:o})));return n.length===1?n[0]:void 0},At=t=>{const e=t.lastIndexOf(".");return e>=0?t.slice(e+1):t},ae=t=>`${t.activity.id}.${t.story.id}.${t.step.id}`,ge=(t,e,i)=>`${t.id}.${e.id}.${i.id}`,S=(t,e)=>{if(e===void 0)return;const i=Je(e,3);if(i){const[s,o,r]=i;if(s===void 0||o===void 0||r===void 0)return;const a=t.activities.find(v=>v.id===s),d=a?.stories.find(v=>v.id===o),p=d?d.steps.findIndex(v=>v.id===r):-1,c=d&&p>=0?d.steps[p]:void 0;return a&&d&&c?{activity:a,story:d,step:c,stepIndex:p}:void 0}if(e.includes("."))return;const n=B(t).filter(s=>s.step.id===e);return n.length===1?n[0]:void 0},E=(t,e)=>{if(e!==void 0){for(const i of H(t)){const n=i.screen.previews.find(s=>s.id===e);if(n)return{owner:{kind:"screen",...i},preview:n}}for(const i of B(t)){const n=F(i.step).find(s=>s.id===e);if(n)return{owner:{kind:"step",...i},preview:n}}}},It=t=>[...H(t).flatMap(e=>e.screen.previews),...B(t).flatMap(e=>F(e.step))],_t=t=>It(t).flatMap(e=>(e.notes??[]).map(i=>i.id)),B=t=>t.activities.flatMap(e=>e.stories.flatMap(i=>i.steps.map((n,s)=>({activity:e,story:i,step:n,stepIndex:s})))),Pt=t=>B(t).map(e=>e.step.id),Oe=w(u(),x(1)),Dt=t=>{const e=Fi(b({noteId:Oe}),t.payload);return`${t.type}|${e.success?e.output.noteId:JSON.stringify(t.payload)}`},m={SET_ACTIVITY_NAME:y("SET_ACTIVITY_NAME","activity",b({name:w(u(),x(1))})),SET_ACTIVITY_DESCRIPTION:y("SET_ACTIVITY_DESCRIPTION","activity",b({description:u()})),SET_STORY_NAME:y("SET_STORY_NAME","story",b({name:w(u(),x(1))})),SET_STORY_DESCRIPTION:y("SET_STORY_DESCRIPTION","story",b({description:u()})),SET_STEP_NAME:y("SET_STEP_NAME","step",b({name:w(u(),x(1))})),SET_STEP_DESCRIPTION:y("SET_STEP_DESCRIPTION","step",b({description:u()})),SET_PREVIEW_KIND:y("SET_PREVIEW_KIND","preview",b({kind:he(ht)})),SET_PREVIEW_VIEWPORT:y("SET_PREVIEW_VIEWPORT","preview",b({viewport:he(vt)})),SET_PREVIEW_LABEL:y("SET_PREVIEW_LABEL","preview",b({label:u()})),REORDER_ACTIVITY:y("REORDER_ACTIVITY","activity",b({after:oe(u())}),{mode:"sequence"}),REORDER_STORY:y("REORDER_STORY","story",b({after:oe(u())}),{mode:"sequence"}),REORDER_STEP:y("REORDER_STEP","step",b({after:oe(u())}),{mode:"sequence"}),MOVE_STORY:y("MOVE_STORY","story",b({toActivity:w(u(),x(1)),after:oe(u())}),{mode:"sequence"}),MOVE_STEP:y("MOVE_STEP","step",b({toStory:w(u(),x(1)),after:oe(u())}),{mode:"sequence"}),ADD_ACTIVITY:y("ADD_ACTIVITY","page",b({id:_,name:w(u(),x(1)),description:g(u())}),{dedupeKey:se}),ADD_STORY:y("ADD_STORY","activity",b({id:_,name:w(u(),x(1)),description:g(u())}),{dedupeKey:se}),ADD_STEP:y("ADD_STEP","story",b({id:_,name:w(u(),x(1)),description:g(u()),panes:g(N(Rn))}),{dedupeKey:se}),ADD_PREVIEW:y("ADD_PREVIEW","step",wt,{dedupeKey:se}),DELETE_ACTIVITY:y("DELETE_ACTIVITY","activity",b({})),DELETE_STORY:y("DELETE_STORY","story",b({})),DELETE_STEP:y("DELETE_STEP","step",b({})),DELETE_PREVIEW:y("DELETE_PREVIEW","preview",b({})),ADD_UI_NOTE:y("ADD_UI_NOTE",O,b({id:_,body:Ne,createdAt:g(gt)}),{dedupeKey:se}),SET_UI_NOTE_BODY:y("SET_UI_NOTE_BODY",O,b({noteId:Oe,body:Ne}),{dedupeKey:Dt}),DELETE_UI_NOTE:y("DELETE_UI_NOTE",O,b({noteId:Oe}),{dedupeKey:Dt})},W={setActivityName:(t,e)=>({type:"SET_ACTIVITY_NAME",target:{type:"activity",id:t},payload:{name:e}}),setActivityDescription:(t,e)=>({type:"SET_ACTIVITY_DESCRIPTION",target:{type:"activity",id:t},payload:{description:e}}),setStoryName:(t,e)=>({type:"SET_STORY_NAME",target:{type:"story",id:t},payload:{name:e}}),setStoryDescription:(t,e)=>({type:"SET_STORY_DESCRIPTION",target:{type:"story",id:t},payload:{description:e}}),setStepName:(t,e)=>({type:"SET_STEP_NAME",target:{type:"step",id:t},payload:{name:e}}),setStepDescription:(t,e)=>({type:"SET_STEP_DESCRIPTION",target:{type:"step",id:t},payload:{description:e}}),setPreviewViewport:(t,e)=>({type:"SET_PREVIEW_VIEWPORT",target:{type:"preview",id:t},payload:{viewport:e}}),setPreviewKind:(t,e)=>({type:"SET_PREVIEW_KIND",target:{type:"preview",id:t},payload:{kind:e}}),setPreviewLabel:(t,e)=>({type:"SET_PREVIEW_LABEL",target:{type:"preview",id:t},payload:{label:e}}),reorderActivity:(t,e)=>({type:"REORDER_ACTIVITY",target:{type:"activity",id:t},payload:{after:e}}),reorderStory:(t,e)=>({type:"REORDER_STORY",target:{type:"story",id:t},payload:{after:e}}),reorderStep:(t,e)=>({type:"REORDER_STEP",target:{type:"step",id:t},payload:{after:e}}),moveStep:(t,e,i)=>({type:"MOVE_STEP",target:{type:"step",id:t},payload:{toStory:e,after:i}}),moveStory:(t,e,i)=>({type:"MOVE_STORY",target:{type:"story",id:t},payload:{toActivity:e,after:i}}),addActivity:(t,e,i)=>({type:"ADD_ACTIVITY",target:{type:"page",id:"prototype"},payload:{id:t,name:e,...i===void 0?{}:{description:i}}}),addStory:(t,e,i,n)=>({type:"ADD_STORY",target:{type:"activity",id:t},payload:{id:e,name:i,...n===void 0?{}:{description:n}}}),addStep:(t,e,i,n)=>({type:"ADD_STEP",target:{type:"story",id:t},payload:{id:e,name:i,...n===void 0?{}:{panes:n}}}),addPreview:(t,e)=>({type:"ADD_PREVIEW",target:{type:"step",id:t},payload:{...e}}),deleteActivity:t=>({type:"DELETE_ACTIVITY",target:{type:"activity",id:t},payload:{}}),deleteStory:t=>({type:"DELETE_STORY",target:{type:"story",id:t},payload:{}}),deleteStep:t=>({type:"DELETE_STEP",target:{type:"step",id:t},payload:{}}),deletePreview:t=>({type:"DELETE_PREVIEW",target:{type:"preview",id:t},payload:{}}),addUiNote:(t,e,i,n)=>({type:"ADD_UI_NOTE",target:{type:O,id:re(t)},payload:{id:e,body:i,...n===void 0?{}:{createdAt:n}}}),setUiNoteBody:(t,e,i)=>({type:"SET_UI_NOTE_BODY",target:{type:O,id:re(t)},payload:{noteId:e,body:i}}),deleteUiNote:(t,e)=>({type:"DELETE_UI_NOTE",target:{type:O,id:re(t)},payload:{noteId:e}})},Rt=(t,e)=>{const i=Gi(m,e);if(i===null)return null;const n=i.target.id;switch(i.type){case"SET_ACTIVITY_NAME":return G(t,n,s=>({...s,name:i.payload.name}));case"SET_ACTIVITY_DESCRIPTION":return G(t,n,s=>({...s,description:i.payload.description}));case"SET_STORY_NAME":return j(t,n,s=>({...s,name:i.payload.name}));case"SET_STORY_DESCRIPTION":return j(t,n,s=>({...s,description:i.payload.description}));case"SET_STEP_NAME":return me(t,n,s=>({...s,name:i.payload.name}));case"SET_STEP_DESCRIPTION":return me(t,n,s=>({...s,description:i.payload.description}));case"SET_PREVIEW_KIND":return ee(t,n,s=>({...s,kind:i.payload.kind}));case"SET_PREVIEW_VIEWPORT":return ee(t,n,s=>({...s,viewport:i.payload.viewport}));case"SET_PREVIEW_LABEL":return ee(t,n,s=>({...s,label:i.payload.label}));case"REORDER_ACTIVITY":{const{after:s}=i.payload,o=de(t.activities,n,s);return o===null?null:{...t,activities:o}}case"REORDER_STORY":{const{after:s}=i.payload,o=$(t,n);if(!o)return null;const r=s===null?null:$(t,s);if(s!==null&&(!r||r.activity!==o.activity))return null;const a=de(o.activity.stories,o.story.id,r?.story.id??null);return a===null?null:G(t,o.activity.id,d=>({...d,stories:a}))}case"REORDER_STEP":{const{after:s}=i.payload,o=S(t,n);if(!o)return null;const r=s===null?null:S(t,s);if(s!==null&&(!r||r.story!==o.story))return null;const a=de(o.story.steps,o.step.id,r?.step.id??null);return a===null?null:j(t,C(o.activity.id,o.story.id),d=>({...d,steps:a}))}case"MOVE_STORY":{const{toActivity:s,after:o}=i.payload,r=$(t,n);if(!r)return null;const a=t.activities.find(v=>v.id===s);if(!a)return null;const d=o===null?null:$(t,o);if(o!==null&&(!d||d.activity!==a))return null;const p=d?.story.id??null;if(r.activity.id===s){const v=de(r.activity.stories,r.story.id,p);return v===null?null:G(t,s,f=>({...f,stories:v}))}if(a.stories.some(v=>v.id===r.story.id))return null;const c=Me(a.stories,r.story,p);return Ce(t,v=>v.id===r.activity.id?{...v,stories:v.stories.filter(f=>f.id!==At(n))}:v.id===s?{...v,stories:c}:v)}case"MOVE_STEP":{const{toStory:s,after:o}=i.payload,r=S(t,n);if(!r)return null;const a=$(t,s);if(!a)return null;const d=o===null?null:S(t,o);if(o!==null&&(!d||d.story!==a.story))return null;const p=d?.step.id??null;if(r.story===a.story){const v=de(r.story.steps,r.step.id,p);return v===null?null:j(t,s,f=>({...f,steps:v}))}if(a.story.steps.some(v=>v.id===r.step.id))return null;const c=Me(a.story.steps,r.step,p);return Ce(t,v=>({...v,stories:v.stories.map(f=>f===r.story?{...f,steps:f.steps.filter(I=>I.id!==At(n))}:f===a.story?{...f,steps:c}:f)}))}case"ADD_ACTIVITY":{const s=i.payload;if(t.activities.some(r=>r.id===s.id))return t;const o={id:s.id,name:s.name,...s.description===void 0?{}:{description:s.description},stories:[]};return{...t,activities:[...t.activities,o]}}case"ADD_STORY":{const s=i.payload,o=t.activities.find(a=>a.id===n);if(!o)return null;if(o.stories.some(a=>a.id===s.id))return t;const r={id:s.id,name:s.name,...s.description===void 0?{}:{description:s.description},steps:[]};return G(t,n,a=>({...a,stories:[...a.stories,r]}))}case"ADD_STEP":{const s=i.payload,o=$(t,n)?.story;if(!o)return null;if(o.steps.some(d=>d.id===s.id))return t;const r=s.panes??[],a={id:s.id,name:s.name,...s.description===void 0?{}:{description:s.description},panes:r};return Wn(t,a)?j(t,n,d=>({...d,steps:[...d.steps,a]})):null}case"ADD_PREVIEW":{const s=i.payload,o=S(t,n)?.step;return o?F(o).some(r=>r.id===s.id)?t:E(t,s.id)?null:me(t,n,r=>({...r,panes:[...r.panes,{material:s}]})):null}case"DELETE_ACTIVITY":{const s=n;return t.activities.some(o=>o.id===s)?{...t,activities:t.activities.filter(o=>o.id!==s)}:null}case"DELETE_STORY":{const s=$(t,n);return s?G(t,s.activity.id,o=>({...o,stories:o.stories.filter(r=>r.id!==s.story.id)})):null}case"DELETE_STEP":{const s=S(t,n);return s?j(t,C(s.activity.id,s.story.id),o=>({...o,steps:o.steps.filter(r=>r.id!==s.step.id)})):null}case"DELETE_PREVIEW":{const s=E(t,n);return s?Nt(t,s.owner,o=>o.filter(r=>r.id!==s.preview.id)):null}case"ADD_UI_NOTE":{const{id:s,body:o,createdAt:r}=i.payload,a=Q(n),d=a===void 0?void 0:E(t,a.previewId);if(a===void 0||d===void 0)return null;if(d.preview.notes?.some(c=>c.id===s&&c.selector===a.selector))return t;if(_t(t).includes(s))return null;const p={id:s,selector:a.selector,...a.text===void 0?{}:{text:a.text},body:o,...r===void 0?{}:{createdAt:r}};return ee(t,d.preview.id,c=>({...c,notes:[...c.notes??[],p]}))}case"SET_UI_NOTE_BODY":{const{noteId:s,body:o}=i.payload,r=Q(n),a=r===void 0?void 0:E(t,r.previewId);return a?.preview.notes?.some(d=>d.id===s)?ee(t,a.preview.id,d=>({...d,notes:(d.notes??[]).map(p=>p.id===s?{...p,body:o}:p)})):null}case"DELETE_UI_NOTE":{const{noteId:s}=i.payload,o=Q(n),r=o===void 0?void 0:E(t,o.previewId);return r?.preview.notes?.some(a=>a.id===s)?ee(t,r.preview.id,a=>{const d=(a.notes??[]).filter(v=>v.id!==s),{notes:p,...c}=a;return d.length===0?c:{...c,notes:d}}):null}default:return ji(i)}},Ce=(t,e)=>({...t,activities:t.activities.map(e)}),G=(t,e,i)=>{const n=e;return t.activities.some(s=>s.id===n)?Ce(t,s=>s.id===n?i(s):s):null},j=(t,e,i)=>{const n=$(t,e);if(!n)return null;const s=n.story.id;return G(t,n.activity.id,o=>({...o,stories:o.stories.map(r=>r.id===s?i(r):r)}))},me=(t,e,i)=>{const n=S(t,e);if(!n)return null;const s=n.step.id;return j(t,C(n.activity.id,n.story.id),o=>({...o,steps:o.steps.map(r=>r.id===s?i(r):r)}))},ee=(t,e,i)=>{const n=E(t,e);if(!n)return null;const s=n.preview.id;return Nt(t,n.owner,o=>o.map(r=>r.id===s?i(r):r))},Wn=(t,e)=>{const i=F(e).map(n=>n.id);return Hn(t,e)===null&&new Set(i).size===i.length&&!i.some(n=>E(t,n))},Nt=(t,e,i)=>{if(e.kind==="step")return me(t,ae(e),s=>{const o=new Map(i([...F(s)]).map(r=>[r.id,r]));return{...s,panes:s.panes.flatMap(r=>{if(J(r))return[r];const a=o.get(r.material.id);return a?[{material:a}]:[]})}});const n=e.screen.id;return{...t,apps:t.apps.map(s=>s.id===e.app.id?{...s,screens:s.screens.map(o=>o.id===n?{...o,previews:i(o.previews)}:o)}:s)}},de=(t,e,i)=>{const n=t.findIndex(r=>r.id===e);if(n<0||i!==null&&!t.some(r=>r.id===i))return null;if(e===i)return[...t];const s=t[n];if(s===void 0)return null;const o=t.filter(r=>r.id!==e);return Me(o,s,i)},Me=(t,e,i)=>{const n=[...t],s=i===null?-1:n.findIndex(o=>o.id===i);return n.splice(s+1,0,e),n},Ot={"iphone-se":"iPhone SE","iphone-16":"iPhone 16","iphone-16-pro-max":"iPhone 16 Pro Max","pixel-7":"Pixel 7","galaxy-s24":"Galaxy S24","ipad-mini":"iPad mini","ipad-air-11":'iPad Air 11"',"ipad-pro-11":'iPad Pro 11"',"ipad-pro-13":'iPad Pro 13"'},qn={"laptop-13":'13" laptop',"laptop-15":'15" laptop',"full-hd":"Full HD","monitor-27":'27" monitor',ultrawide:"Ultrawide"},Fn={"laptop-13":"13 \u30A4\u30F3\u30C1 \u30CE\u30FC\u30C8","laptop-15":"15 \u30A4\u30F3\u30C1 \u30CE\u30FC\u30C8","full-hd":"\u30D5\u30EB HD","monitor-27":"27 \u30A4\u30F3\u30C1 \u30E2\u30CB\u30BF\u30FC",ultrawide:"\u30A6\u30EB\u30C8\u30E9\u30EF\u30A4\u30C9"},le=Ki({en:{renameActivity:"Rename Activity",updateActivityDescription:"Update Activity description",renameStory:"Rename UserStory",updateStoryDescription:"Update UserStory description",renameStep:"Rename Step",updateStepDescription:"Update Step description",changePreviewKind:"Change Preview kind",changePreviewViewport:"Change Preview viewport",changePreviewLabel:"Change Preview label",moveStory:"Move UserStory",moveStep:"Move Step",deleteTitle:"Delete",reorderTitle:t=>`Reorder ${t}`,addTitle:t=>`Add ${t}`,toFront:"\u2192 To the front",afterName:t=>`\u2192 Right after "${t}"`,unknownTarget:"(unknown target)",activityGroup:"Activity",storyGroup:"UserStory",stepGroup:"Step",screenGroup:"Screen",openInApp:"Open this screen in the app view",previewGroup:"Preview",pageGroup:"Page",uiGroup:"UI",targetLabel:(t,e)=>`${t} \xB7 ${e}`,targetMissing:(t,e)=>`${t} \xB7 ${e} (missing)`,noActivityBefore:"There are no Activities yet. Add ",noActivityAfter:" to the base JSON, or ask the agent.",deleteStepAria:"Delete step",addStepButton:"+ Step",stepNameLabel:"Step name",descriptionLabel:"Description",descriptionPlaceholder:"What happens in this Step (click to edit)",newStepName:"New step",viewLabel:"View",viewScenario:"Scenario",viewApp:"App",viewScenarioHint:"Follow one user story step by step",viewAppHint:"Use the UI as one app, whatever the scenario",appScreens:"Screens",appScreensHint:"Pick a screen to start from, then move around through the UI itself.",appSelectLabel:"App",appOutsideBrowser:"Outside the browser",noStepBefore:"There are no Steps yet. A Prototype has the meaning structure ",noStepAfter:" \u2014 one Step is one moment of the story: the screen the user is on and what they have at hand. Add a Step to the base JSON, and its screen will appear here.",noScreens:"This product has no screens yet. Declare its apps and their screens under apps[].screens in the base JSON, and they will appear here.",noPreviewMetadata:"No preview metadata \u2014 ask the agent to add it.",storyWithoutSteps:"This UserStory has no Steps yet, so there is no screen to show. Add one with + Step, or ask the agent to prototype it.",pageActor:t=>`Used by ${t}`,maximize:"Maximize",restore:"Restore size",maximizeHint:"Show the preview alone across the tab \xB7 Esc to restore",situation:"Situation",uiComment:"Comment on UI",uiCommentHint:"Click any part of the preview to comment on it \xB7 Esc to finish",commentOnElement:"Comment on element",uiCommentPin:(t,e)=>`Comment ${t}: ${e}`,uiCommentAs:"What it is",uiCommentFeedback:"Review comment",uiCommentFeedbackHint:"Sent to the Agent as a message. Gone once it is reflected.",uiCommentNote:"Note",uiCommentNoteHint:"Kept on the element as part of the prototype, shown as a badge in the scenario view.",uiNoteSubmit:"Keep",uiNotes:t=>t===1?"1 note":`${t} notes`,uiNotesOn:t=>`Notes on ${t}`,uiNoteDate:t=>Ct("en-US",t),deleteUiNoteAria:"Delete the note",editUiNoteAria:"Edit the note",editUiNoteLabel:"Note",editUiNoteHint:"Ctrl/Cmd + Enter to save, Esc to close",saveUiNote:"Save",cancelUiNote:"Cancel",closeUiNotes:"Close",addUiNote:"Add a note",editUiNote:"Edit a note",deleteUiNote:"Delete a note",mailFrom:"From",mailTo:"To",mailCc:"Cc",mailDate:"Date",demo:"Demo",demoHint:"Use the app in a browser across the tab, with nothing else on screen \xB7 Esc to finish",exitDemo:"Exit demo",browserBack:"Back",browserForward:"Forward",browserReload:"Reload",browserAddress:"Address",browserTabs:"Tabs",newTab:"New tab",closeTab:"Close tab",browserProfile:t=>`Profile: ${t}`,browserGuest:"Guest",newTabShortcuts:"Pages of this app",unreachableTitle:"This site can\u2019t be reached",unreachableBody:"No page of the prototype has this address.",device:"Device",deviceHint:"The window the app runs in: a page taller than it scrolls inside, as on the device",deviceName:t=>Ot[t]??qn[t]??t,deviceZoom:t=>`Shown at ${t}% to fit`,actions:"Actions",actionsHint:"Make the screen do something in one go, e.g. fill its form with sample data"},ja:{renameActivity:"Activity \u540D\u3092\u5909\u66F4",updateActivityDescription:"Activity \u306E\u8AAC\u660E\u3092\u66F4\u65B0",renameStory:"UserStory \u540D\u3092\u5909\u66F4",updateStoryDescription:"UserStory \u306E\u8AAC\u660E\u3092\u66F4\u65B0",renameStep:"Step \u540D\u3092\u5909\u66F4",updateStepDescription:"Step \u306E\u8AAC\u660E\u3092\u66F4\u65B0",changePreviewKind:"Preview \u306E\u7A2E\u5225\u3092\u5909\u66F4",changePreviewViewport:"Preview \u306E\u30D3\u30E5\u30FC\u30DD\u30FC\u30C8\u3092\u5909\u66F4",changePreviewLabel:"Preview \u306E\u30E9\u30D9\u30EB\u3092\u5909\u66F4",moveStory:"UserStory \u3092\u79FB\u52D5",moveStep:"Step \u3092\u79FB\u52D5",deleteTitle:"\u524A\u9664",reorderTitle:t=>`${t} \u306E\u9806\u5E8F\u3092\u5909\u66F4`,addTitle:t=>`${t} \u3092\u8FFD\u52A0`,toFront:"\u2192 \u5148\u982D\u3078",afterName:t=>`\u2192 "${t}" \u306E\u76F4\u5F8C\u3078`,unknownTarget:"(unknown target)",activityGroup:"Activity",storyGroup:"UserStory",stepGroup:"Step",screenGroup:"\u753B\u9762",openInApp:"\u3053\u306E\u753B\u9762\u3092\u30A2\u30D7\u30EA\u30D3\u30E5\u30FC\u3067\u958B\u304F",previewGroup:"Preview",pageGroup:"Page",uiGroup:"UI",targetLabel:(t,e)=>`${t} \xB7 ${e}`,targetMissing:(t,e)=>`${t} \xB7 ${e} (missing)`,noActivityBefore:"Activity \u304C\u307E\u3060\u3042\u308A\u307E\u305B\u3093\u3002base JSON \u306E ",noActivityAfter:" \u3092\u8FFD\u52A0\u3059\u308B\u304B\u3001Agent \u306B\u4F9D\u983C\u3057\u3066\u304F\u3060\u3055\u3044\u3002",deleteStepAria:"\u30B9\u30C6\u30C3\u30D7\u3092\u524A\u9664",addStepButton:"+ Step",stepNameLabel:"Step \u540D",descriptionLabel:"\u8AAC\u660E",descriptionPlaceholder:"\u3053\u306E Step \u3067\u4F55\u304C\u8D77\u304D\u308B\u304B\uFF08\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u7DE8\u96C6\uFF09",newStepName:"\u65B0\u3057\u3044\u30B9\u30C6\u30C3\u30D7",viewLabel:"\u8868\u793A",viewScenario:"\u30B7\u30CA\u30EA\u30AA",viewApp:"\u30A2\u30D7\u30EA",viewScenarioHint:"\u30E6\u30FC\u30B6\u30FC\u30B9\u30C8\u30FC\u30EA\u30FC\u306B\u6CBF\u3063\u3066 Step \u3092\u9806\u306B\u305F\u3069\u308B",viewAppHint:"\u30B7\u30CA\u30EA\u30AA\u306B\u95A2\u4FC2\u306A\u304F\u3001UI \u3092 1 \u3064\u306E\u30A2\u30D7\u30EA\u3068\u3057\u3066\u89E6\u308B",appScreens:"\u753B\u9762",appScreensHint:"\u8D77\u70B9\u306B\u3059\u308B\u753B\u9762\u3092\u9078\u3073\u3001\u3042\u3068\u306F UI \u306E\u30EA\u30F3\u30AF\u3067\u79FB\u52D5\u3057\u307E\u3059\u3002",appSelectLabel:"\u30A2\u30D7\u30EA",appOutsideBrowser:"\u30D6\u30E9\u30A6\u30B6\u4EE5\u5916",noStepBefore:"Step \u304C\u307E\u3060\u3042\u308A\u307E\u305B\u3093\u3002Prototype \u306F ",noStepAfter:" \u306E\u610F\u5473\u69CB\u9020\u3092\u6301\u3061\u30011 Step = \u30B7\u30CA\u30EA\u30AA\u306E 1 \u5834\u9762\uFF08\u30E6\u30FC\u30B6\u30FC\u304C\u3044\u308B\u753B\u9762\u3068\u3001\u624B\u5143\u306B\u3042\u308B\u3082\u306E\uFF09\u3067\u3059\u3002base JSON \u306B Step \u3092\u8FFD\u52A0\u3059\u308B\u3068\u3001\u3053\u3053\u306B\u305D\u306E\u753B\u9762\u304C\u73FE\u308C\u307E\u3059\u3002",noScreens:"\u3053\u306E\u30D7\u30ED\u30C0\u30AF\u30C8\u306B\u306F\u307E\u3060\u753B\u9762\u304C\u3042\u308A\u307E\u305B\u3093\u3002base JSON \u306E apps[].screens \u306B\u30A2\u30D7\u30EA\u3068\u753B\u9762\u3092\u5BA3\u8A00\u3059\u308B\u3068\u3001\u3053\u3053\u306B\u73FE\u308C\u307E\u3059\u3002",noPreviewMetadata:"preview metadata \u304C\u3042\u308A\u307E\u305B\u3093 \u2014 \u8FFD\u52A0\u306F Agent \u306B\u4F9D\u983C\u3057\u3066\u304F\u3060\u3055\u3044",storyWithoutSteps:"\u3053\u306E UserStory \u306B\u306F\u307E\u3060 Step \u304C\u306A\u304F\u3001\u898B\u305B\u308B\u753B\u9762\u304C\u3042\u308A\u307E\u305B\u3093\u3002+ Step \u3067\u8FFD\u52A0\u3059\u308B\u304B\u3001Agent \u306B\u30D7\u30ED\u30C8\u30BF\u30A4\u30D7\u3092\u4F9D\u983C\u3057\u3066\u304F\u3060\u3055\u3044\u3002",pageActor:t=>`\u5229\u7528\u8005: ${t}`,maximize:"\u6700\u5927\u5316",restore:"\u5143\u306E\u30B5\u30A4\u30BA\u306B\u623B\u3059",maximizeHint:"\u30D7\u30EC\u30D3\u30E5\u30FC\u3060\u3051\u3092\u30BF\u30D6\u3044\u3063\u3071\u3044\u306B\u8868\u793A \xB7 Esc \u3067\u623B\u308B",situation:"\u72B6\u6CC1",uiComment:"UI \u306B\u30B3\u30E1\u30F3\u30C8",uiCommentHint:"\u30D7\u30EC\u30D3\u30E5\u30FC\u306E\u8981\u7D20\u3092\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u30B3\u30E1\u30F3\u30C8 \xB7 Esc \u3067\u7D42\u4E86",commentOnElement:"\u8981\u7D20\u306B\u30B3\u30E1\u30F3\u30C8",uiCommentPin:(t,e)=>`\u30B3\u30E1\u30F3\u30C8 ${t}: ${e}`,uiCommentAs:"\u30B3\u30E1\u30F3\u30C8\u306E\u7A2E\u985E",uiCommentFeedback:"\u30EC\u30D3\u30E5\u30FC\u30B3\u30E1\u30F3\u30C8",uiCommentFeedbackHint:"Agent \u3078\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u3068\u3057\u3066\u9001\u4FE1\u3055\u308C\u307E\u3059\u3002\u53CD\u6620\u3055\u308C\u308B\u3068\u6D88\u3048\u307E\u3059\u3002",uiCommentNote:"\u30E1\u30E2",uiCommentNoteHint:"\u30D7\u30ED\u30C8\u30BF\u30A4\u30D7\u306E\u4E00\u90E8\u3068\u3057\u3066\u8981\u7D20\u306B\u6B8B\u308A\u3001\u30B7\u30CA\u30EA\u30AA\u30D3\u30E5\u30FC\u3067\u30D0\u30C3\u30B8\u3068\u3057\u3066\u8868\u793A\u3055\u308C\u307E\u3059\u3002",uiNoteSubmit:"\u6B8B\u3059",uiNotes:t=>`\u30E1\u30E2 ${t} \u4EF6`,uiNotesOn:t=>`${t} \u306E\u30E1\u30E2`,uiNoteDate:t=>Ct("ja-JP",t),deleteUiNoteAria:"\u30E1\u30E2\u3092\u524A\u9664",editUiNoteAria:"\u30E1\u30E2\u3092\u7DE8\u96C6",editUiNoteLabel:"\u30E1\u30E2",editUiNoteHint:"Ctrl/Cmd + Enter \u3067\u4FDD\u5B58\u3001Esc \u3067\u9589\u3058\u308B",saveUiNote:"\u4FDD\u5B58",cancelUiNote:"\u30AD\u30E3\u30F3\u30BB\u30EB",closeUiNotes:"\u9589\u3058\u308B",addUiNote:"\u30E1\u30E2\u3092\u8FFD\u52A0",editUiNote:"\u30E1\u30E2\u3092\u7DE8\u96C6",deleteUiNote:"\u30E1\u30E2\u3092\u524A\u9664",mailFrom:"\u5DEE\u51FA\u4EBA",mailTo:"\u5B9B\u5148",mailCc:"Cc",mailDate:"\u65E5\u6642",demo:"\u30C7\u30E2",demoHint:"\u307B\u304B\u306B\u4F55\u3082\u51FA\u3055\u305A\u3001\u30BF\u30D6\u3044\u3063\u3071\u3044\u306E\u30D6\u30E9\u30A6\u30B6\u3067\u30A2\u30D7\u30EA\u3092\u89E6\u308B \xB7 Esc \u3067\u7D42\u4E86",exitDemo:"\u30C7\u30E2\u3092\u7D42\u4E86",browserBack:"\u623B\u308B",browserForward:"\u9032\u3080",browserReload:"\u518D\u8AAD\u307F\u8FBC\u307F",browserAddress:"\u30A2\u30C9\u30EC\u30B9",browserTabs:"\u30BF\u30D6",newTab:"\u65B0\u3057\u3044\u30BF\u30D6",closeTab:"\u30BF\u30D6\u3092\u9589\u3058\u308B",browserProfile:t=>`\u30D7\u30ED\u30D5\u30A3\u30FC\u30EB: ${t}`,browserGuest:"\u30B2\u30B9\u30C8",newTabShortcuts:"\u3053\u306E\u30A2\u30D7\u30EA\u306E\u30DA\u30FC\u30B8",unreachableTitle:"\u3053\u306E\u30B5\u30A4\u30C8\u306B\u30A2\u30AF\u30BB\u30B9\u3067\u304D\u307E\u305B\u3093",unreachableBody:"\u30D7\u30ED\u30C8\u30BF\u30A4\u30D7\u306B\u3053\u306E\u30A2\u30C9\u30EC\u30B9\u306E\u30DA\u30FC\u30B8\u306F\u3042\u308A\u307E\u305B\u3093\u3002",device:"\u30C7\u30D0\u30A4\u30B9",deviceHint:"\u30A2\u30D7\u30EA\u3092\u52D5\u304B\u3059\u753B\u9762\u306E\u5927\u304D\u3055\u3002\u53CE\u307E\u3089\u306A\u3044\u30DA\u30FC\u30B8\u306F\u5B9F\u6A5F\u3068\u540C\u3058\u304F\u753B\u9762\u306E\u4E2D\u3067\u30B9\u30AF\u30ED\u30FC\u30EB\u3059\u308B",deviceName:t=>Ot[t]??Fn[t]??t,deviceZoom:t=>`\u53CE\u307E\u308B\u3088\u3046 ${t}% \u3067\u8868\u793A`,actions:"\u30A2\u30AF\u30B7\u30E7\u30F3",actionsHint:"\u30D5\u30A9\u30FC\u30E0\u306B\u30B5\u30F3\u30D7\u30EB\u30C7\u30FC\u30BF\u3092\u5165\u308C\u308B\u306A\u3069\u3001\u753B\u9762\u306B\u7528\u610F\u3055\u308C\u305F\u64CD\u4F5C\u3092\u4E00\u5EA6\u306B\u884C\u3046"}}),Ct=(t,e)=>new Intl.DateTimeFormat(t,{dateStyle:"medium",timeStyle:"short"}).format(new Date(e)),Gn=["scenario","app"],V="view",pe=t=>t[V]==="app"?"app":"scenario",Mt=t=>({[V]:t==="app"?"app":null}),ce=(t,e)=>t===void 0?`\u2192 "${e}"`:`"${t}" \u2192 "${e}"`,jn=t=>({SET_ACTIVITY_NAME:(e,i)=>({title:t.renameActivity,tone:"update",body:ce(U(i,e.target.id)?.name,k(m.SET_ACTIVITY_NAME,e).name)}),SET_ACTIVITY_DESCRIPTION:(e,i)=>({title:t.updateActivityDescription,tone:"update",body:we(U(i,e.target.id)?.description,k(m.SET_ACTIVITY_DESCRIPTION,e).description)}),SET_STORY_NAME:(e,i)=>({title:t.renameStory,tone:"update",body:ce($(i,e.target.id)?.story.name,k(m.SET_STORY_NAME,e).name)}),SET_STORY_DESCRIPTION:(e,i)=>({title:t.updateStoryDescription,tone:"update",body:we($(i,e.target.id)?.story.description,k(m.SET_STORY_DESCRIPTION,e).description)}),SET_STEP_NAME:(e,i)=>({title:t.renameStep,tone:"update",body:ce(S(i,e.target.id)?.step.name,k(m.SET_STEP_NAME,e).name)}),SET_STEP_DESCRIPTION:(e,i)=>({title:t.updateStepDescription,tone:"update",body:we(S(i,e.target.id)?.step.description,k(m.SET_STEP_DESCRIPTION,e).description)}),SET_PREVIEW_KIND:(e,i)=>({title:t.changePreviewKind,tone:"update",body:ce(E(i,e.target.id)?.preview.kind,k(m.SET_PREVIEW_KIND,e).kind)}),SET_PREVIEW_VIEWPORT:(e,i)=>({title:t.changePreviewViewport,tone:"update",body:ce(E(i,e.target.id)?.preview.viewport,k(m.SET_PREVIEW_VIEWPORT,e).viewport)}),SET_PREVIEW_LABEL:e=>({title:t.changePreviewLabel,tone:"update",body:`\u2192 "${k(m.SET_PREVIEW_LABEL,e).label}"`}),REORDER_ACTIVITY:e=>Ue(t,t.activityGroup,k(m.REORDER_ACTIVITY,e).after),REORDER_STORY:e=>Ue(t,t.storyGroup,k(m.REORDER_STORY,e).after),REORDER_STEP:e=>Ue(t,t.stepGroup,k(m.REORDER_STEP,e).after),MOVE_STORY:(e,i)=>({title:t.moveStory,tone:"move",body:`\u2192 ${U(i,k(m.MOVE_STORY,e).toActivity)?.name??k(m.MOVE_STORY,e).toActivity}`}),MOVE_STEP:(e,i)=>({title:t.moveStep,tone:"move",body:`\u2192 ${$(i,k(m.MOVE_STEP,e).toStory)?.story.name??k(m.MOVE_STEP,e).toStory}`}),ADD_ACTIVITY:e=>ye(t,t.activityGroup,k(m.ADD_ACTIVITY,e).name),ADD_STORY:e=>ye(t,t.storyGroup,k(m.ADD_STORY,e).name),ADD_STEP:e=>ye(t,t.stepGroup,k(m.ADD_STEP,e).name),ADD_PREVIEW:e=>ye(t,t.previewGroup,k(m.ADD_PREVIEW,e).label??k(m.ADD_PREVIEW,e).id),DELETE_ACTIVITY:(e,i)=>be(t,U(i,e.target.id)?.name),DELETE_STORY:(e,i)=>be(t,$(i,e.target.id)?.story.name),DELETE_STEP:(e,i)=>be(t,S(i,e.target.id)?.step.name),DELETE_PREVIEW:(e,i)=>be(t,E(i,e.target.id)?.preview.label),ADD_UI_NOTE:e=>({title:t.addUiNote,tone:"create",body:`+ "${Le(k(m.ADD_UI_NOTE,e).body)}"`}),SET_UI_NOTE_BODY:(e,i)=>{const{noteId:n,body:s}=k(m.SET_UI_NOTE_BODY,e);return{title:t.editUiNote,tone:"update",body:we(Yt(i,n)?.body,s)}},DELETE_UI_NOTE:(e,i)=>{const{noteId:n}=k(m.DELETE_UI_NOTE,e),s=Yt(i,n);return{title:t.deleteUiNote,tone:"delete",body:s===void 0?t.unknownTarget:`\u2212 "${Le(s.body)}"`}}}),we=(t,e)=>{const i=e.length>90?`${e.slice(0,90)}\u2026`:e;return t===void 0||t===""?`\u2192 "${i}"`:`"${Le(t)}" \u2192 "${i}"`},Le=t=>t.length>60?`${t.slice(0,60)}\u2026`:t,Ue=(t,e,i)=>({title:t.reorderTitle(e),tone:"move",body:i===null?t.toFront:t.afterName(i)}),ye=(t,e,i)=>({title:t.addTitle(e),tone:"create",body:`+ "${i}"`}),be=(t,e)=>({title:t.deleteTitle,tone:"delete",body:e===void 0?t.unknownTarget:`\u2212 "${e}"`}),Lt=(t,e,i,n)=>{const s=jn(t),o=Object.hasOwn(s,e.type)?s[e.type]:void 0,r=o?o(e,n??i):{title:e.type,tone:"meta"};return{title:r.title,targetLabel:Vt(t,i,e.target),tone:r.tone,...r.body===void 0?{}:{summary:r.body}}},Ut=t=>`${t.type} ${Y(t.target)} ${JSON.stringify(t.payload)}`,Vt=(t,e,i)=>{switch(i.type){case"activity":{const n=U(e,i.id);return n?t.targetLabel(t.activityGroup,n.name):t.targetMissing(t.activityGroup,i.id)}case"story":{const n=$(e,i.id)?.story;return n?t.targetLabel(t.storyGroup,n.name):t.targetMissing(t.storyGroup,i.id)}case"step":{const n=S(e,i.id)?.step;return n?t.targetLabel(t.stepGroup,n.name):t.targetMissing(t.stepGroup,i.id)}case"screen":{const n=L(e,i.id)?.screen;return n?t.targetLabel(t.screenGroup,n.title):t.targetMissing(t.screenGroup,i.id)}case"preview":{const n=E(e,i.id)?.preview;return n?t.targetLabel(t.previewGroup,n.label??n.id):t.targetMissing(t.previewGroup,i.id)}case"page":return t.targetLabel(t.pageGroup,He(e));case O:{const n=Q(i.id),s=n?E(e,n.previewId)?.preview:void 0;return n&&s?t.targetLabel(t.uiGroup,Ve(s,n)):t.targetMissing(t.uiGroup,i.id)}default:return t.targetLabel(i.type,i.id)}},Ve=(t,e)=>{const i=e.text===void 0?e.selector:`"${e.text}"`;return`${t.label??t.id} \u203A ${i}`},zt=(t,e)=>{const i=[];for(const n of t){if(n.target.type!==O)continue;const s=Q(n.target.id);!s||!e.includes(s.previewId)||i.push({id:n.id,previewId:s.previewId,selector:s.selector,number:i.length+1,body:Qe(n)})}return i},Kn=(t,e)=>e.flatMap(i=>{const n=E(t,i)?.preview,s=new Map;for(const o of n?.notes??[])s.set(o.selector,[...s.get(o.selector)??[],o]);return n===void 0?[]:[...s].map(([o,r])=>({previewId:i,selector:o,label:Ve(n,{selector:o,...Xn(r)}),notes:r}))}),Xn=t=>{const e=[...t].reverse().find(i=>i.text!==void 0)?.text;return e===void 0?{}:{text:e}},Yt=(t,e)=>It(t).flatMap(i=>i.notes??[]).find(i=>i.id===e),Ht=(t,e)=>zt(t,e).length,Zn=/^[a-z][a-z0-9+.-]*:/i,Jn=t=>{const e=t.baseUrl?.trim(),i=Xi(t.title??"");return`${(e?e.startsWith("http")?e:`https://${e}`:`https://${i==="item"?"page":i}.example.com`).replace(/\/+$/,"")}/`},ke=(t,e,i=null)=>{const n=Jn(t),s=i==null||i===""?e.url:i;if(!s)return`${n}${e.id}`;if(Zn.test(s))return s;try{return decodeURI(new URL(s,n).href)}catch{return s}},Qn=t=>{switch(t.type){case"activity":return{[V]:null,activity:t.id};case"story":return{[V]:null,activity:null,story:t.id};case"step":return{[V]:null,activity:null,story:null,step:t.id};case"screen":return{screen:t.id};default:return null}},Bt=(t,e)=>{const i=t.kind==="screen"?[{type:"screen",id:t.screen.id}]:[{type:"activity",id:t.activity.id},{type:"story",id:C(t.activity.id,t.story.id)},...t.kind==="step"?[{type:"step",id:ae(t)}]:[]];for(const n of e?.panes??[])n.kind==="screen"&&i.push({type:"screen",id:n.screen.screen.id});return[...new Set(i.map(Y))].join(" ")},ze=",",Wt=t=>t.preview?.split(ze)??[],es=(t,e)=>t.kind===e.kind&&t.viewport===e.viewport,qt=(t,e,i)=>{const n=e.find(o=>i.includes(o.id));if(n)return n;const s=i.flatMap(o=>E(t,o)?.preview??[]);return e.find(o=>s.some(r=>es(o,r)))??e[0]},Ft=(t,e,i,n)=>{const s=e.screen.previews,o=i===void 0?qt(t,s,Wt(n)):s.find(a=>a.id===i);if(!o)return;const r=i===void 0&&s.length>1;return{kind:"screen",screen:e,preview:o,pinned:i!==void 0,tabs:r?s:[]}},Gt=t=>({layout:t.length>1?"side-by-side":"single",panes:t,shown:t.map(e=>e.preview)}),jt=(t,e,i)=>e.panes.flatMap(n=>{if(!J(n))return[{kind:"material",preview:n.material}];const s=L(t,n.screen),o=s&&Ft(t,s,n.preview,i);return o?[o]:[]}),Ye=(t,e,i)=>{if(e.kind==="screen"){const n=Ft(t,e,void 0,i);return Gt(n?[n]:[])}return Gt(jt(t,e.step,i))},ts=(t,e)=>t.panes.flatMap(i=>i.kind!=="screen"||i.tabs.length===0?[]:[i.tabs.some(n=>n.id===e)?e:i.preview.id]).join(ze),Kt=(t,e)=>{const i=new Map;for(const n of e){const s=E(t,n)?.owner;if(s?.kind!=="screen"||s.screen.actions.length===0)continue;const o=i.get(s.screen.id)??{screen:s.screen,previewIds:[]};o.previewIds.push(n),i.set(s.screen.id,o)}return[...i.values()].map(({screen:n,previewIds:s})=>({screen:n,previewIds:s,actions:n.actions}))},is=(t,e)=>[...F(e),...fe(t,e).flatMap(i=>i.screen.previews)],ns=["activity","story","step","screen","preview"],ss=(t,e,i)=>{switch(e){case"activity":return U(t,i)!==void 0;case"story":return $(t,i)!==void 0||t.activities.some(n=>n.stories.some(s=>s.id===i));case"step":return S(t,i)!==void 0||B(t).some(n=>n.step.id===i);case"screen":return L(t,i)!==void 0;case"preview":return E(t,i)!==void 0;default:return!1}},os=(t,e)=>{let i;if(e.navigate!==null)i=e.navigate.includes("=")?e.navigate:`step=${e.navigate}`;else{const o=e.href?.trim()??"";if(o===""||o==="#"||o.toLowerCase().startsWith("javascript:"))return"no-destination";if(!o.startsWith("#"))return null;i=o}const n=_e(i),s=ns.filter(o=>n[o]!==void 0);return s.length===0?e.navigate===null?null:"unknown-target":s.every(o=>ss(t,o,n[o]??""))?null:"unknown-target"},rs=(t,e)=>{const i=e.mail??{},n=[{label:t.mailFrom,value:i.from},{label:t.mailTo,value:i.to},{label:t.mailCc,value:i.cc},{label:t.mailDate,value:i.date}].flatMap(r=>r.value===void 0||r.value.trim()===""?[]:[{label:r.label,value:r.value}]),s=i.from?.replace(/<[^>]*>/g,"").replace(/["']/g,"").trim()||i.from?.trim(),o=s?Array.from(s)[0]?.toUpperCase():void 0;return{...i.subject===void 0||i.subject.trim()===""?{}:{subject:i.subject},...s?{sender:s}:{},...o===void 0?{}:{initial:o},rows:n}},Xt=(t,e)=>{const i=[];for(const n of e.activities){i.push({value:Y({type:"activity",id:n.id}),label:n.name,group:t.activityGroup});for(const s of n.stories){i.push({value:Y({type:"story",id:C(n.id,s.id)}),label:`${n.name} \u203A ${s.name}`,group:t.storyGroup});for(const o of s.steps)i.push({value:Y({type:"step",id:ge(n,s,o)}),label:`${s.name} \u203A ${o.name}`,group:t.stepGroup})}}for(const{app:n,screen:s}of H(e))i.push({value:Y({type:"screen",id:s.id}),label:`${n.name} \u203A ${s.title}`,group:t.screenGroup});return i},as=(t,e,i)=>{const n=te(e,i);if(n?.kind==="screen"){const{screen:s}=n;return{value:Y({type:"screen",id:s.id}),label:s.title,group:t.screenGroup}}return n?.kind!=="step"?null:{value:Y({type:"step",id:ae(n)}),label:n.step.name,group:t.stepGroup}},te=(t,e)=>{if(pe(e)==="app"){const o=L(t,e.screen);return o?{kind:"screen",...o}:void 0}const i=S(t,e.step);if(i)return{kind:"step",...i};const n=U(t,e.activity),s=n?.stories.find(o=>o.id===e.story||C(n.id,o.id)===e.story);return n&&s?{kind:"story",activity:n,story:s}:void 0},Zt=(t,e)=>{const i=(d,p)=>p===void 0?{title:d}:{actor:p,title:d};if(e.kind==="screen")return i(e.screen.title,e.app.actor);const{activity:n,story:s,step:o}=e,r=fe(t,o),a=r.length===1?r[0]:void 0;return i(a?.screen.title??o.name,o.actor??s.actor??n.actor??a?.app.actor)},ds=(t,e)=>{const i=e.actor??t.actor;return i===void 0?{title:e.name}:{actor:i,title:e.name}},He=t=>t.title??"UX Prototype",Jt=(t,e)=>(e?t.preview=e:delete t.preview,t),ls=(t,e,i)=>{if(!e)return;const n=jt(t,e,i).flatMap(s=>s.kind==="screen"&&!s.pinned?[s.preview.id]:[]);return n.length===0?void 0:n.join(ze)},Qt=(t,e)=>{const i=()=>{if(e.step===void 0&&e.story===void 0)return;const o=ei(t,{...e,[V]:""}),r=S(t,o.step);return r&&fe(t,r.step)[0]},n=L(t,e.screen)??i()??H(t)[0],s={...e,[V]:"app"};for(const o of["activity","story","step"])delete s[o];return n?s.screen=n.screen.id:delete s.screen,Jt(s,n&&qt(t,n.screen.previews,Wt(e))?.id)},ps=(t,e,i)=>{const n=r=>Bn(r.step,e);if(i&&n(i))return i;const s=i?.story.steps??[],o=r=>{const a=s[r];return i&&a?{...i,step:a,stepIndex:r}:void 0};for(let r=(i?.stepIndex??0)+1;r<s.length;r+=1){const a=o(r);if(a&&n(a))return a}for(let r=(i?.stepIndex??0)-1;r>=0;r-=1){const a=o(r);if(a&&n(a))return a}return B(t).find(n)},ei=(t,e)=>{const i=U(t,e.activity),n=e.story,s=i?.stories.find(z=>z.id===n||C(i.id,z.id)===n),o=s&&i?{activity:i,story:s}:$(t,n),r=e.step,d=(o&&r?S(t,`${C(o.activity.id,o.story.id)}.${r}`):void 0)??S(t,r),p=e.screen,c=p===void 0?void 0:ps(t,p,d);if(p!==void 0&&!c&&L(t,p))return Qt(t,{...e,[V]:"app"});const v=c??d,f=v?.activity??o?.activity??i??t.activities[0],I=v?.story??(o&&o.activity===f?o.story:void 0)??f?.stories[0],P=v?.step??I?.steps[0],T={...e};return delete T.screen,f?T.activity=f.id:delete T.activity,I&&f?T.story=$(t,I.id)?I.id:C(f.id,I.id):delete T.story,P&&I&&f?T.step=S(t,P.id)?P.id:ge(f,I,P):delete T.step,delete T[V],Jt(T,ls(t,P,e))},cs=["activity","story","step","screen"],xe=(t,e)=>pe(e)==="app"?Qt(t,e):ei(t,e),us=(t,e)=>{const i=e.screen.previews.find(o=>o.kind==="browser");if(!i)return;let n;try{n=new URL(ke(t,i),"https://page.example.com")}catch{return}const s=n.pathname.split("/").filter(o=>o!=="").map(o=>{try{return decodeURIComponent(o)}catch{return o}});return{origin:n.origin,segments:s}},ti=()=>({screens:[],children:new Map}),Be=(t,e,i)=>{const[n,...s]=t.children.entries();if(t.screens.length===0&&n&&s.length===0&&i!=="/"){const[o,r]=n;return Be(r,`${e}/${o}`,`${i}/${o}`)}return{segment:e,path:i,screens:t.screens,children:[...t.children.entries()].map(([o,r])=>Be(r,`/${o}`,`${i==="/"?"":i}/${o}`))}},hs=t=>{const e=new Map;for(const[i,n]of t){const s=e.get(n.origin)??ti();e.set(n.origin,s);let o=s;for(const r of n.segments){const a=o.children.get(r)??ti();o.children.set(r,a),o=a}o.screens.push(i)}return[...e.entries()].map(([i,n])=>({origin:i,root:Be(n,"/","/")}))},vs=(t,e)=>{const i=e.screens.map(o=>({app:e,screen:o})),n=[],s=[];for(const o of i){const r=us(t,o);r?n.push([o,r]):s.push(o)}return{app:e,screens:i,trees:hs(n),others:s}},ii=t=>t.apps.map(e=>vs(t,e)).filter(e=>e.screens.length>0),ni=(t,e)=>e?.kind!=="screen"?t[0]:t.find(i=>i.app.id===e.app.id)??t[0],fs=(t,e)=>{switch(e.type){case"activity":return U(t,e.id)!==void 0;case"story":return $(t,e.id)!==void 0;case"step":return S(t,e.id)!==void 0;case"screen":return L(t,e.id)!==void 0;case"preview":return E(t,e.id)!==void 0;case"page":return!0;case O:{const i=Q(e.id);return i!==void 0&&E(t,i.previewId)!==void 0}default:return!1}},si=t=>{const e=le(t);return{kind:"view",name:"prototype",label:"UX Prototype",addable:!1,parseBase:$t,emptyBase:Tt,actions:m,apply:Rt,hasTarget:fs,canonicalTarget:(i,n)=>{if(n.type==="step"){const s=S(i,n.id);return s?{...n,id:ae(s)}:n}if(n.type==="story"){const s=$(i,n.id);return s?{...n,id:C(s.activity.id,s.story.id)}:n}if(n.type==="preview"){const s=E(i,n.id);return s?{...n,id:s.preview.id}:n}return n},describe:(i,n,s)=>Lt(e,i,n,s),serialize:Ut,resolveNavigation:xe,navigationHierarchy:cs,navigationFor:(i,n)=>Qn(n),commentTargets:(i,n)=>Xt(e,i),currentTarget:(i,n)=>as(e,i,n),title:He}},gs=(t,e)=>{const i=e.flatMap(n=>{const s=Math.max(n.left,t.left)-t.left,o=Math.max(n.top,t.top)-t.top,r=Math.min(n.right,t.right)-t.left-s,a=Math.min(n.bottom,t.bottom)-t.top-o;return r>0&&a>0?[`M${s} ${o}h${r}v${a}h-${r}Z`]:[]});return i.length===0?"none":`path(evenodd, 'M0 0H${t.width}V${t.height}H0Z ${i.join(" ")}')`},Ee="data-dpk-modal",ms=t=>{try{return t.matches(":modal")}catch{return!1}},oi=t=>{t.setAttribute(Ee,""),t.open||t.show()},ri=t=>{Object.hasOwn(t,"showModal")||Object.defineProperty(t,"showModal",{configurable:!0,value:()=>oi(t)})},ai=(t,e)=>{if(!ms(e))return;const i=n=>{n.target===e&&(n.stopImmediatePropagation(),t.removeEventListener("close",i,!0))};t.addEventListener("close",i,!0),e.close(),oi(e)},di=(t,e)=>{try{return Array.from(t.querySelectorAll(e))}catch{return[]}},ws=(t,e)=>{const i=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(t),"value");i?.set?i.set.call(t,e):t.value=e},ys=t=>t instanceof HTMLInputElement&&(t.type==="checkbox"||t.type==="radio"),bs=(t,e)=>{if(ys(t)){const n=typeof e=="boolean"?e:t.value===e;return typeof e=="string"&&!n?!1:(t.checked=n,!0)}const i=String(e);return t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement||t instanceof HTMLSelectElement?(ws(t,i),!0):(t.textContent=i,!1)},ks=(t,e)=>{const i=[];for(const[n,s]of Object.entries(e)){const o=di(t,n);o.length===0&&i.push(n);for(const r of o)bs(r,s)&&(r.dispatchEvent(new Event("input",{bubbles:!0,composed:!0})),r.dispatchEvent(new Event("change",{bubbles:!0})))}return i},xs=(t,e)=>{const i=[];for(const n of e){const[s]=di(t,n);s instanceof HTMLElement?s.click():i.push(n)}return i},Es='a, button, input, select, textarea, label, summary, [role="button"], [role="link"], [role="tab"]',li=/^-?[A-Za-z_][\w-]*$/,pi=40,Ss=(t,e)=>{const i=t.closest(Es);return i!==null&&i!==e&&e.contains(i)?i:t},Se=t=>{const e=t.replace(/\s+/g," ").trim();if(e==="")return;const i=Array.from(e);return i.length>pi?`${i.slice(0,pi).join("")}\u2026`:e},$s=t=>{const e=t.getAttribute("aria-label")??t.getAttribute("title");if(e)return Se(e);const i=t.tagName.toLowerCase();return Se(i==="input"||i==="textarea"||i==="select"?t.getAttribute("placeholder")??t.getAttribute("name")??"":i==="img"?t.getAttribute("alt")??"":t.textContent??"")},Ts=t=>{const e=t.getAttribute("id");if(e&&li.test(e))return`#${e}`;const i=t.tagName.toLowerCase(),n=Array.from(t.classList).filter(a=>li.test(a)).slice(0,2).map(a=>`.${a}`).join(""),s=t.parentElement,o=s?Array.from(s.children).filter(a=>a.tagName===t.tagName):[],r=o.length>1?`:nth-of-type(${o.indexOf(t)+1})`:"";return`${i}${n}${r}`},As=(t,e,i)=>{try{const n=t.querySelectorAll(e);return n.length===1&&n[0]===i}catch{return!1}},Is=(t,e)=>{const i=[];let n=t;for(;n!==null&&n!==e;){const o=Ts(n);if(i.unshift(o),o.startsWith("#")||As(e,i.join(" > "),t))break;n=n.parentElement}const s=$s(t);return{selector:i.length===0?":scope":i.join(" > "),tag:t.tagName.toLowerCase(),...s===void 0?{}:{text:s}}},_s=(t,e)=>{if(e===":scope")return t;try{return t.querySelector(e)}catch{return null}},ci=(t,e)=>{const i=xe(t,e),n=te(t,i);if(n?.kind!=="screen")return null;const[s]=Ye(t,n,i).shown;return s?.kind!=="browser"?null:{screen:n.screen.id,preview:s.id}},$e=(t,e)=>{const i=te(t,xe(t,{[V]:"app",...e}));return i?.kind==="screen"?i:void 0},Ps=(t,e,i,n=new Map)=>{const s=dt(e,i);if(s===null)return null;const o=lt(s);for(const{screen:r}of H(t))for(const a of r.previews){if(a.kind!=="browser")continue;const d=dt(ke(t,a,n.get(a.id)),i);if(d!==null&<(d)===o)return{screen:r.id,preview:a.id}}return null},Ds=(t,e,i)=>e===void 0||e.kind==="new-tab"?i.newTab:e.kind==="unreachable"?rt(e.url):$e(t,e.page)?.screen.title??i.newTab,ui=(t,e,i)=>{if(e===void 0||e.kind==="new-tab")return"";if(e.kind==="unreachable")return e.url;const n=$e(t,e.page)?.screen.previews.find(s=>s.id===e.page.preview);return n===void 0?"":ke(t,n,i.get(n.id))},hi=t=>{const e=at(t);for(let i=e.index;i>=0;i-=1){const n=e.history[i];if(n?.kind==="page")return n.page}for(const i of t.tabs){const n=i.history[i.index];if(n?.kind==="page")return n.page}},Rs=(t,e)=>e===void 0?void 0:$e(t,e)?.app.actor,vi=(t,e,i,n=null,s=new Map)=>{const o=at(e),r=o.history[o.index],a=Rs(t,hi(e)??n??void 0);return{tabs:e.tabs.map(d=>({id:d.id,title:Ds(t,d.history[d.index],i),url:ui(t,d.history[d.index],s),active:d.id===o.id})),entry:r,url:ui(t,r,s),canBack:vn(e),canForward:hn(e),...a===void 0?{}:{profile:a}}},Ns=t=>hi(t)??null,Os=(t,e)=>{const i=e===null?void 0:$e(t,e),n=ni(ii(t),i),s=[],o=(r,a)=>{for(const{screen:d}of a.screens){const p=d.previews.find(c=>c.kind==="browser");p!==void 0&&s.push({title:d.title,url:`${r}${a.path==="/"?"":a.path}`,page:{screen:d.id,preview:p.id}})}for(const d of a.children)o(r,d)};for(const r of n?.trees??[])o(rt(r.origin),r.root);return s},A=(t,e,i,n)=>({id:e,deviceClass:t,width:i,height:n}),fi=[A("phone","iphone-se",375,667),A("phone","iphone-16",393,852),A("phone","iphone-16-pro-max",440,956),A("phone","pixel-7",412,915),A("phone","galaxy-s24",360,780),A("tablet","ipad-mini",744,1133),A("tablet","ipad-air-11",820,1180),A("tablet","ipad-pro-11",834,1194),A("tablet","ipad-pro-13",1024,1366),A("desktop","laptop-13",1280,800),A("desktop","laptop-15",1440,900),A("desktop","full-hd",1920,1080),A("desktop","monitor-27",2560,1440),A("desktop","ultrawide",3440,1440)],Cs={phone:A("phone","iphone-16",393,852),tablet:A("tablet","ipad-pro-11",834,1194),desktop:A("desktop","laptop-13",1280,800)},gi=t=>t==="mobile"?"phone":t==="tablet"?"tablet":"desktop",Ms=t=>t!=="plain",mi=t=>fi.filter(e=>e.deviceClass===t),Ls=(t,e)=>{const i=gi(t),n=e[i];return mi(i).find(s=>s.id===n)??Cs[i]},Us=(t,e)=>{const i=fi.find(n=>n.id===e);return i===void 0||t[i.deviceClass]===e?t:{...t,[i.deviceClass]:e}},Vs=(t,e)=>`${t.deviceName(e.id)} \xB7 ${e.width}\xD7${e.height}`,zs=(t,e)=>{const i=[1,e.width/t.width];e.height!==void 0&&i.push(e.height/t.height);const n=Math.min(...i);return!Number.isFinite(n)||n<=0?1:Math.max(.1,Math.floor(n*100)/100)},wi=(t,e,i)=>{const{state:n,navigation:s}=t,o=te(n,s),r=pe(s);return l`
|
|
1
|
+
import{ax as w,bi as Ae,av as D,aM as _,aL as g,ac as u,aw as M,az as he,bj as Yi,aD as Ie,au as Hi,bk as Je,bl as Bi,aa as N,ay as x,b9 as Wi,aB as qi,p as y,a9 as b,t as se,aO as oe,a8 as Fi,N as Gi,e as ji,a5 as Ki,h as Qe,K as _e,S as Y,R as Xi,P as k,as as l,ai as h,bm as Pe,bn as De,aH as Zi,y as Re,aP as et,l as tt,b0 as q,bo as Ji,z as it,bp as nt,G as Qi,I as en,b4 as tn,b5 as nn,ah as sn,V as st,ag as on,bq as rn,aE as an,aF as ve,aG as ot,C as dn,br as ln}from"./shared-DlZJHHpN.js";import{c as pn,a as cn}from"./shared-C5wXNKl3.js";import{m as un}from"./shared-BblP0eEY.js";import{h as rt,d as at,e as hn,f as vn,a as dt,b as lt,i as pt,p as fn,r as gn,k as mn,l as wn,m as yn,g as bn,c as kn,s as xn,n as ct,j as ut,t as En}from"./shared-bP-1q7ZQ.js";const Sn=[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21"}]],$n=[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z"}]],Tn=[["rect",{width:"14",height:"20",x:"5",y:"2",rx:"2",ry:"2"}],["path",{d:"M12 18h.01"}]],An=[["rect",{width:"16",height:"20",x:"4",y:"2",rx:"2",ry:"2"}],["line",{x1:"12",x2:"12.01",y1:"18",y2:"18"}]],In=[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"}],["circle",{cx:"12",cy:"7",r:"4"}]],_n=[["path",{d:"m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72"}],["path",{d:"m14 7 3 3"}],["path",{d:"M5 6v4"}],["path",{d:"M19 14v4"}],["path",{d:"M10 2v2"}],["path",{d:"M7 8H3"}],["path",{d:"M21 16h-4"}],["path",{d:"M11 3H9"}]],ht=["browser","native","mail","plain"],vt=["mobile","tablet","desktop","fluid"],J=t=>"screen"in t,Pn=D({from:g(u()),to:g(u()),cc:g(u()),subject:g(u()),date:g(u())}),ft={id:_,kind:M(he(ht),"browser"),viewport:M(he(vt),"fluid"),label:g(u()),url:g(u()),mail:g(Pn)},Ne=w(u(),Ae(t=>t.trim()!=="","a note needs some text")),gt=w(u(),Yi()),Dn=D({id:_,selector:w(u(),x(1)),text:g(u()),body:Ne,createdAt:g(gt)}),mt='a preview `mail` envelope needs `"kind": "mail"`',wt=w(D(ft),Ae(t=>t.mail===void 0||t.kind==="mail",mt)),yt=w(D({...ft,notes:g(N(Dn))}),Ae(t=>t.mail===void 0||t.kind==="mail",mt)),bt=D({screen:_,preview:g(_)}),Rn=Ie([bt,D({material:wt})]),Nn=Ie([bt,D({material:yt})]),On=D({id:_,name:w(u(),x(1)),description:g(u()),actor:g(w(u(),x(1))),situation:g(w(u(),x(1))),panes:M(N(Nn),[])}),Cn=D({id:_,name:w(u(),x(1)),description:g(u()),actor:g(w(u(),x(1))),steps:M(N(On),[])}),Mn=D({id:_,name:w(u(),x(1)),description:g(u()),actor:g(w(u(),x(1))),stories:M(N(Cn),[])}),kt=w(u(),x(1)),Ln=D({id:_,label:w(u(),x(1)),description:g(u()),fill:g(Wi(kt,Ie([u(),qi()]))),click:g(N(kt))}),Un=D({id:_,title:w(u(),x(1)),description:g(u()),previews:M(N(yt),[]),actions:M(N(Ln),[])}),Vn=D({id:_,name:w(u(),x(1)),description:g(u()),actor:g(w(u(),x(1))),screens:M(N(Un),[])}),xt=D({title:g(u()),baseUrl:g(u()),apps:M(N(Vn),[]),activities:M(N(Mn),[])}),Et=t=>t.flatMap(e=>J(e)?[]:[e.material]),zn=t=>{const e=new Set,i=new Set,n=a=>{for(const d of a){if(e.has(d.id))return`duplicate preview id "${d.id}": preview ids are global, they name a light DOM slot`;e.add(d.id);for(const p of d.notes??[]){if(i.has(p.id))return`duplicate note id "${p.id}": note ids are global`;i.add(p.id)}}return null},s=new Set,o=new Set;for(const a of t.apps){if(s.has(a.id))return`duplicate app id "${a.id}"`;s.add(a.id);for(const d of a.screens){if(o.has(d.id))return`duplicate screen id "${d.id}": screen ids are global`;o.add(d.id);const p=n(d.previews);if(p!==null)return p;const c=new Set;for(const v of d.actions){if(c.has(v.id))return`duplicate action id "${v.id}" on screen "${d.id}"`;c.add(v.id)}}}const r=new Set;for(const a of t.activities){if(r.has(a.id))return`duplicate activity id "${a.id}"`;r.add(a.id);const d=new Set;for(const p of a.stories){if(d.has(p.id))return`duplicate story id "${p.id}" in activity "${a.id}"`;d.add(p.id);const c=new Set;for(const v of p.steps){if(c.has(v.id))return`duplicate step id "${v.id}" in story "${p.id}"`;c.add(v.id);const f=n(Et(v.panes));if(f!==null)return f}}}return null},St=(t,e)=>{const i=new Map;for(const n of e.panes){if(!J(n))continue;const s=t(n.screen);if(s===void 0)return`unknown screen "${n.screen}" on step "${e.id}": declare it under \`apps[].screens\``;if(n.preview!==void 0&&!s.includes(n.preview))return`preview "${n.preview}" on step "${e.id}" is not a rendition of screen "${n.screen}"`;const o=i.get(n.screen)??[];if(o.length>0&&(n.preview===void 0||o.includes(n.preview)||o.includes(void 0)))return`screen "${n.screen}" is shown twice on step "${e.id}": give each pane a different \`preview\``;i.set(n.screen,[...o,n.preview])}return null},Yn=t=>{const e=new Map(t.apps.flatMap(i=>i.screens.map(n=>[n.id,n.previews.map(s=>s.id)])));for(const i of t.activities.flatMap(n=>n.stories.flatMap(s=>s.steps))){const n=St(s=>e.get(s),i);if(n!==null)return n}return null},Hn=(t,e)=>St(i=>L(t,i)?.screen.previews.map(n=>n.id),e),O="ui",re=t=>{const e=t.text?.replaceAll('"',"'");return`${t.previewId}/${t.selector}${e===void 0?"":` "${e}"`}`},Q=t=>{const e=t.indexOf("/");if(e<=0)return;const i=t.slice(0,e);if(!Bi(_,i))return;const n=t.slice(e+1),s=/ "([^"]*)"$/.exec(n),o=(s?n.slice(0,s.index):n).trim();if(o!=="")return s?.[1]===void 0?{previewId:i,selector:o}:{previewId:i,selector:o,text:s[1]}},$t=t=>{const e=Hi(xt,t),i=zn(e)??Yn(e);if(i!==null)throw new Error(i);return e},Tt=()=>({apps:[],activities:[]}),H=t=>t.apps.flatMap(e=>e.screens.map(i=>({app:e,screen:i}))),L=(t,e)=>{if(e!==void 0)return H(t).find(i=>i.screen.id===e)},fe=(t,e)=>e.panes.flatMap(i=>{const n=J(i)?L(t,i.screen):void 0;return n?[n]:[]}),F=t=>Et(t.panes),Bn=(t,e)=>t.panes.some(i=>J(i)&&i.screen===e),U=(t,e)=>{if(e!==void 0)return t.activities.find(i=>i.id===e)},C=(t,e)=>`${t}.${e}`,$=(t,e)=>{if(e===void 0)return;const i=Je(e,2);if(i){const[s,o]=i;if(s===void 0||o===void 0)return;const r=t.activities.find(d=>d.id===s),a=r?.stories.find(d=>d.id===o);return r&&a?{activity:r,story:a}:void 0}if(e.includes("."))return;const n=t.activities.flatMap(s=>s.stories.filter(o=>o.id===e).map(o=>({activity:s,story:o})));return n.length===1?n[0]:void 0},At=t=>{const e=t.lastIndexOf(".");return e>=0?t.slice(e+1):t},ae=t=>`${t.activity.id}.${t.story.id}.${t.step.id}`,ge=(t,e,i)=>`${t.id}.${e.id}.${i.id}`,S=(t,e)=>{if(e===void 0)return;const i=Je(e,3);if(i){const[s,o,r]=i;if(s===void 0||o===void 0||r===void 0)return;const a=t.activities.find(v=>v.id===s),d=a?.stories.find(v=>v.id===o),p=d?d.steps.findIndex(v=>v.id===r):-1,c=d&&p>=0?d.steps[p]:void 0;return a&&d&&c?{activity:a,story:d,step:c,stepIndex:p}:void 0}if(e.includes("."))return;const n=B(t).filter(s=>s.step.id===e);return n.length===1?n[0]:void 0},E=(t,e)=>{if(e!==void 0){for(const i of H(t)){const n=i.screen.previews.find(s=>s.id===e);if(n)return{owner:{kind:"screen",...i},preview:n}}for(const i of B(t)){const n=F(i.step).find(s=>s.id===e);if(n)return{owner:{kind:"step",...i},preview:n}}}},It=t=>[...H(t).flatMap(e=>e.screen.previews),...B(t).flatMap(e=>F(e.step))],_t=t=>It(t).flatMap(e=>(e.notes??[]).map(i=>i.id)),B=t=>t.activities.flatMap(e=>e.stories.flatMap(i=>i.steps.map((n,s)=>({activity:e,story:i,step:n,stepIndex:s})))),Pt=t=>B(t).map(e=>e.step.id),Oe=w(u(),x(1)),Dt=t=>{const e=Fi(b({noteId:Oe}),t.payload);return`${t.type}|${e.success?e.output.noteId:JSON.stringify(t.payload)}`},m={SET_ACTIVITY_NAME:y("SET_ACTIVITY_NAME","activity",b({name:w(u(),x(1))})),SET_ACTIVITY_DESCRIPTION:y("SET_ACTIVITY_DESCRIPTION","activity",b({description:u()})),SET_STORY_NAME:y("SET_STORY_NAME","story",b({name:w(u(),x(1))})),SET_STORY_DESCRIPTION:y("SET_STORY_DESCRIPTION","story",b({description:u()})),SET_STEP_NAME:y("SET_STEP_NAME","step",b({name:w(u(),x(1))})),SET_STEP_DESCRIPTION:y("SET_STEP_DESCRIPTION","step",b({description:u()})),SET_PREVIEW_KIND:y("SET_PREVIEW_KIND","preview",b({kind:he(ht)})),SET_PREVIEW_VIEWPORT:y("SET_PREVIEW_VIEWPORT","preview",b({viewport:he(vt)})),SET_PREVIEW_LABEL:y("SET_PREVIEW_LABEL","preview",b({label:u()})),REORDER_ACTIVITY:y("REORDER_ACTIVITY","activity",b({after:oe(u())}),{mode:"sequence"}),REORDER_STORY:y("REORDER_STORY","story",b({after:oe(u())}),{mode:"sequence"}),REORDER_STEP:y("REORDER_STEP","step",b({after:oe(u())}),{mode:"sequence"}),MOVE_STORY:y("MOVE_STORY","story",b({toActivity:w(u(),x(1)),after:oe(u())}),{mode:"sequence"}),MOVE_STEP:y("MOVE_STEP","step",b({toStory:w(u(),x(1)),after:oe(u())}),{mode:"sequence"}),ADD_ACTIVITY:y("ADD_ACTIVITY","page",b({id:_,name:w(u(),x(1)),description:g(u())}),{dedupeKey:se}),ADD_STORY:y("ADD_STORY","activity",b({id:_,name:w(u(),x(1)),description:g(u())}),{dedupeKey:se}),ADD_STEP:y("ADD_STEP","story",b({id:_,name:w(u(),x(1)),description:g(u()),panes:g(N(Rn))}),{dedupeKey:se}),ADD_PREVIEW:y("ADD_PREVIEW","step",wt,{dedupeKey:se}),DELETE_ACTIVITY:y("DELETE_ACTIVITY","activity",b({})),DELETE_STORY:y("DELETE_STORY","story",b({})),DELETE_STEP:y("DELETE_STEP","step",b({})),DELETE_PREVIEW:y("DELETE_PREVIEW","preview",b({})),ADD_UI_NOTE:y("ADD_UI_NOTE",O,b({id:_,body:Ne,createdAt:g(gt)}),{dedupeKey:se}),SET_UI_NOTE_BODY:y("SET_UI_NOTE_BODY",O,b({noteId:Oe,body:Ne}),{dedupeKey:Dt}),DELETE_UI_NOTE:y("DELETE_UI_NOTE",O,b({noteId:Oe}),{dedupeKey:Dt})},W={setActivityName:(t,e)=>({type:"SET_ACTIVITY_NAME",target:{type:"activity",id:t},payload:{name:e}}),setActivityDescription:(t,e)=>({type:"SET_ACTIVITY_DESCRIPTION",target:{type:"activity",id:t},payload:{description:e}}),setStoryName:(t,e)=>({type:"SET_STORY_NAME",target:{type:"story",id:t},payload:{name:e}}),setStoryDescription:(t,e)=>({type:"SET_STORY_DESCRIPTION",target:{type:"story",id:t},payload:{description:e}}),setStepName:(t,e)=>({type:"SET_STEP_NAME",target:{type:"step",id:t},payload:{name:e}}),setStepDescription:(t,e)=>({type:"SET_STEP_DESCRIPTION",target:{type:"step",id:t},payload:{description:e}}),setPreviewViewport:(t,e)=>({type:"SET_PREVIEW_VIEWPORT",target:{type:"preview",id:t},payload:{viewport:e}}),setPreviewKind:(t,e)=>({type:"SET_PREVIEW_KIND",target:{type:"preview",id:t},payload:{kind:e}}),setPreviewLabel:(t,e)=>({type:"SET_PREVIEW_LABEL",target:{type:"preview",id:t},payload:{label:e}}),reorderActivity:(t,e)=>({type:"REORDER_ACTIVITY",target:{type:"activity",id:t},payload:{after:e}}),reorderStory:(t,e)=>({type:"REORDER_STORY",target:{type:"story",id:t},payload:{after:e}}),reorderStep:(t,e)=>({type:"REORDER_STEP",target:{type:"step",id:t},payload:{after:e}}),moveStep:(t,e,i)=>({type:"MOVE_STEP",target:{type:"step",id:t},payload:{toStory:e,after:i}}),moveStory:(t,e,i)=>({type:"MOVE_STORY",target:{type:"story",id:t},payload:{toActivity:e,after:i}}),addActivity:(t,e,i)=>({type:"ADD_ACTIVITY",target:{type:"page",id:"prototype"},payload:{id:t,name:e,...i===void 0?{}:{description:i}}}),addStory:(t,e,i,n)=>({type:"ADD_STORY",target:{type:"activity",id:t},payload:{id:e,name:i,...n===void 0?{}:{description:n}}}),addStep:(t,e,i,n)=>({type:"ADD_STEP",target:{type:"story",id:t},payload:{id:e,name:i,...n===void 0?{}:{panes:n}}}),addPreview:(t,e)=>({type:"ADD_PREVIEW",target:{type:"step",id:t},payload:{...e}}),deleteActivity:t=>({type:"DELETE_ACTIVITY",target:{type:"activity",id:t},payload:{}}),deleteStory:t=>({type:"DELETE_STORY",target:{type:"story",id:t},payload:{}}),deleteStep:t=>({type:"DELETE_STEP",target:{type:"step",id:t},payload:{}}),deletePreview:t=>({type:"DELETE_PREVIEW",target:{type:"preview",id:t},payload:{}}),addUiNote:(t,e,i,n)=>({type:"ADD_UI_NOTE",target:{type:O,id:re(t)},payload:{id:e,body:i,...n===void 0?{}:{createdAt:n}}}),setUiNoteBody:(t,e,i)=>({type:"SET_UI_NOTE_BODY",target:{type:O,id:re(t)},payload:{noteId:e,body:i}}),deleteUiNote:(t,e)=>({type:"DELETE_UI_NOTE",target:{type:O,id:re(t)},payload:{noteId:e}})},Rt=(t,e)=>{const i=Gi(m,e);if(i===null)return null;const n=i.target.id;switch(i.type){case"SET_ACTIVITY_NAME":return G(t,n,s=>({...s,name:i.payload.name}));case"SET_ACTIVITY_DESCRIPTION":return G(t,n,s=>({...s,description:i.payload.description}));case"SET_STORY_NAME":return j(t,n,s=>({...s,name:i.payload.name}));case"SET_STORY_DESCRIPTION":return j(t,n,s=>({...s,description:i.payload.description}));case"SET_STEP_NAME":return me(t,n,s=>({...s,name:i.payload.name}));case"SET_STEP_DESCRIPTION":return me(t,n,s=>({...s,description:i.payload.description}));case"SET_PREVIEW_KIND":return ee(t,n,s=>({...s,kind:i.payload.kind}));case"SET_PREVIEW_VIEWPORT":return ee(t,n,s=>({...s,viewport:i.payload.viewport}));case"SET_PREVIEW_LABEL":return ee(t,n,s=>({...s,label:i.payload.label}));case"REORDER_ACTIVITY":{const{after:s}=i.payload,o=de(t.activities,n,s);return o===null?null:{...t,activities:o}}case"REORDER_STORY":{const{after:s}=i.payload,o=$(t,n);if(!o)return null;const r=s===null?null:$(t,s);if(s!==null&&(!r||r.activity!==o.activity))return null;const a=de(o.activity.stories,o.story.id,r?.story.id??null);return a===null?null:G(t,o.activity.id,d=>({...d,stories:a}))}case"REORDER_STEP":{const{after:s}=i.payload,o=S(t,n);if(!o)return null;const r=s===null?null:S(t,s);if(s!==null&&(!r||r.story!==o.story))return null;const a=de(o.story.steps,o.step.id,r?.step.id??null);return a===null?null:j(t,C(o.activity.id,o.story.id),d=>({...d,steps:a}))}case"MOVE_STORY":{const{toActivity:s,after:o}=i.payload,r=$(t,n);if(!r)return null;const a=t.activities.find(v=>v.id===s);if(!a)return null;const d=o===null?null:$(t,o);if(o!==null&&(!d||d.activity!==a))return null;const p=d?.story.id??null;if(r.activity.id===s){const v=de(r.activity.stories,r.story.id,p);return v===null?null:G(t,s,f=>({...f,stories:v}))}if(a.stories.some(v=>v.id===r.story.id))return null;const c=Me(a.stories,r.story,p);return Ce(t,v=>v.id===r.activity.id?{...v,stories:v.stories.filter(f=>f.id!==At(n))}:v.id===s?{...v,stories:c}:v)}case"MOVE_STEP":{const{toStory:s,after:o}=i.payload,r=S(t,n);if(!r)return null;const a=$(t,s);if(!a)return null;const d=o===null?null:S(t,o);if(o!==null&&(!d||d.story!==a.story))return null;const p=d?.step.id??null;if(r.story===a.story){const v=de(r.story.steps,r.step.id,p);return v===null?null:j(t,s,f=>({...f,steps:v}))}if(a.story.steps.some(v=>v.id===r.step.id))return null;const c=Me(a.story.steps,r.step,p);return Ce(t,v=>({...v,stories:v.stories.map(f=>f===r.story?{...f,steps:f.steps.filter(I=>I.id!==At(n))}:f===a.story?{...f,steps:c}:f)}))}case"ADD_ACTIVITY":{const s=i.payload;if(t.activities.some(r=>r.id===s.id))return t;const o={id:s.id,name:s.name,...s.description===void 0?{}:{description:s.description},stories:[]};return{...t,activities:[...t.activities,o]}}case"ADD_STORY":{const s=i.payload,o=t.activities.find(a=>a.id===n);if(!o)return null;if(o.stories.some(a=>a.id===s.id))return t;const r={id:s.id,name:s.name,...s.description===void 0?{}:{description:s.description},steps:[]};return G(t,n,a=>({...a,stories:[...a.stories,r]}))}case"ADD_STEP":{const s=i.payload,o=$(t,n)?.story;if(!o)return null;if(o.steps.some(d=>d.id===s.id))return t;const r=s.panes??[],a={id:s.id,name:s.name,...s.description===void 0?{}:{description:s.description},panes:r};return Wn(t,a)?j(t,n,d=>({...d,steps:[...d.steps,a]})):null}case"ADD_PREVIEW":{const s=i.payload,o=S(t,n)?.step;return o?F(o).some(r=>r.id===s.id)?t:E(t,s.id)?null:me(t,n,r=>({...r,panes:[...r.panes,{material:s}]})):null}case"DELETE_ACTIVITY":{const s=n;return t.activities.some(o=>o.id===s)?{...t,activities:t.activities.filter(o=>o.id!==s)}:null}case"DELETE_STORY":{const s=$(t,n);return s?G(t,s.activity.id,o=>({...o,stories:o.stories.filter(r=>r.id!==s.story.id)})):null}case"DELETE_STEP":{const s=S(t,n);return s?j(t,C(s.activity.id,s.story.id),o=>({...o,steps:o.steps.filter(r=>r.id!==s.step.id)})):null}case"DELETE_PREVIEW":{const s=E(t,n);return s?Nt(t,s.owner,o=>o.filter(r=>r.id!==s.preview.id)):null}case"ADD_UI_NOTE":{const{id:s,body:o,createdAt:r}=i.payload,a=Q(n),d=a===void 0?void 0:E(t,a.previewId);if(a===void 0||d===void 0)return null;if(d.preview.notes?.some(c=>c.id===s&&c.selector===a.selector))return t;if(_t(t).includes(s))return null;const p={id:s,selector:a.selector,...a.text===void 0?{}:{text:a.text},body:o,...r===void 0?{}:{createdAt:r}};return ee(t,d.preview.id,c=>({...c,notes:[...c.notes??[],p]}))}case"SET_UI_NOTE_BODY":{const{noteId:s,body:o}=i.payload,r=Q(n),a=r===void 0?void 0:E(t,r.previewId);return a?.preview.notes?.some(d=>d.id===s)?ee(t,a.preview.id,d=>({...d,notes:(d.notes??[]).map(p=>p.id===s?{...p,body:o}:p)})):null}case"DELETE_UI_NOTE":{const{noteId:s}=i.payload,o=Q(n),r=o===void 0?void 0:E(t,o.previewId);return r?.preview.notes?.some(a=>a.id===s)?ee(t,r.preview.id,a=>{const d=(a.notes??[]).filter(v=>v.id!==s),{notes:p,...c}=a;return d.length===0?c:{...c,notes:d}}):null}default:return ji(i)}},Ce=(t,e)=>({...t,activities:t.activities.map(e)}),G=(t,e,i)=>{const n=e;return t.activities.some(s=>s.id===n)?Ce(t,s=>s.id===n?i(s):s):null},j=(t,e,i)=>{const n=$(t,e);if(!n)return null;const s=n.story.id;return G(t,n.activity.id,o=>({...o,stories:o.stories.map(r=>r.id===s?i(r):r)}))},me=(t,e,i)=>{const n=S(t,e);if(!n)return null;const s=n.step.id;return j(t,C(n.activity.id,n.story.id),o=>({...o,steps:o.steps.map(r=>r.id===s?i(r):r)}))},ee=(t,e,i)=>{const n=E(t,e);if(!n)return null;const s=n.preview.id;return Nt(t,n.owner,o=>o.map(r=>r.id===s?i(r):r))},Wn=(t,e)=>{const i=F(e).map(n=>n.id);return Hn(t,e)===null&&new Set(i).size===i.length&&!i.some(n=>E(t,n))},Nt=(t,e,i)=>{if(e.kind==="step")return me(t,ae(e),s=>{const o=new Map(i([...F(s)]).map(r=>[r.id,r]));return{...s,panes:s.panes.flatMap(r=>{if(J(r))return[r];const a=o.get(r.material.id);return a?[{material:a}]:[]})}});const n=e.screen.id;return{...t,apps:t.apps.map(s=>s.id===e.app.id?{...s,screens:s.screens.map(o=>o.id===n?{...o,previews:i(o.previews)}:o)}:s)}},de=(t,e,i)=>{const n=t.findIndex(r=>r.id===e);if(n<0||i!==null&&!t.some(r=>r.id===i))return null;if(e===i)return[...t];const s=t[n];if(s===void 0)return null;const o=t.filter(r=>r.id!==e);return Me(o,s,i)},Me=(t,e,i)=>{const n=[...t],s=i===null?-1:n.findIndex(o=>o.id===i);return n.splice(s+1,0,e),n},Ot={"iphone-se":"iPhone SE","iphone-16":"iPhone 16","iphone-16-pro-max":"iPhone 16 Pro Max","pixel-7":"Pixel 7","galaxy-s24":"Galaxy S24","ipad-mini":"iPad mini","ipad-air-11":'iPad Air 11"',"ipad-pro-11":'iPad Pro 11"',"ipad-pro-13":'iPad Pro 13"'},qn={"laptop-13":'13" laptop',"laptop-15":'15" laptop',"full-hd":"Full HD","monitor-27":'27" monitor',ultrawide:"Ultrawide"},Fn={"laptop-13":"13 \u30A4\u30F3\u30C1 \u30CE\u30FC\u30C8","laptop-15":"15 \u30A4\u30F3\u30C1 \u30CE\u30FC\u30C8","full-hd":"\u30D5\u30EB HD","monitor-27":"27 \u30A4\u30F3\u30C1 \u30E2\u30CB\u30BF\u30FC",ultrawide:"\u30A6\u30EB\u30C8\u30E9\u30EF\u30A4\u30C9"},le=Ki({en:{renameActivity:"Rename Activity",updateActivityDescription:"Update Activity description",renameStory:"Rename UserStory",updateStoryDescription:"Update UserStory description",renameStep:"Rename Step",updateStepDescription:"Update Step description",changePreviewKind:"Change Preview kind",changePreviewViewport:"Change Preview viewport",changePreviewLabel:"Change Preview label",moveStory:"Move UserStory",moveStep:"Move Step",deleteTitle:"Delete",reorderTitle:t=>`Reorder ${t}`,addTitle:t=>`Add ${t}`,toFront:"\u2192 To the front",afterName:t=>`\u2192 Right after "${t}"`,unknownTarget:"(unknown target)",activityGroup:"Activity",storyGroup:"UserStory",stepGroup:"Step",screenGroup:"Screen",openInApp:"Open this screen in the app view",previewGroup:"Preview",pageGroup:"Page",uiGroup:"UI",targetLabel:(t,e)=>`${t} \xB7 ${e}`,targetMissing:(t,e)=>`${t} \xB7 ${e} (missing)`,noActivityBefore:"There are no Activities yet. Add ",noActivityAfter:" to the base JSON, or ask the agent.",deleteStepAria:"Delete step",addStepButton:"+ Step",stepNameLabel:"Step name",descriptionLabel:"Description",descriptionPlaceholder:"What happens in this Step (click to edit)",newStepName:"New step",viewLabel:"View",viewScenario:"Scenario",viewApp:"App",viewScenarioHint:"Follow one user story step by step",viewAppHint:"Use the UI as one app, whatever the scenario",appScreens:"Screens",appScreensHint:"Pick a screen to start from, then move around through the UI itself.",appSelectLabel:"App",appOutsideBrowser:"Outside the browser",noStepBefore:"There are no Steps yet. A Prototype has the meaning structure ",noStepAfter:" \u2014 one Step is one moment of the story: the screen the user is on and what they have at hand. Add a Step to the base JSON, and its screen will appear here.",noScreens:"This product has no screens yet. Declare its apps and their screens under apps[].screens in the base JSON, and they will appear here.",noPreviewMetadata:"No preview metadata \u2014 ask the agent to add it.",storyWithoutSteps:"This UserStory has no Steps yet, so there is no screen to show. Add one with + Step, or ask the agent to prototype it.",pageActor:t=>`Used by ${t}`,maximize:"Maximize",restore:"Restore size",maximizeHint:"Show the preview alone across the tab \xB7 Esc to restore",situation:"Situation",uiComment:"Comment on UI",uiCommentHint:"Click any part of the preview to comment on it \xB7 Esc to finish",commentOnElement:"Comment on element",uiCommentPin:(t,e)=>`Comment ${t}: ${e}`,uiCommentAs:"What it is",uiCommentFeedback:"Review comment",uiCommentFeedbackHint:"Sent to the Agent as a message. Gone once it is reflected.",uiCommentNote:"Note",uiCommentNoteHint:"Kept on the element as part of the prototype, shown as a badge in the scenario view.",uiNoteSubmit:"Keep",uiNotes:t=>t===1?"1 note":`${t} notes`,uiNotesOn:t=>`Notes on ${t}`,uiNoteDate:t=>Ct("en-US",t),deleteUiNoteAria:"Delete the note",editUiNoteAria:"Edit the note",editUiNoteLabel:"Note",editUiNoteHint:"Ctrl/Cmd + Enter to save, Esc to close",saveUiNote:"Save",cancelUiNote:"Cancel",closeUiNotes:"Close",addUiNote:"Add a note",editUiNote:"Edit a note",deleteUiNote:"Delete a note",mailFrom:"From",mailTo:"To",mailCc:"Cc",mailDate:"Date",demo:"Demo",demoHint:"Use the app in a browser across the tab, with nothing else on screen \xB7 Esc to finish",exitDemo:"Exit demo",browserBack:"Back",browserForward:"Forward",browserReload:"Reload",browserAddress:"Address",browserTabs:"Tabs",newTab:"New tab",closeTab:"Close tab",browserProfile:t=>`Profile: ${t}`,browserGuest:"Guest",newTabShortcuts:"Pages of this app",unreachableTitle:"This site can\u2019t be reached",unreachableBody:"No page of the prototype has this address.",device:"Device",deviceHint:"The window the app runs in: a page taller than it scrolls inside, as on the device",deviceName:t=>Ot[t]??qn[t]??t,deviceZoom:t=>`Shown at ${t}% to fit`,actions:"Actions",actionsHint:"Make the screen do something in one go, e.g. fill its form with sample data"},ja:{renameActivity:"Activity \u540D\u3092\u5909\u66F4",updateActivityDescription:"Activity \u306E\u8AAC\u660E\u3092\u66F4\u65B0",renameStory:"UserStory \u540D\u3092\u5909\u66F4",updateStoryDescription:"UserStory \u306E\u8AAC\u660E\u3092\u66F4\u65B0",renameStep:"Step \u540D\u3092\u5909\u66F4",updateStepDescription:"Step \u306E\u8AAC\u660E\u3092\u66F4\u65B0",changePreviewKind:"Preview \u306E\u7A2E\u5225\u3092\u5909\u66F4",changePreviewViewport:"Preview \u306E\u30D3\u30E5\u30FC\u30DD\u30FC\u30C8\u3092\u5909\u66F4",changePreviewLabel:"Preview \u306E\u30E9\u30D9\u30EB\u3092\u5909\u66F4",moveStory:"UserStory \u3092\u79FB\u52D5",moveStep:"Step \u3092\u79FB\u52D5",deleteTitle:"\u524A\u9664",reorderTitle:t=>`${t} \u306E\u9806\u5E8F\u3092\u5909\u66F4`,addTitle:t=>`${t} \u3092\u8FFD\u52A0`,toFront:"\u2192 \u5148\u982D\u3078",afterName:t=>`\u2192 "${t}" \u306E\u76F4\u5F8C\u3078`,unknownTarget:"(unknown target)",activityGroup:"Activity",storyGroup:"UserStory",stepGroup:"Step",screenGroup:"\u753B\u9762",openInApp:"\u3053\u306E\u753B\u9762\u3092\u30A2\u30D7\u30EA\u30D3\u30E5\u30FC\u3067\u958B\u304F",previewGroup:"Preview",pageGroup:"Page",uiGroup:"UI",targetLabel:(t,e)=>`${t} \xB7 ${e}`,targetMissing:(t,e)=>`${t} \xB7 ${e} (missing)`,noActivityBefore:"Activity \u304C\u307E\u3060\u3042\u308A\u307E\u305B\u3093\u3002base JSON \u306E ",noActivityAfter:" \u3092\u8FFD\u52A0\u3059\u308B\u304B\u3001Agent \u306B\u4F9D\u983C\u3057\u3066\u304F\u3060\u3055\u3044\u3002",deleteStepAria:"\u30B9\u30C6\u30C3\u30D7\u3092\u524A\u9664",addStepButton:"+ Step",stepNameLabel:"Step \u540D",descriptionLabel:"\u8AAC\u660E",descriptionPlaceholder:"\u3053\u306E Step \u3067\u4F55\u304C\u8D77\u304D\u308B\u304B\uFF08\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u7DE8\u96C6\uFF09",newStepName:"\u65B0\u3057\u3044\u30B9\u30C6\u30C3\u30D7",viewLabel:"\u8868\u793A",viewScenario:"\u30B7\u30CA\u30EA\u30AA",viewApp:"\u30A2\u30D7\u30EA",viewScenarioHint:"\u30E6\u30FC\u30B6\u30FC\u30B9\u30C8\u30FC\u30EA\u30FC\u306B\u6CBF\u3063\u3066 Step \u3092\u9806\u306B\u305F\u3069\u308B",viewAppHint:"\u30B7\u30CA\u30EA\u30AA\u306B\u95A2\u4FC2\u306A\u304F\u3001UI \u3092 1 \u3064\u306E\u30A2\u30D7\u30EA\u3068\u3057\u3066\u89E6\u308B",appScreens:"\u753B\u9762",appScreensHint:"\u8D77\u70B9\u306B\u3059\u308B\u753B\u9762\u3092\u9078\u3073\u3001\u3042\u3068\u306F UI \u306E\u30EA\u30F3\u30AF\u3067\u79FB\u52D5\u3057\u307E\u3059\u3002",appSelectLabel:"\u30A2\u30D7\u30EA",appOutsideBrowser:"\u30D6\u30E9\u30A6\u30B6\u4EE5\u5916",noStepBefore:"Step \u304C\u307E\u3060\u3042\u308A\u307E\u305B\u3093\u3002Prototype \u306F ",noStepAfter:" \u306E\u610F\u5473\u69CB\u9020\u3092\u6301\u3061\u30011 Step = \u30B7\u30CA\u30EA\u30AA\u306E 1 \u5834\u9762\uFF08\u30E6\u30FC\u30B6\u30FC\u304C\u3044\u308B\u753B\u9762\u3068\u3001\u624B\u5143\u306B\u3042\u308B\u3082\u306E\uFF09\u3067\u3059\u3002base JSON \u306B Step \u3092\u8FFD\u52A0\u3059\u308B\u3068\u3001\u3053\u3053\u306B\u305D\u306E\u753B\u9762\u304C\u73FE\u308C\u307E\u3059\u3002",noScreens:"\u3053\u306E\u30D7\u30ED\u30C0\u30AF\u30C8\u306B\u306F\u307E\u3060\u753B\u9762\u304C\u3042\u308A\u307E\u305B\u3093\u3002base JSON \u306E apps[].screens \u306B\u30A2\u30D7\u30EA\u3068\u753B\u9762\u3092\u5BA3\u8A00\u3059\u308B\u3068\u3001\u3053\u3053\u306B\u73FE\u308C\u307E\u3059\u3002",noPreviewMetadata:"preview metadata \u304C\u3042\u308A\u307E\u305B\u3093 \u2014 \u8FFD\u52A0\u306F Agent \u306B\u4F9D\u983C\u3057\u3066\u304F\u3060\u3055\u3044",storyWithoutSteps:"\u3053\u306E UserStory \u306B\u306F\u307E\u3060 Step \u304C\u306A\u304F\u3001\u898B\u305B\u308B\u753B\u9762\u304C\u3042\u308A\u307E\u305B\u3093\u3002+ Step \u3067\u8FFD\u52A0\u3059\u308B\u304B\u3001Agent \u306B\u30D7\u30ED\u30C8\u30BF\u30A4\u30D7\u3092\u4F9D\u983C\u3057\u3066\u304F\u3060\u3055\u3044\u3002",pageActor:t=>`\u5229\u7528\u8005: ${t}`,maximize:"\u6700\u5927\u5316",restore:"\u5143\u306E\u30B5\u30A4\u30BA\u306B\u623B\u3059",maximizeHint:"\u30D7\u30EC\u30D3\u30E5\u30FC\u3060\u3051\u3092\u30BF\u30D6\u3044\u3063\u3071\u3044\u306B\u8868\u793A \xB7 Esc \u3067\u623B\u308B",situation:"\u72B6\u6CC1",uiComment:"UI \u306B\u30B3\u30E1\u30F3\u30C8",uiCommentHint:"\u30D7\u30EC\u30D3\u30E5\u30FC\u306E\u8981\u7D20\u3092\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u30B3\u30E1\u30F3\u30C8 \xB7 Esc \u3067\u7D42\u4E86",commentOnElement:"\u8981\u7D20\u306B\u30B3\u30E1\u30F3\u30C8",uiCommentPin:(t,e)=>`\u30B3\u30E1\u30F3\u30C8 ${t}: ${e}`,uiCommentAs:"\u30B3\u30E1\u30F3\u30C8\u306E\u7A2E\u985E",uiCommentFeedback:"\u30EC\u30D3\u30E5\u30FC\u30B3\u30E1\u30F3\u30C8",uiCommentFeedbackHint:"Agent \u3078\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u3068\u3057\u3066\u9001\u4FE1\u3055\u308C\u307E\u3059\u3002\u53CD\u6620\u3055\u308C\u308B\u3068\u6D88\u3048\u307E\u3059\u3002",uiCommentNote:"\u30E1\u30E2",uiCommentNoteHint:"\u30D7\u30ED\u30C8\u30BF\u30A4\u30D7\u306E\u4E00\u90E8\u3068\u3057\u3066\u8981\u7D20\u306B\u6B8B\u308A\u3001\u30B7\u30CA\u30EA\u30AA\u30D3\u30E5\u30FC\u3067\u30D0\u30C3\u30B8\u3068\u3057\u3066\u8868\u793A\u3055\u308C\u307E\u3059\u3002",uiNoteSubmit:"\u6B8B\u3059",uiNotes:t=>`\u30E1\u30E2 ${t} \u4EF6`,uiNotesOn:t=>`${t} \u306E\u30E1\u30E2`,uiNoteDate:t=>Ct("ja-JP",t),deleteUiNoteAria:"\u30E1\u30E2\u3092\u524A\u9664",editUiNoteAria:"\u30E1\u30E2\u3092\u7DE8\u96C6",editUiNoteLabel:"\u30E1\u30E2",editUiNoteHint:"Ctrl/Cmd + Enter \u3067\u4FDD\u5B58\u3001Esc \u3067\u9589\u3058\u308B",saveUiNote:"\u4FDD\u5B58",cancelUiNote:"\u30AD\u30E3\u30F3\u30BB\u30EB",closeUiNotes:"\u9589\u3058\u308B",addUiNote:"\u30E1\u30E2\u3092\u8FFD\u52A0",editUiNote:"\u30E1\u30E2\u3092\u7DE8\u96C6",deleteUiNote:"\u30E1\u30E2\u3092\u524A\u9664",mailFrom:"\u5DEE\u51FA\u4EBA",mailTo:"\u5B9B\u5148",mailCc:"Cc",mailDate:"\u65E5\u6642",demo:"\u30C7\u30E2",demoHint:"\u307B\u304B\u306B\u4F55\u3082\u51FA\u3055\u305A\u3001\u30BF\u30D6\u3044\u3063\u3071\u3044\u306E\u30D6\u30E9\u30A6\u30B6\u3067\u30A2\u30D7\u30EA\u3092\u89E6\u308B \xB7 Esc \u3067\u7D42\u4E86",exitDemo:"\u30C7\u30E2\u3092\u7D42\u4E86",browserBack:"\u623B\u308B",browserForward:"\u9032\u3080",browserReload:"\u518D\u8AAD\u307F\u8FBC\u307F",browserAddress:"\u30A2\u30C9\u30EC\u30B9",browserTabs:"\u30BF\u30D6",newTab:"\u65B0\u3057\u3044\u30BF\u30D6",closeTab:"\u30BF\u30D6\u3092\u9589\u3058\u308B",browserProfile:t=>`\u30D7\u30ED\u30D5\u30A3\u30FC\u30EB: ${t}`,browserGuest:"\u30B2\u30B9\u30C8",newTabShortcuts:"\u3053\u306E\u30A2\u30D7\u30EA\u306E\u30DA\u30FC\u30B8",unreachableTitle:"\u3053\u306E\u30B5\u30A4\u30C8\u306B\u30A2\u30AF\u30BB\u30B9\u3067\u304D\u307E\u305B\u3093",unreachableBody:"\u30D7\u30ED\u30C8\u30BF\u30A4\u30D7\u306B\u3053\u306E\u30A2\u30C9\u30EC\u30B9\u306E\u30DA\u30FC\u30B8\u306F\u3042\u308A\u307E\u305B\u3093\u3002",device:"\u30C7\u30D0\u30A4\u30B9",deviceHint:"\u30A2\u30D7\u30EA\u3092\u52D5\u304B\u3059\u753B\u9762\u306E\u5927\u304D\u3055\u3002\u53CE\u307E\u3089\u306A\u3044\u30DA\u30FC\u30B8\u306F\u5B9F\u6A5F\u3068\u540C\u3058\u304F\u753B\u9762\u306E\u4E2D\u3067\u30B9\u30AF\u30ED\u30FC\u30EB\u3059\u308B",deviceName:t=>Ot[t]??Fn[t]??t,deviceZoom:t=>`\u53CE\u307E\u308B\u3088\u3046 ${t}% \u3067\u8868\u793A`,actions:"\u30A2\u30AF\u30B7\u30E7\u30F3",actionsHint:"\u30D5\u30A9\u30FC\u30E0\u306B\u30B5\u30F3\u30D7\u30EB\u30C7\u30FC\u30BF\u3092\u5165\u308C\u308B\u306A\u3069\u3001\u753B\u9762\u306B\u7528\u610F\u3055\u308C\u305F\u64CD\u4F5C\u3092\u4E00\u5EA6\u306B\u884C\u3046"}}),Ct=(t,e)=>new Intl.DateTimeFormat(t,{dateStyle:"medium",timeStyle:"short"}).format(new Date(e)),Gn=["scenario","app"],V="view",pe=t=>t[V]==="app"?"app":"scenario",Mt=t=>({[V]:t==="app"?"app":null}),ce=(t,e)=>t===void 0?`\u2192 "${e}"`:`"${t}" \u2192 "${e}"`,jn=t=>({SET_ACTIVITY_NAME:(e,i)=>({title:t.renameActivity,tone:"update",body:ce(U(i,e.target.id)?.name,k(m.SET_ACTIVITY_NAME,e).name)}),SET_ACTIVITY_DESCRIPTION:(e,i)=>({title:t.updateActivityDescription,tone:"update",body:we(U(i,e.target.id)?.description,k(m.SET_ACTIVITY_DESCRIPTION,e).description)}),SET_STORY_NAME:(e,i)=>({title:t.renameStory,tone:"update",body:ce($(i,e.target.id)?.story.name,k(m.SET_STORY_NAME,e).name)}),SET_STORY_DESCRIPTION:(e,i)=>({title:t.updateStoryDescription,tone:"update",body:we($(i,e.target.id)?.story.description,k(m.SET_STORY_DESCRIPTION,e).description)}),SET_STEP_NAME:(e,i)=>({title:t.renameStep,tone:"update",body:ce(S(i,e.target.id)?.step.name,k(m.SET_STEP_NAME,e).name)}),SET_STEP_DESCRIPTION:(e,i)=>({title:t.updateStepDescription,tone:"update",body:we(S(i,e.target.id)?.step.description,k(m.SET_STEP_DESCRIPTION,e).description)}),SET_PREVIEW_KIND:(e,i)=>({title:t.changePreviewKind,tone:"update",body:ce(E(i,e.target.id)?.preview.kind,k(m.SET_PREVIEW_KIND,e).kind)}),SET_PREVIEW_VIEWPORT:(e,i)=>({title:t.changePreviewViewport,tone:"update",body:ce(E(i,e.target.id)?.preview.viewport,k(m.SET_PREVIEW_VIEWPORT,e).viewport)}),SET_PREVIEW_LABEL:e=>({title:t.changePreviewLabel,tone:"update",body:`\u2192 "${k(m.SET_PREVIEW_LABEL,e).label}"`}),REORDER_ACTIVITY:e=>Ue(t,t.activityGroup,k(m.REORDER_ACTIVITY,e).after),REORDER_STORY:e=>Ue(t,t.storyGroup,k(m.REORDER_STORY,e).after),REORDER_STEP:e=>Ue(t,t.stepGroup,k(m.REORDER_STEP,e).after),MOVE_STORY:(e,i)=>({title:t.moveStory,tone:"move",body:`\u2192 ${U(i,k(m.MOVE_STORY,e).toActivity)?.name??k(m.MOVE_STORY,e).toActivity}`}),MOVE_STEP:(e,i)=>({title:t.moveStep,tone:"move",body:`\u2192 ${$(i,k(m.MOVE_STEP,e).toStory)?.story.name??k(m.MOVE_STEP,e).toStory}`}),ADD_ACTIVITY:e=>ye(t,t.activityGroup,k(m.ADD_ACTIVITY,e).name),ADD_STORY:e=>ye(t,t.storyGroup,k(m.ADD_STORY,e).name),ADD_STEP:e=>ye(t,t.stepGroup,k(m.ADD_STEP,e).name),ADD_PREVIEW:e=>ye(t,t.previewGroup,k(m.ADD_PREVIEW,e).label??k(m.ADD_PREVIEW,e).id),DELETE_ACTIVITY:(e,i)=>be(t,U(i,e.target.id)?.name),DELETE_STORY:(e,i)=>be(t,$(i,e.target.id)?.story.name),DELETE_STEP:(e,i)=>be(t,S(i,e.target.id)?.step.name),DELETE_PREVIEW:(e,i)=>be(t,E(i,e.target.id)?.preview.label),ADD_UI_NOTE:e=>({title:t.addUiNote,tone:"create",body:`+ "${Le(k(m.ADD_UI_NOTE,e).body)}"`}),SET_UI_NOTE_BODY:(e,i)=>{const{noteId:n,body:s}=k(m.SET_UI_NOTE_BODY,e);return{title:t.editUiNote,tone:"update",body:we(Yt(i,n)?.body,s)}},DELETE_UI_NOTE:(e,i)=>{const{noteId:n}=k(m.DELETE_UI_NOTE,e),s=Yt(i,n);return{title:t.deleteUiNote,tone:"delete",body:s===void 0?t.unknownTarget:`\u2212 "${Le(s.body)}"`}}}),we=(t,e)=>{const i=e.length>90?`${e.slice(0,90)}\u2026`:e;return t===void 0||t===""?`\u2192 "${i}"`:`"${Le(t)}" \u2192 "${i}"`},Le=t=>t.length>60?`${t.slice(0,60)}\u2026`:t,Ue=(t,e,i)=>({title:t.reorderTitle(e),tone:"move",body:i===null?t.toFront:t.afterName(i)}),ye=(t,e,i)=>({title:t.addTitle(e),tone:"create",body:`+ "${i}"`}),be=(t,e)=>({title:t.deleteTitle,tone:"delete",body:e===void 0?t.unknownTarget:`\u2212 "${e}"`}),Lt=(t,e,i,n)=>{const s=jn(t),o=Object.hasOwn(s,e.type)?s[e.type]:void 0,r=o?o(e,n??i):{title:e.type,tone:"meta"};return{title:r.title,targetLabel:Vt(t,i,e.target),tone:r.tone,...r.body===void 0?{}:{summary:r.body}}},Ut=t=>`${t.type} ${Y(t.target)} ${JSON.stringify(t.payload)}`,Vt=(t,e,i)=>{switch(i.type){case"activity":{const n=U(e,i.id);return n?t.targetLabel(t.activityGroup,n.name):t.targetMissing(t.activityGroup,i.id)}case"story":{const n=$(e,i.id)?.story;return n?t.targetLabel(t.storyGroup,n.name):t.targetMissing(t.storyGroup,i.id)}case"step":{const n=S(e,i.id)?.step;return n?t.targetLabel(t.stepGroup,n.name):t.targetMissing(t.stepGroup,i.id)}case"screen":{const n=L(e,i.id)?.screen;return n?t.targetLabel(t.screenGroup,n.title):t.targetMissing(t.screenGroup,i.id)}case"preview":{const n=E(e,i.id)?.preview;return n?t.targetLabel(t.previewGroup,n.label??n.id):t.targetMissing(t.previewGroup,i.id)}case"page":return t.targetLabel(t.pageGroup,He(e));case O:{const n=Q(i.id),s=n?E(e,n.previewId)?.preview:void 0;return n&&s?t.targetLabel(t.uiGroup,Ve(s,n)):t.targetMissing(t.uiGroup,i.id)}default:return t.targetLabel(i.type,i.id)}},Ve=(t,e)=>{const i=e.text===void 0?e.selector:`"${e.text}"`;return`${t.label??t.id} \u203A ${i}`},zt=(t,e)=>{const i=[];for(const n of t){if(n.target.type!==O)continue;const s=Q(n.target.id);!s||!e.includes(s.previewId)||i.push({id:n.id,previewId:s.previewId,selector:s.selector,number:i.length+1,body:Qe(n)})}return i},Kn=(t,e)=>e.flatMap(i=>{const n=E(t,i)?.preview,s=new Map;for(const o of n?.notes??[])s.set(o.selector,[...s.get(o.selector)??[],o]);return n===void 0?[]:[...s].map(([o,r])=>({previewId:i,selector:o,label:Ve(n,{selector:o,...Xn(r)}),notes:r}))}),Xn=t=>{const e=[...t].reverse().find(i=>i.text!==void 0)?.text;return e===void 0?{}:{text:e}},Yt=(t,e)=>It(t).flatMap(i=>i.notes??[]).find(i=>i.id===e),Ht=(t,e)=>zt(t,e).length,Zn=/^[a-z][a-z0-9+.-]*:/i,Jn=t=>{const e=t.baseUrl?.trim(),i=Xi(t.title??"");return`${(e?e.startsWith("http")?e:`https://${e}`:`https://${i==="item"?"page":i}.example.com`).replace(/\/+$/,"")}/`},ke=(t,e,i=null)=>{const n=Jn(t),s=i==null||i===""?e.url:i;if(!s)return`${n}${e.id}`;if(Zn.test(s))return s;try{return decodeURI(new URL(s,n).href)}catch{return s}},Qn=t=>{switch(t.type){case"activity":return{[V]:null,activity:t.id};case"story":return{[V]:null,activity:null,story:t.id};case"step":return{[V]:null,activity:null,story:null,step:t.id};case"screen":return{screen:t.id};default:return null}},Bt=(t,e)=>{const i=t.kind==="screen"?[{type:"screen",id:t.screen.id}]:[{type:"activity",id:t.activity.id},{type:"story",id:C(t.activity.id,t.story.id)},...t.kind==="step"?[{type:"step",id:ae(t)}]:[]];for(const n of e?.panes??[])n.kind==="screen"&&i.push({type:"screen",id:n.screen.screen.id});return[...new Set(i.map(Y))].join(" ")},ze=",",Wt=t=>t.preview?.split(ze)??[],es=(t,e)=>t.kind===e.kind&&t.viewport===e.viewport,qt=(t,e,i)=>{const n=e.find(o=>i.includes(o.id));if(n)return n;const s=i.flatMap(o=>E(t,o)?.preview??[]);return e.find(o=>s.some(r=>es(o,r)))??e[0]},Ft=(t,e,i,n)=>{const s=e.screen.previews,o=i===void 0?qt(t,s,Wt(n)):s.find(a=>a.id===i);if(!o)return;const r=i===void 0&&s.length>1;return{kind:"screen",screen:e,preview:o,pinned:i!==void 0,tabs:r?s:[]}},Gt=t=>({layout:t.length>1?"side-by-side":"single",panes:t,shown:t.map(e=>e.preview)}),jt=(t,e,i)=>e.panes.flatMap(n=>{if(!J(n))return[{kind:"material",preview:n.material}];const s=L(t,n.screen),o=s&&Ft(t,s,n.preview,i);return o?[o]:[]}),Ye=(t,e,i)=>{if(e.kind==="screen"){const n=Ft(t,e,void 0,i);return Gt(n?[n]:[])}return Gt(jt(t,e.step,i))},ts=(t,e)=>t.panes.flatMap(i=>i.kind!=="screen"||i.tabs.length===0?[]:[i.tabs.some(n=>n.id===e)?e:i.preview.id]).join(ze),Kt=(t,e)=>{const i=new Map;for(const n of e){const s=E(t,n)?.owner;if(s?.kind!=="screen"||s.screen.actions.length===0)continue;const o=i.get(s.screen.id)??{screen:s.screen,previewIds:[]};o.previewIds.push(n),i.set(s.screen.id,o)}return[...i.values()].map(({screen:n,previewIds:s})=>({screen:n,previewIds:s,actions:n.actions}))},is=(t,e)=>[...F(e),...fe(t,e).flatMap(i=>i.screen.previews)],ns=["activity","story","step","screen","preview"],ss=(t,e,i)=>{switch(e){case"activity":return U(t,i)!==void 0;case"story":return $(t,i)!==void 0||t.activities.some(n=>n.stories.some(s=>s.id===i));case"step":return S(t,i)!==void 0||B(t).some(n=>n.step.id===i);case"screen":return L(t,i)!==void 0;case"preview":return E(t,i)!==void 0;default:return!1}},os=(t,e)=>{let i;if(e.navigate!==null)i=e.navigate.includes("=")?e.navigate:`step=${e.navigate}`;else{const o=e.href?.trim()??"";if(o===""||o==="#"||o.toLowerCase().startsWith("javascript:"))return"no-destination";if(!o.startsWith("#"))return null;i=o}const n=_e(i),s=ns.filter(o=>n[o]!==void 0);return s.length===0?e.navigate===null?null:"unknown-target":s.every(o=>ss(t,o,n[o]??""))?null:"unknown-target"},rs=(t,e)=>{const i=e.mail??{},n=[{label:t.mailFrom,value:i.from},{label:t.mailTo,value:i.to},{label:t.mailCc,value:i.cc},{label:t.mailDate,value:i.date}].flatMap(r=>r.value===void 0||r.value.trim()===""?[]:[{label:r.label,value:r.value}]),s=i.from?.replace(/<[^>]*>/g,"").replace(/["']/g,"").trim()||i.from?.trim(),o=s?Array.from(s)[0]?.toUpperCase():void 0;return{...i.subject===void 0||i.subject.trim()===""?{}:{subject:i.subject},...s?{sender:s}:{},...o===void 0?{}:{initial:o},rows:n}},Xt=(t,e)=>{const i=[];for(const n of e.activities){i.push({value:Y({type:"activity",id:n.id}),label:n.name,group:t.activityGroup});for(const s of n.stories){i.push({value:Y({type:"story",id:C(n.id,s.id)}),label:`${n.name} \u203A ${s.name}`,group:t.storyGroup});for(const o of s.steps)i.push({value:Y({type:"step",id:ge(n,s,o)}),label:`${s.name} \u203A ${o.name}`,group:t.stepGroup})}}for(const{app:n,screen:s}of H(e))i.push({value:Y({type:"screen",id:s.id}),label:`${n.name} \u203A ${s.title}`,group:t.screenGroup});return i},as=(t,e,i)=>{const n=te(e,i);if(n?.kind==="screen"){const{screen:s}=n;return{value:Y({type:"screen",id:s.id}),label:s.title,group:t.screenGroup}}return n?.kind!=="step"?null:{value:Y({type:"step",id:ae(n)}),label:n.step.name,group:t.stepGroup}},te=(t,e)=>{if(pe(e)==="app"){const o=L(t,e.screen);return o?{kind:"screen",...o}:void 0}const i=S(t,e.step);if(i)return{kind:"step",...i};const n=U(t,e.activity),s=n?.stories.find(o=>o.id===e.story||C(n.id,o.id)===e.story);return n&&s?{kind:"story",activity:n,story:s}:void 0},Zt=(t,e)=>{const i=(d,p)=>p===void 0?{title:d}:{actor:p,title:d};if(e.kind==="screen")return i(e.screen.title,e.app.actor);const{activity:n,story:s,step:o}=e,r=fe(t,o),a=r.length===1?r[0]:void 0;return i(a?.screen.title??o.name,o.actor??s.actor??n.actor??a?.app.actor)},ds=(t,e)=>{const i=e.actor??t.actor;return i===void 0?{title:e.name}:{actor:i,title:e.name}},He=t=>t.title??"UX Prototype",Jt=(t,e)=>(e?t.preview=e:delete t.preview,t),ls=(t,e,i)=>{if(!e)return;const n=jt(t,e,i).flatMap(s=>s.kind==="screen"&&!s.pinned?[s.preview.id]:[]);return n.length===0?void 0:n.join(ze)},Qt=(t,e)=>{const i=()=>{if(e.step===void 0&&e.story===void 0)return;const o=ei(t,{...e,[V]:""}),r=S(t,o.step);return r&&fe(t,r.step)[0]},n=L(t,e.screen)??i()??H(t)[0],s={...e,[V]:"app"};for(const o of["activity","story","step"])delete s[o];return n?s.screen=n.screen.id:delete s.screen,Jt(s,n&&qt(t,n.screen.previews,Wt(e))?.id)},ps=(t,e,i)=>{const n=r=>Bn(r.step,e);if(i&&n(i))return i;const s=i?.story.steps??[],o=r=>{const a=s[r];return i&&a?{...i,step:a,stepIndex:r}:void 0};for(let r=(i?.stepIndex??0)+1;r<s.length;r+=1){const a=o(r);if(a&&n(a))return a}for(let r=(i?.stepIndex??0)-1;r>=0;r-=1){const a=o(r);if(a&&n(a))return a}return B(t).find(n)},ei=(t,e)=>{const i=U(t,e.activity),n=e.story,s=i?.stories.find(z=>z.id===n||C(i.id,z.id)===n),o=s&&i?{activity:i,story:s}:$(t,n),r=e.step,d=(o&&r?S(t,`${C(o.activity.id,o.story.id)}.${r}`):void 0)??S(t,r),p=e.screen,c=p===void 0?void 0:ps(t,p,d);if(p!==void 0&&!c&&L(t,p))return Qt(t,{...e,[V]:"app"});const v=c??d,f=v?.activity??o?.activity??i??t.activities[0],I=v?.story??(o&&o.activity===f?o.story:void 0)??f?.stories[0],P=v?.step??I?.steps[0],T={...e};return delete T.screen,f?T.activity=f.id:delete T.activity,I&&f?T.story=$(t,I.id)?I.id:C(f.id,I.id):delete T.story,P&&I&&f?T.step=S(t,P.id)?P.id:ge(f,I,P):delete T.step,delete T[V],Jt(T,ls(t,P,e))},cs=["activity","story","step","screen"],xe=(t,e)=>pe(e)==="app"?Qt(t,e):ei(t,e),us=(t,e)=>{const i=e.screen.previews.find(o=>o.kind==="browser");if(!i)return;let n;try{n=new URL(ke(t,i),"https://page.example.com")}catch{return}const s=n.pathname.split("/").filter(o=>o!=="").map(o=>{try{return decodeURIComponent(o)}catch{return o}});return{origin:n.origin,segments:s}},ti=()=>({screens:[],children:new Map}),Be=(t,e,i)=>{const[n,...s]=t.children.entries();if(t.screens.length===0&&n&&s.length===0&&i!=="/"){const[o,r]=n;return Be(r,`${e}/${o}`,`${i}/${o}`)}return{segment:e,path:i,screens:t.screens,children:[...t.children.entries()].map(([o,r])=>Be(r,`/${o}`,`${i==="/"?"":i}/${o}`))}},hs=t=>{const e=new Map;for(const[i,n]of t){const s=e.get(n.origin)??ti();e.set(n.origin,s);let o=s;for(const r of n.segments){const a=o.children.get(r)??ti();o.children.set(r,a),o=a}o.screens.push(i)}return[...e.entries()].map(([i,n])=>({origin:i,root:Be(n,"/","/")}))},vs=(t,e)=>{const i=e.screens.map(o=>({app:e,screen:o})),n=[],s=[];for(const o of i){const r=us(t,o);r?n.push([o,r]):s.push(o)}return{app:e,screens:i,trees:hs(n),others:s}},ii=t=>t.apps.map(e=>vs(t,e)).filter(e=>e.screens.length>0),ni=(t,e)=>e?.kind!=="screen"?t[0]:t.find(i=>i.app.id===e.app.id)??t[0],fs=(t,e)=>{switch(e.type){case"activity":return U(t,e.id)!==void 0;case"story":return $(t,e.id)!==void 0;case"step":return S(t,e.id)!==void 0;case"screen":return L(t,e.id)!==void 0;case"preview":return E(t,e.id)!==void 0;case"page":return!0;case O:{const i=Q(e.id);return i!==void 0&&E(t,i.previewId)!==void 0}default:return!1}},si=t=>{const e=le(t);return{kind:"view",name:"prototype",label:"UX Prototype",addable:!1,parseBase:$t,emptyBase:Tt,actions:m,apply:Rt,hasTarget:fs,canonicalTarget:(i,n)=>{if(n.type==="step"){const s=S(i,n.id);return s?{...n,id:ae(s)}:n}if(n.type==="story"){const s=$(i,n.id);return s?{...n,id:C(s.activity.id,s.story.id)}:n}if(n.type==="preview"){const s=E(i,n.id);return s?{...n,id:s.preview.id}:n}return n},describe:(i,n,s)=>Lt(e,i,n,s),serialize:Ut,resolveNavigation:xe,navigationHierarchy:cs,navigationFor:(i,n)=>Qn(n),commentTargets:(i,n)=>Xt(e,i),currentTarget:(i,n)=>as(e,i,n),title:He}},gs=(t,e)=>{const i=e.flatMap(n=>{const s=Math.max(n.left,t.left)-t.left,o=Math.max(n.top,t.top)-t.top,r=Math.min(n.right,t.right)-t.left-s,a=Math.min(n.bottom,t.bottom)-t.top-o;return r>0&&a>0?[`M${s} ${o}h${r}v${a}h-${r}Z`]:[]});return i.length===0?"none":`path(evenodd, 'M0 0H${t.width}V${t.height}H0Z ${i.join(" ")}')`},Ee="data-dpk-modal",ms=t=>{try{return t.matches(":modal")}catch{return!1}},oi=t=>{t.setAttribute(Ee,""),t.open||t.show()},ri=t=>{Object.hasOwn(t,"showModal")||Object.defineProperty(t,"showModal",{configurable:!0,value:()=>oi(t)})},ai=(t,e)=>{if(!ms(e))return;const i=n=>{n.target===e&&(n.stopImmediatePropagation(),t.removeEventListener("close",i,!0))};t.addEventListener("close",i,!0),e.close(),oi(e)},di=(t,e)=>{try{return Array.from(t.querySelectorAll(e))}catch{return[]}},ws=(t,e)=>{const i=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(t),"value");i?.set?i.set.call(t,e):t.value=e},ys=t=>t instanceof HTMLInputElement&&(t.type==="checkbox"||t.type==="radio"),bs=(t,e)=>{if(ys(t)){const n=typeof e=="boolean"?e:t.value===e;return typeof e=="string"&&!n?!1:(t.checked=n,!0)}const i=String(e);return t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement||t instanceof HTMLSelectElement?(ws(t,i),!0):(t.textContent=i,!1)},ks=(t,e)=>{const i=[];for(const[n,s]of Object.entries(e)){const o=di(t,n);o.length===0&&i.push(n);for(const r of o)bs(r,s)&&(r.dispatchEvent(new Event("input",{bubbles:!0,composed:!0})),r.dispatchEvent(new Event("change",{bubbles:!0})))}return i},xs=(t,e)=>{const i=[];for(const n of e){const[s]=di(t,n);s instanceof HTMLElement?s.click():i.push(n)}return i},Es='a, button, input, select, textarea, label, summary, [role="button"], [role="link"], [role="tab"]',li=/^-?[A-Za-z_][\w-]*$/,pi=40,Ss=(t,e)=>{const i=t.closest(Es);return i!==null&&i!==e&&e.contains(i)?i:t},Se=t=>{const e=t.replace(/\s+/g," ").trim();if(e==="")return;const i=Array.from(e);return i.length>pi?`${i.slice(0,pi).join("")}\u2026`:e},$s=t=>{const e=t.getAttribute("aria-label")??t.getAttribute("title");if(e)return Se(e);const i=t.tagName.toLowerCase();return Se(i==="input"||i==="textarea"||i==="select"?t.getAttribute("placeholder")??t.getAttribute("name")??"":i==="img"?t.getAttribute("alt")??"":t.textContent??"")},Ts=t=>{const e=t.getAttribute("id");if(e&&li.test(e))return`#${e}`;const i=t.tagName.toLowerCase(),n=Array.from(t.classList).filter(a=>li.test(a)).slice(0,2).map(a=>`.${a}`).join(""),s=t.parentElement,o=s?Array.from(s.children).filter(a=>a.tagName===t.tagName):[],r=o.length>1?`:nth-of-type(${o.indexOf(t)+1})`:"";return`${i}${n}${r}`},As=(t,e,i)=>{try{const n=t.querySelectorAll(e);return n.length===1&&n[0]===i}catch{return!1}},Is=(t,e)=>{const i=[];let n=t;for(;n!==null&&n!==e;){const o=Ts(n);if(i.unshift(o),o.startsWith("#")||As(e,i.join(" > "),t))break;n=n.parentElement}const s=$s(t);return{selector:i.length===0?":scope":i.join(" > "),tag:t.tagName.toLowerCase(),...s===void 0?{}:{text:s}}},_s=(t,e)=>{if(e===":scope")return t;try{return t.querySelector(e)}catch{return null}},ci=(t,e)=>{const i=xe(t,e),n=te(t,i);if(n?.kind!=="screen")return null;const[s]=Ye(t,n,i).shown;return s?.kind!=="browser"?null:{screen:n.screen.id,preview:s.id}},$e=(t,e)=>{const i=te(t,xe(t,{[V]:"app",...e}));return i?.kind==="screen"?i:void 0},Ps=(t,e,i,n=new Map)=>{const s=dt(e,i);if(s===null)return null;const o=lt(s);for(const{screen:r}of H(t))for(const a of r.previews){if(a.kind!=="browser")continue;const d=dt(ke(t,a,n.get(a.id)),i);if(d!==null&<(d)===o)return{screen:r.id,preview:a.id}}return null},Ds=(t,e,i)=>e===void 0||e.kind==="new-tab"?i.newTab:e.kind==="unreachable"?rt(e.url):$e(t,e.page)?.screen.title??i.newTab,ui=(t,e,i)=>{if(e===void 0||e.kind==="new-tab")return"";if(e.kind==="unreachable")return e.url;const n=$e(t,e.page)?.screen.previews.find(s=>s.id===e.page.preview);return n===void 0?"":ke(t,n,i.get(n.id))},hi=t=>{const e=at(t);for(let i=e.index;i>=0;i-=1){const n=e.history[i];if(n?.kind==="page")return n.page}for(const i of t.tabs){const n=i.history[i.index];if(n?.kind==="page")return n.page}},Rs=(t,e)=>e===void 0?void 0:$e(t,e)?.app.actor,vi=(t,e,i,n=null,s=new Map)=>{const o=at(e),r=o.history[o.index],a=Rs(t,hi(e)??n??void 0);return{tabs:e.tabs.map(d=>({id:d.id,title:Ds(t,d.history[d.index],i),url:ui(t,d.history[d.index],s),active:d.id===o.id})),entry:r,url:ui(t,r,s),canBack:vn(e),canForward:hn(e),...a===void 0?{}:{profile:a}}},Ns=t=>hi(t)??null,Os=(t,e)=>{const i=e===null?void 0:$e(t,e),n=ni(ii(t),i),s=[],o=(r,a)=>{for(const{screen:d}of a.screens){const p=d.previews.find(c=>c.kind==="browser");p!==void 0&&s.push({title:d.title,url:`${r}${a.path==="/"?"":a.path}`,page:{screen:d.id,preview:p.id}})}for(const d of a.children)o(r,d)};for(const r of n?.trees??[])o(rt(r.origin),r.root);return s},A=(t,e,i,n)=>({id:e,deviceClass:t,width:i,height:n}),fi=[A("phone","iphone-se",375,667),A("phone","iphone-16",393,852),A("phone","iphone-16-pro-max",440,956),A("phone","pixel-7",412,915),A("phone","galaxy-s24",360,780),A("tablet","ipad-mini",744,1133),A("tablet","ipad-air-11",820,1180),A("tablet","ipad-pro-11",834,1194),A("tablet","ipad-pro-13",1024,1366),A("desktop","laptop-13",1280,800),A("desktop","laptop-15",1440,900),A("desktop","full-hd",1920,1080),A("desktop","monitor-27",2560,1440),A("desktop","ultrawide",3440,1440)],Cs={phone:A("phone","iphone-16",393,852),tablet:A("tablet","ipad-pro-11",834,1194),desktop:A("desktop","laptop-13",1280,800)},gi=t=>t==="mobile"?"phone":t==="tablet"?"tablet":"desktop",Ms=t=>t!=="plain",mi=t=>fi.filter(e=>e.deviceClass===t),Ls=(t,e)=>{const i=gi(t),n=e[i];return mi(i).find(s=>s.id===n)??Cs[i]},Us=(t,e)=>{const i=fi.find(n=>n.id===e);return i===void 0||t[i.deviceClass]===e?t:{...t,[i.deviceClass]:e}},Vs=(t,e)=>`${t.deviceName(e.id)} \xB7 ${e.width}\xD7${e.height}`,zs=(t,e)=>{const i=[1,e.width/t.width];e.height!==void 0&&i.push(e.height/t.height);const n=Math.min(...i);return!Number.isFinite(n)||n<=0?1:Math.max(.1,Math.floor(n*100)/100)},wi=(t,e,i)=>{const{state:n,navigation:s}=t,o=te(n,s),r=pe(s);return l`
|
|
2
2
|
<div class="nav">
|
|
3
3
|
${Bs(t,e,r)}
|
|
4
4
|
${r==="app"?Ws(t,e,o,i.app):o!==void 0&&o.kind!=="screen"?Gs(t,e,o,i):l`<p class="nav-empty">${e.noActivityBefore}<code>activities</code>${e.noActivityAfter}</p>`}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a5 as G,ah as E,ak as D,X as I,j as X,ag as Et,al as Y,aE as Dt,ai as p,as as l,bp as It,aH as b,I as V,au as At,a8 as A,av as C,a9 as L,aw as w,b9 as J,ax as y,ay as k,ac as g,aD as B,aa as T,ad as Q,bK as O,aB as Lt,az as Z,aF as Bt,bF as Ot,x as qt,w as Mt,A as tt,z as Ut,l as _t}from"./shared-
|
|
1
|
+
import{a5 as G,ah as E,ak as D,X as I,j as X,ag as Et,al as Y,aE as Dt,ai as p,as as l,bp as It,aH as b,I as V,au as At,a8 as A,av as C,a9 as L,aw as w,b9 as J,ax as y,ay as k,ac as g,aD as B,aa as T,ad as Q,bK as O,aB as Lt,az as Z,aF as Bt,bF as Ot,x as qt,w as Mt,A as tt,z as Ut,l as _t}from"./shared-DlZJHHpN.js";import{o as Nt}from"./shared-D4PPk0Dk.js";const zt={active:[],match:"single"},Pt=(s,t)=>t.active.length===0?!0:t.match==="all"?t.active.every(e=>s.includes(e)):t.active.some(e=>s.includes(e)),q=s=>{try{return s.split("/").map(t=>decodeURIComponent(t))}catch{return null}},et="BC:",jt=s=>`${et}${s}`,$={kind:"idle"},M="text/plain",Ht=s=>`${s.type}:${s.id}`,rt=(s,t)=>{const e=(s??"").trim();if(e.length===0)return null;const r=e.indexOf(":");if(r<0)return{type:t,id:e};const a=e.slice(0,r),i=e.slice(r+1);return a.length===0||i.length===0?null:{type:a,id:i}},st=(s,t)=>t<=s.top+s.height/2?"before":"after";class Ft{#e;#r=$;#n;constructor(t){this.#e=t,t.addController(this)}hostDisconnected(){this.reset()}get state(){return this.#r}get item(){return this.#r.kind==="dragging"?this.#r.item:null}isDragging(t,e){const r=this.item;return r!==null&&r.type===t&&r.id===e}isOver(t){return this.#r.kind!=="idle"&&this.#r.over===t}reset(){clearTimeout(this.#n),this.#n=void 0,this.#t($)}source(t){return{dragstart:e=>{e.dataTransfer&&(e.dataTransfer.setData(M,Ht(t)),e.dataTransfer.effectAllowed="move"),clearTimeout(this.#n),this.#n=setTimeout(()=>{this.#n=void 0,this.#t({kind:"dragging",item:t,over:null})},0)},dragend:()=>this.reset()}}target(t){return{dragenter:r=>{this.#i(t.accepts)&&(r.preventDefault(),this.#a(t.key))},dragover:r=>{this.#i(t.accepts)&&(r.preventDefault(),r.dataTransfer&&(r.dataTransfer.dropEffect="move"),this.#a(t.key))},dragleave:()=>{this.isOver(t.key)&&this.#a(null)},drop:r=>{r.preventDefault();const a=rt(r.dataTransfer?.getData(M),t.accepts)??this.item;if(this.#t($),!a||a.type!==t.accepts)return;const i=t.hovered?.(r)??null;t.onDrop({item:{type:t.accepts,id:a.id},hoveredId:i?.id??null,place:i?st(i.element.getBoundingClientRect(),r.clientY):"end",event:r})}}}combine(t,e){const r=()=>{const a=this.item!==null;return e.flatMap(([i,o])=>a||i===t?[o]:[])};return{dragenter:a=>r().forEach(i=>i.dragenter(a)),dragover:a=>r().forEach(i=>i.dragover(a)),dragleave:()=>e.forEach(([,a])=>a.dragleave()),drop:a=>{const i=rt(a.dataTransfer?.getData(M),t)?.type??this.item?.type,o=e.find(([n])=>n===i)?.[1];if(o){o.drop(a);return}a.preventDefault(),this.#t($)}}}#i(t){const e=this.item;return e===null||e.type===t}#a(t){const e=this.#r;if(e.kind==="dragging"){e.over!==t&&this.#t({...e,over:t});return}if(t===null){e.kind==="receiving"&&this.#t($);return}(e.kind==="idle"||e.over!==t)&&this.#t({kind:"receiving",over:t})}#t(t){this.#r!==t&&(this.#r=t,this.#e.requestUpdate())}}const R=(s,t,e,r)=>{const i=s.filter(c=>c!==t).at(-1)??null;if(e===null||r==="end")return i;const o=s.indexOf(t),n=s.indexOf(e);if(n<0)return i;const d=c=>c<=0?null:s.at(c-1)??null;return o>=0?o<n?e:d(n):r==="after"?e:d(n)},at=(s,t)=>new Intl.DateTimeFormat(s,{dateStyle:"medium",timeStyle:"short"}).format(new Date(t)),Kt=G({en:{heading:"Comments",commentsOn:s=>`Comments on \u201C${s}\u201D`,commentCountAria:s=>`${s} comment${s===1?"":"s"}`,empty:"No comments yet.",add:"Add comment",cancel:"Cancel",deleteComment:"Delete comment",sendFailed:"Could not save the comment.",commentDate:s=>at("en-US",s)},ja:{heading:"\u30B3\u30E1\u30F3\u30C8",commentsOn:s=>`\u300C${s}\u300D\u306E\u30B3\u30E1\u30F3\u30C8`,commentCountAria:s=>`\u30B3\u30E1\u30F3\u30C8 ${s} \u4EF6`,empty:"\u30B3\u30E1\u30F3\u30C8\u306F\u307E\u3060\u3042\u308A\u307E\u305B\u3093\u3002",add:"\u30B3\u30E1\u30F3\u30C8\u3092\u8FFD\u52A0",cancel:"\u30AD\u30E3\u30F3\u30BB\u30EB",deleteComment:"\u30B3\u30E1\u30F3\u30C8\u3092\u524A\u9664",sendFailed:"\u30B3\u30E1\u30F3\u30C8\u3092\u4FDD\u5B58\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002",commentDate:s=>at("ja-JP",s)}}),Wt=E`
|
|
2
2
|
:host {
|
|
3
3
|
display: inline-block;
|
|
4
4
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{ah as e}from"./shared-
|
|
1
|
+
import{ah as e}from"./shared-DlZJHHpN.js";const r=e`
|
|
2
2
|
/* ------------------------------------------------------------ count */
|
|
3
3
|
|
|
4
4
|
/* How many: a small rounded mono figure, beside a tab or a heading. data-size='sm' is quieter. */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{aE as bt,ai as h,as as r,S as qs,aQ as G,a5 as D,ak as z,X as M,j as K,ah as T,al as R,b3 as Ps,H as Is,b4 as Xt,b5 as Os,b6 as Us,au as B,a9 as kt,aw as u,b7 as Yt,aa as w,aY as vt,a8 as Zt,aD as Jt,ac as b,aL as Fs,ad as dt,aO as Qt,az as st,aH as F,b8 as te,av as y,ax as $,a$ as xt,ay as E,aM as W,aB as at,aj as I,aC as ee,ab as V,aA as se,ag as yt,ar as ae,aZ as Hs,aX as ne,b9 as _s,aW as wt,ba as Bs,bb as ie,bc as ct,z as Ns,bd as re,aG as Ws,a_ as Gs,y as Ks,be as Vs,_ as Xs,$ as Ys}from"./shared-B8ZhyjWv.js";import{o as N,r as Zs}from"./shared-D4PPk0Dk.js";import{e as Js}from"./shared-2OsWmhrI.js";import{a as oe,c as Qs}from"./shared-C0M3Ib7z.js";import{c as ta}from"./shared-Dn92ukYW.js";import{p as ea,i as sa,r as aa,c as na,a as le,b as de,d as ia,e as ra,f as oa,h as ce,g as la,j as $t,s as da,k as ca,l as pa,m as ha,n as ua,t as ma}from"./shared-Dql0ZVdC.js";import{B as ga,t as fa,v as ba,i as ka,k as va,j as xa}from"./shared-Dd8JfvQe.js";import{d as ya}from"./shared-ubG0-RQ-.js";class pt{#n;#t;#e=null;#s=null;#a=null;#i=null;#r=new Map;#o=null;constructor(t){this.#n=t,this.#t=new bt(t),t.addController(this)}get isOpen(){return this.#e!==null}open(t,e,s){this.#e=t,this.#a=e,this.#i=s??null,this.#o=null,this.#n.requestUpdate()}close(){this.#e=null,this.#a=null,this.#i=null,this.#n.requestUpdate()}hostDisconnected(){this.close()}sync(t){const e=this.#s!==this.#e;this.#s=this.#e,!(t===null||this.#a===null||this.#e===null)&&(this.#t.open(t,this.#a,{width:300,height:280},{placement:"right-start",trackTransform:!0}),e&&t.querySelector("textarea")?.focus({preventScroll:!0}))}render(t){const e=this.#e;if(e===null)return h;const s=ea(this.#r.get(e)??"",[],{...this.#i===null?{}:{label:this.#i},key:e,...this.#o===e&&t.errorMessage!==void 0?{error:t.errorMessage}:{}});return r`${sa(e,aa(na(t.locale),s,n=>this.#l(e,t.submit,n)))}`}#l(t,e,s){if(s.kind==="input"){this.#r=new Map(this.#r).set(t,s.body),this.#o=null,this.#n.requestUpdate();return}if(s.kind==="comment"){if(!e(t,s.body)){this.#o=t,this.#n.requestUpdate();return}const i=new Map(this.#r);i.delete(t),this.#r=i}this.#o=null,this.close()}}const Ct=(a,t,e,s)=>{if(a===null)return null;const n=qs(a),i=t.find(d=>d.value===n);return i===void 0?null:{id:"review-comment",entries:[{kind:"item",id:"review-comment",label:e.reviewComment,run:()=>s(n,i.label)}]}},ht=.08,pe=1.8,he=a=>{if(a.length===0)return{x:0,y:0,width:0,height:0};const t=Math.min(...a.map(i=>i.x)),e=Math.min(...a.map(i=>i.y)),s=Math.max(...a.map(i=>i.x+i.width))-t,n=Math.max(...a.map(i=>i.y+i.height))-e;return{x:t-s*.1,y:e-n*.1,width:s*1.2,height:n*1.2}},ue=(a,t)=>a+t/12,wa=(a,t)=>{if(a.length===0)return null;const e=Math.min(...a.map(n=>n.y)),s=a.filter(n=>n.y<e+t);return{x:Math.min(...s.map(n=>n.x)),y:e}},St=16,$a=.8,ut=(a,t,e,s,n)=>a==="start"?St-ue(t,e)*s:(n-e*s)/2-t*s,me=(a,t,e,s,n="center")=>{if(t.width===0||t.height===0)return{...a,x:0,y:0};const i=(d,l,o,m)=>{const p=o*a.scale,f=m*$a;if(p<=m){const S=ut(n,l,o,a.scale,m);return G(d,S-f,S+f)}return G(d,m-(l+o)*a.scale-f,-l*a.scale+f)};return{...a,x:i(a.x,t.x,t.width,e),y:i(a.y,t.y,t.height,s)}},Ca=(a,t,e,s,n,i,d="center")=>{const l=Math.abs(i)>Math.abs(n);if(l&&t.height*a.scale<=s)return null;const o=me({...a,x:a.x-n,y:a.y-i},t,e,s,d);return l&&o.y===a.y?null:o},Sa=a=>Math.exp(-a*.01),ge='button,[role="button"],a,input,textarea,select',Et=(a,t,e)=>{for(const s of a.composedPath()){if(s===t)return null;if(s instanceof Element&&s.matches(e))return s}return null},Ea=a=>{const{canvas:t,world:e,onClearSelection:s,onView:n,align:i="center",sizeWorld:d=!0}=a;let l={x:0,y:0,width:0,height:0},o={x:0,y:0,scale:1};const m=()=>({width:t.clientWidth||1e3,height:t.clientHeight||560}),p=()=>{const{width:c,height:g}=m();o=me(o,l,c,g,i),e.style.transform=`translate(${o.x}px, ${o.y}px) scale(${o.scale})`,e.style.setProperty("--dpk-zoom-inverse",String(1/o.scale)),e.style.setProperty("--dpk-zoom-scale",String(o.scale)),n?.(o)},f=()=>{const{width:c,height:g}=m(),k=l.width/1.2||1,x=l.height/1.2||1,C=G(Math.min((c-24)/k,(g-40)/x),ht,1);o={scale:C,x:ut(i,l.x,l.width,C,c),y:ut(i,l.y,l.height,C,g)},p()},S=c=>{const{width:g,height:k}=m(),x=he([c]),C=x.width/1.2||1,L=x.height/1.2||1;o={...o,scale:G(Math.min((g-24)/C,(k-40)/L),ht,pe)},o={...o,x:(g-x.width*o.scale)/2-x.x*o.scale,y:(k-x.height*o.scale)/2-x.y*o.scale},p()},O=()=>{const{width:c}=m(),g=l.width/1.2||1,k=G((c-24)/g,ht,1);o={scale:k,x:(c-l.width*k)/2-l.x*k,y:16},p()},lt=c=>{const{width:g,height:k}=m(),x=(C,L,Kt,Vt)=>Vt!==void 0?St-Vt:L<=Kt?ut(i,C,L,1,Kt):St-ue(C,L);o={scale:1,x:x(l.x,l.width,g,c?.x),y:x(l.y,l.height,k,c?.y)},p()},_=(c,g=m().width/2,k=m().height/2)=>{const x=o.scale,C=G(x*c,ht,pe);C!==x&&(o={scale:C,x:g-(g-o.x)*C/x,y:k-(k-o.y)*C/x},p())},Q=c=>{if(Et(c,t,".diagram-zoom")!==null)return;const g=c.deltaMode===1?16:c.deltaMode===2?m().height:1;if(c.ctrlKey||c.metaKey){c.preventDefault();const L=t.getBoundingClientRect();_(Sa(c.deltaY),c.clientX-L.left,c.clientY-L.top);return}const{width:k,height:x}=m(),C=Ca(o,l,k,x,c.deltaX*g,c.deltaY*g,i);C!==null&&(c.preventDefault(),o=C,p())},q=new Map;let A=null,P=!1;const U=()=>{const c=[...q.values()],g=c[0];if(!g)return null;const k=c[1];return k?{x:(g.x+k.x)/2,y:(g.y+k.y)/2,distance:Math.hypot(k.x-g.x,k.y-g.y)}:{...g,distance:0}},tt=c=>{q.size===0&&(P=!1);const g=Et(c,t,ge);c.button!==0||c.pointerType!=="touch"&&g!==null||(q.set(c.pointerId,{x:c.clientX,y:c.clientY}),A=U(),g===null&&t.setPointerCapture(c.pointerId),c.pointerType!=="touch"&&g===null&&(c.preventDefault(),t.focus({preventScroll:!0})))},Ht=c=>{if(!q.has(c.pointerId)||A===null)return;q.set(c.pointerId,{x:c.clientX,y:c.clientY});const g=U();if(g===null)return;const k=g.x-A.x,x=g.y-A.y;if((Math.abs(k)+Math.abs(x)>1||Math.abs(g.distance-A.distance)>1)&&(P=!0),g.distance>0&&A.distance>0){const C=t.getBoundingClientRect();_(Math.pow(g.distance/A.distance,.45),A.x-C.left,A.y-C.top)}o={...o,x:o.x+k,y:o.y+x},p(),A=g,t.classList.toggle("is-panning",P)},et=c=>{q.delete(c.pointerId),A=U(),!(q.size>0)&&(t.classList.remove("is-panning"),c.type==="pointercancel"&&(P=!1))},_t=c=>{P&&(c.preventDefault(),c.stopPropagation()),et(c)},Bt=c=>{if(P){c.preventDefault(),c.stopPropagation(),P=!1;return}!(c.target instanceof Element)||Et(c,t,ge)!==null||s()},Nt=c=>{if(c.target!==t)return;const g=30;if(c.key==="+"||c.key==="=")_(1.1);else if(c.key==="-")_(1/1.1);else if(c.key==="0")f();else if(c.key==="Escape"){if(s()===!1)return}else if(c.key==="ArrowLeft"||c.key==="ArrowRight"||c.key==="ArrowUp"||c.key==="ArrowDown")o={...o,x:o.x+(c.key==="ArrowLeft"?g:c.key==="ArrowRight"?-g:0),y:o.y+(c.key==="ArrowUp"?g:c.key==="ArrowDown"?-g:0)},p();else return;c.preventDefault()},Wt=c=>{const g=c.target instanceof HTMLElement?c.target:null;if(g===null||!c.composedPath().includes(e))return;const k=g.getBoundingClientRect(),x=t.getBoundingClientRect();let C=0,L=0;k.left<x.left+12?C=x.left+12-k.left:k.right>x.right-12&&(C=x.right-12-k.right),k.top<x.top+12?L=x.top+12-k.top:k.bottom>x.bottom-40&&(L=x.bottom-40-k.bottom),!(C===0&&L===0)&&(o={...o,x:o.x+C,y:o.y+L},p())};t.addEventListener("wheel",Q,{passive:!1}),t.addEventListener("pointerdown",tt),t.addEventListener("pointermove",Ht),t.addEventListener("pointerup",_t),t.addEventListener("pointercancel",et),t.addEventListener("lostpointercapture",et),t.addEventListener("click",Bt,!0),t.addEventListener("keydown",Nt),t.addEventListener("focusin",Wt);const Gt=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>p());return Gt?.observe(t),{setContent(c){l=he(c.width===0&&c.height===0?[]:[c]),d&&(e.style.width=`${c.width}px`,e.style.height=`${c.height}px`),p()},apply:p,fit:f,fitTo:S,fitWidth:O,reset:lt,zoom:_,view:()=>({...o}),destroy(){Gt?.disconnect(),t.removeEventListener("wheel",Q),t.removeEventListener("pointerdown",tt),t.removeEventListener("pointermove",Ht),t.removeEventListener("pointerup",_t),t.removeEventListener("pointercancel",et),t.removeEventListener("lostpointercapture",et),t.removeEventListener("click",Bt,!0),t.removeEventListener("keydown",Nt),t.removeEventListener("focusin",Wt)}}},za=["fit","fit-width","actual","none"];class Ta{#n;#t=null;#e=null;#s=!1;constructor(t,e){this.#n=e,t.addController(this)}hostDisconnected(){this.detach()}get attached(){return this.#t!==null}get view(){return this.#t?.view()??{x:0,y:0,scale:1}}attach(){this.detach();const t=this.#n.elements();if(t===null)return;const{canvas:e,world:s}=t;this.#t=Ea({canvas:e,world:s,align:this.#n.align(),sizeWorld:!1,onClearSelection:()=>this.#n.onDismiss(),onView:n=>this.#n.onView(n)}),this.#e=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>this.sync()),this.#e?.observe(s),this.sync()}detach(){this.#t?.destroy(),this.#t=null,this.#e?.disconnect(),this.#e=null}sync(){const t=this.#t,e=this.#n.elements()?.world;if(t===null||e===void 0)return;const s=this.#n.contentSize();e.style.width=s?`${s.width}px`:"",e.style.height=s?`${s.height}px`:"";const n=s?.width??e.offsetWidth,i=s?.height??e.offsetHeight;t.setContent({x:0,y:0,width:n,height:i}),!this.#s&&n>0&&i>0&&this.open()}open(){const t=this.#t;if(t===null)return;this.#s=!0;const e=this.#n.initial(),s=za.includes(e)?e:"fit";s==="fit"?t.fit():s==="fit-width"?t.fitWidth():s==="actual"&&t.reset()}fit(){this.#t?.fit()}fitWidth(){this.#t?.fitWidth()}fitTo(t){this.#t?.fitTo(t)}reset(t){this.#t?.reset(t)}zoom(t){this.#t?.zoom(t)}apply(){this.#t?.apply()}}const Aa=(a,t,e)=>a.some(s=>Math.abs(t)>Math.abs(e)?s.overflowX!=="auto"&&s.overflowX!=="scroll"||s.scrollWidth<=s.clientWidth?!1:t>0?s.scrollLeft+s.clientWidth<s.scrollWidth-1:t<0&&s.scrollLeft>0:s.overflowY!=="auto"&&s.overflowY!=="scroll"||s.scrollHeight<=s.clientHeight?!1:e>0?s.scrollTop+s.clientHeight<s.scrollHeight-1:e<0&&s.scrollTop>0),fe=160,zt=(a,t,e=fe)=>Math.max(e,Math.round(a+t)),Ma=(a,t,e,s=fe)=>{const n=e?96:24;return t==="ArrowDown"?zt(a,n,s):t==="ArrowUp"?zt(a,-n,s):null},be={kind:"idle"};class La{constructor(t,e){this.#e=null,this.#s=be,this.handlers={pointerdown:s=>{if(s.button!==0)return;s.preventDefault();const n=s.currentTarget;n instanceof Element&&n.setPointerCapture(s.pointerId),this.#s={kind:"dragging",pointerId:s.pointerId,startY:s.clientY,startHeight:this.#t()},this.#n.requestUpdate()},pointermove:s=>{const n=this.#s;n.kind!=="dragging"||n.pointerId!==s.pointerId||this.#a(zt(n.startHeight,s.clientY-n.startY))},pointerup:s=>this.#i(s),pointercancel:s=>this.#i(s),keydown:s=>{const n=Ma(this.#e??this.#t(),s.key,s.shiftKey);n!==null&&(s.preventDefault(),this.#a(n))},dblclick:()=>this.#a(null)},this.#n=t,this.#t=e,t.addController(this)}#n;#t;#e;#s;hostConnected(){}get height(){return this.#e}get dragging(){return this.#s.kind==="dragging"}#a(t){t!==this.#e&&(this.#e=t,this.#n.requestUpdate())}#i(t){const e=this.#s;e.kind!=="dragging"||e.pointerId!==t.pointerId||(this.#s=be,this.#n.requestUpdate())}}const Da=D({en:{maximize:"Maximize",restore:"Restore size",controls:"View controls",zoomOut:"Zoom out",fit:"Fit to view",zoomIn:"Zoom in",canvas:"Canvas. Arrow keys pan, plus and minus zoom, 0 fits the view.",resize:"Resize the panel",resizeHint:"Drag or use the up and down arrows to resize. Double-click restores the height."},ja:{maximize:"\u6700\u5927\u5316",restore:"\u5143\u306E\u30B5\u30A4\u30BA\u306B\u623B\u3059",controls:"\u8868\u793A\u306E\u64CD\u4F5C",zoomOut:"\u7E2E\u5C0F",fit:"\u5168\u4F53\u3092\u8868\u793A",zoomIn:"\u62E1\u5927",canvas:"\u30AD\u30E3\u30F3\u30D0\u30B9\u3002\u77E2\u5370\u30AD\u30FC\u3067\u30D1\u30F3\u3001\u30D7\u30E9\u30B9\u30FB\u30DE\u30A4\u30CA\u30B9\u3067\u30BA\u30FC\u30E0\u30010\u3067\u5168\u4F53\u8868\u793A\u3002",resize:"\u30D1\u30CD\u30EB\u306E\u9AD8\u3055\u3092\u5909\u3048\u308B",resizeHint:"\u30C9\u30E9\u30C3\u30B0\u3001\u307E\u305F\u306F\u4E0A\u4E0B\u306E\u77E2\u5370\u30AD\u30FC\u3067\u9AD8\u3055\u3092\u5909\u3048\u308B\u3002\u30C0\u30D6\u30EB\u30AF\u30EA\u30C3\u30AF\u3067\u5143\u306E\u9AD8\u3055\u306B\u623B\u3059\u3002"}});class ke extends z{static{this.styles=[M,K,T`
|
|
1
|
+
import{aE as bt,ai as h,as as r,S as qs,aQ as G,a5 as D,ak as z,X as M,j as K,ah as T,al as R,b3 as Ps,H as Is,b4 as Xt,b5 as Os,b6 as Us,au as B,a9 as kt,aw as u,b7 as Yt,aa as w,aY as vt,a8 as Zt,aD as Jt,ac as b,aL as Fs,ad as dt,aO as Qt,az as st,aH as F,b8 as te,av as y,ax as $,a$ as xt,ay as E,aM as W,aB as at,aj as I,aC as ee,ab as V,aA as se,ag as yt,ar as ae,aZ as Hs,aX as ne,b9 as _s,aW as wt,ba as Bs,bb as ie,bc as ct,z as Ns,bd as re,aG as Ws,a_ as Gs,y as Ks,be as Vs,_ as Xs,$ as Ys}from"./shared-DlZJHHpN.js";import{o as N,r as Zs}from"./shared-D4PPk0Dk.js";import{e as Js}from"./shared-BblP0eEY.js";import{a as oe,c as Qs}from"./shared-DPD_tBh8.js";import{c as ta}from"./shared-C5wXNKl3.js";import{p as ea,i as sa,r as aa,c as na,a as le,b as de,d as ia,e as ra,f as oa,h as ce,g as la,j as $t,s as da,k as ca,l as pa,m as ha,n as ua,t as ma}from"./shared-bP-1q7ZQ.js";import{B as ga,t as fa,v as ba,i as ka,k as va,j as xa}from"./shared-C4EqS9Lp.js";import{d as ya}from"./shared-nrgnwzCU.js";class pt{#n;#t;#e=null;#s=null;#a=null;#i=null;#r=new Map;#o=null;constructor(t){this.#n=t,this.#t=new bt(t),t.addController(this)}get isOpen(){return this.#e!==null}open(t,e,s){this.#e=t,this.#a=e,this.#i=s??null,this.#o=null,this.#n.requestUpdate()}close(){this.#e=null,this.#a=null,this.#i=null,this.#n.requestUpdate()}hostDisconnected(){this.close()}sync(t){const e=this.#s!==this.#e;this.#s=this.#e,!(t===null||this.#a===null||this.#e===null)&&(this.#t.open(t,this.#a,{width:300,height:280},{placement:"right-start",trackTransform:!0}),e&&t.querySelector("textarea")?.focus({preventScroll:!0}))}render(t){const e=this.#e;if(e===null)return h;const s=ea(this.#r.get(e)??"",[],{...this.#i===null?{}:{label:this.#i},key:e,...this.#o===e&&t.errorMessage!==void 0?{error:t.errorMessage}:{}});return r`${sa(e,aa(na(t.locale),s,n=>this.#l(e,t.submit,n)))}`}#l(t,e,s){if(s.kind==="input"){this.#r=new Map(this.#r).set(t,s.body),this.#o=null,this.#n.requestUpdate();return}if(s.kind==="comment"){if(!e(t,s.body)){this.#o=t,this.#n.requestUpdate();return}const i=new Map(this.#r);i.delete(t),this.#r=i}this.#o=null,this.close()}}const Ct=(a,t,e,s)=>{if(a===null)return null;const n=qs(a),i=t.find(d=>d.value===n);return i===void 0?null:{id:"review-comment",entries:[{kind:"item",id:"review-comment",label:e.reviewComment,run:()=>s(n,i.label)}]}},ht=.08,pe=1.8,he=a=>{if(a.length===0)return{x:0,y:0,width:0,height:0};const t=Math.min(...a.map(i=>i.x)),e=Math.min(...a.map(i=>i.y)),s=Math.max(...a.map(i=>i.x+i.width))-t,n=Math.max(...a.map(i=>i.y+i.height))-e;return{x:t-s*.1,y:e-n*.1,width:s*1.2,height:n*1.2}},ue=(a,t)=>a+t/12,wa=(a,t)=>{if(a.length===0)return null;const e=Math.min(...a.map(n=>n.y)),s=a.filter(n=>n.y<e+t);return{x:Math.min(...s.map(n=>n.x)),y:e}},St=16,$a=.8,ut=(a,t,e,s,n)=>a==="start"?St-ue(t,e)*s:(n-e*s)/2-t*s,me=(a,t,e,s,n="center")=>{if(t.width===0||t.height===0)return{...a,x:0,y:0};const i=(d,l,o,m)=>{const p=o*a.scale,f=m*$a;if(p<=m){const S=ut(n,l,o,a.scale,m);return G(d,S-f,S+f)}return G(d,m-(l+o)*a.scale-f,-l*a.scale+f)};return{...a,x:i(a.x,t.x,t.width,e),y:i(a.y,t.y,t.height,s)}},Ca=(a,t,e,s,n,i,d="center")=>{const l=Math.abs(i)>Math.abs(n);if(l&&t.height*a.scale<=s)return null;const o=me({...a,x:a.x-n,y:a.y-i},t,e,s,d);return l&&o.y===a.y?null:o},Sa=a=>Math.exp(-a*.01),ge='button,[role="button"],a,input,textarea,select',Et=(a,t,e)=>{for(const s of a.composedPath()){if(s===t)return null;if(s instanceof Element&&s.matches(e))return s}return null},Ea=a=>{const{canvas:t,world:e,onClearSelection:s,onView:n,align:i="center",sizeWorld:d=!0}=a;let l={x:0,y:0,width:0,height:0},o={x:0,y:0,scale:1};const m=()=>({width:t.clientWidth||1e3,height:t.clientHeight||560}),p=()=>{const{width:c,height:g}=m();o=me(o,l,c,g,i),e.style.transform=`translate(${o.x}px, ${o.y}px) scale(${o.scale})`,e.style.setProperty("--dpk-zoom-inverse",String(1/o.scale)),e.style.setProperty("--dpk-zoom-scale",String(o.scale)),n?.(o)},f=()=>{const{width:c,height:g}=m(),k=l.width/1.2||1,x=l.height/1.2||1,C=G(Math.min((c-24)/k,(g-40)/x),ht,1);o={scale:C,x:ut(i,l.x,l.width,C,c),y:ut(i,l.y,l.height,C,g)},p()},S=c=>{const{width:g,height:k}=m(),x=he([c]),C=x.width/1.2||1,L=x.height/1.2||1;o={...o,scale:G(Math.min((g-24)/C,(k-40)/L),ht,pe)},o={...o,x:(g-x.width*o.scale)/2-x.x*o.scale,y:(k-x.height*o.scale)/2-x.y*o.scale},p()},O=()=>{const{width:c}=m(),g=l.width/1.2||1,k=G((c-24)/g,ht,1);o={scale:k,x:(c-l.width*k)/2-l.x*k,y:16},p()},lt=c=>{const{width:g,height:k}=m(),x=(C,L,Kt,Vt)=>Vt!==void 0?St-Vt:L<=Kt?ut(i,C,L,1,Kt):St-ue(C,L);o={scale:1,x:x(l.x,l.width,g,c?.x),y:x(l.y,l.height,k,c?.y)},p()},_=(c,g=m().width/2,k=m().height/2)=>{const x=o.scale,C=G(x*c,ht,pe);C!==x&&(o={scale:C,x:g-(g-o.x)*C/x,y:k-(k-o.y)*C/x},p())},Q=c=>{if(Et(c,t,".diagram-zoom")!==null)return;const g=c.deltaMode===1?16:c.deltaMode===2?m().height:1;if(c.ctrlKey||c.metaKey){c.preventDefault();const L=t.getBoundingClientRect();_(Sa(c.deltaY),c.clientX-L.left,c.clientY-L.top);return}const{width:k,height:x}=m(),C=Ca(o,l,k,x,c.deltaX*g,c.deltaY*g,i);C!==null&&(c.preventDefault(),o=C,p())},q=new Map;let A=null,P=!1;const U=()=>{const c=[...q.values()],g=c[0];if(!g)return null;const k=c[1];return k?{x:(g.x+k.x)/2,y:(g.y+k.y)/2,distance:Math.hypot(k.x-g.x,k.y-g.y)}:{...g,distance:0}},tt=c=>{q.size===0&&(P=!1);const g=Et(c,t,ge);c.button!==0||c.pointerType!=="touch"&&g!==null||(q.set(c.pointerId,{x:c.clientX,y:c.clientY}),A=U(),g===null&&t.setPointerCapture(c.pointerId),c.pointerType!=="touch"&&g===null&&(c.preventDefault(),t.focus({preventScroll:!0})))},Ht=c=>{if(!q.has(c.pointerId)||A===null)return;q.set(c.pointerId,{x:c.clientX,y:c.clientY});const g=U();if(g===null)return;const k=g.x-A.x,x=g.y-A.y;if((Math.abs(k)+Math.abs(x)>1||Math.abs(g.distance-A.distance)>1)&&(P=!0),g.distance>0&&A.distance>0){const C=t.getBoundingClientRect();_(Math.pow(g.distance/A.distance,.45),A.x-C.left,A.y-C.top)}o={...o,x:o.x+k,y:o.y+x},p(),A=g,t.classList.toggle("is-panning",P)},et=c=>{q.delete(c.pointerId),A=U(),!(q.size>0)&&(t.classList.remove("is-panning"),c.type==="pointercancel"&&(P=!1))},_t=c=>{P&&(c.preventDefault(),c.stopPropagation()),et(c)},Bt=c=>{if(P){c.preventDefault(),c.stopPropagation(),P=!1;return}!(c.target instanceof Element)||Et(c,t,ge)!==null||s()},Nt=c=>{if(c.target!==t)return;const g=30;if(c.key==="+"||c.key==="=")_(1.1);else if(c.key==="-")_(1/1.1);else if(c.key==="0")f();else if(c.key==="Escape"){if(s()===!1)return}else if(c.key==="ArrowLeft"||c.key==="ArrowRight"||c.key==="ArrowUp"||c.key==="ArrowDown")o={...o,x:o.x+(c.key==="ArrowLeft"?g:c.key==="ArrowRight"?-g:0),y:o.y+(c.key==="ArrowUp"?g:c.key==="ArrowDown"?-g:0)},p();else return;c.preventDefault()},Wt=c=>{const g=c.target instanceof HTMLElement?c.target:null;if(g===null||!c.composedPath().includes(e))return;const k=g.getBoundingClientRect(),x=t.getBoundingClientRect();let C=0,L=0;k.left<x.left+12?C=x.left+12-k.left:k.right>x.right-12&&(C=x.right-12-k.right),k.top<x.top+12?L=x.top+12-k.top:k.bottom>x.bottom-40&&(L=x.bottom-40-k.bottom),!(C===0&&L===0)&&(o={...o,x:o.x+C,y:o.y+L},p())};t.addEventListener("wheel",Q,{passive:!1}),t.addEventListener("pointerdown",tt),t.addEventListener("pointermove",Ht),t.addEventListener("pointerup",_t),t.addEventListener("pointercancel",et),t.addEventListener("lostpointercapture",et),t.addEventListener("click",Bt,!0),t.addEventListener("keydown",Nt),t.addEventListener("focusin",Wt);const Gt=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>p());return Gt?.observe(t),{setContent(c){l=he(c.width===0&&c.height===0?[]:[c]),d&&(e.style.width=`${c.width}px`,e.style.height=`${c.height}px`),p()},apply:p,fit:f,fitTo:S,fitWidth:O,reset:lt,zoom:_,view:()=>({...o}),destroy(){Gt?.disconnect(),t.removeEventListener("wheel",Q),t.removeEventListener("pointerdown",tt),t.removeEventListener("pointermove",Ht),t.removeEventListener("pointerup",_t),t.removeEventListener("pointercancel",et),t.removeEventListener("lostpointercapture",et),t.removeEventListener("click",Bt,!0),t.removeEventListener("keydown",Nt),t.removeEventListener("focusin",Wt)}}},za=["fit","fit-width","actual","none"];class Ta{#n;#t=null;#e=null;#s=!1;constructor(t,e){this.#n=e,t.addController(this)}hostDisconnected(){this.detach()}get attached(){return this.#t!==null}get view(){return this.#t?.view()??{x:0,y:0,scale:1}}attach(){this.detach();const t=this.#n.elements();if(t===null)return;const{canvas:e,world:s}=t;this.#t=Ea({canvas:e,world:s,align:this.#n.align(),sizeWorld:!1,onClearSelection:()=>this.#n.onDismiss(),onView:n=>this.#n.onView(n)}),this.#e=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>this.sync()),this.#e?.observe(s),this.sync()}detach(){this.#t?.destroy(),this.#t=null,this.#e?.disconnect(),this.#e=null}sync(){const t=this.#t,e=this.#n.elements()?.world;if(t===null||e===void 0)return;const s=this.#n.contentSize();e.style.width=s?`${s.width}px`:"",e.style.height=s?`${s.height}px`:"";const n=s?.width??e.offsetWidth,i=s?.height??e.offsetHeight;t.setContent({x:0,y:0,width:n,height:i}),!this.#s&&n>0&&i>0&&this.open()}open(){const t=this.#t;if(t===null)return;this.#s=!0;const e=this.#n.initial(),s=za.includes(e)?e:"fit";s==="fit"?t.fit():s==="fit-width"?t.fitWidth():s==="actual"&&t.reset()}fit(){this.#t?.fit()}fitWidth(){this.#t?.fitWidth()}fitTo(t){this.#t?.fitTo(t)}reset(t){this.#t?.reset(t)}zoom(t){this.#t?.zoom(t)}apply(){this.#t?.apply()}}const Aa=(a,t,e)=>a.some(s=>Math.abs(t)>Math.abs(e)?s.overflowX!=="auto"&&s.overflowX!=="scroll"||s.scrollWidth<=s.clientWidth?!1:t>0?s.scrollLeft+s.clientWidth<s.scrollWidth-1:t<0&&s.scrollLeft>0:s.overflowY!=="auto"&&s.overflowY!=="scroll"||s.scrollHeight<=s.clientHeight?!1:e>0?s.scrollTop+s.clientHeight<s.scrollHeight-1:e<0&&s.scrollTop>0),fe=160,zt=(a,t,e=fe)=>Math.max(e,Math.round(a+t)),Ma=(a,t,e,s=fe)=>{const n=e?96:24;return t==="ArrowDown"?zt(a,n,s):t==="ArrowUp"?zt(a,-n,s):null},be={kind:"idle"};class La{constructor(t,e){this.#e=null,this.#s=be,this.handlers={pointerdown:s=>{if(s.button!==0)return;s.preventDefault();const n=s.currentTarget;n instanceof Element&&n.setPointerCapture(s.pointerId),this.#s={kind:"dragging",pointerId:s.pointerId,startY:s.clientY,startHeight:this.#t()},this.#n.requestUpdate()},pointermove:s=>{const n=this.#s;n.kind!=="dragging"||n.pointerId!==s.pointerId||this.#a(zt(n.startHeight,s.clientY-n.startY))},pointerup:s=>this.#i(s),pointercancel:s=>this.#i(s),keydown:s=>{const n=Ma(this.#e??this.#t(),s.key,s.shiftKey);n!==null&&(s.preventDefault(),this.#a(n))},dblclick:()=>this.#a(null)},this.#n=t,this.#t=e,t.addController(this)}#n;#t;#e;#s;hostConnected(){}get height(){return this.#e}get dragging(){return this.#s.kind==="dragging"}#a(t){t!==this.#e&&(this.#e=t,this.#n.requestUpdate())}#i(t){const e=this.#s;e.kind!=="dragging"||e.pointerId!==t.pointerId||(this.#s=be,this.#n.requestUpdate())}}const Da=D({en:{maximize:"Maximize",restore:"Restore size",controls:"View controls",zoomOut:"Zoom out",fit:"Fit to view",zoomIn:"Zoom in",canvas:"Canvas. Arrow keys pan, plus and minus zoom, 0 fits the view.",resize:"Resize the panel",resizeHint:"Drag or use the up and down arrows to resize. Double-click restores the height."},ja:{maximize:"\u6700\u5927\u5316",restore:"\u5143\u306E\u30B5\u30A4\u30BA\u306B\u623B\u3059",controls:"\u8868\u793A\u306E\u64CD\u4F5C",zoomOut:"\u7E2E\u5C0F",fit:"\u5168\u4F53\u3092\u8868\u793A",zoomIn:"\u62E1\u5927",canvas:"\u30AD\u30E3\u30F3\u30D0\u30B9\u3002\u77E2\u5370\u30AD\u30FC\u3067\u30D1\u30F3\u3001\u30D7\u30E9\u30B9\u30FB\u30DE\u30A4\u30CA\u30B9\u3067\u30BA\u30FC\u30E0\u30010\u3067\u5168\u4F53\u8868\u793A\u3002",resize:"\u30D1\u30CD\u30EB\u306E\u9AD8\u3055\u3092\u5909\u3048\u308B",resizeHint:"\u30C9\u30E9\u30C3\u30B0\u3001\u307E\u305F\u306F\u4E0A\u4E0B\u306E\u77E2\u5370\u30AD\u30FC\u3067\u9AD8\u3055\u3092\u5909\u3048\u308B\u3002\u30C0\u30D6\u30EB\u30AF\u30EA\u30C3\u30AF\u3067\u5143\u306E\u9AD8\u3055\u306B\u623B\u3059\u3002"}});class ke extends z{static{this.styles=[M,K,T`
|
|
2
2
|
:host {
|
|
3
3
|
display: block;
|
|
4
4
|
color: var(--dpk-ink);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{ah as e,bA as t,bB as o,bC as n}from"./shared-
|
|
1
|
+
import{ah as e,bA as t,bB as o,bC as n}from"./shared-DlZJHHpN.js";import{a as d,c as i}from"./shared-C5wXNKl3.js";import{m as p}from"./shared-BblP0eEY.js";const r=e`
|
|
2
2
|
/*
|
|
3
3
|
* A chart: a framed plot with its head above it. CSS only — the author draws
|
|
4
4
|
* the SVG and this styles it, so a line chart reads as the kit's own: rules
|