@tensor_1/tokens 2.4.0 → 2.5.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 +122 -25
- package/build/css/styles.css +129 -25
- package/build/css/tokens.css +7 -0
- package/build/ts/tokens.d.ts +1 -1
- package/build/ts/tokens.js +21 -0
- package/package.json +1 -1
- package/tokens/base/size.json +9 -1
package/build/css/components.css
CHANGED
|
@@ -601,7 +601,9 @@
|
|
|
601
601
|
.uix-pill--outline.uix-pill--muted { --tone-line: var(--uix-border); }
|
|
602
602
|
.uix-pill--outline.uix-pill--critical { color: var(--uix-danger-text); --tone-dot: var(--uix-danger); --tone-line: color-mix(in srgb, var(--uix-danger) 60%, transparent); }
|
|
603
603
|
}
|
|
604
|
-
/* uix data table — zebra, sticky header, sort, selection, density, pinned rows
|
|
604
|
+
/* uix data table — zebra, sticky header, sort, selection, density, pinned rows,
|
|
605
|
+
column sizing, bulk actions, row actions, expandable rows, inline edit, resize,
|
|
606
|
+
search highlight, responsive ladder + compare. Depends only on --uix-* tokens. */
|
|
605
607
|
@layer uix.components {
|
|
606
608
|
.uix-table-wrap { overflow: auto; max-height: 460px; border: 1px solid var(--uix-border); border-radius: var(--uix-radius-lg); background: var(--uix-surface); }
|
|
607
609
|
.uix-table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: var(--uix-text-body); }
|
|
@@ -616,6 +618,8 @@
|
|
|
616
618
|
.uix-table th[data-sort]::after { content: " ↕"; opacity: .35; }
|
|
617
619
|
.uix-table th[aria-sort="ascending"]::after { content: " ↑"; opacity: 1; color: var(--uix-accent); }
|
|
618
620
|
.uix-table th[aria-sort="descending"]::after { content: " ↓"; opacity: 1; color: var(--uix-accent); }
|
|
621
|
+
/* multi-column sort ordinal (⇧+click adds a secondary key) */
|
|
622
|
+
.uix-table th[data-sort-order]::before { content: attr(data-sort-order); display: inline-block; margin-right: var(--uix-space-1); font-size: var(--uix-text-eyebrow); font-variant-numeric: tabular-nums; color: var(--uix-accent); }
|
|
619
623
|
|
|
620
624
|
.uix-table td { padding: 0 var(--uix-space-4); height: var(--uix-row-h); border-bottom: 1px solid var(--uix-border); color: var(--uix-text); vertical-align: middle; }
|
|
621
625
|
.uix-table tbody tr { background: var(--uix-row); }
|
|
@@ -624,8 +628,6 @@
|
|
|
624
628
|
.uix-table tbody tr[data-pinned] { background: var(--uix-row-pinned-bg); }
|
|
625
629
|
.uix-table tbody tr[aria-selected="true"] { background: var(--uix-row-selected-bg); }
|
|
626
630
|
.uix-table tbody tr:hover { background: var(--uix-bg-hover); }
|
|
627
|
-
/* density tiers — standard is the default td height above; data-density overrides it.
|
|
628
|
-
.uix-table--compact kept as a back-compat alias. */
|
|
629
631
|
.uix-table[data-density="compact"] td, .uix-table--compact td { height: var(--uix-row-h-compact); }
|
|
630
632
|
.uix-table[data-density="comfortable"] td { height: var(--uix-row-h-comfortable); }
|
|
631
633
|
|
|
@@ -636,7 +638,7 @@
|
|
|
636
638
|
.uix-table__pin svg { width: 15px; height: 15px; }
|
|
637
639
|
.uix-table__pin[data-on] svg { fill: currentColor; }
|
|
638
640
|
|
|
639
|
-
/* frozen first column (opt-in via .uix-table--pinned-col)
|
|
641
|
+
/* frozen first column (opt-in via .uix-table--pinned-col) */
|
|
640
642
|
.uix-table--pinned-col th:first-child, .uix-table--pinned-col td:first-child { position: sticky; left: 0; z-index: var(--uix-z-raised); box-shadow: 1px 0 0 var(--uix-border); }
|
|
641
643
|
.uix-table--pinned-col thead th:first-child { z-index: var(--uix-z-sticky); background: var(--uix-surface); }
|
|
642
644
|
.uix-table--pinned-col tbody tr td:first-child { background: var(--uix-row); }
|
|
@@ -644,7 +646,120 @@
|
|
|
644
646
|
.uix-table--pinned-col.uix-table--no-zebra tbody tr td:first-child,
|
|
645
647
|
.uix-table--pinned-col.uix-table--no-zebra tbody tr:nth-child(even) td:first-child { background: var(--uix-row); }
|
|
646
648
|
.uix-table--pinned-col tbody tr[data-pinned] td:first-child { background: var(--uix-row-pinned-bg); }
|
|
649
|
+
.uix-table--pinned-col tbody tr[aria-selected="true"] td:first-child { background: var(--uix-row-selected-bg); }
|
|
647
650
|
.uix-table--pinned-col tbody tr:hover td:first-child { background: var(--uix-bg-hover); }
|
|
651
|
+
|
|
652
|
+
/* ── column sizing + cell behaviour (a shared vocabulary, not per-app px) ──────── */
|
|
653
|
+
.uix-table--fixed { table-layout: fixed; width: 100%; }
|
|
654
|
+
.uix-col--w-xs { width: var(--uix-col-w-xs); }
|
|
655
|
+
.uix-col--w-sm { width: var(--uix-col-w-sm); }
|
|
656
|
+
.uix-col--w-md { width: var(--uix-col-w-md); }
|
|
657
|
+
.uix-col--w-lg { width: var(--uix-col-w-lg); }
|
|
658
|
+
.uix-col--w-xl { width: var(--uix-col-w-xl); }
|
|
659
|
+
.uix-col--flex,
|
|
660
|
+
.uix-col--primary { width: auto; min-width: var(--uix-col-title-min); }
|
|
661
|
+
.uix-col--truncate { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
|
662
|
+
.uix-col--wrap { white-space: normal; overflow-wrap: anywhere; }
|
|
663
|
+
.uix-col--num { font-variant-numeric: tabular-nums; }
|
|
664
|
+
.uix-table th.uix-col--num, .uix-table td.uix-col--num { text-align: right; }
|
|
665
|
+
|
|
666
|
+
/* ── cell content vocabulary — a fixed set of renderers keeps tables consistent ── */
|
|
667
|
+
.uix-cell-strong { font-weight: 600; }
|
|
668
|
+
.uix-cell-sub { display: block; font-size: var(--uix-text-meta); color: var(--uix-text-muted); }
|
|
669
|
+
.uix-cell-mono { font-family: var(--uix-font-mono); font-size: var(--uix-text-meta); }
|
|
670
|
+
|
|
671
|
+
/* ── id cell — the canonical row click-through (row → peek, ↗ → full record) ───── */
|
|
672
|
+
.uix-id-cell__btn {
|
|
673
|
+
border: 0; background: transparent; cursor: pointer; padding: 0;
|
|
674
|
+
color: var(--uix-text); font: inherit;
|
|
675
|
+
display: inline-flex; align-items: center; gap: var(--uix-space-1); white-space: nowrap;
|
|
676
|
+
}
|
|
677
|
+
.uix-id-cell__btn:hover { color: var(--uix-accent); }
|
|
678
|
+
.uix-id-cell__btn:focus-visible { outline: 2px solid var(--uix-ring); outline-offset: 2px; border-radius: var(--uix-radius-xs); }
|
|
679
|
+
.uix-id-cell__arrow {
|
|
680
|
+
width: var(--uix-icon-sm); height: var(--uix-icon-sm); flex-shrink: 0; color: var(--uix-text-muted);
|
|
681
|
+
opacity: 0; transition: opacity var(--uix-dur-fast) var(--uix-ease-out);
|
|
682
|
+
}
|
|
683
|
+
.uix-table tbody tr:hover .uix-id-cell__arrow { opacity: 1; }
|
|
684
|
+
|
|
685
|
+
/* ── selection column + select-all ────────────────────────────────────────────── */
|
|
686
|
+
.uix-table th.uix-table__selcol, .uix-table td.uix-table__selcell { width: 44px; padding-left: var(--uix-space-3); padding-right: 0; text-align: center; }
|
|
687
|
+
|
|
688
|
+
/* contextual bulk-action bar — appears when >=1 row is selected */
|
|
689
|
+
.uix-bulkbar {
|
|
690
|
+
display: flex; align-items: center; gap: var(--uix-space-3);
|
|
691
|
+
padding: var(--uix-space-2) var(--uix-space-3); margin-bottom: var(--uix-space-3);
|
|
692
|
+
border: 1px solid var(--uix-accent); border-radius: var(--uix-radius-md);
|
|
693
|
+
background: var(--uix-brand-muted); color: var(--uix-text);
|
|
694
|
+
animation: uix-bulkbar-in var(--uix-dur) var(--uix-ease-out);
|
|
695
|
+
}
|
|
696
|
+
.uix-bulkbar[hidden] { display: none; }
|
|
697
|
+
.uix-bulkbar__count { font-size: var(--uix-text-meta); font-weight: 600; color: var(--uix-accent); font-variant-numeric: tabular-nums; }
|
|
698
|
+
.uix-bulkbar__spacer { flex: 1; }
|
|
699
|
+
@keyframes uix-bulkbar-in { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
|
|
700
|
+
@media (prefers-reduced-motion: reduce) { .uix-bulkbar { animation: none; } }
|
|
701
|
+
|
|
702
|
+
/* ── row hover actions + kebab ─────────────────────────────────────────────────── */
|
|
703
|
+
.uix-table__actions { width: 84px; text-align: right; white-space: nowrap; }
|
|
704
|
+
.uix-rowact { border: 0; background: transparent; color: var(--uix-text-muted); cursor: pointer; padding: var(--uix-space-1); border-radius: var(--uix-radius-sm); opacity: 0; transition: opacity var(--uix-dur-fast) var(--uix-ease-out), background-color var(--uix-dur-fast) var(--uix-ease-out); }
|
|
705
|
+
.uix-rowact svg { width: 16px; height: 16px; display: block; }
|
|
706
|
+
.uix-table tbody tr:hover .uix-rowact, .uix-rowact:focus-visible, .uix-rowact[aria-expanded="true"] { opacity: 1; }
|
|
707
|
+
.uix-rowact:hover { background: var(--uix-bg-active); color: var(--uix-text); }
|
|
708
|
+
|
|
709
|
+
/* ── expandable inline row ─────────────────────────────────────────────────────── */
|
|
710
|
+
.uix-table__expand { border: 0; background: transparent; cursor: pointer; color: var(--uix-text-muted); padding: var(--uix-space-1); border-radius: var(--uix-radius-xs); display: inline-grid; place-items: center; }
|
|
711
|
+
.uix-table__expand svg { width: 16px; height: 16px; transition: transform var(--uix-dur-fast) var(--uix-ease-out); }
|
|
712
|
+
.uix-table__expand[aria-expanded="true"] svg { transform: rotate(90deg); }
|
|
713
|
+
.uix-table__expand:hover { background: var(--uix-bg-active); color: var(--uix-text); }
|
|
714
|
+
tr.uix-table__detail > td { background: var(--uix-bg-subtle); padding: 0 var(--uix-space-4); }
|
|
715
|
+
.uix-table__detail-inner { padding: var(--uix-space-4) var(--uix-space-1) var(--uix-space-5); display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: var(--uix-space-4) var(--uix-space-7); }
|
|
716
|
+
.uix-kv { font-size: var(--uix-text-meta); }
|
|
717
|
+
.uix-kv__k { color: var(--uix-text-muted); margin-bottom: var(--uix-space-1); }
|
|
718
|
+
.uix-kv__v { color: var(--uix-text); }
|
|
719
|
+
@media (prefers-reduced-motion: reduce) { .uix-table__expand svg { transition: none; } }
|
|
720
|
+
|
|
721
|
+
/* ── inline cell edit ──────────────────────────────────────────────────────────── */
|
|
722
|
+
.uix-cell-edit { display: inline-flex; align-items: center; gap: var(--uix-space-2); cursor: text; border-radius: var(--uix-radius-sm); padding: var(--uix-space-1) var(--uix-space-2); margin: calc(-1 * var(--uix-space-1)) calc(-1 * var(--uix-space-2)); transition: background-color var(--uix-dur-fast) var(--uix-ease-out), box-shadow var(--uix-dur-fast) var(--uix-ease-out); }
|
|
723
|
+
.uix-cell-edit:hover { background: var(--uix-bg-active); }
|
|
724
|
+
.uix-cell-edit__pencil { width: 13px; height: 13px; color: var(--uix-text-muted); opacity: 0; transition: opacity var(--uix-dur-fast) var(--uix-ease-out); }
|
|
725
|
+
.uix-table tbody tr:hover .uix-cell-edit__pencil { opacity: 1; }
|
|
726
|
+
.uix-cell-edit[data-editing] { background: var(--uix-surface); box-shadow: 0 0 0 2px var(--uix-ring); cursor: default; }
|
|
727
|
+
.uix-cell-edit__ok { color: var(--uix-success); width: 14px; height: 14px; opacity: 0; transition: opacity var(--uix-dur-fast) var(--uix-ease-out); }
|
|
728
|
+
.uix-cell-edit[data-saved] .uix-cell-edit__ok { opacity: 1; }
|
|
729
|
+
.uix-cell-edit input, .uix-cell-edit select { border: 0; background: transparent; font: inherit; color: inherit; outline: none; }
|
|
730
|
+
|
|
731
|
+
/* ── column resize grip (drag the header's right edge) ─────────────────────────── */
|
|
732
|
+
.uix-table__resize { position: absolute; top: 0; right: -3px; width: 8px; height: 100%; cursor: col-resize; z-index: var(--uix-z-raised); user-select: none; touch-action: none; }
|
|
733
|
+
.uix-table__resize::after { content: ""; position: absolute; top: 25%; right: 3px; width: 2px; height: 50%; background: transparent; border-radius: var(--uix-radius-pill); transition: background-color var(--uix-dur-fast) var(--uix-ease-out); }
|
|
734
|
+
.uix-table thead th:hover .uix-table__resize::after, .uix-table__resize[data-drag]::after { background: var(--uix-accent); }
|
|
735
|
+
|
|
736
|
+
/* ── search match highlight ────────────────────────────────────────────────────── */
|
|
737
|
+
.uix-mark { background: var(--uix-warning-bg); color: var(--uix-text); border-radius: var(--uix-radius-xs); padding: 0 0.15em; box-shadow: inset 0 -1px 0 color-mix(in srgb, var(--uix-warning) 60%, transparent); }
|
|
738
|
+
|
|
739
|
+
/* ── responsive ladder — priority-column drop, then card transform ─────────────── */
|
|
740
|
+
.uix-table--priority th[data-priority="low"], .uix-table--priority td[data-priority="low"] { display: none; }
|
|
741
|
+
.uix-table--priority-mid th[data-priority="low"], .uix-table--priority-mid td[data-priority="low"],
|
|
742
|
+
.uix-table--priority-mid th[data-priority="mid"], .uix-table--priority-mid td[data-priority="mid"] { display: none; }
|
|
743
|
+
|
|
744
|
+
.uix-table--cards { display: block; }
|
|
745
|
+
.uix-table--cards thead { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
|
|
746
|
+
.uix-table--cards tbody, .uix-table--cards tr, .uix-table--cards td { display: block; width: auto; }
|
|
747
|
+
.uix-table--cards tbody tr { border: 1px solid var(--uix-border); border-radius: var(--uix-radius-md); background: var(--uix-surface); margin: 0 0 var(--uix-space-3); padding: var(--uix-space-1) var(--uix-space-4); box-shadow: var(--uix-shadow-sm); }
|
|
748
|
+
.uix-table--cards tbody tr[aria-selected="true"] { box-shadow: 0 0 0 2px var(--uix-accent); }
|
|
749
|
+
.uix-table--cards td { height: auto; display: flex; justify-content: space-between; align-items: center; gap: var(--uix-space-5); padding: var(--uix-space-2) 0; border-bottom: 1px solid var(--uix-border); text-align: right; white-space: normal; }
|
|
750
|
+
.uix-table--cards td:last-child { border-bottom: 0; }
|
|
751
|
+
.uix-table--cards td::before { content: attr(data-label); color: var(--uix-text-muted); font-size: var(--uix-text-meta); font-weight: 500; text-align: left; flex: none; }
|
|
752
|
+
.uix-table--cards td[data-col="id"] { font-size: var(--uix-text-h3); font-weight: 600; border-bottom: 1px solid var(--uix-border); padding-bottom: var(--uix-space-3); }
|
|
753
|
+
.uix-table--cards td[data-col="id"]::before { display: none; }
|
|
754
|
+
.uix-table--cards td[data-col="select"], .uix-table--cards td[data-col="actions"], .uix-table--cards td[data-col="expand"] { display: none; }
|
|
755
|
+
|
|
756
|
+
/* ── compare view — two records field-by-field on a narrow screen ──────────────── */
|
|
757
|
+
.uix-compare { border: 1px solid var(--uix-border); border-radius: var(--uix-radius-lg); overflow: hidden; font-size: var(--uix-text-meta); }
|
|
758
|
+
.uix-compare__head, .uix-compare__row { display: grid; grid-template-columns: 1fr 1fr; }
|
|
759
|
+
.uix-compare__head > div, .uix-compare__cell { padding: var(--uix-space-3); background: var(--uix-surface); border-top: 1px solid var(--uix-border); }
|
|
760
|
+
.uix-compare__head > div { font-weight: 600; border-top: 0; }
|
|
761
|
+
.uix-compare__head > div + div, .uix-compare__cell + .uix-compare__cell { border-left: 1px solid var(--uix-border); }
|
|
762
|
+
.uix-compare__attr { grid-column: 1 / -1; background: var(--uix-bg-subtle); padding: var(--uix-space-1) var(--uix-space-3); border-top: 1px solid var(--uix-border); font-size: var(--uix-text-eyebrow); letter-spacing: var(--uix-tracking-eyebrow); text-transform: uppercase; color: var(--uix-text-muted); }
|
|
648
763
|
}
|
|
649
764
|
/* uix table toolbar + two-row filter bar (status / type). Depends only on --uix-* tokens. */
|
|
650
765
|
@layer uix.components {
|
|
@@ -946,27 +1061,9 @@
|
|
|
946
1061
|
[data-uix-rowpeek] tbody tr { cursor: pointer; }
|
|
947
1062
|
[data-uix-rowpeek] tbody tr:hover td { background: var(--uix-bg-hover); }
|
|
948
1063
|
|
|
949
|
-
/*
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
[data-uix-table-v2] .uix-table td:nth-child(2) { max-width: 280px; overflow: hidden; text-overflow: ellipsis; }
|
|
953
|
-
|
|
954
|
-
/* ID cell in pattern B table: ID text + ↗ arrow, single button, quiet/on-brand at rest.
|
|
955
|
-
Monospace so IDs align vertically. Arrow fades in on row hover. */
|
|
956
|
-
.uix-id-cell__btn {
|
|
957
|
-
border: 0; background: transparent; cursor: pointer; padding: 0;
|
|
958
|
-
color: var(--uix-text); font: inherit;
|
|
959
|
-
display: inline-flex; align-items: center; gap: var(--uix-space-1); white-space: nowrap;
|
|
960
|
-
}
|
|
961
|
-
.uix-id-cell__btn:hover { color: var(--uix-accent); }
|
|
962
|
-
.uix-id-cell__btn:focus-visible { outline: 2px solid var(--uix-ring); outline-offset: 2px; border-radius: var(--uix-radius-xs); }
|
|
963
|
-
.uix-id-cell__arrow {
|
|
964
|
-
width: var(--uix-icon-sm); height: var(--uix-icon-sm); flex-shrink: 0; color: var(--uix-text-muted);
|
|
965
|
-
opacity: 0;
|
|
966
|
-
transition: opacity var(--uix-dur-fast) var(--uix-ease-out);
|
|
967
|
-
}
|
|
968
|
-
[data-uix-rowpeek] tbody tr:hover .uix-id-cell__arrow { opacity: 1; }
|
|
969
|
-
@media (prefers-reduced-motion: reduce) { .uix-id-cell__arrow { transition: none; } }
|
|
1064
|
+
/* Column sizing + the id-cell click-through pattern now live in table.css (one story for
|
|
1065
|
+
"table cells"). Size columns with .uix-col--w-* / .uix-col--flex + .uix-col--truncate
|
|
1066
|
+
instead of the old [data-uix-table-v2] :nth-child(2) title cap. */
|
|
970
1067
|
}
|
|
971
1068
|
/* uix popover — generic anchored surface via the native Popover API; animated with @starting-style. */
|
|
972
1069
|
@layer uix.components {
|
package/build/css/styles.css
CHANGED
|
@@ -120,12 +120,19 @@
|
|
|
120
120
|
--uix-row-h-comfortable: 68px;
|
|
121
121
|
--uix-control-h: 36px;
|
|
122
122
|
--uix-sidebar-w: 248px;
|
|
123
|
+
--uix-sidebar-w-rail: 56px;
|
|
123
124
|
--uix-topbar-h: 56px;
|
|
124
125
|
--uix-scrollbar-size: 10px;
|
|
125
126
|
--uix-icon-sm: 16px;
|
|
126
127
|
--uix-icon-md: 20px;
|
|
127
128
|
--uix-icon-lg: 24px;
|
|
128
129
|
--uix-peek-w: 420px;
|
|
130
|
+
--uix-col-w-xs: 92px;
|
|
131
|
+
--uix-col-w-sm: 112px;
|
|
132
|
+
--uix-col-w-md: 132px;
|
|
133
|
+
--uix-col-w-lg: 176px;
|
|
134
|
+
--uix-col-w-xl: 240px;
|
|
135
|
+
--uix-col-title-min: 340px;
|
|
129
136
|
--uix-space-0: 0;
|
|
130
137
|
--uix-space-1: 4px;
|
|
131
138
|
--uix-space-2: 8px;
|
|
@@ -890,7 +897,9 @@
|
|
|
890
897
|
.uix-pill--outline.uix-pill--muted { --tone-line: var(--uix-border); }
|
|
891
898
|
.uix-pill--outline.uix-pill--critical { color: var(--uix-danger-text); --tone-dot: var(--uix-danger); --tone-line: color-mix(in srgb, var(--uix-danger) 60%, transparent); }
|
|
892
899
|
}
|
|
893
|
-
/* uix data table — zebra, sticky header, sort, selection, density, pinned rows
|
|
900
|
+
/* uix data table — zebra, sticky header, sort, selection, density, pinned rows,
|
|
901
|
+
column sizing, bulk actions, row actions, expandable rows, inline edit, resize,
|
|
902
|
+
search highlight, responsive ladder + compare. Depends only on --uix-* tokens. */
|
|
894
903
|
@layer uix.components {
|
|
895
904
|
.uix-table-wrap { overflow: auto; max-height: 460px; border: 1px solid var(--uix-border); border-radius: var(--uix-radius-lg); background: var(--uix-surface); }
|
|
896
905
|
.uix-table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: var(--uix-text-body); }
|
|
@@ -905,6 +914,8 @@
|
|
|
905
914
|
.uix-table th[data-sort]::after { content: " ↕"; opacity: .35; }
|
|
906
915
|
.uix-table th[aria-sort="ascending"]::after { content: " ↑"; opacity: 1; color: var(--uix-accent); }
|
|
907
916
|
.uix-table th[aria-sort="descending"]::after { content: " ↓"; opacity: 1; color: var(--uix-accent); }
|
|
917
|
+
/* multi-column sort ordinal (⇧+click adds a secondary key) */
|
|
918
|
+
.uix-table th[data-sort-order]::before { content: attr(data-sort-order); display: inline-block; margin-right: var(--uix-space-1); font-size: var(--uix-text-eyebrow); font-variant-numeric: tabular-nums; color: var(--uix-accent); }
|
|
908
919
|
|
|
909
920
|
.uix-table td { padding: 0 var(--uix-space-4); height: var(--uix-row-h); border-bottom: 1px solid var(--uix-border); color: var(--uix-text); vertical-align: middle; }
|
|
910
921
|
.uix-table tbody tr { background: var(--uix-row); }
|
|
@@ -913,8 +924,6 @@
|
|
|
913
924
|
.uix-table tbody tr[data-pinned] { background: var(--uix-row-pinned-bg); }
|
|
914
925
|
.uix-table tbody tr[aria-selected="true"] { background: var(--uix-row-selected-bg); }
|
|
915
926
|
.uix-table tbody tr:hover { background: var(--uix-bg-hover); }
|
|
916
|
-
/* density tiers — standard is the default td height above; data-density overrides it.
|
|
917
|
-
.uix-table--compact kept as a back-compat alias. */
|
|
918
927
|
.uix-table[data-density="compact"] td, .uix-table--compact td { height: var(--uix-row-h-compact); }
|
|
919
928
|
.uix-table[data-density="comfortable"] td { height: var(--uix-row-h-comfortable); }
|
|
920
929
|
|
|
@@ -925,7 +934,7 @@
|
|
|
925
934
|
.uix-table__pin svg { width: 15px; height: 15px; }
|
|
926
935
|
.uix-table__pin[data-on] svg { fill: currentColor; }
|
|
927
936
|
|
|
928
|
-
/* frozen first column (opt-in via .uix-table--pinned-col)
|
|
937
|
+
/* frozen first column (opt-in via .uix-table--pinned-col) */
|
|
929
938
|
.uix-table--pinned-col th:first-child, .uix-table--pinned-col td:first-child { position: sticky; left: 0; z-index: var(--uix-z-raised); box-shadow: 1px 0 0 var(--uix-border); }
|
|
930
939
|
.uix-table--pinned-col thead th:first-child { z-index: var(--uix-z-sticky); background: var(--uix-surface); }
|
|
931
940
|
.uix-table--pinned-col tbody tr td:first-child { background: var(--uix-row); }
|
|
@@ -933,7 +942,120 @@
|
|
|
933
942
|
.uix-table--pinned-col.uix-table--no-zebra tbody tr td:first-child,
|
|
934
943
|
.uix-table--pinned-col.uix-table--no-zebra tbody tr:nth-child(even) td:first-child { background: var(--uix-row); }
|
|
935
944
|
.uix-table--pinned-col tbody tr[data-pinned] td:first-child { background: var(--uix-row-pinned-bg); }
|
|
945
|
+
.uix-table--pinned-col tbody tr[aria-selected="true"] td:first-child { background: var(--uix-row-selected-bg); }
|
|
936
946
|
.uix-table--pinned-col tbody tr:hover td:first-child { background: var(--uix-bg-hover); }
|
|
947
|
+
|
|
948
|
+
/* ── column sizing + cell behaviour (a shared vocabulary, not per-app px) ──────── */
|
|
949
|
+
.uix-table--fixed { table-layout: fixed; width: 100%; }
|
|
950
|
+
.uix-col--w-xs { width: var(--uix-col-w-xs); }
|
|
951
|
+
.uix-col--w-sm { width: var(--uix-col-w-sm); }
|
|
952
|
+
.uix-col--w-md { width: var(--uix-col-w-md); }
|
|
953
|
+
.uix-col--w-lg { width: var(--uix-col-w-lg); }
|
|
954
|
+
.uix-col--w-xl { width: var(--uix-col-w-xl); }
|
|
955
|
+
.uix-col--flex,
|
|
956
|
+
.uix-col--primary { width: auto; min-width: var(--uix-col-title-min); }
|
|
957
|
+
.uix-col--truncate { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
|
958
|
+
.uix-col--wrap { white-space: normal; overflow-wrap: anywhere; }
|
|
959
|
+
.uix-col--num { font-variant-numeric: tabular-nums; }
|
|
960
|
+
.uix-table th.uix-col--num, .uix-table td.uix-col--num { text-align: right; }
|
|
961
|
+
|
|
962
|
+
/* ── cell content vocabulary — a fixed set of renderers keeps tables consistent ── */
|
|
963
|
+
.uix-cell-strong { font-weight: 600; }
|
|
964
|
+
.uix-cell-sub { display: block; font-size: var(--uix-text-meta); color: var(--uix-text-muted); }
|
|
965
|
+
.uix-cell-mono { font-family: var(--uix-font-mono); font-size: var(--uix-text-meta); }
|
|
966
|
+
|
|
967
|
+
/* ── id cell — the canonical row click-through (row → peek, ↗ → full record) ───── */
|
|
968
|
+
.uix-id-cell__btn {
|
|
969
|
+
border: 0; background: transparent; cursor: pointer; padding: 0;
|
|
970
|
+
color: var(--uix-text); font: inherit;
|
|
971
|
+
display: inline-flex; align-items: center; gap: var(--uix-space-1); white-space: nowrap;
|
|
972
|
+
}
|
|
973
|
+
.uix-id-cell__btn:hover { color: var(--uix-accent); }
|
|
974
|
+
.uix-id-cell__btn:focus-visible { outline: 2px solid var(--uix-ring); outline-offset: 2px; border-radius: var(--uix-radius-xs); }
|
|
975
|
+
.uix-id-cell__arrow {
|
|
976
|
+
width: var(--uix-icon-sm); height: var(--uix-icon-sm); flex-shrink: 0; color: var(--uix-text-muted);
|
|
977
|
+
opacity: 0; transition: opacity var(--uix-dur-fast) var(--uix-ease-out);
|
|
978
|
+
}
|
|
979
|
+
.uix-table tbody tr:hover .uix-id-cell__arrow { opacity: 1; }
|
|
980
|
+
|
|
981
|
+
/* ── selection column + select-all ────────────────────────────────────────────── */
|
|
982
|
+
.uix-table th.uix-table__selcol, .uix-table td.uix-table__selcell { width: 44px; padding-left: var(--uix-space-3); padding-right: 0; text-align: center; }
|
|
983
|
+
|
|
984
|
+
/* contextual bulk-action bar — appears when >=1 row is selected */
|
|
985
|
+
.uix-bulkbar {
|
|
986
|
+
display: flex; align-items: center; gap: var(--uix-space-3);
|
|
987
|
+
padding: var(--uix-space-2) var(--uix-space-3); margin-bottom: var(--uix-space-3);
|
|
988
|
+
border: 1px solid var(--uix-accent); border-radius: var(--uix-radius-md);
|
|
989
|
+
background: var(--uix-brand-muted); color: var(--uix-text);
|
|
990
|
+
animation: uix-bulkbar-in var(--uix-dur) var(--uix-ease-out);
|
|
991
|
+
}
|
|
992
|
+
.uix-bulkbar[hidden] { display: none; }
|
|
993
|
+
.uix-bulkbar__count { font-size: var(--uix-text-meta); font-weight: 600; color: var(--uix-accent); font-variant-numeric: tabular-nums; }
|
|
994
|
+
.uix-bulkbar__spacer { flex: 1; }
|
|
995
|
+
@keyframes uix-bulkbar-in { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
|
|
996
|
+
@media (prefers-reduced-motion: reduce) { .uix-bulkbar { animation: none; } }
|
|
997
|
+
|
|
998
|
+
/* ── row hover actions + kebab ─────────────────────────────────────────────────── */
|
|
999
|
+
.uix-table__actions { width: 84px; text-align: right; white-space: nowrap; }
|
|
1000
|
+
.uix-rowact { border: 0; background: transparent; color: var(--uix-text-muted); cursor: pointer; padding: var(--uix-space-1); border-radius: var(--uix-radius-sm); opacity: 0; transition: opacity var(--uix-dur-fast) var(--uix-ease-out), background-color var(--uix-dur-fast) var(--uix-ease-out); }
|
|
1001
|
+
.uix-rowact svg { width: 16px; height: 16px; display: block; }
|
|
1002
|
+
.uix-table tbody tr:hover .uix-rowact, .uix-rowact:focus-visible, .uix-rowact[aria-expanded="true"] { opacity: 1; }
|
|
1003
|
+
.uix-rowact:hover { background: var(--uix-bg-active); color: var(--uix-text); }
|
|
1004
|
+
|
|
1005
|
+
/* ── expandable inline row ─────────────────────────────────────────────────────── */
|
|
1006
|
+
.uix-table__expand { border: 0; background: transparent; cursor: pointer; color: var(--uix-text-muted); padding: var(--uix-space-1); border-radius: var(--uix-radius-xs); display: inline-grid; place-items: center; }
|
|
1007
|
+
.uix-table__expand svg { width: 16px; height: 16px; transition: transform var(--uix-dur-fast) var(--uix-ease-out); }
|
|
1008
|
+
.uix-table__expand[aria-expanded="true"] svg { transform: rotate(90deg); }
|
|
1009
|
+
.uix-table__expand:hover { background: var(--uix-bg-active); color: var(--uix-text); }
|
|
1010
|
+
tr.uix-table__detail > td { background: var(--uix-bg-subtle); padding: 0 var(--uix-space-4); }
|
|
1011
|
+
.uix-table__detail-inner { padding: var(--uix-space-4) var(--uix-space-1) var(--uix-space-5); display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: var(--uix-space-4) var(--uix-space-7); }
|
|
1012
|
+
.uix-kv { font-size: var(--uix-text-meta); }
|
|
1013
|
+
.uix-kv__k { color: var(--uix-text-muted); margin-bottom: var(--uix-space-1); }
|
|
1014
|
+
.uix-kv__v { color: var(--uix-text); }
|
|
1015
|
+
@media (prefers-reduced-motion: reduce) { .uix-table__expand svg { transition: none; } }
|
|
1016
|
+
|
|
1017
|
+
/* ── inline cell edit ──────────────────────────────────────────────────────────── */
|
|
1018
|
+
.uix-cell-edit { display: inline-flex; align-items: center; gap: var(--uix-space-2); cursor: text; border-radius: var(--uix-radius-sm); padding: var(--uix-space-1) var(--uix-space-2); margin: calc(-1 * var(--uix-space-1)) calc(-1 * var(--uix-space-2)); transition: background-color var(--uix-dur-fast) var(--uix-ease-out), box-shadow var(--uix-dur-fast) var(--uix-ease-out); }
|
|
1019
|
+
.uix-cell-edit:hover { background: var(--uix-bg-active); }
|
|
1020
|
+
.uix-cell-edit__pencil { width: 13px; height: 13px; color: var(--uix-text-muted); opacity: 0; transition: opacity var(--uix-dur-fast) var(--uix-ease-out); }
|
|
1021
|
+
.uix-table tbody tr:hover .uix-cell-edit__pencil { opacity: 1; }
|
|
1022
|
+
.uix-cell-edit[data-editing] { background: var(--uix-surface); box-shadow: 0 0 0 2px var(--uix-ring); cursor: default; }
|
|
1023
|
+
.uix-cell-edit__ok { color: var(--uix-success); width: 14px; height: 14px; opacity: 0; transition: opacity var(--uix-dur-fast) var(--uix-ease-out); }
|
|
1024
|
+
.uix-cell-edit[data-saved] .uix-cell-edit__ok { opacity: 1; }
|
|
1025
|
+
.uix-cell-edit input, .uix-cell-edit select { border: 0; background: transparent; font: inherit; color: inherit; outline: none; }
|
|
1026
|
+
|
|
1027
|
+
/* ── column resize grip (drag the header's right edge) ─────────────────────────── */
|
|
1028
|
+
.uix-table__resize { position: absolute; top: 0; right: -3px; width: 8px; height: 100%; cursor: col-resize; z-index: var(--uix-z-raised); user-select: none; touch-action: none; }
|
|
1029
|
+
.uix-table__resize::after { content: ""; position: absolute; top: 25%; right: 3px; width: 2px; height: 50%; background: transparent; border-radius: var(--uix-radius-pill); transition: background-color var(--uix-dur-fast) var(--uix-ease-out); }
|
|
1030
|
+
.uix-table thead th:hover .uix-table__resize::after, .uix-table__resize[data-drag]::after { background: var(--uix-accent); }
|
|
1031
|
+
|
|
1032
|
+
/* ── search match highlight ────────────────────────────────────────────────────── */
|
|
1033
|
+
.uix-mark { background: var(--uix-warning-bg); color: var(--uix-text); border-radius: var(--uix-radius-xs); padding: 0 0.15em; box-shadow: inset 0 -1px 0 color-mix(in srgb, var(--uix-warning) 60%, transparent); }
|
|
1034
|
+
|
|
1035
|
+
/* ── responsive ladder — priority-column drop, then card transform ─────────────── */
|
|
1036
|
+
.uix-table--priority th[data-priority="low"], .uix-table--priority td[data-priority="low"] { display: none; }
|
|
1037
|
+
.uix-table--priority-mid th[data-priority="low"], .uix-table--priority-mid td[data-priority="low"],
|
|
1038
|
+
.uix-table--priority-mid th[data-priority="mid"], .uix-table--priority-mid td[data-priority="mid"] { display: none; }
|
|
1039
|
+
|
|
1040
|
+
.uix-table--cards { display: block; }
|
|
1041
|
+
.uix-table--cards thead { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
|
|
1042
|
+
.uix-table--cards tbody, .uix-table--cards tr, .uix-table--cards td { display: block; width: auto; }
|
|
1043
|
+
.uix-table--cards tbody tr { border: 1px solid var(--uix-border); border-radius: var(--uix-radius-md); background: var(--uix-surface); margin: 0 0 var(--uix-space-3); padding: var(--uix-space-1) var(--uix-space-4); box-shadow: var(--uix-shadow-sm); }
|
|
1044
|
+
.uix-table--cards tbody tr[aria-selected="true"] { box-shadow: 0 0 0 2px var(--uix-accent); }
|
|
1045
|
+
.uix-table--cards td { height: auto; display: flex; justify-content: space-between; align-items: center; gap: var(--uix-space-5); padding: var(--uix-space-2) 0; border-bottom: 1px solid var(--uix-border); text-align: right; white-space: normal; }
|
|
1046
|
+
.uix-table--cards td:last-child { border-bottom: 0; }
|
|
1047
|
+
.uix-table--cards td::before { content: attr(data-label); color: var(--uix-text-muted); font-size: var(--uix-text-meta); font-weight: 500; text-align: left; flex: none; }
|
|
1048
|
+
.uix-table--cards td[data-col="id"] { font-size: var(--uix-text-h3); font-weight: 600; border-bottom: 1px solid var(--uix-border); padding-bottom: var(--uix-space-3); }
|
|
1049
|
+
.uix-table--cards td[data-col="id"]::before { display: none; }
|
|
1050
|
+
.uix-table--cards td[data-col="select"], .uix-table--cards td[data-col="actions"], .uix-table--cards td[data-col="expand"] { display: none; }
|
|
1051
|
+
|
|
1052
|
+
/* ── compare view — two records field-by-field on a narrow screen ──────────────── */
|
|
1053
|
+
.uix-compare { border: 1px solid var(--uix-border); border-radius: var(--uix-radius-lg); overflow: hidden; font-size: var(--uix-text-meta); }
|
|
1054
|
+
.uix-compare__head, .uix-compare__row { display: grid; grid-template-columns: 1fr 1fr; }
|
|
1055
|
+
.uix-compare__head > div, .uix-compare__cell { padding: var(--uix-space-3); background: var(--uix-surface); border-top: 1px solid var(--uix-border); }
|
|
1056
|
+
.uix-compare__head > div { font-weight: 600; border-top: 0; }
|
|
1057
|
+
.uix-compare__head > div + div, .uix-compare__cell + .uix-compare__cell { border-left: 1px solid var(--uix-border); }
|
|
1058
|
+
.uix-compare__attr { grid-column: 1 / -1; background: var(--uix-bg-subtle); padding: var(--uix-space-1) var(--uix-space-3); border-top: 1px solid var(--uix-border); font-size: var(--uix-text-eyebrow); letter-spacing: var(--uix-tracking-eyebrow); text-transform: uppercase; color: var(--uix-text-muted); }
|
|
937
1059
|
}
|
|
938
1060
|
/* uix table toolbar + two-row filter bar (status / type). Depends only on --uix-* tokens. */
|
|
939
1061
|
@layer uix.components {
|
|
@@ -1280,27 +1402,9 @@
|
|
|
1280
1402
|
[data-uix-rowpeek] tbody tr { cursor: pointer; }
|
|
1281
1403
|
[data-uix-rowpeek] tbody tr:hover td { background: var(--uix-bg-hover); }
|
|
1282
1404
|
|
|
1283
|
-
/*
|
|
1284
|
-
|
|
1285
|
-
|
|
1286
|
-
[data-uix-table-v2] .uix-table td:nth-child(2) { max-width: 280px; overflow: hidden; text-overflow: ellipsis; }
|
|
1287
|
-
|
|
1288
|
-
/* ID cell in pattern B table: ID text + ↗ arrow, single button, quiet/on-brand at rest.
|
|
1289
|
-
Monospace so IDs align vertically. Arrow fades in on row hover. */
|
|
1290
|
-
.uix-id-cell__btn {
|
|
1291
|
-
border: 0; background: transparent; cursor: pointer; padding: 0;
|
|
1292
|
-
color: var(--uix-text); font: inherit;
|
|
1293
|
-
display: inline-flex; align-items: center; gap: var(--uix-space-1); white-space: nowrap;
|
|
1294
|
-
}
|
|
1295
|
-
.uix-id-cell__btn:hover { color: var(--uix-accent); }
|
|
1296
|
-
.uix-id-cell__btn:focus-visible { outline: 2px solid var(--uix-ring); outline-offset: 2px; border-radius: var(--uix-radius-xs); }
|
|
1297
|
-
.uix-id-cell__arrow {
|
|
1298
|
-
width: var(--uix-icon-sm); height: var(--uix-icon-sm); flex-shrink: 0; color: var(--uix-text-muted);
|
|
1299
|
-
opacity: 0;
|
|
1300
|
-
transition: opacity var(--uix-dur-fast) var(--uix-ease-out);
|
|
1301
|
-
}
|
|
1302
|
-
[data-uix-rowpeek] tbody tr:hover .uix-id-cell__arrow { opacity: 1; }
|
|
1303
|
-
@media (prefers-reduced-motion: reduce) { .uix-id-cell__arrow { transition: none; } }
|
|
1405
|
+
/* Column sizing + the id-cell click-through pattern now live in table.css (one story for
|
|
1406
|
+
"table cells"). Size columns with .uix-col--w-* / .uix-col--flex + .uix-col--truncate
|
|
1407
|
+
instead of the old [data-uix-table-v2] :nth-child(2) title cap. */
|
|
1304
1408
|
}
|
|
1305
1409
|
/* uix popover — generic anchored surface via the native Popover API; animated with @starting-style. */
|
|
1306
1410
|
@layer uix.components {
|
package/build/css/tokens.css
CHANGED
|
@@ -109,12 +109,19 @@
|
|
|
109
109
|
--uix-row-h-comfortable: 68px;
|
|
110
110
|
--uix-control-h: 36px;
|
|
111
111
|
--uix-sidebar-w: 248px;
|
|
112
|
+
--uix-sidebar-w-rail: 56px;
|
|
112
113
|
--uix-topbar-h: 56px;
|
|
113
114
|
--uix-scrollbar-size: 10px;
|
|
114
115
|
--uix-icon-sm: 16px;
|
|
115
116
|
--uix-icon-md: 20px;
|
|
116
117
|
--uix-icon-lg: 24px;
|
|
117
118
|
--uix-peek-w: 420px;
|
|
119
|
+
--uix-col-w-xs: 92px;
|
|
120
|
+
--uix-col-w-sm: 112px;
|
|
121
|
+
--uix-col-w-md: 132px;
|
|
122
|
+
--uix-col-w-lg: 176px;
|
|
123
|
+
--uix-col-w-xl: 240px;
|
|
124
|
+
--uix-col-title-min: 340px;
|
|
118
125
|
--uix-space-0: 0;
|
|
119
126
|
--uix-space-1: 4px;
|
|
120
127
|
--uix-space-2: 8px;
|
package/build/ts/tokens.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* GENERATED — do not edit. */
|
|
2
|
-
export type UixTokenName = "bg-app" | "bg-subtle" | "bg-hover" | "bg-active" | "surface" | "surface-2" | "surface-3" | "border" | "border-strong" | "text" | "text-hushed" | "text-muted" | "text-reverse" | "text-hushed-reverse" | "accent" | "accent-dark" | "accent-light" | "accent-hover" | "accent-fg" | "link" | "ring" | "brand-muted" | "success" | "success-fg" | "success-bg" | "warning" | "warning-fg" | "warning-bg" | "warning-text" | "info" | "info-fg" | "info-bg" | "info-text" | "danger" | "danger-fg" | "danger-bg" | "danger-text" | "amber" | "amber-text" | "amber-bg" | "attention" | "attention-bg" | "attention-text" | "attention-solid" | "overdue" | "overdue-bg" | "overdue-text" | "overdue-solid" | "sev-4" | "sev-4-bg" | "sev-4-text" | "sev-5" | "sev-5-bg" | "sev-5-text" | "success-solid" | "warning-solid" | "info-solid" | "danger-solid" | "chart-1" | "chart-2" | "chart-3" | "chart-4" | "chart-5" | "chart-6" | "chart-7" | "chart-8" | "chart-neutral" | "row" | "row-alt" | "row-pinned-bg" | "row-selected-bg" | "scrollbar-thumb" | "scrollbar-thumb-hover" | "scrollbar-track" | "scrim" | "scrim-strong" | "shadow-sm" | "shadow-popover" | "shadow-overlay" | "highlight-top" | "ease-out" | "ease-out-strong" | "ease-in" | "ease-in-out" | "ease-spring" | "dur-fast" | "dur" | "dur-slow" | "dur-slower" | "lift" | "z-raised" | "z-sticky" | "z-dropdown" | "z-overlay" | "z-tooltip" | "z-toast" | "radius-xs" | "radius-sm" | "radius-md" | "radius-lg" | "radius-pill" | "row-h" | "row-h-compact" | "row-h-comfortable" | "control-h" | "sidebar-w" | "topbar-h" | "scrollbar-size" | "icon-sm" | "icon-md" | "icon-lg" | "peek-w" | "space-0" | "space-1" | "space-2" | "space-3" | "space-4" | "space-5" | "space-6" | "space-7" | "space-8" | "space-9" | "space-10" | "space-11" | "space-12" | "font-sans" | "font-heading" | "font-mono" | "text-display" | "leading-display" | "text-data-hero" | "leading-data-hero" | "text-h2" | "leading-h2" | "text-h3" | "leading-h3" | "text-body" | "leading-body" | "text-meta" | "leading-meta" | "text-eyebrow" | "leading-eyebrow" | "tracking-tight" | "tracking-eyebrow";
|
|
2
|
+
export type UixTokenName = "bg-app" | "bg-subtle" | "bg-hover" | "bg-active" | "surface" | "surface-2" | "surface-3" | "border" | "border-strong" | "text" | "text-hushed" | "text-muted" | "text-reverse" | "text-hushed-reverse" | "accent" | "accent-dark" | "accent-light" | "accent-hover" | "accent-fg" | "link" | "ring" | "brand-muted" | "success" | "success-fg" | "success-bg" | "warning" | "warning-fg" | "warning-bg" | "warning-text" | "info" | "info-fg" | "info-bg" | "info-text" | "danger" | "danger-fg" | "danger-bg" | "danger-text" | "amber" | "amber-text" | "amber-bg" | "attention" | "attention-bg" | "attention-text" | "attention-solid" | "overdue" | "overdue-bg" | "overdue-text" | "overdue-solid" | "sev-4" | "sev-4-bg" | "sev-4-text" | "sev-5" | "sev-5-bg" | "sev-5-text" | "success-solid" | "warning-solid" | "info-solid" | "danger-solid" | "chart-1" | "chart-2" | "chart-3" | "chart-4" | "chart-5" | "chart-6" | "chart-7" | "chart-8" | "chart-neutral" | "row" | "row-alt" | "row-pinned-bg" | "row-selected-bg" | "scrollbar-thumb" | "scrollbar-thumb-hover" | "scrollbar-track" | "scrim" | "scrim-strong" | "shadow-sm" | "shadow-popover" | "shadow-overlay" | "highlight-top" | "ease-out" | "ease-out-strong" | "ease-in" | "ease-in-out" | "ease-spring" | "dur-fast" | "dur" | "dur-slow" | "dur-slower" | "lift" | "z-raised" | "z-sticky" | "z-dropdown" | "z-overlay" | "z-tooltip" | "z-toast" | "radius-xs" | "radius-sm" | "radius-md" | "radius-lg" | "radius-pill" | "row-h" | "row-h-compact" | "row-h-comfortable" | "control-h" | "sidebar-w" | "sidebar-w-rail" | "topbar-h" | "scrollbar-size" | "icon-sm" | "icon-md" | "icon-lg" | "peek-w" | "col-w-xs" | "col-w-sm" | "col-w-md" | "col-w-lg" | "col-w-xl" | "col-title-min" | "space-0" | "space-1" | "space-2" | "space-3" | "space-4" | "space-5" | "space-6" | "space-7" | "space-8" | "space-9" | "space-10" | "space-11" | "space-12" | "font-sans" | "font-heading" | "font-mono" | "text-display" | "leading-display" | "text-data-hero" | "leading-data-hero" | "text-h2" | "leading-h2" | "text-h3" | "leading-h3" | "text-body" | "leading-body" | "text-meta" | "leading-meta" | "text-eyebrow" | "leading-eyebrow" | "tracking-tight" | "tracking-eyebrow";
|
|
3
3
|
export declare const cssVar: Record<UixTokenName, string>;
|
|
4
4
|
export declare const light: Record<UixTokenName, string>;
|
|
5
5
|
export declare const dark: Partial<Record<UixTokenName, string>>;
|
package/build/ts/tokens.js
CHANGED
|
@@ -110,12 +110,19 @@ export const cssVar = {
|
|
|
110
110
|
"row-h-comfortable": "var(--uix-row-h-comfortable)",
|
|
111
111
|
"control-h": "var(--uix-control-h)",
|
|
112
112
|
"sidebar-w": "var(--uix-sidebar-w)",
|
|
113
|
+
"sidebar-w-rail": "var(--uix-sidebar-w-rail)",
|
|
113
114
|
"topbar-h": "var(--uix-topbar-h)",
|
|
114
115
|
"scrollbar-size": "var(--uix-scrollbar-size)",
|
|
115
116
|
"icon-sm": "var(--uix-icon-sm)",
|
|
116
117
|
"icon-md": "var(--uix-icon-md)",
|
|
117
118
|
"icon-lg": "var(--uix-icon-lg)",
|
|
118
119
|
"peek-w": "var(--uix-peek-w)",
|
|
120
|
+
"col-w-xs": "var(--uix-col-w-xs)",
|
|
121
|
+
"col-w-sm": "var(--uix-col-w-sm)",
|
|
122
|
+
"col-w-md": "var(--uix-col-w-md)",
|
|
123
|
+
"col-w-lg": "var(--uix-col-w-lg)",
|
|
124
|
+
"col-w-xl": "var(--uix-col-w-xl)",
|
|
125
|
+
"col-title-min": "var(--uix-col-title-min)",
|
|
119
126
|
"space-0": "var(--uix-space-0)",
|
|
120
127
|
"space-1": "var(--uix-space-1)",
|
|
121
128
|
"space-2": "var(--uix-space-2)",
|
|
@@ -257,12 +264,19 @@ export const light = {
|
|
|
257
264
|
"row-h-comfortable": "68px",
|
|
258
265
|
"control-h": "36px",
|
|
259
266
|
"sidebar-w": "248px",
|
|
267
|
+
"sidebar-w-rail": "56px",
|
|
260
268
|
"topbar-h": "56px",
|
|
261
269
|
"scrollbar-size": "10px",
|
|
262
270
|
"icon-sm": "16px",
|
|
263
271
|
"icon-md": "20px",
|
|
264
272
|
"icon-lg": "24px",
|
|
265
273
|
"peek-w": "420px",
|
|
274
|
+
"col-w-xs": "92px",
|
|
275
|
+
"col-w-sm": "112px",
|
|
276
|
+
"col-w-md": "132px",
|
|
277
|
+
"col-w-lg": "176px",
|
|
278
|
+
"col-w-xl": "240px",
|
|
279
|
+
"col-title-min": "340px",
|
|
266
280
|
"space-0": "0",
|
|
267
281
|
"space-1": "4px",
|
|
268
282
|
"space-2": "8px",
|
|
@@ -375,12 +389,19 @@ export const num = {
|
|
|
375
389
|
"row-h-comfortable": 68,
|
|
376
390
|
"control-h": 36,
|
|
377
391
|
"sidebar-w": 248,
|
|
392
|
+
"sidebar-w-rail": 56,
|
|
378
393
|
"topbar-h": 56,
|
|
379
394
|
"scrollbar-size": 10,
|
|
380
395
|
"icon-sm": 16,
|
|
381
396
|
"icon-md": 20,
|
|
382
397
|
"icon-lg": 24,
|
|
383
398
|
"peek-w": 420,
|
|
399
|
+
"col-w-xs": 92,
|
|
400
|
+
"col-w-sm": 112,
|
|
401
|
+
"col-w-md": 132,
|
|
402
|
+
"col-w-lg": 176,
|
|
403
|
+
"col-w-xl": 240,
|
|
404
|
+
"col-title-min": 340,
|
|
384
405
|
"space-1": 4,
|
|
385
406
|
"space-2": 8,
|
|
386
407
|
"space-3": 12,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tensor_1/tokens",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.5.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
|
"license": "UNLICENSED",
|
package/tokens/base/size.json
CHANGED
|
@@ -10,11 +10,19 @@
|
|
|
10
10
|
"row-h-comfortable": { "$type": "dimension", "$value": "68px" },
|
|
11
11
|
"control-h": { "$type": "dimension", "$value": "36px" },
|
|
12
12
|
"sidebar-w": { "$type": "dimension", "$value": "248px" },
|
|
13
|
+
"sidebar-w-rail": { "$type": "dimension", "$value": "56px", "$description": "Collapsed icon-rail width for the app-shell sidebar (data-nav=rail / data-collapsed). Contractual so the rail width stops being hand-coded as 56px in app-shell.css and products can retheme it. Full = --uix-sidebar-w, rail = this, hidden = 0." },
|
|
13
14
|
"topbar-h": { "$type": "dimension", "$value": "56px" },
|
|
14
15
|
|
|
15
16
|
"scrollbar-size": { "$type": "dimension", "$value": "10px" },
|
|
16
17
|
"icon-sm": { "$type": "dimension", "$value": "16px" },
|
|
17
18
|
"icon-md": { "$type": "dimension", "$value": "20px" },
|
|
18
19
|
"icon-lg": { "$type": "dimension", "$value": "24px" },
|
|
19
|
-
"peek-w": { "$type": "dimension", "$value": "420px" }
|
|
20
|
+
"peek-w": { "$type": "dimension", "$value": "420px" },
|
|
21
|
+
|
|
22
|
+
"col-w-xs": { "$type": "dimension", "$value": "92px", "$description": "Table column-width scale — the shared tier set consumers attach to a column via .uix-col--w-* (on <col>/<th>/<td>) instead of hand-coding per-app pixel widths. Reconciles the widths house products use for compact data columns: xs≈priority/flag, sm≈type/date, md≈id/status/team, lg≈assignee/person, xl≈long labels. Snap each column to the nearest tier." },
|
|
23
|
+
"col-w-sm": { "$type": "dimension", "$value": "112px" },
|
|
24
|
+
"col-w-md": { "$type": "dimension", "$value": "132px" },
|
|
25
|
+
"col-w-lg": { "$type": "dimension", "$value": "176px" },
|
|
26
|
+
"col-w-xl": { "$type": "dimension", "$value": "240px" },
|
|
27
|
+
"col-title-min": { "$type": "dimension", "$value": "340px", "$description": "Min-width floor for the primary/flex column (.uix-col--flex) — the subject/title never collapses below this; the table scrolls horizontally (pinned first column intact) instead of squeezing the title. Generalises the old 280px title cap." }
|
|
20
28
|
}
|