@tensor_1/tokens 2.26.1 → 2.26.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.26.1",
3
+ "version": "2.26.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": [
@@ -1,11 +1,18 @@
1
- /* uix popover — generic anchored surface via the native Popover API; animated with @starting-style. */
1
+ /* uix popover — generic anchored surface via the native Popover API; animated with @starting-style.
2
+ Enter/exit: fade + --uix-lift slide, always away from the anchor (the React Popover sets
3
+ data-placement, and data-uix-placing holds the first frame until it is placed). */
2
4
  @layer uix.components {
3
5
  .uix-popover { margin: 0; padding: var(--uix-space-2); background: var(--uix-surface-2); border: 1px solid var(--uix-border); border-radius: var(--uix-radius-md); box-shadow: var(--uix-shadow-popover); color: var(--uix-text); }
4
6
  [popover].uix-popover {
5
- opacity: 0; transform: translateY(calc(-1 * var(--uix-lift)));
7
+ --popover-from: translateY(calc(-1 * var(--uix-lift)));
8
+ opacity: 0; transform: var(--popover-from);
6
9
  transition: opacity var(--uix-dur-fast) var(--uix-ease-out), transform var(--uix-dur-fast) var(--uix-ease-out),
7
10
  overlay var(--uix-dur-fast) allow-discrete, display var(--uix-dur-fast) allow-discrete;
8
11
  }
12
+ [popover].uix-popover[data-placement^="top"] { --popover-from: translateY(var(--uix-lift)); }
13
+ [popover].uix-popover[data-placement^="left"] { --popover-from: translateX(var(--uix-lift)); }
14
+ [popover].uix-popover[data-placement^="right"] { --popover-from: translateX(calc(-1 * var(--uix-lift))); }
9
15
  [popover].uix-popover:popover-open { opacity: 1; transform: none; }
10
- @starting-style { [popover].uix-popover:popover-open { opacity: 0; transform: translateY(calc(-1 * var(--uix-lift))); } }
16
+ @starting-style { [popover].uix-popover:popover-open { opacity: 0; transform: var(--popover-from); } }
17
+ [popover].uix-popover[data-uix-placing]:popover-open { opacity: 0; transform: var(--popover-from); transition: none; }
11
18
  }
@@ -24,18 +24,19 @@
24
24
  .uix-reaction:disabled, .uix-reaction-add:disabled { opacity: .55; cursor: not-allowed; }
25
25
  .uix-reaction > span[aria-hidden] { line-height: inherit; }
26
26
 
27
- /* full picker (EmojiPicker, RTE-01): search, category jump bar, sectioned 8-column grid */
27
+ /* full picker (EmojiPicker, RTE-01): search, category jump bar, sectioned 8-column grid.
28
+ Fixed-height rows: one size loading, loaded, searching or failed, so it never re-places. */
28
29
  .uix-emoji-picker__anchor { display: inline-flex; }
29
30
  .uix-emoji-picker-popover { padding: var(--uix-space-2); }
30
31
  .uix-emoji-picker--full { display: flex; flex-direction: column; flex-wrap: nowrap; gap: var(--uix-space-2); width: 324px; max-width: calc(100vw - 32px); }
31
- .uix-emoji-picker__nav { display: flex; gap: var(--uix-space-0); overflow-x: auto; scrollbar-width: none; }
32
+ .uix-emoji-picker__nav { display: flex; flex: none; gap: var(--uix-space-0); height: 28px; overflow-x: auto; scrollbar-width: none; }
32
33
  .uix-emoji-picker__nav-btn {
33
34
  flex: none; width: 32px; height: 28px; padding: 0; border: 0; border-radius: var(--uix-radius-sm);
34
35
  background: transparent; font-size: var(--uix-text-body); cursor: pointer;
35
36
  }
36
37
  .uix-emoji-picker__nav-btn:hover { background: var(--uix-bg-hover); }
37
38
  .uix-emoji-picker__nav-btn:focus-visible { outline: 2px solid var(--uix-ring); outline-offset: -2px; }
38
- .uix-emoji-picker__grid { height: 264px; overflow-y: auto; overscroll-behavior: contain; scroll-padding-top: var(--uix-space-6); }
39
+ .uix-emoji-picker__grid { flex: none; height: 264px; overflow-y: auto; overscroll-behavior: contain; scroll-padding-top: var(--uix-space-6); }
39
40
  .uix-emoji-picker__section { content-visibility: auto; contain-intrinsic-size: auto 15rem; }
40
41
  .uix-emoji-picker__heading {
41
42
  position: sticky; top: 0; z-index: var(--uix-z-raised); padding: var(--uix-space-1) var(--uix-space-1);
@@ -48,4 +49,9 @@
48
49
  .uix-emoji-img { display: inline-block; width: 1.2em; height: 1.2em; vertical-align: -.2em; object-fit: contain; }
49
50
  .uix-emoji-picker__status { font-size: var(--uix-text-meta); color: var(--uix-text-muted); }
50
51
  .uix-emoji-picker__status:empty { display: none; }
52
+ /* inside the grid (React): adds no height, stays visible at the bottom */
53
+ .uix-emoji-picker__grid > .uix-emoji-picker__status {
54
+ position: sticky; bottom: 0; z-index: var(--uix-z-raised); margin: 0;
55
+ padding: var(--uix-space-2) var(--uix-space-1); background: var(--uix-surface-2);
56
+ }
51
57
  }