daily-focus 1.1.1-dev.3 → 1.2.0-dev.11
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/README.md +39 -23
- package/SETUP.md +153 -38
- package/dist/{audit-B5GKGH2P.js → audit-F26VGPOO.js} +6 -5
- package/dist/{chunk-NWYOCDUU.js → chunk-4DZEBUPU.js} +9 -7
- package/dist/{chunk-C6FXWHGT.js → chunk-CPJ6LOVC.js} +123 -282
- package/dist/chunk-EV44BC2F.js +1020 -0
- package/dist/{chunk-AUBJ2IDQ.js → chunk-GVLNDQVQ.js} +2 -2
- package/dist/{chunk-YWHADSKR.js → chunk-HVCCIZGA.js} +1 -1
- package/dist/cli.js +9 -8
- package/dist/{demo-AMK3Y4JZ.js → demo-UMGG3VKY.js} +135 -32
- package/dist/{init-YGOPPELJ.js → init-MFPXASX3.js} +1 -9
- package/dist/{seed-57RJGU4Y.js → seed-S32JX5MW.js} +3 -3
- package/dist/{server-5HCA62YY.js → server-EDPYEZCP.js} +2088 -564
- package/dist/{service-63U4WBUH.js → service-XPFMYIHR.js} +1 -1
- package/package.json +2 -2
- package/prompts/README.md +8 -7
- package/prompts/assistant.md +14 -3
- package/prompts/morning-brief-personal.md +1 -25
- package/prompts/morning-brief-work.md +8 -33
- package/prompts/onboarding.md +41 -0
- package/public/app.js +1084 -747
- package/public/style.css +770 -261
- package/dist/chunk-GFCWPYEI.js +0 -456
package/public/style.css
CHANGED
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
|
|
87
87
|
/*
|
|
88
88
|
* The UA stylesheet's `[hidden] { display: none }` loses to any class that sets
|
|
89
|
-
* display, so `.
|
|
89
|
+
* display, so `.toast` rendered as an empty box
|
|
90
90
|
* while "hidden". Assert it once here rather than remembering per component.
|
|
91
91
|
*/
|
|
92
92
|
[hidden] {
|
|
@@ -351,91 +351,6 @@ body[data-view='tickets'] #brief-refresh {
|
|
|
351
351
|
}
|
|
352
352
|
}
|
|
353
353
|
|
|
354
|
-
/* ---------- focus timer ---------- */
|
|
355
|
-
|
|
356
|
-
.timer {
|
|
357
|
-
display: flex;
|
|
358
|
-
align-items: center;
|
|
359
|
-
gap: 12px;
|
|
360
|
-
max-width: 1280px;
|
|
361
|
-
margin: 0 auto 14px;
|
|
362
|
-
padding: 10px 14px;
|
|
363
|
-
background: var(--surface);
|
|
364
|
-
border: 1px solid var(--border);
|
|
365
|
-
border-left: 3px solid var(--accent);
|
|
366
|
-
border-radius: var(--radius);
|
|
367
|
-
box-shadow: var(--shadow);
|
|
368
|
-
font-size: 13.5px;
|
|
369
|
-
color: var(--ink-2);
|
|
370
|
-
}
|
|
371
|
-
/* Past the target the timer stops being encouraging and starts being a fact. */
|
|
372
|
-
.timer[data-state='overrun'] {
|
|
373
|
-
border-left-color: var(--serious);
|
|
374
|
-
}
|
|
375
|
-
.timer[data-state='idle'] {
|
|
376
|
-
border-left-color: var(--hairline);
|
|
377
|
-
color: var(--ink-3);
|
|
378
|
-
}
|
|
379
|
-
|
|
380
|
-
.timer__clock {
|
|
381
|
-
font-size: 20px;
|
|
382
|
-
font-weight: 600;
|
|
383
|
-
font-variant-numeric: tabular-nums;
|
|
384
|
-
color: var(--ink-1);
|
|
385
|
-
min-width: 62px;
|
|
386
|
-
}
|
|
387
|
-
.timer[data-state='overrun'] .timer__clock {
|
|
388
|
-
color: var(--serious);
|
|
389
|
-
}
|
|
390
|
-
|
|
391
|
-
.timer__title {
|
|
392
|
-
flex: 1;
|
|
393
|
-
min-width: 0;
|
|
394
|
-
color: var(--ink-1);
|
|
395
|
-
overflow-wrap: anywhere;
|
|
396
|
-
}
|
|
397
|
-
.timer__note {
|
|
398
|
-
color: var(--ink-3);
|
|
399
|
-
}
|
|
400
|
-
.timer__note--warn {
|
|
401
|
-
color: var(--critical);
|
|
402
|
-
}
|
|
403
|
-
.timer__tally {
|
|
404
|
-
color: var(--ink-3);
|
|
405
|
-
white-space: nowrap;
|
|
406
|
-
}
|
|
407
|
-
|
|
408
|
-
/*
|
|
409
|
-
* The bar after the timer stopped itself. Marked like the overrun state rather
|
|
410
|
-
* than the idle one: something happened that's worth a glance, even though the
|
|
411
|
-
* thing that happened was the dashboard being careful.
|
|
412
|
-
*/
|
|
413
|
-
.timer[data-state='stopped'] {
|
|
414
|
-
border-left-color: var(--serious);
|
|
415
|
-
}
|
|
416
|
-
.timer__away {
|
|
417
|
-
display: flex;
|
|
418
|
-
flex: 1;
|
|
419
|
-
align-items: center;
|
|
420
|
-
gap: 12px;
|
|
421
|
-
min-width: 0;
|
|
422
|
-
}
|
|
423
|
-
.timer__away-body {
|
|
424
|
-
display: flex;
|
|
425
|
-
flex-direction: column;
|
|
426
|
-
flex: 1;
|
|
427
|
-
min-width: 0;
|
|
428
|
-
}
|
|
429
|
-
.timer__away-text {
|
|
430
|
-
color: var(--ink-1);
|
|
431
|
-
overflow-wrap: anywhere;
|
|
432
|
-
}
|
|
433
|
-
.timer__away-detail {
|
|
434
|
-
color: var(--ink-3);
|
|
435
|
-
font-size: 12.5px;
|
|
436
|
-
overflow-wrap: anywhere;
|
|
437
|
-
}
|
|
438
|
-
|
|
439
354
|
/* ---------- banners ---------- */
|
|
440
355
|
|
|
441
356
|
.banners {
|
|
@@ -692,47 +607,6 @@ body[data-view='tickets'] #brief-refresh {
|
|
|
692
607
|
}
|
|
693
608
|
}
|
|
694
609
|
|
|
695
|
-
/* ---------- focus mode ---------- */
|
|
696
|
-
|
|
697
|
-
/*
|
|
698
|
-
* Fourteen open rows are fourteen invitations to switch task. Focus mode answers
|
|
699
|
-
* the only question that matters mid-work — "what am I doing right now" — by
|
|
700
|
-
* leaving the objective, one item, and the clock, and taking away the menu.
|
|
701
|
-
*/
|
|
702
|
-
.focus-bar {
|
|
703
|
-
display: flex;
|
|
704
|
-
align-items: center;
|
|
705
|
-
justify-content: space-between;
|
|
706
|
-
gap: 12px;
|
|
707
|
-
margin: 0 0 16px;
|
|
708
|
-
padding: 9px 14px;
|
|
709
|
-
background: var(--surface);
|
|
710
|
-
border: 1px solid var(--border);
|
|
711
|
-
border-left: 3px solid var(--accent);
|
|
712
|
-
border-radius: var(--radius);
|
|
713
|
-
font-size: 13px;
|
|
714
|
-
color: var(--ink-2);
|
|
715
|
-
}
|
|
716
|
-
|
|
717
|
-
/* Scoped to the Today view: the board is a different question, and stays whole. */
|
|
718
|
-
body[data-focus-mode='true'][data-view='today'] .stats,
|
|
719
|
-
body[data-focus-mode='true'][data-view='today'] .headline,
|
|
720
|
-
body[data-focus-mode='true'][data-view='today'] #today .drawer,
|
|
721
|
-
body[data-focus-mode='true'][data-view='today'] #today .section__header,
|
|
722
|
-
/* every section except the first, and every item in it except the first */
|
|
723
|
-
body[data-focus-mode='true'][data-view='today'] #today .section:not(:first-of-type),
|
|
724
|
-
body[data-focus-mode='true'][data-view='today'] #today .section:first-of-type .item:not(:first-child) {
|
|
725
|
-
display: none;
|
|
726
|
-
}
|
|
727
|
-
|
|
728
|
-
body[data-focus-mode='true'][data-view='today'] #today .item {
|
|
729
|
-
padding: 18px 20px;
|
|
730
|
-
}
|
|
731
|
-
body[data-focus-mode='true'][data-view='today'] #today .item__title {
|
|
732
|
-
font-size: 19px;
|
|
733
|
-
line-height: 1.35;
|
|
734
|
-
}
|
|
735
|
-
|
|
736
610
|
/* ---------- standing objective ---------- */
|
|
737
611
|
|
|
738
612
|
/*
|
|
@@ -910,9 +784,9 @@ body[data-focus-mode='true'][data-view='today'] #today .item__title {
|
|
|
910
784
|
scroll-margin: 90px;
|
|
911
785
|
}
|
|
912
786
|
/*
|
|
913
|
-
*
|
|
914
|
-
*
|
|
915
|
-
*
|
|
787
|
+
* Two states used to share one look: selected and priority were both "accent
|
|
788
|
+
* border", so the ranked rows were indistinguishable from a keyboard cursor.
|
|
789
|
+
* Selected is the quieter of the two.
|
|
916
790
|
*/
|
|
917
791
|
.item[data-selected='true'] {
|
|
918
792
|
border-color: var(--ink-3);
|
|
@@ -921,33 +795,6 @@ body[data-focus-mode='true'][data-view='today'] #today .item__title {
|
|
|
921
795
|
.item[data-priority='true'] {
|
|
922
796
|
border-left: 3px solid var(--accent);
|
|
923
797
|
}
|
|
924
|
-
|
|
925
|
-
/* The one you committed to. Four reinforcing cues, because missing it is the
|
|
926
|
-
* whole failure mode: a thick bar, a wash, a ring, and a live clock on the row. */
|
|
927
|
-
.item[data-running='true'],
|
|
928
|
-
.item[data-running='true'][data-selected='true'] {
|
|
929
|
-
border-color: var(--accent);
|
|
930
|
-
border-left: 5px solid var(--accent);
|
|
931
|
-
background: var(--accent-wash);
|
|
932
|
-
box-shadow: 0 0 0 2px var(--accent);
|
|
933
|
-
}
|
|
934
|
-
.item[data-running='true'][data-overrun='true'],
|
|
935
|
-
.item[data-running='true'][data-overrun='true'][data-selected='true'] {
|
|
936
|
-
border-color: var(--serious);
|
|
937
|
-
border-left-color: var(--serious);
|
|
938
|
-
box-shadow: 0 0 0 2px var(--serious);
|
|
939
|
-
}
|
|
940
|
-
|
|
941
|
-
/* While a session runs, everything else recedes — the competing rows are the
|
|
942
|
-
* distraction the timer exists to resist. Hover brings one back so the list is
|
|
943
|
-
* still usable without stopping the clock. */
|
|
944
|
-
body[data-session-active='true'] #today .item:not([data-running='true']) {
|
|
945
|
-
opacity: 0.45;
|
|
946
|
-
}
|
|
947
|
-
body[data-session-active='true'] #today .item:not([data-running='true']):hover,
|
|
948
|
-
body[data-session-active='true'] #today .item:not([data-running='true']):focus-within {
|
|
949
|
-
opacity: 1;
|
|
950
|
-
}
|
|
951
798
|
.item[data-status='done'] .item__title,
|
|
952
799
|
.item[data-status='dismissed'] .item__title {
|
|
953
800
|
color: var(--ink-3);
|
|
@@ -1021,6 +868,47 @@ body[data-session-active='true'] #today .item:not([data-running='true']):focus-w
|
|
|
1021
868
|
color: var(--ink-2);
|
|
1022
869
|
overflow-wrap: anywhere;
|
|
1023
870
|
}
|
|
871
|
+
/*
|
|
872
|
+
* The assistant's answer, asked ahead, in a line: the verdict on the row, so
|
|
873
|
+
* the card says what to do about the pull request before it is opened.
|
|
874
|
+
*/
|
|
875
|
+
.item__ahead {
|
|
876
|
+
display: -webkit-box;
|
|
877
|
+
margin: 6px 0 0;
|
|
878
|
+
padding: 4px 8px;
|
|
879
|
+
border-radius: var(--radius-sm);
|
|
880
|
+
background: var(--accent-wash);
|
|
881
|
+
font-size: 12.5px;
|
|
882
|
+
color: var(--ink-1);
|
|
883
|
+
overflow: hidden;
|
|
884
|
+
overflow-wrap: anywhere;
|
|
885
|
+
-webkit-box-orient: vertical;
|
|
886
|
+
-webkit-line-clamp: 2;
|
|
887
|
+
}
|
|
888
|
+
.item__ahead--quiet {
|
|
889
|
+
background: none;
|
|
890
|
+
padding: 0;
|
|
891
|
+
color: var(--ink-3);
|
|
892
|
+
}
|
|
893
|
+
.item__ahead-mark {
|
|
894
|
+
margin-right: 6px;
|
|
895
|
+
color: var(--accent);
|
|
896
|
+
font-weight: 600;
|
|
897
|
+
}
|
|
898
|
+
.item__ahead[data-status='running'] .item__ahead-mark {
|
|
899
|
+
animation: ahead-pulse 1.4s ease-in-out infinite;
|
|
900
|
+
}
|
|
901
|
+
@keyframes ahead-pulse {
|
|
902
|
+
50% {
|
|
903
|
+
opacity: 0.3;
|
|
904
|
+
}
|
|
905
|
+
}
|
|
906
|
+
@media (prefers-reduced-motion: reduce) {
|
|
907
|
+
.item__ahead[data-status='running'] .item__ahead-mark {
|
|
908
|
+
animation: none;
|
|
909
|
+
}
|
|
910
|
+
}
|
|
911
|
+
|
|
1024
912
|
.item__detail code {
|
|
1025
913
|
padding: 1px 4px;
|
|
1026
914
|
background: var(--surface-sunken);
|
|
@@ -1058,17 +946,6 @@ body[data-session-active='true'] #today .item:not([data-running='true']):focus-w
|
|
|
1058
946
|
font-weight: 600;
|
|
1059
947
|
font-variant-numeric: tabular-nums;
|
|
1060
948
|
}
|
|
1061
|
-
.pill--running {
|
|
1062
|
-
border-color: transparent;
|
|
1063
|
-
background: var(--accent);
|
|
1064
|
-
color: #fff;
|
|
1065
|
-
font-weight: 600;
|
|
1066
|
-
font-variant-numeric: tabular-nums;
|
|
1067
|
-
}
|
|
1068
|
-
.item[data-overrun='true'] .pill--running {
|
|
1069
|
-
background: var(--serious);
|
|
1070
|
-
color: #1a1a19;
|
|
1071
|
-
}
|
|
1072
949
|
.pill--objective {
|
|
1073
950
|
border-color: var(--accent);
|
|
1074
951
|
color: var(--accent);
|
|
@@ -1563,7 +1440,7 @@ kbd {
|
|
|
1563
1440
|
}
|
|
1564
1441
|
|
|
1565
1442
|
/*
|
|
1566
|
-
* Which view is showing.
|
|
1443
|
+
* Which view is showing.
|
|
1567
1444
|
*
|
|
1568
1445
|
* One rule per panel per view rather than `:not()`, because a view name nobody
|
|
1569
1446
|
* has written a rule for should show nothing rather than everything at once.
|
|
@@ -1629,6 +1506,7 @@ body[data-view='settings'] .layout {
|
|
|
1629
1506
|
}
|
|
1630
1507
|
|
|
1631
1508
|
.item--pull[data-status='snoozed'] .item__title,
|
|
1509
|
+
.item--pull[data-nudged='true'] .item__title,
|
|
1632
1510
|
.item--ticket[data-status='snoozed'] .item__title {
|
|
1633
1511
|
color: var(--ink-3);
|
|
1634
1512
|
}
|
|
@@ -1710,12 +1588,17 @@ body[data-view='settings'] .layout {
|
|
|
1710
1588
|
padding-right: 104px;
|
|
1711
1589
|
font-size: 13.5px;
|
|
1712
1590
|
}
|
|
1713
|
-
/* The exceptions, the notes and the note form all span both columns. */
|
|
1591
|
+
/* The exceptions, GitHub's evidence, the notes and the note form all span both columns. */
|
|
1714
1592
|
#tickets .item__meta--extra,
|
|
1593
|
+
#tickets .item__reason,
|
|
1715
1594
|
#tickets .item__notes,
|
|
1716
1595
|
#tickets .note-form {
|
|
1717
1596
|
grid-column: 1 / -1;
|
|
1718
1597
|
}
|
|
1598
|
+
/* The grid's gap already spaces it from the line above. */
|
|
1599
|
+
#tickets .item__reason {
|
|
1600
|
+
margin-top: 0;
|
|
1601
|
+
}
|
|
1719
1602
|
|
|
1720
1603
|
/*
|
|
1721
1604
|
* The switch between the ticket tab's two views: what is out of sync, and what
|
|
@@ -1893,9 +1776,9 @@ a.button {
|
|
|
1893
1776
|
/*
|
|
1894
1777
|
* ---------- the assistant ----------
|
|
1895
1778
|
*
|
|
1896
|
-
* A section of the item panel, so the transcript scrolls with the panel's body
|
|
1897
|
-
*
|
|
1898
|
-
* scroll region; now the panel is the box.
|
|
1779
|
+
* A section of the item panel, so the transcript scrolls with the panel's body;
|
|
1780
|
+
* the field is pinned in the panel's foot. It used to be a box under the card
|
|
1781
|
+
* with its own scroll region; now the panel is the box.
|
|
1899
1782
|
*/
|
|
1900
1783
|
|
|
1901
1784
|
.assistant__turns {
|
|
@@ -1914,6 +1797,9 @@ a.button {
|
|
|
1914
1797
|
color: var(--ink-1);
|
|
1915
1798
|
font-weight: 600;
|
|
1916
1799
|
}
|
|
1800
|
+
.assistant__auto {
|
|
1801
|
+
color: var(--accent);
|
|
1802
|
+
}
|
|
1917
1803
|
|
|
1918
1804
|
.assistant__reply {
|
|
1919
1805
|
margin-top: 5px;
|
|
@@ -1959,8 +1845,29 @@ a.button {
|
|
|
1959
1845
|
border: 0;
|
|
1960
1846
|
border-top: 1px solid var(--hairline);
|
|
1961
1847
|
}
|
|
1962
|
-
|
|
1963
|
-
|
|
1848
|
+
/* A fenced block in an answer is usually meant for pasting elsewhere, so it carries a Copy. */
|
|
1849
|
+
.code-block {
|
|
1850
|
+
position: relative;
|
|
1851
|
+
}
|
|
1852
|
+
.code-block pre {
|
|
1853
|
+
padding-right: 52px;
|
|
1854
|
+
}
|
|
1855
|
+
.code-block__copy {
|
|
1856
|
+
position: absolute;
|
|
1857
|
+
top: 5px;
|
|
1858
|
+
right: 5px;
|
|
1859
|
+
padding: 1px 6px;
|
|
1860
|
+
border: 1px solid var(--border);
|
|
1861
|
+
border-radius: var(--radius-sm);
|
|
1862
|
+
background: var(--surface);
|
|
1863
|
+
color: var(--ink-3);
|
|
1864
|
+
font: inherit;
|
|
1865
|
+
font-size: 11px;
|
|
1866
|
+
cursor: pointer;
|
|
1867
|
+
}
|
|
1868
|
+
.code-block__copy:hover {
|
|
1869
|
+
color: var(--ink-1);
|
|
1870
|
+
border-color: var(--ink-3);
|
|
1964
1871
|
}
|
|
1965
1872
|
|
|
1966
1873
|
.assistant__status {
|
|
@@ -1971,16 +1878,25 @@ a.button {
|
|
|
1971
1878
|
.assistant__status--bad {
|
|
1972
1879
|
color: var(--critical);
|
|
1973
1880
|
}
|
|
1974
|
-
.
|
|
1881
|
+
.assistant__clock {
|
|
1882
|
+
font-variant-numeric: tabular-nums;
|
|
1883
|
+
}
|
|
1884
|
+
|
|
1885
|
+
/* A spinner, for the turn while it works and for each call it is waiting on. */
|
|
1886
|
+
.assistant__status--working::after,
|
|
1887
|
+
.assistant__step[data-state='running']::before {
|
|
1975
1888
|
content: '';
|
|
1976
1889
|
display: inline-block;
|
|
1977
|
-
|
|
1978
|
-
|
|
1979
|
-
|
|
1890
|
+
box-sizing: border-box;
|
|
1891
|
+
width: 9px;
|
|
1892
|
+
height: 9px;
|
|
1980
1893
|
border-radius: 50%;
|
|
1981
1894
|
border: 1.5px solid var(--accent);
|
|
1982
1895
|
border-top-color: transparent;
|
|
1983
1896
|
animation: assistant-spin 0.9s linear infinite;
|
|
1897
|
+
}
|
|
1898
|
+
.assistant__status--working::after {
|
|
1899
|
+
margin-left: 6px;
|
|
1984
1900
|
vertical-align: -1px;
|
|
1985
1901
|
}
|
|
1986
1902
|
@keyframes assistant-spin {
|
|
@@ -1989,16 +1905,105 @@ a.button {
|
|
|
1989
1905
|
}
|
|
1990
1906
|
}
|
|
1991
1907
|
@media (prefers-reduced-motion: reduce) {
|
|
1992
|
-
.
|
|
1908
|
+
.assistant__status--working::after,
|
|
1909
|
+
.assistant__step[data-state='running']::before {
|
|
1993
1910
|
animation: none;
|
|
1994
1911
|
}
|
|
1995
1912
|
}
|
|
1996
1913
|
|
|
1914
|
+
/*
|
|
1915
|
+
* The work: each call as one muted line under the request, the newest at the
|
|
1916
|
+
* foot. Folded once the turn is over, under a line that says what it took.
|
|
1917
|
+
*/
|
|
1918
|
+
.assistant__work {
|
|
1919
|
+
margin-top: 4px;
|
|
1920
|
+
}
|
|
1921
|
+
.assistant__work > summary {
|
|
1922
|
+
font-size: 12px;
|
|
1923
|
+
color: var(--ink-3);
|
|
1924
|
+
cursor: pointer;
|
|
1925
|
+
}
|
|
1926
|
+
.assistant__work > summary:hover {
|
|
1927
|
+
color: var(--ink-2);
|
|
1928
|
+
}
|
|
1929
|
+
.assistant__took {
|
|
1930
|
+
margin: 4px 0 0;
|
|
1931
|
+
font-size: 12px;
|
|
1932
|
+
color: var(--ink-3);
|
|
1933
|
+
}
|
|
1934
|
+
.assistant__steps {
|
|
1935
|
+
margin: 5px 0 0;
|
|
1936
|
+
padding: 0 0 0 10px;
|
|
1937
|
+
border-left: 2px solid var(--hairline);
|
|
1938
|
+
list-style: none;
|
|
1939
|
+
font-size: 12px;
|
|
1940
|
+
line-height: 1.45;
|
|
1941
|
+
color: var(--ink-2);
|
|
1942
|
+
}
|
|
1943
|
+
.assistant__step {
|
|
1944
|
+
display: flex;
|
|
1945
|
+
align-items: baseline;
|
|
1946
|
+
gap: 6px;
|
|
1947
|
+
min-width: 0;
|
|
1948
|
+
}
|
|
1949
|
+
.assistant__step + .assistant__step {
|
|
1950
|
+
margin-top: 3px;
|
|
1951
|
+
}
|
|
1952
|
+
.assistant__step::before {
|
|
1953
|
+
flex: none;
|
|
1954
|
+
width: 9px;
|
|
1955
|
+
font-size: 11px;
|
|
1956
|
+
text-align: center;
|
|
1957
|
+
}
|
|
1958
|
+
.assistant__step[data-state='done']::before {
|
|
1959
|
+
content: '✓';
|
|
1960
|
+
color: var(--good-ink);
|
|
1961
|
+
}
|
|
1962
|
+
.assistant__step[data-state='failed']::before {
|
|
1963
|
+
content: '✕';
|
|
1964
|
+
color: var(--critical);
|
|
1965
|
+
}
|
|
1966
|
+
.assistant__step[data-state='running']::before {
|
|
1967
|
+
align-self: center;
|
|
1968
|
+
}
|
|
1969
|
+
.assistant__step-text {
|
|
1970
|
+
flex: none;
|
|
1971
|
+
max-width: 60%;
|
|
1972
|
+
overflow: hidden;
|
|
1973
|
+
text-overflow: ellipsis;
|
|
1974
|
+
white-space: nowrap;
|
|
1975
|
+
}
|
|
1976
|
+
.assistant__step-detail {
|
|
1977
|
+
min-width: 0;
|
|
1978
|
+
overflow: hidden;
|
|
1979
|
+
text-overflow: ellipsis;
|
|
1980
|
+
white-space: nowrap;
|
|
1981
|
+
font-size: 11.5px;
|
|
1982
|
+
color: var(--ink-3);
|
|
1983
|
+
}
|
|
1984
|
+
/* What it said on the way: its own words, set apart from the calls by having no mark. */
|
|
1985
|
+
.assistant__step--message {
|
|
1986
|
+
display: block;
|
|
1987
|
+
padding-left: 15px;
|
|
1988
|
+
font-style: italic;
|
|
1989
|
+
color: var(--ink-3);
|
|
1990
|
+
white-space: pre-line;
|
|
1991
|
+
overflow-wrap: anywhere;
|
|
1992
|
+
}
|
|
1993
|
+
|
|
1994
|
+
/* What can be done with a finished answer, without leaving the panel. */
|
|
1995
|
+
.assistant__after {
|
|
1996
|
+
display: flex;
|
|
1997
|
+
flex-wrap: wrap;
|
|
1998
|
+
gap: 6px;
|
|
1999
|
+
margin-top: 6px;
|
|
2000
|
+
}
|
|
2001
|
+
|
|
1997
2002
|
.assistant__quick {
|
|
1998
2003
|
display: flex;
|
|
1999
2004
|
flex-wrap: wrap;
|
|
2000
2005
|
gap: 6px;
|
|
2001
|
-
margin-bottom:
|
|
2006
|
+
margin-bottom: 10px;
|
|
2002
2007
|
}
|
|
2003
2008
|
|
|
2004
2009
|
.assistant__form {
|
|
@@ -2117,6 +2122,12 @@ body[data-flyout='open'] .layout__side {
|
|
|
2117
2122
|
overflow-y: auto;
|
|
2118
2123
|
padding: 16px 16px 20px;
|
|
2119
2124
|
}
|
|
2125
|
+
/* The assistant's field and its canned asks, pinned under the body that scrolls. */
|
|
2126
|
+
.flyout__footer {
|
|
2127
|
+
flex: none;
|
|
2128
|
+
padding: 12px 16px 14px;
|
|
2129
|
+
border-top: 1px solid var(--hairline);
|
|
2130
|
+
}
|
|
2120
2131
|
.flyout__detail {
|
|
2121
2132
|
margin: 0 0 22px;
|
|
2122
2133
|
font-size: 13px;
|
|
@@ -2238,13 +2249,14 @@ body[data-flyout='open'] .layout__side {
|
|
|
2238
2249
|
text-transform: none;
|
|
2239
2250
|
}
|
|
2240
2251
|
|
|
2241
|
-
/* ----------
|
|
2252
|
+
/* ---------- the first brief, after setup ---------- */
|
|
2242
2253
|
|
|
2243
2254
|
/*
|
|
2244
|
-
*
|
|
2245
|
-
* the same job in its place: the first thing
|
|
2255
|
+
* Today between the setup screen and the first brief. Built from the
|
|
2256
|
+
* objective's card, since it does the same job in its place: the first thing
|
|
2257
|
+
* read, before anything else exists.
|
|
2246
2258
|
*/
|
|
2247
|
-
.
|
|
2259
|
+
.first-brief {
|
|
2248
2260
|
padding: 18px 20px;
|
|
2249
2261
|
background: var(--surface);
|
|
2250
2262
|
border: 1px solid var(--border);
|
|
@@ -2252,121 +2264,621 @@ body[data-flyout='open'] .layout__side {
|
|
|
2252
2264
|
border-radius: var(--radius);
|
|
2253
2265
|
box-shadow: var(--shadow);
|
|
2254
2266
|
}
|
|
2255
|
-
.
|
|
2267
|
+
.first-brief__title {
|
|
2256
2268
|
margin: 0 0 6px;
|
|
2257
2269
|
font-size: 18px;
|
|
2258
2270
|
letter-spacing: -0.01em;
|
|
2259
2271
|
}
|
|
2260
|
-
.
|
|
2261
|
-
margin: 0
|
|
2272
|
+
.first-brief__text {
|
|
2273
|
+
margin: 0;
|
|
2262
2274
|
color: var(--ink-2);
|
|
2263
2275
|
font-size: 13.5px;
|
|
2264
2276
|
line-height: 1.5;
|
|
2265
2277
|
}
|
|
2266
|
-
.
|
|
2267
|
-
display:
|
|
2268
|
-
|
|
2269
|
-
|
|
2270
|
-
|
|
2271
|
-
list-style: none;
|
|
2272
|
-
}
|
|
2273
|
-
.setup__step {
|
|
2274
|
-
display: grid;
|
|
2275
|
-
grid-template-columns: 22px minmax(0, 1fr);
|
|
2276
|
-
gap: 10px;
|
|
2277
|
-
padding: 12px 0;
|
|
2278
|
-
border-top: 1px solid var(--hairline);
|
|
2279
|
-
}
|
|
2280
|
-
.setup__mark {
|
|
2281
|
-
font-size: 15px;
|
|
2282
|
-
line-height: 1.3;
|
|
2283
|
-
color: var(--ink-3);
|
|
2284
|
-
text-align: center;
|
|
2278
|
+
.first-brief__actions {
|
|
2279
|
+
display: flex;
|
|
2280
|
+
flex-wrap: wrap;
|
|
2281
|
+
gap: 8px;
|
|
2282
|
+
margin-top: 14px;
|
|
2285
2283
|
}
|
|
2286
|
-
|
|
2287
|
-
|
|
2284
|
+
|
|
2285
|
+
/* ---------- the setup screen ---------- */
|
|
2286
|
+
|
|
2287
|
+
/*
|
|
2288
|
+
* The whole page while a new store is set up: one column, one question open at
|
|
2289
|
+
* a time, on a thread whose dots are the questions. Answered ones fold into a
|
|
2290
|
+
* sentence; the open one is the only card. The buttons here are larger than the
|
|
2291
|
+
* dashboard's: this page is read once, slowly, and each one is a decision.
|
|
2292
|
+
*/
|
|
2293
|
+
/* The page's own margins are the dashboard's; this one runs edge to edge. */
|
|
2294
|
+
body[data-onboarding='true'] {
|
|
2295
|
+
padding: 0;
|
|
2288
2296
|
}
|
|
2289
|
-
.
|
|
2290
|
-
|
|
2297
|
+
.onboarding {
|
|
2298
|
+
min-height: 100vh;
|
|
2299
|
+
background: var(--page);
|
|
2291
2300
|
}
|
|
2292
|
-
.
|
|
2293
|
-
|
|
2294
|
-
|
|
2301
|
+
.onboarding__bar {
|
|
2302
|
+
position: sticky;
|
|
2303
|
+
top: 0;
|
|
2304
|
+
z-index: 2;
|
|
2305
|
+
display: flex;
|
|
2306
|
+
align-items: center;
|
|
2307
|
+
gap: 18px;
|
|
2308
|
+
padding: 14px 24px;
|
|
2309
|
+
background: var(--page);
|
|
2310
|
+
border-bottom: 1px solid var(--hairline);
|
|
2311
|
+
font-size: 13px;
|
|
2312
|
+
color: var(--ink-2);
|
|
2313
|
+
}
|
|
2314
|
+
.onboarding__name {
|
|
2315
|
+
color: var(--ink-1);
|
|
2295
2316
|
font-weight: 600;
|
|
2317
|
+
font-size: 14px;
|
|
2296
2318
|
}
|
|
2297
|
-
.
|
|
2298
|
-
|
|
2319
|
+
.onboarding__progress {
|
|
2320
|
+
flex: 1;
|
|
2321
|
+
display: flex;
|
|
2322
|
+
align-items: center;
|
|
2323
|
+
gap: 10px;
|
|
2324
|
+
}
|
|
2325
|
+
.onboarding__track {
|
|
2326
|
+
flex: 1;
|
|
2327
|
+
max-width: 220px;
|
|
2328
|
+
height: 4px;
|
|
2329
|
+
border-radius: 2px;
|
|
2330
|
+
background: var(--hairline);
|
|
2331
|
+
overflow: hidden;
|
|
2332
|
+
}
|
|
2333
|
+
.onboarding__track i {
|
|
2334
|
+
display: block;
|
|
2335
|
+
height: 100%;
|
|
2336
|
+
background: var(--accent);
|
|
2337
|
+
border-radius: 2px;
|
|
2338
|
+
transition: width 0.3s ease;
|
|
2339
|
+
}
|
|
2340
|
+
.onboarding__column {
|
|
2341
|
+
max-width: 600px;
|
|
2342
|
+
margin: 0 auto;
|
|
2343
|
+
padding: 32px 24px 30vh;
|
|
2344
|
+
}
|
|
2345
|
+
.onboarding__lede {
|
|
2346
|
+
margin: 0 0 24px;
|
|
2347
|
+
padding-left: 30px;
|
|
2299
2348
|
color: var(--ink-2);
|
|
2300
|
-
font-size:
|
|
2349
|
+
font-size: 15px;
|
|
2350
|
+
line-height: 1.55;
|
|
2351
|
+
}
|
|
2352
|
+
.onboarding__thread {
|
|
2353
|
+
position: relative;
|
|
2354
|
+
margin: 0;
|
|
2355
|
+
padding: 0 0 0 30px;
|
|
2356
|
+
list-style: none;
|
|
2357
|
+
}
|
|
2358
|
+
/* The thread: one hairline the dots sit on. */
|
|
2359
|
+
.onboarding__thread::before {
|
|
2360
|
+
content: '';
|
|
2361
|
+
position: absolute;
|
|
2362
|
+
left: 6px;
|
|
2363
|
+
top: 10px;
|
|
2364
|
+
bottom: 10px;
|
|
2365
|
+
width: 1px;
|
|
2366
|
+
background: var(--hairline);
|
|
2367
|
+
}
|
|
2368
|
+
.onboarding__thread > li {
|
|
2369
|
+
position: relative;
|
|
2370
|
+
}
|
|
2371
|
+
.onboarding__dot {
|
|
2372
|
+
position: absolute;
|
|
2373
|
+
left: -28px;
|
|
2374
|
+
top: 10px;
|
|
2375
|
+
width: 9px;
|
|
2376
|
+
height: 9px;
|
|
2377
|
+
border-radius: 50%;
|
|
2378
|
+
background: var(--ink-3);
|
|
2379
|
+
box-shadow: 0 0 0 3px var(--page);
|
|
2380
|
+
}
|
|
2381
|
+
.onboarding__dot--open {
|
|
2382
|
+
left: -30px;
|
|
2383
|
+
top: 11px;
|
|
2384
|
+
width: 13px;
|
|
2385
|
+
height: 13px;
|
|
2386
|
+
background: var(--accent);
|
|
2387
|
+
}
|
|
2388
|
+
.onboarding__dot--looking,
|
|
2389
|
+
.onboarding__dot--later {
|
|
2390
|
+
left: -29px;
|
|
2391
|
+
top: 6px;
|
|
2392
|
+
width: 8px;
|
|
2393
|
+
height: 8px;
|
|
2394
|
+
background: var(--page);
|
|
2395
|
+
border: 1.5px solid var(--accent);
|
|
2396
|
+
}
|
|
2397
|
+
.onboarding__dot--later {
|
|
2398
|
+
border-color: var(--hairline);
|
|
2399
|
+
background: var(--hairline);
|
|
2400
|
+
}
|
|
2401
|
+
.onboarding__done {
|
|
2402
|
+
display: flex;
|
|
2403
|
+
align-items: baseline;
|
|
2404
|
+
gap: 12px;
|
|
2405
|
+
padding: 5px 0;
|
|
2406
|
+
color: var(--ink-2);
|
|
2407
|
+
font-size: 14px;
|
|
2301
2408
|
line-height: 1.5;
|
|
2302
2409
|
}
|
|
2303
|
-
.
|
|
2410
|
+
.onboarding__done[data-status='later'] {
|
|
2304
2411
|
color: var(--ink-3);
|
|
2305
2412
|
}
|
|
2306
|
-
.
|
|
2413
|
+
.onboarding__done[data-status='later'] .onboarding__dot {
|
|
2414
|
+
background: var(--page);
|
|
2415
|
+
border: 1.5px solid var(--ink-3);
|
|
2416
|
+
width: 6px;
|
|
2417
|
+
height: 6px;
|
|
2418
|
+
}
|
|
2419
|
+
.onboarding__summary {
|
|
2420
|
+
flex: 1;
|
|
2421
|
+
min-width: 0;
|
|
2422
|
+
}
|
|
2423
|
+
.onboarding__change {
|
|
2424
|
+
padding: 0;
|
|
2425
|
+
border: 0;
|
|
2426
|
+
background: none;
|
|
2427
|
+
color: var(--ink-3);
|
|
2428
|
+
font: inherit;
|
|
2429
|
+
font-size: 13px;
|
|
2430
|
+
cursor: pointer;
|
|
2431
|
+
}
|
|
2432
|
+
.onboarding__change:hover {
|
|
2433
|
+
color: var(--accent);
|
|
2434
|
+
}
|
|
2435
|
+
.onboarding__change:disabled {
|
|
2436
|
+
visibility: hidden;
|
|
2437
|
+
}
|
|
2438
|
+
.onboarding__locked {
|
|
2439
|
+
color: var(--ink-3);
|
|
2440
|
+
font-size: 12px;
|
|
2441
|
+
}
|
|
2442
|
+
|
|
2443
|
+
.onboarding__card {
|
|
2444
|
+
margin: 22px 0 28px;
|
|
2445
|
+
scroll-margin: 90px 0 120px;
|
|
2446
|
+
}
|
|
2447
|
+
.onboarding__card h2 {
|
|
2448
|
+
margin: 0 0 10px;
|
|
2449
|
+
font-size: 24px;
|
|
2450
|
+
line-height: 1.2;
|
|
2451
|
+
font-weight: 650;
|
|
2452
|
+
letter-spacing: -0.01em;
|
|
2453
|
+
text-wrap: balance;
|
|
2454
|
+
}
|
|
2455
|
+
.onboarding__card h2:focus {
|
|
2456
|
+
outline: none;
|
|
2457
|
+
}
|
|
2458
|
+
.onboarding__why {
|
|
2307
2459
|
display: flex;
|
|
2308
|
-
|
|
2309
|
-
|
|
2460
|
+
gap: 10px;
|
|
2461
|
+
margin: 0 0 18px;
|
|
2462
|
+
color: var(--ink-2);
|
|
2463
|
+
font-size: 14.5px;
|
|
2464
|
+
line-height: 1.5;
|
|
2310
2465
|
}
|
|
2311
|
-
|
|
2466
|
+
/*
|
|
2467
|
+
* What it said and what the user told it, in order, under the question: its
|
|
2468
|
+
* lines as the reason always reads, the user's set off to the right.
|
|
2469
|
+
*/
|
|
2470
|
+
.onboarding__talk {
|
|
2312
2471
|
display: grid;
|
|
2313
|
-
gap:
|
|
2472
|
+
gap: 10px;
|
|
2473
|
+
margin: 0 0 16px;
|
|
2474
|
+
padding: 0;
|
|
2475
|
+
list-style: none;
|
|
2476
|
+
}
|
|
2477
|
+
.onboarding__talk .onboarding__why {
|
|
2478
|
+
margin: 0;
|
|
2479
|
+
}
|
|
2480
|
+
.onboarding__said {
|
|
2481
|
+
justify-self: end;
|
|
2482
|
+
max-width: 85%;
|
|
2483
|
+
padding: 7px 12px;
|
|
2484
|
+
border-radius: 12px 12px 4px 12px;
|
|
2485
|
+
background: var(--accent-wash);
|
|
2486
|
+
color: var(--ink-1);
|
|
2487
|
+
font-size: 14.5px;
|
|
2488
|
+
line-height: 1.45;
|
|
2489
|
+
}
|
|
2490
|
+
.onboarding__sparkle {
|
|
2491
|
+
flex: none;
|
|
2492
|
+
margin-top: 3px;
|
|
2493
|
+
color: var(--accent);
|
|
2494
|
+
}
|
|
2495
|
+
.onboarding__looking {
|
|
2496
|
+
margin: 0 0 16px;
|
|
2497
|
+
font-size: 14px;
|
|
2498
|
+
color: var(--ink-2);
|
|
2499
|
+
}
|
|
2500
|
+
.onboarding__looking p,
|
|
2501
|
+
.onboarding__next p {
|
|
2502
|
+
margin: 0 0 4px;
|
|
2503
|
+
}
|
|
2504
|
+
.onboarding__steps {
|
|
2314
2505
|
margin: 0;
|
|
2315
2506
|
padding: 0;
|
|
2316
2507
|
list-style: none;
|
|
2508
|
+
font-size: 13px;
|
|
2509
|
+
color: var(--ink-3);
|
|
2510
|
+
}
|
|
2511
|
+
.onboarding__steps li {
|
|
2512
|
+
padding: 2px 0;
|
|
2513
|
+
overflow: hidden;
|
|
2514
|
+
text-overflow: ellipsis;
|
|
2515
|
+
white-space: nowrap;
|
|
2516
|
+
}
|
|
2517
|
+
.onboarding__steps li::before {
|
|
2518
|
+
content: '✓';
|
|
2519
|
+
display: inline-block;
|
|
2520
|
+
width: 17px;
|
|
2521
|
+
color: var(--good-ink);
|
|
2522
|
+
}
|
|
2523
|
+
.onboarding__steps li[data-state='failed']::before {
|
|
2524
|
+
content: '!';
|
|
2525
|
+
color: var(--serious);
|
|
2526
|
+
}
|
|
2527
|
+
.onboarding__steps li[data-state='running']::before {
|
|
2528
|
+
content: '';
|
|
2529
|
+
width: 8px;
|
|
2530
|
+
height: 8px;
|
|
2531
|
+
margin-right: 9px;
|
|
2532
|
+
border-radius: 50%;
|
|
2533
|
+
border: 1.5px solid var(--ink-3);
|
|
2534
|
+
border-top-color: transparent;
|
|
2535
|
+
animation: onboarding-spin 0.9s linear infinite;
|
|
2536
|
+
}
|
|
2537
|
+
@keyframes onboarding-spin {
|
|
2538
|
+
to {
|
|
2539
|
+
transform: rotate(360deg);
|
|
2540
|
+
}
|
|
2541
|
+
}
|
|
2542
|
+
@media (prefers-reduced-motion: reduce) {
|
|
2543
|
+
.onboarding__steps li[data-state='running']::before {
|
|
2544
|
+
animation: none;
|
|
2545
|
+
}
|
|
2546
|
+
.onboarding__track i {
|
|
2547
|
+
transition: none;
|
|
2548
|
+
}
|
|
2549
|
+
}
|
|
2550
|
+
.onboarding__note {
|
|
2551
|
+
margin: 0 0 14px;
|
|
2552
|
+
color: var(--ink-2);
|
|
2553
|
+
font-size: 13.5px;
|
|
2554
|
+
}
|
|
2555
|
+
.onboarding__problem {
|
|
2556
|
+
margin: 0 0 16px;
|
|
2557
|
+
padding: 2px 0 2px 12px;
|
|
2558
|
+
border-left: 3px solid var(--serious);
|
|
2559
|
+
color: var(--ink-2);
|
|
2560
|
+
font-size: 14px;
|
|
2561
|
+
line-height: 1.5;
|
|
2317
2562
|
}
|
|
2318
|
-
.
|
|
2563
|
+
.onboarding__problem p {
|
|
2564
|
+
margin: 0 0 8px;
|
|
2565
|
+
}
|
|
2566
|
+
.onboarding__links {
|
|
2567
|
+
display: flex;
|
|
2568
|
+
flex-wrap: wrap;
|
|
2569
|
+
gap: 16px;
|
|
2570
|
+
}
|
|
2571
|
+
.onboarding__links a {
|
|
2572
|
+
color: var(--accent);
|
|
2573
|
+
}
|
|
2574
|
+
.onboarding__problem[data-blocking='false'] {
|
|
2575
|
+
margin: 0;
|
|
2576
|
+
border-left-color: var(--hairline);
|
|
2577
|
+
font-size: 13.5px;
|
|
2578
|
+
}
|
|
2579
|
+
.onboarding__problem pre {
|
|
2580
|
+
margin: 0 0 10px;
|
|
2581
|
+
padding: 6px 10px;
|
|
2582
|
+
background: var(--surface-sunken);
|
|
2583
|
+
border-radius: var(--radius-sm);
|
|
2584
|
+
font-size: 13px;
|
|
2585
|
+
overflow-x: auto;
|
|
2586
|
+
}
|
|
2587
|
+
.onboarding__form {
|
|
2319
2588
|
display: grid;
|
|
2320
|
-
|
|
2321
|
-
|
|
2322
|
-
|
|
2589
|
+
gap: 16px;
|
|
2590
|
+
}
|
|
2591
|
+
.onboarding__choice {
|
|
2592
|
+
margin: 0;
|
|
2593
|
+
padding: 0;
|
|
2594
|
+
border: 0;
|
|
2595
|
+
min-width: 0;
|
|
2596
|
+
}
|
|
2597
|
+
.onboarding__legend {
|
|
2598
|
+
margin-bottom: 8px;
|
|
2599
|
+
padding: 0;
|
|
2600
|
+
color: var(--ink-3);
|
|
2323
2601
|
font-size: 13px;
|
|
2602
|
+
font-weight: 600;
|
|
2324
2603
|
}
|
|
2325
|
-
.
|
|
2326
|
-
|
|
2604
|
+
.onboarding__pills {
|
|
2605
|
+
display: flex;
|
|
2606
|
+
flex-wrap: wrap;
|
|
2607
|
+
gap: 8px;
|
|
2327
2608
|
}
|
|
2328
|
-
.
|
|
2329
|
-
|
|
2609
|
+
.onboarding__pill {
|
|
2610
|
+
padding: 6px 13px;
|
|
2611
|
+
border: 1px solid var(--border);
|
|
2612
|
+
border-radius: 999px;
|
|
2613
|
+
background: var(--surface);
|
|
2614
|
+
color: var(--ink-1);
|
|
2615
|
+
font: inherit;
|
|
2616
|
+
font-size: 14px;
|
|
2617
|
+
cursor: pointer;
|
|
2330
2618
|
}
|
|
2331
|
-
|
|
2332
|
-
|
|
2333
|
-
|
|
2334
|
-
|
|
2335
|
-
|
|
2619
|
+
.onboarding__pill:hover {
|
|
2620
|
+
border-color: var(--ink-3);
|
|
2621
|
+
}
|
|
2622
|
+
.onboarding__pill[aria-checked='true'] {
|
|
2623
|
+
border-color: var(--accent);
|
|
2624
|
+
background: var(--accent-wash);
|
|
2625
|
+
color: var(--accent);
|
|
2336
2626
|
font-weight: 600;
|
|
2337
|
-
|
|
2627
|
+
}
|
|
2628
|
+
.onboarding__list {
|
|
2629
|
+
background: var(--surface);
|
|
2630
|
+
border: 1px solid var(--border);
|
|
2631
|
+
border-radius: var(--radius);
|
|
2632
|
+
box-shadow: var(--shadow);
|
|
2633
|
+
overflow: hidden;
|
|
2634
|
+
}
|
|
2635
|
+
.onboarding__group + .onboarding__group,
|
|
2636
|
+
.onboarding__adder {
|
|
2637
|
+
border-top: 1px solid var(--hairline);
|
|
2638
|
+
}
|
|
2639
|
+
.onboarding__group-name {
|
|
2640
|
+
margin: 0;
|
|
2641
|
+
padding: 12px 16px 4px;
|
|
2338
2642
|
color: var(--ink-3);
|
|
2643
|
+
font-size: 12.5px;
|
|
2644
|
+
font-weight: 600;
|
|
2339
2645
|
}
|
|
2340
|
-
.
|
|
2341
|
-
|
|
2646
|
+
.onboarding__option {
|
|
2647
|
+
position: relative;
|
|
2648
|
+
display: flex;
|
|
2649
|
+
align-items: flex-start;
|
|
2650
|
+
gap: 12px;
|
|
2651
|
+
padding: 8px 16px;
|
|
2652
|
+
cursor: pointer;
|
|
2342
2653
|
}
|
|
2343
|
-
.
|
|
2344
|
-
|
|
2654
|
+
.onboarding__group > .onboarding__option:first-child {
|
|
2655
|
+
padding-top: 12px;
|
|
2656
|
+
}
|
|
2657
|
+
.onboarding__group > .onboarding__option:last-child {
|
|
2658
|
+
padding-bottom: 12px;
|
|
2345
2659
|
}
|
|
2346
|
-
.
|
|
2660
|
+
.onboarding__option:hover {
|
|
2661
|
+
background: var(--surface-sunken);
|
|
2662
|
+
}
|
|
2663
|
+
.onboarding__option input {
|
|
2664
|
+
position: absolute;
|
|
2665
|
+
opacity: 0;
|
|
2666
|
+
pointer-events: none;
|
|
2667
|
+
}
|
|
2668
|
+
.onboarding__box {
|
|
2669
|
+
flex: none;
|
|
2670
|
+
display: grid;
|
|
2671
|
+
place-items: center;
|
|
2672
|
+
width: 18px;
|
|
2673
|
+
height: 18px;
|
|
2674
|
+
margin-top: 1px;
|
|
2675
|
+
border: 1.5px solid var(--ink-3);
|
|
2676
|
+
border-radius: 5px;
|
|
2677
|
+
}
|
|
2678
|
+
.onboarding__box[data-kind='radio'] {
|
|
2679
|
+
border-radius: 50%;
|
|
2680
|
+
}
|
|
2681
|
+
.onboarding__option input:checked + .onboarding__box {
|
|
2682
|
+
border-color: var(--accent);
|
|
2683
|
+
background: var(--accent);
|
|
2684
|
+
}
|
|
2685
|
+
.onboarding__option input:checked + .onboarding__box[data-kind='check']::after {
|
|
2686
|
+
content: '';
|
|
2687
|
+
width: 9px;
|
|
2688
|
+
height: 5px;
|
|
2689
|
+
border-left: 2px solid #fff;
|
|
2690
|
+
border-bottom: 2px solid #fff;
|
|
2691
|
+
transform: translateY(-1px) rotate(-45deg);
|
|
2692
|
+
}
|
|
2693
|
+
.onboarding__option input:checked + .onboarding__box[data-kind='radio']::after {
|
|
2694
|
+
content: '';
|
|
2695
|
+
width: 6px;
|
|
2696
|
+
height: 6px;
|
|
2697
|
+
border-radius: 50%;
|
|
2698
|
+
background: #fff;
|
|
2699
|
+
}
|
|
2700
|
+
.onboarding__option input:focus-visible + .onboarding__box {
|
|
2701
|
+
outline: 2px solid var(--focus-ring);
|
|
2702
|
+
outline-offset: 2px;
|
|
2703
|
+
}
|
|
2704
|
+
.onboarding__option-text {
|
|
2705
|
+
display: flex;
|
|
2706
|
+
flex-direction: column;
|
|
2707
|
+
font-size: 15px;
|
|
2708
|
+
}
|
|
2709
|
+
.onboarding__option-text small,
|
|
2710
|
+
.onboarding__field small {
|
|
2711
|
+
color: var(--ink-3);
|
|
2712
|
+
font-size: 13px;
|
|
2713
|
+
}
|
|
2714
|
+
.onboarding__none {
|
|
2715
|
+
margin: 0;
|
|
2716
|
+
padding: 12px 16px;
|
|
2717
|
+
color: var(--ink-3);
|
|
2718
|
+
font-size: 14px;
|
|
2719
|
+
}
|
|
2720
|
+
.onboarding__adder {
|
|
2721
|
+
padding: 4px 16px;
|
|
2722
|
+
}
|
|
2723
|
+
.onboarding__add-button {
|
|
2724
|
+
padding: 8px 0;
|
|
2725
|
+
border: 0;
|
|
2726
|
+
background: none;
|
|
2347
2727
|
color: var(--accent);
|
|
2728
|
+
font: inherit;
|
|
2729
|
+
font-size: 14px;
|
|
2730
|
+
cursor: pointer;
|
|
2731
|
+
}
|
|
2732
|
+
.onboarding__pills .onboarding__add-button {
|
|
2733
|
+
padding: 6px 4px;
|
|
2348
2734
|
}
|
|
2349
|
-
.
|
|
2735
|
+
.onboarding__add {
|
|
2736
|
+
display: flex;
|
|
2737
|
+
gap: 8px;
|
|
2738
|
+
padding: 6px 0;
|
|
2739
|
+
}
|
|
2740
|
+
.onboarding__add input,
|
|
2741
|
+
.onboarding__field input,
|
|
2742
|
+
.onboarding__tell input {
|
|
2743
|
+
flex: 1;
|
|
2744
|
+
min-width: 0;
|
|
2745
|
+
height: 34px;
|
|
2746
|
+
padding: 0 10px;
|
|
2747
|
+
border: 1px solid var(--border);
|
|
2748
|
+
border-radius: var(--radius-sm);
|
|
2749
|
+
background: var(--surface);
|
|
2750
|
+
color: var(--ink-1);
|
|
2751
|
+
font: inherit;
|
|
2752
|
+
font-size: 14px;
|
|
2753
|
+
}
|
|
2754
|
+
.onboarding__fields {
|
|
2755
|
+
display: grid;
|
|
2756
|
+
gap: 14px;
|
|
2757
|
+
}
|
|
2758
|
+
.onboarding__field,
|
|
2759
|
+
.onboarding__field > label {
|
|
2760
|
+
display: grid;
|
|
2761
|
+
gap: 4px;
|
|
2762
|
+
}
|
|
2763
|
+
.onboarding__suggestions {
|
|
2764
|
+
display: grid;
|
|
2765
|
+
gap: 6px;
|
|
2766
|
+
margin: 4px 0 0;
|
|
2767
|
+
padding: 0;
|
|
2768
|
+
list-style: none;
|
|
2769
|
+
}
|
|
2770
|
+
.onboarding__suggestions button {
|
|
2771
|
+
display: grid;
|
|
2772
|
+
gap: 1px;
|
|
2773
|
+
width: 100%;
|
|
2774
|
+
padding: 8px 12px;
|
|
2775
|
+
border: 1px dashed var(--border);
|
|
2776
|
+
border-radius: var(--radius-sm);
|
|
2777
|
+
background: none;
|
|
2778
|
+
color: var(--ink-1);
|
|
2779
|
+
font: inherit;
|
|
2780
|
+
font-size: 14px;
|
|
2781
|
+
text-align: left;
|
|
2782
|
+
cursor: pointer;
|
|
2783
|
+
}
|
|
2784
|
+
.onboarding__suggestions button:hover,
|
|
2785
|
+
.onboarding__suggestions button[aria-pressed='true'] {
|
|
2786
|
+
border-style: solid;
|
|
2787
|
+
border-color: var(--accent);
|
|
2788
|
+
background: var(--accent-wash);
|
|
2789
|
+
}
|
|
2790
|
+
.onboarding__suggestions small {
|
|
2350
2791
|
color: var(--ink-3);
|
|
2792
|
+
font-size: 12.5px;
|
|
2351
2793
|
}
|
|
2352
|
-
|
|
2353
|
-
|
|
2794
|
+
/* Asked in place of the buttons, where the eye already is. */
|
|
2795
|
+
.onboarding__confirm {
|
|
2796
|
+
padding: 12px 14px;
|
|
2797
|
+
border-radius: var(--radius);
|
|
2798
|
+
background: var(--surface-sunken);
|
|
2799
|
+
}
|
|
2800
|
+
.onboarding__confirm p {
|
|
2801
|
+
flex-basis: 100%;
|
|
2802
|
+
margin: 0 0 4px;
|
|
2803
|
+
color: var(--ink-2);
|
|
2804
|
+
font-size: 14px;
|
|
2354
2805
|
}
|
|
2355
|
-
.
|
|
2356
|
-
|
|
2806
|
+
.onboarding__field-label {
|
|
2807
|
+
font-size: 13px;
|
|
2808
|
+
font-weight: 500;
|
|
2809
|
+
color: var(--ink-2);
|
|
2357
2810
|
}
|
|
2358
|
-
|
|
2359
|
-
.setup__body .setup__advanced p {
|
|
2811
|
+
.onboarding__error {
|
|
2360
2812
|
margin: 0;
|
|
2361
|
-
|
|
2362
|
-
|
|
2813
|
+
color: var(--critical);
|
|
2814
|
+
font-size: 13.5px;
|
|
2815
|
+
}
|
|
2816
|
+
.onboarding__actions {
|
|
2817
|
+
display: flex;
|
|
2818
|
+
flex-wrap: wrap;
|
|
2819
|
+
align-items: center;
|
|
2820
|
+
gap: 10px;
|
|
2821
|
+
}
|
|
2822
|
+
.onboarding .button {
|
|
2823
|
+
padding: 8px 16px;
|
|
2824
|
+
border-radius: 8px;
|
|
2825
|
+
font-size: 14px;
|
|
2826
|
+
font-weight: 550;
|
|
2363
2827
|
}
|
|
2364
|
-
.
|
|
2365
|
-
|
|
2828
|
+
.onboarding .onboarding__quiet {
|
|
2829
|
+
border-color: transparent;
|
|
2830
|
+
background: none;
|
|
2831
|
+
color: var(--ink-2);
|
|
2366
2832
|
}
|
|
2367
|
-
.
|
|
2833
|
+
.onboarding .onboarding__quiet:hover {
|
|
2834
|
+
color: var(--ink-1);
|
|
2835
|
+
}
|
|
2836
|
+
.onboarding__tell {
|
|
2368
2837
|
display: flex;
|
|
2369
|
-
|
|
2838
|
+
gap: 8px;
|
|
2839
|
+
margin: 0 0 18px;
|
|
2840
|
+
}
|
|
2841
|
+
.onboarding .onboarding__tell .button {
|
|
2842
|
+
padding: 6px 12px;
|
|
2843
|
+
font-weight: 500;
|
|
2844
|
+
}
|
|
2845
|
+
.onboarding__ahead {
|
|
2846
|
+
color: var(--ink-3);
|
|
2847
|
+
font-size: 14px;
|
|
2848
|
+
}
|
|
2849
|
+
.onboarding__next {
|
|
2850
|
+
position: relative;
|
|
2851
|
+
margin-bottom: 14px;
|
|
2852
|
+
color: var(--ink-2);
|
|
2853
|
+
}
|
|
2854
|
+
.onboarding__then {
|
|
2855
|
+
position: relative;
|
|
2856
|
+
margin: 0;
|
|
2857
|
+
}
|
|
2858
|
+
.onboarding__preview {
|
|
2859
|
+
margin: 0 0 18px;
|
|
2860
|
+
}
|
|
2861
|
+
.onboarding__preview > summary {
|
|
2862
|
+
cursor: pointer;
|
|
2863
|
+
color: var(--ink-2);
|
|
2864
|
+
font-size: 14px;
|
|
2865
|
+
}
|
|
2866
|
+
.onboarding__preview pre {
|
|
2867
|
+
max-height: 360px;
|
|
2868
|
+
margin: 10px 0 0;
|
|
2869
|
+
padding: 12px 14px;
|
|
2870
|
+
overflow: auto;
|
|
2871
|
+
background: var(--surface);
|
|
2872
|
+
border: 1px solid var(--border);
|
|
2873
|
+
border-radius: var(--radius-sm);
|
|
2874
|
+
font-size: 12.5px;
|
|
2875
|
+
line-height: 1.5;
|
|
2876
|
+
white-space: pre-wrap;
|
|
2877
|
+
}
|
|
2878
|
+
.onboarding__preview p {
|
|
2879
|
+
margin: 8px 0 0;
|
|
2880
|
+
color: var(--ink-2);
|
|
2881
|
+
font-size: 13.5px;
|
|
2370
2882
|
}
|
|
2371
2883
|
|
|
2372
2884
|
/* ---------- settings ---------- */
|
|
@@ -2416,19 +2928,16 @@ body[data-flyout='open'] .layout__side {
|
|
|
2416
2928
|
color: var(--serious);
|
|
2417
2929
|
font-size: 13px;
|
|
2418
2930
|
}
|
|
2419
|
-
.settings-card__more
|
|
2420
|
-
.setup__advanced {
|
|
2931
|
+
.settings-card__more {
|
|
2421
2932
|
margin-top: 6px;
|
|
2422
2933
|
}
|
|
2423
|
-
.settings-card__more > summary
|
|
2424
|
-
.setup__advanced > summary {
|
|
2934
|
+
.settings-card__more > summary {
|
|
2425
2935
|
cursor: pointer;
|
|
2426
2936
|
color: var(--ink-2);
|
|
2427
2937
|
font-size: 13px;
|
|
2428
2938
|
padding: 4px 0;
|
|
2429
2939
|
}
|
|
2430
|
-
.settings-card__more[open] > summary
|
|
2431
|
-
.setup__advanced[open] > summary {
|
|
2940
|
+
.settings-card__more[open] > summary {
|
|
2432
2941
|
margin-bottom: 10px;
|
|
2433
2942
|
}
|
|
2434
2943
|
|