@uniformdev/context-devtools 16.2.4 → 17.1.1-alpha.151
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 +55 -44
- package/dist/index.d.ts +2 -1
- package/dist/index.js +60 -49
- package/package.json +10 -10
package/dist/esm/index.js
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
import{jsx as e}from"@emotion/react";import*as b from"react";import{css as D}from"@emotion/react";import{createContext as
|
|
1
|
+
import{jsx as e}from"@emotion/react";import*as b from"react";import{css as D}from"@emotion/react";import{createContext as it,useContext as st}from"react";var ue=it({settings:{},saveSettings:()=>{}}),z=()=>st(ue),ge=({children:t,settings:r,saveSettings:n})=>e(ue.Provider,{value:{settings:r,saveSettings:n}},t);var at=({route:t,children:r,className:n})=>{let{settings:o,saveSettings:i}=z();return e("a",{href:"",className:n,onClick:a=>{a.preventDefault(),i({...o,route:t})}},r)},M=at;import{css as ct}from"@emotion/react";var ve=()=>{var n;let t=typeof chrome!="undefined"&&typeof chrome.storage!="undefined"&&((n=chrome==null?void 0:chrome.runtime)==null?void 0:n.getManifest()),r=t?t==null?void 0:t.version:"DEV";return e("div",{css:ct`
|
|
2
|
+
font-size: var(--fs-sm);
|
|
3
|
+
color: var(--gray-400);
|
|
4
|
+
position: absolute;
|
|
5
|
+
bottom: 2px;
|
|
6
|
+
right: 5px;
|
|
7
|
+
`},`v${r}`)};var lt=[{title:"Dimensions",href:"/dimensions",icon:`<svg
|
|
2
8
|
width="24"
|
|
3
9
|
height="24"
|
|
4
10
|
viewBox="0 0 24 24"
|
|
@@ -36,16 +42,17 @@ import{jsx as e}from"@emotion/react";import*as b from"react";import{css as D}fro
|
|
|
36
42
|
</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
43
|
<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
44
|
</svg>
|
|
39
|
-
`}],
|
|
45
|
+
`}],dt=`<svg width="24" height="24" fill="white" viewBox="0 0 122.88 116.67" xmlns="http://www.w3.org/2000/svg">
|
|
40
46
|
<g>
|
|
41
47
|
<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
48
|
</g>
|
|
43
|
-
</svg>`,
|
|
49
|
+
</svg>`,fe=({...t})=>{var o,i;let r=a=>{var p;let d="active";return!((p=t.settings)!=null&&p.route)&&a==="/dimensions"||t.settings.route===a?d:""},n=Boolean(typeof window!="undefined"&&((i=(o=window.chrome)==null?void 0:o.runtime)==null?void 0:i.id));return e("nav",{css:D`
|
|
44
50
|
background: var(--brand-secondary-1);
|
|
45
|
-
padding: var(--spacing-base);
|
|
51
|
+
padding: var(--spacing-base) var(--spacing-base) var(--spacing-md);
|
|
46
52
|
min-width: 200px;
|
|
47
53
|
display: flex;
|
|
48
54
|
flex-direction: column;
|
|
55
|
+
position: relative;
|
|
49
56
|
`},e("a",{css:D`
|
|
50
57
|
flex-grow: 0;
|
|
51
58
|
display: inline-block;
|
|
@@ -57,7 +64,7 @@ import{jsx as e}from"@emotion/react";import*as b from"react";import{css as D}fro
|
|
|
57
64
|
margin: 0;
|
|
58
65
|
list-style-type: none;
|
|
59
66
|
flex-grow: 1;
|
|
60
|
-
`},
|
|
67
|
+
`},lt.map((a,d)=>{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:D`
|
|
61
68
|
padding: 0;
|
|
62
69
|
margin: 0;
|
|
63
70
|
list-style-type: none;
|
|
@@ -65,7 +72,7 @@ import{jsx as e}from"@emotion/react";import*as b from"react";import{css as D}fro
|
|
|
65
72
|
&:last-of-type {
|
|
66
73
|
margin-top: auto;
|
|
67
74
|
}
|
|
68
|
-
`,key:
|
|
75
|
+
`,key:d},e(M,{css:D`
|
|
69
76
|
align-items: center;
|
|
70
77
|
border-radius: var(--rounded-base);
|
|
71
78
|
display: flex;
|
|
@@ -109,11 +116,11 @@ import{jsx as e}from"@emotion/react";import*as b from"react";import{css as D}fro
|
|
|
109
116
|
`,rel:"noreferrer"},e("i",{css:D`
|
|
110
117
|
align-items: center;
|
|
111
118
|
display: flex;
|
|
112
|
-
`,dangerouslySetInnerHTML:{__html:
|
|
119
|
+
`,dangerouslySetInnerHTML:{__html:dt}}),"Install Chrome Extension"),e(ve,null))};var he=()=>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 E}from"@emotion/react";import*as U from"react";var be=E({willChange:"height"}),pt=E`
|
|
113
120
|
border-bottom: 2px solid var(--brand-secondary-1);
|
|
114
121
|
font-size: var(--fs-base);
|
|
115
122
|
margin: 0;
|
|
116
|
-
`,
|
|
123
|
+
`,mt=E`
|
|
117
124
|
align-items: center;
|
|
118
125
|
border: none;
|
|
119
126
|
background: none;
|
|
@@ -123,13 +130,13 @@ import{jsx as e}from"@emotion/react";import*as b from"react";import{css as D}fro
|
|
|
123
130
|
padding: var(--spacing-sm) 0;
|
|
124
131
|
font-weight: var(--fw-bold);
|
|
125
132
|
justify-content: space-between;
|
|
126
|
-
`,
|
|
133
|
+
`,ut=E`
|
|
127
134
|
align-self: center;
|
|
128
|
-
`,
|
|
135
|
+
`,gt=E`
|
|
129
136
|
transform: rotate(-180deg);
|
|
130
|
-
`,_=({children:t})=>e("div",{css:[
|
|
137
|
+
`,_=({children:t})=>e("div",{css:[be]},t),G=({title:t,children:r})=>{let[n,o]=U.useState(!1),i=t.split(" ").join("-").toLocaleLowerCase();return e(U.Fragment,null,e("h3",{css:pt},e("button",{"aria-expanded":n,css:mt,title:t,id:i,"aria-controls":`${i}-section`,onClick:()=>o(a=>!a),type:"button"},t,e("i",{css:[ut,n?gt: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:[be,E`
|
|
131
138
|
padding: var(--spacing-sm) 0;
|
|
132
|
-
`],role:"region","aria-labelledby":
|
|
139
|
+
`],role:"region","aria-labelledby":i},n?r:null))};import{css as A}from"@emotion/react";var $=A`
|
|
133
140
|
background-color: var(--gray-100);
|
|
134
141
|
padding: var(--spacing-base) var(--spacing-md);
|
|
135
142
|
margin: var(--spacing-base) 0;
|
|
@@ -137,7 +144,7 @@ import{jsx as e}from"@emotion/react";import*as b from"react";import{css as D}fro
|
|
|
137
144
|
&:first-of-type {
|
|
138
145
|
margin: 0 0 var(--spacing-base);
|
|
139
146
|
}
|
|
140
|
-
`,
|
|
147
|
+
`,ye=A`
|
|
141
148
|
background: var(--gray-100)
|
|
142
149
|
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
150
|
no-repeat var(--spacing-sm) var(--spacing-base);
|
|
@@ -151,7 +158,7 @@ import{jsx as e}from"@emotion/react";import*as b from"react";import{css as D}fro
|
|
|
151
158
|
color: var(--brand-secondary-1);
|
|
152
159
|
margin: var(--spacing-xs) 0 0;
|
|
153
160
|
font-size: var(--fs-sm);
|
|
154
|
-
`,
|
|
161
|
+
`,Ce=A`
|
|
155
162
|
align-items: center;
|
|
156
163
|
border: none;
|
|
157
164
|
background: transparent
|
|
@@ -175,13 +182,13 @@ import{jsx as e}from"@emotion/react";import*as b from"react";import{css as D}fro
|
|
|
175
182
|
display: flex;
|
|
176
183
|
margin: var(--spacing-sm) 0 0;
|
|
177
184
|
gap: var(--spacing-base);
|
|
178
|
-
`;var
|
|
185
|
+
`;var B=({title:t,text:r,buttonGroup:n,children:o})=>e("div",{css:$},e("h2",{css:K},t),e("p",{css:W},r),o,n?e("div",{css:Y},n):null);import{css as T,keyframes as vt}from"@emotion/react";var ft=vt`from {
|
|
179
186
|
transform: scale(1);
|
|
180
187
|
}
|
|
181
188
|
to {
|
|
182
189
|
transform: scale(1.2);
|
|
183
190
|
}
|
|
184
|
-
`,
|
|
191
|
+
`,h={page:T`
|
|
185
192
|
color: var(--brand-secondary-1);
|
|
186
193
|
`,text:T`
|
|
187
194
|
margin: var(--spacing-sm) 0;
|
|
@@ -215,7 +222,7 @@ to {
|
|
|
215
222
|
position: absolute;
|
|
216
223
|
right: var(--spacing-base);
|
|
217
224
|
bottom: var(--spacing-base);
|
|
218
|
-
animation: 0.5s 2 alternate ${
|
|
225
|
+
animation: 0.5s 2 alternate ${ft};
|
|
219
226
|
`,cancelButton:T`
|
|
220
227
|
position: absolute;
|
|
221
228
|
left: calc(200px + var(--spacing-base));
|
|
@@ -236,13 +243,13 @@ to {
|
|
|
236
243
|
display: table;
|
|
237
244
|
width: 100%;
|
|
238
245
|
font-size: var(--fs-sm);
|
|
239
|
-
`},t),
|
|
246
|
+
`},t),we=({children:t})=>e("thead",{css:S`
|
|
240
247
|
background: var(--gray-50);
|
|
241
248
|
text-align: left;
|
|
242
249
|
& tr {
|
|
243
250
|
border-bottom: 1px solid var(--gray-200);
|
|
244
251
|
}
|
|
245
|
-
`},t),X=({children:t})=>e("tbody",null,t),
|
|
252
|
+
`},t),X=({children:t})=>e("tbody",null,t),N=({border:t,children:r})=>e("tr",{css:t?S`
|
|
246
253
|
border-bottom: 1px solid var(--gray-200);
|
|
247
254
|
&:where(:last-child) {
|
|
248
255
|
border: none;
|
|
@@ -251,27 +258,27 @@ to {
|
|
|
251
258
|
outline: none;
|
|
252
259
|
padding: var(--spacing-sm);
|
|
253
260
|
width: ${r!=null?r:"auto"};
|
|
254
|
-
`},t);function
|
|
261
|
+
`},t);function ht(t){switch(t){case"light":return S`
|
|
255
262
|
color: var(--gray-400);
|
|
256
263
|
`;case"dark":return S`
|
|
257
264
|
color: var(--brand-secondary-1);
|
|
258
|
-
`}}function
|
|
265
|
+
`}}function bt(t){return S`
|
|
259
266
|
text-align: ${t};
|
|
260
267
|
`}var O=({alignment:t="left",border:r,color:n="dark",children:o})=>e("td",{css:[S`
|
|
261
268
|
padding: var(--spacing-base);
|
|
262
269
|
max-width: 180px;
|
|
263
270
|
overflow-wrap: break-word;
|
|
264
271
|
position: relative;
|
|
265
|
-
`,
|
|
272
|
+
`,ht(n),bt(t),r?S`
|
|
266
273
|
border-left: 1px solid var(--gray-200);
|
|
267
|
-
`:void 0]},o);import{css as ie}from"@emotion/react";var
|
|
274
|
+
`:void 0]},o);import{css as ie}from"@emotion/react";var ke=ie`
|
|
268
275
|
position: relative;
|
|
269
276
|
display: inline-block;
|
|
270
277
|
font-size: var(--fs-base);
|
|
271
|
-
`,
|
|
278
|
+
`,Te=ie`
|
|
272
279
|
display: block;
|
|
273
280
|
text-decoration: line-through;
|
|
274
|
-
`,
|
|
281
|
+
`,De=ie`
|
|
275
282
|
position: absolute;
|
|
276
283
|
width: 6px;
|
|
277
284
|
height: 6px;
|
|
@@ -279,26 +286,26 @@ to {
|
|
|
279
286
|
top: 9px;
|
|
280
287
|
background: var(--red-tooltip);
|
|
281
288
|
border-radius: 3px;
|
|
282
|
-
`;import{css as
|
|
289
|
+
`;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">
|
|
283
290
|
<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"/>
|
|
284
291
|
<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"/>
|
|
285
292
|
<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"/>
|
|
286
|
-
</svg>`,
|
|
293
|
+
</svg>`,wt=`<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
287
294
|
<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"/>
|
|
288
295
|
<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"/>
|
|
289
296
|
<path d="M11.9999 5.05762H8.3999V6.2576H11.9999V5.05762Z" fill="#828282"/>
|
|
290
297
|
<path d="M8.3999 7.45752H11.9999V8.6575H8.3999V7.45752Z" fill="#828282"/>
|
|
291
298
|
<path d="M11.9999 2.65771H8.3999V3.8577H11.9999V2.65771Z" fill="#828282"/>
|
|
292
|
-
</svg>`,
|
|
299
|
+
</svg>`,Se=`<svg width="15" height="11" viewBox="0 0 15 11" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
293
300
|
<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"/>
|
|
294
301
|
<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"/>
|
|
295
302
|
<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"/>
|
|
296
303
|
<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"/>
|
|
297
304
|
<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"/>
|
|
298
|
-
</svg>`,
|
|
305
|
+
</svg>`,Le=({type:t})=>{let r="";switch(t){case"Audience":r=Ct;break;case"Signal":r=Se;break;case"Intent":r=Se;break;case"Enrichment":r=wt;break}return e("i",{css:yt`
|
|
299
306
|
align-items: center;
|
|
300
307
|
display: inline-block;
|
|
301
|
-
`,dangerouslySetInnerHTML:{__html:r}})};var
|
|
308
|
+
`,dangerouslySetInnerHTML:{__html:r}})};var kt=({dimensionIndex:t,dimensions:r,disableEditOverride:n,onClick:o,preemptiveOverrides:i})=>{var p;let{settings:a}=z(),d=(p=i!=null?i:a.scoreOverrides)!=null?p:{};return e(J,null,e(X,null,Object.entries(r).sort(([m],[u])=>m.localeCompare(u)).map(([m,u])=>{var f;let{dim:s,name:c,type:l,category:v}=(f=t[m])!=null?f:{name:m,dim:m,type:void 0,category:void 0},g=d[s];return e(N,{key:s},e(O,null,g!==void 0?e("s",{css:Te},g.initial):null,e("b",{css:ke},u,g!==void 0&&e("i",{css:De}))),e(O,null,e("div",{onClick:()=>o==null?void 0:o(s),css:o?{cursor:"pointer"}:void 0},e("span",{css:h.divider,role:"presentation"}),e("div",null,e(Le,{type:l})," ",l),e("strong",null,v?`${v}:`:""," ",c))),e(O,{alignment:"right",color:"light"},g!==void 0&&!n?e(M,{route:`/overrides/${s}`},"Edit override"):null))})))},P=kt;async function ee({actions:t,saveSettings:r,scores:n,settings:o}){var p,m;let i=(p=o.scoreOverrides)!=null?p:{},a={...i},d=[];for(let u of Object.keys(i)){let s=i==null?void 0:i[u];delete a[u],d.push({type:"modscoreS",data:{dimension:u,delta:s.initial-((m=n[u])!=null?m:0)}})}await r({...o,scoreOverrides:a}),await t.rawUpdate(d)}async function Oe({quirk:t,settings:r,saveSettings:n,actions:o}){var d;let i=(d=r.quirkOverrides)==null?void 0:d[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 xe}from"@uniformdev/design-system";import{Switch as Tt}from"@uniformdev/design-system";var Re=({dimensionIndex:{index:t},state:{scores:r,data:n},actions:o,saveSettings:i,settings:a})=>{let d=te.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(d).length,u=()=>{o.rawUpdate([{type:"setcontrol",data:!n.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,p," active of ",m)),e("div",{css:h.reset},e(xe,{buttonType:"ghost",onClick:()=>ee({actions:o,saveSettings:i,scores:r,settings:a}).then(o.forget)},"clear all dimensions")),e(Tt,{name:"controlGroup",label:"Control Group",onChange:u,checked:n.controlGroup})),p>0?e(P,{dimensionIndex:t,dimensions:r}):e(B,{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(xe,{buttonType:"secondary",onClick:u},"Exit control group"):null}),e(_,null,e(G,{title:`Inactive Dimensions (${Object.keys(d).length})`},e(P,{dimensionIndex:t,dimensions:d})))))};import*as Pe from"react";import{AddButton as Dt}from"@uniformdev/design-system";import{Button as Ve}from"@uniformdev/design-system";var Ie=({dimensionIndex:{index:t},state:{data:r,scores:n},actions:o,settings:i,saveSettings:a})=>{var c;let d=(c=i.scoreOverrides)!=null?c:{},p=Object.keys(d).length,m=l=>(l==null||l.preventDefault(),a({...i,route:"/overrides/add"})),u=()=>{o.rawUpdate([{type:"setcontrol",data:!r.controlGroup}])},s={};return Object.entries(n).map(([l,v])=>{d[l]!==void 0&&(s[l]=v)}),e(Pe.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(Ve,{buttonType:"ghost",onClick:()=>ee({actions:o,settings:i,saveSettings:a,scores:n})},"delete all overrides")),e(Dt,{onClick:m})),e("p",null,"Override dimension scores to test personalization"),p>0?e(P,{dimensionIndex:t,dimensions:s,onClick:l=>a({...i,route:`/overrides/${l}`})}):e(B,{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(Ve,{buttonType:"secondary",onClick:u},"Exit control group"):null})))};import{Field as qe,Form as Ht,Formik as Mt}from"formik";import*as F from"yup";import{css as I}from"@emotion/react";var He=I`
|
|
302
309
|
background: var(--white);
|
|
303
310
|
border: 1px solid var(--gray-500);
|
|
304
311
|
border-radius: var(--rounded-base);
|
|
@@ -309,26 +316,26 @@ to {
|
|
|
309
316
|
cursor: not-allowed;
|
|
310
317
|
color: var(--gray-200);
|
|
311
318
|
}
|
|
312
|
-
`,
|
|
319
|
+
`,yr=I`
|
|
313
320
|
margin: var(--spacing-base) 0;
|
|
314
|
-
`,
|
|
321
|
+
`,Me=I`
|
|
315
322
|
color: var(--brand-secondary-1);
|
|
316
323
|
display: flex;
|
|
317
324
|
flex-direction: column;
|
|
318
325
|
margin: 0 0 var(--spacing-sm);
|
|
319
|
-
`,
|
|
326
|
+
`,Ee=I`
|
|
320
327
|
color: var(--brand-secondary-1);
|
|
321
328
|
display: block;
|
|
322
329
|
flex: 1 100%;
|
|
323
330
|
font-weight: var(--fw-bold);
|
|
324
331
|
margin: 0 0 var(--spacing-sm);
|
|
325
|
-
`,
|
|
332
|
+
`,Cr=I`
|
|
326
333
|
color: var(--gray-600);
|
|
327
334
|
font-size: var(--fs-sm);
|
|
328
|
-
`,
|
|
335
|
+
`,wr=I`
|
|
329
336
|
color: var(--brand-secondary-5);
|
|
330
337
|
display: block;
|
|
331
|
-
`,
|
|
338
|
+
`,Ae=I`
|
|
332
339
|
flex-direction: row;
|
|
333
340
|
flex-wrap: wrap;
|
|
334
341
|
|
|
@@ -396,18 +403,18 @@ to {
|
|
|
396
403
|
flex: 1 0 20%;
|
|
397
404
|
padding: 10px;
|
|
398
405
|
}
|
|
399
|
-
`;import{Caption as
|
|
406
|
+
`;import{Caption as St,ErrorMessage as Lt}from"@uniformdev/design-system";var Be=({field:t,form:r,meta:n,...o})=>{var u,s;let{label:i,caption:a,min:d=0,max:p=100,step:m}=o;return e("div",null,e("label",{css:[Me,Ae]},e("span",{css:Ee},i),e("input",{type:"range",min:d,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(St,null,a):null,r.touched[t.name]&&r.errors[t.name]?e(Lt,{message:r.errors[t.name]}):null)};import{css as Ot}from"@emotion/react";var x=({children:t,...r})=>e("fieldset",{css:Ot`
|
|
400
407
|
border: none;
|
|
401
408
|
padding: 0;
|
|
402
409
|
& legend {
|
|
403
410
|
margin-bottom: var(--spacing-base);
|
|
404
411
|
}
|
|
405
|
-
`,...r},t);import{css as
|
|
412
|
+
`,...r},t);import{css as xt}from"@emotion/react";var Q=({children:t})=>e("legend",{css:xt`
|
|
406
413
|
font-size: var(--fs-md);
|
|
407
414
|
font-weight: var(--fw-bold);
|
|
408
415
|
border-bottom: 1px solid var(--gray-400);
|
|
409
416
|
width: 100%;
|
|
410
|
-
`},t);import{Context as
|
|
417
|
+
`},t);import{Context as Rt,TransitionDataStore as Vt}from"@uniformdev/context";function Qe({manifest:t,visitor:r,override:n}){let o=new Rt({manifest:t,transitionStore:new se({initialData:r})}),i={...o.scores};o.storage.updateData([n]);let d={...{...o.scores}};return Object.entries(d).forEach(([p,m])=>{i[p]===m&&delete d[p]}),d}var se=class extends Vt{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 d=i.override-a;n.push({type:"modscoreS",data:{dimension:o,delta:d}})}),n):[]}function oe({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 Et}from"@uniformdev/design-system";var ae=t=>({field:r,form:n,meta:o,...i})=>e(t,{...r,...i,errorMessage:n.errors[r.name]});import{Input as Pt,InputSelect as It}from"@uniformdev/design-system";var re=ae(Pt),Fe=ae(It);var At=F.object({dimension:F.string(),score:F.number()}),ce=({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)]:[],d=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 l=c.type?`${c.type}: `:"",v=c.category?`${c.category} - `:"",g=`${l}${v}${c.name}`;return{value:s,label:g}});return p.unshift({value:"",label:"Choose dimension to override"}),e(Mt,{initialValues:{dimension:d,score:(u=n.scores[d])!=null?u:0},validate:s=>{let c={};return(s.score===n.scores[s.dimension]||s.score===0&&!n.scores[d])&&(c.score="You have to modify current score value"),c},validationSchema:At,enableReinitialize:!0,validateOnChange:!1,validateOnBlur:!1,onSubmit:async s=>{var f,y,C,w,R,V;let c=(y=(f=i[s.dimension])==null?void 0:f.cap)!=null?y:0,l=Math.min(s.score,c),v={...t,scoreOverrides:{...t.scoreOverrides,[s.dimension]:{initial:(V=(R=(w=(C=t.scoreOverrides)==null?void 0:C[s.dimension])==null?void 0:w.initial)!=null?R:n.scores[s.dimension])!=null?V:0,override:l}},route:"/overrides"};await r(v);let g=Z({scores:n.scores,scoreOverrides:v.scoreOverrides});o.rawUpdate(g)}},({isSubmitting:s,values:c,setFieldValue:l})=>{var C;let v=Qe({manifest:n.manifest,visitor:n.data,override:{type:"modscore",data:{dimension:c.dimension,delta:c.score-((C=n.scores[c.dimension])!=null?C:0)}}}),g=Object.entries(n.scores).reduce((w,[R,V])=>(w[R]={initial:V,override:V},w),{}),f={max:100,step:50};i[c.dimension]&&(f.max=i[c.dimension].cap,f.step=i[c.dimension].str);let y=c.score&&Object.keys(v).length>0;return e(Ht,{css:h.page},e("h1",{css:h.title},"Override Dimension"),e(qe,{component:Fe,label:"Dimension",id:"dimension",name:"dimension",options:p,disabled:s,onChange:w=>{l("score",0,!1),l("dimension",w.target.value)}}),e("p",{css:h.text},e("small",null,"Audiences and Intents are aggregated from other dimension scores and cannot be overridden directly.")),c.dimension?e(qe,{component:Be,name:"score",label:"Score",disabled:s,max:f.max,step:f.step,caption:`Range: 0 - ${f.max} in increments of ${f.step}`}):null,e(x,{disabled:s,css:{marginBottom:"2rem"}},y?e(_,null,e(G,{title:`Impacted Dimensions (${Object.keys(v).length})`},e(P,{preemptiveOverrides:g,dimensionIndex:i,dimensions:v,disableEditOverride:!0}))):null,e(Et,{type:"submit",css:h.submitButton,disabled:s},"Save"),e(M,{route:"/overrides",css:h.cancelButton},"Cancel")))})};import{useState as Zt}from"react";import{useState as Bt,useEffect as Qt}from"react";import{Button as Ft,Input as qt}from"@uniformdev/design-system";var Nt=({name:t,value:r,submit:n})=>{let[o,i]=Bt(r!=null?r:"");return Qt(()=>{i(r!=null?r:"")},[r]),e("div",{css:{display:"flex",gap:"var(--spacing-sm)"}},e(qt,{type:"text",css:[He],name:t,value:o,onChange:p=>{i(p.target.value)}}),e(Ft,{buttonType:"primary",disabled:o===r,size:"sm",onClick:()=>n(t,o!=null?o:"")},"Save"))},Ne=Nt;import{Button as Ze,InputSelect as zt}from"@uniformdev/design-system";var ze=({...t})=>{let{state:{data:{quirks:r}},quirksIndex:{index:n},settings:o,saveSettings:i,actions:a}=t,[d,p]=Zt(""),m;d&&(m=n[d]);let u=async(s,c)=>{var g,f,y;p("");let l={...o,quirkOverrides:{...o.quirkOverrides,[s]:{initial:(y=(f=(g=o.quirkOverrides)==null?void 0:g[s])==null?void 0:f.initial)!=null?y:r[s],override:c}}};await i(l);let v=oe({quirks:r,quirkOverrides:l.quirkOverrides});await a.update({quirks:v})};return e(b.Fragment,null,e("article",{css:[h.page,h.quirks]},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(n).length?e(J,null,e(we,null,e(N,null,e(j,{width:"30%"},"Key"),e(j,{width:"50%"},"Value"),e(j,{width:"20%"},""))),e(X,null,Object.values(n).map(({name:s,value:c,id:l})=>{var f,y,C;let v=(y=(f=o.quirkOverrides)==null?void 0:f[s])==null?void 0:y.initial,g=[];return m&&m.options&&(g=m.options.map(w=>({value:w.value,label:w.name}))),e(N,{key:l,border:"bottom"},e(O,null,e("strong",null,s)),e(O,null,d!==l?e("div",{onClick:()=>{p(l)}},v?e("div",null,e("s",null,v)):null,c):null,d===l&&m&&e(b.Fragment,null,m.options?e(zt,{showLabel:!1,label:`Change ${s}`,defaultOption:`Change ${s}`,name:l,onChange:w=>u(w.target.name,w.target.value),options:g}):e(Ne,{name:l,value:c,submit:u}))),e(O,null,d?null:(C=o.quirkOverrides)!=null&&C[l]?e(Ze,{buttonType:"ghost",onClick:()=>{Oe({quirk:l,settings:o,saveSettings:i,actions:a})}},e("small",null,"Clear Override")):e(Ze,{buttonType:"ghost",onClick:()=>{p(l)}},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{Button as Ue}from"@uniformdev/design-system";import{Switch as _e}from"@uniformdev/design-system";var Ge=({settings:t,saveSettings:r,actions:n,state:{data:o},clearAllExtensionData:i})=>e("article",{css:[h.page,{display:"flex",flexDirection:"column",gap:"var(--spacing-base)"}]},e("h1",{css:h.title},"Settings"),e(x,null,e(Q,null,"Data Connection"),e(Ue,{buttonType:"tertiary",onClick:()=>{r({...t,route:"/connect"})}},"Manage Connection to Uniform")),e(x,null,e(Q,null,"Storage Consent"),e(_e,{label:"Store visitor data",id:"consent-mode",name:"consentMode",checked:o.consent,onChange:a=>{n.rawUpdate([{type:"consent",data:a.currentTarget.checked}]),r({...t,consentMode:a.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(x,null,e(Q,null,"Logging"),e(_e,{label:"Write Uniform Context diagnostic logs to browser console",id:"logging",name:"logging",checked:t.logLevel==="debug",onChange:a=>r({...t,logLevel:a.currentTarget.checked?"debug":"none"})})),e(x,null,e(Q,null,"Clear extension storage"),e(Ue,{onClick:()=>{i()}},"Clear"),e("p",null,e("small",null,"May be necessary when you have multiple different sites on the same domain name (e.g. http://localhost:3000) and there are some conflicts or other unexpected behaviour."))));import{Button as $e}from"@uniformdev/design-system";var le=({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:[$,ye]},e("h2",{css:K},"Connect to a Uniform Project"),e("p",{css:W},"This allows reading human-readable labels for the dimensions."),e("div",{css:Y},e($e,{buttonType:"secondary",onClick:n},"Connect this site"),e($e,{buttonType:"ghost",onClick:o},"Skip for now")),e("button",{type:"button",css:Ce,title:"close",onClick:o},e("span",{hidden:!0},"Close"))):null};import{computeDimensionDefinitionDisplayData as Ut,computeDimensionDisplayData as Ke,UncachedDimensionClient as _t}from"@uniformdev/context/api";import{useAsync as Gt}from"react-use";import*as We from"react";function Ye({apiHost:t,apiKey:r,projectId:n},o){let{loading:i,error:a,value:d}=Gt(async()=>{if(!r||!n)return p;let u=(await new _t({projectId:n,apiKey:r,apiHost:t||void 0}).get()).dimensions,s={};return u.map(c=>{var l,v,g,f,y,C,w,R;if(s[c.dim]={...Ut(c),cap:c.cap,str:(f=(g=(v=(l=o==null?void 0:o.project.pz)==null?void 0:l.sig)==null?void 0:v[c.dim])==null?void 0:g.str)!=null?f:50},s[c.dim].type==="Enrichment"){let V=c.dim.split("_")[0];s[c.dim].cap=(R=(w=(C=(y=o==null?void 0:o.project.pz)==null?void 0:y.enr)==null?void 0:C[V])==null?void 0:w.cap)!=null?R:100}}),s},[t,r,n]),p=We.useMemo(()=>{var u,s,c,l;let m={};return o&&(Object.entries((s=(u=o==null?void 0:o.project.pz)==null?void 0:u.sig)!=null?s:{}).map(([v,g])=>{let f=Ke(v,o);f&&(m[v]={...g,...f})}),Object.entries((l=(c=o==null?void 0:o.project.pz)==null?void 0:c.enr)!=null?l:{}).map(([v,g])=>{var C;let f=Ke(v,o),y={cap:(C=g.cap)!=null?C:100,str:10};f&&(m[v]={...f,cap:y.cap,str:y.str})}),d&&Object.entries(d).map(([v,g])=>{m[v]={...m[v],...g}})),m},[o,d]);return{loading:i,error:a,index:p}}import{useMemo as $t}from"react";import{UncachedQuirkClient as Kt}from"@uniformdev/context/api";import{useAsync as Wt}from"react-use";function Je({apiHost:t,apiKey:r,projectId:n},o){let{loading:i,error:a,value:d}=Wt(async()=>{if(!r||!n)return{};let u=await new Kt({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=$t(()=>{let m={};return Object.entries(o).map(([u,s])=>m[u]={value:s,id:u,name:u}),d&&Object.entries(d).map(([u,s])=>m[u]={...s,value:o[u]}),m},[o,d]);return{loading:i,error:a,index:p}}import{css as tt}from"@emotion/react";import{Theme as ao}from"@uniformdev/design-system";function ne(){return e("style",null,`
|
|
411
418
|
:root {
|
|
412
419
|
--site-width: 700px;
|
|
413
420
|
|
|
@@ -417,7 +424,7 @@ to {
|
|
|
417
424
|
|
|
418
425
|
--min-height: 450px;
|
|
419
426
|
}
|
|
420
|
-
`)}import{useEffect as
|
|
427
|
+
`)}import{useEffect as Yt,useState as Jt}from"react";import{useMountedState as Xt}from"react-use";var Xe=()=>{let[t,r]=Jt(!1),n=Xt();return Yt(()=>{setTimeout(()=>{n()&&r(!0)},1e3)},[n]),t?e("article",{css:h.page},e("h1",null,"Loading..."),e("p",null,"Connecting to Uniform API for complete data.")):null};import{parseQuickConnect as jt}from"@uniformdev/context";import{ApiClientError as eo,UncachedManifestClient as to}from"@uniformdev/context/api";import{Field as de,Form as oo,Formik as ro}from"formik";import*as k from"react";import{ErrorMessage as no,Input as io,Button as q}from"@uniformdev/design-system";function je(t){let[r,n]=k.useState(t.currentData?"c":"qc"),[o,i]=k.useState(void 0),[a,d]=k.useState(void 0),p=k.useCallback(async s=>{let c=new to(s);i(void 0);try{let l=await c.get({preview:!0});return d({manifest:l,target:s}),l}catch(l){if(l instanceof eo){l.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(l.errorMessage);return}if("message"in l){l.message==="Failed to fetch"?i("A network error occurred. Ensure the API host is valid."):i(l.message);return}i(JSON.stringify(l,null,2));return}},[]);k.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"),d(void 0),i(void 0),t.onConnect(null))};return e("div",null,o?e(k.Fragment,null,e(no,{message:o}),e(q,{buttonType:"secondary",type:"button",onClick:u},"Clear old/broken settings")):null,r==="qc"||r==="mc"?e(so,{...t,state:r,setState:n,onConnect:m}):e("div",null,a?e(k.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(q,{buttonType:"secondary",type:"button",onClick:u},"Disconnect")):null))}function so({setState:t,state:r,currentData:n,onConnect:o}){var i,a,d;return e("div",null,e(ro,{initialValues:{apiHost:(i=n==null?void 0:n.apiHost)!=null?i:"https://uniform.app",apiKey:(a=n==null?void 0:n.apiKey)!=null?a:"",projectId:(d=n==null?void 0:n.projectId)!=null?d:"",qc:""},onSubmit:o},({setFieldValue:p,setFieldError:m,errors:{qc:u},isSubmitting:s})=>e(oo,null,e("fieldset",{css:{display:"flex",flexDirection:"column",gap:"var(--spacing-base)"}},r==="qc"?e(k.Fragment,null,e("div",null,e(io,{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 l=jt(c.currentTarget.value);p("apiHost",l.apiHost),p("apiKey",l.apiKey),p("projectId",l.projectId)}catch(l){m("qc",l.message)}}})),e("section",{css:{display:"flex",gap:"var(--spacing-sm)"}},e(q,{type:"submit",buttonType:"primary",disabled:s},s?"Verifying...":"Connect"),e(q,{type:"button",buttonType:"ghost",onClick:()=>t("mc"),disabled:s},"Connect Manually"))):e(k.Fragment,null,e("div",null,e(de,{component:re,label:"API Key",name:"apiKey",caption:"Generate an API key in your Uniform team settings."})),e("div",null,e(de,{component:re,label:"Project ID",name:"projectId",caption:"Available to copy after generating an API key"})),e("div",null,e(de,{component:re,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(q,{type:"submit",buttonType:"primary",disabled:s},s?"Verifying...":"Connect"),e(q,{type:"button",buttonType:"ghost",onClick:()=>t("qc"),disabled:s},"Use Quick Connect")))))))}var et=({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:h.page},e("h1",{css:h.title},"Connect to a Uniform Project"),e("p",{css:h.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(je,{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=tt`
|
|
421
428
|
background: var(--white);
|
|
422
429
|
padding: var(--spacing-base);
|
|
423
430
|
overflow-y: auto;
|
|
@@ -446,7 +453,7 @@ to {
|
|
|
446
453
|
&::-webkit-scrollbar-thumb:hover {
|
|
447
454
|
background: var(--gray-500);
|
|
448
455
|
}
|
|
449
|
-
`;function
|
|
456
|
+
`;function ot(t){let r=Ye(t.settings,t.state.manifest),n=Je(t.settings,t.state.data.quirks),o={...t,dimensionIndex:r,quirksIndex:n},i=()=>{var a;if(r.loading||n.loading)return e(Xe,null);if(t.settings.route&&t.settings.route.match(/overrides\/\w+/))return e(ce,{...o});switch((a=t.settings)==null?void 0:a.route){case void 0:case"/":case"/dimensions":return e(Re,{...o});case"/overrides":return e(Ie,{...o});case"/overrides/add":return e(ce,{...o});case"/quirks":return e(ze,{...o});case"/settings":return e(Ge,{...o});case"/connect":return e(et,{...o});default:return e(he,null)}};return e(ge,{settings:t.settings,saveSettings:t.saveSettings},e(ao,null),e(ne,null),e("div",{css:tt`
|
|
450
457
|
display: grid;
|
|
451
458
|
grid-template-columns: 200px auto;
|
|
452
459
|
font-weight: var(--fs-base);
|
|
@@ -455,7 +462,7 @@ to {
|
|
|
455
462
|
line-height: var(--base-line-height);
|
|
456
463
|
height: var(--min-height);
|
|
457
464
|
min-width: var(--site-width);
|
|
458
|
-
`},e(
|
|
465
|
+
`},e(fe,{...t}),e("main",{css:co},e(le,{...t}),i())))}import{Context as lo,createDebugConsoleLogDrain as po}from"@uniformdev/context";import*as L from"react";var pe="embeddedUniformDevToolsSettings";function rt({context:t,initialSettings:r}){let n=t!=null?t:typeof window!="undefined"?window.__UNIFORM_DEVTOOLS_CONTEXT_INSTANCE__:void 0,o=n!=null?n:new lo({manifest:{project:{}}}),[i,a]=L.useState({data:o.storage.data,manifest:o.manifest.data,scores:o.scores,personalizations:[],tests:[]}),[d,p]=L.useState(r!=null?r:{});L.useEffect(()=>{var l;let c=po((l=d.logLevel)!=null?l:"none");return o.events.on("log",c),()=>{o.events.off("log",c)}},[d,o]),L.useEffect(()=>{let c=()=>{let g=window.localStorage.getItem(pe)||"{}",f=JSON.parse(g),y=oe({quirks:o.storage.data.quirks,quirkOverrides:f.quirkOverrides});y&&(console.log("Applying overridden quirks:",y),o.update({quirks:y}));let C=Z({scores:o.scores,scoreOverrides:f.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}))},l=g=>{!g.changed||a(f=>({...f,personalizations:[...f.personalizations,g]}))},v=g=>{!g.variantAssigned||a(f=>({...f,tests:[...f.tests,g]}))};return o.events.on("personalizationResult",l),o.events.on("testResult",v),o.storage.events.on("*",c),()=>{o.storage.events.off("*",c),o.events.off("personalizationResult",l),o.events.off("testResult",v)}},[o]),L.useEffect(()=>{if(window.localStorage){let c=window.localStorage.getItem(pe);if(c)try{let l=JSON.parse(c),v={...r,...l};p(v);let g=Z({scores:i.scores,scoreOverrides:v.scoreOverrides});m.rawUpdate(g)}catch(l){window.localStorage.removeItem(pe),console.error("Failed to parse settings from localStorage: ",l.message)}}},[]);let{actions:m,saveSettings:u,clearAllExtensionData:s}=L.useMemo(()=>({actions:{update:g=>o.update(g),forget:()=>o.forget(!1),rawUpdate:g=>o.storage.updateData(g)},saveSettings:async g=>{p(g),window.localStorage&&window.localStorage.setItem("embeddedUniformDevToolsSettings",JSON.stringify(g))},clearAllExtensionData:async()=>{p({route:"/"}),window.localStorage&&(window.localStorage.removeItem("embeddedUniformDevToolsSettings"),window.location.reload())}}),[o]);return n?e(ot,{state:i,actions:m,settings:d,saveSettings:u,clearAllExtensionData:s}):e("p",null,"Unable to find Uniform Context. Ensure the devtools plugin is activated.")}import{css as me}from"@emotion/react";import*as H from"react";import{Theme as go,Button as vo,Paragraph as fo,Callout as ho}from"@uniformdev/design-system";import{useLocalStorage as bo}from"react-use";import{css as mo}from"@emotion/react";var uo=mo`
|
|
459
466
|
align-items: center;
|
|
460
467
|
border-radius: var(--rounded-full);
|
|
461
468
|
background: var(--brand-secondary-5);
|
|
@@ -481,11 +488,15 @@ to {
|
|
|
481
488
|
max-width: 100%;
|
|
482
489
|
height: auto;
|
|
483
490
|
}
|
|
484
|
-
`,
|
|
491
|
+
`,nt=({...t})=>e("button",{type:"button",css:uo,...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"})));var yo="dblgnkbknchechcibdojfdoeeodhmgbd",Co="dcmlokofjljnfjcknpmhjocogllfbhkg";function Vi(t){let[r,n]=H.useState(!1),[o,i]=H.useState(t.context),[a,d]=H.useState(!1),[p,m]=bo("isUniformInlineDevtoolsDisabled",!1);return H.useEffect(()=>{!t.context&&typeof document!="undefined"&&i(window.__UNIFORM_DEVTOOLS_CONTEXT_INSTANCE__)},[t.context]),H.useEffect(()=>{[Co,yo].map(u=>{let s=new Image;s.src=`chrome-extension://${u}/icons/uniform-logo.png`,s.onload=()=>d(!0)})},[]),p?null:o?e("div",null,e(go,null),e(ne,null),e(nt,{onClick:()=>n(u=>!u)}),r?e("div",{css:me`
|
|
485
492
|
box-shadow: var(--shadow-base);
|
|
486
493
|
position: fixed;
|
|
487
494
|
bottom: 82px;
|
|
488
495
|
right: var(--spacing-base);
|
|
489
496
|
z-index: var(--z-10);
|
|
490
497
|
max-width: var(--site-width);
|
|
491
|
-
`},e(
|
|
498
|
+
`},a?e("div",{css:me`
|
|
499
|
+
padding: var(--spacing-md);
|
|
500
|
+
`},e(ho,{type:"danger",title:"This functionality is disabled."},e(fo,null,"We detected you already use the Uniform Context browser extension. Using both tools is not supported. Please use the functionality of the browser extension instead."),e(vo,{css:me`
|
|
501
|
+
margin-top: var(--spacing-md);
|
|
502
|
+
`,buttonType:"secondary",onClick:()=>m(!0)},"Disabled inline tools"))):e(rt,{...t})):null):e("p",null,"Unable to find Uniform Context. Ensure the devtools plugin is activated.")}export{ot as ContextDevTools,rt as EmbeddedContextDevTools,Vi as ToggleEmbeddedContextDevTools};
|
package/dist/index.d.ts
CHANGED
|
@@ -54,6 +54,7 @@ declare type ContextDevToolsProps = {
|
|
|
54
54
|
actions: DevToolsActions;
|
|
55
55
|
settings: DevToolsSettings;
|
|
56
56
|
saveSettings: (settings: DevToolsSettings) => void | Promise<void>;
|
|
57
|
+
clearAllExtensionData: () => void | Promise<void>;
|
|
57
58
|
};
|
|
58
59
|
declare type ContextDevToolsRouteProps = ContextDevToolsProps & {
|
|
59
60
|
dimensionIndex: ReturnType<typeof useDimensionIndex>;
|
|
@@ -78,6 +79,6 @@ declare type EmbeddedContextDevToolsProps = {
|
|
|
78
79
|
declare function EmbeddedContextDevTools({ context, initialSettings }: EmbeddedContextDevToolsProps): _emotion_react_types_jsx_namespace.EmotionJSX.Element;
|
|
79
80
|
|
|
80
81
|
/** Renders Uniform Context DevTools in an embedded state (as a React component that can be an island on a demo page, for example) */
|
|
81
|
-
declare function ToggleEmbeddedContextDevTools(props: EmbeddedContextDevToolsProps): _emotion_react_types_jsx_namespace.EmotionJSX.Element;
|
|
82
|
+
declare function ToggleEmbeddedContextDevTools(props: EmbeddedContextDevToolsProps): _emotion_react_types_jsx_namespace.EmotionJSX.Element | null;
|
|
82
83
|
|
|
83
84
|
export { ContextDevTools, ContextDevToolsProps, ContextDevToolsRouteProps, DevToolsSettings, EmbeddedContextDevTools, EmbeddedContextDevToolsProps, Override, ToggleEmbeddedContextDevTools };
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
var
|
|
1
|
+
"use strict";var Et=Object.create;var W=Object.defineProperty;var At=Object.getOwnPropertyDescriptor;var Bt=Object.getOwnPropertyNames;var Qt=Object.getPrototypeOf,Ft=Object.prototype.hasOwnProperty;var qt=(t,r)=>{for(var n in r)W(t,n,{get:r[n],enumerable:!0})},Ae=(t,r,n,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let i of Bt(r))!Ft.call(t,i)&&i!==n&&W(t,i,{get:()=>r[i],enumerable:!(o=At(r,i))||o.enumerable});return t};var O=(t,r,n)=>(n=t!=null?Et(Qt(t)):{},Ae(r||!t||!t.__esModule?W(n,"default",{value:t,enumerable:!0}):n,t)),Nt=t=>Ae(W({},"__esModule",{value:!0}),t);var lo={};qt(lo,{ContextDevTools:()=>He,EmbeddedContextDevTools:()=>Ee,ToggleEmbeddedContextDevTools:()=>co});module.exports=Nt(lo);var e=require("@emotion/react"),b=O(require("react"));var S=require("@emotion/react");var Y=require("react"),Be=(0,Y.createContext)({settings:{},saveSettings:()=>{}}),J=()=>(0,Y.useContext)(Be),Qe=({children:t,settings:r,saveSettings:n})=>(0,e.jsx)(Be.Provider,{value:{settings:r,saveSettings:n}},t);var Zt=({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)},Z=Zt;var Fe=require("@emotion/react"),qe=()=>{var n;let t=typeof chrome!="undefined"&&typeof chrome.storage!="undefined"&&((n=chrome==null?void 0:chrome.runtime)==null?void 0:n.getManifest()),r=t?t==null?void 0:t.version:"DEV";return(0,e.jsx)("div",{css:Fe.css`
|
|
2
|
+
font-size: var(--fs-sm);
|
|
3
|
+
color: var(--gray-400);
|
|
4
|
+
position: absolute;
|
|
5
|
+
bottom: 2px;
|
|
6
|
+
right: 5px;
|
|
7
|
+
`},`v${r}`)};var zt=[{title:"Dimensions",href:"/dimensions",icon:`<svg
|
|
2
8
|
width="24"
|
|
3
9
|
height="24"
|
|
4
10
|
viewBox="0 0 24 24"
|
|
@@ -36,16 +42,17 @@ var It=Object.create;var K=Object.defineProperty;var Ht=Object.getOwnPropertyDes
|
|
|
36
42
|
</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
43
|
<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
44
|
</svg>
|
|
39
|
-
`}],
|
|
45
|
+
`}],Ut=`<svg width="24" height="24" fill="white" viewBox="0 0 122.88 116.67" xmlns="http://www.w3.org/2000/svg">
|
|
40
46
|
<g>
|
|
41
47
|
<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
48
|
</g>
|
|
43
|
-
</svg>`,
|
|
49
|
+
</svg>`,Ne=({...t})=>{var o,i;let r=a=>{var p;let d="active";return!((p=t.settings)!=null&&p.route)&&a==="/dimensions"||t.settings.route===a?d:""},n=Boolean(typeof window!="undefined"&&((i=(o=window.chrome)==null?void 0:o.runtime)==null?void 0:i.id));return(0,e.jsx)("nav",{css:S.css`
|
|
44
50
|
background: var(--brand-secondary-1);
|
|
45
|
-
padding: var(--spacing-base);
|
|
51
|
+
padding: var(--spacing-base) var(--spacing-base) var(--spacing-md);
|
|
46
52
|
min-width: 200px;
|
|
47
53
|
display: flex;
|
|
48
54
|
flex-direction: column;
|
|
55
|
+
position: relative;
|
|
49
56
|
`},(0,e.jsx)("a",{css:S.css`
|
|
50
57
|
flex-grow: 0;
|
|
51
58
|
display: inline-block;
|
|
@@ -57,7 +64,7 @@ var It=Object.create;var K=Object.defineProperty;var Ht=Object.getOwnPropertyDes
|
|
|
57
64
|
margin: 0;
|
|
58
65
|
list-style-type: none;
|
|
59
66
|
flex-grow: 1;
|
|
60
|
-
`},
|
|
67
|
+
`},zt.map((a,d)=>{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:S.css`
|
|
61
68
|
padding: 0;
|
|
62
69
|
margin: 0;
|
|
63
70
|
list-style-type: none;
|
|
@@ -65,7 +72,7 @@ var It=Object.create;var K=Object.defineProperty;var Ht=Object.getOwnPropertyDes
|
|
|
65
72
|
&:last-of-type {
|
|
66
73
|
margin-top: auto;
|
|
67
74
|
}
|
|
68
|
-
`,key:
|
|
75
|
+
`,key:d},(0,e.jsx)(Z,{css:S.css`
|
|
69
76
|
align-items: center;
|
|
70
77
|
border-radius: var(--rounded-base);
|
|
71
78
|
display: flex;
|
|
@@ -109,11 +116,11 @@ var It=Object.create;var K=Object.defineProperty;var Ht=Object.getOwnPropertyDes
|
|
|
109
116
|
`,rel:"noreferrer"},(0,e.jsx)("i",{css:S.css`
|
|
110
117
|
align-items: center;
|
|
111
118
|
display: flex;
|
|
112
|
-
`,dangerouslySetInnerHTML:{__html:
|
|
119
|
+
`,dangerouslySetInnerHTML:{__html:Ut}}),"Install Chrome Extension"),(0,e.jsx)(qe,null))};var Ze=()=>(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 de=O(require("react"));var A=require("@emotion/react"),X=O(require("react")),ze=(0,A.css)({willChange:"height"}),_t=A.css`
|
|
113
120
|
border-bottom: 2px solid var(--brand-secondary-1);
|
|
114
121
|
font-size: var(--fs-base);
|
|
115
122
|
margin: 0;
|
|
116
|
-
`,
|
|
123
|
+
`,Gt=A.css`
|
|
117
124
|
align-items: center;
|
|
118
125
|
border: none;
|
|
119
126
|
background: none;
|
|
@@ -123,13 +130,13 @@ var It=Object.create;var K=Object.defineProperty;var Ht=Object.getOwnPropertyDes
|
|
|
123
130
|
padding: var(--spacing-sm) 0;
|
|
124
131
|
font-weight: var(--fw-bold);
|
|
125
132
|
justify-content: space-between;
|
|
126
|
-
|
|
133
|
+
`,$t=A.css`
|
|
127
134
|
align-self: center;
|
|
128
|
-
`,
|
|
135
|
+
`,Kt=A.css`
|
|
129
136
|
transform: rotate(-180deg);
|
|
130
|
-
`,
|
|
137
|
+
`,j=({children:t})=>(0,e.jsx)("div",{css:[ze]},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:_t},(0,e.jsx)("button",{"aria-expanded":n,css:Gt,title:t,id:i,"aria-controls":`${i}-section`,onClick:()=>o(a=>!a),type:"button"},t,(0,e.jsx)("i",{css:[$t,n?Kt: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:[ze,A.css`
|
|
131
138
|
padding: var(--spacing-sm) 0;
|
|
132
|
-
`],role:"region","aria-labelledby":i},n?r:null))};var
|
|
139
|
+
`],role:"region","aria-labelledby":i},n?r:null))};var B=require("@emotion/react"),te=B.css`
|
|
133
140
|
background-color: var(--gray-100);
|
|
134
141
|
padding: var(--spacing-base) var(--spacing-md);
|
|
135
142
|
margin: var(--spacing-base) 0;
|
|
@@ -137,21 +144,21 @@ var It=Object.create;var K=Object.defineProperty;var Ht=Object.getOwnPropertyDes
|
|
|
137
144
|
&:first-of-type {
|
|
138
145
|
margin: 0 0 var(--spacing-base);
|
|
139
146
|
}
|
|
140
|
-
`,
|
|
147
|
+
`,Ue=B.css`
|
|
141
148
|
background: var(--gray-100)
|
|
142
149
|
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
150
|
no-repeat var(--spacing-sm) var(--spacing-base);
|
|
144
151
|
padding: var(--spacing-base) var(--spacing-xl);
|
|
145
|
-
`,
|
|
152
|
+
`,oe=B.css`
|
|
146
153
|
color: var(--brand-secondary-1);
|
|
147
154
|
margin: 0;
|
|
148
155
|
font-size: var(--fs-base);
|
|
149
156
|
font-weight: var(--fw-bold);
|
|
150
|
-
`,
|
|
157
|
+
`,re=B.css`
|
|
151
158
|
color: var(--brand-secondary-1);
|
|
152
159
|
margin: var(--spacing-xs) 0 0;
|
|
153
160
|
font-size: var(--fs-sm);
|
|
154
|
-
`,
|
|
161
|
+
`,_e=B.css`
|
|
155
162
|
align-items: center;
|
|
156
163
|
border: none;
|
|
157
164
|
background: transparent
|
|
@@ -171,17 +178,17 @@ var It=Object.create;var K=Object.defineProperty;var Ht=Object.getOwnPropertyDes
|
|
|
171
178
|
&:hover {
|
|
172
179
|
opacity: 0.6;
|
|
173
180
|
}
|
|
174
|
-
`,
|
|
181
|
+
`,ne=B.css`
|
|
175
182
|
display: flex;
|
|
176
183
|
margin: var(--spacing-sm) 0 0;
|
|
177
184
|
gap: var(--spacing-base);
|
|
178
|
-
`;var
|
|
185
|
+
`;var z=({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"),Wt=k.keyframes`from {
|
|
179
186
|
transform: scale(1);
|
|
180
187
|
}
|
|
181
188
|
to {
|
|
182
189
|
transform: scale(1.2);
|
|
183
190
|
}
|
|
184
|
-
`,
|
|
191
|
+
`,h={page:k.css`
|
|
185
192
|
color: var(--brand-secondary-1);
|
|
186
193
|
`,text:k.css`
|
|
187
194
|
margin: var(--spacing-sm) 0;
|
|
@@ -215,7 +222,7 @@ to {
|
|
|
215
222
|
position: absolute;
|
|
216
223
|
right: var(--spacing-base);
|
|
217
224
|
bottom: var(--spacing-base);
|
|
218
|
-
animation: 0.5s 2 alternate ${
|
|
225
|
+
animation: 0.5s 2 alternate ${Wt};
|
|
219
226
|
`,cancelButton:k.css`
|
|
220
227
|
position: absolute;
|
|
221
228
|
left: calc(200px + var(--spacing-base));
|
|
@@ -231,47 +238,47 @@ to {
|
|
|
231
238
|
input {
|
|
232
239
|
padding: var(--spacing-sm);
|
|
233
240
|
}
|
|
234
|
-
`};var L=require("@emotion/react"),
|
|
241
|
+
`};var L=require("@emotion/react"),ie=({children:t})=>(0,e.jsx)("table",{css:L.css`
|
|
235
242
|
border-collapse: collapse;
|
|
236
243
|
display: table;
|
|
237
244
|
width: 100%;
|
|
238
245
|
font-size: var(--fs-sm);
|
|
239
|
-
`},t),
|
|
246
|
+
`},t),Ge=({children:t})=>(0,e.jsx)("thead",{css:L.css`
|
|
240
247
|
background: var(--gray-50);
|
|
241
248
|
text-align: left;
|
|
242
249
|
& tr {
|
|
243
250
|
border-bottom: 1px solid var(--gray-200);
|
|
244
251
|
}
|
|
245
|
-
`},t),
|
|
252
|
+
`},t),se=({children:t})=>(0,e.jsx)("tbody",null,t),G=({border:t,children:r})=>(0,e.jsx)("tr",{css:t?L.css`
|
|
246
253
|
border-bottom: 1px solid var(--gray-200);
|
|
247
254
|
&:where(:last-child) {
|
|
248
255
|
border: none;
|
|
249
256
|
}
|
|
250
|
-
`:void 0},r),
|
|
257
|
+
`:void 0},r),ae=({children:t,width:r})=>(0,e.jsx)("th",{css:L.css`
|
|
251
258
|
outline: none;
|
|
252
259
|
padding: var(--spacing-sm);
|
|
253
260
|
width: ${r!=null?r:"auto"};
|
|
254
|
-
`},t);function
|
|
261
|
+
`},t);function Yt(t){switch(t){case"light":return L.css`
|
|
255
262
|
color: var(--gray-400);
|
|
256
263
|
`;case"dark":return L.css`
|
|
257
264
|
color: var(--brand-secondary-1);
|
|
258
|
-
`}}function
|
|
265
|
+
`}}function Jt(t){return L.css`
|
|
259
266
|
text-align: ${t};
|
|
260
267
|
`}var R=({alignment:t="left",border:r,color:n="dark",children:o})=>(0,e.jsx)("td",{css:[L.css`
|
|
261
268
|
padding: var(--spacing-base);
|
|
262
269
|
max-width: 180px;
|
|
263
270
|
overflow-wrap: break-word;
|
|
264
271
|
position: relative;
|
|
265
|
-
|
|
272
|
+
`,Yt(n),Jt(t),r?L.css`
|
|
266
273
|
border-left: 1px solid var(--gray-200);
|
|
267
|
-
`:void 0]},o);var
|
|
274
|
+
`:void 0]},o);var ce=require("@emotion/react"),$e=ce.css`
|
|
268
275
|
position: relative;
|
|
269
276
|
display: inline-block;
|
|
270
277
|
font-size: var(--fs-base);
|
|
271
|
-
`,
|
|
278
|
+
`,Ke=ce.css`
|
|
272
279
|
display: block;
|
|
273
280
|
text-decoration: line-through;
|
|
274
|
-
`,
|
|
281
|
+
`,We=ce.css`
|
|
275
282
|
position: absolute;
|
|
276
283
|
width: 6px;
|
|
277
284
|
height: 6px;
|
|
@@ -279,26 +286,26 @@ to {
|
|
|
279
286
|
top: 9px;
|
|
280
287
|
background: var(--red-tooltip);
|
|
281
288
|
border-radius: 3px;
|
|
282
|
-
`;var
|
|
289
|
+
`;var Je=require("@emotion/react"),Xt=`<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
283
290
|
<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"/>
|
|
284
291
|
<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"/>
|
|
285
292
|
<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"/>
|
|
286
|
-
</svg>`,
|
|
293
|
+
</svg>`,jt=`<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
287
294
|
<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"/>
|
|
288
295
|
<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"/>
|
|
289
296
|
<path d="M11.9999 5.05762H8.3999V6.2576H11.9999V5.05762Z" fill="#828282"/>
|
|
290
297
|
<path d="M8.3999 7.45752H11.9999V8.6575H8.3999V7.45752Z" fill="#828282"/>
|
|
291
298
|
<path d="M11.9999 2.65771H8.3999V3.8577H11.9999V2.65771Z" fill="#828282"/>
|
|
292
|
-
</svg>`,
|
|
299
|
+
</svg>`,Ye=`<svg width="15" height="11" viewBox="0 0 15 11" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
293
300
|
<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"/>
|
|
294
301
|
<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"/>
|
|
295
302
|
<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"/>
|
|
296
303
|
<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"/>
|
|
297
304
|
<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"/>
|
|
298
|
-
</svg
|
|
305
|
+
</svg>`,Xe=({type:t})=>{let r="";switch(t){case"Audience":r=Xt;break;case"Signal":r=Ye;break;case"Intent":r=Ye;break;case"Enrichment":r=jt;break}return(0,e.jsx)("i",{css:Je.css`
|
|
299
306
|
align-items: center;
|
|
300
307
|
display: inline-block;
|
|
301
|
-
`,dangerouslySetInnerHTML:{__html:r}})};var
|
|
308
|
+
`,dangerouslySetInnerHTML:{__html:r}})};var eo=({dimensionIndex:t,dimensions:r,disableEditOverride:n,onClick:o,preemptiveOverrides:i})=>{var p;let{settings:a}=J(),d=(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 f;let{dim:s,name:c,type:l,category:v}=(f=t[m])!=null?f:{name:m,dim:m,type:void 0,category:void 0},g=d[s];return(0,e.jsx)(G,{key:s},(0,e.jsx)(R,null,g!==void 0?(0,e.jsx)("s",{css:Ke},g.initial):null,(0,e.jsx)("b",{css:$e},u,g!==void 0&&(0,e.jsx)("i",{css:We}))),(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)(Xe,{type:l})," ",l),(0,e.jsx)("strong",null,v?`${v}:`:""," ",c))),(0,e.jsx)(R,{alignment:"right",color:"light"},g!==void 0&&!n?(0,e.jsx)(Z,{route:`/overrides/${s}`},"Edit override"):null))})))},Q=eo;async function le({actions:t,saveSettings:r,scores:n,settings:o}){var p,m;let i=(p=o.scoreOverrides)!=null?p:{},a={...i},d=[];for(let u of Object.keys(i)){let s=i==null?void 0:i[u];delete a[u],d.push({type:"modscoreS",data:{dimension:u,delta:s.initial-((m=n[u])!=null?m:0)}})}await r({...o,scoreOverrides:a}),await t.rawUpdate(d)}async function je({quirk:t,settings:r,saveSettings:n,actions:o}){var d;let i=(d=r.quirkOverrides)==null?void 0:d[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"),et=require("@uniformdev/design-system"),tt=({dimensionIndex:{index:t},state:{scores:r,data:n},actions:o,saveSettings:i,settings:a})=>{let d=de.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(d).length,u=()=>{o.rawUpdate([{type:"setcontrol",data:!n.controlGroup}])};return(0,e.jsx)(de.Fragment,null,(0,e.jsx)("article",{css:h.page},(0,e.jsx)("div",{css:h.headingGroup},(0,e.jsx)("h2",{css:h.title},"Dimensions",(0,e.jsx)("small",null,p," active of ",m)),(0,e.jsx)("div",{css:h.reset},(0,e.jsx)(Te.Button,{buttonType:"ghost",onClick:()=>le({actions:o,saveSettings:i,scores:r,settings:a}).then(o.forget)},"clear all dimensions")),(0,e.jsx)(et.Switch,{name:"controlGroup",label:"Control Group",onChange:u,checked:n.controlGroup})),p>0?(0,e.jsx)(Q,{dimensionIndex:t,dimensions:r}):(0,e.jsx)(z,{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?(0,e.jsx)(Te.Button,{buttonType:"secondary",onClick:u},"Exit control group"):null}),(0,e.jsx)(j,null,(0,e.jsx)(ee,{title:`Inactive Dimensions (${Object.keys(d).length})`},(0,e.jsx)(Q,{dimensionIndex:t,dimensions:d})))))};var ot=O(require("react"));var rt=require("@uniformdev/design-system");var De=require("@uniformdev/design-system"),nt=({dimensionIndex:{index:t},state:{data:r,scores:n},actions:o,settings:i,saveSettings:a})=>{var c;let d=(c=i.scoreOverrides)!=null?c:{},p=Object.keys(d).length,m=l=>(l==null||l.preventDefault(),a({...i,route:"/overrides/add"})),u=()=>{o.rawUpdate([{type:"setcontrol",data:!r.controlGroup}])},s={};return Object.entries(n).map(([l,v])=>{d[l]!==void 0&&(s[l]=v)}),(0,e.jsx)(ot.Fragment,null,(0,e.jsx)("article",{css:h.page},(0,e.jsx)("div",{css:h.headingGroup},(0,e.jsx)("h2",{css:h.title},"What if?"),(0,e.jsx)("div",{css:h.reset},(0,e.jsx)(De.Button,{buttonType:"ghost",onClick:()=>le({actions:o,settings:i,saveSettings:a,scores:n})},"delete all overrides")),(0,e.jsx)(rt.AddButton,{onClick:m})),(0,e.jsx)("p",null,"Override dimension scores to test personalization"),p>0?(0,e.jsx)(Q,{dimensionIndex:t,dimensions:s,onClick:l=>a({...i,route:`/overrides/${l}`})}):(0,e.jsx)(z,{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?(0,e.jsx)(De.Button,{buttonType:"secondary",onClick:u},"Exit control group"):null})))};var F=require("formik");var _=O(require("yup"));var V=require("@emotion/react"),it=V.css`
|
|
302
309
|
background: var(--white);
|
|
303
310
|
border: 1px solid var(--gray-500);
|
|
304
311
|
border-radius: var(--rounded-base);
|
|
@@ -309,26 +316,26 @@ to {
|
|
|
309
316
|
cursor: not-allowed;
|
|
310
317
|
color: var(--gray-200);
|
|
311
318
|
}
|
|
312
|
-
`,
|
|
319
|
+
`,Wo=V.css`
|
|
313
320
|
margin: var(--spacing-base) 0;
|
|
314
|
-
`,
|
|
321
|
+
`,st=V.css`
|
|
315
322
|
color: var(--brand-secondary-1);
|
|
316
323
|
display: flex;
|
|
317
324
|
flex-direction: column;
|
|
318
325
|
margin: 0 0 var(--spacing-sm);
|
|
319
|
-
`,
|
|
326
|
+
`,at=V.css`
|
|
320
327
|
color: var(--brand-secondary-1);
|
|
321
328
|
display: block;
|
|
322
329
|
flex: 1 100%;
|
|
323
330
|
font-weight: var(--fw-bold);
|
|
324
331
|
margin: 0 0 var(--spacing-sm);
|
|
325
|
-
`,
|
|
332
|
+
`,Yo=V.css`
|
|
326
333
|
color: var(--gray-600);
|
|
327
334
|
font-size: var(--fs-sm);
|
|
328
|
-
`,
|
|
335
|
+
`,Jo=V.css`
|
|
329
336
|
color: var(--brand-secondary-5);
|
|
330
337
|
display: block;
|
|
331
|
-
`,
|
|
338
|
+
`,ct=V.css`
|
|
332
339
|
flex-direction: row;
|
|
333
340
|
flex-wrap: wrap;
|
|
334
341
|
|
|
@@ -396,18 +403,18 @@ to {
|
|
|
396
403
|
flex: 1 0 20%;
|
|
397
404
|
padding: 10px;
|
|
398
405
|
}
|
|
399
|
-
`;var
|
|
406
|
+
`;var pe=require("@uniformdev/design-system"),lt=({field:t,form:r,meta:n,...o})=>{var u,s;let{label:i,caption:a,min:d=0,max:p=100,step:m}=o;return(0,e.jsx)("div",null,(0,e.jsx)("label",{css:[st,ct]},(0,e.jsx)("span",{css:at},i),(0,e.jsx)("input",{type:"range",min:d,max:p,step:m,...t,value:(u=t.value)!=null?u:0}),(0,e.jsx)("span",{className:"value-display"},(s=t.value)!=null?s:0)),a?(0,e.jsx)(pe.Caption,null,a):null,r.touched[t.name]&&r.errors[t.name]?(0,e.jsx)(pe.ErrorMessage,{message:r.errors[t.name]}):null)};var dt=require("@emotion/react"),P=({children:t,...r})=>(0,e.jsx)("fieldset",{css:dt.css`
|
|
400
407
|
border: none;
|
|
401
408
|
padding: 0;
|
|
402
409
|
& legend {
|
|
403
410
|
margin-bottom: var(--spacing-base);
|
|
404
411
|
}
|
|
405
|
-
`,...r},t);var
|
|
412
|
+
`,...r},t);var pt=require("@emotion/react"),U=({children:t})=>(0,e.jsx)("legend",{css:pt.css`
|
|
406
413
|
font-size: var(--fs-md);
|
|
407
414
|
font-weight: var(--fw-bold);
|
|
408
415
|
border-bottom: 1px solid var(--gray-400);
|
|
409
416
|
width: 100%;
|
|
410
|
-
`},t);var pe=require("@uniformdev/context");function at({manifest:t,visitor:r,override:n}){let o=new pe.Context({manifest:t,transitionStore:new Te({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 Te=class extends pe.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 me({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 dt=require("@uniformdev/design-system");var De=t=>({field:r,form:n,meta:o,...i})=>(0,e.jsx)(t,{...r,...i,errorMessage:n.errors[r.name]});var ue=require("@uniformdev/design-system"),ge=De(ue.Input),ct=De(ue.InputSelect);var Xt=Z.object({dimension:Z.string(),score:Z.number()}),Se=({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}: `:"",g=c.category?`${c.category} - `:"",v=`${d}${g}${c.name}`;return{value:s,label:v}});return p.unshift({value:"",label:"Choose dimension to override"}),(0,e.jsx)(Q.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:Xt,enableReinitialize:!0,validateOnChange:!1,validateOnBlur:!1,onSubmit:async s=>{var h,y,C,w,I,H;let c=(y=(h=i[s.dimension])==null?void 0:h.cap)!=null?y:0,d=Math.min(s.score,c),g={...t,scoreOverrides:{...t.scoreOverrides,[s.dimension]:{initial:(H=(I=(w=(C=t.scoreOverrides)==null?void 0:C[s.dimension])==null?void 0:w.initial)!=null?I:n.scores[s.dimension])!=null?H:0,override:d}},route:"/overrides"};await r(g);let v=_({scores:n.scores,scoreOverrides:g.scoreOverrides});o.rawUpdate(v)}},({isSubmitting:s,values:c,setFieldValue:d})=>{var C;let g=at({manifest:n.manifest,visitor:n.data,override:{type:"modscore",data:{dimension:c.dimension,delta:c.score-((C=n.scores[c.dimension])!=null?C:0)}}}),v=Object.entries(n.scores).reduce((w,[I,H])=>(w[I]={initial:H,override:H},w),{}),h={max:100,step:50};i[c.dimension]&&(h.max=i[c.dimension].cap,h.step=i[c.dimension].str);let y=c.score&&Object.keys(g).length>0;return(0,e.jsx)(Q.Form,{css:f.page},(0,e.jsx)("h1",{css:f.title},"Override Dimension"),(0,e.jsx)(Q.Field,{component:ct,label:"Dimension",id:"dimension",name:"dimension",options:p,disabled:s,onChange:w=>{d("score",0,!1),d("dimension",w.target.value)}}),(0,e.jsx)("p",{css:f.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)(Q.Field,{component:nt,name:"score",label:"Score",disabled:s,max:h.max,step:h.step,caption:`Range: 0 - ${h.max} in increments of ${h.step}`}):null,(0,e.jsx)(B,{disabled:s,css:{marginBottom:"2rem"}},y?(0,e.jsx)(X,null,(0,e.jsx)(j,{title:`Impacted Dimensions (${Object.keys(g).length})`},(0,e.jsx)(E,{preemptiveOverrides:v,dimensionIndex:i,dimensions:g,disableEditOverride:!0}))):null,(0,e.jsx)(dt.Button,{type:"submit",css:f.submitButton,disabled:s},"Save"),(0,e.jsx)(F,{route:"/overrides",css:f.cancelButton},"Cancel")))})};var pt=require("react");var ve=require("react"),fe=require("@uniformdev/design-system");var jt=({name:t,value:r,submit:n})=>{let[o,i]=(0,ve.useState)(r!=null?r:"");return(0,ve.useEffect)(()=>{i(r!=null?r:"")},[r]),(0,e.jsx)("div",{css:{display:"flex",gap:"var(--spacing-sm)"}},(0,e.jsx)(fe.Input,{type:"text",css:[et],name:t,value:o,onChange:p=>{i(p.target.value)}}),(0,e.jsx)(fe.Button,{buttonType:"primary",disabled:o===r,size:"sm",onClick:()=>n(t,o!=null?o:"")},"Save"))},lt=jt;var G=require("@uniformdev/design-system"),mt=({...t})=>{let{state:{data:{quirks:r}},quirksIndex:{index:n},settings:o,saveSettings:i,actions:a}=t,[l,p]=(0,pt.useState)(""),m;l&&(m=n[l]);let u=async(s,c)=>{var v,h,y;p("");let d={...o,quirkOverrides:{...o.quirkOverrides,[s]:{initial:(y=(h=(v=o.quirkOverrides)==null?void 0:v[s])==null?void 0:h.initial)!=null?y:r[s],override:c}}};await i(d);let g=me({quirks:r,quirkOverrides:d.quirkOverrides});await a.update({quirks:g})};return(0,e.jsx)(b.Fragment,null,(0,e.jsx)("article",{css:[f.page,f.quirks]},(0,e.jsx)("h1",{css:f.title},"Quirks"),(0,e.jsx)("p",{css:f.text},"Keys defined in Uniform and their current, programmatically defined values for this visit."),Object.keys(n).length?(0,e.jsx)(ne,null,(0,e.jsx)(Ne,null,(0,e.jsx)(z,null,(0,e.jsx)(se,{width:"30%"},"Key"),(0,e.jsx)(se,{width:"50%"},"Value"),(0,e.jsx)(se,{width:"20%"},""))),(0,e.jsx)(ie,null,Object.values(n).map(({name:s,value:c,id:d})=>{var h,y,C;let g=(y=(h=o.quirkOverrides)==null?void 0:h[s])==null?void 0:y.initial,v=[];return m&&m.options&&(v=m.options.map(w=>({value:w.value,label:w.name}))),(0,e.jsx)(z,{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)}},g?(0,e.jsx)("div",null,(0,e.jsx)("s",null,g)):null,c):null,l===d&&m&&(0,e.jsx)(b.Fragment,null,m.options?(0,e.jsx)(G.InputSelect,{showLabel:!1,label:`Change ${s}`,defaultOption:`Change ${s}`,name:d,onChange:w=>u(w.target.name,w.target.value),options:v}):(0,e.jsx)(lt,{name:d,value:c,submit:u}))),(0,e.jsx)(R,null,l?null:(C=o.quirkOverrides)!=null&&C[d]?(0,e.jsx)(G.Button,{buttonType:"ghost",onClick:()=>{Ke({quirk:d,settings:o,saveSettings:i,actions:a})}},(0,e.jsx)("small",null,"Clear Override")):(0,e.jsx)(G.Button,{buttonType:"ghost",onClick:()=>{p(d)}},(0,e.jsx)("small",null,"Override"))))}))):(0,e.jsx)(N,{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 ut=require("@uniformdev/design-system"),Le=require("@uniformdev/design-system"),gt=({settings:t,saveSettings:r,actions:n,state:{data:o}})=>(0,e.jsx)("article",{css:[f.page,{display:"flex",flexDirection:"column",gap:"var(--spacing-base)"}]},(0,e.jsx)("h1",{css:f.title},"Settings"),(0,e.jsx)(B,null,(0,e.jsx)(U,null,"Data Connection"),(0,e.jsx)(ut.Button,{buttonType:"tertiary",onClick:()=>{r({...t,route:"/connect"})}},"Manage Connection to Uniform")),(0,e.jsx)(B,null,(0,e.jsx)(U,null,"Storage Consent"),(0,e.jsx)(Le.Switch,{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)(B,null,(0,e.jsx)(U,null,"Logging"),(0,e.jsx)(Le.Switch,{label:"Write Uniform Context diagnostic logs to browser console",id:"logging",name:"logging",checked:t.logLevel==="debug",onChange:i=>r({...t,logLevel:i.currentTarget.checked?"debug":"none"})})));var Oe=require("@uniformdev/design-system");var xe=({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:[ee,qe]},(0,e.jsx)("h2",{css:te},"Connect to a Uniform Project"),(0,e.jsx)("p",{css:oe},"This allows reading human-readable labels for the dimensions."),(0,e.jsx)("div",{css:re},(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:Fe,title:"close",onClick:o},(0,e.jsx)("span",{hidden:!0},"Close"))):null};var q=require("@uniformdev/context/api"),vt=require("react-use"),ft=O(require("react"));function ht({apiHost:t,apiKey:r,projectId:n},o){let{loading:i,error:a,value:l}=(0,vt.useAsync)(async()=>{if(!r||!n)return p;let u=(await new q.DimensionClient({projectId:n,apiKey:r,apiHost:t||void 0}).get()).dimensions,s={};return u.map(c=>{var d,g,v,h,y,C,w,I;if(s[c.dim]={...(0,q.computeDimensionDefinitionDisplayData)(c),cap:c.cap,str:(h=(v=(g=(d=o==null?void 0:o.project.pz)==null?void 0:d.sig)==null?void 0:g[c.dim])==null?void 0:v.str)!=null?h:50},s[c.dim].type==="Enrichment"){let H=c.dim.split("_")[0];s[c.dim].cap=(I=(w=(C=(y=o==null?void 0:o.project.pz)==null?void 0:y.enr)==null?void 0:C[H])==null?void 0:w.cap)!=null?I:100}}),s},[t,r,n]),p=ft.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(([g,v])=>{let h=(0,q.computeDimensionDisplayData)(g,o);h&&(m[g]={...v,...h})}),Object.entries((d=(c=o==null?void 0:o.project.pz)==null?void 0:c.enr)!=null?d:{}).map(([g,v])=>{var C;let h=(0,q.computeDimensionDisplayData)(g,o),y={cap:(C=v.cap)!=null?C:100,str:10};h&&(m[g]={...h,cap:y.cap,str:y.str})}),l&&Object.entries(l).map(([g,v])=>{m[g]={...m[g],...v}})),m},[o,l]);return{loading:i,error:a,index:p}}var bt=require("react"),yt=require("@uniformdev/context/api"),Ct=require("react-use");function wt({apiHost:t,apiKey:r,projectId:n},o){let{loading:i,error:a,value:l}=(0,Ct.useAsync)(async()=>{if(!r||!n)return{};let u=await new yt.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,bt.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"),Ot=require("@uniformdev/design-system");function he(){return(0,e.jsx)("style",null,`
|
|
417
|
+
`},t);var me=require("@uniformdev/context");function mt({manifest:t,visitor:r,override:n}){let o=new me.Context({manifest:t,transitionStore:new Se({initialData:r})}),i={...o.scores};o.storage.updateData([n]);let d={...{...o.scores}};return Object.entries(d).forEach(([p,m])=>{i[p]===m&&delete d[p]}),d}var Se=class extends me.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 d=i.override-a;n.push({type:"modscoreS",data:{dimension:o,delta:d}})}),n):[]}function ue({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 gt=require("@uniformdev/design-system");var Le=t=>({field:r,form:n,meta:o,...i})=>(0,e.jsx)(t,{...r,...i,errorMessage:n.errors[r.name]});var ge=require("@uniformdev/design-system"),ve=Le(ge.Input),ut=Le(ge.InputSelect);var to=_.object({dimension:_.string(),score:_.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)]:[],d=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 l=c.type?`${c.type}: `:"",v=c.category?`${c.category} - `:"",g=`${l}${v}${c.name}`;return{value:s,label:g}});return p.unshift({value:"",label:"Choose dimension to override"}),(0,e.jsx)(F.Formik,{initialValues:{dimension:d,score:(u=n.scores[d])!=null?u:0},validate:s=>{let c={};return(s.score===n.scores[s.dimension]||s.score===0&&!n.scores[d])&&(c.score="You have to modify current score value"),c},validationSchema:to,enableReinitialize:!0,validateOnChange:!1,validateOnBlur:!1,onSubmit:async s=>{var f,y,C,w,M,E;let c=(y=(f=i[s.dimension])==null?void 0:f.cap)!=null?y:0,l=Math.min(s.score,c),v={...t,scoreOverrides:{...t.scoreOverrides,[s.dimension]:{initial:(E=(M=(w=(C=t.scoreOverrides)==null?void 0:C[s.dimension])==null?void 0:w.initial)!=null?M:n.scores[s.dimension])!=null?E:0,override:l}},route:"/overrides"};await r(v);let g=$({scores:n.scores,scoreOverrides:v.scoreOverrides});o.rawUpdate(g)}},({isSubmitting:s,values:c,setFieldValue:l})=>{var C;let v=mt({manifest:n.manifest,visitor:n.data,override:{type:"modscore",data:{dimension:c.dimension,delta:c.score-((C=n.scores[c.dimension])!=null?C:0)}}}),g=Object.entries(n.scores).reduce((w,[M,E])=>(w[M]={initial:E,override:E},w),{}),f={max:100,step:50};i[c.dimension]&&(f.max=i[c.dimension].cap,f.step=i[c.dimension].str);let y=c.score&&Object.keys(v).length>0;return(0,e.jsx)(F.Form,{css:h.page},(0,e.jsx)("h1",{css:h.title},"Override Dimension"),(0,e.jsx)(F.Field,{component:ut,label:"Dimension",id:"dimension",name:"dimension",options:p,disabled:s,onChange:w=>{l("score",0,!1),l("dimension",w.target.value)}}),(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)(F.Field,{component:lt,name:"score",label:"Score",disabled:s,max:f.max,step:f.step,caption:`Range: 0 - ${f.max} in increments of ${f.step}`}):null,(0,e.jsx)(P,{disabled:s,css:{marginBottom:"2rem"}},y?(0,e.jsx)(j,null,(0,e.jsx)(ee,{title:`Impacted Dimensions (${Object.keys(v).length})`},(0,e.jsx)(Q,{preemptiveOverrides:g,dimensionIndex:i,dimensions:v,disableEditOverride:!0}))):null,(0,e.jsx)(gt.Button,{type:"submit",css:h.submitButton,disabled:s},"Save"),(0,e.jsx)(Z,{route:"/overrides",css:h.cancelButton},"Cancel")))})};var ft=require("react");var fe=require("react"),he=require("@uniformdev/design-system");var oo=({name:t,value:r,submit:n})=>{let[o,i]=(0,fe.useState)(r!=null?r:"");return(0,fe.useEffect)(()=>{i(r!=null?r:"")},[r]),(0,e.jsx)("div",{css:{display:"flex",gap:"var(--spacing-sm)"}},(0,e.jsx)(he.Input,{type:"text",css:[it],name:t,value:o,onChange:p=>{i(p.target.value)}}),(0,e.jsx)(he.Button,{buttonType:"primary",disabled:o===r,size:"sm",onClick:()=>n(t,o!=null?o:"")},"Save"))},vt=oo;var K=require("@uniformdev/design-system"),ht=({...t})=>{let{state:{data:{quirks:r}},quirksIndex:{index:n},settings:o,saveSettings:i,actions:a}=t,[d,p]=(0,ft.useState)(""),m;d&&(m=n[d]);let u=async(s,c)=>{var g,f,y;p("");let l={...o,quirkOverrides:{...o.quirkOverrides,[s]:{initial:(y=(f=(g=o.quirkOverrides)==null?void 0:g[s])==null?void 0:f.initial)!=null?y:r[s],override:c}}};await i(l);let v=ue({quirks:r,quirkOverrides:l.quirkOverrides});await a.update({quirks:v})};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)(Ge,null,(0,e.jsx)(G,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:l})=>{var f,y,C;let v=(y=(f=o.quirkOverrides)==null?void 0:f[s])==null?void 0:y.initial,g=[];return m&&m.options&&(g=m.options.map(w=>({value:w.value,label:w.name}))),(0,e.jsx)(G,{key:l,border:"bottom"},(0,e.jsx)(R,null,(0,e.jsx)("strong",null,s)),(0,e.jsx)(R,null,d!==l?(0,e.jsx)("div",{onClick:()=>{p(l)}},v?(0,e.jsx)("div",null,(0,e.jsx)("s",null,v)):null,c):null,d===l&&m&&(0,e.jsx)(b.Fragment,null,m.options?(0,e.jsx)(K.InputSelect,{showLabel:!1,label:`Change ${s}`,defaultOption:`Change ${s}`,name:l,onChange:w=>u(w.target.name,w.target.value),options:g}):(0,e.jsx)(vt,{name:l,value:c,submit:u}))),(0,e.jsx)(R,null,d?null:(C=o.quirkOverrides)!=null&&C[l]?(0,e.jsx)(K.Button,{buttonType:"ghost",onClick:()=>{je({quirk:l,settings:o,saveSettings:i,actions:a})}},(0,e.jsx)("small",null,"Clear Override")):(0,e.jsx)(K.Button,{buttonType:"ghost",onClick:()=>{p(l)}},(0,e.jsx)("small",null,"Override"))))}))):(0,e.jsx)(z,{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 xe=require("@uniformdev/design-system"),Re=require("@uniformdev/design-system"),bt=({settings:t,saveSettings:r,actions:n,state:{data:o},clearAllExtensionData:i})=>(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)(P,null,(0,e.jsx)(U,null,"Data Connection"),(0,e.jsx)(xe.Button,{buttonType:"tertiary",onClick:()=>{r({...t,route:"/connect"})}},"Manage Connection to Uniform")),(0,e.jsx)(P,null,(0,e.jsx)(U,null,"Storage Consent"),(0,e.jsx)(Re.Switch,{label:"Store visitor data",id:"consent-mode",name:"consentMode",checked:o.consent,onChange:a=>{n.rawUpdate([{type:"consent",data:a.currentTarget.checked}]),r({...t,consentMode:a.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)(P,null,(0,e.jsx)(U,null,"Logging"),(0,e.jsx)(Re.Switch,{label:"Write Uniform Context diagnostic logs to browser console",id:"logging",name:"logging",checked:t.logLevel==="debug",onChange:a=>r({...t,logLevel:a.currentTarget.checked?"debug":"none"})})),(0,e.jsx)(P,null,(0,e.jsx)(U,null,"Clear extension storage"),(0,e.jsx)(xe.Button,{onClick:()=>{i()}},"Clear"),(0,e.jsx)("p",null,(0,e.jsx)("small",null,"May be necessary when you have multiple different sites on the same domain name (e.g. http://localhost:3000) and there are some conflicts or other unexpected behaviour."))));var Ve=require("@uniformdev/design-system");var Pe=({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,Ue]},(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)(Ve.Button,{buttonType:"secondary",onClick:n},"Connect this site"),(0,e.jsx)(Ve.Button,{buttonType:"ghost",onClick:o},"Skip for now")),(0,e.jsx)("button",{type:"button",css:_e,title:"close",onClick:o},(0,e.jsx)("span",{hidden:!0},"Close"))):null};var q=require("@uniformdev/context/api"),yt=require("react-use"),Ct=O(require("react"));function wt({apiHost:t,apiKey:r,projectId:n},o){let{loading:i,error:a,value:d}=(0,yt.useAsync)(async()=>{if(!r||!n)return p;let u=(await new q.UncachedDimensionClient({projectId:n,apiKey:r,apiHost:t||void 0}).get()).dimensions,s={};return u.map(c=>{var l,v,g,f,y,C,w,M;if(s[c.dim]={...(0,q.computeDimensionDefinitionDisplayData)(c),cap:c.cap,str:(f=(g=(v=(l=o==null?void 0:o.project.pz)==null?void 0:l.sig)==null?void 0:v[c.dim])==null?void 0:g.str)!=null?f:50},s[c.dim].type==="Enrichment"){let E=c.dim.split("_")[0];s[c.dim].cap=(M=(w=(C=(y=o==null?void 0:o.project.pz)==null?void 0:y.enr)==null?void 0:C[E])==null?void 0:w.cap)!=null?M:100}}),s},[t,r,n]),p=Ct.useMemo(()=>{var u,s,c,l;let m={};return o&&(Object.entries((s=(u=o==null?void 0:o.project.pz)==null?void 0:u.sig)!=null?s:{}).map(([v,g])=>{let f=(0,q.computeDimensionDisplayData)(v,o);f&&(m[v]={...g,...f})}),Object.entries((l=(c=o==null?void 0:o.project.pz)==null?void 0:c.enr)!=null?l:{}).map(([v,g])=>{var C;let f=(0,q.computeDimensionDisplayData)(v,o),y={cap:(C=g.cap)!=null?C:100,str:10};f&&(m[v]={...f,cap:y.cap,str:y.str})}),d&&Object.entries(d).map(([v,g])=>{m[v]={...m[v],...g}})),m},[o,d]);return{loading:i,error:a,index:p}}var kt=require("react"),Tt=require("@uniformdev/context/api"),Dt=require("react-use");function St({apiHost:t,apiKey:r,projectId:n},o){let{loading:i,error:a,value:d}=(0,Dt.useAsync)(async()=>{if(!r||!n)return{};let u=await new Tt.UncachedQuirkClient({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,kt.useMemo)(()=>{let m={};return Object.entries(o).map(([u,s])=>m[u]={value:s,id:u,name:u}),d&&Object.entries(d).map(([u,s])=>m[u]={...s,value:o[u]}),m},[o,d]);return{loading:i,error:a,index:p}}var Ie=require("@emotion/react"),Pt=require("@uniformdev/design-system");function be(){return(0,e.jsx)("style",null,`
|
|
411
418
|
:root {
|
|
412
419
|
--site-width: 700px;
|
|
413
420
|
|
|
@@ -417,7 +424,7 @@ to {
|
|
|
417
424
|
|
|
418
425
|
--min-height: 450px;
|
|
419
426
|
}
|
|
420
|
-
`)}var
|
|
427
|
+
`)}var ye=require("react"),Lt=require("react-use");var Ot=()=>{let[t,r]=(0,ye.useState)(!1),n=(0,Lt.useMountedState)();return(0,ye.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 xt=require("@uniformdev/context"),Ce=require("@uniformdev/context/api"),I=require("formik"),T=O(require("react")),D=require("@uniformdev/design-system");function Rt(t){let[r,n]=T.useState(t.currentData?"c":"qc"),[o,i]=T.useState(void 0),[a,d]=T.useState(void 0),p=T.useCallback(async s=>{let c=new Ce.UncachedManifestClient(s);i(void 0);try{let l=await c.get({preview:!0});return d({manifest:l,target:s}),l}catch(l){if(l instanceof Ce.ApiClientError){l.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(l.errorMessage);return}if("message"in l){l.message==="Failed to fetch"?i("A network error occurred. Ensure the API host is valid."):i(l.message);return}i(JSON.stringify(l,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"),d(void 0),i(void 0),t.onConnect(null))};return(0,e.jsx)("div",null,o?(0,e.jsx)(T.Fragment,null,(0,e.jsx)(D.ErrorMessage,{message:o}),(0,e.jsx)(D.Button,{buttonType:"secondary",type:"button",onClick:u},"Clear old/broken settings")):null,r==="qc"||r==="mc"?(0,e.jsx)(ro,{...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)(D.Button,{buttonType:"secondary",type:"button",onClick:u},"Disconnect")):null))}function ro({setState:t,state:r,currentData:n,onConnect:o}){var i,a,d;return(0,e.jsx)("div",null,(0,e.jsx)(I.Formik,{initialValues:{apiHost:(i=n==null?void 0:n.apiHost)!=null?i:"https://uniform.app",apiKey:(a=n==null?void 0:n.apiKey)!=null?a:"",projectId:(d=n==null?void 0:n.projectId)!=null?d:"",qc:""},onSubmit:o},({setFieldValue:p,setFieldError:m,errors:{qc:u},isSubmitting:s})=>(0,e.jsx)(I.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)(D.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 l=(0,xt.parseQuickConnect)(c.currentTarget.value);p("apiHost",l.apiHost),p("apiKey",l.apiKey),p("projectId",l.projectId)}catch(l){m("qc",l.message)}}})),(0,e.jsx)("section",{css:{display:"flex",gap:"var(--spacing-sm)"}},(0,e.jsx)(D.Button,{type:"submit",buttonType:"primary",disabled:s},s?"Verifying...":"Connect"),(0,e.jsx)(D.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)(I.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)(I.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)(I.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)(D.Button,{type:"submit",buttonType:"primary",disabled:s},s?"Verifying...":"Connect"),(0,e.jsx)(D.Button,{type:"button",buttonType:"ghost",onClick:()=>t("qc"),disabled:s},"Use Quick Connect")))))))}var Vt=({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)(Rt,{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 no=Ie.css`
|
|
421
428
|
background: var(--white);
|
|
422
429
|
padding: var(--spacing-base);
|
|
423
430
|
overflow-y: auto;
|
|
@@ -446,7 +453,7 @@ to {
|
|
|
446
453
|
&::-webkit-scrollbar-thumb:hover {
|
|
447
454
|
background: var(--gray-500);
|
|
448
455
|
}
|
|
449
|
-
`;function
|
|
456
|
+
`;function He(t){let r=wt(t.settings,t.state.manifest),n=St(t.settings,t.state.data.quirks),o={...t,dimensionIndex:r,quirksIndex:n},i=()=>{var a;if(r.loading||n.loading)return(0,e.jsx)(Ot,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)(tt,{...o});case"/overrides":return(0,e.jsx)(nt,{...o});case"/overrides/add":return(0,e.jsx)(Oe,{...o});case"/quirks":return(0,e.jsx)(ht,{...o});case"/settings":return(0,e.jsx)(bt,{...o});case"/connect":return(0,e.jsx)(Vt,{...o});default:return(0,e.jsx)(Ze,null)}};return(0,e.jsx)(Qe,{settings:t.settings,saveSettings:t.saveSettings},(0,e.jsx)(Pt.Theme,null),(0,e.jsx)(be,null),(0,e.jsx)("div",{css:Ie.css`
|
|
450
457
|
display: grid;
|
|
451
458
|
grid-template-columns: 200px auto;
|
|
452
459
|
font-weight: var(--fs-base);
|
|
@@ -455,7 +462,7 @@ to {
|
|
|
455
462
|
line-height: var(--base-line-height);
|
|
456
463
|
height: var(--min-height);
|
|
457
464
|
min-width: var(--site-width);
|
|
458
|
-
`},(0,e.jsx)(
|
|
465
|
+
`},(0,e.jsx)(Ne,{...t}),(0,e.jsx)("main",{css:no},(0,e.jsx)(Pe,{...t}),i())))}var we=require("@uniformdev/context"),x=O(require("react"));var Me="embeddedUniformDevToolsSettings";function Ee({context:t,initialSettings:r}){let n=t!=null?t:typeof window!="undefined"?window.__UNIFORM_DEVTOOLS_CONTEXT_INSTANCE__:void 0,o=n!=null?n:new we.Context({manifest:{project:{}}}),[i,a]=x.useState({data:o.storage.data,manifest:o.manifest.data,scores:o.scores,personalizations:[],tests:[]}),[d,p]=x.useState(r!=null?r:{});x.useEffect(()=>{var l;let c=(0,we.createDebugConsoleLogDrain)((l=d.logLevel)!=null?l:"none");return o.events.on("log",c),()=>{o.events.off("log",c)}},[d,o]),x.useEffect(()=>{let c=()=>{let g=window.localStorage.getItem(Me)||"{}",f=JSON.parse(g),y=ue({quirks:o.storage.data.quirks,quirkOverrides:f.quirkOverrides});y&&(console.log("Applying overridden quirks:",y),o.update({quirks:y}));let C=$({scores:o.scores,scoreOverrides:f.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}))},l=g=>{!g.changed||a(f=>({...f,personalizations:[...f.personalizations,g]}))},v=g=>{!g.variantAssigned||a(f=>({...f,tests:[...f.tests,g]}))};return o.events.on("personalizationResult",l),o.events.on("testResult",v),o.storage.events.on("*",c),()=>{o.storage.events.off("*",c),o.events.off("personalizationResult",l),o.events.off("testResult",v)}},[o]),x.useEffect(()=>{if(window.localStorage){let c=window.localStorage.getItem(Me);if(c)try{let l=JSON.parse(c),v={...r,...l};p(v);let g=$({scores:i.scores,scoreOverrides:v.scoreOverrides});m.rawUpdate(g)}catch(l){window.localStorage.removeItem(Me),console.error("Failed to parse settings from localStorage: ",l.message)}}},[]);let{actions:m,saveSettings:u,clearAllExtensionData:s}=x.useMemo(()=>({actions:{update:g=>o.update(g),forget:()=>o.forget(!1),rawUpdate:g=>o.storage.updateData(g)},saveSettings:async g=>{p(g),window.localStorage&&window.localStorage.setItem("embeddedUniformDevToolsSettings",JSON.stringify(g))},clearAllExtensionData:async()=>{p({route:"/"}),window.localStorage&&(window.localStorage.removeItem("embeddedUniformDevToolsSettings"),window.location.reload())}}),[o]);return n?(0,e.jsx)(He,{state:i,actions:m,settings:d,saveSettings:u,clearAllExtensionData:s}):(0,e.jsx)("p",null,"Unable to find Uniform Context. Ensure the devtools plugin is activated.")}var ke=require("@emotion/react"),N=O(require("react"));var H=require("@uniformdev/design-system"),Mt=require("react-use");var It=require("@emotion/react"),io=It.css`
|
|
459
466
|
align-items: center;
|
|
460
467
|
border-radius: var(--rounded-full);
|
|
461
468
|
background: var(--brand-secondary-5);
|
|
@@ -481,11 +488,15 @@ to {
|
|
|
481
488
|
max-width: 100%;
|
|
482
489
|
height: auto;
|
|
483
490
|
}
|
|
484
|
-
`,
|
|
491
|
+
`,Ht=({...t})=>(0,e.jsx)("button",{type:"button",css:io,...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"})));var so="dblgnkbknchechcibdojfdoeeodhmgbd",ao="dcmlokofjljnfjcknpmhjocogllfbhkg";function co(t){let[r,n]=N.useState(!1),[o,i]=N.useState(t.context),[a,d]=N.useState(!1),[p,m]=(0,Mt.useLocalStorage)("isUniformInlineDevtoolsDisabled",!1);return N.useEffect(()=>{!t.context&&typeof document!="undefined"&&i(window.__UNIFORM_DEVTOOLS_CONTEXT_INSTANCE__)},[t.context]),N.useEffect(()=>{[ao,so].map(u=>{let s=new Image;s.src=`chrome-extension://${u}/icons/uniform-logo.png`,s.onload=()=>d(!0)})},[]),p?null:o?(0,e.jsx)("div",null,(0,e.jsx)(H.Theme,null),(0,e.jsx)(be,null),(0,e.jsx)(Ht,{onClick:()=>n(u=>!u)}),r?(0,e.jsx)("div",{css:ke.css`
|
|
485
492
|
box-shadow: var(--shadow-base);
|
|
486
493
|
position: fixed;
|
|
487
494
|
bottom: 82px;
|
|
488
495
|
right: var(--spacing-base);
|
|
489
496
|
z-index: var(--z-10);
|
|
490
497
|
max-width: var(--site-width);
|
|
491
|
-
`},(0,e.jsx)(
|
|
498
|
+
`},a?(0,e.jsx)("div",{css:ke.css`
|
|
499
|
+
padding: var(--spacing-md);
|
|
500
|
+
`},(0,e.jsx)(H.Callout,{type:"danger",title:"This functionality is disabled."},(0,e.jsx)(H.Paragraph,null,"We detected you already use the Uniform Context browser extension. Using both tools is not supported. Please use the functionality of the browser extension instead."),(0,e.jsx)(H.Button,{css:ke.css`
|
|
501
|
+
margin-top: var(--spacing-md);
|
|
502
|
+
`,buttonType:"secondary",onClick:()=>m(!0)},"Disabled inline tools"))):(0,e.jsx)(Ee,{...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": "
|
|
3
|
+
"version": "17.1.1-alpha.151+3c57dd245",
|
|
4
4
|
"description": "Uniform Context developer tools components",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -20,18 +20,18 @@
|
|
|
20
20
|
"react-dom": ">=17"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
|
-
"@types/chrome": "0.0.
|
|
24
|
-
"@types/react": "18.0.
|
|
25
|
-
"autoprefixer": "10.4.
|
|
26
|
-
"postcss": "8.4.
|
|
23
|
+
"@types/chrome": "0.0.196",
|
|
24
|
+
"@types/react": "18.0.18",
|
|
25
|
+
"autoprefixer": "10.4.8",
|
|
26
|
+
"postcss": "8.4.16",
|
|
27
27
|
"react": "18.2.0",
|
|
28
28
|
"react-dom": "18.2.0",
|
|
29
|
-
"tsup": "6.1.
|
|
29
|
+
"tsup": "6.1.3"
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@emotion/react": "
|
|
33
|
-
"@uniformdev/context": "^
|
|
34
|
-
"@uniformdev/design-system": "^
|
|
32
|
+
"@emotion/react": "11.10.4",
|
|
33
|
+
"@uniformdev/context": "^17.1.1-alpha.151+3c57dd245",
|
|
34
|
+
"@uniformdev/design-system": "^17.1.1-alpha.151+3c57dd245",
|
|
35
35
|
"formik": "^2.2.9",
|
|
36
36
|
"react-use": "^17.4.0",
|
|
37
37
|
"reakit": "^1.3.11",
|
|
@@ -43,5 +43,5 @@
|
|
|
43
43
|
"publishConfig": {
|
|
44
44
|
"access": "public"
|
|
45
45
|
},
|
|
46
|
-
"gitHead": "
|
|
46
|
+
"gitHead": "3c57dd245b59aa55368da8991d1e39bc633bbed8"
|
|
47
47
|
}
|