@tensor_1/tokens 2.33.0 → 2.34.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tensor_1/tokens",
3
- "version": "2.33.0",
3
+ "version": "2.34.0",
4
4
  "description": "UIx v2 design tokens — the --uix-* contract for house products (Tensor, POSx, SHOPx). One DTCG source -> CSS variables, Tailwind theme, and typed TS constants.",
5
5
  "type": "module",
6
6
  "sideEffects": [
@@ -140,9 +140,9 @@
140
140
 
141
141
  .uix-scheduling-calendar__empty { grid-column:1 / -1; position:sticky; left:0; padding:var(--uix-space-3); border-right:1px solid var(--calendar-chrome-line); border-bottom:1px solid var(--calendar-chrome-line); background:var(--calendar-chrome-surface); color:var(--calendar-chrome-text-quiet); }
142
142
 
143
- .uix-scheduling-calendar__agenda ol { display:grid; gap:var(--uix-space-2); margin:0; padding:0; list-style:none; }
144
- .uix-scheduling-calendar__agenda li>button { width:100%; display:flex; align-items:center; justify-content:space-between; gap:var(--uix-space-3); padding:var(--uix-space-3); border:1px solid var(--calendar-chrome-line); border-radius:var(--uix-radius-md); background:var(--calendar-chrome-surface); color:var(--calendar-chrome-text); text-align:left; }
145
- .uix-scheduling-calendar__agenda li>button>span:first-child { flex:1 1 auto; display:grid; gap:var(--uix-space-1); min-width:0; } .uix-scheduling-calendar__agenda li>button>span:first-child>span { color:var(--calendar-chrome-text-quiet); font-size:var(--uix-text-meta); }
143
+ .uix-scheduling-calendar__agenda > ol { display:grid; gap:var(--uix-space-2); margin:0; padding:0; list-style:none; }
144
+ .uix-scheduling-calendar__agenda > ol > li > button { width:100%; display:flex; align-items:center; justify-content:space-between; gap:var(--uix-space-3); padding:var(--uix-space-3); border:1px solid var(--calendar-chrome-line); border-radius:var(--uix-radius-md); background:var(--calendar-chrome-surface); color:var(--calendar-chrome-text); text-align:left; }
145
+ .uix-scheduling-calendar__agenda > ol > li > button > span:first-child { flex:1 1 auto; display:grid; gap:var(--uix-space-1); min-width:0; } .uix-scheduling-calendar__agenda > ol > li > button > span:first-child > span { color:var(--calendar-chrome-text-quiet); font-size:var(--uix-text-meta); }
146
146
  .uix-scheduling-calendar__status { flex:none; color:var(--calendar-chrome-text-quiet); font-size:var(--uix-text-meta); }
147
147
 
148
148
  .uix-scheduling-calendar__legend { display:flex; flex-wrap:wrap; align-items:center; gap:var(--uix-space-2) var(--uix-space-3); font-size:var(--uix-text-meta); color:var(--calendar-chrome-text-quiet); }
@@ -156,6 +156,76 @@
156
156
  .uix-scheduling-calendar__legend > span[data-state="in-progress"]::before { border:0.1875rem solid var(--calendar-status-text); border-radius:50%; width:0; height:0; }
157
157
  .uix-scheduling-calendar__legend > span:is([data-state="conflicted"],[data-state="blackout-violation"])::before { border:0; border-radius:0; background:var(--calendar-marker-ink); clip-path:polygon(50% 0,100% 100%,0 100%); }
158
158
 
159
+ /* ── Agenda grouped by day (HAR-1520) ─────────────────────────────────────────────────────
160
+ The consumer builds the groups. A heading per day with its window notes, then the rows.
161
+ A long agenda is a flat run of fixed-height rows inside its own scroller. */
162
+ .uix-scheduling-calendar__agenda-group + .uix-scheduling-calendar__agenda-group { margin-top:var(--uix-space-4); }
163
+ .uix-scheduling-calendar__agenda-head { position:sticky; top:0; display:flex; flex-wrap:wrap; align-items:center; gap:var(--uix-space-1) var(--uix-space-3); padding:var(--uix-space-2); border-bottom:1px solid var(--calendar-chrome-line-strong); background:var(--calendar-chrome-surface-quiet); }
164
+ .uix-scheduling-calendar__agenda-heading { margin:0; font-size:var(--uix-text-meta); font-weight:600; }
165
+ .uix-scheduling-calendar__agenda-notes { display:flex; flex-wrap:wrap; gap:var(--uix-space-1); min-width:0; margin:0; padding:0; list-style:none; }
166
+ .uix-scheduling-calendar__agenda-notes > li { min-width:0; margin:0; }
167
+ /* a window note is the window's bar from the grids, at rest in a line of text */
168
+ .uix-scheduling-calendar__agenda-notes .uix-scheduling-calendar__window { height:var(--calendar-lane); max-width:100%; margin:0; }
169
+ .uix-scheduling-calendar__agenda-rows { margin:0; padding:0; list-style:none; }
170
+ .uix-scheduling-calendar__agenda-rows > li { margin:0; border-bottom:1px solid var(--calendar-chrome-line); }
171
+ /* a row scrolled to by the keyboard stops below the sticky heading, not behind it */
172
+ .uix-scheduling-calendar__agenda-group :is(.uix-scheduling-calendar__agenda-row,.uix-scheduling-calendar__agenda-more) { scroll-margin-top:var(--uix-scheduling-calendar-agenda-head,3rem); }
173
+ .uix-scheduling-calendar__agenda-row { display:flex; flex-wrap:wrap; align-items:baseline; gap:var(--uix-space-1) var(--uix-space-2); width:100%; min-width:0; padding:var(--uix-space-2) var(--uix-space-1); border:0; border-radius:var(--uix-radius-xs); background:transparent; color:var(--calendar-chrome-text); text-align:left; cursor:pointer; outline-offset:-2px; }
174
+ .uix-scheduling-calendar__agenda-row:hover { background:var(--calendar-chrome-surface-quiet); }
175
+ .uix-scheduling-calendar__agenda-row > .uix-scheduling-calendar__swatch { align-self:center; }
176
+ .uix-scheduling-calendar__agenda-time { flex:none; min-width:6.25rem; color:var(--calendar-chrome-text-quiet); font-size:var(--uix-text-meta); font-variant-numeric:tabular-nums; }
177
+ /* the title takes the whole row before it wraps; it is never cut short of the row width */
178
+ .uix-scheduling-calendar__agenda-main { flex:1 1 12rem; display:grid; gap:var(--calendar-gap); min-width:0; overflow-wrap:anywhere; }
179
+ .uix-scheduling-calendar__agenda-meta { color:var(--calendar-chrome-text-quiet); font-size:var(--uix-text-meta); }
180
+ .uix-scheduling-calendar__agenda-row > .uix-scheduling-calendar__markers { flex:0 1 auto; flex-wrap:wrap; gap:var(--uix-space-1) var(--uix-space-2); font-size:var(--uix-text-meta); }
181
+ .uix-scheduling-calendar__agenda-more,.uix-scheduling-calendar__agenda-continues { margin:0; padding:var(--uix-space-2) var(--uix-space-1); color:var(--calendar-chrome-text-quiet); font-size:var(--uix-text-meta); }
182
+ button.uix-scheduling-calendar__agenda-more { display:block; border:0; border-radius:var(--uix-radius-xs); background:transparent; color:var(--calendar-chrome-text); font-weight:600; text-align:left; text-decoration:underline; cursor:pointer; }
183
+ button.uix-scheduling-calendar__agenda-more:hover { background:var(--calendar-chrome-surface-quiet); }
184
+ .uix-scheduling-calendar__agenda--virtual { container:uix-scheduling-agenda / inline-size; max-height:min(70vh,40rem); overflow-y:auto; border:1px solid var(--calendar-chrome-line); border-radius:var(--uix-radius-sm); }
185
+ /* the mounted rows; its padding stands in for the rows above and below them */
186
+ .uix-scheduling-calendar__agenda-window { box-sizing:content-box; min-width:0; }
187
+ .uix-scheduling-calendar__agenda-vrow { display:flex; align-items:center; height:44px; padding:0 var(--uix-space-2); border-bottom:1px solid var(--calendar-chrome-line); overflow:hidden; }
188
+ .uix-scheduling-calendar__agenda-vrow > * { flex:1 1 auto; min-width:0; }
189
+ .uix-scheduling-calendar__agenda-vrow .uix-scheduling-calendar__agenda-head { position:static; padding:0; border:0; background:transparent; }
190
+ .uix-scheduling-calendar__agenda-vrow .uix-scheduling-calendar__agenda-head { flex-wrap:nowrap; }
191
+ .uix-scheduling-calendar__agenda-vrow .uix-scheduling-calendar__agenda-heading { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
192
+ /* a window note has a row of its own here: the bar from the grids, as wide as its words */
193
+ .uix-scheduling-calendar__agenda-vrow > .uix-scheduling-calendar__window { flex:0 1 auto; align-self:center; height:var(--calendar-lane); margin:0; }
194
+ .uix-scheduling-calendar__agenda-vrow .uix-scheduling-calendar__agenda-row { flex-wrap:nowrap; align-items:center; padding:0; white-space:nowrap; }
195
+ .uix-scheduling-calendar__agenda-vrow .uix-scheduling-calendar__agenda-time { flex:0 1 auto; overflow:hidden; text-overflow:ellipsis; }
196
+ /* the title keeps a readable width; the markers give way first, their labels cut with an ellipsis */
197
+ .uix-scheduling-calendar__agenda-vrow .uix-scheduling-calendar__agenda-main { flex:1 1 10rem; display:block; min-width:10rem; overflow:hidden; text-overflow:ellipsis; overflow-wrap:normal; }
198
+ .uix-scheduling-calendar__agenda-vrow .uix-scheduling-calendar__agenda-meta { margin-left:var(--uix-space-2); }
199
+ .uix-scheduling-calendar__agenda-vrow .uix-scheduling-calendar__agenda-row > .uix-scheduling-calendar__markers { flex:0 1 auto; flex-wrap:nowrap; min-width:0; overflow:hidden; }
200
+ .uix-scheduling-calendar__agenda-vrow .uix-scheduling-calendar__agenda-row > .uix-scheduling-calendar__markers > span { flex:0 1 auto; display:inline-flex; min-width:0.6875rem; overflow:hidden; }
201
+ .uix-scheduling-calendar__agenda-vrow .uix-scheduling-calendar__agenda-row .uix-scheduling-calendar__marker { flex:0 1 auto; min-width:0; }
202
+ .uix-scheduling-calendar__agenda-vrow .uix-scheduling-calendar__agenda-row .uix-scheduling-calendar__marker::before,.uix-scheduling-calendar__agenda-vrow .uix-scheduling-calendar__agenda-row .uix-scheduling-calendar__marker-icon { flex:none; }
203
+ .uix-scheduling-calendar__agenda-vrow .uix-scheduling-calendar__agenda-row > .uix-scheduling-calendar__status { flex:none; }
204
+ /* a narrow long agenda (the component measures it): taller rows of three lines — the title, the time, then markers and status */
205
+ .uix-scheduling-calendar__agenda--virtual[data-narrow] .uix-scheduling-calendar__agenda-vrow { height:64px; }
206
+ .uix-scheduling-calendar__agenda--virtual[data-narrow] .uix-scheduling-calendar__agenda-row { display:grid; grid-template-columns:auto minmax(0,1fr) auto; grid-template-rows:auto auto auto; align-content:center; gap:0 var(--uix-space-2); }
207
+ .uix-scheduling-calendar__agenda--virtual[data-narrow] .uix-scheduling-calendar__agenda-row > .uix-scheduling-calendar__swatch { grid-row:1 / span 3; }
208
+ .uix-scheduling-calendar__agenda--virtual[data-narrow] .uix-scheduling-calendar__agenda-main { grid-column:2 / -1; grid-row:1; min-width:0; }
209
+ /* a time that names two days may not fit: each end keeps half the line and is cut on its own, so both stay in sight */
210
+ .uix-scheduling-calendar__agenda--virtual[data-narrow] .uix-scheduling-calendar__agenda-time { grid-column:2 / -1; grid-row:2; display:flex; min-width:0; overflow:visible; white-space:pre; }
211
+ .uix-scheduling-calendar__agenda--virtual[data-narrow] .uix-scheduling-calendar__agenda-time-part { flex:0 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; }
212
+ .uix-scheduling-calendar__agenda--virtual[data-narrow] .uix-scheduling-calendar__agenda-row > .uix-scheduling-calendar__markers { grid-column:2; grid-row:3; justify-self:start; max-width:100%; }
213
+ .uix-scheduling-calendar__agenda--virtual[data-narrow] .uix-scheduling-calendar__agenda-row > .uix-scheduling-calendar__status { grid-column:3; grid-row:3; max-width:50cqi; overflow:hidden; text-overflow:ellipsis; }
214
+ .uix-scheduling-calendar__agenda-vrow :is(.uix-scheduling-calendar__agenda-more,.uix-scheduling-calendar__agenda-continues) { padding:0; }
215
+
216
+ /* ── Month, counts only (HAR-1520): a narrow screen gets the day, its count and its markers ── */
217
+ /* the head of a cell is three lines here, the date over the count over the markers; the lanes and the cell height follow from it */
218
+ .uix-scheduling-calendar__grid[data-density="counts"] { --calendar-head:4rem; }
219
+ .uix-scheduling-calendar__grid[data-density="counts"],.uix-scheduling-calendar__grid[data-density="counts"] .uix-scheduling-calendar__week { grid-template-columns:repeat(7,minmax(2.75rem,1fr)); }
220
+ .uix-scheduling-calendar__grid[data-density="counts"] .uix-scheduling-calendar__dayhead { display:grid; grid-template-columns:minmax(0,1fr) auto; grid-template-rows:1.5rem 1.25rem 1.25rem; align-items:center; gap:0 var(--calendar-gap); }
221
+ .uix-scheduling-calendar__grid[data-density="counts"] .uix-scheduling-calendar__dayhead > .uix-scheduling-calendar__date { grid-column:1 / -1; grid-row:1; width:100%; height:1.5rem; }
222
+ .uix-scheduling-calendar__grid[data-density="counts"] .uix-scheduling-calendar__day > .uix-scheduling-calendar__date { height:1.5rem; }
223
+ .uix-scheduling-calendar__grid[data-density="counts"] .uix-scheduling-calendar__dayhead > .uix-scheduling-calendar__badge { grid-column:1; grid-row:2; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
224
+ .uix-scheduling-calendar__grid[data-density="counts"] .uix-scheduling-calendar__dayhead > .uix-scheduling-calendar__count { grid-column:2; grid-row:2; display:inline-flex; align-items:center; }
225
+ /* a count of any length keeps its own line; the markers have the next one */
226
+ .uix-scheduling-calendar__grid[data-density="counts"] .uix-scheduling-calendar__dayhead > .uix-scheduling-calendar__markers { grid-column:1 / -1; grid-row:3; justify-self:end; max-width:100%; overflow:hidden; }
227
+ .uix-scheduling-calendar__grid[data-density="counts"] .uix-scheduling-calendar__weekday { padding-inline:var(--calendar-pad); overflow:hidden; }
228
+
159
229
  /* ── Week / Day time grid (HAR-1509) ─────────────────────────────────────────────────────────
160
230
  Four stacked rows share one column template: the day heads, the window strip, the top lane
161
231
  and the hours. A day column is as tall as its day: --uix-scheduling-calendar-hours is the