@uniformdev/context-devtools 14.2.1-alpha.256 → 16.0.0

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 R}from"@emotion/react";import{createContext as it,useContext as at}from"react";var Ce=it({settings:{},saveSettings:()=>null}),we=()=>at(Ce),xe=({children:t,settings:n,saveSettings:r})=>e(Ce.Provider,{value:{settings:n,saveSettings:r}},t);var st=({route:t,children:n,className:r})=>{let{settings:o,saveSettings:i}=we();return e("a",{href:"",className:r,onClick:a=>{a.preventDefault(),i({...o,route:t})}},n)},P=st;var ct=[{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"
@@ -36,58 +36,84 @@ import{jsx as e}from"@emotion/react";import*as y from"react";import{css as R}fro
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
- `}],ke=({...t})=>{let n=r=>{var i;let o="active";return!((i=t.settings)!=null&&i.route)&&r==="/dimensions"||t.settings.route===r?o:""};return e("nav",{css:R`
39
+ `}],vt=`<svg width="24" height="24" fill="white" viewBox="0 0 122.88 116.67" xmlns="http://www.w3.org/2000/svg">
40
+ <g>
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
+ </g>
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`
40
44
  background: var(--brand-secondary-1);
41
45
  padding: var(--spacing-base);
42
46
  min-width: 200px;
43
- `},e(P,{css:R`
47
+ display: flex;
48
+ flex-direction: column;
49
+ `},e("a",{css:x`
50
+ flex-grow: 0;
44
51
  display: inline-block;
45
52
  margin: 0 var(--spacing-base);
46
- `,route:"/settings"},e("svg",{css:{display:"block"},width:"120",height:"38",viewBox:"0 0 120 38",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e("g",{clipPath:"url(#clip0_41_612)"},e("path",{d:"M8.82261 3.73315L0 8.82209V18.9999L8.82261 13.911L17.6474 8.82209L8.82261 3.73315Z",fill:"#83C6E1"}),e("path",{d:"M8.82261 24.089V13.9111L0 19.0001V29.1779L8.82261 34.2669L17.6474 29.1779V19.0001L8.82261 24.089Z",fill:"#438FD5"}),e("path",{d:"M17.6474 8.82202L8.82263 13.911L17.6474 18.9999V29.1777L26.47 24.0888V13.911L17.6474 8.82202Z",fill:"#F4220B"}),e("path",{d:"M64.6069 13.9025H67.8036V25.5528H64.6069V13.9025ZM64.4902 8.5415H67.9181V11.7348H64.4902V8.5415ZM72.5153 10.1025V13.9025H70.3691V16.6272H72.5153V25.5528H75.7119V16.6272H78.2774V13.9025H75.7119V11.2684H78.2774V8.5415H75.2213L72.5153 10.1025ZM83.1059 13.7859L80.3999 15.3469V24.1084L83.1059 25.6694H88.0748L90.7808 24.1084V15.3469L88.0748 13.7859H83.1059ZM87.5842 22.9425H83.5943V16.5106H87.5842V22.9425ZM97.4723 14.8611L95.8103 13.9025H94.2779V25.5528H97.4745V16.6272H101.486V13.9025H99.1344L97.4723 14.8611ZM55.713 13.7859L53.8499 14.8611L51.9847 13.7859H50.7289V25.5528H53.9256V16.5106H57.9133V25.5528H61.1099V15.3469L58.4039 13.7859H55.713ZM44.0353 22.9425H40.0454V13.9025H36.851V24.1084L39.557 25.6694H42.3753L44.0309 24.7129L44.0331 24.7151L44.0353 24.7129V24.7151L45.6887 25.6694H47.2297V13.9025H44.0353V22.9425ZM117.51 13.7859H115.271L113.079 15.0425L110.909 13.7859H108.67L107.015 14.7402L105.359 13.7859H103.818V25.5528H107.015V16.5106H110.421V25.5528H113.615V16.5106H117.022V25.5528H120.216V15.3469L117.51 13.7859Z",fill:"white"})),e("defs",null,e("clipPath",{id:"clip0_41_612"},e("rect",{width:"120",height:"38",fill:"white"}))))),e("ul",{css:R`
53
+ `,href:"https://uniform.dev/"},e("svg",{css:{display:"block"},width:"120",height:"38",viewBox:"0 0 120 38",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e("g",{clipPath:"url(#clip0_41_612)"},e("path",{d:"M8.82261 3.73315L0 8.82209V18.9999L8.82261 13.911L17.6474 8.82209L8.82261 3.73315Z",fill:"#83C6E1"}),e("path",{d:"M8.82261 24.089V13.9111L0 19.0001V29.1779L8.82261 34.2669L17.6474 29.1779V19.0001L8.82261 24.089Z",fill:"#438FD5"}),e("path",{d:"M17.6474 8.82202L8.82263 13.911L17.6474 18.9999V29.1777L26.47 24.0888V13.911L17.6474 8.82202Z",fill:"#F4220B"}),e("path",{d:"M64.6069 13.9025H67.8036V25.5528H64.6069V13.9025ZM64.4902 8.5415H67.9181V11.7348H64.4902V8.5415ZM72.5153 10.1025V13.9025H70.3691V16.6272H72.5153V25.5528H75.7119V16.6272H78.2774V13.9025H75.7119V11.2684H78.2774V8.5415H75.2213L72.5153 10.1025ZM83.1059 13.7859L80.3999 15.3469V24.1084L83.1059 25.6694H88.0748L90.7808 24.1084V15.3469L88.0748 13.7859H83.1059ZM87.5842 22.9425H83.5943V16.5106H87.5842V22.9425ZM97.4723 14.8611L95.8103 13.9025H94.2779V25.5528H97.4745V16.6272H101.486V13.9025H99.1344L97.4723 14.8611ZM55.713 13.7859L53.8499 14.8611L51.9847 13.7859H50.7289V25.5528H53.9256V16.5106H57.9133V25.5528H61.1099V15.3469L58.4039 13.7859H55.713ZM44.0353 22.9425H40.0454V13.9025H36.851V24.1084L39.557 25.6694H42.3753L44.0309 24.7129L44.0331 24.7151L44.0353 24.7129V24.7151L45.6887 25.6694H47.2297V13.9025H44.0353V22.9425ZM117.51 13.7859H115.271L113.079 15.0425L110.909 13.7859H108.67L107.015 14.7402L105.359 13.7859H103.818V25.5528H107.015V16.5106H110.421V25.5528H113.615V16.5106H117.022V25.5528H120.216V15.3469L117.51 13.7859Z",fill:"white"})),e("defs",null,e("clipPath",{id:"clip0_41_612"},e("rect",{width:"120",height:"38",fill:"white"}))))),e("ul",{css:x`
47
54
  display: flex;
48
55
  flex-flow: column nowrap;
49
56
  padding: 0;
50
57
  margin: 0;
51
58
  list-style-type: none;
52
- height: calc(100% - var(--spacing-base) * 2.5);
53
- `},ct.map((r,o)=>e("li",{css:R`
54
- padding: 0;
55
- margin: 0;
56
- list-style-type: none;
57
-
58
- &:last-of-type {
59
- margin-top: auto;
60
- }
61
- `,key:o},e(P,{css:R`
62
- align-items: center;
63
- border-radius: var(--rounded-base);
64
- display: flex;
65
- color: var(--white);
66
- gap: var(--spacing-sm);
67
- padding: var(--spacing-sm) var(--spacing-base);
68
- text-decoration: none;
69
- transition: background-color 0.25s ease-in-out;
70
-
71
- &:hover,
72
- &.active {
73
- background: var(--gray-700);
59
+ flex-grow: 1;
60
+ `},ft.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),e("li",{css:x`
61
+ padding: 0;
62
+ margin: 0;
63
+ list-style-type: none;
64
+
65
+ &:last-of-type {
66
+ margin-top: auto;
74
67
  }
75
- `,className:n(r.href),route:r.href},e("i",{css:R`
68
+ `,key:l},e(H,{css:x`
76
69
  align-items: center;
70
+ border-radius: var(--rounded-base);
77
71
  display: flex;
78
- `,dangerouslySetInnerHTML:{__html:r.icon}}),r.title,r.href==="/overrides"&&Object.keys(t.overrides.scores).length>0&&e("span",{css:R`
79
- font-size: var(--font-xxs);
80
- display: inline-block;
81
- width: 12px;
82
- height: 12px;
83
- border-radius: 6px;
84
- background-color: var(--red-tooltip);
85
- text-align: center;
86
- `},Object.keys(t.overrides.scores).length))))))};var Le=()=>e("article",null,e("h1",null,"Something when wrong"),e("p",null,"We could not find the page you're looking for."));import*as te from"react";import{css as A}from"@emotion/react";import*as W from"react";var Te=A({willChange:"height"}),dt=A`
72
+ color: var(--white);
73
+ gap: var(--spacing-sm);
74
+ padding: var(--spacing-sm) var(--spacing-base);
75
+ text-decoration: none;
76
+ transition: background-color 0.25s ease-in-out;
77
+
78
+ &:hover,
79
+ &.active {
80
+ background: var(--gray-700);
81
+ }
82
+ `,className:r(a.href),route:a.href},e("i",{css:x`
83
+ align-items: center;
84
+ display: flex;
85
+ `,dangerouslySetInnerHTML:{__html:a.icon}}),a.title,p?e("span",{css:x`
86
+ font-size: var(--font-xxs);
87
+ display: inline-block;
88
+ width: 12px;
89
+ height: 12px;
90
+ border-radius: 6px;
91
+ background-color: var(--red-tooltip);
92
+ text-align: center;
93
+ line-height: 12px;
94
+ `},p):null))})),!n&&e("a",{target:"_blank",href:"https://chrome.google.com/webstore/detail/uniform-context/dcmlokofjljnfjcknpmhjocogllfbhkg",css:x`
95
+ align-items: center;
96
+ border-radius: var(--rounded-base);
97
+ display: flex;
98
+ font-size: var(--font-sm);
99
+ color: var(--white);
100
+ gap: var(--spacing-sm);
101
+ padding: var(--spacing-sm) var(--spacing-base);
102
+ text-decoration: none;
103
+ transition: background-color 0.25s ease-in-out;
104
+
105
+ &:hover,
106
+ &.active {
107
+ background: var(--gray-700);
108
+ }
109
+ `,rel:"noreferrer"},e("i",{css:x`
110
+ align-items: center;
111
+ display: flex;
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`
87
113
  border-bottom: 2px solid var(--brand-secondary-1);
88
114
  font-size: var(--font-base);
89
115
  margin: 0;
90
- `,lt=A`
116
+ `,bt=M`
91
117
  align-items: center;
92
118
  border: none;
93
119
  background: none;
@@ -97,46 +123,13 @@ import{jsx as e}from"@emotion/react";import*as y from"react";import{css as R}fro
97
123
  padding: var(--spacing-sm) 0;
98
124
  font-weight: var(--font-bold);
99
125
  justify-content: space-between;
100
- `,pt=A`
126
+ `,yt=M`
101
127
  align-self: center;
102
- `,mt=A`
128
+ `,Ct=M`
103
129
  transform: rotate(-180deg);
104
- `,E=({children:t})=>e("div",{css:[Te]},t),O=({title:t,children:n})=>{let[r,o]=W.useState(!1),i=t.split(" ").join("-").toLocaleLowerCase();return e(W.Fragment,null,e("h3",{css:dt},e("button",{"aria-expanded":r,css:lt,title:t,id:i,"aria-controls":`${i}-section`,onClick:()=>o(a=>!a),type:"button"},t,e("i",{css:[pt,r?mt: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:[Te,A`
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`
105
131
  padding: var(--spacing-sm) 0;
106
- `],role:"region","aria-labelledby":i},r?n:null))};import{css as M}from"@emotion/react";import*as De from"react";var ut=M`
107
- align-items: center;
108
- border: 1px solid transparent;
109
- cursor: pointer;
110
- display: inline-flex;
111
- padding: var(--spacing-sm) var(--spacing-base);
112
- transition: opacity 0.2s ease-in-out, border-color 0.2s ease-in-out;
113
- font-size: var(--font-sm);
114
- &:hover {
115
- opacity: 0.8;
116
- }
117
- `;function gt(t){let n=M`
118
- color: var(--white);
119
- `,r=M`
120
- font-weight: var(--font-bold);
121
- `;switch(t){case"primary":return M`
122
- background: var(--brand-secondary-1);
123
- ${n}
124
- ${r}
125
- `;case"secondary":return M`
126
- background: var(--brand-secondary-5);
127
- ${n}
128
- ${r}
129
- `;case"unimportant":return M`
130
- background: var(--brand-secondary-3);
131
- color: var(--brand-secondary-1);
132
- ${r}
133
- `;case"ghost":return M`
134
- background: transparent;
135
- color: var(--brand-secondary-5);
136
- &:hover {
137
- border: 1px solid var(--brand-secondary-5);
138
- }
139
- `}}var w=({buttonType:t="primary",children:n,className:r,...o})=>e(De.Fragment,null,e("button",{type:"button",css:[ut,gt(t)],className:r,...o},n));import{css as z}from"@emotion/react";var q=z`
132
+ `],role:"region","aria-labelledby":i},n?r:null))};import{css as A}from"@emotion/react";var W=A`
140
133
  background-color: var(--gray-100);
141
134
  padding: var(--spacing-base) var(--spacing-md);
142
135
  margin: var(--spacing-base) 0;
@@ -144,21 +137,21 @@ import{jsx as e}from"@emotion/react";import*as y from"react";import{css as R}fro
144
137
  &:first-of-type {
145
138
  margin: 0 0 var(--spacing-base);
146
139
  }
147
- `,Se=z`
140
+ `,ke=A`
148
141
  background: var(--gray-100)
149
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")
150
143
  no-repeat var(--spacing-sm) var(--spacing-base);
151
144
  padding: var(--spacing-base) var(--spacing-xl);
152
- `,Y=z`
145
+ `,Y=A`
153
146
  color: var(--brand-secondary-1);
154
147
  margin: 0;
155
148
  font-size: var(--font-base);
156
149
  font-weight: var(--font-bold);
157
- `,X=z`
150
+ `,J=A`
158
151
  color: var(--brand-secondary-1);
159
152
  margin: var(--spacing-xs) 0 0;
160
153
  font-size: var(--font-sm);
161
- `,Ie=z`
154
+ `,Te=A`
162
155
  align-items: center;
163
156
  border: none;
164
157
  background: transparent
@@ -178,71 +171,25 @@ import{jsx as e}from"@emotion/react";import*as y from"react";import{css as R}fro
178
171
  &:hover {
179
172
  opacity: 0.6;
180
173
  }
181
- `,J=z`
174
+ `,X=A`
182
175
  display: flex;
183
176
  margin: var(--spacing-sm) 0 0;
184
177
  gap: var(--spacing-base);
185
- `;var B=({title:t,text:n,buttonGroup:r,children:o})=>e("div",{css:q},e("h2",{css:Y},t),e("p",{css:X},n),o,r?e("div",{css:J},r):null);import{css as _}from"@emotion/react";var de=_`
186
- align-items: center;
187
- cursor: pointer;
188
- display: flex;
189
- gap: var(--spacing-xs);
190
- margin-top: var(--spacing-base);
191
- `,le=_`
192
- color: var(--gray-500);
193
- font-size: var(--font-sm);
194
- `,Po=_`
195
- background: var(--gray-600);
196
- `,pe=_`
197
- display: block;
198
- background: var(--gray-400);
199
- border-radius: var(--rounded-full);
200
- position: relative;
201
- height: 16px;
202
- width: 32px;
203
- &:before {
204
- border-radius: var(--rounded-full);
205
- background: var(--white);
206
- content: '';
207
- display: block;
208
- width: 13px;
209
- height: 13px;
210
- position: absolute;
211
- top: 0;
212
- bottom: 0;
213
- margin: auto 0;
214
- transform: translateX(2px);
215
- transition: transform 0.2s ease-in-out, background-color 0.3s ease-in-out;
216
- }
217
- `,me=_`
218
- overflow: hidden;
219
- clip: rect(0, 0, 0, 0);
220
- height: 0;
221
- width: 0;
222
- text-indent: -9999px;
223
-
224
- &:checked ~ :before {
225
- transform: translateX(17px);
226
- }
227
-
228
- &:checked ~ span {
229
- background: var(--brand-secondary-5);
230
- }
231
- `;var Pe=({label:t,...n})=>e("label",{css:de},e("span",{css:le},t),e("input",{type:"checkbox",css:me,...n}),e("span",{css:pe})),ue=({field:t,form:n,meta:r,...o})=>{let{label:i}=o;return e("label",{css:de},e("span",{css:le},i),e("input",{type:"checkbox",css:me,checked:t.value,...t}),e("span",{css:pe}))};import{css as k,keyframes as ft}from"@emotion/react";var bt=ft`from {
178
+ `;var E=({title:t,text:r,buttonGroup:n,children:o})=>e("div",{css:W},e("h2",{css:Y},t),e("p",{css:J},r),o,n?e("div",{css:X},n):null);import{css as D,keyframes as wt}from"@emotion/react";var kt=wt`from {
232
179
  transform: scale(1);
233
180
  }
234
181
  to {
235
182
  transform: scale(1.2);
236
183
  }
237
- `,h={page:k`
184
+ `,b={page:D`
238
185
  color: var(--brand-secondary-1);
239
- `,text:k`
186
+ `,text:D`
240
187
  margin: var(--spacing-sm) 0;
241
- `,reset:k`
188
+ `,reset:D`
242
189
  margin: 0 var(--spacing-md);
243
190
  font-size: var(--font-sm);
244
191
  color: var(--gray-500);
245
- `,title:k`
192
+ `,title:D`
246
193
  margin: 0 0 var(--spacing-sm);
247
194
  font-size: var(--font-md);
248
195
  & > small {
@@ -251,12 +198,12 @@ to {
251
198
  font-weight: var(--font-regular);
252
199
  margin: var(--spacing-xxs) 0 0;
253
200
  }
254
- `,headingGroup:k`
201
+ `,headingGroup:D`
255
202
  align-items: baseline;
256
203
  display: flex;
257
204
  justify-content: space-between;
258
205
  align-items: center;
259
- `,divider:k`
206
+ `,divider:D`
260
207
  background: var(--gray-300);
261
208
  display: block;
262
209
  width: 1px;
@@ -264,59 +211,66 @@ to {
264
211
  position: absolute;
265
212
  inset: 0 auto 0 0;
266
213
  margin: auto 0;
267
- `,submitButton:k`
214
+ `,submitButton:D`
268
215
  position: absolute;
269
216
  right: var(--spacing-base);
270
217
  bottom: var(--spacing-base);
271
- animation: 0.5s 2 alternate ${bt};
272
- `,cancelButton:k`
218
+ animation: 0.5s 2 alternate ${kt};
219
+ `,cancelButton:D`
273
220
  position: absolute;
274
221
  left: calc(200px + var(--spacing-base));
275
222
  bottom: var(--spacing-base);
276
223
  background: white;
277
224
  padding: var(--spacing-sm);
278
- `,error:k`
225
+ border: 1px solid var(--gray-300);
226
+ `,error:D`
279
227
  color: var(--brand-secondary-5);
280
228
  font-size: var(--font-sm);
229
+ `,quirks:D`
230
+ .uniform-input-select,
231
+ input {
232
+ padding: var(--spacing-sm);
233
+ }
281
234
  `};import{css as L}from"@emotion/react";var j=({children:t})=>e("table",{css:L`
282
235
  border-collapse: collapse;
283
236
  display: table;
284
237
  width: 100%;
285
238
  font-size: var(--font-sm);
286
- `},t),Re=({children:t})=>e("thead",{css:L`
239
+ `},t),Se=({children:t})=>e("thead",{css:L`
287
240
  background: var(--gray-50);
288
241
  text-align: left;
289
242
  & tr {
290
243
  border-bottom: 1px solid var(--gray-200);
291
244
  }
292
- `},t),ee=({children:t})=>e("tbody",null,t),G=({border:t,children:n})=>e("tr",{css:t?L`
245
+ `},t),ee=({children:t})=>e("tbody",null,t),B=({border:t,children:r})=>e("tr",{css:t?L`
293
246
  border-bottom: 1px solid var(--gray-200);
294
247
  &:where(:last-child) {
295
248
  border: none;
296
249
  }
297
- `:void 0},n),ge=({children:t})=>e("th",{css:L`
250
+ `:void 0},r),te=({children:t,width:r})=>e("th",{css:L`
298
251
  outline: none;
299
252
  padding: var(--spacing-sm);
300
- `},t);function vt(t){switch(t){case"light":return L`
253
+ width: ${r!=null?r:"auto"};
254
+ `},t);function Tt(t){switch(t){case"light":return L`
301
255
  color: var(--gray-400);
302
256
  `;case"dark":return L`
303
257
  color: var(--brand-secondary-1);
304
- `}}function ht(t){return L`
258
+ `}}function St(t){return L`
305
259
  text-align: ${t};
306
- `}var T=({alignment:t="left",border:n,color:r="dark",children:o})=>e("td",{css:[L`
260
+ `}var I=({alignment:t="left",border:r,color:n="dark",children:o})=>e("td",{css:[L`
307
261
  padding: var(--spacing-base);
308
262
  max-width: 180px;
309
263
  overflow-wrap: break-word;
310
264
  position: relative;
311
- `,vt(r),ht(t),n?L`
265
+ `,Tt(n),St(t),r?L`
312
266
  border-left: 1px solid var(--gray-200);
313
- `:void 0]},o);import{css as fe}from"@emotion/react";var Me=fe`
267
+ `:void 0]},o);import{css as ce}from"@emotion/react";var De=ce`
314
268
  position: relative;
315
269
  display: inline-block;
316
270
  font-size: var(--font-base);
317
- `,Ve=fe`
271
+ `,xe=ce`
318
272
  display: block;
319
- `,He=fe`
273
+ `,Le=ce`
320
274
  position: absolute;
321
275
  width: 6px;
322
276
  height: 6px;
@@ -324,35 +278,82 @@ to {
324
278
  top: 9px;
325
279
  background: var(--red-tooltip);
326
280
  border-radius: 3px;
327
- `;import{css as yt}from"@emotion/react";var Ct=`<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
281
+ `;import{css as Dt}from"@emotion/react";var xt=`<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
328
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"/>
329
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"/>
330
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"/>
331
- </svg>`,wt=`<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
285
+ </svg>`,Lt=`<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
332
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"/>
333
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"/>
334
288
  <path d="M11.9999 5.05762H8.3999V6.2576H11.9999V5.05762Z" fill="#828282"/>
335
289
  <path d="M8.3999 7.45752H11.9999V8.6575H8.3999V7.45752Z" fill="#828282"/>
336
290
  <path d="M11.9999 2.65771H8.3999V3.8577H11.9999V2.65771Z" fill="#828282"/>
337
- </svg>`,Ae=`<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">
338
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"/>
339
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"/>
340
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"/>
341
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"/>
342
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"/>
343
- </svg>`,Ee=({type:t})=>{let n="";switch(t){case"Audience":n=Ct;break;case"Signal":n=Ae;break;case"Intent":n=Ae;break;case"Enrichment":n=wt;break}return e("i",{css:yt`
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`
344
298
  align-items: center;
345
299
  display: inline-block;
346
- `,dangerouslySetInnerHTML:{__html:n}})};var xt=({dimensionIndex:t,dimensions:n,overrides:r,disableEditOverride:o,onClick:i})=>e(j,null,e(ee,null,Object.entries(n).map(([a,u])=>{var m;let{dim:g,name:c,type:s,category:d}=(m=t[a])!=null?m:{name:a,dim:a,type:void 0,category:void 0};return e(G,{key:g},e(T,null,r.scores[g]!==void 0&&e("s",{css:Ve},u-r.scores[g]),e("b",{css:Me},u,r.scores[g]!==void 0&&e("i",{css:He}))),e(T,null,e("div",{onClick:()=>i==null?void 0:i(g),css:i?{cursor:"pointer"}:void 0},e("span",{css:h.divider,role:"presentation"}),e("div",null,e(Ee,{type:s})," ",s),e("strong",null,d?`${d}:`:""," ",c))),e(T,{alignment:"right",color:"light"},r.scores[g]!==void 0&&!o?e(P,{route:`/overrides/${g}`},"Edit override"):null))}))),V=xt;import{css as kt}from"@emotion/react";var Lt=kt`
347
- background: none;
348
- border: none;
349
- color: var(--brand-secondary-3);
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
+ position: relative;
302
+ display: inline-block;
303
+ margin-right: var(--spacing-sm);
304
+ transition: var(--duration) var(--timing);
305
+ vertical-align: middle;
306
+ user-select: none;
307
+ width: var(--spacing-xl);
308
+ `,Pe=Q`
309
+ appearance: none;
310
+ border-radius: var(--rounded-full);
311
+ background-color: var(--white);
312
+ border: 2px solid var(--gray-400);
350
313
  cursor: pointer;
351
- padding: 0;
314
+ position: absolute;
315
+ display: block;
316
+ width: var(--spacing-md);
317
+ height: var(--spacing-md);
318
+ transition: transform var(--duration) var(--timing), background-color var(--duration) var(--timing),
319
+ background-image var(--duration) var(--timing);
320
+
321
+ &:focus {
322
+ outline: 3px solid var(--brand-primary-1);
323
+ outline-offset: 2px;
324
+ }
325
+
326
+ &:checked {
327
+ background-color: var(--brand-secondary-3);
328
+ background-image: 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 d='M10.5858 13.4142L7.75735 10.5858L6.34314 12L10.5858 16.2427L17.6568 9.1716L16.2426 7.75739L10.5858 13.4142Z' fill='%23fff' /%3E%3C/svg%3E");
329
+ background-position: center center;
330
+ border-color: var(--brand-secondary-3);
331
+ transform: translateX(var(--spacing-base));
332
+
333
+ &:hover,
334
+ &:focus {
335
+ border-color: var(--brand-primary-1);
336
+ background-color: var(--brand-primary-1);
337
+ }
338
+ }
339
+ `,He=Q`
340
+ border-radius: var(--rounded-full);
341
+ background-color: var(--gray-300);
342
+ cursor: pointer;
343
+ display: block;
344
+ overflow: hidden;
345
+ width: var(--spacing-xl);
346
+ height: var(--spacing-md);
347
+ `,Me=Q`
348
+ color: var(--brand-secondary-1);
352
349
  font-weight: var(--font-bold);
353
- margin-left: auto;
350
+ line-height: 1.25rem;
351
+ cursor: default;
352
+ `,re=Q`
353
+ color: var(--gray-700);
354
354
  font-size: var(--font-sm);
355
- `,N=({children:t,...n})=>e("button",{type:"button",css:Lt,...n},t);var Oe=({dimensionIndex:{index:t},state:{scores:n,data:r},overrides:o,actions:i})=>{let a=te.useMemo(()=>{let s={};return Object.keys(t).filter(d=>!n[d]).map(d=>{s[t[d].dim]=0}),s},[n,t]),u=Object.keys(n).length,g=u+Object.keys(a).length,c=()=>{i.rawUpdate([{type:"setcontrol",data:!r.controlGroup}])};return e(te.Fragment,null,e("article",{css:h.page},e("div",{css:h.headingGroup},e("h2",{css:h.title},"Dimensions",e("small",null,u," active of ",g)),e("div",{css:h.reset},e(N,{onClick:()=>i.resetOverrides().then(i.forget)},"clear all dimensions")),e(Pe,{label:"Control Group",onChange:c,checked:r.controlGroup})),u>0?e(V,{dimensionIndex:t,dimensions:n,overrides:o}):e(B,{title:r.controlGroup?"In control group":"No active dimensions",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 score in any dimensions yet.",buttonGroup:r.controlGroup?e(w,{buttonType:"secondary",onClick:c},"Exit control group"):null}),e(E,null,e(O,{title:`Inactive Dimensions (${Object.keys(a).length})`},e(V,{dimensionIndex:t,dimensions:a,overrides:o})))))};import*as ze from"react";import{css as Tt}from"@emotion/react";function be({onClick:t}){return e("button",{css:Tt`
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(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`
356
357
  width: 3.5rem;
357
358
  height: 3.5rem;
358
359
  display: flex;
@@ -365,7 +366,7 @@ to {
365
366
  svg {
366
367
  color: var(--red-button);
367
368
  }
368
- `,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)"})))))}var Be=({dimensionIndex:{index:t},state:{data:n,scores:r},overrides:o,actions:i,settings:a,saveSettings:u})=>{let g=o.scores?Object.keys(o.scores).length:0,c=m=>(m.preventDefault(),u({...a,route:"/overrides/add"})),s=()=>{i.rawUpdate([{type:"setcontrol",data:!n.controlGroup}])},d={};return Object.entries(r).map(([m,b])=>{o.scores[m]!==void 0&&(d[m]=b)}),e(ze.Fragment,null,e("article",{css:h.page},e("div",{css:h.headingGroup},e("h2",{css:h.title},"What if?"),e("div",{css:h.reset},e(N,{onClick:i.resetOverrides},"delete all overrides")),e(be,{onClick:c})),e("p",null,"Override dimension scores to test personalization"),g>0?e(V,{dimensionIndex:t,dimensions:d,overrides:o,onClick:m=>u({...a,route:`/overrides/${m}`})}):e(B,{title:n.controlGroup?"In control group":"No overrides",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 any dimension overrides yet.",buttonGroup:n.controlGroup?e(w,{buttonType:"secondary",onClick:s},"Exit control group"):null})))};import{Field as At,Form as Et,Formik as Ot}from"formik";import*as Q from"yup";import{ErrorMessage as Dt}from"formik";import{css as D}from"@emotion/react";var oe=D`
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`
369
370
  background: var(--white);
370
371
  border: 1px solid var(--gray-500);
371
372
  border-radius: var(--rounded-base);
@@ -376,42 +377,26 @@ to {
376
377
  cursor: not-allowed;
377
378
  color: var(--gray-200);
378
379
  }
379
- `,re=D`
380
- appearance: none;
381
- background: var(--white)
382
- url('data:image/svg+xml;base64,PHN2ZwogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKPgogIDxwYXRoCiAgICBkPSJNNi4zNDMxNyA3Ljc1NzMyTDQuOTI4OTYgOS4xNzE1NEwxMiAxNi4yNDI2TDE5LjA3MTEgOS4xNzE1N0wxNy42NTY5IDcuNzU3MzVMMTIgMTMuNDE0Mkw2LjM0MzE3IDcuNzU3MzJaIgogICAgZmlsbD0iIzgyODI4MiIKICAvPgo8L3N2Zz4=')
383
- no-repeat 98% 50%;
384
- border: 1px solid var(--gray-500);
385
- border-radius: var(--rounded-base);
386
- color: var(--brand-secondary-1);
387
- padding: var(--spacing-base);
388
- &:disabled {
389
- cursor: not-allowed;
390
- color: var(--gray-200);
391
- }
392
- `,ne=D`
393
- padding: var(--spacing-sm);
394
- max-width: 160px;
395
- `,ie=D`
380
+ `,wr=V`
396
381
  margin: var(--spacing-base) 0;
397
- `,F=D`
382
+ `,Ne=V`
398
383
  color: var(--brand-secondary-1);
399
384
  display: flex;
400
385
  flex-direction: column;
401
386
  margin: 0 0 var(--spacing-sm);
402
- `,Z=D`
387
+ `,Ze=V`
403
388
  color: var(--brand-secondary-1);
404
389
  display: block;
405
390
  flex: 1 100%;
406
391
  font-weight: var(--font-bold);
407
392
  margin: 0 0 var(--spacing-sm);
408
- `,U=D`
393
+ `,kr=V`
409
394
  color: var(--gray-600);
410
395
  font-size: var(--font-sm);
411
- `,ae=D`
396
+ `,Tr=V`
412
397
  color: var(--brand-secondary-5);
413
398
  display: block;
414
- `,Ne=D`
399
+ `,Ue=V`
415
400
  flex-direction: row;
416
401
  flex-wrap: wrap;
417
402
 
@@ -479,15 +464,18 @@ to {
479
464
  flex: 1 0 20%;
480
465
  padding: 10px;
481
466
  }
482
- `;var Fe=({field:t,form:n,meta:r,...o})=>{let{label:i,options:a,caption:u,...g}=o;return e("div",{css:ie},e("label",{css:F},e("span",{css:Z},i),e("select",{...t,...g,css:re},a.map((c,s)=>e("option",{value:c.value,key:s},c.text)))),u?e("span",{css:U},u):null,e(Dt,{component:"div",css:ae,name:t.name}))};import{Field as It}from"formik";var St=({field:t,form:n,meta:r,...o})=>{var s,d;let{label:i,caption:a,min:u=0,max:g=100,step:c}=o;return e("div",null,e("label",{css:[F,Ne]},e("span",{css:Z},i),e("input",{type:"range",min:u,max:g,step:c,...t,value:(s=t.value)!=null?s:0}),e("span",{className:"value-display"},(d=t.value)!=null?d:0)),e("p",{css:U},a))},Ze=St;var Pt=({name:t,label:n,dimensionToOverride:r,isSubmitting:o})=>{let i={max:100,step:20};return r&&(i.max=r.cap,i.step=r.str),e(It,{component:Ze,label:n,caption:`Range: 0 - ${i.max} in increments of ${i.step}`,id:t,name:t,disabled:o,...i})},Ue=Pt;import{css as Rt}from"@emotion/react";var H=({children:t,...n})=>e("fieldset",{css:Rt`
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`
483
468
  border: none;
484
469
  padding: 0;
485
- `,...n},t);import{css as Mt}from"@emotion/react";var $=({children:t})=>e("legend",{css:Mt`
470
+ & legend {
471
+ margin-bottom: var(--spacing-base);
472
+ }
473
+ `,...r},t);import{css as Ht}from"@emotion/react";var N=({children:t})=>e("legend",{css:Ht`
486
474
  font-size: var(--font-md);
487
475
  font-weight: var(--font-bold);
488
476
  border-bottom: 1px solid var(--gray-400);
489
477
  width: 100%;
490
- `},t);import{Context as Vt,TransitionDataStore as Ht}from"@uniformdev/context";function Qe({manifest:t,visitor:n,override:r}){let o=new Vt({manifest:t,transitionStore:new _e({initialData:n})}),i={...o.scores};o.storage.updateData([r]);let u={...{...o.scores}};return Object.entries(u).forEach(([g,c])=>{i[g]===c&&delete u[g]}),u}var _e=class extends Ht{async handleDelete(){}async handleUpdateData(){}};var zt=Q.object({dimension:Q.string(),score:Q.number()}),ve=({settings:t,saveSettings:n,state:r,actions:o,dimensionIndex:{index:i}})=>{var c,s;let a=t.route?[...t.route.matchAll(/overrides\/(?!.*add)(\w+)?/g)]:[],u=a[0]?a[0][1]:"";if(!((c=r.manifest.project.pz)!=null&&c.sig))return e("p",null,"Error, manifest is broken or there is no signal to override.");let g=Object.entries(i).filter(([,d])=>d.type!=="Audience"&&d.type!=="Intent").map(([d,m])=>{let b=m.type?`${m.type}: `:"",f=m.category?`${m.category} - `:"",v=`${b}${f}${m.name}`;return{value:d,text:v}});return g.unshift({value:"_none",text:"Choose dimension to override"}),e(Ot,{initialValues:{dimension:u,score:(s=r.scores[u])!=null?s:0},validationSchema:zt,enableReinitialize:!0,onSubmit:d=>{var v,C,x;let m=(C=(v=i[d.dimension])==null?void 0:v.cap)!=null?C:0,f=Math.min(d.score,m)-((x=r.scores[d.dimension])!=null?x:0);o.override([{type:"modscore",data:{dimension:d.dimension,delta:f}}]),n({...t,route:"/overrides"})}},({dirty:d,isValid:m,isSubmitting:b,values:f})=>{var x;let v=Qe({manifest:r.manifest,visitor:r.data,override:{type:"modscore",data:{dimension:f.dimension,delta:f.score-((x=r.scores[f.dimension])!=null?x:0)}}}),C=f.score&&Object.keys(v).length>0;return e(Et,{css:h.page},e("h1",{css:h.title},"Override Dimension"),e(At,{component:Fe,label:"Dimension",id:"dimension",name:"dimension",options:g,disabled:b}),e("p",{css:h.text},e("small",null,"Audiences and Intents are aggregated from other dimension scores and cannot be overridden directly.")),f.dimension?e(Ue,{name:"score",label:"Score",dimensionToOverride:i[f.dimension],isSubmitting:b}):null,e(H,{disabled:b},C?e(E,null,e(O,{title:`Impacted Dimensions (${Object.keys(v).length})`},e(V,{dimensionIndex:i,dimensions:v,overrides:{quirks:{},scores:{[f.dimension]:f.score}},disableEditOverride:!0}))):null,d?e(w,{type:"submit",css:h.submitButton,disabled:!m},"Save"):null,e(P,{route:"/overrides",css:h.cancelButton},"Cancel")))})};import{useState as Ut}from"react";import{useState as Bt,useEffect as Nt}from"react";var Ft=({name:t,value:n,submit:r})=>{let[o,i]=Bt(n!=null?n:"");return Nt(()=>{i(n!=null?n:"")},[n]),e("div",{css:{display:"flex",gap:"var(--spacing-sm)"}},e("input",{type:"text",css:[oe,ne],name:t,value:o,onChange:u=>{i(u.target.value)}}),e(w,{buttonType:"primary",onClick:()=>r(t,o!=null?o:"")},"Save"))},Ge=Ft;var Zt=({name:t,value:n,submit:r,options:o})=>e("select",{name:t,defaultValue:n,onChange:a=>r(a.target.name,a.target.value),css:[re,ne]},e("option",{key:"_none",value:"_none"},"None"),(o!=null?o:[]).map(a=>e("option",{key:a.value,value:a.value},a.name))),$e=Zt;var Ke=({...t})=>{let{actions:n,quirksIndex:{index:r}}=t,[o,i]=Ut(""),a;o&&(a=r[o]);let u=(g,c)=>{i(""),n.override([{type:"setquirk",data:{key:g,value:c}}])};return e(y.Fragment,null,e("article",{css:h.page},e("h1",{css:h.title},"Quirks"),e("p",{css:h.text},"Keys defined in Uniform and their current, programmatically defined values for this visit."),Object.keys(r).length?e(j,null,e(Re,null,e(G,null,e(ge,null,"Key"),e(ge,null,"Value"),e(T,null,""))),e(ee,null,Object.values(r).map(({name:g,value:c,id:s})=>e(G,{key:s,border:"bottom"},e(T,null,e("strong",null,g)),e(T,null,o!==s&&e("span",{onClick:()=>{i(s)}},c),o===s&&a&&e(y.Fragment,null,a.options?e($e,{name:s,value:c,submit:u,options:a.options}):e(Ge,{name:s,value:c,submit:u}))),e(T,null,o?null:e(N,{onClick:()=>{i(s)}},e("small",null,"Override"))))))):e(B,{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{Field as K,Form as _t,Formik as Gt}from"formik";import{ErrorMessage as Qt}from"formik";var se=({field:t,form:n,meta:r,...o})=>{let{label:i,caption:a,...u}=o;return e("div",{css:ie},e("label",{css:F},e("span",{css:Z},i),e("input",{type:"text",css:oe,...t,...u})),a?e("span",{css:U},a):null,e(Qt,{component:"div",css:ae,name:t.name}))};import*as S from"yup";var $t=S.object({apiKey:S.string().matches(/^uf.+$/,"API keys start with `uf`, double check your API key"),apiHost:S.string().matches(/^https:\/\/(localhost:8889|([a-z]+\.)?uniform.app)$/,"API host must be a Uniform domain."),logging:S.boolean(),projectId:S.string().uuid(),consentMode:S.boolean()}),We=({settings:t,saveSettings:n,actions:r,state:{data:o},dimensionIndex:{error:i,loading:a}})=>{var u,g,c;return e(Gt,{initialValues:{apiHost:(u=t.apiHost)!=null?u:"",apiKey:(g=t.apiKey)!=null?g:"",projectId:(c=t.projectId)!=null?c:"",consentMode:!!o.consent,logging:t.logLevel!=="none"&&Boolean(t.logLevel)},validationSchema:$t,enableReinitialize:!0,onSubmit:s=>{n({...t,apiHost:s.apiHost,apiKey:s.apiKey,projectId:s.projectId,logLevel:s.logging?"debug":"none",consentMode:s.consentMode}),r.rawUpdate([{type:"consent",data:s.consentMode}])}},({dirty:s,isValid:d,isSubmitting:m})=>e(_t,{css:h.page},e("h1",{css:h.title},"Settings"),e(H,{disabled:m},e($,null,"Data Connection"),!a&&i?e("p",{css:h.error},"Unable to fetch data from Uniform",e("br",null),e("em",null,i.message)):null,e("p",{css:h.text},e("small",null,"Adding an API key and project ID enables richer dimension data to be shown. You must have access to the Uniform project to do this.")),e(K,{component:se,label:"Uniform API key",caption:"Generate an API key in your Uniform team settings. Grant only Context: Read Drafts permission.",id:"api-key",name:"apiKey",autoComplete:"off"}),e(K,{component:se,label:"Uniform Project ID",caption:"Available to copy after generating an API key",id:"project-id",name:"projectId",autoComplete:"off"}),e(E,null,e(O,{title:"Advanced"},e(K,{component:se,label:"Alternative API Host",caption:"Use a non-standard Uniform API endpoint. Most people will not not need this option.",id:"api-host",name:"apiHost",autoComplete:"off"}))),e(H,null,e($,null,"Storage Consent"),e(K,{component:ue,label:"Store visitor data",id:"consent-mode",name:"consentMode"}),e("p",null,e("small",null,"Turning on consents to 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(H,null,e($,null,"Logging"),e(K,{component:ue,label:"Write Uniform Context diagnostic logs to browser console",id:"logging",name:"logging"})),s?e(w,{type:"submit",css:h.submitButton,disabled:!d},"Save"):null)))};var he=({settings:t,saveSettings:n})=>{let r=()=>{n({...t,route:"/settings"})},o=()=>{n({...t,ignoreApiKeyPrompt:!0})},i=!(t!=null&&t.apiKey);return!t.ignoreApiKeyPrompt&&i?e("div",{css:[q,Se]},e("h2",{css:Y},"Connect this site"),e("p",{css:X},"Add a Uniform API key to get better data."),e("div",{css:J},e(w,{buttonType:"secondary",onClick:r},"Connect this site"),e(w,{buttonType:"ghost",onClick:o},"Skip for now")),e("button",{type:"button",css:Ie,title:"close",onClick:o},e("span",{hidden:!0},"Close"))):null};import{computeDimensionDefinitionDisplayData as Kt,computeDimensionDisplayData as qe,DimensionClient as Wt}from"@uniformdev/context/api";import{useAsync as qt}from"react-use";import*as Ye from"react";function Xe({apiHost:t,apiKey:n,projectId:r},o){let{loading:i,error:a,value:u}=qt(async()=>{if(!n||!r)return g;let s=(await new Wt({projectId:r,apiKey:n,apiHost:t||void 0}).get()).dimensions,d={};return s.map(m=>{var b,f,v,C;if(d[m.dim]={...Kt(m),cap:m.cap,str:10},d[m.dim].type==="Enrichment"){let x=m.dim.split("_")[0];d[m.dim].cap=(C=(v=(f=(b=o==null?void 0:o.project.pz)==null?void 0:b.enr)==null?void 0:f[x])==null?void 0:v.cap)!=null?C:100}}),d},[t,n,r]),g=Ye.useMemo(()=>{var s,d,m,b;let c={};return o&&(Object.entries((d=(s=o==null?void 0:o.project.pz)==null?void 0:s.sig)!=null?d:{}).map(([f,v])=>{let C=qe(f,o);C&&(c[f]={...v,...C})}),Object.entries((b=(m=o==null?void 0:o.project.pz)==null?void 0:m.enr)!=null?b:{}).map(([f,v])=>{var ye;let C=qe(f,o),x={cap:(ye=v.cap)!=null?ye:100,str:10};C&&(c[f]={...C,cap:x.cap,str:x.str})}),u&&Object.entries(u).map(([f,v])=>{c[f]={...c[f],...v}})),c},[o,u]);return{loading:i,error:a,index:g}}import{useMemo as Yt}from"react";import{QuirkClient as Xt}from"@uniformdev/context/api";import{useAsync as Jt}from"react-use";function Je({apiHost:t,apiKey:n,projectId:r},o){let{loading:i,error:a,value:u}=Jt(async()=>{if(!n||!r)return{};let s=await new Xt({projectId:r,apiKey:n,apiHost:t||void 0}).get(),d={};return s.quirks.map(m=>{d[m.id]={...m,value:o[m.id]}}),d},[t,n,r]),g=Yt(()=>{let c={};return Object.entries(o).map(([s,d])=>c[s]={value:d,id:s,name:s}),u&&Object.entries(u).map(([s,d])=>c[s]={...d,value:o[s]}),c},[o,u]);return{loading:i,error:a,index:g}}import{css as et}from"@emotion/react";function ce(){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,`
491
479
  :root {
492
480
  --brand-primary-1: #438fd5; /* bright blue */
493
481
  --brand-primary-2: #f4220b; /* red */
@@ -852,7 +840,7 @@ Add the correct display in Chrome and Safari.
852
840
 
853
841
  summary {
854
842
  display: list-item;
855
- }`)}import{useEffect as jt,useState as eo}from"react";import{useMountedState as to}from"react-use";var je=()=>{let[t,n]=eo(!1),r=to();return jt(()=>{setTimeout(()=>{r()&&n(!0)},1e3)},[r]),t?e("article",{css:h.page},e("h1",null,"Loading..."),e("p",null,"Connecting to Uniform API for complete data.")):null};var oo=et`
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`
856
844
  background: var(--white);
857
845
  padding: var(--spacing-base);
858
846
  overflow-y: auto;
@@ -881,7 +869,7 @@ summary {
881
869
  &::-webkit-scrollbar-thumb:hover {
882
870
  background: var(--gray-500);
883
871
  }
884
- `;function tt(t){let n=Xe(t.settings,t.state.manifest),r=Je(t.settings,t.state.data.quirks),o={...t,dimensionIndex:n,quirksIndex:r},i=()=>{var a;if(n.loading||r.loading)return e(je,null);if(t.settings.route&&t.settings.route.match(/overrides\/\w+/))return e(ve,{...o});switch((a=t.settings)==null?void 0:a.route){case void 0:case"/":case"/dimensions":return e(Oe,{...o});case"/overrides":return e(Be,{...o});case"/overrides/add":return e(ve,{...o});case"/quirks":return e(Ke,{...o});case"/settings":return e(We,{...o});default:return e(Le,null)}};return e(xe,{settings:t.settings,saveSettings:t.saveSettings},e(ce,null),e("div",{css:et`
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`
885
873
  display: grid;
886
874
  grid-template-columns: 200px auto;
887
875
  font-weight: var(--font-regular);
@@ -890,7 +878,7 @@ summary {
890
878
  line-height: var(--base-line-height);
891
879
  height: var(--min-height);
892
880
  min-width: var(--site-width);
893
- `},e(ke,{...t}),e("main",{css:oo},e(he,{...t}),i())))}import{Context as ro,createDebugConsoleLogDrain as no}from"@uniformdev/context";import*as I from"react";function ot({context:t,initialSettings:n}){let r=t!=null?t:typeof window!="undefined"?window.__UNIFORM_DEVTOOLS_CONTEXT_INSTANCE__:void 0,o=r!=null?r:new ro({manifest:{project:{}}}),[i,a]=I.useState({scores:{},quirks:{}}),[u,g]=I.useState({data:o.storage.data,manifest:o.manifest.data,scores:o.scores,personalizations:[],tests:[]}),[c,s]=I.useState(n!=null?n:{});I.useEffect(()=>{var b;let m=no((b=c.logLevel)!=null?b:"none");return o.events.on("log",m),()=>{o.events.off("log",m)}},[c,o]),I.useEffect(()=>{let m=()=>{g(v=>({...v,scores:o.scores,data:o.storage.data,manifest:o.manifest.data}))},b=v=>{!v.changed||g(C=>({...C,personalizations:[...C.personalizations,v]}))},f=v=>{!v.variantAssigned||g(C=>({...C,tests:[...C.tests,v]}))};return o.events.on("personalizationResult",b),o.events.on("testResult",f),o.storage.events.on("*",m),()=>{o.storage.events.off("*",m),o.events.off("personalizationResult",b),o.events.off("testResult",f)}},[o,c]);let d=I.useMemo(()=>({update:b=>o.update(b),forget:()=>o.forget(!1),rawUpdate:b=>o.storage.updateData(b),resetOverrides:()=>{let b=[];return Object.entries(i.scores).map(([f,v])=>{b.push({type:"modscore",data:{dimension:f,delta:-v}})}),a({...i,scores:{}}),o.storage.updateData(b)},override:b=>{let f={},v={};return b.map(C=>{C.type==="modscore"&&(f[C.data.dimension]=C.data.delta),C.type==="setquirk"&&(v[C.data.key]=C.data.value)}),a({scores:{...i.scores,...f},quirks:{...i.quirks,...v}}),o.storage.updateData(b)}}),[o,i]);return r?e(tt,{state:u,actions:d,overrides:i,settings:c,saveSettings:s}):e("p",null,"Unable to find Uniform Context. Ensure the devtools plugin is activated.")}import{css as so}from"@emotion/react";import*as nt from"react";import{css as io}from"@emotion/react";var ao=io`
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`
894
882
  align-items: center;
895
883
  border-radius: var(--rounded-full);
896
884
  background: var(--brand-secondary-5);
@@ -916,11 +904,11 @@ summary {
916
904
  max-width: 100%;
917
905
  height: auto;
918
906
  }
919
- `,rt=({...t})=>e("button",{type:"button",css:ao,...t},e("span",{hidden:!0},"Uniform devtools"),e("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e("path",{d:"M13.325 3.05011L8.66741 20.4323L10.5993 20.9499L15.2568 3.56775L13.325 3.05011Z",fill:"currentColor"}),e("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"}),e("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 li(t){var i;let[n,r]=nt.useState(!1);return((i=t.context)!=null?i:typeof window!="undefined"?window.__UNIFORM_DEVTOOLS_CONTEXT_INSTANCE__:void 0)?e("div",null,e(ce,null),e(rt,{onClick:()=>r(a=>!a)}),n?e("div",{css:so`
907
+ `,lt=({...t})=>e("button",{type:"button",css:bo,...t},e("span",{hidden:!0},"Uniform devtools"),e("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e("path",{d:"M13.325 3.05011L8.66741 20.4323L10.5993 20.9499L15.2568 3.56775L13.325 3.05011Z",fill:"currentColor"}),e("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"}),e("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 Li(t){var i;let[r,n]=pt.useState(!1);return((i=t.context)!=null?i:typeof window!="undefined"?window.__UNIFORM_DEVTOOLS_CONTEXT_INSTANCE__:void 0)?e("div",null,e(ae,null),e(lt,{onClick:()=>n(a=>!a)}),r?e("div",{css:yo`
920
908
  box-shadow: var(--shadow-base);
921
909
  position: fixed;
922
910
  bottom: 82px;
923
911
  right: var(--spacing-base);
924
912
  z-index: var(--z-10);
925
913
  max-width: var(--site-width);
926
- `},e(ot,{...t})):null):e("p",null,"Unable to find Uniform Context. Ensure the devtools plugin is activated.")}export{tt as ContextDevTools,ot as EmbeddedContextDevTools,li as ToggleEmbeddedContextDevTools};
914
+ `},e(dt,{...t})):null):e("p",null,"Unable to find Uniform Context. Ensure the devtools plugin is activated.")}export{ct as ContextDevTools,dt as EmbeddedContextDevTools,Li as ToggleEmbeddedContextDevTools};