@mindlogic-ai/logician-ui 3.1.0-alpha.6 → 3.1.0-alpha.7
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/dist/components/Table/ExpandingTr/ExpandingTr.types.d.ts +1 -1
- package/dist/components/Table/ExpandingTr/ExpandingTr.types.d.ts.map +1 -1
- package/dist/components/Table/Table.styles.d.ts +1 -1
- package/dist/components/Table/Table.styles.d.ts.map +1 -1
- package/dist/components/Table/Table.styles.js +5 -2
- package/dist/components/Table/Table.styles.js.map +1 -1
- package/dist/components/Table/Table.styles.mjs +5 -2
- package/dist/components/Table/Table.styles.mjs.map +1 -1
- package/dist/components/Table/Table.types.d.ts +13 -0
- package/dist/components/Table/Table.types.d.ts.map +1 -1
- package/dist/components/Table/Tbody.d.ts.map +1 -1
- package/dist/components/Table/Tbody.js +2 -8
- package/dist/components/Table/Tbody.js.map +1 -1
- package/dist/components/Table/Tbody.mjs +2 -8
- package/dist/components/Table/Tbody.mjs.map +1 -1
- package/dist/components/Table/Th.d.ts.map +1 -1
- package/dist/components/Table/Th.js +1 -1
- package/dist/components/Table/Th.js.map +1 -1
- package/dist/components/Table/Th.mjs +1 -1
- package/dist/components/Table/Th.mjs.map +1 -1
- package/dist/components/Table/Thead.d.ts +2 -2
- package/dist/components/Table/Thead.d.ts.map +1 -1
- package/dist/components/Table/Thead.js +2 -2
- package/dist/components/Table/Thead.js.map +1 -1
- package/dist/components/Table/Thead.mjs +2 -2
- package/dist/components/Table/Thead.mjs.map +1 -1
- package/dist/components/Table/Tr.d.ts +10 -2
- package/dist/components/Table/Tr.d.ts.map +1 -1
- package/dist/components/Table/Tr.js +14 -3
- package/dist/components/Table/Tr.js.map +1 -1
- package/dist/components/Table/Tr.mjs +14 -3
- package/dist/components/Table/Tr.mjs.map +1 -1
- package/dist/theme/colors.d.ts +31 -1
- package/dist/theme/colors.d.ts.map +1 -1
- package/dist/theme/colors.js +21 -0
- package/dist/theme/colors.js.map +1 -1
- package/dist/theme/colors.mjs +21 -0
- package/dist/theme/colors.mjs.map +1 -1
- package/dist/theme/index.d.ts.map +1 -1
- package/dist/theme/index.js +4 -0
- package/dist/theme/index.js.map +1 -1
- package/dist/theme/index.mjs +4 -0
- package/dist/theme/index.mjs.map +1 -1
- package/dist/theme/recipes/table.d.ts +19 -0
- package/dist/theme/recipes/table.d.ts.map +1 -0
- package/dist/theme/recipes/table.js +97 -0
- package/dist/theme/recipes/table.js.map +1 -0
- package/dist/theme/recipes/table.mjs +95 -0
- package/dist/theme/recipes/table.mjs.map +1 -0
- package/package.json +1 -1
- package/src/components/Table/ExpandingTr/ExpandingTr.types.ts +1 -1
- package/src/components/Table/Table.stories.tsx +104 -0
- package/src/components/Table/Table.styles.ts +5 -2
- package/src/components/Table/Table.types.ts +16 -0
- package/src/components/Table/Tbody.tsx +2 -20
- package/src/components/Table/Th.tsx +2 -1
- package/src/components/Table/Thead.tsx +4 -2
- package/src/components/Table/Tr.tsx +31 -3
- package/src/theme/SemanticTokens.mdx +3 -0
- package/src/theme/colors.ts +30 -1
- package/src/theme/index.ts +4 -0
- package/src/theme/recipes/table.ts +91 -0
package/src/theme/index.ts
CHANGED
|
@@ -7,6 +7,7 @@ import {
|
|
|
7
7
|
|
|
8
8
|
import { colors, semanticTokens } from './colors';
|
|
9
9
|
import { globalCss } from './global';
|
|
10
|
+
import { tableSlotRecipe } from './recipes/table';
|
|
10
11
|
|
|
11
12
|
/**
|
|
12
13
|
* Shared textStyle value objects for DRY principle
|
|
@@ -243,6 +244,9 @@ const config = defineConfig({
|
|
|
243
244
|
colors: semanticTokens.colors,
|
|
244
245
|
},
|
|
245
246
|
textStyles,
|
|
247
|
+
slotRecipes: {
|
|
248
|
+
table: tableSlotRecipe,
|
|
249
|
+
},
|
|
246
250
|
},
|
|
247
251
|
});
|
|
248
252
|
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { defineSlotRecipe } from '@chakra-ui/react';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Logician overrides for Chakra's `table` slot recipe.
|
|
5
|
+
*
|
|
6
|
+
* Merged on top of Chakra's default table recipe by `createSystem`, so only
|
|
7
|
+
* the deltas live here. Everything uses semantic (mode-aware) tokens so a
|
|
8
|
+
* no-prop <Table> renders the correct header/border/text/hover in both light
|
|
9
|
+
* and dark mode — consumers should only override for genuine per-row state
|
|
10
|
+
* or layout.
|
|
11
|
+
*/
|
|
12
|
+
export const tableSlotRecipe = defineSlotRecipe({
|
|
13
|
+
slots: ['root', 'header', 'body', 'row', 'columnHeader', 'cell'],
|
|
14
|
+
base: {
|
|
15
|
+
root: {
|
|
16
|
+
color: 'fg.default',
|
|
17
|
+
},
|
|
18
|
+
header: {
|
|
19
|
+
color: 'fg.muted',
|
|
20
|
+
fontWeight: 'medium',
|
|
21
|
+
// Opt-in sticky header affordance: <Thead sticky>
|
|
22
|
+
'&[data-sticky]': {
|
|
23
|
+
position: 'sticky',
|
|
24
|
+
top: 0,
|
|
25
|
+
// Above sticky-column cells (zIndex 2 in Table.styles.ts)
|
|
26
|
+
zIndex: 'docked',
|
|
27
|
+
bg: 'bg.surface',
|
|
28
|
+
// border-collapse leaves cell borders behind when the header sticks;
|
|
29
|
+
// the shadow keeps the bottom hairline visible while scrolled
|
|
30
|
+
boxShadow: '0 1px 0 0 {colors.border.subtle}',
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
body: {
|
|
34
|
+
fontWeight: 'medium',
|
|
35
|
+
// Remove the last row's bottom border so it doesn't double up with
|
|
36
|
+
// TableContainer's border. Both rules are needed under border-collapse:
|
|
37
|
+
// the row border comes from base.row, the cell border from Chakra's
|
|
38
|
+
// line variant.
|
|
39
|
+
'& > tr:last-of-type': {
|
|
40
|
+
borderBottom: 'none',
|
|
41
|
+
},
|
|
42
|
+
'& > tr:last-of-type > td': {
|
|
43
|
+
borderBottom: 'none',
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
row: {
|
|
47
|
+
borderBottomWidth: '1px',
|
|
48
|
+
borderBottomColor: 'border.subtle',
|
|
49
|
+
// Interactive styling is keyed off data-interactive, which <Tr> sets
|
|
50
|
+
// automatically when it receives onClick / role="button" / tabIndex —
|
|
51
|
+
// static tables never pick up hover/cursor styling.
|
|
52
|
+
'&[data-interactive]': {
|
|
53
|
+
cursor: 'pointer',
|
|
54
|
+
_hover: { bg: 'bg.muted' },
|
|
55
|
+
// Inset outline instead of the shared focusRing util (boxShadow
|
|
56
|
+
// ring): rows are clipped by TableContainer's rounded overflow,
|
|
57
|
+
// which would crop an outer ring.
|
|
58
|
+
_focusVisible: {
|
|
59
|
+
outline: '2px solid',
|
|
60
|
+
outlineColor: 'primary.main',
|
|
61
|
+
outlineOffset: '-2px',
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
// Row-state tints: set via <Tr state="..."> (data-selected /
|
|
65
|
+
// data-invalid / data-highlighted)
|
|
66
|
+
_selected: { bg: 'bg.selected' },
|
|
67
|
+
_invalid: { bg: 'bg.invalid.subtle' },
|
|
68
|
+
_highlighted: { bg: 'bg.highlighted' },
|
|
69
|
+
},
|
|
70
|
+
columnHeader: {
|
|
71
|
+
color: 'fg.muted',
|
|
72
|
+
fontWeight: 'medium',
|
|
73
|
+
bg: 'bg.subtle',
|
|
74
|
+
borderBottomWidth: '1px',
|
|
75
|
+
borderBottomColor: 'border.subtle',
|
|
76
|
+
},
|
|
77
|
+
cell: {
|
|
78
|
+
borderBottomColor: 'border.subtle',
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
variants: {
|
|
82
|
+
variant: {
|
|
83
|
+
line: {
|
|
84
|
+
// Chakra's line variant paints rows with the raw `bg` token (pure
|
|
85
|
+
// black in dark mode); keep rows transparent so the surface behind
|
|
86
|
+
// the table shows through and state tints/hover sit on top.
|
|
87
|
+
row: { bg: 'transparent' },
|
|
88
|
+
},
|
|
89
|
+
},
|
|
90
|
+
},
|
|
91
|
+
});
|