@crisp-ui-kit/crisp 0.55.4 → 0.55.6
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/cjs/components/datatable/datatable.js +10 -1
- package/dist/cjs/components/datatable/datatable.recipe.js +8 -1
- package/dist/cjs/components/table/table.recipe.js +17 -0
- package/dist/datatable.css +7 -2
- package/dist/datatable.layered.css +7 -2
- package/dist/esm/components/datatable/datatable.js +11 -2
- package/dist/esm/components/datatable/datatable.recipe.js +8 -1
- package/dist/esm/components/table/table.recipe.js +17 -0
- package/dist/styles.css +19 -2
- package/dist/styles.layered.css +19 -2
- package/dist/table.css +12 -0
- package/dist/table.layered.css +12 -0
- package/package.json +1 -1
|
@@ -459,11 +459,20 @@ function renderTyped(col, value, avatarTone, row, display, locale = "en-US", ope
|
|
|
459
459
|
return ((0, jsx_runtime_1.jsxs)("a", { className: "crisp-datatable-phone-link", href: `tel:+${country?.dialCode ?? ""}${p.digits}`, onClick: (ev) => ev.stopPropagation(), children: ["+", country?.dialCode ?? "?", p.digits] }, `${p.iso2}|${p.digits}`));
|
|
460
460
|
}) }));
|
|
461
461
|
}
|
|
462
|
+
// crisp/#854, confirmed live -- Attio's real read-only phone cell has
|
|
463
|
+
// no flag anywhere (the same gap #842 already fixed in the editor's
|
|
464
|
+
// popover/trigger, left over here since #842 never touched this
|
|
465
|
+
// rendering path). The dial-code-as-its-own-muted-span shape below
|
|
466
|
+
// and the plain (non-link) wrapper are UNCHANGED by this fix -- #854
|
|
467
|
+
// measured Attio's real cell as a genuine `tel:` link with a
|
|
468
|
+
// continuous, non-split string plus a copy button, which is a larger
|
|
469
|
+
// rebuild of this whole cell's shape, left as a follow-up rather than
|
|
470
|
+
// folded into this "drop the flag" pass.
|
|
462
471
|
const parsed = parsePhoneValue(value);
|
|
463
472
|
if (!parsed?.digits)
|
|
464
473
|
return empty;
|
|
465
474
|
const country = (0, countries_1.countryByIso2)(parsed.iso2);
|
|
466
|
-
return ((0, jsx_runtime_1.jsxs)("span", { className: "crisp-datatable-phone", children: [
|
|
475
|
+
return ((0, jsx_runtime_1.jsxs)("span", { className: "crisp-datatable-phone", children: [(0, jsx_runtime_1.jsxs)("span", { className: "crisp-datatable-phone-dial", children: ["+", country?.dialCode ?? "?"] }), parsed.digits] }));
|
|
467
476
|
}
|
|
468
477
|
case "url":
|
|
469
478
|
case "email": {
|
|
@@ -282,7 +282,14 @@ const config = (0, core_1.defineRecipe)({
|
|
|
282
282
|
is rgba(0,0,0,0.09), a 9% tint, not the name's own full-contrast text
|
|
283
283
|
colour. The previous :hover-gated, full-contrast rule here was itself
|
|
284
284
|
unmeasured and wrong in two ways at once. */
|
|
285
|
-
|
|
285
|
+
/* crisp#851 -- Attio's own entity/record names are measured at
|
|
286
|
+
font-weight 500, distinct from a plain-text primary column's 400
|
|
287
|
+
(table.recipe.ts's own \`tbody th\` default). This was never its own
|
|
288
|
+
explicit style -- it silently rode on a since-fixed header-rule leak
|
|
289
|
+
(#833/#835/#848) that happened to apply the same 500 to every
|
|
290
|
+
primary-column body cell regardless of type. Made explicit here so
|
|
291
|
+
fixing that leak doesn't also (wrongly) drop entity names to 400. */
|
|
292
|
+
& .crisp-datatable-entity-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: ${tokens_1.contract.weight.medium}; text-decoration: underline; text-decoration-color: color-mix(in srgb, ${tokens_1.contract.fgPrimary} 9%, transparent); }
|
|
286
293
|
& button.crisp-datatable-entity-name--link { margin: 0; padding: 0; border: none; background: none; font: inherit; color: inherit; letter-spacing: inherit; text-align: start; cursor: pointer; max-width: 100%; }
|
|
287
294
|
/* crisp/#601, G-048: two 20px ghost icons, right-aligned in the primary
|
|
288
295
|
column, revealed on ROW hover (the issue's own title says "row
|
|
@@ -48,6 +48,23 @@ const config = (0, core_1.defineRecipe)({
|
|
|
48
48
|
\`& table\`'s own color) applies to it like every other cell. */
|
|
49
49
|
& thead th { position: sticky; top: 0; z-index: 2; height: ${tokens_1.contract.size.tableHeader}; background: ${tokens_1.contract.bgSurface}; border-top: 1px solid ${tokens_1.contract.borderSubtle}; font-size: ${tokens_1.contract.text.lg}; font-weight: ${tokens_1.contract.weight.medium}; letter-spacing: -0.14px; color: ${tokens_1.contract.fgPrimary}; user-select: none; }
|
|
50
50
|
& td { color: ${tokens_1.contract.fgPrimary}; background: ${tokens_1.contract.bgSurface}; }
|
|
51
|
+
/* crisp#851 -- a REGRESSION from #833/#835/#848's own fix: scoping the
|
|
52
|
+
header rule above to \`thead th\` correctly stopped it leaking onto
|
|
53
|
+
the primary column's body cell (a real \`<th scope="row">\` since
|
|
54
|
+
#779), but that same leaked rule's \`font-weight: ${tokens_1.contract.weight.medium}\`
|
|
55
|
+
was the ONLY thing overriding the browser's own UA stylesheet default
|
|
56
|
+
for \`<th>\` (\`font-weight: bold; text-align: center\`) on that cell --
|
|
57
|
+
once the leak stopped, a plain-text primary column fell through to
|
|
58
|
+
bold+centred instead of matching its sibling \`<td>\`s (\`400\`/start,
|
|
59
|
+
Attio's own plain-text primary cell). \`text-align\` was already safe
|
|
60
|
+
(the base \`& th, & td\` rule's own \`text-align: start\` above is
|
|
61
|
+
author-origin and always beats the UA stylesheet regardless of
|
|
62
|
+
specificity) but is restated here explicitly, defensively -- cheap,
|
|
63
|
+
and removes any doubt. \`type: "entity"\` primary columns are a
|
|
64
|
+
separate case (Attio's own entity/record names are 500, not 400) --
|
|
65
|
+
see \`.crisp-datatable-entity-name\`'s own new explicit weight in
|
|
66
|
+
datatable.recipe.ts, which wins here by class specificity. */
|
|
67
|
+
& tbody th { font-weight: ${tokens_1.contract.weight.regular}; text-align: start; }
|
|
51
68
|
& th:last-child, & td:last-child { border-inline-end: none; }
|
|
52
69
|
& tbody tr:last-child td { border-bottom: none; }
|
|
53
70
|
/* #554: sticky to the bottom, mirroring \`.crisp-recordstable-sum\`. */
|
package/dist/datatable.css
CHANGED
|
@@ -192,8 +192,13 @@
|
|
|
192
192
|
& .crisp-datatable-cell-actions-row { display: flex; align-items: center; gap: var(--crisp-space-1-5); min-width: 0; width: 100%; }
|
|
193
193
|
/* crisp/#601, G-050: measured LIVE (getComputedStyle on the name text, plain hover vs rest) that Attio's underline is unconditional, not a
|
|
194
194
|
hover reveal -- identical at rest and on hover: text-decoration-color
|
|
195
|
-
is rgba(0,0,0,0.09), a 9% tint, not the name's own full-contrast text colour. The previous :hover-gated, full-contrast rule here was itself unmeasured and wrong in two ways at once. */
|
|
196
|
-
|
|
195
|
+
is rgba(0,0,0,0.09), a 9% tint, not the name's own full-contrast text colour. The previous :hover-gated, full-contrast rule here was itself unmeasured and wrong in two ways at once. */ /* crisp#851 -- Attio's own entity/record names are measured at
|
|
196
|
+
font-weight 500, distinct from a plain-text primary column's 400 (table.recipe.ts's own `tbody th` default). This was never its own
|
|
197
|
+
explicit style -- it silently rode on a since-fixed header-rule leak
|
|
198
|
+
(#833/#835/#848) that happened to apply the same 500 to every
|
|
199
|
+
primary-column body cell regardless of type. Made explicit here so
|
|
200
|
+
fixing that leak doesn't also (wrongly) drop entity names to 400. */
|
|
201
|
+
& .crisp-datatable-entity-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: var(--crisp-weight-medium); text-decoration: underline; text-decoration-color: color-mix(in srgb, var(--crisp-fg-primary) 9%, transparent); }
|
|
197
202
|
& button.crisp-datatable-entity-name--link { margin: 0; padding: 0; border: none; background: none; font: inherit; color: inherit; letter-spacing: inherit; text-align: start; cursor: pointer; max-width: 100%; }
|
|
198
203
|
/* crisp/#601, G-048: two 20px ghost icons, right-aligned in the primary column, revealed on ROW hover (the issue's own title says "row
|
|
199
204
|
hover", and a live check confirmed hovering well past the name --
|
|
@@ -193,8 +193,13 @@
|
|
|
193
193
|
& .crisp-datatable-cell-actions-row { display: flex; align-items: center; gap: var(--crisp-space-1-5); min-width: 0; width: 100%; }
|
|
194
194
|
/* crisp/#601, G-050: measured LIVE (getComputedStyle on the name text, plain hover vs rest) that Attio's underline is unconditional, not a
|
|
195
195
|
hover reveal -- identical at rest and on hover: text-decoration-color
|
|
196
|
-
is rgba(0,0,0,0.09), a 9% tint, not the name's own full-contrast text colour. The previous :hover-gated, full-contrast rule here was itself unmeasured and wrong in two ways at once. */
|
|
197
|
-
|
|
196
|
+
is rgba(0,0,0,0.09), a 9% tint, not the name's own full-contrast text colour. The previous :hover-gated, full-contrast rule here was itself unmeasured and wrong in two ways at once. */ /* crisp#851 -- Attio's own entity/record names are measured at
|
|
197
|
+
font-weight 500, distinct from a plain-text primary column's 400 (table.recipe.ts's own `tbody th` default). This was never its own
|
|
198
|
+
explicit style -- it silently rode on a since-fixed header-rule leak
|
|
199
|
+
(#833/#835/#848) that happened to apply the same 500 to every
|
|
200
|
+
primary-column body cell regardless of type. Made explicit here so
|
|
201
|
+
fixing that leak doesn't also (wrongly) drop entity names to 400. */
|
|
202
|
+
& .crisp-datatable-entity-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: var(--crisp-weight-medium); text-decoration: underline; text-decoration-color: color-mix(in srgb, var(--crisp-fg-primary) 9%, transparent); }
|
|
198
203
|
& button.crisp-datatable-entity-name--link { margin: 0; padding: 0; border: none; background: none; font: inherit; color: inherit; letter-spacing: inherit; text-align: start; cursor: pointer; max-width: 100%; }
|
|
199
204
|
/* crisp/#601, G-048: two 20px ghost icons, right-aligned in the primary column, revealed on ROW hover (the issue's own title says "row
|
|
200
205
|
hover", and a live check confirmed hovering well past the name --
|
|
@@ -23,7 +23,7 @@ import { Switch } from "../switch/index.js";
|
|
|
23
23
|
import { Table, TableBody, TableCell, TableFooter, TableHead, TableHeader, TableRow, } from "../table/index.js";
|
|
24
24
|
import { TimePicker } from "../timepicker/index.js";
|
|
25
25
|
import { Tooltip } from "../tooltip/index.js";
|
|
26
|
-
import { COUNTRIES, countryByIso2
|
|
26
|
+
import { COUNTRIES, countryByIso2 } from "./countries.js";
|
|
27
27
|
import { datatableRecipe } from "./datatable.recipe.js";
|
|
28
28
|
// #534: whether an element's own content is being cut off by its own box --
|
|
29
29
|
// the same fact `.crisp-datatable-th-label`'s CSS ellipsis is silently
|
|
@@ -421,11 +421,20 @@ function renderTyped(col, value, avatarTone, row, display, locale = "en-US", ope
|
|
|
421
421
|
return (_jsxs("a", { className: "crisp-datatable-phone-link", href: `tel:+${country?.dialCode ?? ""}${p.digits}`, onClick: (ev) => ev.stopPropagation(), children: ["+", country?.dialCode ?? "?", p.digits] }, `${p.iso2}|${p.digits}`));
|
|
422
422
|
}) }));
|
|
423
423
|
}
|
|
424
|
+
// crisp/#854, confirmed live -- Attio's real read-only phone cell has
|
|
425
|
+
// no flag anywhere (the same gap #842 already fixed in the editor's
|
|
426
|
+
// popover/trigger, left over here since #842 never touched this
|
|
427
|
+
// rendering path). The dial-code-as-its-own-muted-span shape below
|
|
428
|
+
// and the plain (non-link) wrapper are UNCHANGED by this fix -- #854
|
|
429
|
+
// measured Attio's real cell as a genuine `tel:` link with a
|
|
430
|
+
// continuous, non-split string plus a copy button, which is a larger
|
|
431
|
+
// rebuild of this whole cell's shape, left as a follow-up rather than
|
|
432
|
+
// folded into this "drop the flag" pass.
|
|
424
433
|
const parsed = parsePhoneValue(value);
|
|
425
434
|
if (!parsed?.digits)
|
|
426
435
|
return empty;
|
|
427
436
|
const country = countryByIso2(parsed.iso2);
|
|
428
|
-
return (_jsxs("span", { className: "crisp-datatable-phone", children: [
|
|
437
|
+
return (_jsxs("span", { className: "crisp-datatable-phone", children: [_jsxs("span", { className: "crisp-datatable-phone-dial", children: ["+", country?.dialCode ?? "?"] }), parsed.digits] }));
|
|
429
438
|
}
|
|
430
439
|
case "url":
|
|
431
440
|
case "email": {
|
|
@@ -279,7 +279,14 @@ const config = defineRecipe({
|
|
|
279
279
|
is rgba(0,0,0,0.09), a 9% tint, not the name's own full-contrast text
|
|
280
280
|
colour. The previous :hover-gated, full-contrast rule here was itself
|
|
281
281
|
unmeasured and wrong in two ways at once. */
|
|
282
|
-
|
|
282
|
+
/* crisp#851 -- Attio's own entity/record names are measured at
|
|
283
|
+
font-weight 500, distinct from a plain-text primary column's 400
|
|
284
|
+
(table.recipe.ts's own \`tbody th\` default). This was never its own
|
|
285
|
+
explicit style -- it silently rode on a since-fixed header-rule leak
|
|
286
|
+
(#833/#835/#848) that happened to apply the same 500 to every
|
|
287
|
+
primary-column body cell regardless of type. Made explicit here so
|
|
288
|
+
fixing that leak doesn't also (wrongly) drop entity names to 400. */
|
|
289
|
+
& .crisp-datatable-entity-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: ${c.weight.medium}; text-decoration: underline; text-decoration-color: color-mix(in srgb, ${c.fgPrimary} 9%, transparent); }
|
|
283
290
|
& button.crisp-datatable-entity-name--link { margin: 0; padding: 0; border: none; background: none; font: inherit; color: inherit; letter-spacing: inherit; text-align: start; cursor: pointer; max-width: 100%; }
|
|
284
291
|
/* crisp/#601, G-048: two 20px ghost icons, right-aligned in the primary
|
|
285
292
|
column, revealed on ROW hover (the issue's own title says "row
|
|
@@ -45,6 +45,23 @@ const config = defineRecipe({
|
|
|
45
45
|
\`& table\`'s own color) applies to it like every other cell. */
|
|
46
46
|
& thead th { position: sticky; top: 0; z-index: 2; height: ${c.size.tableHeader}; background: ${c.bgSurface}; border-top: 1px solid ${c.borderSubtle}; font-size: ${c.text.lg}; font-weight: ${c.weight.medium}; letter-spacing: -0.14px; color: ${c.fgPrimary}; user-select: none; }
|
|
47
47
|
& td { color: ${c.fgPrimary}; background: ${c.bgSurface}; }
|
|
48
|
+
/* crisp#851 -- a REGRESSION from #833/#835/#848's own fix: scoping the
|
|
49
|
+
header rule above to \`thead th\` correctly stopped it leaking onto
|
|
50
|
+
the primary column's body cell (a real \`<th scope="row">\` since
|
|
51
|
+
#779), but that same leaked rule's \`font-weight: ${c.weight.medium}\`
|
|
52
|
+
was the ONLY thing overriding the browser's own UA stylesheet default
|
|
53
|
+
for \`<th>\` (\`font-weight: bold; text-align: center\`) on that cell --
|
|
54
|
+
once the leak stopped, a plain-text primary column fell through to
|
|
55
|
+
bold+centred instead of matching its sibling \`<td>\`s (\`400\`/start,
|
|
56
|
+
Attio's own plain-text primary cell). \`text-align\` was already safe
|
|
57
|
+
(the base \`& th, & td\` rule's own \`text-align: start\` above is
|
|
58
|
+
author-origin and always beats the UA stylesheet regardless of
|
|
59
|
+
specificity) but is restated here explicitly, defensively -- cheap,
|
|
60
|
+
and removes any doubt. \`type: "entity"\` primary columns are a
|
|
61
|
+
separate case (Attio's own entity/record names are 500, not 400) --
|
|
62
|
+
see \`.crisp-datatable-entity-name\`'s own new explicit weight in
|
|
63
|
+
datatable.recipe.ts, which wins here by class specificity. */
|
|
64
|
+
& tbody th { font-weight: ${c.weight.regular}; text-align: start; }
|
|
48
65
|
& th:last-child, & td:last-child { border-inline-end: none; }
|
|
49
66
|
& tbody tr:last-child td { border-bottom: none; }
|
|
50
67
|
/* #554: sticky to the bottom, mirroring \`.crisp-recordstable-sum\`. */
|
package/dist/styles.css
CHANGED
|
@@ -801,8 +801,13 @@
|
|
|
801
801
|
& .crisp-datatable-cell-actions-row { display: flex; align-items: center; gap: var(--crisp-space-1-5); min-width: 0; width: 100%; }
|
|
802
802
|
/* crisp/#601, G-050: measured LIVE (getComputedStyle on the name text, plain hover vs rest) that Attio's underline is unconditional, not a
|
|
803
803
|
hover reveal -- identical at rest and on hover: text-decoration-color
|
|
804
|
-
is rgba(0,0,0,0.09), a 9% tint, not the name's own full-contrast text colour. The previous :hover-gated, full-contrast rule here was itself unmeasured and wrong in two ways at once. */
|
|
805
|
-
|
|
804
|
+
is rgba(0,0,0,0.09), a 9% tint, not the name's own full-contrast text colour. The previous :hover-gated, full-contrast rule here was itself unmeasured and wrong in two ways at once. */ /* crisp#851 -- Attio's own entity/record names are measured at
|
|
805
|
+
font-weight 500, distinct from a plain-text primary column's 400 (table.recipe.ts's own `tbody th` default). This was never its own
|
|
806
|
+
explicit style -- it silently rode on a since-fixed header-rule leak
|
|
807
|
+
(#833/#835/#848) that happened to apply the same 500 to every
|
|
808
|
+
primary-column body cell regardless of type. Made explicit here so
|
|
809
|
+
fixing that leak doesn't also (wrongly) drop entity names to 400. */
|
|
810
|
+
& .crisp-datatable-entity-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: var(--crisp-weight-medium); text-decoration: underline; text-decoration-color: color-mix(in srgb, var(--crisp-fg-primary) 9%, transparent); }
|
|
806
811
|
& button.crisp-datatable-entity-name--link { margin: 0; padding: 0; border: none; background: none; font: inherit; color: inherit; letter-spacing: inherit; text-align: start; cursor: pointer; max-width: 100%; }
|
|
807
812
|
/* crisp/#601, G-048: two 20px ghost icons, right-aligned in the primary column, revealed on ROW hover (the issue's own title says "row
|
|
808
813
|
hover", and a live check confirmed hovering well past the name --
|
|
@@ -1902,6 +1907,18 @@
|
|
|
1902
1907
|
row's own grid line. `thead th` simply never matches `tbody th[scope=row]` at all, so none of this reaches it; the base `& th, & td` rule above (36px, one border-bottom, full opacity via `& table`'s own color) applies to it like every other cell. */
|
|
1903
1908
|
& thead th { position: sticky; top: 0; z-index: 2; height: var(--crisp-size-tableHeader); background: var(--crisp-bg-surface); border-top: 1px solid var(--crisp-border-subtle); font-size: var(--crisp-text-lg); font-weight: var(--crisp-weight-medium); letter-spacing: -0.14px; color: var(--crisp-fg-primary); user-select: none; }
|
|
1904
1909
|
& td { color: var(--crisp-fg-primary); background: var(--crisp-bg-surface); }
|
|
1910
|
+
/* crisp#851 -- a REGRESSION from #833/#835/#848's own fix: scoping the header rule above to `thead th` correctly stopped it leaking onto the primary column's body cell (a real `<th scope="row">` since
|
|
1911
|
+
#779), but that same leaked rule's `font-weight: var(--crisp-weight-medium)` was the ONLY thing overriding the browser's own UA stylesheet default
|
|
1912
|
+
for `<th>` (`font-weight: bold; text-align: center`) on that cell --
|
|
1913
|
+
once the leak stopped, a plain-text primary column fell through to
|
|
1914
|
+
bold+centred instead of matching its sibling `<td>`s (`400`/start,
|
|
1915
|
+
Attio's own plain-text primary cell). `text-align` was already safe (the base `& th, & td` rule's own `text-align: start` above is
|
|
1916
|
+
author-origin and always beats the UA stylesheet regardless of
|
|
1917
|
+
specificity) but is restated here explicitly, defensively -- cheap,
|
|
1918
|
+
and removes any doubt. `type: "entity"` primary columns are a
|
|
1919
|
+
separate case (Attio's own entity/record names are 500, not 400) -- see `.crisp-datatable-entity-name`'s own new explicit weight in
|
|
1920
|
+
datatable.recipe.ts, which wins here by class specificity. */
|
|
1921
|
+
& tbody th { font-weight: var(--crisp-weight-regular); text-align: start; }
|
|
1905
1922
|
& th:last-child, & td:last-child { border-inline-end: none; }
|
|
1906
1923
|
& tbody tr:last-child td { border-bottom: none; }
|
|
1907
1924
|
/* #554: sticky to the bottom, mirroring `.crisp-recordstable-sum`. */
|
package/dist/styles.layered.css
CHANGED
|
@@ -802,8 +802,13 @@
|
|
|
802
802
|
& .crisp-datatable-cell-actions-row { display: flex; align-items: center; gap: var(--crisp-space-1-5); min-width: 0; width: 100%; }
|
|
803
803
|
/* crisp/#601, G-050: measured LIVE (getComputedStyle on the name text, plain hover vs rest) that Attio's underline is unconditional, not a
|
|
804
804
|
hover reveal -- identical at rest and on hover: text-decoration-color
|
|
805
|
-
is rgba(0,0,0,0.09), a 9% tint, not the name's own full-contrast text colour. The previous :hover-gated, full-contrast rule here was itself unmeasured and wrong in two ways at once. */
|
|
806
|
-
|
|
805
|
+
is rgba(0,0,0,0.09), a 9% tint, not the name's own full-contrast text colour. The previous :hover-gated, full-contrast rule here was itself unmeasured and wrong in two ways at once. */ /* crisp#851 -- Attio's own entity/record names are measured at
|
|
806
|
+
font-weight 500, distinct from a plain-text primary column's 400 (table.recipe.ts's own `tbody th` default). This was never its own
|
|
807
|
+
explicit style -- it silently rode on a since-fixed header-rule leak
|
|
808
|
+
(#833/#835/#848) that happened to apply the same 500 to every
|
|
809
|
+
primary-column body cell regardless of type. Made explicit here so
|
|
810
|
+
fixing that leak doesn't also (wrongly) drop entity names to 400. */
|
|
811
|
+
& .crisp-datatable-entity-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: var(--crisp-weight-medium); text-decoration: underline; text-decoration-color: color-mix(in srgb, var(--crisp-fg-primary) 9%, transparent); }
|
|
807
812
|
& button.crisp-datatable-entity-name--link { margin: 0; padding: 0; border: none; background: none; font: inherit; color: inherit; letter-spacing: inherit; text-align: start; cursor: pointer; max-width: 100%; }
|
|
808
813
|
/* crisp/#601, G-048: two 20px ghost icons, right-aligned in the primary column, revealed on ROW hover (the issue's own title says "row
|
|
809
814
|
hover", and a live check confirmed hovering well past the name --
|
|
@@ -1903,6 +1908,18 @@
|
|
|
1903
1908
|
row's own grid line. `thead th` simply never matches `tbody th[scope=row]` at all, so none of this reaches it; the base `& th, & td` rule above (36px, one border-bottom, full opacity via `& table`'s own color) applies to it like every other cell. */
|
|
1904
1909
|
& thead th { position: sticky; top: 0; z-index: 2; height: var(--crisp-size-tableHeader); background: var(--crisp-bg-surface); border-top: 1px solid var(--crisp-border-subtle); font-size: var(--crisp-text-lg); font-weight: var(--crisp-weight-medium); letter-spacing: -0.14px; color: var(--crisp-fg-primary); user-select: none; }
|
|
1905
1910
|
& td { color: var(--crisp-fg-primary); background: var(--crisp-bg-surface); }
|
|
1911
|
+
/* crisp#851 -- a REGRESSION from #833/#835/#848's own fix: scoping the header rule above to `thead th` correctly stopped it leaking onto the primary column's body cell (a real `<th scope="row">` since
|
|
1912
|
+
#779), but that same leaked rule's `font-weight: var(--crisp-weight-medium)` was the ONLY thing overriding the browser's own UA stylesheet default
|
|
1913
|
+
for `<th>` (`font-weight: bold; text-align: center`) on that cell --
|
|
1914
|
+
once the leak stopped, a plain-text primary column fell through to
|
|
1915
|
+
bold+centred instead of matching its sibling `<td>`s (`400`/start,
|
|
1916
|
+
Attio's own plain-text primary cell). `text-align` was already safe (the base `& th, & td` rule's own `text-align: start` above is
|
|
1917
|
+
author-origin and always beats the UA stylesheet regardless of
|
|
1918
|
+
specificity) but is restated here explicitly, defensively -- cheap,
|
|
1919
|
+
and removes any doubt. `type: "entity"` primary columns are a
|
|
1920
|
+
separate case (Attio's own entity/record names are 500, not 400) -- see `.crisp-datatable-entity-name`'s own new explicit weight in
|
|
1921
|
+
datatable.recipe.ts, which wins here by class specificity. */
|
|
1922
|
+
& tbody th { font-weight: var(--crisp-weight-regular); text-align: start; }
|
|
1906
1923
|
& th:last-child, & td:last-child { border-inline-end: none; }
|
|
1907
1924
|
& tbody tr:last-child td { border-bottom: none; }
|
|
1908
1925
|
/* #554: sticky to the bottom, mirroring `.crisp-recordstable-sum`. */
|
package/dist/table.css
CHANGED
|
@@ -23,6 +23,18 @@
|
|
|
23
23
|
row's own grid line. `thead th` simply never matches `tbody th[scope=row]` at all, so none of this reaches it; the base `& th, & td` rule above (36px, one border-bottom, full opacity via `& table`'s own color) applies to it like every other cell. */
|
|
24
24
|
& thead th { position: sticky; top: 0; z-index: 2; height: var(--crisp-size-tableHeader); background: var(--crisp-bg-surface); border-top: 1px solid var(--crisp-border-subtle); font-size: var(--crisp-text-lg); font-weight: var(--crisp-weight-medium); letter-spacing: -0.14px; color: var(--crisp-fg-primary); user-select: none; }
|
|
25
25
|
& td { color: var(--crisp-fg-primary); background: var(--crisp-bg-surface); }
|
|
26
|
+
/* crisp#851 -- a REGRESSION from #833/#835/#848's own fix: scoping the header rule above to `thead th` correctly stopped it leaking onto the primary column's body cell (a real `<th scope="row">` since
|
|
27
|
+
#779), but that same leaked rule's `font-weight: var(--crisp-weight-medium)` was the ONLY thing overriding the browser's own UA stylesheet default
|
|
28
|
+
for `<th>` (`font-weight: bold; text-align: center`) on that cell --
|
|
29
|
+
once the leak stopped, a plain-text primary column fell through to
|
|
30
|
+
bold+centred instead of matching its sibling `<td>`s (`400`/start,
|
|
31
|
+
Attio's own plain-text primary cell). `text-align` was already safe (the base `& th, & td` rule's own `text-align: start` above is
|
|
32
|
+
author-origin and always beats the UA stylesheet regardless of
|
|
33
|
+
specificity) but is restated here explicitly, defensively -- cheap,
|
|
34
|
+
and removes any doubt. `type: "entity"` primary columns are a
|
|
35
|
+
separate case (Attio's own entity/record names are 500, not 400) -- see `.crisp-datatable-entity-name`'s own new explicit weight in
|
|
36
|
+
datatable.recipe.ts, which wins here by class specificity. */
|
|
37
|
+
& tbody th { font-weight: var(--crisp-weight-regular); text-align: start; }
|
|
26
38
|
& th:last-child, & td:last-child { border-inline-end: none; }
|
|
27
39
|
& tbody tr:last-child td { border-bottom: none; }
|
|
28
40
|
/* #554: sticky to the bottom, mirroring `.crisp-recordstable-sum`. */
|
package/dist/table.layered.css
CHANGED
|
@@ -24,6 +24,18 @@
|
|
|
24
24
|
row's own grid line. `thead th` simply never matches `tbody th[scope=row]` at all, so none of this reaches it; the base `& th, & td` rule above (36px, one border-bottom, full opacity via `& table`'s own color) applies to it like every other cell. */
|
|
25
25
|
& thead th { position: sticky; top: 0; z-index: 2; height: var(--crisp-size-tableHeader); background: var(--crisp-bg-surface); border-top: 1px solid var(--crisp-border-subtle); font-size: var(--crisp-text-lg); font-weight: var(--crisp-weight-medium); letter-spacing: -0.14px; color: var(--crisp-fg-primary); user-select: none; }
|
|
26
26
|
& td { color: var(--crisp-fg-primary); background: var(--crisp-bg-surface); }
|
|
27
|
+
/* crisp#851 -- a REGRESSION from #833/#835/#848's own fix: scoping the header rule above to `thead th` correctly stopped it leaking onto the primary column's body cell (a real `<th scope="row">` since
|
|
28
|
+
#779), but that same leaked rule's `font-weight: var(--crisp-weight-medium)` was the ONLY thing overriding the browser's own UA stylesheet default
|
|
29
|
+
for `<th>` (`font-weight: bold; text-align: center`) on that cell --
|
|
30
|
+
once the leak stopped, a plain-text primary column fell through to
|
|
31
|
+
bold+centred instead of matching its sibling `<td>`s (`400`/start,
|
|
32
|
+
Attio's own plain-text primary cell). `text-align` was already safe (the base `& th, & td` rule's own `text-align: start` above is
|
|
33
|
+
author-origin and always beats the UA stylesheet regardless of
|
|
34
|
+
specificity) but is restated here explicitly, defensively -- cheap,
|
|
35
|
+
and removes any doubt. `type: "entity"` primary columns are a
|
|
36
|
+
separate case (Attio's own entity/record names are 500, not 400) -- see `.crisp-datatable-entity-name`'s own new explicit weight in
|
|
37
|
+
datatable.recipe.ts, which wins here by class specificity. */
|
|
38
|
+
& tbody th { font-weight: var(--crisp-weight-regular); text-align: start; }
|
|
27
39
|
& th:last-child, & td:last-child { border-inline-end: none; }
|
|
28
40
|
& tbody tr:last-child td { border-bottom: none; }
|
|
29
41
|
/* #554: sticky to the bottom, mirroring `.crisp-recordstable-sum`. */
|