taskchef 7.11.1 → 7.12.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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "taskchef",
3
- "version": "7.11.1",
3
+ "version": "7.12.0",
4
4
  "description": "Dispatch work from a data-only workspace to visible Codex project tasks.",
5
5
  "author": {
6
6
  "name": "Favo Yang",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "taskchef",
3
- "version": "7.11.1",
3
+ "version": "7.12.0",
4
4
  "description": "A non-blocking interactive dispatcher for visible Codex tasks.",
5
5
  "license": "MIT",
6
6
  "author": "Favo Yang",
@@ -29,12 +29,22 @@
29
29
 
30
30
  <main>
31
31
  <section class="toolbar" aria-label="Task filters">
32
- <label>
33
- Project
34
- <select id="project-filter">
35
- <option value="">All projects</option>
36
- </select>
37
- </label>
32
+ <div class="toolbar-primary">
33
+ <label>
34
+ Project
35
+ <select id="project-filter">
36
+ <option value="">All projects</option>
37
+ </select>
38
+ </label>
39
+ <label>
40
+ Updated
41
+ <select id="date-filter">
42
+ <option value="24h">Latest 24 hours</option>
43
+ <option value="7d">Latest 7 days</option>
44
+ <option value="all" selected>All time</option>
45
+ </select>
46
+ </label>
47
+ </div>
38
48
  <fieldset class="status-filter-fieldset">
39
49
  <legend>Status</legend>
40
50
  <div id="status-filter" class="status-filter-options">
@@ -60,14 +70,6 @@
60
70
  </label>
61
71
  </div>
62
72
  </fieldset>
63
- <label>
64
- Updated
65
- <select id="date-filter">
66
- <option value="24h">Latest 24 hours</option>
67
- <option value="7d">Latest 7 days</option>
68
- <option value="all" selected>All time</option>
69
- </select>
70
- </label>
71
73
  <p id="task-count" class="task-count" aria-live="polite"></p>
72
74
  </section>
73
75
 
@@ -62,15 +62,22 @@ h3 { margin-bottom: 8px; font-size: 0.84rem; letter-spacing: 0.08em; text-transf
62
62
  main { padding-block: 28px 80px; }
63
63
 
64
64
  .toolbar {
65
- display: flex;
66
- align-items: flex-end;
67
- gap: 16px;
65
+ display: grid;
66
+ gap: 12px;
68
67
  margin-bottom: 22px;
69
68
  }
70
69
 
70
+ .toolbar-primary {
71
+ display: grid;
72
+ grid-template-columns: repeat(2, minmax(180px, 240px));
73
+ align-items: end;
74
+ gap: 16px;
75
+ }
76
+
71
77
  label { display: grid; gap: 6px; color: var(--muted); font-size: 0.78rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; }
72
78
  select { min-width: 180px; padding: 9px 34px 9px 11px; border: 1px solid var(--border); border-radius: 7px; background: var(--surface); color: var(--text); }
73
- .status-filter-fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
79
+ .toolbar-primary select { width: 100%; }
80
+ .status-filter-fieldset { width: 100%; min-width: 0; margin: 0; padding: 0; border: 0; }
74
81
  .status-filter-fieldset legend { margin-bottom: 6px; padding: 0; color: var(--muted); font-size: 0.78rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; }
75
82
  .status-filter-options { display: flex; flex-wrap: wrap; gap: 6px; }
76
83
  .status-filter-option { position: relative; display: block; color: var(--text); font-size: 0.82rem; letter-spacing: 0; text-transform: none; cursor: pointer; }
@@ -79,7 +86,7 @@ select { min-width: 180px; padding: 9px 34px 9px 11px; border: 1px solid var(--b
79
86
  .status-filter-option:hover span { border-color: var(--accent); }
80
87
  .status-filter-option:has(input:checked) span { border-color: var(--accent); background: var(--accent); color: white; box-shadow: 0 1px 2px rgb(24 33 29 / 16%); }
81
88
  .status-filter-option:has(input:focus-visible) span { outline: 3px solid var(--accent); outline-offset: 3px; }
82
- .task-count { margin: 0 0 9px auto; color: var(--muted); font-size: 0.9rem; }
89
+ .task-count { justify-self: end; margin: 0; color: var(--muted); font-size: 0.9rem; }
83
90
 
84
91
  .task-list { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; }
85
92
  .task-card { padding: 20px 22px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface); box-shadow: 0 1px 0 rgb(0 0 0 / 2%); }
@@ -159,10 +166,10 @@ pre { max-height: 280px; margin: 0; padding: 14px; overflow: auto; border-radius
159
166
  @media (max-width: 650px) {
160
167
  .site-header { align-items: flex-start; padding-top: 32px; }
161
168
  .title-row { align-items: flex-start; }
162
- .toolbar { align-items: stretch; flex-direction: column; }
163
- .toolbar label, .toolbar select { width: 100%; }
169
+ .toolbar-primary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
170
+ .toolbar-primary label, .toolbar-primary select { width: 100%; min-width: 0; }
164
171
  .toolbar .status-filter-option { width: auto; }
165
- .task-count { margin: 0; }
172
+ .task-count { justify-self: start; }
166
173
  .task-heading { align-items: flex-start; }
167
174
  .task-footer { align-items: flex-start; flex-direction: column; }
168
175
  .task-open { align-self: flex-start; }
@@ -171,6 +178,10 @@ pre { max-height: 280px; margin: 0; padding: 14px; overflow: auto; border-radius
171
178
  .metadata dt { padding-bottom: 0; border-bottom: 0; }
172
179
  }
173
180
 
181
+ @media (max-width: 480px) {
182
+ .toolbar-primary { grid-template-columns: minmax(0, 1fr); }
183
+ }
184
+
174
185
  @media (prefers-color-scheme: dark) {
175
186
  :root {
176
187
  color-scheme: dark;