wicked-crew 0.16.6 → 0.16.7
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/api/routes.d.ts +3 -0
- package/dist/api/routes.d.ts.map +1 -1
- package/dist/api/routes.js +84 -3
- package/dist/api/routes.js.map +1 -1
- package/dist/studio/assets/index-B-f_VEL2.css +32 -0
- package/dist/studio/assets/index-DhkxIK-0.js +845 -0
- package/dist/studio/editors/wicked-deck/editor.json +1 -1
- package/dist/studio/editors/wicked-deck/index.html +1 -1
- package/dist/studio/editors/wicked-doc/editor.json +1 -1
- package/dist/studio/editors/wicked-doc/index.html +1 -1
- package/dist/studio/editors/wicked-insights/editor.json +36 -0
- package/dist/studio/editors/wicked-insights/index.html +71 -0
- package/dist/studio/editors/wicked-page/editor.json +1 -1
- package/dist/studio/editors/wicked-page/index.html +1 -1
- package/dist/studio/editors/wicked-video/editor.json +1 -1
- package/dist/studio/editors/wicked-video/index.html +1 -1
- package/dist/studio/index.html +2 -2
- package/dist/studio/testid-inventory.json +2152 -282
- package/endpoint-manifest.json +1 -1
- package/package.json +3 -3
- package/dist/studio/assets/index-DB8oZVQV.css +0 -32
- package/dist/studio/assets/index-t_DEhtrK.js +0 -859
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="utf-8">
|
|
5
5
|
<meta name="wicked-editor" content="wicked-deck">
|
|
6
|
-
<meta name="wicked-editor-version" content="0.
|
|
6
|
+
<meta name="wicked-editor-version" content="0.13.0">
|
|
7
7
|
<title>Slides</title>
|
|
8
8
|
<style>
|
|
9
9
|
/* The editor's own chrome takes the host's tokens (`host.hello.theme` / `host.theme`), with plain
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="utf-8">
|
|
5
5
|
<meta name="wicked-editor" content="wicked-doc">
|
|
6
|
-
<meta name="wicked-editor-version" content="0.
|
|
6
|
+
<meta name="wicked-editor-version" content="0.13.0">
|
|
7
7
|
<title>Document</title>
|
|
8
8
|
<style>
|
|
9
9
|
/* The plugin's own chrome takes the host's tokens (`host.hello.theme` / `host.theme`), with plain
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "wicked-insights",
|
|
3
|
+
"title": "Run insights",
|
|
4
|
+
"version": "0.13.0",
|
|
5
|
+
"protocol": [
|
|
6
|
+
1,
|
|
7
|
+
2
|
|
8
|
+
],
|
|
9
|
+
"kinds": [
|
|
10
|
+
"run-insights"
|
|
11
|
+
],
|
|
12
|
+
"entry": "index.html",
|
|
13
|
+
"sizes": [
|
|
14
|
+
"inline",
|
|
15
|
+
"pane",
|
|
16
|
+
"full"
|
|
17
|
+
],
|
|
18
|
+
"permissions": [
|
|
19
|
+
{
|
|
20
|
+
"id": "artifact.read",
|
|
21
|
+
"why": "to read the run insights: every review of recent work, its recommendations and what happened to them, and the run metrics behind them"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"id": "selection.chip",
|
|
25
|
+
"why": "to point at the recommendation you pick, so you can accept or dismiss it"
|
|
26
|
+
}
|
|
27
|
+
],
|
|
28
|
+
"surfaces": {
|
|
29
|
+
"card": {
|
|
30
|
+
"interactive": true,
|
|
31
|
+
"aspect": "auto",
|
|
32
|
+
"actions": []
|
|
33
|
+
},
|
|
34
|
+
"full": {}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="wicked-editor" content="wicked-insights">
|
|
6
|
+
<meta name="wicked-editor-version" content="0.13.0">
|
|
7
|
+
<title>Run insights</title>
|
|
8
|
+
<style>
|
|
9
|
+
/* The host's tokens arrive in host.hello / host.theme; these are plain fallbacks. */
|
|
10
|
+
:root {
|
|
11
|
+
--surface-base: #ffffff; --surface-card: #f6f7f9; --ink-high: #0d1117; --ink-body: #2b333d; --ink-muted: #5b6673;
|
|
12
|
+
--border: #d5dae1; --accent: #224a5e; --status-pass: #1a7f4b; --status-fail: #b4232c; --status-warn: #9a6700;
|
|
13
|
+
--font-sans: system-ui, sans-serif;
|
|
14
|
+
}
|
|
15
|
+
html, body { margin: 0; }
|
|
16
|
+
body { font: 14px/1.45 var(--font-sans); color: var(--ink-body); background: var(--surface-base); }
|
|
17
|
+
[hidden] { display: none !important; }
|
|
18
|
+
main { max-width: 980px; margin: 0 auto; padding: 20px 20px 40px; display: flex; flex-direction: column; gap: 28px; }
|
|
19
|
+
h1 { margin: 0; font-size: 20px; color: var(--ink-high); }
|
|
20
|
+
h2 { margin: 0 0 10px; font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-muted); }
|
|
21
|
+
.lede { margin: 6px 0 0; color: var(--ink-body); }
|
|
22
|
+
.muted { color: var(--ink-muted); }
|
|
23
|
+
.note { margin: 6px 0 0; font-size: 13px; color: var(--ink-muted); }
|
|
24
|
+
.cols { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 20px; margin-top: 18px; }
|
|
25
|
+
@media (max-width: 720px) { .cols { grid-template-columns: minmax(0, 1fr); } main { padding: 14px 12px 32px; } }
|
|
26
|
+
ul.plain { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
|
|
27
|
+
.good { padding: 10px 12px; border-radius: 10px; background: var(--surface-card); }
|
|
28
|
+
.good::before { content: ''; display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--status-pass); margin-right: 8px; vertical-align: 1px; }
|
|
29
|
+
.rec { padding: 14px 16px; border-radius: 12px; background: var(--surface-card); border: 1px solid transparent; display: flex; flex-direction: column; gap: 10px; }
|
|
30
|
+
.rec:hover { border-color: var(--border); }
|
|
31
|
+
.rec[aria-current="true"] { border-color: var(--accent); }
|
|
32
|
+
.pick { font: inherit; color: inherit; background: none; border: 0; padding: 0; text-align: left; cursor: pointer; display: flex; flex-direction: column; gap: 4px; }
|
|
33
|
+
.pick:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; border-radius: 6px; }
|
|
34
|
+
.rec .t { font-weight: 600; font-size: 15px; color: var(--ink-high); }
|
|
35
|
+
.rec .say { color: var(--ink-body); }
|
|
36
|
+
.rec .effect { color: var(--ink-muted); }
|
|
37
|
+
.rec .row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; font-size: 12px; color: var(--ink-muted); }
|
|
38
|
+
.chip { display: inline-block; padding: 1px 9px; border-radius: 999px; font-size: 12px; font-weight: 600; background: color-mix(in srgb, var(--ink-muted) 16%, transparent); color: var(--ink-body); }
|
|
39
|
+
.chip[data-confidence="high"] { background: color-mix(in srgb, var(--status-pass) 20%, transparent); }
|
|
40
|
+
.chip[data-confidence="low"] { background: color-mix(in srgb, var(--ink-muted) 10%, transparent); color: var(--ink-muted); }
|
|
41
|
+
.verb { color: var(--ink-body); }
|
|
42
|
+
.pill { display: inline-block; padding: 1px 8px; border-radius: 999px; border: 1px solid var(--border); font-size: 12px; }
|
|
43
|
+
.pill[data-state="accepted"] { color: var(--status-pass); border-color: currentColor; }
|
|
44
|
+
.pill[data-state="dismissed"] { color: var(--ink-muted); }
|
|
45
|
+
details.why { font-size: 13px; color: var(--ink-muted); }
|
|
46
|
+
details.why summary { cursor: pointer; color: var(--ink-body); width: max-content; }
|
|
47
|
+
details.why summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
|
|
48
|
+
details.why ul { margin: 8px 0 0; padding-left: 18px; display: flex; flex-direction: column; gap: 4px; }
|
|
49
|
+
details.watching > ul { padding-left: 0; }
|
|
50
|
+
.footnote { margin-top: 8px; }
|
|
51
|
+
.trends { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 14px; }
|
|
52
|
+
.chart { padding: 12px; border-radius: 12px; background: var(--surface-card); }
|
|
53
|
+
.chart .t { font-weight: 600; color: var(--ink-high); font-size: 13px; }
|
|
54
|
+
.chart .v { font-size: 12px; color: var(--ink-muted); }
|
|
55
|
+
.chart svg { display: block; width: 100%; height: 96px; margin-top: 6px; }
|
|
56
|
+
.band { fill: color-mix(in srgb, var(--accent) 16%, transparent); }
|
|
57
|
+
.line { fill: none; stroke: var(--accent); stroke-width: 2; }
|
|
58
|
+
.pt { fill: var(--accent); }
|
|
59
|
+
.pt.small { fill: var(--ink-muted); opacity: .55; }
|
|
60
|
+
.axis { font-size: 10px; fill: var(--ink-muted); }
|
|
61
|
+
.history button { font: inherit; color: inherit; background: none; border: 0; padding: 8px 10px; border-radius: 8px; width: 100%; text-align: left; cursor: pointer; display: flex; justify-content: space-between; gap: 12px; }
|
|
62
|
+
.history button:hover { background: var(--surface-card); }
|
|
63
|
+
.history button[aria-current="true"] { background: var(--surface-card); font-weight: 600; }
|
|
64
|
+
.empty { padding: 16px; border-radius: 12px; background: var(--surface-card); }
|
|
65
|
+
</style>
|
|
66
|
+
</head>
|
|
67
|
+
<body>
|
|
68
|
+
<script>var wickedEditor=(function($){"use strict";var te=Object.defineProperty;var ne=($,y,A)=>y in $?te($,y,{enumerable:!0,configurable:!0,writable:!0,value:A}):$[y]=A;var U=($,y,A)=>ne($,typeof y!="symbol"?y+"":y,A);const y="wicked.editor",F=s=>typeof s=="object"&&s!==null&&!Array.isArray(s),G=["card","options","full"];function J(s){return s==="inline"?"card":s==="pane"?"options":"full"}function K(s){const e=F(s)?s:{},a=e.size==="inline"||e.size==="full"?e.size:"pane",c=e.protocol===2?2:1,p=c===2&&typeof e.tab=="string"?e.tab:null,u=c===2&&G.includes(e.surface)?e.surface:J(a),g=u==="options"&&p===null?"full":u,S=c===2&&(e.mode==="simple"||e.mode==="advanced")?e.mode:null;return{protocol:c,surface:g,tab:p,mode:S,size:a}}function Q(s,e,a){return{editor:s,version:e,protocol:[1,2],surfaces:a}}function X(s,e){const a=document.querySelector('meta[name="wicked-editor-version"]')?.getAttribute("content")??"0.0.0";parent.postMessage({p:y,v:1,type:"plugin.ready",payload:Q(s,a,e)},"*")}class Y{constructor(e,a){U(this,"revs",new Map);this.port=e,this.h=a}reply(e,a){this.port.postMessage({p:y,v:1,re:e,ok:!0,payload:a})}refuse(e,a,c){this.port.postMessage({p:y,v:1,re:e,ok:!1,error:{code:a,message:c}})}bump(e){const a=(this.revs.get(e)??0)+1;return this.revs.set(e,a),a}values(e,a){this.port.postMessage({p:y,v:1,type:"options.values",payload:{tab:e,rev:this.bump(e),values:a}})}height(e){this.port.postMessage({p:y,v:1,type:"ui.height",payload:{px:Math.round(e)}})}dispatch(e){const a=F(e.payload)?e.payload:{},c=typeof e.id=="string"?e.id:null;switch(e.type){case"host.surface":{const p=a.surface;return(p==="card"||p==="options"||p==="full")&&this.h.surface?.(p,a.mode==="simple"||a.mode==="advanced"?a.mode:null),!0}case"host.mode":{if(c===null)return!0;const p=a.mode;return p!=="simple"&&p!=="advanced"?(this.refuse(c,"bad_request","mode is simple or advanced"),!0):(this.reply(c,{mode:this.h.mode?.(p)??p}),!0)}case"host.action":{if(c===null)return!0;const p=a.id;return typeof p!="string"||this.h.action===void 0?(this.reply(c,{handled:!1}),!0):(Promise.resolve(this.h.action(p)).then(u=>this.reply(c,{handled:u.handled===!0,...typeof u.status=="string"?{status:u.status.slice(0,120)}:{}}),()=>this.reply(c,{handled:!1})),!0)}case"host.tab":return typeof a.tab=="string"&&this.h.tab?.(a.tab),!0;case"host.selection":return Array.isArray(a.anchors)&&this.h.selection?.(a.anchors),!0;case"options.changed":{if(c===null)return!0;const p=a.tab,u=a.id;return typeof p!="string"||typeof u!="string"||this.h.optionsChanged===void 0?(this.refuse(c,"unsupported","no controls here"),!0):(Promise.resolve(this.h.optionsChanged(p,u,a.value)).then(g=>this.reply(c,{applied:g.applied,rev:this.bump(p),values:g.values,...g.reason!==void 0?{reason:g.reason.slice(0,120)}:{}}),g=>this.refuse(c,"unavailable",g instanceof Error?g.message.slice(0,120):"failed")),!0)}default:return!1}}}const Z={card:{interactive:!0,aspect:"auto",actions:[]},full:{}},ee={spend:"What a typical run cost, review by review",pass_rate:"Share of finished runs that passed",override_rate:"Share of runs where a person overrode a stop",wait_on_people:"How long a typical run waited on a person",unresolved_rate:"Share of runs nobody closed"},W=["spend","pass_rate","override_rate","wait_on_people","unresolved_rate"];function _(s,e){return e===null||!Number.isFinite(e)?"none":s==="ratio"?`${Math.round(e*100)}%`:s==="minutes"?e>=120?`${(e/60).toFixed(1)} h`:`${Math.round(e)} min`:s==="usd"?`$${e.toFixed(2)}`:e.toFixed(e%1===0?0:1)}const x=s=>new Date(s).toLocaleDateString(void 0,{month:"short",day:"numeric"});function t(s,e={},a){const c=document.createElement(s);for(const[p,u]of Object.entries(e))c.setAttribute(p,u);return a!==void 0&&(c.textContent=a),c}function M(s,e){const a=document.createElementNS("http://www.w3.org/2000/svg",s);for(const[c,p]of Object.entries(e))a.setAttribute(c,p);return a}function H(s,e){const g=M("svg",{viewBox:"0 0 300 96",role:"img"}),S=s.flatMap(o=>[o.value,o.lo,o.hi]).filter(o=>o!==null&&Number.isFinite(o));if(s.length===0||S.length===0)return g;const k=e==="ratio"?0:Math.min(...S),V=e==="ratio"?1:Math.max(...S),j=V-k||1,P=o=>s.length===1?344/2:44+o*246/(s.length-1),N=o=>86-(o-k)/j*64;for(const[o,b]of[[V,12],[k,94]]){const w=M("text",{class:"axis",x:"0",y:String(b)});w.textContent=_(e,o),g.append(w)}const C=s.map((o,b)=>({p:o,i:b})).filter(({p:o})=>o.lo!==null&&o.hi!==null);if(C.length>1){const o=C.map(({p:w,i:T})=>`${P(T)},${N(w.hi)}`),b=[...C].reverse().map(({p:w,i:T})=>`${P(T)},${N(w.lo)}`);g.append(M("polygon",{class:"band",points:[...o,...b].join(" ")}))}const O=s.map((o,b)=>({p:o,i:b})).filter(({p:o})=>o.value!==null);O.length>1&&g.append(M("polyline",{class:"line",points:O.map(({p:o,i:b})=>`${P(b)},${N(o.value)}`).join(" ")}));for(const{p:o,i:b}of O){const w=M("circle",{class:o.small?"pt small":"pt",cx:String(P(b)),cy:String(N(o.value)),r:"3.5","data-small":String(o.small)}),T=M("title",{});T.textContent=`${x(o.at)}: ${_(e,o.value)} from ${o.n} run${o.n===1?"":"s"}${o.small?", too few to tell":""}`,w.append(T),g.append(w)}return g}function q(){const s=t("main",{"data-testid":"insights-plugin"});document.body.prepend(s);let e=null,a=null,c=1,p=[],u=null,g=0,S=0,k=null,V=0,j=!1;const P=new Map,N=(n,l)=>e?.postMessage({p:y,v:1,type:n,payload:l}),C=(n,l)=>new Promise(h=>{if(e===null||j){h({ok:!1,error:{code:"unavailable",message:"No host here."}});return}const d=`wi-${++V}`,f=setTimeout(()=>{P.delete(d),h({ok:!1,error:{code:"timeout",message:"The host has not answered."}})},1e4);P.set(d,{resolve:h,timer:f}),e.postMessage({p:y,v:1,type:n,id:d,payload:l})}),O=n=>{k=n,p.includes("selection.chip")&&N("selection.set",{anchors:n===null?[]:[{kind:"element",id:n}]}),w()};function o(n){const l=t("details",{class:"why","data-testid":"insights-why"});l.append(t("summary",{},"Why we think this"));const h=t("ul");for(const d of n.why)h.append(t("li",{},d));if(n.runs.length>0){const d=[...new Set(n.runs)].slice(0,5);h.append(t("li",{},`Runs behind it: ${d.join("; ")}${n.runs.length>d.length?`; and ${n.runs.length-d.length} more`:""}.`))}return h.append(t("li",{},`What would change our mind: ${n.changeMind}`)),l.append(h),l}function b(n){const l=t("section",{"data-testid":"insights-review","aria-label":"Review"}),h=t("div");if(h.append(t("h1",{},"Run insights")),h.append(t("p",{class:"lede","data-testid":"insights-summary"},n.status==="completed"||n.status==="running"?n.sentence:`${n.sentence} ${n.error??""}`.trim())),n.summary!==null){const r=t("details",{class:"why"});r.append(t("summary",{},"The reviewer’s reading")),r.append(t("p",{},n.summary)),h.append(r)}l.append(h);const d=t("div",{class:"cols"}),f=t("section",{"data-testid":"insights-better","aria-label":"What got better"});f.append(t("h2",{},"What got better"));const i=t("ul",{class:"plain"});n.improvements.length===0&&i.append(t("li",{class:"muted"},n.status==="completed"?"Nothing changed enough to call it better.":"—"));for(const r of n.improvements)i.append(t("li",{class:"good"},r));f.append(i),d.append(f);const m=t("section",{"data-testid":"insights-recommendations","aria-label":"Could improve"});m.append(t("h2",{},"Could improve"));const v=t("ul",{class:"plain"});n.recommendations.length===0&&v.append(t("li",{class:"muted"},n.status==="completed"?"Nothing to change.":"—"));for(const r of n.recommendations){const E=t("li"),L=t("article",{class:"rec","data-testid":"insights-rec","data-anchor":r.anchor,"data-state":r.state,"aria-current":String(k===r.anchor)}),R=t("button",{type:"button",class:"pick","data-testid":"insights-rec-pick","aria-pressed":String(k===r.anchor)});R.append(t("span",{class:"t"},r.title)),R.append(t("span",{class:"say"},r.say)),R.append(t("span",{class:"effect"},`If done: ${r.effect}`)),R.addEventListener("click",()=>O(k===r.anchor?null:r.anchor)),L.append(R);const D=t("div",{class:"row"});D.append(t("span",{class:"chip","data-confidence":r.confidence.toLowerCase(),"data-testid":"insights-confidence"},r.confidence)),D.append(t("span",{class:"verb"},r.verb)),r.state!=="new"&&D.append(t("span",{class:"pill","data-state":r.state},r.state==="dismissed"?`Dismissed${r.reason!==null?`: ${r.reason}`:""}`:"Accepted")),L.append(D),L.append(o(r)),E.append(L),v.append(E)}if(m.append(v),n.recommendations.some(r=>r.state==="new")&&m.append(t("p",{class:"note"},"Pick one to accept or dismiss it.")),d.append(m),l.append(d),n.watching.length>0||n.regressions.length>0){const r=t("details",{class:"why watching","data-testid":"insights-watching"});r.append(t("summary",{},`Also watching (${n.watching.length+n.regressions.length})`));const E=t("ul",{class:"plain"});for(const L of n.watching)E.append(t("li",{},L.title));for(const L of n.regressions)E.append(t("li",{class:"muted"},L));r.append(E),l.append(r)}return l}function w(){if(s.replaceChildren(),u===null){s.append(t("p",{class:"muted"},"Reading the reviews…"));return}if(u.reviews.length===0){const d=t("div",{class:"empty","data-testid":"insights-empty"});d.append(t("h1",{},"Run insights")),d.append(t("p",{class:"lede"},u.running?"The first review is running now.":"No review has run yet. The first one runs on its schedule, or start it from Build & settings.")),s.append(d);return}const n=u.reviews[Math.min(S,u.reviews.length-1)];s.append(b(n));const l=t("section",{"data-testid":"insights-trends","aria-label":"Trends"});l.append(t("h2",{},"Trends")),l.append(t("p",{class:"note"},"One dot per review. The shaded band is the likely range; grey dots had too few runs to tell."));const h=t("div",{class:"trends"});for(const d of W){const f=u.metrics.find(E=>E.id===d),i=u.trends.find(E=>E.metric===d);if(f===void 0||i===void 0)continue;const m=i.points[i.points.length-1],v=t("div",{class:"chart","data-testid":"insights-trend","data-metric":d});v.append(t("div",{class:"t"},f.label)),v.append(t("div",{class:"v"},ee[d]??f.label));const r=H(i.points,f.unit);r.setAttribute("aria-label",`${f.label} across ${i.points.length} reviews`),v.append(r),v.append(t("div",{class:"v"},m===void 0?"No reviews yet":m.small?`Latest: too few runs to tell (${m.n})`:`Latest: ${_(f.unit,m.value)}, from ${m.n} runs`)),h.append(v)}if(l.append(h),s.append(l),u.reviews.length>1){const d=t("section",{class:"history","data-testid":"insights-history","aria-label":"Earlier reviews"});d.append(t("h2",{},"Earlier reviews"));const f=t("ul",{class:"plain"});u.reviews.forEach((i,m)=>{const v=t("button",{type:"button","data-testid":"insights-history-row","aria-current":String(m===S)});v.append(t("span",{},`${x(i.launchedAt)} · ${i.status==="completed"?`${i.totals?.runs??0} runs`:i.status}`));const r=i.recommendations.filter(L=>L.state!=="new").length;v.append(t("span",{class:"muted"},`${i.recommendations.length} to improve, ${r} decided`)),v.addEventListener("click",()=>{S=m,k=null,O(null)});const E=t("li");E.append(v),f.append(E)}),d.append(f),s.append(d)}n.footnote!==null&&s.append(t("p",{class:"note footnote","data-testid":"insights-footnote"},n.footnote))}async function T(){const n=await C("artifact.read",{});if(!n.ok||n.payload===void 0){s.replaceChildren(t("p",{class:"muted"},`The reviews could not be read: ${n.error?.message??"no answer"}.`));return}const l=n.payload.content;l?.type==="run-insights"&&(u=l,g=typeof n.payload.version=="number"?n.payload.version:g,w())}const z=n=>{if(!(typeof n!="object"||n===null))for(const[l,h]of Object.entries(n))/^--[a-z0-9-]+$/.test(l)&&typeof h=="string"&&h.length<=200&&!/url\(/i.test(h)&&document.documentElement.style.setProperty(l,h)};function I(){j=!0;for(const{timer:n,resolve:l}of P.values())clearTimeout(n),l({ok:!1,error:{code:"unavailable",message:"Closed."}});P.clear(),e?.close(),window.removeEventListener("message",B)}function B(n){const l=n.data;if(e!==null||l?.p!==y||l.v!==1||l.type!=="host.hello"||!n.ports[0])return;const h=K(l.payload),d=l.payload;c=h.protocol,p=Array.isArray(d.grants)?d.grants.filter(f=>typeof f=="string"):[],z(d.theme),e=n.ports[0],a=new Y(e,{selection(f){const i=f.find(m=>typeof m=="object"&&m!==null&&m.kind==="element");k=typeof i?.id=="string"?i.id:null,w()}}),e.onmessage=f=>{const i=f.data;if(i?.p!==y||i.v!==1)return;if(typeof i.re=="string"){const v=P.get(i.re);if(v===void 0)return;clearTimeout(v.timer),P.delete(i.re),v.resolve({ok:i.ok===!0,...i.payload!==void 0?{payload:i.payload}:{},...i.error===void 0?{}:{error:i.error}});return}if(c===2&&a?.dispatch(i))return;const m=i.payload??{};switch(i.type){case"host.ping":i.id&&e?.postMessage({p:y,v:1,re:i.id,ok:!0,payload:{}});break;case"host.theme":z(m.theme);break;case"artifact.changed":(typeof m.head!="number"||m.head>g)&&T();break;case"selection.cleared":k=null,w();break;case"host.teardown":I();break}},e.start(),w(),T()}window.addEventListener("message",B),window.addEventListener("pagehide",I,{once:!0}),w(),X("wicked-insights",Z)}return typeof window<"u"&&document.querySelector('meta[name="wicked-editor"][content="wicked-insights"]')!==null&&q(),$.TREND_METRICS=W,$.formatMetric=_,$.start=q,$.trendSvg=H,Object.defineProperty($,Symbol.toStringTag,{value:"Module"}),$})({});
|
|
69
|
+
</script>
|
|
70
|
+
</body>
|
|
71
|
+
</html>
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="utf-8">
|
|
5
5
|
<meta name="wicked-editor" content="wicked-page">
|
|
6
|
-
<meta name="wicked-editor-version" content="0.
|
|
6
|
+
<meta name="wicked-editor-version" content="0.13.0">
|
|
7
7
|
<title>Document</title>
|
|
8
8
|
<style>
|
|
9
9
|
/* The plugin's own chrome takes the host's tokens (`host.hello.theme` / `host.theme`), with plain
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<!doctype html>
|
|
2
2
|
<html lang="en"><head><meta charset="utf-8">
|
|
3
3
|
<meta name="wicked-editor" content="wicked-video">
|
|
4
|
-
<meta name="wicked-editor-version" content="0.
|
|
4
|
+
<meta name="wicked-editor-version" content="0.13.0">
|
|
5
5
|
<title>Video</title>
|
|
6
6
|
<style>
|
|
7
7
|
:root{--surface-base:#fff;--surface-card:#f6f7f9;--surface-raised:#fff;--ink-high:#0d1117;--ink-body:#2b333d;--ink-muted:#5b6673;--border:#d5dae1;--accent:#224a5e;--font-sans:system-ui,sans-serif}
|
package/dist/studio/index.html
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<title>wicked-studio</title>
|
|
7
|
-
<script type="module" crossorigin src="/assets/index-
|
|
8
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
7
|
+
<script type="module" crossorigin src="/assets/index-DhkxIK-0.js"></script>
|
|
8
|
+
<link rel="stylesheet" crossorigin href="/assets/index-B-f_VEL2.css">
|
|
9
9
|
</head>
|
|
10
10
|
<body>
|
|
11
11
|
<div id="root"></div>
|