@skillcdn/console 0.1.10 → 0.1.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.
Files changed (132) hide show
  1. package/README.md +4 -4
  2. package/dist/api.d.ts +6 -5
  3. package/dist/api.d.ts.map +1 -1
  4. package/dist/api.js +5 -4
  5. package/dist/api.js.map +1 -1
  6. package/dist/cli/cli.d.ts.map +1 -1
  7. package/dist/cli/cli.js +49 -9
  8. package/dist/cli/cli.js.map +1 -1
  9. package/dist/cli/format.d.ts +2 -0
  10. package/dist/cli/format.d.ts.map +1 -1
  11. package/dist/cli/format.js +7 -6
  12. package/dist/cli/format.js.map +1 -1
  13. package/dist/cli/help.d.ts.map +1 -1
  14. package/dist/cli/help.js +10 -9
  15. package/dist/cli/help.js.map +1 -1
  16. package/dist/client.d.ts +14 -5
  17. package/dist/client.d.ts.map +1 -1
  18. package/dist/client.js +13 -1
  19. package/dist/client.js.map +1 -1
  20. package/dist/components/board.d.ts +1 -4
  21. package/dist/components/board.d.ts.map +1 -1
  22. package/dist/components/board.js +5 -12
  23. package/dist/components/board.js.map +1 -1
  24. package/dist/components/calendar.d.ts +21 -1
  25. package/dist/components/calendar.d.ts.map +1 -1
  26. package/dist/components/calendar.js +67 -7
  27. package/dist/components/calendar.js.map +1 -1
  28. package/dist/components/decision-list.d.ts.map +1 -1
  29. package/dist/components/decision-list.js +11 -9
  30. package/dist/components/decision-list.js.map +1 -1
  31. package/dist/components/event-feed.d.ts.map +1 -1
  32. package/dist/components/event-feed.js +11 -7
  33. package/dist/components/event-feed.js.map +1 -1
  34. package/dist/components/paged.d.ts +14 -0
  35. package/dist/components/paged.d.ts.map +1 -0
  36. package/dist/components/paged.js +28 -0
  37. package/dist/components/paged.js.map +1 -0
  38. package/dist/components/projects.d.ts +22 -2
  39. package/dist/components/projects.d.ts.map +1 -1
  40. package/dist/components/projects.js +35 -7
  41. package/dist/components/projects.js.map +1 -1
  42. package/dist/components/runs.d.ts.map +1 -1
  43. package/dist/components/runs.js +2 -2
  44. package/dist/components/runs.js.map +1 -1
  45. package/dist/components/shell.d.ts +2 -1
  46. package/dist/components/shell.d.ts.map +1 -1
  47. package/dist/components/shell.js +1 -1
  48. package/dist/components/shell.js.map +1 -1
  49. package/dist/components/task-list.d.ts +1 -1
  50. package/dist/components/task-list.d.ts.map +1 -1
  51. package/dist/components/task-list.js +6 -4
  52. package/dist/components/task-list.js.map +1 -1
  53. package/dist/components/task-view.js +1 -1
  54. package/dist/components/task-view.js.map +1 -1
  55. package/dist/components/work.d.ts.map +1 -1
  56. package/dist/components/work.js +7 -3
  57. package/dist/components/work.js.map +1 -1
  58. package/dist/console.css +149 -2
  59. package/dist/console.d.ts.map +1 -1
  60. package/dist/console.js +34 -18
  61. package/dist/console.js.map +1 -1
  62. package/dist/data.d.ts +5 -2
  63. package/dist/data.d.ts.map +1 -1
  64. package/dist/data.js +15 -2
  65. package/dist/data.js.map +1 -1
  66. package/dist/i18n/en.d.ts +12 -6
  67. package/dist/i18n/en.d.ts.map +1 -1
  68. package/dist/i18n/en.js +12 -8
  69. package/dist/i18n/en.js.map +1 -1
  70. package/dist/i18n/ko.d.ts.map +1 -1
  71. package/dist/i18n/ko.js +12 -8
  72. package/dist/i18n/ko.js.map +1 -1
  73. package/dist/index.d.ts +3 -2
  74. package/dist/index.d.ts.map +1 -1
  75. package/dist/index.js +3 -2
  76. package/dist/index.js.map +1 -1
  77. package/dist/limits.d.ts +6 -0
  78. package/dist/limits.d.ts.map +1 -1
  79. package/dist/limits.js +6 -0
  80. package/dist/limits.js.map +1 -1
  81. package/dist/marks.d.ts +12 -0
  82. package/dist/marks.d.ts.map +1 -0
  83. package/dist/marks.js +31 -0
  84. package/dist/marks.js.map +1 -0
  85. package/dist/router.d.ts +4 -3
  86. package/dist/router.d.ts.map +1 -1
  87. package/dist/router.js +11 -5
  88. package/dist/router.js.map +1 -1
  89. package/dist/routes.d.ts +7 -0
  90. package/dist/routes.d.ts.map +1 -1
  91. package/dist/routes.js +8 -0
  92. package/dist/routes.js.map +1 -1
  93. package/dist/schemas.d.ts +123 -3
  94. package/dist/schemas.d.ts.map +1 -1
  95. package/dist/schemas.js +42 -10
  96. package/dist/schemas.js.map +1 -1
  97. package/dist/vocabulary.d.ts +10 -4
  98. package/dist/vocabulary.d.ts.map +1 -1
  99. package/dist/vocabulary.js +8 -3
  100. package/dist/vocabulary.js.map +1 -1
  101. package/docs/specs/cli.md +7 -5
  102. package/docs/specs/rest.md +18 -12
  103. package/package.json +1 -1
  104. package/skills/working-the-board/SKILL.md +1 -1
  105. package/src/api.ts +12 -0
  106. package/src/cli/cli.ts +51 -8
  107. package/src/cli/format.ts +8 -6
  108. package/src/cli/help.ts +10 -10
  109. package/src/client.ts +29 -6
  110. package/src/components/board.tsx +5 -38
  111. package/src/components/calendar.tsx +166 -54
  112. package/src/components/decision-list.tsx +38 -33
  113. package/src/components/event-feed.tsx +34 -27
  114. package/src/components/paged.tsx +39 -0
  115. package/src/components/projects.tsx +128 -10
  116. package/src/components/runs.tsx +7 -1
  117. package/src/components/shell.tsx +5 -2
  118. package/src/components/task-list.tsx +35 -32
  119. package/src/components/task-view.tsx +1 -1
  120. package/src/components/work.tsx +12 -2
  121. package/src/console.tsx +54 -20
  122. package/src/data.ts +20 -4
  123. package/src/i18n/en.ts +12 -8
  124. package/src/i18n/ko.ts +12 -8
  125. package/src/index.ts +4 -0
  126. package/src/limits.ts +6 -0
  127. package/src/marks.ts +40 -0
  128. package/src/router.ts +19 -7
  129. package/src/routes.ts +9 -0
  130. package/src/schemas.ts +48 -8
  131. package/src/styles/console.css +149 -2
  132. package/src/vocabulary.ts +14 -4
@@ -1197,6 +1197,7 @@ table {
1197
1197
  flex: 1 1 0;
1198
1198
  grid-auto-flow: column;
1199
1199
  grid-auto-columns: minmax(var(--sc-column-width), 1fr);
1200
+ grid-template-rows: minmax(0, 1fr);
1200
1201
  gap: var(--sc-space-3);
1201
1202
  min-height: 24rem;
1202
1203
  overflow-x: auto;
@@ -1209,6 +1210,8 @@ table {
1209
1210
  display: flex;
1210
1211
  flex-direction: column;
1211
1212
  min-height: 0;
1213
+ /* The body scrolls; the column clips, so that nothing of it reaches the board's own scrolling. */
1214
+ overflow: hidden;
1212
1215
  border-radius: var(--sc-radius-xl);
1213
1216
  scroll-snap-align: start;
1214
1217
  }
@@ -2575,15 +2578,89 @@ table {
2575
2578
  white-space: nowrap;
2576
2579
  }
2577
2580
 
2578
- .sc-calendar-task-over {
2581
+ .sc-calendar-over {
2579
2582
  color: var(--sc-color-text-faint);
2580
2583
  text-decoration: line-through;
2581
2584
  }
2582
2585
 
2583
- .sc-calendar-task-late {
2586
+ .sc-calendar-late {
2584
2587
  color: var(--sc-color-danger);
2585
2588
  }
2586
2589
 
2590
+ /* A task planned across days lies across them: a bar in a lane of its own, in its category's
2591
+ colour, reaching over the gap between the cells so that it reads as one. */
2592
+ .sc-calendar-lane,
2593
+ .sc-calendar-bar {
2594
+ display: flex;
2595
+ align-items: center;
2596
+ height: 1.125rem;
2597
+ margin-top: 2px;
2598
+ }
2599
+
2600
+ .sc-calendar-bar {
2601
+ margin-inline: calc(-1 * var(--sc-space-2) - 0.125rem - 1px);
2602
+ padding-inline: var(--sc-space-2);
2603
+ border-block: 1px solid color-mix(in srgb, var(--sc-category-line) 45%, transparent);
2604
+ background: var(--sc-category-fill);
2605
+ color: var(--sc-category-line);
2606
+ font-size: var(--sc-text-xs);
2607
+ line-height: 1;
2608
+ text-decoration: none;
2609
+ overflow: hidden;
2610
+ white-space: nowrap;
2611
+ }
2612
+
2613
+ .sc-calendar-bar:hover {
2614
+ filter: brightness(1.15);
2615
+ }
2616
+
2617
+ .sc-calendar-bar-begins {
2618
+ margin-left: 0;
2619
+ border-left: 1px solid color-mix(in srgb, var(--sc-category-line) 45%, transparent);
2620
+ border-start-start-radius: var(--sc-radius-full);
2621
+ border-end-start-radius: var(--sc-radius-full);
2622
+ }
2623
+
2624
+ .sc-calendar-bar-ends {
2625
+ margin-right: 0;
2626
+ border-right: 1px solid color-mix(in srgb, var(--sc-category-line) 45%, transparent);
2627
+ border-start-end-radius: var(--sc-radius-full);
2628
+ border-end-end-radius: var(--sc-radius-full);
2629
+ }
2630
+
2631
+ .sc-calendar-bar.sc-calendar-late {
2632
+ border-color: color-mix(in srgb, var(--sc-color-danger) 70%, transparent);
2633
+ color: var(--sc-color-danger);
2634
+ }
2635
+
2636
+ .sc-calendar-bar.sc-calendar-over {
2637
+ opacity: 0.55;
2638
+ }
2639
+
2640
+ .sc-calendar-legend {
2641
+ display: flex;
2642
+ flex-wrap: wrap;
2643
+ gap: var(--sc-space-1) var(--sc-space-4);
2644
+ margin: 0;
2645
+ color: var(--sc-color-text-muted);
2646
+ font-size: var(--sc-text-xs);
2647
+ }
2648
+
2649
+ .sc-calendar-legend div {
2650
+ display: flex;
2651
+ align-items: center;
2652
+ gap: var(--sc-space-1);
2653
+ }
2654
+
2655
+ .sc-calendar-legend dt {
2656
+ display: flex;
2657
+ align-items: center;
2658
+ }
2659
+
2660
+ .sc-calendar-legend dd {
2661
+ margin: 0;
2662
+ }
2663
+
2587
2664
  .sc-calendar-task-start {
2588
2665
  color: var(--sc-color-text-muted);
2589
2666
  }
@@ -2593,6 +2670,69 @@ table {
2593
2670
  color: var(--sc-color-text-faint);
2594
2671
  }
2595
2672
 
2673
+ /* The button under a list shown a page at a time. */
2674
+ .sc-show-more {
2675
+ margin-top: var(--sc-space-3);
2676
+ }
2677
+
2678
+ /* A project's mark: its symbol on its colour. */
2679
+ .sc-mark {
2680
+ display: inline-flex;
2681
+ flex: none;
2682
+ align-items: center;
2683
+ justify-content: center;
2684
+ border-radius: var(--sc-radius-sm);
2685
+ background: var(--sc-category-fill);
2686
+ color: var(--sc-category-line);
2687
+ font-weight: var(--sc-weight-bold);
2688
+ line-height: 1;
2689
+ vertical-align: middle;
2690
+ }
2691
+
2692
+ .sc-mark-sm {
2693
+ width: 1.125rem;
2694
+ height: 1.125rem;
2695
+ margin-right: var(--sc-space-1);
2696
+ font-size: 0.625rem;
2697
+ }
2698
+
2699
+ .sc-mark-md {
2700
+ width: 2rem;
2701
+ height: 2rem;
2702
+ border-radius: var(--sc-radius-md);
2703
+ font-size: var(--sc-text-sm);
2704
+ }
2705
+
2706
+ .sc-mark-lg {
2707
+ width: 3rem;
2708
+ height: 3rem;
2709
+ border-radius: var(--sc-radius-lg);
2710
+ font-size: var(--sc-text-xl);
2711
+ }
2712
+
2713
+ .sc-mark-row {
2714
+ align-items: end;
2715
+ }
2716
+
2717
+ /* A project's own image, in place of the symbol, filling the mark. */
2718
+ .sc-mark-pictured {
2719
+ padding: 0;
2720
+ overflow: hidden;
2721
+ background: var(--sc-color-bg-inset);
2722
+ }
2723
+
2724
+ .sc-mark-image {
2725
+ display: block;
2726
+ width: 100%;
2727
+ height: 100%;
2728
+ object-fit: cover;
2729
+ }
2730
+
2731
+ .sc-input-file {
2732
+ padding-block: calc(var(--sc-space-2) - 2px);
2733
+ font-size: var(--sc-text-sm);
2734
+ }
2735
+
2596
2736
  .sc-calendar-below {
2597
2737
  display: grid;
2598
2738
  align-items: start;
@@ -2921,6 +3061,13 @@ table {
2921
3061
  display: none;
2922
3062
  }
2923
3063
 
3064
+ .sc-calendar-lane,
3065
+ .sc-calendar-bar {
3066
+ height: 4px;
3067
+ padding: 0;
3068
+ border: 0;
3069
+ }
3070
+
2924
3071
  .sc-feed-item {
2925
3072
  grid-template-columns: 1fr;
2926
3073
  gap: var(--sc-space-1);
package/src/vocabulary.ts CHANGED
@@ -31,10 +31,10 @@ export const GOAL_STATES = ["planned", "active", "done", "dropped"] as const;
31
31
  export type GoalState = (typeof GOAL_STATES)[number];
32
32
 
33
33
  /**
34
- * The colours a category may be shown in: names, so that a custom console paints them in its
35
- * own tokens and no value an administrator typed reaches a stylesheet.
34
+ * The colours a category, or a project's mark, may be shown in: names, so that a custom console
35
+ * paints them in its own tokens and no value a person typed reaches a stylesheet.
36
36
  */
37
- export const CATEGORY_COLORS = [
37
+ export const COLOR_NAMES = [
38
38
  "gray",
39
39
  "blue",
40
40
  "green",
@@ -45,7 +45,16 @@ export const CATEGORY_COLORS = [
45
45
  "yellow",
46
46
  ] as const;
47
47
 
48
- export type CategoryColor = (typeof CATEGORY_COLORS)[number];
48
+ export type ColorName = (typeof COLOR_NAMES)[number];
49
+
50
+ /** The colours of the categories: the same names. */
51
+ export const CATEGORY_COLORS = COLOR_NAMES;
52
+
53
+ export type CategoryColor = ColorName;
54
+
55
+ /** The kinds of image a project's own mark may be: what a browser shows in place, and nothing that can run. */
56
+ export const PROJECT_ICON_TYPES = ["image/png", "image/jpeg", "image/gif", "image/webp"] as const;
57
+ export type ProjectIconType = (typeof PROJECT_ICON_TYPES)[number];
49
58
 
50
59
  /** The identity providers people may sign in through: the git host, and Google (Workspace). */
51
60
  export const PROVIDER_KEYS = ["gh", "google"] as const;
@@ -132,6 +141,7 @@ export const EVENT_KINDS = [
132
141
  "run.started",
133
142
  "run.reported",
134
143
  "run.handed_in",
144
+ "run.taken_over",
135
145
  "run.ended",
136
146
  "document.written",
137
147
  "document.archived",