@tensor_1/tokens 2.55.1 → 2.55.3

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.55.1",
3
+ "version": "2.55.3",
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": [
@@ -24,8 +24,11 @@
24
24
  .uix-peek[open]::backdrop { opacity: 1; transition-duration: var(--uix-dur-slow); }
25
25
  @starting-style { .uix-peek[open]::backdrop { opacity: 0; } }
26
26
 
27
- .uix-peek__header { display: flex; align-items: center; gap: var(--uix-space-3); padding: var(--uix-space-4) var(--uix-space-4); border-bottom: 1px solid var(--uix-border); }
28
- .uix-peek__nav { display: inline-flex; gap: var(--uix-space-1); }
27
+ /* Navigation and close share the first row. The record name gets the full
28
+ next row when navigation exists; hints follow it. Without navigation the
29
+ title stays beside close, so optional regions never leave empty rows. */
30
+ .uix-peek__header { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: var(--uix-space-2); padding: var(--uix-space-4) var(--uix-space-4); border-bottom: 1px solid var(--uix-border); }
31
+ .uix-peek__nav { grid-column: 1; grid-row: 1; display: inline-flex; gap: var(--uix-space-1); }
29
32
  .uix-peek__navbtn { width: 28px; height: 28px; display: grid; place-items: center; border: 1px solid var(--uix-border); background: var(--uix-surface); color: var(--uix-text); border-radius: var(--uix-radius-sm); cursor: pointer; }
30
33
  .uix-peek__navbtn:hover { background: var(--uix-bg-hover); }
31
34
  /* boundary nav uses aria-disabled (still focusable, so focus isn't stranded — UIX-A11Y-1);
@@ -34,12 +37,13 @@
34
37
  .uix-peek__navbtn[aria-disabled="true"]:hover { background: var(--uix-surface); }
35
38
  /* title is an <h2> for SR navigation (UIX-A11Y-1); inherits neutralize the base h2
36
39
  heading font/tracking/leading so it renders exactly like the old <div> */
37
- .uix-peek__title { font-size: var(--uix-text-h3); font-weight: 600; font-family: inherit; letter-spacing: inherit; line-height: inherit; }
40
+ .uix-peek__title { grid-column: 1; grid-row: 1; min-width: 0; overflow-wrap: anywhere; font-size: var(--uix-text-h3); font-weight: 600; font-family: inherit; letter-spacing: inherit; line-height: inherit; }
41
+ .uix-peek__header:has(.uix-peek__nav) .uix-peek__title { grid-column: 1 / -1; grid-row: 2; }
38
42
  .uix-peek__title a { color: var(--uix-link); }
39
- .uix-peek__close { margin-left: auto; border: 0; background: transparent; color: var(--uix-text-muted); cursor: pointer; width: 30px; height: 30px; display: grid; place-items: center; border-radius: var(--uix-radius-sm); }
43
+ .uix-peek__close { grid-column: 2; grid-row: 1; align-self: start; margin-left: auto; border: 0; background: transparent; color: var(--uix-text-muted); cursor: pointer; width: 30px; height: 30px; display: grid; place-items: center; border-radius: var(--uix-radius-sm); }
40
44
  .uix-peek__close:hover { background: var(--uix-bg-hover); color: var(--uix-text); }
41
45
  .uix-peek__body { padding: var(--uix-space-5); overflow-y: auto; flex: 1; }
42
- .uix-peek__hint { font-size: var(--uix-text-meta); color: var(--uix-text-muted); }
46
+ .uix-peek__hint { grid-column: 1 / -1; min-width: 0; white-space: normal; font-size: var(--uix-text-meta); color: var(--uix-text-muted); }
43
47
  .uix-peek__footer { display: flex; gap: var(--uix-space-2); padding: var(--uix-space-4) var(--uix-space-4); border-top: 1px solid var(--uix-border); }
44
48
 
45
49
  /* a table wired to open the peek (app.js sets data-uix-rowpeek): its rows read as clickable,
@@ -1,6 +1,6 @@
1
1
  /* uix toast / notification — depends only on --uix-* tokens. JS appends to .uix-toaster. */
2
2
  @layer uix.components {
3
- .uix-toaster { position: fixed; bottom: 16px; right: 16px; z-index: var(--uix-z-toast); display: flex; flex-direction: column; gap: var(--uix-space-2); width: 340px; max-width: calc(100vw - 32px); }
3
+ .uix-toaster { position: fixed; bottom: 16px; right: 16px; z-index: var(--uix-z-toast); display: flex; flex-direction: column; gap: var(--uix-space-2); width: 340px; max-width: calc(100vw - 32px); container-type: inline-size; }
4
4
  /* A manual popover inside the active modal is both above it and non-inert (HAR-2754).
5
5
  Reset only the browser's popover frame; toast styling and placement stay unchanged. */
6
6
  .uix-toaster[popover] { inset: auto var(--uix-space-4) var(--uix-space-4) auto; margin: 0; padding: 0; border: 0; background: transparent; color: inherit; overflow: visible; }
@@ -52,6 +52,18 @@
52
52
  .uix-toaster[data-position="top-center"] { --uix-toast-from: translateY(calc(-1 * var(--uix-space-4))); }
53
53
  .uix-toaster[data-position$="start"] { left: var(--uix-space-4); right: auto; }
54
54
  .uix-toaster[data-position$="center"] { left: 50%; right: auto; transform: translateX(-50%); }
55
+ /* Keep an action from squeezing a failure sentence into a column of single words.
56
+ The toaster's own width is the boundary, including embedded/narrow containers. */
57
+ @container (max-width: 24rem) {
58
+ .uix-toast { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; row-gap: var(--uix-space-2); }
59
+ .uix-toast__icon { grid-column: 1; grid-row: 1; }
60
+ .uix-toast__body { grid-column: 1 / -2; grid-row: 1; }
61
+ .uix-toast__icon ~ .uix-toast__body { grid-column: 2 / -2; }
62
+ .uix-toast__close { grid-column: -2; grid-row: 1; }
63
+ .uix-toast__action-slot { grid-column: 1 / -1; grid-row: 2; justify-self: start; min-width: 0; max-width: 100%; }
64
+ .uix-toast__icon ~ .uix-toast__action-slot { grid-column: 2 / -1; }
65
+ .uix-toast__action { max-width: 100%; white-space: normal; text-align: start; }
66
+ }
55
67
  }
56
68
 
57
69
  /* The in-app reduced-motion preference (HAR-1372, <html data-motion="reduce">) needs no rule here: toasts