@skillcdn/console 0.1.17 → 0.1.19

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 (154) hide show
  1. package/README.md +4 -4
  2. package/SKILLCDN.md +1 -1
  3. package/dist/api.d.ts +3 -2
  4. package/dist/api.d.ts.map +1 -1
  5. package/dist/api.js +2 -1
  6. package/dist/api.js.map +1 -1
  7. package/dist/cli/cli.d.ts +11 -1
  8. package/dist/cli/cli.d.ts.map +1 -1
  9. package/dist/cli/cli.js +496 -51
  10. package/dist/cli/cli.js.map +1 -1
  11. package/dist/cli/credentials.d.ts +102 -3
  12. package/dist/cli/credentials.d.ts.map +1 -1
  13. package/dist/cli/credentials.js +177 -8
  14. package/dist/cli/credentials.js.map +1 -1
  15. package/dist/cli/directory.d.ts +6 -0
  16. package/dist/cli/directory.d.ts.map +1 -1
  17. package/dist/cli/directory.js +37 -6
  18. package/dist/cli/directory.js.map +1 -1
  19. package/dist/cli/format.d.ts +11 -2
  20. package/dist/cli/format.d.ts.map +1 -1
  21. package/dist/cli/format.js +114 -5
  22. package/dist/cli/format.js.map +1 -1
  23. package/dist/cli/help.d.ts.map +1 -1
  24. package/dist/cli/help.js +49 -25
  25. package/dist/cli/help.js.map +1 -1
  26. package/dist/cli/install.d.ts +21 -0
  27. package/dist/cli/install.d.ts.map +1 -0
  28. package/dist/cli/install.js +87 -0
  29. package/dist/cli/install.js.map +1 -0
  30. package/dist/cli/main.js +22 -3
  31. package/dist/cli/main.js.map +1 -1
  32. package/dist/cli/notices.d.ts +13 -0
  33. package/dist/cli/notices.d.ts.map +1 -0
  34. package/dist/cli/notices.js +31 -0
  35. package/dist/cli/notices.js.map +1 -0
  36. package/dist/client.d.ts +36 -3
  37. package/dist/client.d.ts.map +1 -1
  38. package/dist/client.js +22 -4
  39. package/dist/client.js.map +1 -1
  40. package/dist/compat.d.ts +66 -0
  41. package/dist/compat.d.ts.map +1 -0
  42. package/dist/compat.js +115 -0
  43. package/dist/compat.js.map +1 -0
  44. package/dist/components/board.d.ts +9 -1
  45. package/dist/components/board.d.ts.map +1 -1
  46. package/dist/components/board.js +82 -5
  47. package/dist/components/board.js.map +1 -1
  48. package/dist/components/calendar.d.ts +3 -1
  49. package/dist/components/calendar.d.ts.map +1 -1
  50. package/dist/components/calendar.js +21 -2
  51. package/dist/components/calendar.js.map +1 -1
  52. package/dist/components/comments.d.ts.map +1 -1
  53. package/dist/components/comments.js +12 -4
  54. package/dist/components/comments.js.map +1 -1
  55. package/dist/components/event-feed.d.ts.map +1 -1
  56. package/dist/components/event-feed.js +4 -0
  57. package/dist/components/event-feed.js.map +1 -1
  58. package/dist/components/goals.d.ts +20 -2
  59. package/dist/components/goals.d.ts.map +1 -1
  60. package/dist/components/goals.js +50 -13
  61. package/dist/components/goals.js.map +1 -1
  62. package/dist/components/markdown.d.ts +6 -0
  63. package/dist/components/markdown.d.ts.map +1 -1
  64. package/dist/components/markdown.js +7 -0
  65. package/dist/components/markdown.js.map +1 -1
  66. package/dist/components/pictures.d.ts +68 -0
  67. package/dist/components/pictures.d.ts.map +1 -0
  68. package/dist/components/pictures.js +213 -0
  69. package/dist/components/pictures.js.map +1 -0
  70. package/dist/components/projects.d.ts +12 -0
  71. package/dist/components/projects.d.ts.map +1 -1
  72. package/dist/components/projects.js +15 -0
  73. package/dist/components/projects.js.map +1 -1
  74. package/dist/components/roadmap.d.ts +37 -0
  75. package/dist/components/roadmap.d.ts.map +1 -0
  76. package/dist/components/roadmap.js +76 -0
  77. package/dist/components/roadmap.js.map +1 -0
  78. package/dist/components/task-view.d.ts +3 -0
  79. package/dist/components/task-view.d.ts.map +1 -1
  80. package/dist/components/task-view.js +6 -4
  81. package/dist/components/task-view.js.map +1 -1
  82. package/dist/components/tokens.d.ts +2 -0
  83. package/dist/components/tokens.d.ts.map +1 -1
  84. package/dist/components/tokens.js +13 -3
  85. package/dist/components/tokens.js.map +1 -1
  86. package/dist/console.css +486 -3
  87. package/dist/console.d.ts.map +1 -1
  88. package/dist/console.js +132 -17
  89. package/dist/console.js.map +1 -1
  90. package/dist/data.d.ts +16 -1
  91. package/dist/data.d.ts.map +1 -1
  92. package/dist/data.js +48 -3
  93. package/dist/data.js.map +1 -1
  94. package/dist/i18n/en.d.ts +76 -0
  95. package/dist/i18n/en.d.ts.map +1 -1
  96. package/dist/i18n/en.js +74 -2
  97. package/dist/i18n/en.js.map +1 -1
  98. package/dist/i18n/ko.d.ts.map +1 -1
  99. package/dist/i18n/ko.js +74 -2
  100. package/dist/i18n/ko.js.map +1 -1
  101. package/dist/index.d.ts +6 -4
  102. package/dist/index.d.ts.map +1 -1
  103. package/dist/index.js +6 -4
  104. package/dist/index.js.map +1 -1
  105. package/dist/router.d.ts +31 -7
  106. package/dist/router.d.ts.map +1 -1
  107. package/dist/router.js +48 -8
  108. package/dist/router.js.map +1 -1
  109. package/dist/rules.js +5 -5
  110. package/dist/rules.js.map +1 -1
  111. package/dist/schemas.d.ts +200 -0
  112. package/dist/schemas.d.ts.map +1 -1
  113. package/dist/schemas.js +96 -0
  114. package/dist/schemas.js.map +1 -1
  115. package/dist/vocabulary.d.ts +2 -2
  116. package/dist/vocabulary.d.ts.map +1 -1
  117. package/dist/vocabulary.js +3 -0
  118. package/dist/vocabulary.js.map +1 -1
  119. package/docs/specs/cli.md +26 -15
  120. package/docs/specs/rest.md +31 -9
  121. package/package.json +3 -2
  122. package/skills/working-the-board/SKILL.md +11 -4
  123. package/src/api.ts +36 -0
  124. package/src/cli/cli.ts +616 -54
  125. package/src/cli/credentials.ts +276 -14
  126. package/src/cli/directory.ts +43 -6
  127. package/src/cli/format.ts +146 -5
  128. package/src/cli/help.ts +51 -25
  129. package/src/cli/install.ts +111 -0
  130. package/src/cli/main.ts +23 -3
  131. package/src/cli/notices.ts +48 -0
  132. package/src/client.ts +91 -6
  133. package/src/compat.ts +173 -0
  134. package/src/components/board.tsx +154 -8
  135. package/src/components/calendar.tsx +41 -1
  136. package/src/components/comments.tsx +20 -10
  137. package/src/components/event-feed.tsx +4 -0
  138. package/src/components/goals.tsx +234 -88
  139. package/src/components/markdown.tsx +19 -0
  140. package/src/components/pictures.tsx +389 -0
  141. package/src/components/projects.tsx +68 -0
  142. package/src/components/roadmap.tsx +242 -0
  143. package/src/components/task-view.tsx +43 -2
  144. package/src/components/tokens.tsx +38 -1
  145. package/src/console.tsx +278 -4
  146. package/src/data.ts +73 -2
  147. package/src/i18n/en.ts +77 -2
  148. package/src/i18n/ko.ts +77 -2
  149. package/src/index.ts +35 -0
  150. package/src/router.ts +70 -11
  151. package/src/rules.ts +5 -5
  152. package/src/schemas.ts +117 -0
  153. package/src/styles/console.css +486 -3
  154. package/src/vocabulary.ts +3 -0
@@ -2166,16 +2166,110 @@ table {
2166
2166
  font-size: var(--sc-text-sm);
2167
2167
  }
2168
2168
 
2169
- /* A picture in a comment is seen where it is, no taller than a screen's worth. */
2170
- .sc-comment-picture img,
2169
+ /* A picture in a comment is a thumbnail, no taller than a few lines, that opens large over the
2170
+ page; a picture that only comes over https stays where it is, as small. */
2171
+ .sc-picture-thumb {
2172
+ display: inline-block;
2173
+ padding: 0;
2174
+ border: 0;
2175
+ border-radius: var(--sc-radius-md);
2176
+ background: none;
2177
+ line-height: 0;
2178
+ cursor: zoom-in;
2179
+ }
2180
+
2181
+ .sc-picture-thumb:focus-visible {
2182
+ outline: 2px solid var(--sc-color-accent);
2183
+ outline-offset: 2px;
2184
+ }
2185
+
2186
+ .sc-picture-thumb img,
2171
2187
  .sc-comment .sc-prose img {
2172
2188
  display: block;
2189
+ width: auto;
2173
2190
  max-width: 100%;
2174
- max-height: 24rem;
2191
+ height: auto;
2192
+ max-height: 10rem;
2175
2193
  border: var(--sc-border);
2176
2194
  border-radius: var(--sc-radius-md);
2177
2195
  }
2178
2196
 
2197
+ .sc-prose .sc-picture-thumb {
2198
+ margin: var(--sc-space-2) 0;
2199
+ }
2200
+
2201
+ /* The picture large, over the page: a bar with its name and the ways to zoom and to close, the
2202
+ stage it moves on, and a hint. The page under it is dimmed and does not scroll. */
2203
+ .sc-overlay {
2204
+ position: fixed;
2205
+ z-index: 100;
2206
+ display: grid;
2207
+ grid-template-rows: auto minmax(0, 1fr) auto;
2208
+ inset: 0;
2209
+ background: color-mix(in srgb, var(--sc-color-bg) 90%, transparent);
2210
+ backdrop-filter: blur(12px);
2211
+ }
2212
+
2213
+ .sc-overlay-bar {
2214
+ display: flex;
2215
+ align-items: center;
2216
+ justify-content: space-between;
2217
+ gap: var(--sc-space-3);
2218
+ padding: var(--sc-space-3) var(--sc-space-4);
2219
+ }
2220
+
2221
+ .sc-overlay-name {
2222
+ min-width: 0;
2223
+ overflow: hidden;
2224
+ color: var(--sc-color-text);
2225
+ font-size: var(--sc-text-sm);
2226
+ text-overflow: ellipsis;
2227
+ white-space: nowrap;
2228
+ }
2229
+
2230
+ .sc-overlay-actions {
2231
+ display: flex;
2232
+ flex-shrink: 0;
2233
+ gap: var(--sc-space-1);
2234
+ }
2235
+
2236
+ .sc-overlay-stage {
2237
+ position: relative;
2238
+ display: grid;
2239
+ place-items: center;
2240
+ overflow: hidden;
2241
+ cursor: grab;
2242
+ touch-action: none;
2243
+ user-select: none;
2244
+ }
2245
+
2246
+ .sc-overlay-stage[data-dragging="true"] {
2247
+ cursor: grabbing;
2248
+ }
2249
+
2250
+ .sc-overlay-picture {
2251
+ width: auto;
2252
+ max-width: 100%;
2253
+ height: auto;
2254
+ max-height: 100%;
2255
+ transform-origin: center center;
2256
+ will-change: transform;
2257
+ }
2258
+
2259
+ .sc-overlay-hint {
2260
+ margin: 0;
2261
+ padding: var(--sc-space-2) var(--sc-space-4) var(--sc-space-3);
2262
+ color: var(--sc-color-text-muted);
2263
+ font-size: var(--sc-text-xs);
2264
+ text-align: center;
2265
+ }
2266
+
2267
+ @media (max-width: 40rem) {
2268
+ .sc-overlay-hint {
2269
+ display: none;
2270
+ }
2271
+ }
2272
+
2179
2273
  .sc-comment-files {
2180
2274
  display: grid;
2181
2275
  gap: var(--sc-space-2);
@@ -3476,3 +3570,392 @@ table {
3476
3570
  .sc-rules-fold[open] > summary {
3477
3571
  margin-bottom: var(--sc-space-3);
3478
3572
  }
3573
+
3574
+ /* The roadmap as months (ADR-0026): the months as columns, each goal a bar from its start to its target. */
3575
+ .sc-timeline {
3576
+ display: grid;
3577
+ gap: var(--sc-space-3);
3578
+ margin-bottom: var(--sc-space-6);
3579
+ }
3580
+
3581
+ .sc-timeline-head {
3582
+ display: flex;
3583
+ flex-wrap: wrap;
3584
+ align-items: center;
3585
+ justify-content: space-between;
3586
+ gap: var(--sc-space-2);
3587
+ }
3588
+
3589
+ .sc-timeline-title {
3590
+ margin: 0;
3591
+ font-size: var(--sc-text-base);
3592
+ font-weight: var(--sc-weight-medium);
3593
+ }
3594
+
3595
+ .sc-timeline-grid {
3596
+ display: grid;
3597
+ gap: 2px;
3598
+ overflow-x: auto;
3599
+ }
3600
+
3601
+ .sc-timeline-row {
3602
+ display: grid;
3603
+ grid-template-columns: minmax(8rem, 14rem) minmax(20rem, 1fr);
3604
+ align-items: center;
3605
+ gap: var(--sc-space-2);
3606
+ }
3607
+
3608
+ .sc-timeline-label {
3609
+ display: flex;
3610
+ flex-wrap: wrap;
3611
+ align-items: center;
3612
+ gap: var(--sc-space-2);
3613
+ min-width: 0;
3614
+ }
3615
+
3616
+ .sc-timeline-goal {
3617
+ color: var(--sc-color-text);
3618
+ font-size: var(--sc-text-sm);
3619
+ text-decoration: none;
3620
+ overflow-wrap: anywhere;
3621
+ }
3622
+
3623
+ .sc-timeline-goal:hover {
3624
+ color: var(--sc-color-accent);
3625
+ }
3626
+
3627
+ .sc-timeline-track {
3628
+ position: relative;
3629
+ display: flex;
3630
+ height: 1.75rem;
3631
+ }
3632
+
3633
+ .sc-timeline-months .sc-timeline-track {
3634
+ height: auto;
3635
+ }
3636
+
3637
+ .sc-timeline-month {
3638
+ flex: none;
3639
+ padding: var(--sc-space-1) var(--sc-space-2);
3640
+ border-left: var(--sc-border);
3641
+ color: var(--sc-color-text-muted);
3642
+ font-size: var(--sc-text-xs);
3643
+ white-space: nowrap;
3644
+ overflow: hidden;
3645
+ text-overflow: ellipsis;
3646
+ }
3647
+
3648
+ .sc-timeline-column {
3649
+ flex: none;
3650
+ height: 100%;
3651
+ border-left: var(--sc-border);
3652
+ background: var(--sc-color-sheet);
3653
+ }
3654
+
3655
+ .sc-timeline-today {
3656
+ position: absolute;
3657
+ top: 0;
3658
+ bottom: 0;
3659
+ width: 2px;
3660
+ margin-left: -1px;
3661
+ background: var(--sc-color-accent);
3662
+ opacity: 0.7;
3663
+ }
3664
+
3665
+ .sc-timeline-today-mark {
3666
+ top: auto;
3667
+ bottom: 0;
3668
+ height: var(--sc-space-2);
3669
+ }
3670
+
3671
+ .sc-timeline-bar {
3672
+ position: absolute;
3673
+ top: 0.25rem;
3674
+ bottom: 0.25rem;
3675
+ display: flex;
3676
+ align-items: center;
3677
+ overflow: hidden;
3678
+ border-block: 1px solid color-mix(in srgb, var(--sc-category-line) 45%, transparent);
3679
+ background: var(--sc-category-fill);
3680
+ color: var(--sc-category-line);
3681
+ font-size: var(--sc-text-xs);
3682
+ text-decoration: none;
3683
+ white-space: nowrap;
3684
+ }
3685
+
3686
+ .sc-timeline-bar:hover {
3687
+ background: color-mix(in srgb, var(--sc-category-fill), white 12%);
3688
+ }
3689
+
3690
+ .sc-timeline-bar.sc-timeline-bar-begins {
3691
+ border-left: 1px solid color-mix(in srgb, var(--sc-category-line) 45%, transparent);
3692
+ border-start-start-radius: var(--sc-radius-full);
3693
+ border-end-start-radius: var(--sc-radius-full);
3694
+ }
3695
+
3696
+ .sc-timeline-bar.sc-timeline-bar-ends {
3697
+ border-right: 1px solid color-mix(in srgb, var(--sc-category-line) 45%, transparent);
3698
+ border-start-end-radius: var(--sc-radius-full);
3699
+ border-end-end-radius: var(--sc-radius-full);
3700
+ }
3701
+
3702
+ .sc-timeline-fill {
3703
+ position: absolute;
3704
+ top: 0;
3705
+ bottom: 0;
3706
+ left: 0;
3707
+ background: color-mix(in srgb, var(--sc-category-line) 35%, transparent);
3708
+ }
3709
+
3710
+ .sc-timeline-words {
3711
+ position: relative;
3712
+ padding-inline: var(--sc-space-2);
3713
+ }
3714
+
3715
+ .sc-timeline-point {
3716
+ position: absolute;
3717
+ top: 50%;
3718
+ width: 0.75rem;
3719
+ height: 0.75rem;
3720
+ margin-left: -0.375rem;
3721
+ transform: translateY(-50%) rotate(45deg);
3722
+ border: 1px solid color-mix(in srgb, var(--sc-category-line) 60%, transparent);
3723
+ background: var(--sc-category-fill);
3724
+ }
3725
+
3726
+ .sc-goal-done .sc-timeline-bar,
3727
+ .sc-goal-done .sc-timeline-point {
3728
+ opacity: 0.6;
3729
+ }
3730
+
3731
+ .sc-goal-dropped .sc-timeline-bar,
3732
+ .sc-goal-dropped .sc-timeline-point {
3733
+ opacity: 0.4;
3734
+ }
3735
+
3736
+ .sc-timeline-undated {
3737
+ margin: 0;
3738
+ font-size: var(--sc-text-sm);
3739
+ }
3740
+
3741
+ .sc-goal-days {
3742
+ color: var(--sc-color-text-muted);
3743
+ font-size: var(--sc-text-xs);
3744
+ }
3745
+
3746
+ /* A goal marks its target day on the month: a flag before its title, in the colour of its category. */
3747
+ .sc-calendar-goal {
3748
+ display: flex;
3749
+ align-items: center;
3750
+ gap: var(--sc-space-1);
3751
+ margin-top: 2px;
3752
+ color: var(--sc-category-line, var(--sc-color-text));
3753
+ font-size: var(--sc-text-xs);
3754
+ font-weight: var(--sc-weight-medium);
3755
+ line-height: 1.2;
3756
+ text-decoration: none;
3757
+ }
3758
+
3759
+ .sc-calendar-goal:hover {
3760
+ color: var(--sc-color-accent);
3761
+ }
3762
+
3763
+ .sc-calendar-flag {
3764
+ display: inline-block;
3765
+ flex: none;
3766
+ width: 0.5rem;
3767
+ height: 0.5rem;
3768
+ transform: rotate(45deg);
3769
+ background: var(--sc-category-line, var(--sc-color-text-faint));
3770
+ }
3771
+
3772
+ @media (max-width: 40rem) {
3773
+ .sc-timeline-row {
3774
+ grid-template-columns: minmax(6rem, 8rem) minmax(16rem, 1fr);
3775
+ }
3776
+ }
3777
+
3778
+ /* A card is dragged to another column by its grip, which shows on the card under the pointer
3779
+ and always to a finger; the column under the dragged card says it would take it, and a ghost
3780
+ of the card follows the pointer. The keyboard keeps the select. */
3781
+ .sc-card {
3782
+ position: relative;
3783
+ }
3784
+
3785
+ .sc-card-grip {
3786
+ position: absolute;
3787
+ top: var(--sc-space-1);
3788
+ right: var(--sc-space-1);
3789
+ display: inline-flex;
3790
+ align-items: center;
3791
+ justify-content: center;
3792
+ width: 1.5rem;
3793
+ height: 1.5rem;
3794
+ padding: 0;
3795
+ border: 0;
3796
+ border-radius: var(--sc-radius-sm);
3797
+ background: none;
3798
+ color: var(--sc-color-text-faint);
3799
+ font-size: var(--sc-text-sm);
3800
+ letter-spacing: -0.15em;
3801
+ cursor: grab;
3802
+ opacity: 0;
3803
+ touch-action: none;
3804
+ transition: opacity var(--sc-transition);
3805
+ }
3806
+
3807
+ .sc-card:hover .sc-card-grip,
3808
+ .sc-card:focus-within .sc-card-grip,
3809
+ .sc-card.sc-card-dragging .sc-card-grip {
3810
+ opacity: 1;
3811
+ }
3812
+
3813
+ @media (pointer: coarse) {
3814
+ .sc-card-grip {
3815
+ opacity: 1;
3816
+ }
3817
+ }
3818
+
3819
+ .sc-card:has(.sc-card-grip) .sc-card-title {
3820
+ padding-right: 1.75rem;
3821
+ }
3822
+
3823
+ .sc-card-dragging {
3824
+ opacity: 0.5;
3825
+ }
3826
+
3827
+ .sc-board-dragging {
3828
+ user-select: none;
3829
+ }
3830
+
3831
+ .sc-column-over {
3832
+ outline: 2px solid var(--sc-color-accent);
3833
+ outline-offset: -2px;
3834
+ }
3835
+
3836
+ .sc-drag-ghost {
3837
+ position: fixed;
3838
+ top: 0;
3839
+ left: 0;
3840
+ z-index: 50;
3841
+ max-width: 18rem;
3842
+ padding: var(--sc-space-2) var(--sc-space-3);
3843
+ border: 1px solid var(--sc-color-accent);
3844
+ border-radius: var(--sc-radius-lg);
3845
+ background: var(--sc-color-bg-raised);
3846
+ box-shadow: var(--sc-glow);
3847
+ color: var(--sc-color-text);
3848
+ font-size: var(--sc-text-sm);
3849
+ pointer-events: none;
3850
+ }
3851
+
3852
+ /* A goal's page reads as the board does: the facts in a row at its head, then a switch between
3853
+ the views of its tasks, then the view, which takes the rest of the height as the board does. */
3854
+ .sc-goal-page {
3855
+ display: flex;
3856
+ flex: 1 1 0;
3857
+ flex-direction: column;
3858
+ gap: var(--sc-space-4);
3859
+ min-height: 0;
3860
+ }
3861
+
3862
+ .sc-goal-header {
3863
+ display: grid;
3864
+ gap: var(--sc-space-3);
3865
+ }
3866
+
3867
+ .sc-goal-progress {
3868
+ display: grid;
3869
+ grid-template-columns: minmax(0, 20rem) auto;
3870
+ align-items: center;
3871
+ gap: var(--sc-space-3);
3872
+ font-size: var(--sc-text-sm);
3873
+ }
3874
+
3875
+ .sc-facts-row {
3876
+ display: flex;
3877
+ flex-wrap: wrap;
3878
+ align-items: center;
3879
+ gap: var(--sc-space-2) var(--sc-space-5);
3880
+ margin: 0;
3881
+ font-size: var(--sc-text-sm);
3882
+ }
3883
+
3884
+ .sc-facts-row > div {
3885
+ display: flex;
3886
+ align-items: center;
3887
+ gap: var(--sc-space-2);
3888
+ }
3889
+
3890
+ .sc-facts-row dt {
3891
+ color: var(--sc-color-text-muted);
3892
+ }
3893
+
3894
+ .sc-facts-row dd {
3895
+ margin: 0;
3896
+ }
3897
+
3898
+ .sc-goal-about-summary {
3899
+ color: var(--sc-color-text-muted);
3900
+ font-size: var(--sc-text-sm);
3901
+ cursor: pointer;
3902
+ }
3903
+
3904
+ .sc-goal-about .sc-prose {
3905
+ max-width: var(--sc-width-prose);
3906
+ margin-top: var(--sc-space-3);
3907
+ }
3908
+
3909
+ .sc-views {
3910
+ display: flex;
3911
+ flex-wrap: wrap;
3912
+ gap: var(--sc-space-1);
3913
+ }
3914
+
3915
+ .sc-view {
3916
+ padding: var(--sc-space-1) var(--sc-space-3);
3917
+ border-radius: var(--sc-radius-full);
3918
+ color: var(--sc-color-text-muted);
3919
+ font-size: var(--sc-text-sm);
3920
+ text-decoration: none;
3921
+ }
3922
+
3923
+ .sc-view:hover {
3924
+ background: var(--sc-color-bg-inset);
3925
+ color: var(--sc-color-text);
3926
+ }
3927
+
3928
+ .sc-view-current {
3929
+ background: var(--sc-color-bg-inset);
3930
+ color: var(--sc-color-text);
3931
+ font-weight: var(--sc-weight-medium);
3932
+ }
3933
+
3934
+ .sc-goal-tasks-view {
3935
+ display: flex;
3936
+ flex: 1 1 0;
3937
+ flex-direction: column;
3938
+ min-height: 0;
3939
+ }
3940
+
3941
+ .sc-goal-view-list {
3942
+ display: block;
3943
+ }
3944
+
3945
+ /* The done and dropped columns lead to the archive (ADR-0029), beside their count. */
3946
+ .sc-column-meta {
3947
+ display: inline-flex;
3948
+ align-items: center;
3949
+ gap: var(--sc-space-2);
3950
+ }
3951
+
3952
+ .sc-column-archive {
3953
+ color: var(--sc-color-text-muted);
3954
+ font-size: var(--sc-text-xs);
3955
+ text-decoration: none;
3956
+ }
3957
+
3958
+ .sc-column-archive:hover {
3959
+ color: var(--sc-color-text);
3960
+ text-decoration: underline;
3961
+ }
package/src/vocabulary.ts CHANGED
@@ -127,6 +127,7 @@ export const SKILLS_STATUSES = [
127
127
  "indexing",
128
128
  "failed",
129
129
  "not_found",
130
+ "token_invalid",
130
131
  "unavailable",
131
132
  ] as const;
132
133
 
@@ -166,6 +167,8 @@ export const EVENT_KINDS = [
166
167
  "task.updated",
167
168
  "task.moved",
168
169
  "task.commented",
170
+ "task.archived",
171
+ "task.restored",
169
172
  "decision.raised",
170
173
  "decision.answered",
171
174
  "decision.updated",