@uniformdev/context-devtools 13.0.1-alpha.133 → 13.0.1-alpha.271

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/esm/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import{jsx as e}from"@emotion/react";import*as y from"react";import{css as x}from"@emotion/react";import{createContext as mt,useContext as ut}from"react";var ve=mt({settings:{},saveSettings:()=>null}),_=()=>ut(ve),he=({children:t,settings:r,saveSettings:n})=>e(ve.Provider,{value:{settings:r,saveSettings:n}},t);var gt=({route:t,children:r,className:n})=>{let{settings:o,saveSettings:i}=_();return e("a",{href:"",className:n,onClick:a=>{a.preventDefault(),i({...o,route:t})}},r)},H=gt;var ft=[{title:"Dimensions",href:"/dimensions",icon:`<svg
1
+ import{jsx as e}from"@emotion/react";import*as y from"react";import{css as x}from"@emotion/react";import{createContext as mt,useContext as ut}from"react";var he=mt({settings:{},saveSettings:()=>null}),_=()=>ut(he),be=({children:t,settings:r,saveSettings:n})=>e(he.Provider,{value:{settings:r,saveSettings:n}},t);var gt=({route:t,children:r,className:n})=>{let{settings:o,saveSettings:i}=_();return e("a",{href:"",className:n,onClick:a=>{a.preventDefault(),i({...o,route:t})}},r)},H=gt;var ft=[{title:"Dimensions",href:"/dimensions",icon:`<svg
2
2
  width="24"
3
3
  height="24"
4
4
  viewBox="0 0 24 24"
@@ -40,7 +40,7 @@ import{jsx as e}from"@emotion/react";import*as y from"react";import{css as x}fro
40
40
  <g>
41
41
  <path d="M84.55,116.66c2.49,0,4.53-1.99,4.53-4.41V88.08c1.55-13.03,7.27-9.16,14-5.13 c16.27,9.74,27.08-15.88,13.93-23.78c-10.32-6.2-14.79,4.46-22.35,3.36c-2.92-0.43-4.95-3.5-5.59-8.17V36.9 c0-2.43-2.04-4.41-4.53-4.41H63.73c-17.18-2.12-1.93-11.37-1.93-19.98C61.81,5.6,55.38,0,47.45,0c-7.92,0-15.19,5.6-15.19,12.51 c0,8.12,15.78,17.86-1.64,19.98H4.53C2.04,32.49,0,34.47,0,36.9v17.42c1.33,7.43,6.49,9.15,13.1,4.25 c2.23-1.66,5.99-3.59,8.71-3.59c7.09,0,12.85,6.25,12.85,13.96S28.91,84.6,21.81,84.6c-2.53,0-4.89-0.8-6.89-2.19 c0,0.59-12.4-10.85-14.92,3.15v26.71c0,2.43,2.04,4.41,4.53,4.41c13.97,0,27.92,0,41.88-0.01c0.55-2.55-1.24-5.47-2.92-8 c-13.22-19.93,38.21-21.92,24.99,0.62c-0.65,1.11-1.3,2.19-1.8,3.24c-0.63,1.31-1.05,2.91-0.96,4.14L84.55,116.66L84.55,116.66z"></path>
42
42
  </g>
43
- </svg>`,be=({...t})=>{var o,i;let r=a=>{var p;let l="active";return!((p=t.settings)!=null&&p.route)&&a==="/dimensions"||t.settings.route===a?l:""},n=Boolean(typeof window!="undefined"&&((i=(o=window.chrome)==null?void 0:o.runtime)==null?void 0:i.id));return e("nav",{css:x`
43
+ </svg>`,ye=({...t})=>{var o,i;let r=a=>{var p;let l="active";return!((p=t.settings)!=null&&p.route)&&a==="/dimensions"||t.settings.route===a?l:""},n=Boolean(typeof window!="undefined"&&((i=(o=window.chrome)==null?void 0:o.runtime)==null?void 0:i.id));return e("nav",{css:x`
44
44
  background: var(--brand-secondary-1);
45
45
  padding: var(--spacing-base);
46
46
  min-width: 200px;
@@ -109,7 +109,7 @@ import{jsx as e}from"@emotion/react";import*as y from"react";import{css as x}fro
109
109
  `,rel:"noreferrer"},e("i",{css:x`
110
110
  align-items: center;
111
111
  display: flex;
112
- `,dangerouslySetInnerHTML:{__html:vt}}),"Install Chrome Extension"))};var ye=()=>e("article",null,e("h1",null,"Something when wrong"),e("p",null,"We could not find the page you're looking for."));import*as ne from"react";import{css as M}from"@emotion/react";import*as G from"react";var Ce=M({willChange:"height"}),ht=M`
112
+ `,dangerouslySetInnerHTML:{__html:vt}}),"Install Chrome Extension"))};var Ce=()=>e("article",null,e("h1",null,"Something when wrong"),e("p",null,"We could not find the page you're looking for."));import*as ne from"react";import{css as M}from"@emotion/react";import*as G from"react";var we=M({willChange:"height"}),ht=M`
113
113
  border-bottom: 2px solid var(--brand-secondary-1);
114
114
  font-size: var(--font-base);
115
115
  margin: 0;
@@ -127,7 +127,7 @@ import{jsx as e}from"@emotion/react";import*as y from"react";import{css as x}fro
127
127
  align-self: center;
128
128
  `,Ct=M`
129
129
  transform: rotate(-180deg);
130
- `,$=({children:t})=>e("div",{css:[Ce]},t),K=({title:t,children:r})=>{let[n,o]=G.useState(!1),i=t.split(" ").join("-").toLocaleLowerCase();return e(G.Fragment,null,e("h3",{css:ht},e("button",{"aria-expanded":n,css:bt,title:t,id:i,"aria-controls":`${i}-section`,onClick:()=>o(a=>!a),type:"button"},t,e("i",{css:[yt,n?Ct:void 0]},e("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e("path",{d:"M6.34317 7.75732L4.92896 9.17154L12 16.2426L19.0711 9.17157L17.6569 7.75735L12 13.4142L6.34317 7.75732Z",fill:"currentColor"}))))),e("div",{id:`${i}-section`,css:[Ce,M`
130
+ `,$=({children:t})=>e("div",{css:[we]},t),K=({title:t,children:r})=>{let[n,o]=G.useState(!1),i=t.split(" ").join("-").toLocaleLowerCase();return e(G.Fragment,null,e("h3",{css:ht},e("button",{"aria-expanded":n,css:bt,title:t,id:i,"aria-controls":`${i}-section`,onClick:()=>o(a=>!a),type:"button"},t,e("i",{css:[yt,n?Ct:void 0]},e("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e("path",{d:"M6.34317 7.75732L4.92896 9.17154L12 16.2426L19.0711 9.17157L17.6569 7.75735L12 13.4142L6.34317 7.75732Z",fill:"currentColor"}))))),e("div",{id:`${i}-section`,css:[we,M`
131
131
  padding: var(--spacing-sm) 0;
132
132
  `],role:"region","aria-labelledby":i},n?r:null))};import{css as A}from"@emotion/react";var W=A`
133
133
  background-color: var(--gray-100);
@@ -137,7 +137,7 @@ import{jsx as e}from"@emotion/react";import*as y from"react";import{css as x}fro
137
137
  &:first-of-type {
138
138
  margin: 0 0 var(--spacing-base);
139
139
  }
140
- `,we=A`
140
+ `,ke=A`
141
141
  background: var(--gray-100)
142
142
  url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%0A%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M9 2C8.44771 2 8 2.44772 8 3V5C8 5.55228 8.44771 6 9 6C9.55229 6 10 5.55228 10 5V3C10 2.44772 9.55229 2 9 2ZM8 9H16V11C16 13.2091 14.2091 15 12 15C9.79086 15 8 13.2091 8 11V9ZM13 16.917C15.8377 16.441 18 13.973 18 11V7H6V11C6 13.973 8.16229 16.441 11 16.917V22C11 22.5523 11.4477 23 12 23C12.5523 23 13 22.5523 13 22V16.917ZM14 3C14 2.44772 14.4477 2 15 2C15.5523 2 16 2.44772 16 3V5C16 5.55228 15.5523 6 15 6C14.4477 6 14 5.55228 14 5V3Z' fill='%232ecdb4' /%3E%3C/svg%3E")
143
143
  no-repeat var(--spacing-sm) var(--spacing-base);
@@ -151,7 +151,7 @@ import{jsx as e}from"@emotion/react";import*as y from"react";import{css as x}fro
151
151
  color: var(--brand-secondary-1);
152
152
  margin: var(--spacing-xs) 0 0;
153
153
  font-size: var(--font-sm);
154
- `,ke=A`
154
+ `,Te=A`
155
155
  align-items: center;
156
156
  border: none;
157
157
  background: transparent
@@ -236,7 +236,7 @@ to {
236
236
  display: table;
237
237
  width: 100%;
238
238
  font-size: var(--font-sm);
239
- `},t),Te=({children:t})=>e("thead",{css:L`
239
+ `},t),Se=({children:t})=>e("thead",{css:L`
240
240
  background: var(--gray-50);
241
241
  text-align: left;
242
242
  & tr {
@@ -264,13 +264,13 @@ to {
264
264
  position: relative;
265
265
  `,Tt(n),St(t),r?L`
266
266
  border-left: 1px solid var(--gray-200);
267
- `:void 0]},o);import{css as ce}from"@emotion/react";var Se=ce`
267
+ `:void 0]},o);import{css as ce}from"@emotion/react";var De=ce`
268
268
  position: relative;
269
269
  display: inline-block;
270
270
  font-size: var(--font-base);
271
- `,De=ce`
272
- display: block;
273
271
  `,xe=ce`
272
+ display: block;
273
+ `,Le=ce`
274
274
  position: absolute;
275
275
  width: 6px;
276
276
  height: 6px;
@@ -288,16 +288,16 @@ to {
288
288
  <path d="M11.9999 5.05762H8.3999V6.2576H11.9999V5.05762Z" fill="#828282"/>
289
289
  <path d="M8.3999 7.45752H11.9999V8.6575H8.3999V7.45752Z" fill="#828282"/>
290
290
  <path d="M11.9999 2.65771H8.3999V3.8577H11.9999V2.65771Z" fill="#828282"/>
291
- </svg>`,Le=`<svg width="15" height="11" viewBox="0 0 15 11" fill="none" xmlns="http://www.w3.org/2000/svg">
291
+ </svg>`,Oe=`<svg width="15" height="11" viewBox="0 0 15 11" fill="none" xmlns="http://www.w3.org/2000/svg">
292
292
  <path fill-rule="evenodd" clip-rule="evenodd" d="M7.113 3.12646C8.16729 3.12646 9.02195 3.98113 9.02195 5.03541C9.02195 5.86658 8.49075 6.57368 7.74932 6.83573V10.1259H6.47669V6.83573C5.73526 6.57368 5.20405 5.86658 5.20405 5.03541C5.20405 3.98113 6.05872 3.12646 7.113 3.12646ZM7.113 4.39909C7.46443 4.39909 7.74932 4.68398 7.74932 5.03541C7.74932 5.38684 7.46443 5.67172 7.113 5.67172C6.76158 5.67172 6.47669 5.38684 6.47669 5.03541C6.47669 4.68398 6.76158 4.39909 7.113 4.39909Z" fill="#828282"/>
293
293
  <path d="M3.96336 1.88578C3.15733 2.69183 2.65879 3.80537 2.65879 5.03535C2.65879 6.42093 3.29145 7.65875 4.28366 8.47569L5.1895 7.56984C4.42501 6.98876 3.93142 6.06969 3.93142 5.03535C3.93142 4.1568 4.28752 3.36142 4.86325 2.78567L3.96336 1.88578Z" fill="#828282"/>
294
294
  <path d="M9.36269 2.7856C9.93846 3.36136 10.2946 4.15676 10.2946 5.03535C10.2946 6.06973 9.80096 6.98882 9.03643 7.5699L9.94228 8.47575C10.9345 7.65881 11.5672 6.42096 11.5672 5.03535C11.5672 3.80533 11.0687 2.69177 10.2626 1.88571L9.36269 2.7856Z" fill="#828282"/>
295
295
  <path d="M0.113525 5.03534C0.113525 3.10251 0.896953 1.35266 2.16359 0.0860049L3.06347 0.985892C2.02714 2.02224 1.38616 3.45394 1.38616 5.03534C1.38616 6.61674 2.02714 8.04844 3.06347 9.08479L2.16358 9.98468C0.89695 8.71802 0.113525 6.96817 0.113525 5.03534Z" fill="#828282"/>
296
296
  <path d="M12.0624 9.98474C13.329 8.71809 14.1125 6.96821 14.1125 5.03534C14.1125 3.10248 13.329 1.3526 12.0624 0.0859375L11.1625 0.985824C12.1988 2.02218 12.8398 3.4539 12.8398 5.03534C12.8398 6.61678 12.1988 8.0485 11.1625 9.08486L12.0624 9.98474Z" fill="#828282"/>
297
- </svg>`,Oe=({type:t})=>{let r="";switch(t){case"Audience":r=xt;break;case"Signal":r=Le;break;case"Intent":r=Le;break;case"Enrichment":r=Lt;break}return e("i",{css:Dt`
297
+ </svg>`,Ie=({type:t})=>{let r="";switch(t){case"Audience":r=xt;break;case"Signal":r=Oe;break;case"Intent":r=Oe;break;case"Enrichment":r=Lt;break}return e("i",{css:Dt`
298
298
  align-items: center;
299
299
  display: inline-block;
300
- `,dangerouslySetInnerHTML:{__html:r}})};var Ot=({dimensionIndex:t,dimensions:r,disableEditOverride:n,onClick:o,preemptiveOverrides:i})=>{var p;let{settings:a}=_(),l=(p=i!=null?i:a.scoreOverrides)!=null?p:{};return e(j,null,e(ee,null,Object.entries(r).sort(([m],[u])=>m.localeCompare(u)).map(([m,u])=>{var C;let{dim:s,name:c,type:d,category:v}=(C=t[m])!=null?C:{name:m,dim:m,type:void 0,category:void 0},h=l[s];return e(B,{key:s},e(I,null,h!==void 0?e("s",{css:De},h.initial):null,e("b",{css:Se},u,h!==void 0&&e("i",{css:xe}))),e(I,null,e("div",{onClick:()=>o==null?void 0:o(s),css:o?{cursor:"pointer"}:void 0},e("span",{css:b.divider,role:"presentation"}),e("div",null,e(Oe,{type:d})," ",d),e("strong",null,v?`${v}:`:""," ",c))),e(I,{alignment:"right",color:"light"},h!==void 0&&!n?e(H,{route:`/overrides/${s}`},"Edit override"):null))})))},R=Ot;async function oe({actions:t,saveSettings:r,scores:n,settings:o}){var p,m;let i=(p=o.scoreOverrides)!=null?p:{},a={...i},l=[];for(let u of Object.keys(i)){let s=i==null?void 0:i[u];delete a[u],l.push({type:"modscoreS",data:{dimension:u,delta:s.initial-((m=n[u])!=null?m:0)}})}await r({...o,scoreOverrides:a}),await t.rawUpdate(l)}async function Ie({quirk:t,settings:r,saveSettings:n,actions:o}){var l;let i=(l=r.quirkOverrides)==null?void 0:l[t];if(!i)return;let a={...r.quirkOverrides};delete a[t],await n({...r,quirkOverrides:a}),await o.rawUpdate([{type:"setquirk",data:{key:t,value:i.initial}}])}import{Button as Ae}from"@uniformdev/design-system";import*as Me from"react";import{css as Q}from"@emotion/react";var Re=Q`
300
+ `,dangerouslySetInnerHTML:{__html:r}})};var Ot=({dimensionIndex:t,dimensions:r,disableEditOverride:n,onClick:o,preemptiveOverrides:i})=>{var p;let{settings:a}=_(),l=(p=i!=null?i:a.scoreOverrides)!=null?p:{};return e(j,null,e(ee,null,Object.entries(r).sort(([m],[u])=>m.localeCompare(u)).map(([m,u])=>{var C;let{dim:s,name:c,type:d,category:v}=(C=t[m])!=null?C:{name:m,dim:m,type:void 0,category:void 0},h=l[s];return e(B,{key:s},e(I,null,h!==void 0?e("s",{css:xe},h.initial):null,e("b",{css:De},u,h!==void 0&&e("i",{css:Le}))),e(I,null,e("div",{onClick:()=>o==null?void 0:o(s),css:o?{cursor:"pointer"}:void 0},e("span",{css:b.divider,role:"presentation"}),e("div",null,e(Ie,{type:d})," ",d),e("strong",null,v?`${v}:`:""," ",c))),e(I,{alignment:"right",color:"light"},h!==void 0&&!n?e(H,{route:`/overrides/${s}`},"Edit override"):null))})))},R=Ot;async function oe({actions:t,saveSettings:r,scores:n,settings:o}){var p,m;let i=(p=o.scoreOverrides)!=null?p:{},a={...i},l=[];for(let u of Object.keys(i)){let s=i==null?void 0:i[u];delete a[u],l.push({type:"modscoreS",data:{dimension:u,delta:s.initial-((m=n[u])!=null?m:0)}})}await r({...o,scoreOverrides:a}),await t.rawUpdate(l)}async function Re({quirk:t,settings:r,saveSettings:n,actions:o}){var l;let i=(l=r.quirkOverrides)==null?void 0:l[t];if(!i)return;let a={...r.quirkOverrides};delete a[t],await n({...r,quirkOverrides:a}),await o.rawUpdate([{type:"setquirk",data:{key:t,value:i.initial}}])}import{Button as Ee}from"@uniformdev/design-system";import*as Ae from"react";import{css as Q}from"@emotion/react";var Ve=Q`
301
301
  position: relative;
302
302
  display: inline-block;
303
303
  margin-right: var(--spacing-sm);
@@ -305,7 +305,7 @@ to {
305
305
  vertical-align: middle;
306
306
  user-select: none;
307
307
  width: var(--spacing-xl);
308
- `,Ve=Q`
308
+ `,Pe=Q`
309
309
  appearance: none;
310
310
  border-radius: var(--rounded-full);
311
311
  background-color: var(--white);
@@ -336,7 +336,7 @@ to {
336
336
  background-color: var(--brand-primary-1);
337
337
  }
338
338
  }
339
- `,Pe=Q`
339
+ `,He=Q`
340
340
  border-radius: var(--rounded-full);
341
341
  background-color: var(--gray-300);
342
342
  cursor: pointer;
@@ -344,7 +344,7 @@ to {
344
344
  overflow: hidden;
345
345
  width: var(--spacing-xl);
346
346
  height: var(--spacing-md);
347
- `,He=Q`
347
+ `,Me=Q`
348
348
  color: var(--brand-secondary-1);
349
349
  font-weight: var(--font-bold);
350
350
  line-height: 1.25rem;
@@ -353,7 +353,7 @@ to {
353
353
  color: var(--gray-700);
354
354
  font-size: var(--font-sm);
355
355
  margin: var(--spacing-sm) 0;
356
- `;var q=({label:t,infoText:r,toggleText:n,...o})=>{let i=()=>r&&n?o.checked?e("p",{css:re},n):e("p",{css:re},r):r?e("p",{css:re},r):null;return e(Me.Fragment,null,e("div",{css:Re},e("input",{type:"checkbox",css:Ve,...o,className:o.className}),e("label",{htmlFor:o.id,css:Pe})),e("label",{htmlFor:o.id,css:He},t),i())};var Ee=({dimensionIndex:{index:t},state:{scores:r,data:n},actions:o,saveSettings:i,settings:a})=>{let l=ne.useMemo(()=>{let s={};return Object.keys(t).filter(c=>!r[c]).map(c=>{s[t[c].dim]=0}),s},[r,t]),p=Object.keys(r).length,m=p+Object.keys(l).length,u=()=>{o.rawUpdate([{type:"setcontrol",data:!n.controlGroup}])};return e(ne.Fragment,null,e("article",{css:b.page},e("div",{css:b.headingGroup},e("h2",{css:b.title},"Dimensions",e("small",null,p," active of ",m)),e("div",{css:b.reset},e(Ae,{buttonType:"ghost",onClick:()=>oe({actions:o,saveSettings:i,scores:r,settings:a}).then(o.forget)},"clear all dimensions")),e(q,{name:"controlGroup",label:"Control Group",onChange:u,checked:n.controlGroup})),p>0?e(R,{dimensionIndex:t,dimensions:r}):e(E,{title:n.controlGroup?"In control group":"No active dimensions",text:n.controlGroup?"You are part of the personalization control group. While in the control group you do not have dimension scores and will not see personalized content. A/B tests will still run.":"You do not have score in any dimensions yet.",buttonGroup:n.controlGroup?e(Ae,{buttonType:"secondary",onClick:u},"Exit control group"):null}),e($,null,e(K,{title:`Inactive Dimensions (${Object.keys(l).length})`},e(R,{dimensionIndex:t,dimensions:l})))))};import*as Fe from"react";import{css as It}from"@emotion/react";function de({onClick:t}){return e("button",{css:It`
356
+ `;var q=({label:t,infoText:r,toggleText:n,...o})=>{let i=()=>r&&n?o.checked?e("p",{css:re},n):e("p",{css:re},r):r?e("p",{css:re},r):null;return e(Ae.Fragment,null,e("div",{css:Ve},e("input",{type:"checkbox",css:Pe,...o,className:o.className}),e("label",{htmlFor:o.id,css:He})),e("label",{htmlFor:o.id,css:Me},t),i())};var ze=({dimensionIndex:{index:t},state:{scores:r,data:n},actions:o,saveSettings:i,settings:a})=>{let l=ne.useMemo(()=>{let s={};return Object.keys(t).filter(c=>!r[c]).map(c=>{s[t[c].dim]=0}),s},[r,t]),p=Object.keys(r).length,m=p+Object.keys(l).length,u=()=>{o.rawUpdate([{type:"setcontrol",data:!n.controlGroup}])};return e(ne.Fragment,null,e("article",{css:b.page},e("div",{css:b.headingGroup},e("h2",{css:b.title},"Dimensions",e("small",null,p," active of ",m)),e("div",{css:b.reset},e(Ee,{buttonType:"ghost",onClick:()=>oe({actions:o,saveSettings:i,scores:r,settings:a}).then(o.forget)},"clear all dimensions")),e(q,{name:"controlGroup",label:"Control Group",onChange:u,checked:n.controlGroup})),p>0?e(R,{dimensionIndex:t,dimensions:r}):e(E,{title:n.controlGroup?"In control group":"No active dimensions",text:n.controlGroup?"You are part of the personalization control group. While in the control group you do not have dimension scores and will not see personalized content. A/B tests will still run.":"You do not have score in any dimensions yet.",buttonGroup:n.controlGroup?e(Ee,{buttonType:"secondary",onClick:u},"Exit control group"):null}),e($,null,e(K,{title:`Inactive Dimensions (${Object.keys(l).length})`},e(R,{dimensionIndex:t,dimensions:l})))))};import*as Be from"react";import{css as It}from"@emotion/react";function de({onClick:t}){return e("button",{css:It`
357
357
  width: 3.5rem;
358
358
  height: 3.5rem;
359
359
  display: flex;
@@ -366,7 +366,7 @@ to {
366
366
  svg {
367
367
  color: var(--red-button);
368
368
  }
369
- `,onClick:t,"aria-label":"Add new override",className:"text-secondary shadow-xl rounded-full flex items-center bg-secondary","data-test-id":"add-new-overrides-button"},e("svg",{xmlns:"http://www.w3.org/2000/svg",width:"66",height:"66",viewBox:"0 0 66 66"},e("g",{fill:"none",fillRule:"evenodd"},e("circle",{cx:"33",cy:"33",r:"33",fill:"currentColor"}),e("g",{fill:"#FFF",transform:"translate(19 19)"},e("rect",{width:"4",height:"28",x:"12",rx:"2"}),e("path",{d:"M14,0 C15.1045695,-2.02906125e-16 16,0.8954305 16,2 L16,26 C16,27.1045695 15.1045695,28 14,28 C12.8954305,28 12,27.1045695 12,26 L12,2 C12,0.8954305 12.8954305,2.02906125e-16 14,0 Z",transform:"rotate(90 14 14)"})))))}import{Button as ze}from"@uniformdev/design-system";var Be=({dimensionIndex:{index:t},state:{data:r,scores:n},actions:o,settings:i,saveSettings:a})=>{var c;let l=(c=i.scoreOverrides)!=null?c:{},p=Object.keys(l).length,m=d=>(d.preventDefault(),a({...i,route:"/overrides/add"})),u=()=>{o.rawUpdate([{type:"setcontrol",data:!r.controlGroup}])},s={};return Object.entries(n).map(([d,v])=>{l[d]!==void 0&&(s[d]=v)}),e(Fe.Fragment,null,e("article",{css:b.page},e("div",{css:b.headingGroup},e("h2",{css:b.title},"What if?"),e("div",{css:b.reset},e(ze,{buttonType:"ghost",onClick:()=>oe({actions:o,settings:i,saveSettings:a,scores:n})},"delete all overrides")),e(de,{onClick:m})),e("p",null,"Override dimension scores to test personalization"),p>0?e(R,{dimensionIndex:t,dimensions:s,onClick:d=>a({...i,route:`/overrides/${d}`})}):e(E,{title:r.controlGroup?"In control group":"No overrides",text:r.controlGroup?"You are part of the personalization control group. While in the control group you do not have dimension scores and will not see personalized content. A/B tests will still run.":"You do not have any dimension overrides yet.",buttonGroup:r.controlGroup?e(ze,{buttonType:"secondary",onClick:u},"Exit control group"):null})))};import{Field as Ke,Form as Ft,Formik as Bt}from"formik";import*as z from"yup";import{css as V}from"@emotion/react";var Qe=V`
369
+ `,onClick:t,"aria-label":"Add new override",className:"text-secondary shadow-xl rounded-full flex items-center bg-secondary","data-test-id":"add-new-overrides-button"},e("svg",{xmlns:"http://www.w3.org/2000/svg",width:"66",height:"66",viewBox:"0 0 66 66"},e("g",{fill:"none",fillRule:"evenodd"},e("circle",{cx:"33",cy:"33",r:"33",fill:"currentColor"}),e("g",{fill:"#FFF",transform:"translate(19 19)"},e("rect",{width:"4",height:"28",x:"12",rx:"2"}),e("path",{d:"M14,0 C15.1045695,-2.02906125e-16 16,0.8954305 16,2 L16,26 C16,27.1045695 15.1045695,28 14,28 C12.8954305,28 12,27.1045695 12,26 L12,2 C12,0.8954305 12.8954305,2.02906125e-16 14,0 Z",transform:"rotate(90 14 14)"})))))}import{Button as Fe}from"@uniformdev/design-system";var Qe=({dimensionIndex:{index:t},state:{data:r,scores:n},actions:o,settings:i,saveSettings:a})=>{var c;let l=(c=i.scoreOverrides)!=null?c:{},p=Object.keys(l).length,m=d=>(d.preventDefault(),a({...i,route:"/overrides/add"})),u=()=>{o.rawUpdate([{type:"setcontrol",data:!r.controlGroup}])},s={};return Object.entries(n).map(([d,v])=>{l[d]!==void 0&&(s[d]=v)}),e(Be.Fragment,null,e("article",{css:b.page},e("div",{css:b.headingGroup},e("h2",{css:b.title},"What if?"),e("div",{css:b.reset},e(Fe,{buttonType:"ghost",onClick:()=>oe({actions:o,settings:i,saveSettings:a,scores:n})},"delete all overrides")),e(de,{onClick:m})),e("p",null,"Override dimension scores to test personalization"),p>0?e(R,{dimensionIndex:t,dimensions:s,onClick:d=>a({...i,route:`/overrides/${d}`})}):e(E,{title:r.controlGroup?"In control group":"No overrides",text:r.controlGroup?"You are part of the personalization control group. While in the control group you do not have dimension scores and will not see personalized content. A/B tests will still run.":"You do not have any dimension overrides yet.",buttonGroup:r.controlGroup?e(Fe,{buttonType:"secondary",onClick:u},"Exit control group"):null})))};import{Field as Ke,Form as Ft,Formik as Bt}from"formik";import*as z from"yup";import{css as V}from"@emotion/react";var qe=V`
370
370
  background: var(--white);
371
371
  border: 1px solid var(--gray-500);
372
372
  border-radius: var(--rounded-base);
@@ -379,12 +379,12 @@ to {
379
379
  }
380
380
  `,wr=V`
381
381
  margin: var(--spacing-base) 0;
382
- `,qe=V`
382
+ `,Ne=V`
383
383
  color: var(--brand-secondary-1);
384
384
  display: flex;
385
385
  flex-direction: column;
386
386
  margin: 0 0 var(--spacing-sm);
387
- `,Ne=V`
387
+ `,Ze=V`
388
388
  color: var(--brand-secondary-1);
389
389
  display: block;
390
390
  flex: 1 100%;
@@ -396,7 +396,7 @@ to {
396
396
  `,Tr=V`
397
397
  color: var(--brand-secondary-5);
398
398
  display: block;
399
- `,Ze=V`
399
+ `,Ue=V`
400
400
  flex-direction: row;
401
401
  flex-wrap: wrap;
402
402
 
@@ -464,7 +464,7 @@ to {
464
464
  flex: 1 0 20%;
465
465
  padding: 10px;
466
466
  }
467
- `;import{Caption as Rt,ErrorMessage as Vt}from"@uniformdev/design-system";var Ue=({field:t,form:r,meta:n,...o})=>{var u,s;let{label:i,caption:a,min:l=0,max:p=100,step:m}=o;return e("div",null,e("label",{css:[qe,Ze]},e("span",{css:Ne},i),e("input",{type:"range",min:l,max:p,step:m,...t,value:(u=t.value)!=null?u:0}),e("span",{className:"value-display"},(s=t.value)!=null?s:0)),a?e(Rt,null,a):null,r.touched[t.name]&&r.errors[t.name]?e(Vt,{message:r.errors[t.name]}):null)};import{css as Pt}from"@emotion/react";var P=({children:t,...r})=>e("fieldset",{css:Pt`
467
+ `;import{Caption as Rt,ErrorMessage as Vt}from"@uniformdev/design-system";var _e=({field:t,form:r,meta:n,...o})=>{var u,s;let{label:i,caption:a,min:l=0,max:p=100,step:m}=o;return e("div",null,e("label",{css:[Ne,Ue]},e("span",{css:Ze},i),e("input",{type:"range",min:l,max:p,step:m,...t,value:(u=t.value)!=null?u:0}),e("span",{className:"value-display"},(s=t.value)!=null?s:0)),a?e(Rt,null,a):null,r.touched[t.name]&&r.errors[t.name]?e(Vt,{message:r.errors[t.name]}):null)};import{css as Pt}from"@emotion/react";var P=({children:t,...r})=>e("fieldset",{css:Pt`
468
468
  border: none;
469
469
  padding: 0;
470
470
  & legend {
@@ -475,7 +475,7 @@ to {
475
475
  font-weight: var(--font-bold);
476
476
  border-bottom: 1px solid var(--gray-400);
477
477
  width: 100%;
478
- `},t);import{Context as Mt,TransitionDataStore as At}from"@uniformdev/context";function _e({manifest:t,visitor:r,override:n}){let o=new Mt({manifest:t,transitionStore:new Ge({initialData:r})}),i={...o.scores};o.storage.updateData([n]);let l={...{...o.scores}};return Object.entries(l).forEach(([p,m])=>{i[p]===m&&delete l[p]}),l}var Ge=class extends At{async handleDelete(){}async handleUpdateData(){}};function Z({scores:t,scoreOverrides:r}){let n=[];return r?(Object.entries(r).forEach(([o,i])=>{var p;let a=(p=t[o])!=null?p:0;if(a===i.override)return;let l=i.override-a;n.push({type:"modscoreS",data:{dimension:o,delta:l}})}),n):[]}function ie({quirks:t,quirkOverrides:r}){let n={};if(!!r)return Object.entries(r).forEach(([o,i])=>{t[o]!==i.override&&(n[o]=i.override)}),Object.keys(n).length>0?n:void 0}import{Button as Qt}from"@uniformdev/design-system";var le=t=>({field:r,form:n,meta:o,...i})=>e(t,{...i,...r,errorMessage:n.errors[r.name]});import{Input as Et,InputSelect as zt}from"@uniformdev/design-system";var se=le(Et),$e=le(zt);var qt=z.object({dimension:z.string(),score:z.number()}),pe=({settings:t,saveSettings:r,state:n,actions:o,dimensionIndex:{index:i}})=>{var m,u;let a=t.route?[...t.route.matchAll(/overrides\/(?!.*add)(\w+)?/g)]:[],l=a[0]?a[0][1]:"";if(!((m=n.manifest.project.pz)!=null&&m.sig))return e("p",null,"Error, manifest is broken or there is no signal to override.");let p=Object.entries(i).filter(([,s])=>s.type!=="Audience"&&s.type!=="Intent").map(([s,c])=>{let d=c.type?`${c.type}: `:"",v=c.category?`${c.category} - `:"",h=`${d}${v}${c.name}`;return{value:s,label:h}});return p.unshift({value:"",label:"Choose dimension to override"}),e(Bt,{initialValues:{dimension:l,score:(u=n.scores[l])!=null?u:0},validate:s=>{let c={};return(s.score===n.scores[s.dimension]||s.score===0&&!n.scores[l])&&(c.score="You have to modify current score value"),c},validationSchema:qt,enableReinitialize:!0,validateOnChange:!1,validateOnBlur:!1,onSubmit:async s=>{var C,w,k,S,F,fe;let c=(w=(C=i[s.dimension])==null?void 0:C.cap)!=null?w:0,d=Math.min(s.score,c),v={...t,scoreOverrides:{...t.scoreOverrides,[s.dimension]:{initial:(fe=(F=(S=(k=t.scoreOverrides)==null?void 0:k[s.dimension])==null?void 0:S.initial)!=null?F:n.scores[s.dimension])!=null?fe:0,override:d}},route:"/overrides"};await r(v);let h=Z({scores:n.scores,scoreOverrides:v.scoreOverrides});o.rawUpdate(h)}},({isSubmitting:s,values:c})=>{var w;let d=_e({manifest:n.manifest,visitor:n.data,override:{type:"modscore",data:{dimension:c.dimension,delta:c.score-((w=n.scores[c.dimension])!=null?w:0)}}}),v=Object.entries(n.scores).reduce((k,[S,F])=>(k[S]={initial:F,override:F},k),{}),h={max:100,step:50};i[c.dimension]&&(h.max=i[c.dimension].cap,h.step=i[c.dimension].str);let C=c.score&&Object.keys(d).length>0;return e(Ft,{css:b.page},e("h1",{css:b.title},"Override Dimension"),e(Ke,{component:$e,label:"Dimension",id:"dimension",name:"dimension",options:p,disabled:s}),e("p",{css:b.text},e("small",null,"Audiences and Intents are aggregated from other dimension scores and cannot be overridden directly.")),c.dimension?e(Ke,{component:Ue,name:"score",label:"Score",disabled:s,caption:`Range: 0 - ${h.max} in increments of ${h.step}`}):null,e(P,{disabled:s,css:{marginBottom:"2rem"}},C?e($,null,e(K,{title:`Impacted Dimensions (${Object.keys(d).length})`},e(R,{preemptiveOverrides:v,dimensionIndex:i,dimensions:d,disableEditOverride:!0}))):null,e(Qt,{type:"submit",css:b.submitButton,disabled:s},"Save"),e(H,{route:"/overrides",css:b.cancelButton},"Cancel")))})};import{useState as $t}from"react";import{useState as Nt,useEffect as Zt}from"react";import{Button as Ut,Input as _t}from"@uniformdev/design-system";var Gt=({name:t,value:r,submit:n})=>{let[o,i]=Nt(r!=null?r:"");return Zt(()=>{i(r!=null?r:"")},[r]),e("div",{css:{display:"flex",gap:"var(--spacing-sm)"}},e(_t,{type:"text",css:[Qe],name:t,value:o,onChange:p=>{i(p.target.value)}}),e(Ut,{buttonType:"primary",disabled:o===r,size:"sm",onClick:()=>n(t,o!=null?o:"")},"Save"))},We=Gt;import{Button as Ye,InputSelect as Kt}from"@uniformdev/design-system";var Je=({...t})=>{let{state:{data:{quirks:r}},quirksIndex:{index:n},settings:o,saveSettings:i,actions:a}=t,[l,p]=$t(""),m;l&&(m=n[l]);let u=async(s,c)=>{var h,C,w;p("");let d={...o,quirkOverrides:{...o.quirkOverrides,[s]:{initial:(w=(C=(h=o.quirkOverrides)==null?void 0:h[s])==null?void 0:C.initial)!=null?w:r[s],override:c}}};await i(d);let v=ie({quirks:r,quirkOverrides:d.quirkOverrides});await a.update({quirks:v})};return e(y.Fragment,null,e("article",{css:[b.page,b.quirks]},e("h1",{css:b.title},"Quirks"),e("p",{css:b.text},"Keys defined in Uniform and their current, programmatically defined values for this visit."),Object.keys(n).length?e(j,null,e(Te,null,e(B,null,e(te,{width:"30%"},"Key"),e(te,{width:"50%"},"Value"),e(te,{width:"20%"},""))),e(ee,null,Object.values(n).map(({name:s,value:c,id:d})=>{var C,w,k;let v=(w=(C=o.quirkOverrides)==null?void 0:C[s])==null?void 0:w.initial,h=[];return m&&m.options&&(h=m.options.map(S=>({value:S.value,label:S.name}))),e(B,{key:d,border:"bottom"},e(I,null,e("strong",null,s)),e(I,null,l!==d?e("div",{onClick:()=>{p(d)}},v?e("div",null,e("s",null,v)):null,c):null,l===d&&m&&e(y.Fragment,null,m.options?e(Kt,{showLabel:!1,label:`Change ${s}`,defaultOption:`Change ${s}`,name:d,onChange:S=>u(S.target.name,S.target.value),options:h}):e(We,{name:d,value:c,submit:u}))),e(I,null,l?null:(k=o.quirkOverrides)!=null&&k[d]?e(Ye,{buttonType:"ghost",onClick:()=>{Ie({quirk:d,settings:o,saveSettings:i,actions:a})}},e("small",null,"Clear Override")):e(Ye,{buttonType:"ghost",onClick:()=>{p(d)}},e("small",null,"Override"))))}))):e(E,{title:"No quirks configured",text:"There are currently no quirks setup. Try to connect to Uniform API to load additional information about Quirks and Quirks without defined value."})))};import{Button as Wt}from"@uniformdev/design-system";var Xe=({settings:t,saveSettings:r,actions:n,state:{data:o}})=>e("article",{css:[b.page,{display:"flex",flexDirection:"column",gap:"var(--spacing-base)"}]},e("h1",{css:b.title},"Settings"),e(P,null,e(N,null,"Data Connection"),e(Wt,{buttonType:"tertiary",onClick:()=>{r({...t,route:"/connect"})}},"Manage Connection to Uniform")),e(P,null,e(N,null,"Storage Consent"),e(q,{label:"Store visitor data",id:"consent-mode",name:"consentMode",checked:o.consent,onChange:i=>{n.rawUpdate([{type:"consent",data:i.currentTarget.checked}]),r({...t,consentMode:i.currentTarget.checked})}}),e("p",null,e("small",null,"Enabling storage consent allows storing behavior in this browser for personalization across sessions. Only affects this browser. Personalization works with this disabled, but dimension scores are lost on refresh."))),e(P,null,e(N,null,"Logging"),e(q,{label:"Write Uniform Context diagnostic logs to browser console",id:"logging",name:"logging",checked:t.logLevel!=="none",onChange:i=>r({...t,logLevel:i.currentTarget.checked?"debug":"none"})})));import{Button as je}from"@uniformdev/design-system";var me=({settings:t,saveSettings:r})=>{let n=()=>{r({...t,route:"/connect"})},o=()=>{r({...t,ignoreApiKeyPrompt:!0})},i=t.route==="/connect",a=!(t!=null&&t.apiKey);return!t.ignoreApiKeyPrompt&&a&&!i?e("div",{css:[W,we]},e("h2",{css:Y},"Connect to a Uniform Project"),e("p",{css:J},"This allows reading human-readable labels for the dimensions."),e("div",{css:X},e(je,{buttonType:"secondary",onClick:n},"Connect this site"),e(je,{buttonType:"ghost",onClick:o},"Skip for now")),e("button",{type:"button",css:ke,title:"close",onClick:o},e("span",{hidden:!0},"Close"))):null};import{computeDimensionDefinitionDisplayData as Yt,computeDimensionDisplayData as et,DimensionClient as Jt}from"@uniformdev/context/api";import{useAsync as Xt}from"react-use";import*as tt from"react";function ot({apiHost:t,apiKey:r,projectId:n},o){let{loading:i,error:a,value:l}=Xt(async()=>{if(!r||!n)return p;let u=(await new Jt({projectId:n,apiKey:r,apiHost:t||void 0}).get()).dimensions,s={};return u.map(c=>{var d,v,h,C;if(s[c.dim]={...Yt(c),cap:c.cap,str:10},s[c.dim].type==="Enrichment"){let w=c.dim.split("_")[0];s[c.dim].cap=(C=(h=(v=(d=o==null?void 0:o.project.pz)==null?void 0:d.enr)==null?void 0:v[w])==null?void 0:h.cap)!=null?C:100}}),s},[t,r,n]),p=tt.useMemo(()=>{var u,s,c,d;let m={};return o&&(Object.entries((s=(u=o==null?void 0:o.project.pz)==null?void 0:u.sig)!=null?s:{}).map(([v,h])=>{let C=et(v,o);C&&(m[v]={...h,...C})}),Object.entries((d=(c=o==null?void 0:o.project.pz)==null?void 0:c.enr)!=null?d:{}).map(([v,h])=>{var k;let C=et(v,o),w={cap:(k=h.cap)!=null?k:100,str:10};C&&(m[v]={...C,cap:w.cap,str:w.str})}),l&&Object.entries(l).map(([v,h])=>{m[v]={...m[v],...h}})),m},[o,l]);return{loading:i,error:a,index:p}}import{useMemo as jt}from"react";import{QuirkClient as eo}from"@uniformdev/context/api";import{useAsync as to}from"react-use";function rt({apiHost:t,apiKey:r,projectId:n},o){let{loading:i,error:a,value:l}=to(async()=>{if(!r||!n)return{};let u=await new eo({projectId:n,apiKey:r,apiHost:t||void 0}).get(),s={};return u.quirks.map(c=>{s[c.id]={...c,value:o[c.id]}}),s},[t,r,n]),p=jt(()=>{let m={};return Object.entries(o).map(([u,s])=>m[u]={value:s,id:u,name:u}),l&&Object.entries(l).map(([u,s])=>m[u]={...s,value:o[u]}),m},[o,l]);return{loading:i,error:a,index:p}}import{css as at}from"@emotion/react";function ae(){return e("style",null,`
478
+ `},t);import{Context as Mt,TransitionDataStore as At}from"@uniformdev/context";function Ge({manifest:t,visitor:r,override:n}){let o=new Mt({manifest:t,transitionStore:new le({initialData:r})}),i={...o.scores};o.storage.updateData([n]);let l={...{...o.scores}};return Object.entries(l).forEach(([p,m])=>{i[p]===m&&delete l[p]}),l}var le=class extends At{async handleDelete(){}async handleUpdateData(){}};function Z({scores:t,scoreOverrides:r}){let n=[];return r?(Object.entries(r).forEach(([o,i])=>{var p;let a=(p=t[o])!=null?p:0;if(a===i.override)return;let l=i.override-a;n.push({type:"modscoreS",data:{dimension:o,delta:l}})}),n):[]}function ie({quirks:t,quirkOverrides:r}){let n={};if(!!r)return Object.entries(r).forEach(([o,i])=>{t[o]!==i.override&&(n[o]=i.override)}),Object.keys(n).length>0?n:void 0}import{Button as Qt}from"@uniformdev/design-system";var pe=t=>({field:r,form:n,meta:o,...i})=>e(t,{...i,...r,errorMessage:n.errors[r.name]});import{Input as Et,InputSelect as zt}from"@uniformdev/design-system";var se=pe(Et),$e=pe(zt);var qt=z.object({dimension:z.string(),score:z.number()}),me=({settings:t,saveSettings:r,state:n,actions:o,dimensionIndex:{index:i}})=>{var m,u;let a=t.route?[...t.route.matchAll(/overrides\/(?!.*add)(\w+)?/g)]:[],l=a[0]?a[0][1]:"";if(!((m=n.manifest.project.pz)!=null&&m.sig))return e("p",null,"Error, manifest is broken or there is no signal to override.");let p=Object.entries(i).filter(([,s])=>s.type!=="Audience"&&s.type!=="Intent").map(([s,c])=>{let d=c.type?`${c.type}: `:"",v=c.category?`${c.category} - `:"",h=`${d}${v}${c.name}`;return{value:s,label:h}});return p.unshift({value:"",label:"Choose dimension to override"}),e(Bt,{initialValues:{dimension:l,score:(u=n.scores[l])!=null?u:0},validate:s=>{let c={};return(s.score===n.scores[s.dimension]||s.score===0&&!n.scores[l])&&(c.score="You have to modify current score value"),c},validationSchema:qt,enableReinitialize:!0,validateOnChange:!1,validateOnBlur:!1,onSubmit:async s=>{var C,w,k,S,F,ve;let c=(w=(C=i[s.dimension])==null?void 0:C.cap)!=null?w:0,d=Math.min(s.score,c),v={...t,scoreOverrides:{...t.scoreOverrides,[s.dimension]:{initial:(ve=(F=(S=(k=t.scoreOverrides)==null?void 0:k[s.dimension])==null?void 0:S.initial)!=null?F:n.scores[s.dimension])!=null?ve:0,override:d}},route:"/overrides"};await r(v);let h=Z({scores:n.scores,scoreOverrides:v.scoreOverrides});o.rawUpdate(h)}},({isSubmitting:s,values:c})=>{var w;let d=Ge({manifest:n.manifest,visitor:n.data,override:{type:"modscore",data:{dimension:c.dimension,delta:c.score-((w=n.scores[c.dimension])!=null?w:0)}}}),v=Object.entries(n.scores).reduce((k,[S,F])=>(k[S]={initial:F,override:F},k),{}),h={max:100,step:50};i[c.dimension]&&(h.max=i[c.dimension].cap,h.step=i[c.dimension].str);let C=c.score&&Object.keys(d).length>0;return e(Ft,{css:b.page},e("h1",{css:b.title},"Override Dimension"),e(Ke,{component:$e,label:"Dimension",id:"dimension",name:"dimension",options:p,disabled:s}),e("p",{css:b.text},e("small",null,"Audiences and Intents are aggregated from other dimension scores and cannot be overridden directly.")),c.dimension?e(Ke,{component:_e,name:"score",label:"Score",disabled:s,caption:`Range: 0 - ${h.max} in increments of ${h.step}`}):null,e(P,{disabled:s,css:{marginBottom:"2rem"}},C?e($,null,e(K,{title:`Impacted Dimensions (${Object.keys(d).length})`},e(R,{preemptiveOverrides:v,dimensionIndex:i,dimensions:d,disableEditOverride:!0}))):null,e(Qt,{type:"submit",css:b.submitButton,disabled:s},"Save"),e(H,{route:"/overrides",css:b.cancelButton},"Cancel")))})};import{useState as $t}from"react";import{useState as Nt,useEffect as Zt}from"react";import{Button as Ut,Input as _t}from"@uniformdev/design-system";var Gt=({name:t,value:r,submit:n})=>{let[o,i]=Nt(r!=null?r:"");return Zt(()=>{i(r!=null?r:"")},[r]),e("div",{css:{display:"flex",gap:"var(--spacing-sm)"}},e(_t,{type:"text",css:[qe],name:t,value:o,onChange:p=>{i(p.target.value)}}),e(Ut,{buttonType:"primary",disabled:o===r,size:"sm",onClick:()=>n(t,o!=null?o:"")},"Save"))},We=Gt;import{Button as Ye,InputSelect as Kt}from"@uniformdev/design-system";var Je=({...t})=>{let{state:{data:{quirks:r}},quirksIndex:{index:n},settings:o,saveSettings:i,actions:a}=t,[l,p]=$t(""),m;l&&(m=n[l]);let u=async(s,c)=>{var h,C,w;p("");let d={...o,quirkOverrides:{...o.quirkOverrides,[s]:{initial:(w=(C=(h=o.quirkOverrides)==null?void 0:h[s])==null?void 0:C.initial)!=null?w:r[s],override:c}}};await i(d);let v=ie({quirks:r,quirkOverrides:d.quirkOverrides});await a.update({quirks:v})};return e(y.Fragment,null,e("article",{css:[b.page,b.quirks]},e("h1",{css:b.title},"Quirks"),e("p",{css:b.text},"Keys defined in Uniform and their current, programmatically defined values for this visit."),Object.keys(n).length?e(j,null,e(Se,null,e(B,null,e(te,{width:"30%"},"Key"),e(te,{width:"50%"},"Value"),e(te,{width:"20%"},""))),e(ee,null,Object.values(n).map(({name:s,value:c,id:d})=>{var C,w,k;let v=(w=(C=o.quirkOverrides)==null?void 0:C[s])==null?void 0:w.initial,h=[];return m&&m.options&&(h=m.options.map(S=>({value:S.value,label:S.name}))),e(B,{key:d,border:"bottom"},e(I,null,e("strong",null,s)),e(I,null,l!==d?e("div",{onClick:()=>{p(d)}},v?e("div",null,e("s",null,v)):null,c):null,l===d&&m&&e(y.Fragment,null,m.options?e(Kt,{showLabel:!1,label:`Change ${s}`,defaultOption:`Change ${s}`,name:d,onChange:S=>u(S.target.name,S.target.value),options:h}):e(We,{name:d,value:c,submit:u}))),e(I,null,l?null:(k=o.quirkOverrides)!=null&&k[d]?e(Ye,{buttonType:"ghost",onClick:()=>{Re({quirk:d,settings:o,saveSettings:i,actions:a})}},e("small",null,"Clear Override")):e(Ye,{buttonType:"ghost",onClick:()=>{p(d)}},e("small",null,"Override"))))}))):e(E,{title:"No quirks configured",text:"There are currently no quirks setup. Try to connect to Uniform API to load additional information about Quirks and Quirks without defined value."})))};import{Button as Wt}from"@uniformdev/design-system";var Xe=({settings:t,saveSettings:r,actions:n,state:{data:o}})=>e("article",{css:[b.page,{display:"flex",flexDirection:"column",gap:"var(--spacing-base)"}]},e("h1",{css:b.title},"Settings"),e(P,null,e(N,null,"Data Connection"),e(Wt,{buttonType:"tertiary",onClick:()=>{r({...t,route:"/connect"})}},"Manage Connection to Uniform")),e(P,null,e(N,null,"Storage Consent"),e(q,{label:"Store visitor data",id:"consent-mode",name:"consentMode",checked:o.consent,onChange:i=>{n.rawUpdate([{type:"consent",data:i.currentTarget.checked}]),r({...t,consentMode:i.currentTarget.checked})}}),e("p",null,e("small",null,"Enabling storage consent allows storing behavior in this browser for personalization across sessions. Only affects this browser. Personalization works with this disabled, but dimension scores are lost on refresh."))),e(P,null,e(N,null,"Logging"),e(q,{label:"Write Uniform Context diagnostic logs to browser console",id:"logging",name:"logging",checked:t.logLevel!=="none",onChange:i=>r({...t,logLevel:i.currentTarget.checked?"debug":"none"})})));import{Button as je}from"@uniformdev/design-system";var ue=({settings:t,saveSettings:r})=>{let n=()=>{r({...t,route:"/connect"})},o=()=>{r({...t,ignoreApiKeyPrompt:!0})},i=t.route==="/connect",a=!(t!=null&&t.apiKey);return!t.ignoreApiKeyPrompt&&a&&!i?e("div",{css:[W,ke]},e("h2",{css:Y},"Connect to a Uniform Project"),e("p",{css:J},"This allows reading human-readable labels for the dimensions."),e("div",{css:X},e(je,{buttonType:"secondary",onClick:n},"Connect this site"),e(je,{buttonType:"ghost",onClick:o},"Skip for now")),e("button",{type:"button",css:Te,title:"close",onClick:o},e("span",{hidden:!0},"Close"))):null};import{computeDimensionDefinitionDisplayData as Yt,computeDimensionDisplayData as et,DimensionClient as Jt}from"@uniformdev/context/api";import{useAsync as Xt}from"react-use";import*as tt from"react";function ot({apiHost:t,apiKey:r,projectId:n},o){let{loading:i,error:a,value:l}=Xt(async()=>{if(!r||!n)return p;let u=(await new Jt({projectId:n,apiKey:r,apiHost:t||void 0}).get()).dimensions,s={};return u.map(c=>{var d,v,h,C;if(s[c.dim]={...Yt(c),cap:c.cap,str:10},s[c.dim].type==="Enrichment"){let w=c.dim.split("_")[0];s[c.dim].cap=(C=(h=(v=(d=o==null?void 0:o.project.pz)==null?void 0:d.enr)==null?void 0:v[w])==null?void 0:h.cap)!=null?C:100}}),s},[t,r,n]),p=tt.useMemo(()=>{var u,s,c,d;let m={};return o&&(Object.entries((s=(u=o==null?void 0:o.project.pz)==null?void 0:u.sig)!=null?s:{}).map(([v,h])=>{let C=et(v,o);C&&(m[v]={...h,...C})}),Object.entries((d=(c=o==null?void 0:o.project.pz)==null?void 0:c.enr)!=null?d:{}).map(([v,h])=>{var k;let C=et(v,o),w={cap:(k=h.cap)!=null?k:100,str:10};C&&(m[v]={...C,cap:w.cap,str:w.str})}),l&&Object.entries(l).map(([v,h])=>{m[v]={...m[v],...h}})),m},[o,l]);return{loading:i,error:a,index:p}}import{useMemo as jt}from"react";import{QuirkClient as eo}from"@uniformdev/context/api";import{useAsync as to}from"react-use";function rt({apiHost:t,apiKey:r,projectId:n},o){let{loading:i,error:a,value:l}=to(async()=>{if(!r||!n)return{};let u=await new eo({projectId:n,apiKey:r,apiHost:t||void 0}).get(),s={};return u.quirks.map(c=>{s[c.id]={...c,value:o[c.id]}}),s},[t,r,n]),p=jt(()=>{let m={};return Object.entries(o).map(([u,s])=>m[u]={value:s,id:u,name:u}),l&&Object.entries(l).map(([u,s])=>m[u]={...s,value:o[u]}),m},[o,l]);return{loading:i,error:a,index:p}}import{css as at}from"@emotion/react";function ae(){return e("style",null,`
479
479
  :root {
480
480
  --brand-primary-1: #438fd5; /* bright blue */
481
481
  --brand-primary-2: #f4220b; /* red */
@@ -840,7 +840,7 @@ Add the correct display in Chrome and Safari.
840
840
 
841
841
  summary {
842
842
  display: list-item;
843
- }`)}import{useEffect as oo,useState as ro}from"react";import{useMountedState as no}from"react-use";var nt=()=>{let[t,r]=ro(!1),n=no();return oo(()=>{setTimeout(()=>{n()&&r(!0)},1e3)},[n]),t?e("article",{css:b.page},e("h1",null,"Loading..."),e("p",null,"Connecting to Uniform API for complete data.")):null};import{parseQuickConnect as io}from"@uniformdev/context";import{ApiClientError as so,ManifestClient as ao}from"@uniformdev/context/api";import{Field as ue,Form as co,Formik as lo}from"formik";import*as T from"react";import{ErrorMessage as po,Input as mo,Button as U}from"@uniformdev/design-system";function it(t){let[r,n]=T.useState(t.currentData?"c":"qc"),[o,i]=T.useState(void 0),[a,l]=T.useState(void 0),p=T.useCallback(async s=>{let c=new ao(s);i(void 0);try{let d=await c.get({preview:!0});return l({manifest:d,target:s}),d}catch(d){if(d instanceof so){d.statusCode===403?i("API key is valid but does not have Context > Read Drafts permission, or the API key does not have permissions to the project, or the project does not exist."):i(d.errorMessage);return}if("message"in d){d.message==="Failed to fetch"?i("A network error occurred. Ensure the API host is valid."):i(d.message);return}i(JSON.stringify(d,null,2));return}},[]);T.useEffect(()=>{!t.currentData||p(t.currentData)},[p,t.currentData]);let m=async s=>{await p(s)&&(n("c"),await t.onConnect(s))},u=()=>{confirm("Disconnect from Uniform? Make sure to save your API key if you want to reconnect.")&&(n("qc"),l(void 0),i(void 0),t.onConnect(null))};return e("div",null,o?e(po,{message:o}):null,r==="qc"||r==="mc"?e(uo,{...t,state:r,setState:n,onConnect:m}):e("div",null,a?e(T.Fragment,null,e("p",null,"Connected to"," ",e("a",{href:`${a==null?void 0:a.target.apiHost}/projects/${a==null?void 0:a.target.projectId}`,target:"_blank",rel:"noopener noreferrer",css:{textDecoration:"underline"}},e("strong",null,a==null?void 0:a.manifest.project.name))," ",e("small",null,"(",a==null?void 0:a.manifest.project.id,")")),e(U,{buttonType:"secondary",type:"button",onClick:u},"Disconnect")):null))}function uo({setState:t,state:r,currentData:n,onConnect:o}){var i,a,l;return e("div",null,e(lo,{initialValues:{apiHost:(i=n==null?void 0:n.apiHost)!=null?i:"https://uniform.dev",apiKey:(a=n==null?void 0:n.apiKey)!=null?a:"",projectId:(l=n==null?void 0:n.projectId)!=null?l:"",qc:""},onSubmit:o},({setFieldValue:p,setFieldError:m,errors:{qc:u},isSubmitting:s})=>e(co,null,e("fieldset",{css:{display:"flex",flexDirection:"column",gap:"var(--spacing-base)"}},r==="qc"?e(T.Fragment,null,e("div",null,e(mo,{placeholder:"Paste Quick Connect Code Here",caption:"Copy the Quick Connect code after creating an API key in Uniform.",errorMessage:u,onChange:c=>{try{let d=io(c.currentTarget.value);p("apiHost",d.apiHost),p("apiKey",d.apiKey),p("projectId",d.projectId)}catch(d){m("qc",d.message)}}})),e("section",{css:{display:"flex",gap:"var(--spacing-sm)"}},e(U,{type:"submit",buttonType:"primary",disabled:s},s?"Verifying...":"Connect"),e(U,{type:"button",buttonType:"ghost",onClick:()=>t("mc"),disabled:s},"Connect Manually"))):e(T.Fragment,null,e("div",null,e(ue,{component:se,label:"API Key",name:"apiKey",caption:"Generate an API key in your Uniform team settings."})),e("div",null,e(ue,{component:se,label:"Project ID",name:"projectId",caption:"Available to copy after generating an API key"})),e("div",null,e(ue,{component:se,label:"API Host",name:"apiHost",caption:"Use a non-standard Uniform API endpoint. Most people will not not need this option."})),e("section",{css:{display:"flex",gap:"var(--spacing-sm)"}},e(U,{type:"submit",buttonType:"primary",disabled:s},s?"Verifying...":"Connect"),e(U,{type:"button",buttonType:"ghost",onClick:()=>t("qc"),disabled:s},"Use Quick Connect")))))))}var st=({settings:t,saveSettings:r})=>{let n=t.apiKey&&t.projectId?{apiKey:t.apiKey,projectId:t.projectId,apiHost:t.apiHost}:void 0;return e("article",{css:b.page},e("h1",{css:b.title},"Connect to a Uniform Project"),e("p",{css:b.text},e("small",null,"Adding an API key and project ID enables human-readable dimension labels to be shown. You must have access to the Uniform project to do this.")),e(it,{onConnect:async o=>{o?await r({...t,apiKey:o.apiKey,projectId:o.projectId,apiHost:o.apiHost}):await r({...t,apiKey:void 0,projectId:void 0,apiHost:void 0})},currentData:n}))};var go=at`
843
+ }`)}import{useEffect as oo,useState as ro}from"react";import{useMountedState as no}from"react-use";var nt=()=>{let[t,r]=ro(!1),n=no();return oo(()=>{setTimeout(()=>{n()&&r(!0)},1e3)},[n]),t?e("article",{css:b.page},e("h1",null,"Loading..."),e("p",null,"Connecting to Uniform API for complete data.")):null};import{parseQuickConnect as io}from"@uniformdev/context";import{ApiClientError as so,ManifestClient as ao}from"@uniformdev/context/api";import{Field as ge,Form as co,Formik as lo}from"formik";import*as T from"react";import{ErrorMessage as po,Input as mo,Button as U}from"@uniformdev/design-system";function it(t){let[r,n]=T.useState(t.currentData?"c":"qc"),[o,i]=T.useState(void 0),[a,l]=T.useState(void 0),p=T.useCallback(async s=>{let c=new ao(s);i(void 0);try{let d=await c.get({preview:!0});return l({manifest:d,target:s}),d}catch(d){if(d instanceof so){d.statusCode===403?i("API key is valid but does not have Context > Read Drafts permission, or the API key does not have permissions to the project, or the project does not exist."):i(d.errorMessage);return}if("message"in d){d.message==="Failed to fetch"?i("A network error occurred. Ensure the API host is valid."):i(d.message);return}i(JSON.stringify(d,null,2));return}},[]);T.useEffect(()=>{!t.currentData||p(t.currentData)},[p,t.currentData]);let m=async s=>{await p(s)&&(n("c"),await t.onConnect(s))},u=()=>{confirm("Disconnect from Uniform? Make sure to save your API key if you want to reconnect.")&&(n("qc"),l(void 0),i(void 0),t.onConnect(null))};return e("div",null,o?e(po,{message:o}):null,r==="qc"||r==="mc"?e(uo,{...t,state:r,setState:n,onConnect:m}):e("div",null,a?e(T.Fragment,null,e("p",null,"Connected to"," ",e("a",{href:`${a==null?void 0:a.target.apiHost}/projects/${a==null?void 0:a.target.projectId}`,target:"_blank",rel:"noopener noreferrer",css:{textDecoration:"underline"}},e("strong",null,a==null?void 0:a.manifest.project.name))," ",e("small",null,"(",a==null?void 0:a.manifest.project.id,")")),e(U,{buttonType:"secondary",type:"button",onClick:u},"Disconnect")):null))}function uo({setState:t,state:r,currentData:n,onConnect:o}){var i,a,l;return e("div",null,e(lo,{initialValues:{apiHost:(i=n==null?void 0:n.apiHost)!=null?i:"https://uniform.dev",apiKey:(a=n==null?void 0:n.apiKey)!=null?a:"",projectId:(l=n==null?void 0:n.projectId)!=null?l:"",qc:""},onSubmit:o},({setFieldValue:p,setFieldError:m,errors:{qc:u},isSubmitting:s})=>e(co,null,e("fieldset",{css:{display:"flex",flexDirection:"column",gap:"var(--spacing-base)"}},r==="qc"?e(T.Fragment,null,e("div",null,e(mo,{placeholder:"Paste Quick Connect Code Here",caption:"Copy the Quick Connect code after creating an API key in Uniform.",errorMessage:u,onChange:c=>{try{let d=io(c.currentTarget.value);p("apiHost",d.apiHost),p("apiKey",d.apiKey),p("projectId",d.projectId)}catch(d){m("qc",d.message)}}})),e("section",{css:{display:"flex",gap:"var(--spacing-sm)"}},e(U,{type:"submit",buttonType:"primary",disabled:s},s?"Verifying...":"Connect"),e(U,{type:"button",buttonType:"ghost",onClick:()=>t("mc"),disabled:s},"Connect Manually"))):e(T.Fragment,null,e("div",null,e(ge,{component:se,label:"API Key",name:"apiKey",caption:"Generate an API key in your Uniform team settings."})),e("div",null,e(ge,{component:se,label:"Project ID",name:"projectId",caption:"Available to copy after generating an API key"})),e("div",null,e(ge,{component:se,label:"API Host",name:"apiHost",caption:"Use a non-standard Uniform API endpoint. Most people will not not need this option."})),e("section",{css:{display:"flex",gap:"var(--spacing-sm)"}},e(U,{type:"submit",buttonType:"primary",disabled:s},s?"Verifying...":"Connect"),e(U,{type:"button",buttonType:"ghost",onClick:()=>t("qc"),disabled:s},"Use Quick Connect")))))))}var st=({settings:t,saveSettings:r})=>{let n=t.apiKey&&t.projectId?{apiKey:t.apiKey,projectId:t.projectId,apiHost:t.apiHost}:void 0;return e("article",{css:b.page},e("h1",{css:b.title},"Connect to a Uniform Project"),e("p",{css:b.text},e("small",null,"Adding an API key and project ID enables human-readable dimension labels to be shown. You must have access to the Uniform project to do this.")),e(it,{onConnect:async o=>{o?await r({...t,apiKey:o.apiKey,projectId:o.projectId,apiHost:o.apiHost}):await r({...t,apiKey:void 0,projectId:void 0,apiHost:void 0})},currentData:n}))};var go=at`
844
844
  background: var(--white);
845
845
  padding: var(--spacing-base);
846
846
  overflow-y: auto;
@@ -869,7 +869,7 @@ summary {
869
869
  &::-webkit-scrollbar-thumb:hover {
870
870
  background: var(--gray-500);
871
871
  }
872
- `;function ct(t){let r=ot(t.settings,t.state.manifest),n=rt(t.settings,t.state.data.quirks),o={...t,dimensionIndex:r,quirksIndex:n},i=()=>{var a;if(r.loading||n.loading)return e(nt,null);if(t.settings.route&&t.settings.route.match(/overrides\/\w+/))return e(pe,{...o});switch((a=t.settings)==null?void 0:a.route){case void 0:case"/":case"/dimensions":return e(Ee,{...o});case"/overrides":return e(Be,{...o});case"/overrides/add":return e(pe,{...o});case"/quirks":return e(Je,{...o});case"/settings":return e(Xe,{...o});case"/connect":return e(st,{...o});default:return e(ye,null)}};return e(he,{settings:t.settings,saveSettings:t.saveSettings},e(ae,null),e("div",{css:at`
872
+ `;function ct(t){let r=ot(t.settings,t.state.manifest),n=rt(t.settings,t.state.data.quirks),o={...t,dimensionIndex:r,quirksIndex:n},i=()=>{var a;if(r.loading||n.loading)return e(nt,null);if(t.settings.route&&t.settings.route.match(/overrides\/\w+/))return e(me,{...o});switch((a=t.settings)==null?void 0:a.route){case void 0:case"/":case"/dimensions":return e(ze,{...o});case"/overrides":return e(Qe,{...o});case"/overrides/add":return e(me,{...o});case"/quirks":return e(Je,{...o});case"/settings":return e(Xe,{...o});case"/connect":return e(st,{...o});default:return e(Ce,null)}};return e(be,{settings:t.settings,saveSettings:t.saveSettings},e(ae,null),e("div",{css:at`
873
873
  display: grid;
874
874
  grid-template-columns: 200px auto;
875
875
  font-weight: var(--font-regular);
@@ -878,7 +878,7 @@ summary {
878
878
  line-height: var(--base-line-height);
879
879
  height: var(--min-height);
880
880
  min-width: var(--site-width);
881
- `},e(be,{...t}),e("main",{css:go},e(me,{...t}),i())))}import{Context as fo,createDebugConsoleLogDrain as vo}from"@uniformdev/context";import*as O from"react";var ge="embeddedUniformDevToolsSettings";function dt({context:t,initialSettings:r}){let n=t!=null?t:typeof window!="undefined"?window.__UNIFORM_DEVTOOLS_CONTEXT_INSTANCE__:void 0,o=n!=null?n:new fo({manifest:{project:{}}}),[i,a]=O.useState({data:o.storage.data,manifest:o.manifest.data,scores:o.scores,personalizations:[],tests:[]}),[l,p]=O.useState(r!=null?r:{});O.useEffect(()=>{var c;let s=vo((c=l.logLevel)!=null?c:"none");return o.events.on("log",s),()=>{o.events.off("log",s)}},[l,o]),O.useEffect(()=>{let s=()=>{let v=window.localStorage.getItem(ge)||"{}",h=JSON.parse(v),C=ie({quirks:o.storage.data.quirks,quirkOverrides:h.quirkOverrides});C&&(console.log("Applying overridden quirks:",C),o.update({quirks:C}));let w=Z({scores:o.scores,scoreOverrides:h.scoreOverrides});w.length&&(console.log("Applying overridden scores:",w),o.storage.updateData(w)),a(k=>({...k,scores:o.scores,data:o.storage.data,manifest:o.manifest.data}))},c=v=>{!v.changed||a(h=>({...h,personalizations:[...h.personalizations,v]}))},d=v=>{!v.variantAssigned||a(h=>({...h,tests:[...h.tests,v]}))};return o.events.on("personalizationResult",c),o.events.on("testResult",d),o.storage.events.on("*",s),()=>{o.storage.events.off("*",s),o.events.off("personalizationResult",c),o.events.off("testResult",d)}},[o]),O.useEffect(()=>{if(window.localStorage){let s=window.localStorage.getItem(ge);if(s)try{let c=JSON.parse(s),d={...r,...c};p(d);let v=Z({scores:i.scores,scoreOverrides:d.scoreOverrides});m.rawUpdate(v)}catch(c){window.localStorage.removeItem(ge),console.error("Failed to parse settings from localStorage: ",c.message)}}},[]);let{actions:m,saveSettings:u}=O.useMemo(()=>({actions:{update:d=>o.update(d),forget:()=>o.forget(!1),rawUpdate:d=>o.storage.updateData(d)},saveSettings:async d=>{p(d),window.localStorage&&window.localStorage.setItem("embeddedUniformDevToolsSettings",JSON.stringify(d))}}),[o]);return n?e(ct,{state:i,actions:m,settings:l,saveSettings:u}):e("p",null,"Unable to find Uniform Context. Ensure the devtools plugin is activated.")}import{css as yo}from"@emotion/react";import*as pt from"react";import{css as ho}from"@emotion/react";var bo=ho`
881
+ `},e(ye,{...t}),e("main",{css:go},e(ue,{...t}),i())))}import{Context as fo,createDebugConsoleLogDrain as vo}from"@uniformdev/context";import*as O from"react";var fe="embeddedUniformDevToolsSettings";function dt({context:t,initialSettings:r}){let n=t!=null?t:typeof window!="undefined"?window.__UNIFORM_DEVTOOLS_CONTEXT_INSTANCE__:void 0,o=n!=null?n:new fo({manifest:{project:{}}}),[i,a]=O.useState({data:o.storage.data,manifest:o.manifest.data,scores:o.scores,personalizations:[],tests:[]}),[l,p]=O.useState(r!=null?r:{});O.useEffect(()=>{var c;let s=vo((c=l.logLevel)!=null?c:"none");return o.events.on("log",s),()=>{o.events.off("log",s)}},[l,o]),O.useEffect(()=>{let s=()=>{let v=window.localStorage.getItem(fe)||"{}",h=JSON.parse(v),C=ie({quirks:o.storage.data.quirks,quirkOverrides:h.quirkOverrides});C&&(console.log("Applying overridden quirks:",C),o.update({quirks:C}));let w=Z({scores:o.scores,scoreOverrides:h.scoreOverrides});w.length&&(console.log("Applying overridden scores:",w),o.storage.updateData(w)),a(k=>({...k,scores:o.scores,data:o.storage.data,manifest:o.manifest.data}))},c=v=>{!v.changed||a(h=>({...h,personalizations:[...h.personalizations,v]}))},d=v=>{!v.variantAssigned||a(h=>({...h,tests:[...h.tests,v]}))};return o.events.on("personalizationResult",c),o.events.on("testResult",d),o.storage.events.on("*",s),()=>{o.storage.events.off("*",s),o.events.off("personalizationResult",c),o.events.off("testResult",d)}},[o]),O.useEffect(()=>{if(window.localStorage){let s=window.localStorage.getItem(fe);if(s)try{let c=JSON.parse(s),d={...r,...c};p(d);let v=Z({scores:i.scores,scoreOverrides:d.scoreOverrides});m.rawUpdate(v)}catch(c){window.localStorage.removeItem(fe),console.error("Failed to parse settings from localStorage: ",c.message)}}},[]);let{actions:m,saveSettings:u}=O.useMemo(()=>({actions:{update:d=>o.update(d),forget:()=>o.forget(!1),rawUpdate:d=>o.storage.updateData(d)},saveSettings:async d=>{p(d),window.localStorage&&window.localStorage.setItem("embeddedUniformDevToolsSettings",JSON.stringify(d))}}),[o]);return n?e(ct,{state:i,actions:m,settings:l,saveSettings:u}):e("p",null,"Unable to find Uniform Context. Ensure the devtools plugin is activated.")}import{css as yo}from"@emotion/react";import*as pt from"react";import{css as ho}from"@emotion/react";var bo=ho`
882
882
  align-items: center;
883
883
  border-radius: var(--rounded-full);
884
884
  background: var(--brand-secondary-5);
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- var Bt=Object.create;var W=Object.defineProperty;var Qt=Object.getOwnPropertyDescriptor;var qt=Object.getOwnPropertyNames;var Nt=Object.getPrototypeOf,Zt=Object.prototype.hasOwnProperty;var Ae=t=>W(t,"__esModule",{value:!0});var Ut=(t,r)=>{for(var n in r)W(t,n,{get:r[n],enumerable:!0})},Ee=(t,r,n,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let i of qt(r))!Zt.call(t,i)&&(n||i!=="default")&&W(t,i,{get:()=>r[i],enumerable:!(o=Qt(r,i))||o.enumerable});return t},D=(t,r)=>Ee(Ae(W(t!=null?Bt(Nt(t)):{},"default",!r&&t&&t.__esModule?{get:()=>t.default,enumerable:!0}:{value:t,enumerable:!0})),t),_t=(t=>(r,n)=>t&&t.get(r)||(n=Ee(Ae({}),r,1),t&&t.set(r,n),n))(typeof WeakMap!="undefined"?new WeakMap:0);var mo={};Ut(mo,{ContextDevTools:()=>Ve,EmbeddedContextDevTools:()=>He,ToggleEmbeddedContextDevTools:()=>po});var e=require("@emotion/react"),b=D(require("react"));var x=require("@emotion/react");var Y=require("react"),ze=(0,Y.createContext)({settings:{},saveSettings:()=>null}),J=()=>(0,Y.useContext)(ze),Fe=({children:t,settings:r,saveSettings:n})=>(0,e.jsx)(ze.Provider,{value:{settings:r,saveSettings:n}},t);var Gt=({route:t,children:r,className:n})=>{let{settings:o,saveSettings:i}=J();return(0,e.jsx)("a",{href:"",className:n,onClick:a=>{a.preventDefault(),i({...o,route:t})}},r)},B=Gt;var $t=[{title:"Dimensions",href:"/dimensions",icon:`<svg
1
+ var Ft=Object.create;var W=Object.defineProperty;var Bt=Object.getOwnPropertyDescriptor;var Qt=Object.getOwnPropertyNames;var qt=Object.getPrototypeOf,Nt=Object.prototype.hasOwnProperty;var Zt=(t,r)=>{for(var n in r)W(t,n,{get:r[n],enumerable:!0})},Ee=(t,r,n,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let i of Qt(r))!Nt.call(t,i)&&i!==n&&W(t,i,{get:()=>r[i],enumerable:!(o=Bt(r,i))||o.enumerable});return t};var D=(t,r,n)=>(n=t!=null?Ft(qt(t)):{},Ee(r||!t||!t.__esModule?W(n,"default",{value:t,enumerable:!0}):n,t)),Ut=t=>Ee(W({},"__esModule",{value:!0}),t);var po={};Zt(po,{ContextDevTools:()=>Pe,EmbeddedContextDevTools:()=>Me,ToggleEmbeddedContextDevTools:()=>lo});module.exports=Ut(po);var e=require("@emotion/react"),b=D(require("react"));var x=require("@emotion/react");var Y=require("react"),ze=(0,Y.createContext)({settings:{},saveSettings:()=>null}),J=()=>(0,Y.useContext)(ze),Fe=({children:t,settings:r,saveSettings:n})=>(0,e.jsx)(ze.Provider,{value:{settings:r,saveSettings:n}},t);var _t=({route:t,children:r,className:n})=>{let{settings:o,saveSettings:i}=J();return(0,e.jsx)("a",{href:"",className:n,onClick:a=>{a.preventDefault(),i({...o,route:t})}},r)},B=_t;var Gt=[{title:"Dimensions",href:"/dimensions",icon:`<svg
2
2
  width="24"
3
3
  height="24"
4
4
  viewBox="0 0 24 24"
@@ -36,7 +36,7 @@ var Bt=Object.create;var W=Object.defineProperty;var Qt=Object.getOwnPropertyDes
36
36
  </svg>`},{title:"Settings",href:"/settings",icon:`<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
37
37
  <path d="M19.1469 12.716C19.1986 12.2636 19.201 11.8069 19.1539 11.354L21.7429 9.474C21.8681 9.3822 21.9548 9.24723 21.9862 9.0952C22.0176 8.94316 21.9915 8.78489 21.9129 8.651L19.9939 5.399C19.9182 5.26986 19.7985 5.17231 19.6568 5.1242C19.515 5.07608 19.3606 5.08063 19.2219 5.137L16.3599 6.292C15.9237 5.9578 15.4502 5.67525 14.9489 5.45L14.5739 2.545C14.5547 2.39441 14.4813 2.25598 14.3673 2.15566C14.2534 2.05534 14.1068 1.99999 13.9549 2H10.0859C9.93402 1.99997 9.78728 2.05527 9.67317 2.15558C9.55906 2.25588 9.48539 2.39432 9.46595 2.545L9.09395 5.433C8.63957 5.63249 8.20723 5.87882 7.80395 6.168L5.00895 4.954C4.87173 4.89484 4.71787 4.88672 4.57519 4.9311C4.4325 4.97549 4.3104 5.06945 4.23095 5.196L2.22195 8.398C2.1396 8.52998 2.10934 8.68789 2.13707 8.84096C2.1648 8.99403 2.24854 9.1313 2.37195 9.226L4.86795 11.142C4.83172 11.4266 4.81302 11.7131 4.81195 12C4.81195 12.18 4.82095 12.362 4.83795 12.558L2.26495 14.375C2.13766 14.4647 2.04844 14.5987 2.01478 14.7508C1.98112 14.9028 2.00543 15.0619 2.08295 15.197L3.95695 18.474C4.11095 18.742 4.43695 18.857 4.72595 18.746L7.56095 17.644C8.00795 17.997 8.49195 18.294 9.00795 18.53L9.33795 21.396C9.37495 21.709 9.63795 21.946 9.95195 21.95L13.8169 22H13.8249C14.1349 22 14.3989 21.771 14.4439 21.463L14.8549 18.59C15.3703 18.3674 15.8579 18.0855 16.3079 17.75L19.1279 18.93C19.4129 19.05 19.7419 18.944 19.9029 18.679L21.8669 15.452C21.9477 15.319 21.976 15.1608 21.9464 15.0081C21.9168 14.8554 21.8315 14.7192 21.7069 14.626L19.1469 12.716ZM11.9999 15C10.3459 15 8.99995 13.655 8.99995 12C8.99995 10.346 10.3449 9 11.9999 9C13.6539 9 14.9999 10.345 14.9999 12C14.9999 13.654 13.6539 15 11.9999 15Z" fill="white"/>
38
38
  </svg>
39
- `}],Kt=`<svg width="24" height="24" fill="white" viewBox="0 0 122.88 116.67" xmlns="http://www.w3.org/2000/svg">
39
+ `}],$t=`<svg width="24" height="24" fill="white" viewBox="0 0 122.88 116.67" xmlns="http://www.w3.org/2000/svg">
40
40
  <g>
41
41
  <path d="M84.55,116.66c2.49,0,4.53-1.99,4.53-4.41V88.08c1.55-13.03,7.27-9.16,14-5.13 c16.27,9.74,27.08-15.88,13.93-23.78c-10.32-6.2-14.79,4.46-22.35,3.36c-2.92-0.43-4.95-3.5-5.59-8.17V36.9 c0-2.43-2.04-4.41-4.53-4.41H63.73c-17.18-2.12-1.93-11.37-1.93-19.98C61.81,5.6,55.38,0,47.45,0c-7.92,0-15.19,5.6-15.19,12.51 c0,8.12,15.78,17.86-1.64,19.98H4.53C2.04,32.49,0,34.47,0,36.9v17.42c1.33,7.43,6.49,9.15,13.1,4.25 c2.23-1.66,5.99-3.59,8.71-3.59c7.09,0,12.85,6.25,12.85,13.96S28.91,84.6,21.81,84.6c-2.53,0-4.89-0.8-6.89-2.19 c0,0.59-12.4-10.85-14.92,3.15v26.71c0,2.43,2.04,4.41,4.53,4.41c13.97,0,27.92,0,41.88-0.01c0.55-2.55-1.24-5.47-2.92-8 c-13.22-19.93,38.21-21.92,24.99,0.62c-0.65,1.11-1.3,2.19-1.8,3.24c-0.63,1.31-1.05,2.91-0.96,4.14L84.55,116.66L84.55,116.66z"></path>
42
42
  </g>
@@ -57,7 +57,7 @@ var Bt=Object.create;var W=Object.defineProperty;var Qt=Object.getOwnPropertyDes
57
57
  margin: 0;
58
58
  list-style-type: none;
59
59
  flex-grow: 1;
60
- `},$t.map((a,l)=>{var m,u,s,c;let p=0;return a.href==="/overrides"&&Object.keys((m=t.settings.scoreOverrides)!=null?m:{}).length>0&&(p=Object.keys((u=t.settings.scoreOverrides)!=null?u:{}).length),a.href==="/quirks"&&Object.keys((s=t.settings.quirkOverrides)!=null?s:{}).length>0&&(p=Object.keys((c=t.settings.quirkOverrides)!=null?c:{}).length),(0,e.jsx)("li",{css:x.css`
60
+ `},Gt.map((a,l)=>{var m,u,s,c;let p=0;return a.href==="/overrides"&&Object.keys((m=t.settings.scoreOverrides)!=null?m:{}).length>0&&(p=Object.keys((u=t.settings.scoreOverrides)!=null?u:{}).length),a.href==="/quirks"&&Object.keys((s=t.settings.quirkOverrides)!=null?s:{}).length>0&&(p=Object.keys((c=t.settings.quirkOverrides)!=null?c:{}).length),(0,e.jsx)("li",{css:x.css`
61
61
  padding: 0;
62
62
  margin: 0;
63
63
  list-style-type: none;
@@ -109,11 +109,11 @@ var Bt=Object.create;var W=Object.defineProperty;var Qt=Object.getOwnPropertyDes
109
109
  `,rel:"noreferrer"},(0,e.jsx)("i",{css:x.css`
110
110
  align-items: center;
111
111
  display: flex;
112
- `,dangerouslySetInnerHTML:{__html:Kt}}),"Install Chrome Extension"))};var Qe=()=>(0,e.jsx)("article",null,(0,e.jsx)("h1",null,"Something when wrong"),(0,e.jsx)("p",null,"We could not find the page you're looking for."));var pe=D(require("react"));var H=require("@emotion/react"),X=D(require("react")),qe=(0,H.css)({willChange:"height"}),Wt=H.css`
112
+ `,dangerouslySetInnerHTML:{__html:$t}}),"Install Chrome Extension"))};var Qe=()=>(0,e.jsx)("article",null,(0,e.jsx)("h1",null,"Something when wrong"),(0,e.jsx)("p",null,"We could not find the page you're looking for."));var pe=D(require("react"));var H=require("@emotion/react"),X=D(require("react")),qe=(0,H.css)({willChange:"height"}),Kt=H.css`
113
113
  border-bottom: 2px solid var(--brand-secondary-1);
114
114
  font-size: var(--font-base);
115
115
  margin: 0;
116
- `,Yt=H.css`
116
+ `,Wt=H.css`
117
117
  align-items: center;
118
118
  border: none;
119
119
  background: none;
@@ -123,11 +123,11 @@ var Bt=Object.create;var W=Object.defineProperty;var Qt=Object.getOwnPropertyDes
123
123
  padding: var(--spacing-sm) 0;
124
124
  font-weight: var(--font-bold);
125
125
  justify-content: space-between;
126
- `,Jt=H.css`
126
+ `,Yt=H.css`
127
127
  align-self: center;
128
- `,Xt=H.css`
128
+ `,Jt=H.css`
129
129
  transform: rotate(-180deg);
130
- `,j=({children:t})=>(0,e.jsx)("div",{css:[qe]},t),ee=({title:t,children:r})=>{let[n,o]=X.useState(!1),i=t.split(" ").join("-").toLocaleLowerCase();return(0,e.jsx)(X.Fragment,null,(0,e.jsx)("h3",{css:Wt},(0,e.jsx)("button",{"aria-expanded":n,css:Yt,title:t,id:i,"aria-controls":`${i}-section`,onClick:()=>o(a=>!a),type:"button"},t,(0,e.jsx)("i",{css:[Jt,n?Xt:void 0]},(0,e.jsx)("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},(0,e.jsx)("path",{d:"M6.34317 7.75732L4.92896 9.17154L12 16.2426L19.0711 9.17157L17.6569 7.75735L12 13.4142L6.34317 7.75732Z",fill:"currentColor"}))))),(0,e.jsx)("div",{id:`${i}-section`,css:[qe,H.css`
130
+ `,j=({children:t})=>(0,e.jsx)("div",{css:[qe]},t),ee=({title:t,children:r})=>{let[n,o]=X.useState(!1),i=t.split(" ").join("-").toLocaleLowerCase();return(0,e.jsx)(X.Fragment,null,(0,e.jsx)("h3",{css:Kt},(0,e.jsx)("button",{"aria-expanded":n,css:Wt,title:t,id:i,"aria-controls":`${i}-section`,onClick:()=>o(a=>!a),type:"button"},t,(0,e.jsx)("i",{css:[Yt,n?Jt:void 0]},(0,e.jsx)("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},(0,e.jsx)("path",{d:"M6.34317 7.75732L4.92896 9.17154L12 16.2426L19.0711 9.17157L17.6569 7.75735L12 13.4142L6.34317 7.75732Z",fill:"currentColor"}))))),(0,e.jsx)("div",{id:`${i}-section`,css:[qe,H.css`
131
131
  padding: var(--spacing-sm) 0;
132
132
  `],role:"region","aria-labelledby":i},n?r:null))};var M=require("@emotion/react"),te=M.css`
133
133
  background-color: var(--gray-100);
@@ -175,7 +175,7 @@ var Bt=Object.create;var W=Object.defineProperty;var Qt=Object.getOwnPropertyDes
175
175
  display: flex;
176
176
  margin: var(--spacing-sm) 0 0;
177
177
  gap: var(--spacing-base);
178
- `;var Q=({title:t,text:r,buttonGroup:n,children:o})=>(0,e.jsx)("div",{css:te},(0,e.jsx)("h2",{css:oe},t),(0,e.jsx)("p",{css:re},r),o,n?(0,e.jsx)("div",{css:ne},n):null);var k=require("@emotion/react"),jt=k.keyframes`from {
178
+ `;var Q=({title:t,text:r,buttonGroup:n,children:o})=>(0,e.jsx)("div",{css:te},(0,e.jsx)("h2",{css:oe},t),(0,e.jsx)("p",{css:re},r),o,n?(0,e.jsx)("div",{css:ne},n):null);var k=require("@emotion/react"),Xt=k.keyframes`from {
179
179
  transform: scale(1);
180
180
  }
181
181
  to {
@@ -215,7 +215,7 @@ to {
215
215
  position: absolute;
216
216
  right: var(--spacing-base);
217
217
  bottom: var(--spacing-base);
218
- animation: 0.5s 2 alternate ${jt};
218
+ animation: 0.5s 2 alternate ${Xt};
219
219
  `,cancelButton:k.css`
220
220
  position: absolute;
221
221
  left: calc(200px + var(--spacing-base));
@@ -251,18 +251,18 @@ to {
251
251
  outline: none;
252
252
  padding: var(--spacing-sm);
253
253
  width: ${r!=null?r:"auto"};
254
- `},t);function eo(t){switch(t){case"light":return L.css`
254
+ `},t);function jt(t){switch(t){case"light":return L.css`
255
255
  color: var(--gray-400);
256
256
  `;case"dark":return L.css`
257
257
  color: var(--brand-secondary-1);
258
- `}}function to(t){return L.css`
258
+ `}}function eo(t){return L.css`
259
259
  text-align: ${t};
260
260
  `}var R=({alignment:t="left",border:r,color:n="dark",children:o})=>(0,e.jsx)("td",{css:[L.css`
261
261
  padding: var(--spacing-base);
262
262
  max-width: 180px;
263
263
  overflow-wrap: break-word;
264
264
  position: relative;
265
- `,eo(n),to(t),r?L.css`
265
+ `,jt(n),eo(t),r?L.css`
266
266
  border-left: 1px solid var(--gray-200);
267
267
  `:void 0]},o);var ce=require("@emotion/react"),_e=ce.css`
268
268
  position: relative;
@@ -278,11 +278,11 @@ to {
278
278
  top: 9px;
279
279
  background: var(--red-tooltip);
280
280
  border-radius: 3px;
281
- `;var We=require("@emotion/react"),oo=`<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
281
+ `;var We=require("@emotion/react"),to=`<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
282
282
  <path d="M4.2 7.2C4.53137 7.2 4.8 6.93137 4.8 6.6C4.8 6.26863 4.53137 6 4.2 6C3.86863 6 3.6 6.26863 3.6 6.6C3.6 6.93137 3.86863 7.2 4.2 7.2Z" fill="#828282"/>
283
283
  <path d="M8.4 6.6C8.4 6.93137 8.13137 7.2 7.8 7.2C7.46863 7.2 7.2 6.93137 7.2 6.6C7.2 6.26863 7.46863 6 7.8 6C8.13137 6 8.4 6.26863 8.4 6.6Z" fill="#828282"/>
284
284
  <path fill-rule="evenodd" clip-rule="evenodd" d="M6 12C9.31371 12 12 9.31371 12 6C12 2.68629 9.31371 0 6 0C2.68629 0 0 2.68629 0 6C0 9.31371 2.68629 12 6 12ZM6 10.8C8.65097 10.8 10.8 8.65097 10.8 6C10.8 5.49824 10.723 5.01447 10.5802 4.55984C10.0795 4.69533 9.55274 4.76763 9.00913 4.76763C6.77526 4.76763 4.82652 3.54683 3.79366 1.73601C2.25282 2.53492 1.2 4.14451 1.2 6C1.2 8.65097 3.34903 10.8 6 10.8Z" fill="#828282"/>
285
- </svg>`,ro=`<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
285
+ </svg>`,oo=`<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
286
286
  <path fill-rule="evenodd" clip-rule="evenodd" d="M3.59995 5.05775C4.9254 5.05775 5.99992 3.98325 5.99992 2.65778C5.99992 1.33232 4.9254 0.257812 3.59995 0.257812C2.27448 0.257812 1.19998 1.33232 1.19998 2.65778C1.19998 3.98325 2.27448 5.05775 3.59995 5.05775ZM3.59999 3.85777C4.26272 3.85777 4.79997 3.32052 4.79997 2.65778C4.79997 1.99505 4.26272 1.4578 3.59999 1.4578C2.93725 1.4578 2.4 1.99505 2.4 2.65778C2.4 3.32052 2.93725 3.85777 3.59999 3.85777Z" fill="#828282"/>
287
287
  <path d="M5.39993 6.8577C5.73131 6.8577 5.99993 7.12632 5.99993 7.45769V11.0576H7.19991V7.45769C7.19991 6.46356 6.39406 5.65771 5.39993 5.65771H1.79998C0.80588 5.65771 0 6.46356 0 7.45769V11.0576H1.19999V7.45769C1.19999 7.12632 1.46861 6.8577 1.79998 6.8577H5.39993Z" fill="#828282"/>
288
288
  <path d="M11.9999 5.05762H8.3999V6.2576H11.9999V5.05762Z" fill="#828282"/>
@@ -294,10 +294,10 @@ to {
294
294
  <path d="M9.36269 2.7856C9.93846 3.36136 10.2946 4.15676 10.2946 5.03535C10.2946 6.06973 9.80096 6.98882 9.03643 7.5699L9.94228 8.47575C10.9345 7.65881 11.5672 6.42096 11.5672 5.03535C11.5672 3.80533 11.0687 2.69177 10.2626 1.88571L9.36269 2.7856Z" fill="#828282"/>
295
295
  <path d="M0.113525 5.03534C0.113525 3.10251 0.896953 1.35266 2.16359 0.0860049L3.06347 0.985892C2.02714 2.02224 1.38616 3.45394 1.38616 5.03534C1.38616 6.61674 2.02714 8.04844 3.06347 9.08479L2.16358 9.98468C0.89695 8.71802 0.113525 6.96817 0.113525 5.03534Z" fill="#828282"/>
296
296
  <path d="M12.0624 9.98474C13.329 8.71809 14.1125 6.96821 14.1125 5.03534C14.1125 3.10248 13.329 1.3526 12.0624 0.0859375L11.1625 0.985824C12.1988 2.02218 12.8398 3.4539 12.8398 5.03534C12.8398 6.61678 12.1988 8.0485 11.1625 9.08486L12.0624 9.98474Z" fill="#828282"/>
297
- </svg>`,Ye=({type:t})=>{let r="";switch(t){case"Audience":r=oo;break;case"Signal":r=Ke;break;case"Intent":r=Ke;break;case"Enrichment":r=ro;break}return(0,e.jsx)("i",{css:We.css`
297
+ </svg>`,Ye=({type:t})=>{let r="";switch(t){case"Audience":r=to;break;case"Signal":r=Ke;break;case"Intent":r=Ke;break;case"Enrichment":r=oo;break}return(0,e.jsx)("i",{css:We.css`
298
298
  align-items: center;
299
299
  display: inline-block;
300
- `,dangerouslySetInnerHTML:{__html:r}})};var no=({dimensionIndex:t,dimensions:r,disableEditOverride:n,onClick:o,preemptiveOverrides:i})=>{var p;let{settings:a}=J(),l=(p=i!=null?i:a.scoreOverrides)!=null?p:{};return(0,e.jsx)(ie,null,(0,e.jsx)(se,null,Object.entries(r).sort(([m],[u])=>m.localeCompare(u)).map(([m,u])=>{var y;let{dim:s,name:c,type:d,category:f}=(y=t[m])!=null?y:{name:m,dim:m,type:void 0,category:void 0},v=l[s];return(0,e.jsx)(U,{key:s},(0,e.jsx)(R,null,v!==void 0?(0,e.jsx)("s",{css:Ge},v.initial):null,(0,e.jsx)("b",{css:_e},u,v!==void 0&&(0,e.jsx)("i",{css:$e}))),(0,e.jsx)(R,null,(0,e.jsx)("div",{onClick:()=>o==null?void 0:o(s),css:o?{cursor:"pointer"}:void 0},(0,e.jsx)("span",{css:h.divider,role:"presentation"}),(0,e.jsx)("div",null,(0,e.jsx)(Ye,{type:d})," ",d),(0,e.jsx)("strong",null,f?`${f}:`:""," ",c))),(0,e.jsx)(R,{alignment:"right",color:"light"},v!==void 0&&!n?(0,e.jsx)(B,{route:`/overrides/${s}`},"Edit override"):null))})))},A=no;async function de({actions:t,saveSettings:r,scores:n,settings:o}){var p,m;let i=(p=o.scoreOverrides)!=null?p:{},a={...i},l=[];for(let u of Object.keys(i)){let s=i==null?void 0:i[u];delete a[u],l.push({type:"modscoreS",data:{dimension:u,delta:s.initial-((m=n[u])!=null?m:0)}})}await r({...o,scoreOverrides:a}),await t.rawUpdate(l)}async function Je({quirk:t,settings:r,saveSettings:n,actions:o}){var l;let i=(l=r.quirkOverrides)==null?void 0:l[t];if(!i)return;let a={...r.quirkOverrides};delete a[t],await n({...r,quirkOverrides:a}),await o.rawUpdate([{type:"setquirk",data:{key:t,value:i.initial}}])}var Te=require("@uniformdev/design-system");var ot=D(require("react"));var q=require("@emotion/react"),Xe=q.css`
300
+ `,dangerouslySetInnerHTML:{__html:r}})};var ro=({dimensionIndex:t,dimensions:r,disableEditOverride:n,onClick:o,preemptiveOverrides:i})=>{var p;let{settings:a}=J(),l=(p=i!=null?i:a.scoreOverrides)!=null?p:{};return(0,e.jsx)(ie,null,(0,e.jsx)(se,null,Object.entries(r).sort(([m],[u])=>m.localeCompare(u)).map(([m,u])=>{var y;let{dim:s,name:c,type:d,category:f}=(y=t[m])!=null?y:{name:m,dim:m,type:void 0,category:void 0},v=l[s];return(0,e.jsx)(U,{key:s},(0,e.jsx)(R,null,v!==void 0?(0,e.jsx)("s",{css:Ge},v.initial):null,(0,e.jsx)("b",{css:_e},u,v!==void 0&&(0,e.jsx)("i",{css:$e}))),(0,e.jsx)(R,null,(0,e.jsx)("div",{onClick:()=>o==null?void 0:o(s),css:o?{cursor:"pointer"}:void 0},(0,e.jsx)("span",{css:h.divider,role:"presentation"}),(0,e.jsx)("div",null,(0,e.jsx)(Ye,{type:d})," ",d),(0,e.jsx)("strong",null,f?`${f}:`:""," ",c))),(0,e.jsx)(R,{alignment:"right",color:"light"},v!==void 0&&!n?(0,e.jsx)(B,{route:`/overrides/${s}`},"Edit override"):null))})))},A=ro;async function de({actions:t,saveSettings:r,scores:n,settings:o}){var p,m;let i=(p=o.scoreOverrides)!=null?p:{},a={...i},l=[];for(let u of Object.keys(i)){let s=i==null?void 0:i[u];delete a[u],l.push({type:"modscoreS",data:{dimension:u,delta:s.initial-((m=n[u])!=null?m:0)}})}await r({...o,scoreOverrides:a}),await t.rawUpdate(l)}async function Je({quirk:t,settings:r,saveSettings:n,actions:o}){var l;let i=(l=r.quirkOverrides)==null?void 0:l[t];if(!i)return;let a={...r.quirkOverrides};delete a[t],await n({...r,quirkOverrides:a}),await o.rawUpdate([{type:"setquirk",data:{key:t,value:i.initial}}])}var Te=require("@uniformdev/design-system");var ot=D(require("react"));var q=require("@emotion/react"),Xe=q.css`
301
301
  position: relative;
302
302
  display: inline-block;
303
303
  margin-right: var(--spacing-sm);
@@ -377,7 +377,7 @@ to {
377
377
  cursor: not-allowed;
378
378
  color: var(--gray-200);
379
379
  }
380
- `,tr=V.css`
380
+ `,er=V.css`
381
381
  margin: var(--spacing-base) 0;
382
382
  `,ct=V.css`
383
383
  color: var(--brand-secondary-1);
@@ -390,10 +390,10 @@ to {
390
390
  flex: 1 100%;
391
391
  font-weight: var(--font-bold);
392
392
  margin: 0 0 var(--spacing-sm);
393
- `,or=V.css`
393
+ `,tr=V.css`
394
394
  color: var(--gray-600);
395
395
  font-size: var(--font-sm);
396
- `,rr=V.css`
396
+ `,or=V.css`
397
397
  color: var(--brand-secondary-5);
398
398
  display: block;
399
399
  `,lt=V.css`
@@ -475,7 +475,7 @@ to {
475
475
  font-weight: var(--font-bold);
476
476
  border-bottom: 1px solid var(--gray-400);
477
477
  width: 100%;
478
- `},t);var ue=require("@uniformdev/context");function gt({manifest:t,visitor:r,override:n}){let o=new ue.Context({manifest:t,transitionStore:new ft({initialData:r})}),i={...o.scores};o.storage.updateData([n]);let l={...{...o.scores}};return Object.entries(l).forEach(([p,m])=>{i[p]===m&&delete l[p]}),l}var ft=class extends ue.TransitionDataStore{async handleDelete(){}async handleUpdateData(){}};function $({scores:t,scoreOverrides:r}){let n=[];return r?(Object.entries(r).forEach(([o,i])=>{var p;let a=(p=t[o])!=null?p:0;if(a===i.override)return;let l=i.override-a;n.push({type:"modscoreS",data:{dimension:o,delta:l}})}),n):[]}function ge({quirks:t,quirkOverrides:r}){let n={};if(!!r)return Object.entries(r).forEach(([o,i])=>{t[o]!==i.override&&(n[o]=i.override)}),Object.keys(n).length>0?n:void 0}var ht=require("@uniformdev/design-system");var xe=t=>({field:r,form:n,meta:o,...i})=>(0,e.jsx)(t,{...i,...r,errorMessage:n.errors[r.name]});var fe=require("@uniformdev/design-system"),ve=xe(fe.Input),vt=xe(fe.InputSelect);var io=N.object({dimension:N.string(),score:N.number()}),Le=({settings:t,saveSettings:r,state:n,actions:o,dimensionIndex:{index:i}})=>{var m,u;let a=t.route?[...t.route.matchAll(/overrides\/(?!.*add)(\w+)?/g)]:[],l=a[0]?a[0][1]:"";if(!((m=n.manifest.project.pz)!=null&&m.sig))return(0,e.jsx)("p",null,"Error, manifest is broken or there is no signal to override.");let p=Object.entries(i).filter(([,s])=>s.type!=="Audience"&&s.type!=="Intent").map(([s,c])=>{let d=c.type?`${c.type}: `:"",f=c.category?`${c.category} - `:"",v=`${d}${f}${c.name}`;return{value:s,label:v}});return p.unshift({value:"",label:"Choose dimension to override"}),(0,e.jsx)(z.Formik,{initialValues:{dimension:l,score:(u=n.scores[l])!=null?u:0},validate:s=>{let c={};return(s.score===n.scores[s.dimension]||s.score===0&&!n.scores[l])&&(c.score="You have to modify current score value"),c},validationSchema:io,enableReinitialize:!0,validateOnChange:!1,validateOnBlur:!1,onSubmit:async s=>{var y,C,w,S,Z,Me;let c=(C=(y=i[s.dimension])==null?void 0:y.cap)!=null?C:0,d=Math.min(s.score,c),f={...t,scoreOverrides:{...t.scoreOverrides,[s.dimension]:{initial:(Me=(Z=(S=(w=t.scoreOverrides)==null?void 0:w[s.dimension])==null?void 0:S.initial)!=null?Z:n.scores[s.dimension])!=null?Me:0,override:d}},route:"/overrides"};await r(f);let v=$({scores:n.scores,scoreOverrides:f.scoreOverrides});o.rawUpdate(v)}},({isSubmitting:s,values:c})=>{var C;let d=gt({manifest:n.manifest,visitor:n.data,override:{type:"modscore",data:{dimension:c.dimension,delta:c.score-((C=n.scores[c.dimension])!=null?C:0)}}}),f=Object.entries(n.scores).reduce((w,[S,Z])=>(w[S]={initial:Z,override:Z},w),{}),v={max:100,step:50};i[c.dimension]&&(v.max=i[c.dimension].cap,v.step=i[c.dimension].str);let y=c.score&&Object.keys(d).length>0;return(0,e.jsx)(z.Form,{css:h.page},(0,e.jsx)("h1",{css:h.title},"Override Dimension"),(0,e.jsx)(z.Field,{component:vt,label:"Dimension",id:"dimension",name:"dimension",options:p,disabled:s}),(0,e.jsx)("p",{css:h.text},(0,e.jsx)("small",null,"Audiences and Intents are aggregated from other dimension scores and cannot be overridden directly.")),c.dimension?(0,e.jsx)(z.Field,{component:pt,name:"score",label:"Score",disabled:s,caption:`Range: 0 - ${v.max} in increments of ${v.step}`}):null,(0,e.jsx)(E,{disabled:s,css:{marginBottom:"2rem"}},y?(0,e.jsx)(j,null,(0,e.jsx)(ee,{title:`Impacted Dimensions (${Object.keys(d).length})`},(0,e.jsx)(A,{preemptiveOverrides:f,dimensionIndex:i,dimensions:d,disableEditOverride:!0}))):null,(0,e.jsx)(ht.Button,{type:"submit",css:h.submitButton,disabled:s},"Save"),(0,e.jsx)(B,{route:"/overrides",css:h.cancelButton},"Cancel")))})};var yt=require("react");var he=require("react"),be=require("@uniformdev/design-system");var so=({name:t,value:r,submit:n})=>{let[o,i]=(0,he.useState)(r!=null?r:"");return(0,he.useEffect)(()=>{i(r!=null?r:"")},[r]),(0,e.jsx)("div",{css:{display:"flex",gap:"var(--spacing-sm)"}},(0,e.jsx)(be.Input,{type:"text",css:[at],name:t,value:o,onChange:p=>{i(p.target.value)}}),(0,e.jsx)(be.Button,{buttonType:"primary",disabled:o===r,size:"sm",onClick:()=>n(t,o!=null?o:"")},"Save"))},bt=so;var K=require("@uniformdev/design-system"),Ct=({...t})=>{let{state:{data:{quirks:r}},quirksIndex:{index:n},settings:o,saveSettings:i,actions:a}=t,[l,p]=(0,yt.useState)(""),m;l&&(m=n[l]);let u=async(s,c)=>{var v,y,C;p("");let d={...o,quirkOverrides:{...o.quirkOverrides,[s]:{initial:(C=(y=(v=o.quirkOverrides)==null?void 0:v[s])==null?void 0:y.initial)!=null?C:r[s],override:c}}};await i(d);let f=ge({quirks:r,quirkOverrides:d.quirkOverrides});await a.update({quirks:f})};return(0,e.jsx)(b.Fragment,null,(0,e.jsx)("article",{css:[h.page,h.quirks]},(0,e.jsx)("h1",{css:h.title},"Quirks"),(0,e.jsx)("p",{css:h.text},"Keys defined in Uniform and their current, programmatically defined values for this visit."),Object.keys(n).length?(0,e.jsx)(ie,null,(0,e.jsx)(Ue,null,(0,e.jsx)(U,null,(0,e.jsx)(ae,{width:"30%"},"Key"),(0,e.jsx)(ae,{width:"50%"},"Value"),(0,e.jsx)(ae,{width:"20%"},""))),(0,e.jsx)(se,null,Object.values(n).map(({name:s,value:c,id:d})=>{var y,C,w;let f=(C=(y=o.quirkOverrides)==null?void 0:y[s])==null?void 0:C.initial,v=[];return m&&m.options&&(v=m.options.map(S=>({value:S.value,label:S.name}))),(0,e.jsx)(U,{key:d,border:"bottom"},(0,e.jsx)(R,null,(0,e.jsx)("strong",null,s)),(0,e.jsx)(R,null,l!==d?(0,e.jsx)("div",{onClick:()=>{p(d)}},f?(0,e.jsx)("div",null,(0,e.jsx)("s",null,f)):null,c):null,l===d&&m&&(0,e.jsx)(b.Fragment,null,m.options?(0,e.jsx)(K.InputSelect,{showLabel:!1,label:`Change ${s}`,defaultOption:`Change ${s}`,name:d,onChange:S=>u(S.target.name,S.target.value),options:v}):(0,e.jsx)(bt,{name:d,value:c,submit:u}))),(0,e.jsx)(R,null,l?null:(w=o.quirkOverrides)!=null&&w[d]?(0,e.jsx)(K.Button,{buttonType:"ghost",onClick:()=>{Je({quirk:d,settings:o,saveSettings:i,actions:a})}},(0,e.jsx)("small",null,"Clear Override")):(0,e.jsx)(K.Button,{buttonType:"ghost",onClick:()=>{p(d)}},(0,e.jsx)("small",null,"Override"))))}))):(0,e.jsx)(Q,{title:"No quirks configured",text:"There are currently no quirks setup. Try to connect to Uniform API to load additional information about Quirks and Quirks without defined value."})))};var wt=require("@uniformdev/design-system");var kt=({settings:t,saveSettings:r,actions:n,state:{data:o}})=>(0,e.jsx)("article",{css:[h.page,{display:"flex",flexDirection:"column",gap:"var(--spacing-base)"}]},(0,e.jsx)("h1",{css:h.title},"Settings"),(0,e.jsx)(E,null,(0,e.jsx)(G,null,"Data Connection"),(0,e.jsx)(wt.Button,{buttonType:"tertiary",onClick:()=>{r({...t,route:"/connect"})}},"Manage Connection to Uniform")),(0,e.jsx)(E,null,(0,e.jsx)(G,null,"Storage Consent"),(0,e.jsx)(_,{label:"Store visitor data",id:"consent-mode",name:"consentMode",checked:o.consent,onChange:i=>{n.rawUpdate([{type:"consent",data:i.currentTarget.checked}]),r({...t,consentMode:i.currentTarget.checked})}}),(0,e.jsx)("p",null,(0,e.jsx)("small",null,"Enabling storage consent allows storing behavior in this browser for personalization across sessions. Only affects this browser. Personalization works with this disabled, but dimension scores are lost on refresh."))),(0,e.jsx)(E,null,(0,e.jsx)(G,null,"Logging"),(0,e.jsx)(_,{label:"Write Uniform Context diagnostic logs to browser console",id:"logging",name:"logging",checked:t.logLevel!=="none",onChange:i=>r({...t,logLevel:i.currentTarget.checked?"debug":"none"})})));var Oe=require("@uniformdev/design-system");var Ie=({settings:t,saveSettings:r})=>{let n=()=>{r({...t,route:"/connect"})},o=()=>{r({...t,ignoreApiKeyPrompt:!0})},i=t.route==="/connect",a=!(t!=null&&t.apiKey);return!t.ignoreApiKeyPrompt&&a&&!i?(0,e.jsx)("div",{css:[te,Ne]},(0,e.jsx)("h2",{css:oe},"Connect to a Uniform Project"),(0,e.jsx)("p",{css:re},"This allows reading human-readable labels for the dimensions."),(0,e.jsx)("div",{css:ne},(0,e.jsx)(Oe.Button,{buttonType:"secondary",onClick:n},"Connect this site"),(0,e.jsx)(Oe.Button,{buttonType:"ghost",onClick:o},"Skip for now")),(0,e.jsx)("button",{type:"button",css:Ze,title:"close",onClick:o},(0,e.jsx)("span",{hidden:!0},"Close"))):null};var F=require("@uniformdev/context/api"),Tt=require("react-use"),St=D(require("react"));function Dt({apiHost:t,apiKey:r,projectId:n},o){let{loading:i,error:a,value:l}=(0,Tt.useAsync)(async()=>{if(!r||!n)return p;let u=(await new F.DimensionClient({projectId:n,apiKey:r,apiHost:t||void 0}).get()).dimensions,s={};return u.map(c=>{var d,f,v,y;if(s[c.dim]={...(0,F.computeDimensionDefinitionDisplayData)(c),cap:c.cap,str:10},s[c.dim].type==="Enrichment"){let C=c.dim.split("_")[0];s[c.dim].cap=(y=(v=(f=(d=o==null?void 0:o.project.pz)==null?void 0:d.enr)==null?void 0:f[C])==null?void 0:v.cap)!=null?y:100}}),s},[t,r,n]),p=St.useMemo(()=>{var u,s,c,d;let m={};return o&&(Object.entries((s=(u=o==null?void 0:o.project.pz)==null?void 0:u.sig)!=null?s:{}).map(([f,v])=>{let y=(0,F.computeDimensionDisplayData)(f,o);y&&(m[f]={...v,...y})}),Object.entries((d=(c=o==null?void 0:o.project.pz)==null?void 0:c.enr)!=null?d:{}).map(([f,v])=>{var w;let y=(0,F.computeDimensionDisplayData)(f,o),C={cap:(w=v.cap)!=null?w:100,str:10};y&&(m[f]={...y,cap:C.cap,str:C.str})}),l&&Object.entries(l).map(([f,v])=>{m[f]={...m[f],...v}})),m},[o,l]);return{loading:i,error:a,index:p}}var xt=require("react"),Lt=require("@uniformdev/context/api"),Ot=require("react-use");function It({apiHost:t,apiKey:r,projectId:n},o){let{loading:i,error:a,value:l}=(0,Ot.useAsync)(async()=>{if(!r||!n)return{};let u=await new Lt.QuirkClient({projectId:n,apiKey:r,apiHost:t||void 0}).get(),s={};return u.quirks.map(c=>{s[c.id]={...c,value:o[c.id]}}),s},[t,r,n]),p=(0,xt.useMemo)(()=>{let m={};return Object.entries(o).map(([u,s])=>m[u]={value:s,id:u,name:u}),l&&Object.entries(l).map(([u,s])=>m[u]={...s,value:o[u]}),m},[o,l]);return{loading:i,error:a,index:p}}var Re=require("@emotion/react");function ye(){return(0,e.jsx)("style",null,`
478
+ `},t);var ue=require("@uniformdev/context");function gt({manifest:t,visitor:r,override:n}){let o=new ue.Context({manifest:t,transitionStore:new xe({initialData:r})}),i={...o.scores};o.storage.updateData([n]);let l={...{...o.scores}};return Object.entries(l).forEach(([p,m])=>{i[p]===m&&delete l[p]}),l}var xe=class extends ue.TransitionDataStore{async handleDelete(){}async handleUpdateData(){}};function $({scores:t,scoreOverrides:r}){let n=[];return r?(Object.entries(r).forEach(([o,i])=>{var p;let a=(p=t[o])!=null?p:0;if(a===i.override)return;let l=i.override-a;n.push({type:"modscoreS",data:{dimension:o,delta:l}})}),n):[]}function ge({quirks:t,quirkOverrides:r}){let n={};if(!!r)return Object.entries(r).forEach(([o,i])=>{t[o]!==i.override&&(n[o]=i.override)}),Object.keys(n).length>0?n:void 0}var vt=require("@uniformdev/design-system");var Le=t=>({field:r,form:n,meta:o,...i})=>(0,e.jsx)(t,{...i,...r,errorMessage:n.errors[r.name]});var fe=require("@uniformdev/design-system"),ve=Le(fe.Input),ft=Le(fe.InputSelect);var no=N.object({dimension:N.string(),score:N.number()}),Oe=({settings:t,saveSettings:r,state:n,actions:o,dimensionIndex:{index:i}})=>{var m,u;let a=t.route?[...t.route.matchAll(/overrides\/(?!.*add)(\w+)?/g)]:[],l=a[0]?a[0][1]:"";if(!((m=n.manifest.project.pz)!=null&&m.sig))return(0,e.jsx)("p",null,"Error, manifest is broken or there is no signal to override.");let p=Object.entries(i).filter(([,s])=>s.type!=="Audience"&&s.type!=="Intent").map(([s,c])=>{let d=c.type?`${c.type}: `:"",f=c.category?`${c.category} - `:"",v=`${d}${f}${c.name}`;return{value:s,label:v}});return p.unshift({value:"",label:"Choose dimension to override"}),(0,e.jsx)(z.Formik,{initialValues:{dimension:l,score:(u=n.scores[l])!=null?u:0},validate:s=>{let c={};return(s.score===n.scores[s.dimension]||s.score===0&&!n.scores[l])&&(c.score="You have to modify current score value"),c},validationSchema:no,enableReinitialize:!0,validateOnChange:!1,validateOnBlur:!1,onSubmit:async s=>{var y,C,w,S,Z,Ae;let c=(C=(y=i[s.dimension])==null?void 0:y.cap)!=null?C:0,d=Math.min(s.score,c),f={...t,scoreOverrides:{...t.scoreOverrides,[s.dimension]:{initial:(Ae=(Z=(S=(w=t.scoreOverrides)==null?void 0:w[s.dimension])==null?void 0:S.initial)!=null?Z:n.scores[s.dimension])!=null?Ae:0,override:d}},route:"/overrides"};await r(f);let v=$({scores:n.scores,scoreOverrides:f.scoreOverrides});o.rawUpdate(v)}},({isSubmitting:s,values:c})=>{var C;let d=gt({manifest:n.manifest,visitor:n.data,override:{type:"modscore",data:{dimension:c.dimension,delta:c.score-((C=n.scores[c.dimension])!=null?C:0)}}}),f=Object.entries(n.scores).reduce((w,[S,Z])=>(w[S]={initial:Z,override:Z},w),{}),v={max:100,step:50};i[c.dimension]&&(v.max=i[c.dimension].cap,v.step=i[c.dimension].str);let y=c.score&&Object.keys(d).length>0;return(0,e.jsx)(z.Form,{css:h.page},(0,e.jsx)("h1",{css:h.title},"Override Dimension"),(0,e.jsx)(z.Field,{component:ft,label:"Dimension",id:"dimension",name:"dimension",options:p,disabled:s}),(0,e.jsx)("p",{css:h.text},(0,e.jsx)("small",null,"Audiences and Intents are aggregated from other dimension scores and cannot be overridden directly.")),c.dimension?(0,e.jsx)(z.Field,{component:pt,name:"score",label:"Score",disabled:s,caption:`Range: 0 - ${v.max} in increments of ${v.step}`}):null,(0,e.jsx)(E,{disabled:s,css:{marginBottom:"2rem"}},y?(0,e.jsx)(j,null,(0,e.jsx)(ee,{title:`Impacted Dimensions (${Object.keys(d).length})`},(0,e.jsx)(A,{preemptiveOverrides:f,dimensionIndex:i,dimensions:d,disableEditOverride:!0}))):null,(0,e.jsx)(vt.Button,{type:"submit",css:h.submitButton,disabled:s},"Save"),(0,e.jsx)(B,{route:"/overrides",css:h.cancelButton},"Cancel")))})};var bt=require("react");var he=require("react"),be=require("@uniformdev/design-system");var io=({name:t,value:r,submit:n})=>{let[o,i]=(0,he.useState)(r!=null?r:"");return(0,he.useEffect)(()=>{i(r!=null?r:"")},[r]),(0,e.jsx)("div",{css:{display:"flex",gap:"var(--spacing-sm)"}},(0,e.jsx)(be.Input,{type:"text",css:[at],name:t,value:o,onChange:p=>{i(p.target.value)}}),(0,e.jsx)(be.Button,{buttonType:"primary",disabled:o===r,size:"sm",onClick:()=>n(t,o!=null?o:"")},"Save"))},ht=io;var K=require("@uniformdev/design-system"),yt=({...t})=>{let{state:{data:{quirks:r}},quirksIndex:{index:n},settings:o,saveSettings:i,actions:a}=t,[l,p]=(0,bt.useState)(""),m;l&&(m=n[l]);let u=async(s,c)=>{var v,y,C;p("");let d={...o,quirkOverrides:{...o.quirkOverrides,[s]:{initial:(C=(y=(v=o.quirkOverrides)==null?void 0:v[s])==null?void 0:y.initial)!=null?C:r[s],override:c}}};await i(d);let f=ge({quirks:r,quirkOverrides:d.quirkOverrides});await a.update({quirks:f})};return(0,e.jsx)(b.Fragment,null,(0,e.jsx)("article",{css:[h.page,h.quirks]},(0,e.jsx)("h1",{css:h.title},"Quirks"),(0,e.jsx)("p",{css:h.text},"Keys defined in Uniform and their current, programmatically defined values for this visit."),Object.keys(n).length?(0,e.jsx)(ie,null,(0,e.jsx)(Ue,null,(0,e.jsx)(U,null,(0,e.jsx)(ae,{width:"30%"},"Key"),(0,e.jsx)(ae,{width:"50%"},"Value"),(0,e.jsx)(ae,{width:"20%"},""))),(0,e.jsx)(se,null,Object.values(n).map(({name:s,value:c,id:d})=>{var y,C,w;let f=(C=(y=o.quirkOverrides)==null?void 0:y[s])==null?void 0:C.initial,v=[];return m&&m.options&&(v=m.options.map(S=>({value:S.value,label:S.name}))),(0,e.jsx)(U,{key:d,border:"bottom"},(0,e.jsx)(R,null,(0,e.jsx)("strong",null,s)),(0,e.jsx)(R,null,l!==d?(0,e.jsx)("div",{onClick:()=>{p(d)}},f?(0,e.jsx)("div",null,(0,e.jsx)("s",null,f)):null,c):null,l===d&&m&&(0,e.jsx)(b.Fragment,null,m.options?(0,e.jsx)(K.InputSelect,{showLabel:!1,label:`Change ${s}`,defaultOption:`Change ${s}`,name:d,onChange:S=>u(S.target.name,S.target.value),options:v}):(0,e.jsx)(ht,{name:d,value:c,submit:u}))),(0,e.jsx)(R,null,l?null:(w=o.quirkOverrides)!=null&&w[d]?(0,e.jsx)(K.Button,{buttonType:"ghost",onClick:()=>{Je({quirk:d,settings:o,saveSettings:i,actions:a})}},(0,e.jsx)("small",null,"Clear Override")):(0,e.jsx)(K.Button,{buttonType:"ghost",onClick:()=>{p(d)}},(0,e.jsx)("small",null,"Override"))))}))):(0,e.jsx)(Q,{title:"No quirks configured",text:"There are currently no quirks setup. Try to connect to Uniform API to load additional information about Quirks and Quirks without defined value."})))};var Ct=require("@uniformdev/design-system");var wt=({settings:t,saveSettings:r,actions:n,state:{data:o}})=>(0,e.jsx)("article",{css:[h.page,{display:"flex",flexDirection:"column",gap:"var(--spacing-base)"}]},(0,e.jsx)("h1",{css:h.title},"Settings"),(0,e.jsx)(E,null,(0,e.jsx)(G,null,"Data Connection"),(0,e.jsx)(Ct.Button,{buttonType:"tertiary",onClick:()=>{r({...t,route:"/connect"})}},"Manage Connection to Uniform")),(0,e.jsx)(E,null,(0,e.jsx)(G,null,"Storage Consent"),(0,e.jsx)(_,{label:"Store visitor data",id:"consent-mode",name:"consentMode",checked:o.consent,onChange:i=>{n.rawUpdate([{type:"consent",data:i.currentTarget.checked}]),r({...t,consentMode:i.currentTarget.checked})}}),(0,e.jsx)("p",null,(0,e.jsx)("small",null,"Enabling storage consent allows storing behavior in this browser for personalization across sessions. Only affects this browser. Personalization works with this disabled, but dimension scores are lost on refresh."))),(0,e.jsx)(E,null,(0,e.jsx)(G,null,"Logging"),(0,e.jsx)(_,{label:"Write Uniform Context diagnostic logs to browser console",id:"logging",name:"logging",checked:t.logLevel!=="none",onChange:i=>r({...t,logLevel:i.currentTarget.checked?"debug":"none"})})));var Ie=require("@uniformdev/design-system");var Re=({settings:t,saveSettings:r})=>{let n=()=>{r({...t,route:"/connect"})},o=()=>{r({...t,ignoreApiKeyPrompt:!0})},i=t.route==="/connect",a=!(t!=null&&t.apiKey);return!t.ignoreApiKeyPrompt&&a&&!i?(0,e.jsx)("div",{css:[te,Ne]},(0,e.jsx)("h2",{css:oe},"Connect to a Uniform Project"),(0,e.jsx)("p",{css:re},"This allows reading human-readable labels for the dimensions."),(0,e.jsx)("div",{css:ne},(0,e.jsx)(Ie.Button,{buttonType:"secondary",onClick:n},"Connect this site"),(0,e.jsx)(Ie.Button,{buttonType:"ghost",onClick:o},"Skip for now")),(0,e.jsx)("button",{type:"button",css:Ze,title:"close",onClick:o},(0,e.jsx)("span",{hidden:!0},"Close"))):null};var F=require("@uniformdev/context/api"),kt=require("react-use"),Tt=D(require("react"));function St({apiHost:t,apiKey:r,projectId:n},o){let{loading:i,error:a,value:l}=(0,kt.useAsync)(async()=>{if(!r||!n)return p;let u=(await new F.DimensionClient({projectId:n,apiKey:r,apiHost:t||void 0}).get()).dimensions,s={};return u.map(c=>{var d,f,v,y;if(s[c.dim]={...(0,F.computeDimensionDefinitionDisplayData)(c),cap:c.cap,str:10},s[c.dim].type==="Enrichment"){let C=c.dim.split("_")[0];s[c.dim].cap=(y=(v=(f=(d=o==null?void 0:o.project.pz)==null?void 0:d.enr)==null?void 0:f[C])==null?void 0:v.cap)!=null?y:100}}),s},[t,r,n]),p=Tt.useMemo(()=>{var u,s,c,d;let m={};return o&&(Object.entries((s=(u=o==null?void 0:o.project.pz)==null?void 0:u.sig)!=null?s:{}).map(([f,v])=>{let y=(0,F.computeDimensionDisplayData)(f,o);y&&(m[f]={...v,...y})}),Object.entries((d=(c=o==null?void 0:o.project.pz)==null?void 0:c.enr)!=null?d:{}).map(([f,v])=>{var w;let y=(0,F.computeDimensionDisplayData)(f,o),C={cap:(w=v.cap)!=null?w:100,str:10};y&&(m[f]={...y,cap:C.cap,str:C.str})}),l&&Object.entries(l).map(([f,v])=>{m[f]={...m[f],...v}})),m},[o,l]);return{loading:i,error:a,index:p}}var Dt=require("react"),xt=require("@uniformdev/context/api"),Lt=require("react-use");function Ot({apiHost:t,apiKey:r,projectId:n},o){let{loading:i,error:a,value:l}=(0,Lt.useAsync)(async()=>{if(!r||!n)return{};let u=await new xt.QuirkClient({projectId:n,apiKey:r,apiHost:t||void 0}).get(),s={};return u.quirks.map(c=>{s[c.id]={...c,value:o[c.id]}}),s},[t,r,n]),p=(0,Dt.useMemo)(()=>{let m={};return Object.entries(o).map(([u,s])=>m[u]={value:s,id:u,name:u}),l&&Object.entries(l).map(([u,s])=>m[u]={...s,value:o[u]}),m},[o,l]);return{loading:i,error:a,index:p}}var Ve=require("@emotion/react");function ye(){return(0,e.jsx)("style",null,`
479
479
  :root {
480
480
  --brand-primary-1: #438fd5; /* bright blue */
481
481
  --brand-primary-2: #f4220b; /* red */
@@ -840,7 +840,7 @@ Add the correct display in Chrome and Safari.
840
840
 
841
841
  summary {
842
842
  display: list-item;
843
- }`)}var Ce=require("react"),Rt=require("react-use");var Vt=()=>{let[t,r]=(0,Ce.useState)(!1),n=(0,Rt.useMountedState)();return(0,Ce.useEffect)(()=>{setTimeout(()=>{n()&&r(!0)},1e3)},[n]),t?(0,e.jsx)("article",{css:h.page},(0,e.jsx)("h1",null,"Loading..."),(0,e.jsx)("p",null,"Connecting to Uniform API for complete data.")):null};var Pt=require("@uniformdev/context"),we=require("@uniformdev/context/api"),P=require("formik"),T=D(require("react")),O=require("@uniformdev/design-system");function Ht(t){let[r,n]=T.useState(t.currentData?"c":"qc"),[o,i]=T.useState(void 0),[a,l]=T.useState(void 0),p=T.useCallback(async s=>{let c=new we.ManifestClient(s);i(void 0);try{let d=await c.get({preview:!0});return l({manifest:d,target:s}),d}catch(d){if(d instanceof we.ApiClientError){d.statusCode===403?i("API key is valid but does not have Context > Read Drafts permission, or the API key does not have permissions to the project, or the project does not exist."):i(d.errorMessage);return}if("message"in d){d.message==="Failed to fetch"?i("A network error occurred. Ensure the API host is valid."):i(d.message);return}i(JSON.stringify(d,null,2));return}},[]);T.useEffect(()=>{!t.currentData||p(t.currentData)},[p,t.currentData]);let m=async s=>{await p(s)&&(n("c"),await t.onConnect(s))},u=()=>{confirm("Disconnect from Uniform? Make sure to save your API key if you want to reconnect.")&&(n("qc"),l(void 0),i(void 0),t.onConnect(null))};return(0,e.jsx)("div",null,o?(0,e.jsx)(O.ErrorMessage,{message:o}):null,r==="qc"||r==="mc"?(0,e.jsx)(ao,{...t,state:r,setState:n,onConnect:m}):(0,e.jsx)("div",null,a?(0,e.jsx)(T.Fragment,null,(0,e.jsx)("p",null,"Connected to"," ",(0,e.jsx)("a",{href:`${a==null?void 0:a.target.apiHost}/projects/${a==null?void 0:a.target.projectId}`,target:"_blank",rel:"noopener noreferrer",css:{textDecoration:"underline"}},(0,e.jsx)("strong",null,a==null?void 0:a.manifest.project.name))," ",(0,e.jsx)("small",null,"(",a==null?void 0:a.manifest.project.id,")")),(0,e.jsx)(O.Button,{buttonType:"secondary",type:"button",onClick:u},"Disconnect")):null))}function ao({setState:t,state:r,currentData:n,onConnect:o}){var i,a,l;return(0,e.jsx)("div",null,(0,e.jsx)(P.Formik,{initialValues:{apiHost:(i=n==null?void 0:n.apiHost)!=null?i:"https://uniform.dev",apiKey:(a=n==null?void 0:n.apiKey)!=null?a:"",projectId:(l=n==null?void 0:n.projectId)!=null?l:"",qc:""},onSubmit:o},({setFieldValue:p,setFieldError:m,errors:{qc:u},isSubmitting:s})=>(0,e.jsx)(P.Form,null,(0,e.jsx)("fieldset",{css:{display:"flex",flexDirection:"column",gap:"var(--spacing-base)"}},r==="qc"?(0,e.jsx)(T.Fragment,null,(0,e.jsx)("div",null,(0,e.jsx)(O.Input,{placeholder:"Paste Quick Connect Code Here",caption:"Copy the Quick Connect code after creating an API key in Uniform.",errorMessage:u,onChange:c=>{try{let d=(0,Pt.parseQuickConnect)(c.currentTarget.value);p("apiHost",d.apiHost),p("apiKey",d.apiKey),p("projectId",d.projectId)}catch(d){m("qc",d.message)}}})),(0,e.jsx)("section",{css:{display:"flex",gap:"var(--spacing-sm)"}},(0,e.jsx)(O.Button,{type:"submit",buttonType:"primary",disabled:s},s?"Verifying...":"Connect"),(0,e.jsx)(O.Button,{type:"button",buttonType:"ghost",onClick:()=>t("mc"),disabled:s},"Connect Manually"))):(0,e.jsx)(T.Fragment,null,(0,e.jsx)("div",null,(0,e.jsx)(P.Field,{component:ve,label:"API Key",name:"apiKey",caption:"Generate an API key in your Uniform team settings."})),(0,e.jsx)("div",null,(0,e.jsx)(P.Field,{component:ve,label:"Project ID",name:"projectId",caption:"Available to copy after generating an API key"})),(0,e.jsx)("div",null,(0,e.jsx)(P.Field,{component:ve,label:"API Host",name:"apiHost",caption:"Use a non-standard Uniform API endpoint. Most people will not not need this option."})),(0,e.jsx)("section",{css:{display:"flex",gap:"var(--spacing-sm)"}},(0,e.jsx)(O.Button,{type:"submit",buttonType:"primary",disabled:s},s?"Verifying...":"Connect"),(0,e.jsx)(O.Button,{type:"button",buttonType:"ghost",onClick:()=>t("qc"),disabled:s},"Use Quick Connect")))))))}var Mt=({settings:t,saveSettings:r})=>{let n=t.apiKey&&t.projectId?{apiKey:t.apiKey,projectId:t.projectId,apiHost:t.apiHost}:void 0;return(0,e.jsx)("article",{css:h.page},(0,e.jsx)("h1",{css:h.title},"Connect to a Uniform Project"),(0,e.jsx)("p",{css:h.text},(0,e.jsx)("small",null,"Adding an API key and project ID enables human-readable dimension labels to be shown. You must have access to the Uniform project to do this.")),(0,e.jsx)(Ht,{onConnect:async o=>{o?await r({...t,apiKey:o.apiKey,projectId:o.projectId,apiHost:o.apiHost}):await r({...t,apiKey:void 0,projectId:void 0,apiHost:void 0})},currentData:n}))};var co=Re.css`
843
+ }`)}var Ce=require("react"),It=require("react-use");var Rt=()=>{let[t,r]=(0,Ce.useState)(!1),n=(0,It.useMountedState)();return(0,Ce.useEffect)(()=>{setTimeout(()=>{n()&&r(!0)},1e3)},[n]),t?(0,e.jsx)("article",{css:h.page},(0,e.jsx)("h1",null,"Loading..."),(0,e.jsx)("p",null,"Connecting to Uniform API for complete data.")):null};var Vt=require("@uniformdev/context"),we=require("@uniformdev/context/api"),P=require("formik"),T=D(require("react")),O=require("@uniformdev/design-system");function Pt(t){let[r,n]=T.useState(t.currentData?"c":"qc"),[o,i]=T.useState(void 0),[a,l]=T.useState(void 0),p=T.useCallback(async s=>{let c=new we.ManifestClient(s);i(void 0);try{let d=await c.get({preview:!0});return l({manifest:d,target:s}),d}catch(d){if(d instanceof we.ApiClientError){d.statusCode===403?i("API key is valid but does not have Context > Read Drafts permission, or the API key does not have permissions to the project, or the project does not exist."):i(d.errorMessage);return}if("message"in d){d.message==="Failed to fetch"?i("A network error occurred. Ensure the API host is valid."):i(d.message);return}i(JSON.stringify(d,null,2));return}},[]);T.useEffect(()=>{!t.currentData||p(t.currentData)},[p,t.currentData]);let m=async s=>{await p(s)&&(n("c"),await t.onConnect(s))},u=()=>{confirm("Disconnect from Uniform? Make sure to save your API key if you want to reconnect.")&&(n("qc"),l(void 0),i(void 0),t.onConnect(null))};return(0,e.jsx)("div",null,o?(0,e.jsx)(O.ErrorMessage,{message:o}):null,r==="qc"||r==="mc"?(0,e.jsx)(so,{...t,state:r,setState:n,onConnect:m}):(0,e.jsx)("div",null,a?(0,e.jsx)(T.Fragment,null,(0,e.jsx)("p",null,"Connected to"," ",(0,e.jsx)("a",{href:`${a==null?void 0:a.target.apiHost}/projects/${a==null?void 0:a.target.projectId}`,target:"_blank",rel:"noopener noreferrer",css:{textDecoration:"underline"}},(0,e.jsx)("strong",null,a==null?void 0:a.manifest.project.name))," ",(0,e.jsx)("small",null,"(",a==null?void 0:a.manifest.project.id,")")),(0,e.jsx)(O.Button,{buttonType:"secondary",type:"button",onClick:u},"Disconnect")):null))}function so({setState:t,state:r,currentData:n,onConnect:o}){var i,a,l;return(0,e.jsx)("div",null,(0,e.jsx)(P.Formik,{initialValues:{apiHost:(i=n==null?void 0:n.apiHost)!=null?i:"https://uniform.dev",apiKey:(a=n==null?void 0:n.apiKey)!=null?a:"",projectId:(l=n==null?void 0:n.projectId)!=null?l:"",qc:""},onSubmit:o},({setFieldValue:p,setFieldError:m,errors:{qc:u},isSubmitting:s})=>(0,e.jsx)(P.Form,null,(0,e.jsx)("fieldset",{css:{display:"flex",flexDirection:"column",gap:"var(--spacing-base)"}},r==="qc"?(0,e.jsx)(T.Fragment,null,(0,e.jsx)("div",null,(0,e.jsx)(O.Input,{placeholder:"Paste Quick Connect Code Here",caption:"Copy the Quick Connect code after creating an API key in Uniform.",errorMessage:u,onChange:c=>{try{let d=(0,Vt.parseQuickConnect)(c.currentTarget.value);p("apiHost",d.apiHost),p("apiKey",d.apiKey),p("projectId",d.projectId)}catch(d){m("qc",d.message)}}})),(0,e.jsx)("section",{css:{display:"flex",gap:"var(--spacing-sm)"}},(0,e.jsx)(O.Button,{type:"submit",buttonType:"primary",disabled:s},s?"Verifying...":"Connect"),(0,e.jsx)(O.Button,{type:"button",buttonType:"ghost",onClick:()=>t("mc"),disabled:s},"Connect Manually"))):(0,e.jsx)(T.Fragment,null,(0,e.jsx)("div",null,(0,e.jsx)(P.Field,{component:ve,label:"API Key",name:"apiKey",caption:"Generate an API key in your Uniform team settings."})),(0,e.jsx)("div",null,(0,e.jsx)(P.Field,{component:ve,label:"Project ID",name:"projectId",caption:"Available to copy after generating an API key"})),(0,e.jsx)("div",null,(0,e.jsx)(P.Field,{component:ve,label:"API Host",name:"apiHost",caption:"Use a non-standard Uniform API endpoint. Most people will not not need this option."})),(0,e.jsx)("section",{css:{display:"flex",gap:"var(--spacing-sm)"}},(0,e.jsx)(O.Button,{type:"submit",buttonType:"primary",disabled:s},s?"Verifying...":"Connect"),(0,e.jsx)(O.Button,{type:"button",buttonType:"ghost",onClick:()=>t("qc"),disabled:s},"Use Quick Connect")))))))}var Ht=({settings:t,saveSettings:r})=>{let n=t.apiKey&&t.projectId?{apiKey:t.apiKey,projectId:t.projectId,apiHost:t.apiHost}:void 0;return(0,e.jsx)("article",{css:h.page},(0,e.jsx)("h1",{css:h.title},"Connect to a Uniform Project"),(0,e.jsx)("p",{css:h.text},(0,e.jsx)("small",null,"Adding an API key and project ID enables human-readable dimension labels to be shown. You must have access to the Uniform project to do this.")),(0,e.jsx)(Pt,{onConnect:async o=>{o?await r({...t,apiKey:o.apiKey,projectId:o.projectId,apiHost:o.apiHost}):await r({...t,apiKey:void 0,projectId:void 0,apiHost:void 0})},currentData:n}))};var ao=Ve.css`
844
844
  background: var(--white);
845
845
  padding: var(--spacing-base);
846
846
  overflow-y: auto;
@@ -869,7 +869,7 @@ summary {
869
869
  &::-webkit-scrollbar-thumb:hover {
870
870
  background: var(--gray-500);
871
871
  }
872
- `;function Ve(t){let r=Dt(t.settings,t.state.manifest),n=It(t.settings,t.state.data.quirks),o={...t,dimensionIndex:r,quirksIndex:n},i=()=>{var a;if(r.loading||n.loading)return(0,e.jsx)(Vt,null);if(t.settings.route&&t.settings.route.match(/overrides\/\w+/))return(0,e.jsx)(Le,{...o});switch((a=t.settings)==null?void 0:a.route){case void 0:case"/":case"/dimensions":return(0,e.jsx)(rt,{...o});case"/overrides":return(0,e.jsx)(st,{...o});case"/overrides/add":return(0,e.jsx)(Le,{...o});case"/quirks":return(0,e.jsx)(Ct,{...o});case"/settings":return(0,e.jsx)(kt,{...o});case"/connect":return(0,e.jsx)(Mt,{...o});default:return(0,e.jsx)(Qe,null)}};return(0,e.jsx)(Fe,{settings:t.settings,saveSettings:t.saveSettings},(0,e.jsx)(ye,null),(0,e.jsx)("div",{css:Re.css`
872
+ `;function Pe(t){let r=St(t.settings,t.state.manifest),n=Ot(t.settings,t.state.data.quirks),o={...t,dimensionIndex:r,quirksIndex:n},i=()=>{var a;if(r.loading||n.loading)return(0,e.jsx)(Rt,null);if(t.settings.route&&t.settings.route.match(/overrides\/\w+/))return(0,e.jsx)(Oe,{...o});switch((a=t.settings)==null?void 0:a.route){case void 0:case"/":case"/dimensions":return(0,e.jsx)(rt,{...o});case"/overrides":return(0,e.jsx)(st,{...o});case"/overrides/add":return(0,e.jsx)(Oe,{...o});case"/quirks":return(0,e.jsx)(yt,{...o});case"/settings":return(0,e.jsx)(wt,{...o});case"/connect":return(0,e.jsx)(Ht,{...o});default:return(0,e.jsx)(Qe,null)}};return(0,e.jsx)(Fe,{settings:t.settings,saveSettings:t.saveSettings},(0,e.jsx)(ye,null),(0,e.jsx)("div",{css:Ve.css`
873
873
  display: grid;
874
874
  grid-template-columns: 200px auto;
875
875
  font-weight: var(--font-regular);
@@ -878,7 +878,7 @@ summary {
878
878
  line-height: var(--base-line-height);
879
879
  height: var(--min-height);
880
880
  min-width: var(--site-width);
881
- `},(0,e.jsx)(Be,{...t}),(0,e.jsx)("main",{css:co},(0,e.jsx)(Ie,{...t}),i())))}var ke=require("@uniformdev/context"),I=D(require("react"));var Pe="embeddedUniformDevToolsSettings";function He({context:t,initialSettings:r}){let n=t!=null?t:typeof window!="undefined"?window.__UNIFORM_DEVTOOLS_CONTEXT_INSTANCE__:void 0,o=n!=null?n:new ke.Context({manifest:{project:{}}}),[i,a]=I.useState({data:o.storage.data,manifest:o.manifest.data,scores:o.scores,personalizations:[],tests:[]}),[l,p]=I.useState(r!=null?r:{});I.useEffect(()=>{var c;let s=(0,ke.createDebugConsoleLogDrain)((c=l.logLevel)!=null?c:"none");return o.events.on("log",s),()=>{o.events.off("log",s)}},[l,o]),I.useEffect(()=>{let s=()=>{let f=window.localStorage.getItem(Pe)||"{}",v=JSON.parse(f),y=ge({quirks:o.storage.data.quirks,quirkOverrides:v.quirkOverrides});y&&(console.log("Applying overridden quirks:",y),o.update({quirks:y}));let C=$({scores:o.scores,scoreOverrides:v.scoreOverrides});C.length&&(console.log("Applying overridden scores:",C),o.storage.updateData(C)),a(w=>({...w,scores:o.scores,data:o.storage.data,manifest:o.manifest.data}))},c=f=>{!f.changed||a(v=>({...v,personalizations:[...v.personalizations,f]}))},d=f=>{!f.variantAssigned||a(v=>({...v,tests:[...v.tests,f]}))};return o.events.on("personalizationResult",c),o.events.on("testResult",d),o.storage.events.on("*",s),()=>{o.storage.events.off("*",s),o.events.off("personalizationResult",c),o.events.off("testResult",d)}},[o]),I.useEffect(()=>{if(window.localStorage){let s=window.localStorage.getItem(Pe);if(s)try{let c=JSON.parse(s),d={...r,...c};p(d);let f=$({scores:i.scores,scoreOverrides:d.scoreOverrides});m.rawUpdate(f)}catch(c){window.localStorage.removeItem(Pe),console.error("Failed to parse settings from localStorage: ",c.message)}}},[]);let{actions:m,saveSettings:u}=I.useMemo(()=>({actions:{update:d=>o.update(d),forget:()=>o.forget(!1),rawUpdate:d=>o.storage.updateData(d)},saveSettings:async d=>{p(d),window.localStorage&&window.localStorage.setItem("embeddedUniformDevToolsSettings",JSON.stringify(d))}}),[o]);return n?(0,e.jsx)(Ve,{state:i,actions:m,settings:l,saveSettings:u}):(0,e.jsx)("p",null,"Unable to find Uniform Context. Ensure the devtools plugin is activated.")}var zt=require("@emotion/react"),Ft=D(require("react"));var At=require("@emotion/react"),lo=At.css`
881
+ `},(0,e.jsx)(Be,{...t}),(0,e.jsx)("main",{css:ao},(0,e.jsx)(Re,{...t}),i())))}var ke=require("@uniformdev/context"),I=D(require("react"));var He="embeddedUniformDevToolsSettings";function Me({context:t,initialSettings:r}){let n=t!=null?t:typeof window!="undefined"?window.__UNIFORM_DEVTOOLS_CONTEXT_INSTANCE__:void 0,o=n!=null?n:new ke.Context({manifest:{project:{}}}),[i,a]=I.useState({data:o.storage.data,manifest:o.manifest.data,scores:o.scores,personalizations:[],tests:[]}),[l,p]=I.useState(r!=null?r:{});I.useEffect(()=>{var c;let s=(0,ke.createDebugConsoleLogDrain)((c=l.logLevel)!=null?c:"none");return o.events.on("log",s),()=>{o.events.off("log",s)}},[l,o]),I.useEffect(()=>{let s=()=>{let f=window.localStorage.getItem(He)||"{}",v=JSON.parse(f),y=ge({quirks:o.storage.data.quirks,quirkOverrides:v.quirkOverrides});y&&(console.log("Applying overridden quirks:",y),o.update({quirks:y}));let C=$({scores:o.scores,scoreOverrides:v.scoreOverrides});C.length&&(console.log("Applying overridden scores:",C),o.storage.updateData(C)),a(w=>({...w,scores:o.scores,data:o.storage.data,manifest:o.manifest.data}))},c=f=>{!f.changed||a(v=>({...v,personalizations:[...v.personalizations,f]}))},d=f=>{!f.variantAssigned||a(v=>({...v,tests:[...v.tests,f]}))};return o.events.on("personalizationResult",c),o.events.on("testResult",d),o.storage.events.on("*",s),()=>{o.storage.events.off("*",s),o.events.off("personalizationResult",c),o.events.off("testResult",d)}},[o]),I.useEffect(()=>{if(window.localStorage){let s=window.localStorage.getItem(He);if(s)try{let c=JSON.parse(s),d={...r,...c};p(d);let f=$({scores:i.scores,scoreOverrides:d.scoreOverrides});m.rawUpdate(f)}catch(c){window.localStorage.removeItem(He),console.error("Failed to parse settings from localStorage: ",c.message)}}},[]);let{actions:m,saveSettings:u}=I.useMemo(()=>({actions:{update:d=>o.update(d),forget:()=>o.forget(!1),rawUpdate:d=>o.storage.updateData(d)},saveSettings:async d=>{p(d),window.localStorage&&window.localStorage.setItem("embeddedUniformDevToolsSettings",JSON.stringify(d))}}),[o]);return n?(0,e.jsx)(Pe,{state:i,actions:m,settings:l,saveSettings:u}):(0,e.jsx)("p",null,"Unable to find Uniform Context. Ensure the devtools plugin is activated.")}var Et=require("@emotion/react"),zt=D(require("react"));var Mt=require("@emotion/react"),co=Mt.css`
882
882
  align-items: center;
883
883
  border-radius: var(--rounded-full);
884
884
  background: var(--brand-secondary-5);
@@ -904,11 +904,11 @@ summary {
904
904
  max-width: 100%;
905
905
  height: auto;
906
906
  }
907
- `,Et=({...t})=>(0,e.jsx)("button",{type:"button",css:lo,...t},(0,e.jsx)("span",{hidden:!0},"Uniform devtools"),(0,e.jsx)("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},(0,e.jsx)("path",{d:"M13.325 3.05011L8.66741 20.4323L10.5993 20.9499L15.2568 3.56775L13.325 3.05011Z",fill:"currentColor"}),(0,e.jsx)("path",{d:"M7.61197 18.3608L8.97136 16.9124L8.97086 16.8933L3.87657 12.1121L8.66699 7.00798L7.20868 5.63928L1.04956 12.2017L7.61197 18.3608Z",fill:"currentColor"}),(0,e.jsx)("path",{d:"M16.388 18.3608L15.0286 16.9124L15.0291 16.8933L20.1234 12.1121L15.333 7.00798L16.7913 5.63928L22.9504 12.2017L16.388 18.3608Z",fill:"currentColor"})));function po(t){var i;let[r,n]=Ft.useState(!1);return((i=t.context)!=null?i:typeof window!="undefined"?window.__UNIFORM_DEVTOOLS_CONTEXT_INSTANCE__:void 0)?(0,e.jsx)("div",null,(0,e.jsx)(ye,null),(0,e.jsx)(Et,{onClick:()=>n(a=>!a)}),r?(0,e.jsx)("div",{css:zt.css`
907
+ `,At=({...t})=>(0,e.jsx)("button",{type:"button",css:co,...t},(0,e.jsx)("span",{hidden:!0},"Uniform devtools"),(0,e.jsx)("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},(0,e.jsx)("path",{d:"M13.325 3.05011L8.66741 20.4323L10.5993 20.9499L15.2568 3.56775L13.325 3.05011Z",fill:"currentColor"}),(0,e.jsx)("path",{d:"M7.61197 18.3608L8.97136 16.9124L8.97086 16.8933L3.87657 12.1121L8.66699 7.00798L7.20868 5.63928L1.04956 12.2017L7.61197 18.3608Z",fill:"currentColor"}),(0,e.jsx)("path",{d:"M16.388 18.3608L15.0286 16.9124L15.0291 16.8933L20.1234 12.1121L15.333 7.00798L16.7913 5.63928L22.9504 12.2017L16.388 18.3608Z",fill:"currentColor"})));function lo(t){var i;let[r,n]=zt.useState(!1);return((i=t.context)!=null?i:typeof window!="undefined"?window.__UNIFORM_DEVTOOLS_CONTEXT_INSTANCE__:void 0)?(0,e.jsx)("div",null,(0,e.jsx)(ye,null),(0,e.jsx)(At,{onClick:()=>n(a=>!a)}),r?(0,e.jsx)("div",{css:Et.css`
908
908
  box-shadow: var(--shadow-base);
909
909
  position: fixed;
910
910
  bottom: 82px;
911
911
  right: var(--spacing-base);
912
912
  z-index: var(--z-10);
913
913
  max-width: var(--site-width);
914
- `},(0,e.jsx)(He,{...t})):null):(0,e.jsx)("p",null,"Unable to find Uniform Context. Ensure the devtools plugin is activated.")}module.exports=_t(mo);0&&(module.exports={ContextDevTools,EmbeddedContextDevTools,ToggleEmbeddedContextDevTools});
914
+ `},(0,e.jsx)(Me,{...t})):null):(0,e.jsx)("p",null,"Unable to find Uniform Context. Ensure the devtools plugin is activated.")}0&&(module.exports={ContextDevTools,EmbeddedContextDevTools,ToggleEmbeddedContextDevTools});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uniformdev/context-devtools",
3
- "version": "13.0.1-alpha.133+5e32ce3cd",
3
+ "version": "13.0.1-alpha.271+7307a0d06",
4
4
  "description": "Uniform Context developer tools components",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "main": "./dist/index.js",
@@ -16,22 +16,22 @@
16
16
  "format": "prettier --write \"src/**/*.{js,ts,tsx}\""
17
17
  },
18
18
  "devDependencies": {
19
- "@types/chrome": "0.0.180",
19
+ "@types/chrome": "0.0.181",
20
20
  "@types/react": "17.0.44",
21
21
  "autoprefixer": "10.4.4",
22
22
  "postcss": "8.4.12",
23
- "tsup": "5.12.1"
23
+ "tsup": "5.12.5"
24
24
  },
25
25
  "dependencies": {
26
- "@emotion/react": "^11.8.1",
27
- "@uniformdev/context": "^13.0.1-alpha.133+5e32ce3cd",
28
- "@uniformdev/design-system": "^13.0.1-alpha.133+5e32ce3cd",
26
+ "@emotion/react": "11.9.0",
27
+ "@uniformdev/context": "^13.0.1-alpha.271+7307a0d06",
28
+ "@uniformdev/design-system": "^13.0.1-alpha.271+7307a0d06",
29
29
  "formik": "2.2.9",
30
- "react": "^17.0.2",
31
- "react-dom": "^17.0.2",
30
+ "react": "17.0.2",
31
+ "react-dom": "17.0.2",
32
32
  "react-use": "17.3.2",
33
33
  "reakit": "1.3.11",
34
- "yup": "^0.32.11"
34
+ "yup": "0.32.11"
35
35
  },
36
36
  "files": [
37
37
  "/dist"
@@ -39,5 +39,5 @@
39
39
  "publishConfig": {
40
40
  "access": "public"
41
41
  },
42
- "gitHead": "5e32ce3cd962560af97708369bf4c4c91a0116d1"
42
+ "gitHead": "7307a0d061e09506ffeb6a72798a986f0ea2da2c"
43
43
  }