@tensor_1/tokens 2.14.2 → 2.15.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/build/css/components.css +1 -1
- package/build/css/styles.css +1 -1
- package/package.json +1 -1
- package/styles/components/breadcrumbs.css +1 -1
- package/styles/components/card.css +11 -0
- package/styles/components/combobox.css +3 -0
- package/styles/components/detail-layout.css +6 -0
- package/styles/components/form.css +5 -0
- package/styles/components/link.css +6 -0
- package/styles/components/modal.css +5 -0
- package/styles/components/sidebar.css +12 -3
- package/styles/components/states.css +10 -0
- package/styles/components/table-toolbar.css +3 -0
- package/styles/components/view-menu.css +5 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tensor_1/tokens",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.15.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": [
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/* uix breadcrumbs — depends only on --uix-* tokens. */
|
|
2
2
|
@layer uix.components {
|
|
3
|
-
.uix-breadcrumbs { display: flex; align-items: center; gap: var(--uix-space-2); flex-wrap: wrap; font-size: var(--uix-text-meta); color: var(--uix-text-muted); }
|
|
3
|
+
.uix-breadcrumbs { display: flex; align-items: center; gap: var(--uix-space-2); flex-wrap: wrap; margin: 0; padding: 0; list-style: none; font-size: var(--uix-text-meta); color: var(--uix-text-muted); }
|
|
4
4
|
.uix-breadcrumbs a { color: var(--uix-text-muted); text-decoration: none; }
|
|
5
5
|
/* already a quiet link by its own design — hover/focus parity with the quiet-link
|
|
6
6
|
contract in link.css, so the keyboard state matches the pointer state. */
|
|
@@ -6,4 +6,15 @@
|
|
|
6
6
|
.uix-card__subtitle { font-size: var(--uix-text-meta); color: var(--uix-text-muted); margin-top: var(--uix-space-1); }
|
|
7
7
|
.uix-card__body { padding: var(--uix-space-6); }
|
|
8
8
|
.uix-card__footer { padding: var(--uix-space-4) var(--uix-space-6); border-top: 1px solid var(--uix-border); display: flex; gap: var(--uix-space-2); justify-content: flex-end; }
|
|
9
|
+
.uix-card--interactive { display: block; color: inherit; text-decoration: none; cursor: pointer; transition: border-color var(--uix-dur-fast) var(--uix-ease-out), box-shadow var(--uix-dur-fast) var(--uix-ease-out), transform var(--uix-dur-fast) var(--uix-ease-out); }
|
|
10
|
+
.uix-card--interactive:is(:hover, :focus-visible) { border-color: var(--uix-border-strong); box-shadow: var(--uix-shadow-md); text-decoration: none; transform: translateY(-1px); }
|
|
11
|
+
.uix-card--interactive:focus-visible { outline: 2px solid var(--uix-ring); outline-offset: 2px; }
|
|
12
|
+
.uix-collapsible { border: 1px solid var(--uix-border); border-radius: var(--uix-radius-lg); background: var(--uix-surface); }
|
|
13
|
+
.uix-collapsible__summary { display: flex; align-items: center; justify-content: space-between; gap: var(--uix-space-3); padding: var(--uix-space-4) var(--uix-space-5); cursor: pointer; list-style: none; }
|
|
14
|
+
.uix-collapsible__summary::-webkit-details-marker { display: none; }
|
|
15
|
+
.uix-collapsible__title { color: var(--uix-text); font-weight: 600; }
|
|
16
|
+
.uix-collapsible__meta { margin-left: var(--uix-space-2); color: var(--uix-text-muted); font-size: var(--uix-text-meta); }
|
|
17
|
+
.uix-collapsible__chevron { transition: transform var(--uix-dur-fast) var(--uix-ease-out); }
|
|
18
|
+
.uix-collapsible[open] .uix-collapsible__chevron { transform: rotate(180deg); }
|
|
19
|
+
.uix-collapsible__body { padding: 0 var(--uix-space-5) var(--uix-space-5); }
|
|
9
20
|
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
/* uix combobox / listbox surface — depends only on --uix-* tokens. */
|
|
2
2
|
@layer uix.components {
|
|
3
3
|
.uix-combobox { position: relative; }
|
|
4
|
+
.uix-combobox > .uix-input { width: 100%; }
|
|
5
|
+
.uix-combobox__listbox { position: absolute; z-index: var(--uix-z-dropdown); inset-inline: 0; top: calc(100% + var(--uix-space-1)); max-height: 240px; overflow-y: auto; }
|
|
4
6
|
.uix-listbox {
|
|
5
7
|
list-style: none; margin: 0; padding: var(--uix-space-1); min-width: 200px;
|
|
6
8
|
background: var(--uix-surface-2); border: 1px solid var(--uix-border); border-radius: var(--uix-radius-md);
|
|
@@ -11,6 +13,7 @@
|
|
|
11
13
|
cursor: pointer; display: flex; align-items: center; gap: var(--uix-space-2);
|
|
12
14
|
}
|
|
13
15
|
.uix-listbox__option:hover, .uix-listbox__option[aria-selected="true"], .uix-listbox__option[data-active] { background: var(--uix-bg-hover); }
|
|
16
|
+
.uix-listbox__option[aria-disabled="true"] { cursor: not-allowed; opacity: .55; }
|
|
14
17
|
.uix-listbox__option[aria-selected="true"] { color: var(--uix-link); }
|
|
15
18
|
.uix-listbox__empty { padding: var(--uix-space-3); text-align: center; color: var(--uix-text-muted); font-size: var(--uix-text-meta); }
|
|
16
19
|
}
|
|
@@ -3,5 +3,11 @@
|
|
|
3
3
|
.uix-detail { display: grid; grid-template-columns: 1fr 280px; gap: var(--uix-space-5); align-items: start; }
|
|
4
4
|
.uix-detail__main { min-width: 0; display: flex; flex-direction: column; gap: var(--uix-space-4); }
|
|
5
5
|
.uix-detail__side { display: flex; flex-direction: column; gap: var(--uix-space-4); }
|
|
6
|
+
.uix-detail-page { display: flex; flex-direction: column; gap: var(--uix-space-5); }
|
|
7
|
+
.uix-detail-page__back { align-self: flex-start; }
|
|
8
|
+
.uix-detail-page__metrics { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: var(--uix-space-3); margin: 0; }
|
|
9
|
+
.uix-detail-page__metrics > div { padding: var(--uix-space-3) var(--uix-space-4); border: 1px solid var(--uix-border); border-radius: var(--uix-radius-md); background: var(--uix-surface); }
|
|
10
|
+
.uix-detail-page__metrics dt { color: var(--uix-text-muted); font-size: var(--uix-text-meta); }
|
|
11
|
+
.uix-detail-page__metrics dd { margin: var(--uix-space-1) 0 0; color: var(--uix-text); font-size: var(--uix-text-h3); font-weight: 600; }
|
|
6
12
|
@media (max-width: 820px) { .uix-detail { grid-template-columns: 1fr; } }
|
|
7
13
|
}
|
|
@@ -11,4 +11,9 @@
|
|
|
11
11
|
.uix-validation-summary strong { color: var(--uix-danger-text); }
|
|
12
12
|
.uix-validation-summary ul { margin: var(--uix-space-2) 0 0; padding-left: var(--uix-space-5); }
|
|
13
13
|
.uix-validation-summary a { color: var(--uix-danger-text); text-decoration: underline; }
|
|
14
|
+
.uix-toggle-row { display: flex; align-items: center; justify-content: space-between; gap: var(--uix-space-5); padding-block: var(--uix-space-3); }
|
|
15
|
+
.uix-toggle-row + .uix-toggle-row { border-top: 1px solid var(--uix-border); }
|
|
16
|
+
.uix-toggle-row__copy { min-width: 0; }
|
|
17
|
+
.uix-toggle-row__label { color: var(--uix-text); font-weight: 500; }
|
|
18
|
+
.uix-toggle-row__description { margin-top: var(--uix-space-1); color: var(--uix-text-muted); font-size: var(--uix-text-meta); }
|
|
14
19
|
}
|
|
@@ -96,3 +96,9 @@
|
|
|
96
96
|
link.css is imported last, so a blanket display here would flatten them. */
|
|
97
97
|
a:is(.uix-card, .uix-stat, .uix-kanban__card) { display: block; }
|
|
98
98
|
}
|
|
99
|
+
|
|
100
|
+
@layer uix.components {
|
|
101
|
+
.uix-related-links__title { margin: 0 0 var(--uix-space-3); font-size: var(--uix-text-h3); }
|
|
102
|
+
.uix-related-links__list { display: grid; gap: var(--uix-space-2); margin: 0; padding: 0; list-style: none; }
|
|
103
|
+
.uix-related-links__list li { display: flex; justify-content: space-between; gap: var(--uix-space-3); color: var(--uix-text-muted); font-size: var(--uix-text-meta); }
|
|
104
|
+
}
|
|
@@ -29,3 +29,8 @@
|
|
|
29
29
|
.uix-dialog__body { padding: var(--uix-space-5); color: var(--uix-text-hushed); }
|
|
30
30
|
.uix-dialog__footer { display: flex; gap: var(--uix-space-2); justify-content: flex-end; padding: var(--uix-space-4) var(--uix-space-5); border-top: 1px solid var(--uix-border); }
|
|
31
31
|
}
|
|
32
|
+
|
|
33
|
+
@layer uix.components {
|
|
34
|
+
.uix-prompt { display: grid; gap: var(--uix-space-3); }
|
|
35
|
+
.uix-prompt__actions { margin: var(--uix-space-3) calc(var(--uix-space-5) * -1) calc(var(--uix-space-5) * -1); }
|
|
36
|
+
}
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
.uix-navitem[aria-current="page"] .uix-navitem__badge { color: var(--uix-text-hushed); }
|
|
35
35
|
.uix-navitem__star { display: grid; place-items: center; width: 22px; height: 22px; border: 0; background: transparent; color: var(--uix-text-muted); cursor: pointer; border-radius: var(--uix-radius-xs); opacity: 0; transition: opacity var(--uix-dur-fast) var(--uix-ease-out); }
|
|
36
36
|
.uix-navitem__star svg { width: 15px; height: 15px; }
|
|
37
|
-
.uix-navitem:hover .uix-navitem__star { opacity: 1; }
|
|
37
|
+
.uix-navitem:hover .uix-navitem__star, .uix-navitem:focus-within .uix-navitem__star, .uix-navitem__star:focus-visible { opacity: 1; }
|
|
38
38
|
.uix-navitem__star[data-on] { opacity: 1; color: var(--uix-warning); }
|
|
39
39
|
.uix-navitem__star[data-on] svg { fill: currentColor; }
|
|
40
40
|
|
|
@@ -47,13 +47,13 @@
|
|
|
47
47
|
border: 0; background: transparent; cursor: pointer; color: inherit;
|
|
48
48
|
}
|
|
49
49
|
.uix-favourites__list { display: flex; flex-direction: column; gap: calc(var(--uix-space-1) / 4); list-style: none; margin: 0; padding: 0; }
|
|
50
|
-
.uix-favourites__empty { padding: calc(var(--uix-space-1) * 1.5) var(--uix-space-2); color:
|
|
50
|
+
.uix-favourites__empty { padding: calc(var(--uix-space-1) * 1.5) var(--uix-space-2); color: var(--uix-text-hushed); }
|
|
51
51
|
.uix-favourites__row { position: relative; display: flex; align-items: center; }
|
|
52
52
|
.uix-favourites__link { min-width: 0; flex: 1; }
|
|
53
53
|
.uix-favourites__menu-trigger {
|
|
54
54
|
margin-left: auto; display: inline-flex; height: 20px; width: 20px; flex-shrink: 0;
|
|
55
55
|
align-items: center; justify-content: center; border: 0; border-radius: calc(var(--uix-radius-xs) / 2);
|
|
56
|
-
background: transparent; cursor: pointer; color:
|
|
56
|
+
background: transparent; cursor: pointer; color: var(--uix-text-muted);
|
|
57
57
|
opacity: 0; transition: opacity var(--uix-dur-fast) var(--uix-ease-out);
|
|
58
58
|
}
|
|
59
59
|
.uix-favourites__row:hover .uix-favourites__menu-trigger,
|
|
@@ -96,7 +96,16 @@
|
|
|
96
96
|
.uix-sidebar[data-collapsed] .uix-sidebar__brand,
|
|
97
97
|
.uix-sidebar[data-collapsed] .uix-navgroup__chevron,
|
|
98
98
|
.uix-sidebar[data-collapsed] .uix-navgroup__panel { display: none; }
|
|
99
|
+
.uix-sidebar[data-nav="rail"] .uix-navitem__label,
|
|
100
|
+
.uix-sidebar[data-nav="rail"] .uix-navitem__badge,
|
|
101
|
+
.uix-sidebar[data-nav="rail"] .uix-navitem__star,
|
|
102
|
+
.uix-sidebar[data-nav="rail"] .uix-sidebar__eyebrow,
|
|
103
|
+
.uix-sidebar[data-nav="rail"] .uix-sidebar__brand,
|
|
104
|
+
.uix-sidebar[data-nav="rail"] .uix-navgroup__chevron,
|
|
105
|
+
.uix-sidebar[data-nav="rail"] .uix-navgroup__panel { display: none; }
|
|
99
106
|
/* center the icon-only rail; head keeps just the toggle, centered */
|
|
100
107
|
.uix-sidebar[data-collapsed] .uix-navitem { justify-content: center; padding: 0; gap: 0; }
|
|
101
108
|
.uix-sidebar[data-collapsed] .uix-sidebar__head { justify-content: center; padding-inline: 0; }
|
|
109
|
+
.uix-sidebar[data-nav="rail"] .uix-navitem { justify-content: center; padding: 0; gap: 0; }
|
|
110
|
+
.uix-sidebar[data-nav="rail"] .uix-sidebar__head { justify-content: center; padding-inline: 0; }
|
|
102
111
|
}
|
|
@@ -4,10 +4,20 @@
|
|
|
4
4
|
.uix-empty__icon { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%; background: var(--uix-bg-subtle); color: var(--uix-text-muted); }
|
|
5
5
|
.uix-empty__icon svg { width: 22px; height: 22px; }
|
|
6
6
|
.uix-empty__title { font-size: var(--uix-text-h3); font-weight: 600; color: var(--uix-text); }
|
|
7
|
+
.uix-empty > p { max-width: 52ch; margin: 0; }
|
|
8
|
+
.uix-empty--drawer { padding: var(--uix-space-5); }
|
|
9
|
+
.uix-empty--inline { align-items: flex-start; padding: var(--uix-space-4); text-align: left; }
|
|
10
|
+
.uix-empty--page, .uix-empty--full-page { min-height: min(55vh, 520px); justify-content: center; }
|
|
7
11
|
/* error tone — ErrorState reuses .uix-empty with a danger-toned icon */
|
|
8
12
|
.uix-empty__icon--danger { background: var(--uix-danger-bg); color: var(--uix-danger); }
|
|
13
|
+
.uix-empty__icon--warning { background: var(--uix-warning-bg); color: var(--uix-warning-text); }
|
|
14
|
+
.uix-stack--compact { gap: var(--uix-space-2); }
|
|
9
15
|
|
|
10
16
|
.uix-skeleton { background: linear-gradient(90deg, var(--uix-bg-subtle) 25%, var(--uix-bg-hover) 50%, var(--uix-bg-subtle) 75%); background-size: 200% 100%; animation: uix-shimmer 1.4s linear infinite; border-radius: var(--uix-radius-sm); }
|
|
11
17
|
.uix-skeleton--text { height: 12px; border-radius: var(--uix-radius-pill); }
|
|
12
18
|
.uix-skeleton--circle { border-radius: 50%; }
|
|
19
|
+
.uix-operation { display: grid; gap: var(--uix-space-3); padding: var(--uix-space-4); border: 1px solid var(--uix-border); border-radius: var(--uix-radius-md); background: var(--uix-surface); }
|
|
20
|
+
.uix-operation__head { display: flex; align-items: center; justify-content: space-between; gap: var(--uix-space-3); }
|
|
21
|
+
.uix-operation__description { color: var(--uix-text-muted); font-size: var(--uix-text-meta); }
|
|
22
|
+
.uix-operation__action { justify-self: start; }
|
|
13
23
|
}
|
|
@@ -17,4 +17,7 @@
|
|
|
17
17
|
.uix-chip:hover { border-color: var(--uix-border-strong); color: var(--uix-text); }
|
|
18
18
|
.uix-chip[data-on] { background: var(--uix-brand-muted); border-color: var(--uix-accent); color: var(--uix-accent); }
|
|
19
19
|
.uix-chip__count { font-variant-numeric: tabular-nums; opacity: .7; }
|
|
20
|
+
.uix-filter-popover { display: grid; gap: var(--uix-space-4); min-width: 260px; padding: var(--uix-space-4); }
|
|
21
|
+
.uix-filter-popover .uix-label { display: grid; gap: var(--uix-space-2); }
|
|
22
|
+
.uix-filter-popover__actions { display: flex; justify-content: flex-end; gap: var(--uix-space-2); }
|
|
20
23
|
}
|
|
@@ -11,4 +11,9 @@
|
|
|
11
11
|
.uix-view-menu .uix-segmented__option { flex: 1; text-align: center; }
|
|
12
12
|
.uix-view-menu__cols { display: flex; flex-direction: column; gap: var(--uix-space-1); max-height: 180px; overflow: auto; }
|
|
13
13
|
.uix-view-menu__cols .uix-menu__item { font-size: var(--uix-text-meta); }
|
|
14
|
+
.uix-saved-views__row { display: flex; align-items: center; }
|
|
15
|
+
.uix-saved-views__row > .uix-menu__item { min-width: 0; flex: 1; }
|
|
16
|
+
.uix-saved-views__pin { display: grid; place-items: center; width: 28px; height: 28px; border: 0; border-radius: var(--uix-radius-sm); background: transparent; color: var(--uix-text-muted); cursor: pointer; }
|
|
17
|
+
.uix-saved-views__pin:is(:hover, :focus-visible), .uix-saved-views__pin[data-on] { color: var(--uix-warning-text); background: var(--uix-bg-hover); }
|
|
18
|
+
.uix-saved-views__footer { border-top: 1px solid var(--uix-border); margin-top: var(--uix-space-1); padding: var(--uix-space-2); }
|
|
14
19
|
}
|