dev-process-kit 0.2.0 → 0.3.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/README.md +178 -60
  2. package/dist/boards.js +1 -0
  3. package/dist/chunks/shared-B0QTGEwR.js +1844 -0
  4. package/dist/chunks/shared-BQqlFaPv.js +4928 -0
  5. package/dist/chunks/shared-BR7trWLo.js +3586 -0
  6. package/dist/chunks/shared-BpfuvyBP.js +1636 -0
  7. package/dist/chunks/shared-C1rWkW_W.js +705 -0
  8. package/dist/chunks/shared-C6hVLci2.js +574 -0
  9. package/dist/chunks/shared-CtoQ05tb.js +1 -0
  10. package/dist/chunks/{shared-DJruxrrR.js → shared-DW3QUBTw.js} +25 -56
  11. package/dist/chunks/shared-DXoggfKr.js +31 -0
  12. package/dist/chunks/shared-DbgUhOLb.js +686 -0
  13. package/dist/chunks/shared-Dj_D4ypT.js +2165 -0
  14. package/dist/chunks/shared-DuB4veji.js +904 -0
  15. package/dist/chunks/shared-TrlnHjrJ.js +1 -0
  16. package/dist/chunks/shared-bW1cft1H.js +2530 -0
  17. package/dist/chunks/shared-jVZVFFNq.js +602 -0
  18. package/dist/chunks/shared-xpAS9Ri4.js +6208 -0
  19. package/dist/chunks/shared-ztEUikTm.js +1 -0
  20. package/dist/components.js +1 -1
  21. package/dist/index.js +1 -1
  22. package/dist/views/delegation-poker.js +1 -0
  23. package/dist/views/plain.js +1 -0
  24. package/dist/views/prototype.js +1 -0
  25. package/dist/views/slides.js +1 -0
  26. package/dist/views/task-board.js +1 -0
  27. package/dist/views/usm.js +1 -0
  28. package/package.json +8 -10
  29. package/dist/chunks/shared-Ae8HmujL.js +0 -49
  30. package/dist/chunks/shared-B5lBiq5s.js +0 -1
  31. package/dist/chunks/shared-BCmqTEeQ.js +0 -1051
  32. package/dist/chunks/shared-BkM7jfZs.js +0 -1104
  33. package/dist/chunks/shared-Bo8OdTee.js +0 -4206
  34. package/dist/chunks/shared-C-7mxPbV.js +0 -301
  35. package/dist/chunks/shared-C-Os1zsf.js +0 -572
  36. package/dist/chunks/shared-C02b6b2m.js +0 -1
  37. package/dist/chunks/shared-DLdJfSN-.js +0 -1
  38. package/dist/chunks/shared-DYKbMmHn.js +0 -610
  39. package/dist/chunks/shared-DbBoZvUP.js +0 -1609
  40. package/dist/chunks/shared-DbnPOaXf.js +0 -4210
  41. package/dist/chunks/shared-DnJBtKmH.js +0 -3769
  42. package/dist/chunks/shared-v63w_5VP.js +0 -2774
  43. package/dist/templates/delegation-poker.js +0 -1
  44. package/dist/templates/event-storming.js +0 -1
  45. package/dist/templates/example-mapping.js +0 -1
  46. package/dist/templates/plain.js +0 -1
  47. package/dist/templates/prototype.js +0 -1
  48. package/dist/templates/slides.js +0 -1
  49. package/dist/templates/task-board.js +0 -1
  50. package/dist/templates/usm.js +0 -1
  51. package/dist/templates/whiteboard.js +0 -1
@@ -0,0 +1,686 @@
1
+ import{bs as z,bt as C,ai as d,bu as L,a5 as B,as as n,a$ as p,bv as E,bw as M,H as v,bx as O,y as j,ah as R}from"./shared-BQqlFaPv.js";import{L as D}from"./shared-CjW1DhGL.js";const N=[["circle",{cx:"12",cy:"12",r:"10"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"}],["path",{d:"M2 12h20"}]],H=[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8"}],["path",{d:"M21 3v5h-5"}]],K=z(class extends C{constructor(){super(...arguments),this.key=d}render(e,r){return this.key=e,r}update(e,[r,t]){return r!==this.key&&(L(e),this.key=r),t}}),P=B({en:{comment:"Comment",commentOn:e=>`Comment on ${e}`,submit:"Send",cancel:"Cancel"},ja:{comment:"\u30B3\u30E1\u30F3\u30C8",commentOn:e=>`${e}\u3078\u306E\u30B3\u30E1\u30F3\u30C8`,submit:"\u9001\u4FE1",cancel:"\u30AD\u30E3\u30F3\u30BB\u30EB"}}),S=(e,r,t={})=>({body:e,notes:r,submission:e.trim()||null,label:t.label??null,error:t.error??null,key:t.key??null,choice:t.choice??null,submitLabel:t.submitLabel??null}),F=(e,r,t)=>{const a=()=>{r.submission!==null&&t({kind:"comment",body:r.submission})};return n`<div
2
+ class="comment-pop"
3
+ popover="manual"
4
+ role="dialog"
5
+ aria-label=${r.label?e.commentOn(r.label):e.comment}
6
+ @click=${o=>o.stopPropagation()}
7
+ @keydown=${o=>{o.isComposing||o.key!=="Escape"||(o.preventDefault(),o.stopPropagation(),t({kind:"dismiss"}))}}
8
+ >
9
+ ${r.label?n`<strong class="comment-target">${r.label}</strong>`:d}
10
+ ${r.error?n`<p class="comment-error" role="alert">${r.error}</p>`:d}
11
+ ${r.choice?G(r.choice,t):d}
12
+ ${r.notes.length?n`<ul class="comment-list">
13
+ ${r.notes.map(o=>n`<li>${o}</li>`)}
14
+ </ul>`:d}
15
+ <textarea
16
+ class="dpk-textarea"
17
+ aria-label=${e.comment}
18
+ data-dpk-text-key=${r.key??d}
19
+ .value=${r.body}
20
+ @input=${o=>{o.currentTarget instanceof HTMLTextAreaElement&&t({kind:"input",body:o.currentTarget.value})}}
21
+ @keydown=${o=>{o.isComposing||o.key==="Enter"&&(o.ctrlKey||o.metaKey)&&(o.preventDefault(),a())}}
22
+ ></textarea>
23
+ <div class="pop-actions">
24
+ <button class="dpk-btn dpk-btn--accent" type="button" ?disabled=${r.submission===null} @click=${a}>
25
+ ${r.submitLabel??e.submit}
26
+ </button>
27
+ <button
28
+ class="dpk-btn dpk-btn--ghost"
29
+ type="button"
30
+ data-dpk-text-discard
31
+ @click=${()=>t({kind:"dismiss"})}
32
+ >
33
+ ${e.cancel}
34
+ </button>
35
+ </div>
36
+ </div>`},G=(e,r)=>{const t=e.options.find(a=>a.value===e.value)?.hint;return n`<fieldset class="comment-kinds">
37
+ <legend>${e.label}</legend>
38
+ ${e.options.map(a=>n`<label class="comment-kind">
39
+ <input
40
+ type="radio"
41
+ name="comment-kind"
42
+ .value=${a.value}
43
+ .checked=${a.value===e.value}
44
+ @change=${()=>r({kind:"choose",value:a.value})}
45
+ />
46
+ <span>${a.label}</span>
47
+ </label>`)}
48
+ </fieldset>
49
+ ${t===void 0?d:n`<p class="comment-kind-hint">${t}</p>`}`},$=(e,r)=>{const t=e.trim();if(t==="")return null;try{return t.startsWith("/")?new URL(t,r):new URL(/^[a-z][a-z0-9+.-]*:\/\//i.test(t)?t:`https://${t}`)}catch{return null}},U=e=>`${e.origin}${e.pathname.replace(/\/+$/,"")}`,W=(e,r)=>{const t=e.trim();return t.startsWith("/")?$(t,r)?.href??t:/^[a-z][a-z0-9+.-]*:\/\//i.test(t)?t:`https://${t}`},X=e=>{try{return new URL(e).host||e}catch{return e}},_=p(E),J=p(M),V=p(H),q=p(D),h=p(N),Q=(e,r,t)=>{const a=r.length-1;if(e==="ArrowRight")return r[t===a?0:t+1];if(e==="ArrowLeft")return r[t===0?a:t-1];if(e==="Home")return r[0];if(e==="End")return r[a]},Y=e=>{const{view:r,send:t,labels:a}=e,o=s=>i=>{const l=r.tabs[s],k=i.key==="Enter"||i.key===" "?l:Q(i.key,r.tabs,s);k!==void 0&&(i.preventDefault(),t({kind:"activate",id:k.id,focus:!0}))};return n`<div class="browser-tabs">
50
+ <div class="browser-tab-list" role="tablist" aria-label=${a.tabs}>
51
+ ${r.tabs.map((s,i)=>n`<div
52
+ class="browser-tab"
53
+ role="tab"
54
+ tabindex=${s.active?"0":"-1"}
55
+ aria-selected=${s.active?"true":"false"}
56
+ title=${s.title}
57
+ @click=${()=>t({kind:"activate",id:s.id})}
58
+ @keydown=${o(i)}
59
+ >
60
+ <span class="browser-favicon">${h()}</span>
61
+ <span class="browser-tab-title">${s.title}</span>
62
+ ${y(e,s.id)}
63
+ </div>`)}
64
+ </div>
65
+ <button
66
+ class="browser-new-tab"
67
+ type="button"
68
+ aria-label=${a.newTab}
69
+ title=${a.newTab}
70
+ @click=${()=>t({kind:"new-tab"})}
71
+ >
72
+ ${v()}
73
+ </button>
74
+ ${e.extra??d}
75
+ </div>`},y=(e,r)=>n`<button
76
+ class="browser-tab-close"
77
+ type="button"
78
+ aria-label=${e.labels.closeTab}
79
+ title=${e.labels.closeTab}
80
+ @click=${t=>{t.stopPropagation(),e.send({kind:"close-tab",id:r})}}
81
+ >
82
+ ${j()}
83
+ </button>`,Z={back:_,forward:J,reload:V},c=(e,r)=>{const{view:t,send:a,labels:o}=e,s=o[r],i={back:!t.canBack,forward:!t.canForward,reload:t.entry?.kind!=="page"}[r];return n`<button
84
+ class=${`browser-nav browser-${r}`}
85
+ type="button"
86
+ aria-label=${s}
87
+ title=${s}
88
+ ?disabled=${i}
89
+ @click=${()=>a({kind:r})}
90
+ >
91
+ ${Z[r]()}
92
+ </button>`},ee=e=>{const{view:r,send:t,labels:a,phone:o}=e,s=r.profile??a.guest;return n`<div class="browser-toolbar">
93
+ ${o?d:n`${c(e,"back")} ${c(e,"forward")} ${c(e,"reload")}`}
94
+ <div class="browser-address-form">
95
+ <span class="browser-lock">${r.entry?.kind==="page"?q():h()}</span>
96
+ <input
97
+ class="browser-address"
98
+ type="text"
99
+ enterkeyhint="go"
100
+ aria-label=${a.address}
101
+ spellcheck="false"
102
+ autocomplete="off"
103
+ .value=${O(r.url)}
104
+ @focus=${i=>{i.currentTarget instanceof HTMLInputElement&&i.currentTarget.select()}}
105
+ @keydown=${i=>{const l=i.currentTarget;if(!(!(l instanceof HTMLInputElement)||i.isComposing)){if(i.key==="Enter"){if(i.preventDefault(),l.value.trim()==="")return;l.blur(),t({kind:"address",input:l.value});return}i.key==="Escape"&&(i.preventDefault(),l.value=r.url,l.blur())}}}
106
+ />
107
+ </div>
108
+ <span class="browser-profile" title=${a.profile(s)}>
109
+ <span class="browser-avatar" aria-hidden="true">${Array.from(s)[0]??""}</span>
110
+ ${o?d:n`<span class="browser-profile-name">${s}</span>`}
111
+ </span>
112
+ </div>`},re=e=>n`${e.phone?d:Y(e)} ${ee(e)}
113
+ <div class="browser-progress" aria-hidden="true"></div>`,te=e=>{if(!e.phone)return d;const{view:r,send:t,labels:a}=e;return n`<div class="browser-bottom">
114
+ ${c(e,"back")} ${c(e,"forward")}
115
+ <button
116
+ class="browser-nav browser-new-tab"
117
+ type="button"
118
+ aria-label=${a.newTab}
119
+ title=${a.newTab}
120
+ @click=${()=>t({kind:"new-tab"})}
121
+ >
122
+ ${v()}
123
+ </button>
124
+ <button
125
+ class="browser-nav browser-tab-count"
126
+ type="button"
127
+ aria-label=${a.tabs}
128
+ title=${a.tabs}
129
+ aria-expanded=${e.switcher?"true":"false"}
130
+ @click=${()=>t({kind:"switcher",open:!e.switcher})}
131
+ >
132
+ <span class="browser-tab-count-box">${r.tabs.length}</span>
133
+ </button>
134
+ ${c(e,"reload")}
135
+ </div>`},ae=e=>{const{view:r,send:t,labels:a}=e;return n`<div class="browser-switcher" role="dialog" aria-label=${a.tabs}>
136
+ ${r.tabs.map(o=>n`<div class="browser-card" aria-current=${o.active?"true":d}>
137
+ <button class="browser-card-open" type="button" @click=${()=>t({kind:"activate",id:o.id})}>
138
+ <span class="browser-favicon">${h()}</span>
139
+ <span class="browser-card-title">${o.title}</span>
140
+ <span class="browser-card-url">${o.url}</span>
141
+ </button>
142
+ ${y(e,o.id)}
143
+ </div>`)}
144
+ </div>`},oe=e=>n`<div class="browser-newtab">
145
+ <p class="browser-newtab-label">${e.labels.shortcuts}</p>
146
+ <div class="browser-shortcuts">
147
+ ${e.shortcuts.map(r=>n`<a
148
+ class="browser-shortcut"
149
+ href=${r.href}
150
+ @click=${t=>{t.preventDefault(),e.send({kind:"visit",page:r.page})}}
151
+ >
152
+ <span class="browser-shortcut-icon" aria-hidden="true">${Array.from(r.title)[0]??""}</span>
153
+ <span class="browser-shortcut-title">${r.title}</span>
154
+ <span class="browser-shortcut-url">${r.url}</span>
155
+ </a>`)}
156
+ </div>
157
+ </div>`,se=(e,r)=>n`<div class="browser-unreachable" role="alert">
158
+ <h3>${e.unreachableTitle}</h3>
159
+ <p>${e.unreachableBody}</p>
160
+ <code>${r}</code>
161
+ </div>`,ne=(e,r)=>{const t=e.view.entry;return n`${e.phone&&e.switcher?ae(e):d}
162
+ ${t?.kind==="unreachable"?se(e.labels,t.url):r===void 0?oe(e):r}`},b=e=>JSON.stringify(Object.entries(e).filter(([,r])=>r!==void 0).sort(([r],[t])=>r<t?-1:r>t?1:0)),m=(e,r)=>e?.kind==="page"&&b(e.page)===r,w=e=>`tab-${e}`,ie=e=>({tabs:[{id:w(1),history:[{kind:"page",page:e}],index:0}],activeId:w(1),seen:b(e),nextId:2}),de={id:"",history:[],index:0},u=e=>e.tabs.find(r=>r.id===e.activeId)??e.tabs[0]??de,x=e=>{const r=u(e);return r.history[r.index]},le=e=>u(e).index>0,ce=e=>{const r=u(e);return r.index<r.history.length-1},T=(e,r)=>({...e,tabs:e.tabs.map(t=>t.id===e.activeId?r(t):t)}),g=(e,r)=>T(e,t=>({...t,history:[...t.history.slice(0,t.index+1),r],index:t.index+1})),f=e=>{const r=x(e);return r?.kind==="page"?{...e,seen:b(r.page)}:e},I=(e,r)=>{const t=u(e),a=t.index+r;return a<0||a>=t.history.length?e:f(T(e,o=>({...o,index:a})))},A=(e,r,t)=>{const a=w(e.nextId),o=e.tabs.findIndex(s=>s.id===e.activeId)+1;return f({...e,tabs:[...e.tabs.slice(0,o),{id:a,history:[r],index:0},...e.tabs.slice(o)],activeId:t?e.activeId:a,nextId:e.nextId+1})},pe=(e,r)=>{const t=e.tabs.findIndex(s=>s.id===r);if(t<0)return e;if(e.tabs.length===1){const s=w(e.nextId);return{...e,tabs:[{id:s,history:[{kind:"new-tab"}],index:0}],activeId:s,nextId:e.nextId+1}}const a=e.tabs.filter(s=>s.id!==r);if(r!==e.activeId)return{...e,tabs:a};const o=a[t]??a[t-1];return f({...e,tabs:a,activeId:o?.id??e.activeId})},be=(e,r)=>{const t=r===null?null:b(r);if(t===e.seen)return e;const a={...e,seen:t};return r===null||t===null||m(x(e),t)?a:g(a,{kind:"page",page:r})},ue=(e,r)=>{const t=b(r);return m(x(e),t)?e.seen===t?e:{...e,seen:t}:g({...e,seen:t},{kind:"page",page:r})},we=(e,r)=>{switch(r.kind){case"observe":return be(e,r.page);case"visit":return ue(e,r.page);case"back":return I(e,-1);case"forward":return I(e,1);case"open-tab":return A(e,r.entry,r.background);case"new-tab":return A(e,{kind:"new-tab"},!1);case"unreachable":return g(e,{kind:"unreachable",url:r.url});case"activate":return e.tabs.some(t=>t.id===r.id)&&r.id!==e.activeId?f({...e,activeId:r.id}):e;case"close-tab":return pe(e,r.id);default:return e}},xe=R`
163
+ /*
164
+ * A tab strip on a darker band, the active tab merged into the toolbar below
165
+ * it, round navigation buttons, a pill address bar and the profile of the
166
+ * user the window belongs to.
167
+ */
168
+ .browser {
169
+ display: flex;
170
+ flex-direction: column;
171
+ --browser-band: var(--dpk-paper-inset);
172
+ --browser-bar: var(--dpk-paper-raised);
173
+ }
174
+
175
+ .browser-tabs {
176
+ display: flex;
177
+ align-items: flex-end;
178
+ gap: 4px;
179
+ min-width: 0;
180
+ padding: 7px 10px 0;
181
+ background: var(--browser-band);
182
+ }
183
+
184
+ .browser-tab-list {
185
+ display: flex;
186
+ flex: 0 1 auto;
187
+ align-items: flex-end;
188
+ gap: 2px;
189
+ min-width: 0;
190
+ }
191
+
192
+ .browser-tab {
193
+ position: relative;
194
+ display: flex;
195
+ flex: 0 1 220px;
196
+ align-items: center;
197
+ gap: 8px;
198
+ min-width: 64px;
199
+ height: 32px;
200
+ padding: 0 8px 0 12px;
201
+ border-radius: 9px 9px 0 0;
202
+ color: var(--dpk-ink-soft);
203
+ font-size: 12px;
204
+ cursor: default;
205
+ user-select: none;
206
+ transition: background 140ms var(--dpk-ease);
207
+ }
208
+
209
+ .browser-tab:not([aria-selected='true']):hover {
210
+ background: color-mix(in srgb, var(--browser-bar) 55%, transparent);
211
+ }
212
+
213
+ /* A thin rule between two inactive tabs, as in Chrome. */
214
+ .browser-tab:not([aria-selected='true']) + .browser-tab:not([aria-selected='true'])::before {
215
+ content: '';
216
+ position: absolute;
217
+ left: -2px;
218
+ top: 9px;
219
+ bottom: 9px;
220
+ width: 1px;
221
+ background: var(--dpk-rule-strong);
222
+ }
223
+
224
+ .browser-tab[aria-selected='true'] {
225
+ background: var(--browser-bar);
226
+ color: var(--dpk-ink);
227
+ box-shadow: 0 -1px 0 var(--dpk-rule);
228
+ }
229
+
230
+ .browser-tab:focus-visible {
231
+ outline: none;
232
+ box-shadow: var(--dpk-focus);
233
+ }
234
+
235
+ .browser-favicon {
236
+ display: inline-flex;
237
+ flex: none;
238
+ color: var(--dpk-ink-faint);
239
+ }
240
+
241
+ .browser-favicon svg {
242
+ width: 14px;
243
+ height: 14px;
244
+ }
245
+
246
+ .browser-tab-title {
247
+ flex: 1;
248
+ min-width: 0;
249
+ overflow: hidden;
250
+ white-space: nowrap;
251
+ text-overflow: ellipsis;
252
+ }
253
+
254
+ .browser-tab-close,
255
+ .browser-new-tab,
256
+ .browser-nav {
257
+ display: inline-grid;
258
+ flex: none;
259
+ place-items: center;
260
+ padding: 0;
261
+ border: 0;
262
+ border-radius: 50%;
263
+ background: transparent;
264
+ color: var(--dpk-ink-soft);
265
+ cursor: pointer;
266
+ transition:
267
+ background 140ms var(--dpk-ease),
268
+ color 140ms var(--dpk-ease);
269
+ }
270
+
271
+ .browser-tab-close {
272
+ width: 18px;
273
+ height: 18px;
274
+ }
275
+
276
+ .browser-tab-close svg {
277
+ width: 10px;
278
+ height: 10px;
279
+ }
280
+
281
+ .browser-new-tab {
282
+ width: 26px;
283
+ height: 26px;
284
+ margin-bottom: 3px;
285
+ }
286
+
287
+ .browser-new-tab svg {
288
+ width: 14px;
289
+ height: 14px;
290
+ }
291
+
292
+ .browser-tab-close:hover,
293
+ .browser-new-tab:hover,
294
+ .browser-nav:not(:disabled):hover {
295
+ background: color-mix(in srgb, var(--dpk-ink) 9%, transparent);
296
+ color: var(--dpk-ink);
297
+ }
298
+
299
+ .browser-tab-close:focus-visible,
300
+ .browser-new-tab:focus-visible,
301
+ .browser-nav:focus-visible {
302
+ outline: none;
303
+ box-shadow: var(--dpk-focus);
304
+ }
305
+
306
+ .browser-toolbar {
307
+ display: flex;
308
+ align-items: center;
309
+ gap: 4px;
310
+ min-width: 0;
311
+ padding: 6px 10px;
312
+ background: var(--browser-bar);
313
+ border-bottom: 1px solid var(--dpk-rule);
314
+ }
315
+
316
+ .browser-nav {
317
+ width: 30px;
318
+ height: 30px;
319
+ }
320
+
321
+ .browser-nav svg {
322
+ width: 15px;
323
+ height: 15px;
324
+ }
325
+
326
+ .browser-nav:disabled {
327
+ color: var(--dpk-ink-faint);
328
+ opacity: 0.5;
329
+ cursor: default;
330
+ }
331
+
332
+ .browser-address-form {
333
+ position: relative;
334
+ display: flex;
335
+ flex: 1;
336
+ align-items: center;
337
+ min-width: 0;
338
+ margin: 0 4px;
339
+ }
340
+
341
+ .browser-lock {
342
+ position: absolute;
343
+ left: 12px;
344
+ display: inline-flex;
345
+ color: var(--dpk-ink-faint);
346
+ pointer-events: none;
347
+ }
348
+
349
+ .browser-lock svg {
350
+ width: 13px;
351
+ height: 13px;
352
+ }
353
+
354
+ .browser-address {
355
+ width: 100%;
356
+ min-width: 0;
357
+ height: 30px;
358
+ padding: 0 14px 0 33px;
359
+ border: 1px solid transparent;
360
+ border-radius: 999px;
361
+ background: var(--dpk-paper-sunken);
362
+ color: var(--dpk-ink);
363
+ font: 13px/1 var(--dpk-body);
364
+ text-overflow: ellipsis;
365
+ transition:
366
+ background 140ms var(--dpk-ease),
367
+ border-color 140ms var(--dpk-ease);
368
+ }
369
+
370
+ .browser-address:hover {
371
+ background: var(--dpk-paper-inset);
372
+ }
373
+
374
+ .browser-address:focus {
375
+ outline: none;
376
+ border-color: var(--dpk-blue);
377
+ background: var(--browser-bar);
378
+ box-shadow: 0 0 0 1px var(--dpk-blue);
379
+ }
380
+
381
+ .browser-profile {
382
+ display: inline-flex;
383
+ flex: none;
384
+ align-items: center;
385
+ gap: 6px;
386
+ max-width: 160px;
387
+ height: 28px;
388
+ padding: 0 10px 0 3px;
389
+ border-radius: 999px;
390
+ background: var(--dpk-blue-soft);
391
+ color: var(--dpk-blue-strong, var(--dpk-blue));
392
+ font-size: 12px;
393
+ font-weight: 600;
394
+ }
395
+
396
+ .browser-avatar {
397
+ display: inline-grid;
398
+ flex: none;
399
+ place-items: center;
400
+ width: 22px;
401
+ height: 22px;
402
+ border-radius: 50%;
403
+ background: var(--dpk-blue);
404
+ color: #fff;
405
+ font-size: 11px;
406
+ font-weight: 700;
407
+ }
408
+
409
+ .browser-profile-name {
410
+ min-width: 0;
411
+ overflow: hidden;
412
+ white-space: nowrap;
413
+ text-overflow: ellipsis;
414
+ }
415
+
416
+ /* The bar a reload draws under the toolbar while the page comes back. */
417
+ .browser-progress {
418
+ position: relative;
419
+ height: 2px;
420
+ margin-top: -2px;
421
+ overflow: hidden;
422
+ pointer-events: none;
423
+ }
424
+
425
+ .browser[data-loading] .browser-progress::after {
426
+ content: '';
427
+ position: absolute;
428
+ inset: 0;
429
+ background: var(--dpk-blue);
430
+ transform-origin: left;
431
+ animation: dpk-browser-load 360ms var(--dpk-ease) forwards;
432
+ }
433
+
434
+ @keyframes dpk-browser-load {
435
+ from {
436
+ transform: scaleX(0.08);
437
+ }
438
+ to {
439
+ transform: scaleX(1);
440
+ }
441
+ }
442
+
443
+ .browser-page {
444
+ transition: opacity 160ms var(--dpk-ease);
445
+ }
446
+
447
+ .browser[data-loading] .browser-page {
448
+ opacity: 0.45;
449
+ }
450
+
451
+ /* The new tab page: the pages of the app the reader is in, as tiles. */
452
+ .browser-newtab {
453
+ display: grid;
454
+ flex: 1;
455
+ align-content: start;
456
+ justify-items: center;
457
+ gap: 18px;
458
+ padding: 72px 24px 40px;
459
+ background: #f8f9fb;
460
+ color: #3c4250;
461
+ }
462
+
463
+ .browser-newtab-label {
464
+ margin: 0;
465
+ font-size: 13px;
466
+ font-weight: 600;
467
+ color: #6b7282;
468
+ }
469
+
470
+ .browser-shortcuts {
471
+ display: grid;
472
+ grid-template-columns: repeat(auto-fill, 112px);
473
+ justify-content: center;
474
+ gap: 8px;
475
+ width: min(100%, 600px);
476
+ }
477
+
478
+ .browser-shortcut {
479
+ display: grid;
480
+ justify-items: center;
481
+ gap: 6px;
482
+ padding: 14px 8px 12px;
483
+ border-radius: 12px;
484
+ color: inherit;
485
+ text-align: center;
486
+ text-decoration: none;
487
+ transition: background 140ms var(--dpk-ease);
488
+ }
489
+
490
+ .browser-shortcut:hover,
491
+ .browser-shortcut:focus-visible {
492
+ outline: none;
493
+ background: #eceef2;
494
+ }
495
+
496
+ .browser-shortcut-icon {
497
+ display: grid;
498
+ place-items: center;
499
+ width: 44px;
500
+ height: 44px;
501
+ border-radius: 50%;
502
+ background: #e3e7ee;
503
+ color: #3563d9;
504
+ font-size: 17px;
505
+ font-weight: 700;
506
+ }
507
+
508
+ .browser-shortcut-title,
509
+ .browser-shortcut-url {
510
+ max-width: 100%;
511
+ overflow: hidden;
512
+ white-space: nowrap;
513
+ text-overflow: ellipsis;
514
+ }
515
+
516
+ .browser-shortcut-title {
517
+ font-size: 12.5px;
518
+ font-weight: 600;
519
+ }
520
+
521
+ .browser-shortcut-url {
522
+ font-size: 10.5px;
523
+ color: #8a91a0;
524
+ }
525
+
526
+ .browser-unreachable {
527
+ display: grid;
528
+ flex: 1;
529
+ align-content: start;
530
+ gap: 10px;
531
+ padding: 88px max(24px, 12%) 40px;
532
+ background: #fff;
533
+ color: #3c4250;
534
+ }
535
+
536
+ .browser-unreachable::before {
537
+ content: '';
538
+ width: 40px;
539
+ height: 40px;
540
+ margin-bottom: 8px;
541
+ border-radius: 10px;
542
+ background:
543
+ linear-gradient(135deg, transparent 46%, #9aa1ae 46% 54%, transparent 54%),
544
+ linear-gradient(45deg, transparent 46%, #9aa1ae 46% 54%, transparent 54%), #eceef2;
545
+ }
546
+
547
+ .browser-unreachable h3 {
548
+ margin: 0;
549
+ font-size: 20px;
550
+ font-weight: 600;
551
+ color: #1f2430;
552
+ }
553
+
554
+ .browser-unreachable p {
555
+ margin: 0;
556
+ font-size: 13.5px;
557
+ line-height: 1.6;
558
+ }
559
+
560
+ .browser-unreachable code {
561
+ justify-self: start;
562
+ max-width: 100%;
563
+ overflow-wrap: anywhere;
564
+ font-family: var(--dpk-mono);
565
+ font-size: 12px;
566
+ color: #6b7282;
567
+ }
568
+
569
+ /*
570
+ * A phone browser: the address and the avatar on top, the controls and the
571
+ * tab count in a bar under the page, the tabs as cards over the page.
572
+ */
573
+ .browser[data-viewport='mobile'] .browser-toolbar {
574
+ gap: 8px;
575
+ padding: 8px 10px;
576
+ }
577
+
578
+ .browser[data-viewport='mobile'] .browser-profile {
579
+ padding-right: 3px;
580
+ }
581
+
582
+ .browser[data-viewport='mobile'] .browser-shortcuts {
583
+ grid-template-columns: repeat(auto-fill, 96px);
584
+ }
585
+
586
+ .browser-bottom {
587
+ display: flex;
588
+ align-items: center;
589
+ justify-content: space-around;
590
+ padding: 6px 8px 10px;
591
+ border-top: 1px solid var(--dpk-rule);
592
+ background: var(--browser-bar);
593
+ }
594
+
595
+ .browser-bottom .browser-new-tab {
596
+ width: 30px;
597
+ height: 30px;
598
+ margin: 0;
599
+ }
600
+
601
+ .browser-tab-count-box {
602
+ display: inline-grid;
603
+ place-items: center;
604
+ min-width: 17px;
605
+ height: 17px;
606
+ padding: 0 3px;
607
+ border: 1.5px solid currentColor;
608
+ border-radius: 4px;
609
+ font: 700 10px/1 var(--dpk-body);
610
+ }
611
+
612
+ .browser-tab-count[aria-expanded='true'] {
613
+ background: color-mix(in srgb, var(--dpk-ink) 9%, transparent);
614
+ color: var(--dpk-ink);
615
+ }
616
+
617
+ .browser-switcher {
618
+ position: absolute;
619
+ inset: 0;
620
+ z-index: 2;
621
+ display: grid;
622
+ grid-template-columns: repeat(2, minmax(0, 1fr));
623
+ align-content: start;
624
+ gap: 10px;
625
+ padding: 12px;
626
+ color-scheme: normal;
627
+ background: var(--browser-band);
628
+ overflow: auto;
629
+ }
630
+
631
+ .browser-card {
632
+ position: relative;
633
+ border: 1px solid var(--dpk-rule-strong);
634
+ border-radius: 12px;
635
+ background: var(--browser-bar);
636
+ box-shadow: var(--dpk-shadow);
637
+ }
638
+
639
+ .browser-card[aria-current='true'] {
640
+ border-color: var(--dpk-blue);
641
+ box-shadow: 0 0 0 1px var(--dpk-blue);
642
+ }
643
+
644
+ .browser-card-open {
645
+ display: grid;
646
+ grid-template-columns: auto minmax(0, 1fr);
647
+ align-items: center;
648
+ gap: 4px 6px;
649
+ width: 100%;
650
+ min-height: 84px;
651
+ padding: 10px 30px 10px 10px;
652
+ border: 0;
653
+ border-radius: inherit;
654
+ background: transparent;
655
+ color: var(--dpk-ink);
656
+ font: 600 12px/1.3 var(--dpk-body);
657
+ text-align: left;
658
+ align-content: start;
659
+ cursor: pointer;
660
+ }
661
+
662
+ .browser-card-open:focus-visible {
663
+ outline: none;
664
+ box-shadow: var(--dpk-focus);
665
+ }
666
+
667
+ .browser-card-title,
668
+ .browser-card-url {
669
+ min-width: 0;
670
+ overflow: hidden;
671
+ white-space: nowrap;
672
+ text-overflow: ellipsis;
673
+ }
674
+
675
+ .browser-card-url {
676
+ grid-column: 1 / -1;
677
+ color: var(--dpk-ink-faint);
678
+ font: 400 11px/1.3 var(--dpk-mono);
679
+ }
680
+
681
+ .browser-card .browser-tab-close {
682
+ position: absolute;
683
+ top: 8px;
684
+ right: 8px;
685
+ }
686
+ `;export{$ as a,U as b,P as c,u as d,ce as e,le as f,xe as g,X as h,K as i,x as j,re as k,ne as l,te as m,we as n,S as p,F as r,ie as s,W as t};