@skillcdn/console 0.1.18 → 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 (121) hide show
  1. package/README.md +1 -1
  2. package/SKILLCDN.md +1 -1
  3. package/dist/api.d.ts +1 -1
  4. package/dist/api.d.ts.map +1 -1
  5. package/dist/api.js +1 -1
  6. package/dist/api.js.map +1 -1
  7. package/dist/cli/cli.d.ts +1 -1
  8. package/dist/cli/cli.d.ts.map +1 -1
  9. package/dist/cli/cli.js +353 -39
  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 +10 -1
  20. package/dist/cli/format.d.ts.map +1 -1
  21. package/dist/cli/format.js +106 -2
  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 +42 -20
  25. package/dist/cli/help.js.map +1 -1
  26. package/dist/client.d.ts +21 -1
  27. package/dist/client.d.ts.map +1 -1
  28. package/dist/client.js +14 -1
  29. package/dist/client.js.map +1 -1
  30. package/dist/components/board.d.ts +9 -1
  31. package/dist/components/board.d.ts.map +1 -1
  32. package/dist/components/board.js +82 -5
  33. package/dist/components/board.js.map +1 -1
  34. package/dist/components/comments.d.ts.map +1 -1
  35. package/dist/components/comments.js +12 -4
  36. package/dist/components/comments.js.map +1 -1
  37. package/dist/components/event-feed.d.ts.map +1 -1
  38. package/dist/components/event-feed.js +4 -0
  39. package/dist/components/event-feed.js.map +1 -1
  40. package/dist/components/goals.d.ts +17 -1
  41. package/dist/components/goals.d.ts.map +1 -1
  42. package/dist/components/goals.js +34 -9
  43. package/dist/components/goals.js.map +1 -1
  44. package/dist/components/markdown.d.ts +6 -0
  45. package/dist/components/markdown.d.ts.map +1 -1
  46. package/dist/components/markdown.js +7 -0
  47. package/dist/components/markdown.js.map +1 -1
  48. package/dist/components/pictures.d.ts +68 -0
  49. package/dist/components/pictures.d.ts.map +1 -0
  50. package/dist/components/pictures.js +213 -0
  51. package/dist/components/pictures.js.map +1 -0
  52. package/dist/components/projects.d.ts +12 -0
  53. package/dist/components/projects.d.ts.map +1 -1
  54. package/dist/components/projects.js +15 -0
  55. package/dist/components/projects.js.map +1 -1
  56. package/dist/components/task-view.d.ts +3 -0
  57. package/dist/components/task-view.d.ts.map +1 -1
  58. package/dist/components/task-view.js +6 -4
  59. package/dist/components/task-view.js.map +1 -1
  60. package/dist/console.css +282 -3
  61. package/dist/console.d.ts.map +1 -1
  62. package/dist/console.js +124 -10
  63. package/dist/console.js.map +1 -1
  64. package/dist/data.d.ts +16 -1
  65. package/dist/data.d.ts.map +1 -1
  66. package/dist/data.js +47 -2
  67. package/dist/data.js.map +1 -1
  68. package/dist/i18n/en.d.ts +52 -0
  69. package/dist/i18n/en.d.ts.map +1 -1
  70. package/dist/i18n/en.js +50 -2
  71. package/dist/i18n/en.js.map +1 -1
  72. package/dist/i18n/ko.d.ts.map +1 -1
  73. package/dist/i18n/ko.js +50 -2
  74. package/dist/i18n/ko.js.map +1 -1
  75. package/dist/index.d.ts +5 -4
  76. package/dist/index.d.ts.map +1 -1
  77. package/dist/index.js +5 -4
  78. package/dist/index.js.map +1 -1
  79. package/dist/router.d.ts +25 -6
  80. package/dist/router.d.ts.map +1 -1
  81. package/dist/router.js +38 -7
  82. package/dist/router.js.map +1 -1
  83. package/dist/rules.js +5 -5
  84. package/dist/rules.js.map +1 -1
  85. package/dist/schemas.d.ts +158 -0
  86. package/dist/schemas.d.ts.map +1 -1
  87. package/dist/schemas.js +78 -0
  88. package/dist/schemas.js.map +1 -1
  89. package/dist/vocabulary.d.ts +2 -2
  90. package/dist/vocabulary.d.ts.map +1 -1
  91. package/dist/vocabulary.js +3 -0
  92. package/dist/vocabulary.js.map +1 -1
  93. package/docs/specs/cli.md +17 -9
  94. package/docs/specs/rest.md +22 -4
  95. package/package.json +1 -1
  96. package/skills/working-the-board/SKILL.md +10 -4
  97. package/src/api.ts +13 -0
  98. package/src/cli/cli.ts +441 -42
  99. package/src/cli/credentials.ts +276 -14
  100. package/src/cli/directory.ts +43 -6
  101. package/src/cli/format.ts +138 -2
  102. package/src/cli/help.ts +44 -20
  103. package/src/client.ts +60 -0
  104. package/src/components/board.tsx +154 -8
  105. package/src/components/comments.tsx +20 -10
  106. package/src/components/event-feed.tsx +4 -0
  107. package/src/components/goals.tsx +173 -106
  108. package/src/components/markdown.tsx +19 -0
  109. package/src/components/pictures.tsx +389 -0
  110. package/src/components/projects.tsx +68 -0
  111. package/src/components/task-view.tsx +43 -2
  112. package/src/console.tsx +259 -4
  113. package/src/data.ts +72 -1
  114. package/src/i18n/en.ts +53 -2
  115. package/src/i18n/ko.ts +53 -2
  116. package/src/index.ts +27 -0
  117. package/src/router.ts +57 -9
  118. package/src/rules.ts +5 -5
  119. package/src/schemas.ts +97 -0
  120. package/src/styles/console.css +282 -3
  121. 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);
@@ -3680,3 +3774,188 @@ table {
3680
3774
  grid-template-columns: minmax(6rem, 8rem) minmax(16rem, 1fr);
3681
3775
  }
3682
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",