@lobehub/ui 5.64.3 → 5.64.4

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.
@@ -30,7 +30,7 @@ declare const styles: {
30
30
  };
31
31
  declare const rootVariants: (props?: ({
32
32
  shadow?: boolean | null | undefined;
33
- size?: "small" | "middle" | "large" | null | undefined;
33
+ size?: "large" | "middle" | "small" | null | undefined;
34
34
  variant?: "filled" | "outlined" | "borderless" | null | undefined;
35
35
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
36
36
  //#endregion
@@ -41,10 +41,45 @@ const styles = createStaticStyles(({ css, cssVar }) => {
41
41
  `;
42
42
  const startShadow = `box-shadow: inset 10px 0 8px -8px ${cssVar.colorSplit};`;
43
43
  const endShadow = `box-shadow: inset -10px 0 8px -8px ${cssVar.colorSplit};`;
44
+ const cornerClip = (radius) => `
45
+ & > ${p}-container {
46
+ --lobe-table-radius-top: ${radius};
47
+ --lobe-table-radius-bottom: ${radius};
48
+ }
49
+
50
+ & > ${p}-title + ${p}-container {
51
+ --lobe-table-radius-top: 0px;
52
+ }
53
+
54
+ &:has(> ${p}-footer) > ${p}-container {
55
+ --lobe-table-radius-bottom: 0px;
56
+ }
57
+
58
+ ${ownRows.split(", ").map((r) => r.replace(" > * > tr", " > thead > tr:first-child > :first-child")).join(", ")} {
59
+ border-start-start-radius: var(--lobe-table-radius-top);
60
+ }
61
+
62
+ ${ownRows.split(", ").map((r) => r.replace(" > * > tr", " > thead > tr:first-child > :last-child")).join(", ")} {
63
+ border-start-end-radius: var(--lobe-table-radius-top);
64
+ }
65
+
66
+ ${ownRows.split(", ").map((r) => r.replace(" > * > tr", " > tbody > tr:last-child > :first-child")).join(", ")} {
67
+ border-end-start-radius: var(--lobe-table-radius-bottom);
68
+ }
69
+
70
+ ${ownRows.split(", ").map((r) => r.replace(" > * > tr", " > tbody > tr:last-child > :last-child")).join(", ")} {
71
+ border-end-end-radius: var(--lobe-table-radius-bottom);
72
+ }
73
+
74
+ & ${p}-frost-start, & ${p}-frost-end {
75
+ border-radius: inherit;
76
+ }
77
+ `;
44
78
  return {
45
79
  outlined: css`
46
80
  &${p}-outlined {
47
81
  ${variantVars}
82
+ ${cornerClip(`calc(${cssVar.borderRadiusLG} - 1px)`)}
48
83
  /* The square root must not paint behind the rounded frame: the clipped container
49
84
  is the ONE layer carrying the body (light colorBgContainer, dark
50
85
  colorFillQuaternary). Title / footer are siblings, so they paint it once too. */
@@ -132,13 +167,23 @@ const styles = createStaticStyles(({ css, cssVar }) => {
132
167
  `,
133
168
  frostStart: css`
134
169
  position: sticky;
170
+
171
+ border-start-start-radius: var(--lobe-table-radius-top, 0);
172
+ border-end-start-radius: var(--lobe-table-radius-bottom, 0);
173
+
135
174
  inset-inline-start: 0;
175
+
136
176
  flex: none;
177
+
137
178
  height: 100%;
138
179
  ${frost}
139
180
  `,
140
181
  frostEnd: css`
141
182
  position: sticky;
183
+
184
+ border-start-end-radius: var(--lobe-table-radius-top, 0);
185
+ border-end-end-radius: var(--lobe-table-radius-bottom, 0);
186
+
142
187
  inset-inline-end: 0;
143
188
 
144
189
  flex: none;
@@ -150,6 +195,7 @@ const styles = createStaticStyles(({ css, cssVar }) => {
150
195
  filled: css`
151
196
  &${p}-filled {
152
197
  ${variantVars}
198
+ ${cornerClip(cssVar.borderRadiusLG)}
153
199
  /* Filled owns its fill in both modes (Block filled = colorFillTertiary; dark uses the
154
200
  Quaternary surface) and its opaque base is the page behind it, not colorBgContainer. */
155
201
  --lobe-table-fill: var(--lobe-table-surface, ${cssVar.colorFillTertiary});
@@ -1 +1 @@
1
- {"version":3,"file":"style.mjs","names":[],"sources":["../../../src/base-ui/Table/style.ts"],"sourcesContent":["import { createStaticStyles } from 'antd-style';\n\n/** Own prefix so rc-table classNames never collide with antd's global `.ant-table` CSS. */\nexport const PREFIX_CLS = 'lobe-table';\n\nconst p = `.${PREFIX_CLS}`;\n\n// Cell padding comes from the size class through these vars, so title / footer / expanded rows\n// can reuse (and negate) it.\nconst PADDING_BLOCK = '--lobe-table-padding-block';\nconst PADDING_INLINE = '--lobe-table-padding-inline';\n\n// Matches antd's `zIndexTableFixed`.\nconst Z_FIXED = 2;\n\n// antd `expandColumnWidth`; nested tables start after it.\nexport const EXPAND_COLUMN_WIDTH = 48;\n\n// antd `selectionColumnWidth`, plus the `selections` trigger when there is one.\nexport const SELECTION_COLUMN_WIDTH = 32;\nexport const SELECTION_DROPDOWN_WIDTH = 24;\n\n/** Rows of this table's own sections only, so the rules never leak into nested tables. */\nconst ownRows = ['content', 'header', 'body', 'summary']\n .map((section) => `& > ${p}-container > ${p}-${section} > table > * > tr`)\n .join(', ');\nconst ownCells = (cell: string) =>\n ownRows\n .split(', ')\n .map((row) => `${row} > ${cell}`)\n .join(', ');\n\nexport const styles = createStaticStyles(({ css, cssVar }) => {\n // Light colorFill / dark colorFillSecondary (see --lobe-fill-border in ThemeProvider).\n const borderColor = `var(--lobe-fill-border, ${cssVar.colorFill})`;\n const border = `1px solid ${borderColor}`;\n // Dark: colorFillQuaternary on the clipped container; unset in light so variants keep their fills.\n const surface = (light: string) => `var(--lobe-table-surface, ${light})`;\n // Cell background. Every table root resets it to colorBgContainer (so nested / borderless\n // tables never inherit it); outlined / filled switch it to transparent in dark.\n const cellBg = `var(--lobe-table-cell, ${cssVar.colorBgContainer})`;\n // The variant fill that opaque composites (fixed cells, sticky holder, summary) repeat\n // once. Reset to transparent per root; outlined / filled set it to the dark surface.\n const fill = 'var(--lobe-table-fill, transparent)';\n // Row states: translucent fills on the cell only (never on tr), same for every variant,\n // normal / fixed cells and the virtual body.\n const hoverBg = cssVar.colorFillTertiary;\n const selectedBg = `color-mix(in srgb, ${cssVar.colorPrimary} 6%, transparent)`;\n const selectedHoverBg = `color-mix(in srgb, ${cssVar.colorPrimary} 10%, transparent)`;\n // Fixed cells are see-through. Their frosted backdrop is not painted per cell (each box\n // would blur on its own and show seams at every row): FixedFrost portals one sticky pane\n // per fixed side into each scroll host (frostRail / frostStart / frostEnd below). The\n // sticky header is a single element and blurs itself.\n const frost = `\n -webkit-backdrop-filter: blur(16px);\n backdrop-filter: blur(16px);\n `;\n const variantVars = `\n --lobe-table-cell: var(--lobe-table-cell-bg, ${cssVar.colorBgContainer});\n --lobe-table-fill: var(--lobe-table-surface, transparent);\n `;\n const fixShadowBase = `\n pointer-events: none;\n content: '';\n position: absolute;\n inset-block: 0 -1px;\n width: 30px;\n transition: box-shadow ${cssVar.motionDurationSlow};\n `;\n const startShadow = `box-shadow: inset 10px 0 8px -8px ${cssVar.colorSplit};`;\n const endShadow = `box-shadow: inset -10px 0 8px -8px ${cssVar.colorSplit};`;\n\n return {\n outlined: css`\n &${p}-outlined {\n ${variantVars}\n /* The square root must not paint behind the rounded frame: the clipped container\n is the ONE layer carrying the body (light colorBgContainer, dark\n colorFillQuaternary). Title / footer are siblings, so they paint it once too. */\n background: transparent;\n\n & > ${p}-container {\n background: ${surface(cssVar.colorBgContainer)};\n }\n\n & > ${p}-title, & > ${p}-footer {\n background: ${surface(cssVar.colorBgContainer)};\n }\n\n & > ${p}-title {\n border: ${border};\n border-block-end: 0;\n border-start-start-radius: ${cssVar.borderRadiusLG};\n border-start-end-radius: ${cssVar.borderRadiusLG};\n }\n\n /* The container draws the full frame (incl. bottom). Last-row borders used to stand\n in for the bottom edge, but with scroll.y / virtual the last row sits inside the\n body viewport - overflow:clip + radius then eats that line at the rounded corners.\n No column dividers (grouped headers included): rows are split horizontally only. */\n & > ${p}-container {\n overflow: clip;\n border: ${border};\n border-radius: ${cssVar.borderRadiusLG};\n\n /* Same lift as the dashboard Surface card (both modes). Outer shadow on the framed\n container is not clipped by its own overflow. */\n box-shadow: rgb(0 0 0 / 4%) 0 1px 2px 0;\n }\n\n & > ${p}-title + ${p}-container {\n border-start-start-radius: 0;\n border-start-end-radius: 0;\n }\n\n &:has(> ${p}-footer) > ${p}-container {\n border-block-end: 0;\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n }\n\n & > ${p}-footer {\n border: ${border};\n border-block-start: 0;\n border-end-start-radius: ${cssVar.borderRadiusLG};\n border-end-end-radius: ${cssVar.borderRadiusLG};\n }\n\n /* Every header row (including the last) draws one bottom edge — no inset\n shadow underneath, or group headers look double-thick. */\n & > ${p}-container > * > table > thead > tr > th {\n border-block-end: ${border};\n\n /* Extra FillQuaternary layer on top of the container fill. */\n background: ${cellBg};\n box-shadow: inset 0 999px 0 ${cssVar.colorFillQuaternary};\n }\n\n /* Fixed cells: see-through (container fill shows) + backdrop blur only. */\n & ${p}-tbody > tr > td${p}-cell-fix, & ${p}-tbody-virtual ${p}-cell${p}-cell-fix {\n background: transparent;\n box-shadow: none;\n }\n\n /* Header: container fill + one Quaternary wash (box-shadow), like other th. */\n & ${p}-thead > tr > th${p}-cell-fix, & ${p}-thead > tr > td${p}-cell-fix {\n background: transparent;\n box-shadow: inset 0 999px 0 ${cssVar.colorFillQuaternary};\n }\n }\n `,\n\n /* Mirrors Block \\`filled\\`: one colorFillTertiary (dark: colorFillQuaternary on the clipped\n container) surface straight on the parent and no frame border. */\n /* FixedFrost rail: absolute over the table (or the virtual row layer), z-index 1 puts it\n above scrolling cells (z auto) and under fixed cells (z >= 2). */\n frostRail: css`\n pointer-events: none;\n\n position: absolute;\n z-index: 1;\n inset-block-start: 0;\n inset-inline-start: 0;\n\n display: flex;\n `,\n frostStart: css`\n position: sticky;\n inset-inline-start: 0;\n flex: none;\n height: 100%;\n ${frost}\n `,\n frostEnd: css`\n position: sticky;\n inset-inline-end: 0;\n\n flex: none;\n\n height: 100%;\n margin-inline-start: auto;\n ${frost}\n `,\n filled: css`\n &${p}-filled {\n ${variantVars}\n /* Filled owns its fill in both modes (Block filled = colorFillTertiary; dark uses the\n Quaternary surface) and its opaque base is the page behind it, not colorBgContainer. */\n --lobe-table-fill: var(--lobe-table-surface, ${cssVar.colorFillTertiary});\n\n /* Root stays clear (square box, would bleed past the rounded corners); the clipped\n container is the ONE fill layer: light FillTertiary, dark colorFillQuaternary. */\n background: transparent;\n\n & > ${p}-title, & > ${p}-footer {\n border-radius: ${cssVar.borderRadiusLG};\n background: ${fill};\n }\n\n & > ${p}-title {\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n }\n\n & > ${p}-footer {\n border-start-start-radius: 0;\n border-start-end-radius: 0;\n }\n\n & > ${p}-container {\n overflow: clip;\n border-radius: ${cssVar.borderRadiusLG};\n background: ${fill};\n }\n\n & > ${p}-title + ${p}-container {\n border-start-start-radius: 0;\n border-start-end-radius: 0;\n }\n\n &:has(> ${p}-footer) > ${p}-container {\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n }\n\n /* Header band: one extra FillQuaternary wash over the container fill. */\n & ${p}-thead > tr > th,\n & ${p}-thead > tr > td {\n background: transparent;\n box-shadow:\n inset 0 -1px 0 ${borderColor},\n inset 0 999px 0 ${cssVar.colorFillQuaternary};\n }\n\n /* Row dividers stay on (base border rule); body is clear over the container fill. */\n & ${p}-tbody > tr > td,\n & ${p}-tbody > tr > th,\n & ${p}-tbody-virtual ${p}-cell {\n background: transparent;\n }\n\n /* Fixed cells: see-through + blur; header keeps the same divider + wash as every th. */\n & ${p}-thead > tr > th${p}-cell-fix, & ${p}-thead > tr > td${p}-cell-fix {\n background: transparent;\n box-shadow:\n inset 0 -1px 0 ${borderColor},\n inset 0 999px 0 ${cssVar.colorFillQuaternary};\n }\n\n & ${p}-tbody > tr > td${p}-cell-fix {\n background: transparent;\n box-shadow: none;\n }\n }\n `,\n /**\n * Borderless: everything but the header is see-through, so the table sits on whatever\n * surface hosts it. Hover / selected rows are translucent fills. Fixed (sticky) cells\n * are see-through with a frosted backdrop so scrolled content stays obscured.\n */\n borderless: css`\n && {\n background: transparent;\n }\n\n && ${p}-tbody > tr > td,\n && ${p}-tbody > tr > th,\n && ${p}-tbody-virtual ${p}-cell, && ${p}-summary, && ${p}-summary > tr > td,\n && ${p}-summary > tr > th,\n && > ${p}-footer {\n background: transparent;\n }\n\n && ${p}-tbody > tr > td${p}-cell-row-hover, && ${p}-tbody-virtual ${p}-row:hover > ${p}-cell {\n background: ${hoverBg};\n }\n\n && ${p}-tbody > tr${p}-row-selected > td {\n background: ${selectedBg};\n\n &${p}-cell-row-hover {\n background: ${selectedHoverBg};\n }\n }\n\n &&\n ${p}-tbody\n > tr\n > td${p}-cell-fix,\n &&\n ${p}-tbody\n > tr\n > th${p}-cell-fix,\n &&\n ${p}-tbody-virtual\n ${p}-cell${p}-cell-fix {\n background: transparent;\n }\n\n && ${p}-tbody > tr > td${p}-cell-fix${p}-cell-row-hover {\n background: ${hoverBg};\n }\n\n && ${p}-tbody > tr${p}-row-selected > td${p}-cell-fix {\n background: ${selectedBg};\n\n &${p}-cell-row-hover {\n background: ${selectedHoverBg};\n }\n }\n `,\n /**\n * Grouped (multi-level) headers only: column dividers in header and body so the\n * group spans stay readable. Plain tables never get vertical dividers.\n */\n grouped: css`\n ${ownCells('th')}, ${ownCells('td')} {\n border-inline-end: ${border};\n }\n\n & ${p}-tbody-virtual ${p}-cell {\n border-inline-end: ${border};\n }\n\n /* Outlined: the container already draws the trailing edge. Other variants: the\n rightmost body cell and first header row cell stop at the table edge. */\n &:not(${p}-outlined) ${p}-tbody > tr > td:last-child,\n &:not(${p}-outlined) ${p}-thead > tr:first-child > th:last-child,\n &${p}-outlined ${p}-tbody > tr > td:last-child,\n &${p}-outlined ${p}-thead > tr:first-child > th:last-child {\n border-inline-end: 0;\n }\n `,\n clickable: css`\n cursor: pointer;\n `,\n /** Title text of an `ellipsis` column; truncates inside the sort button / header controls. */\n columnTitle: css`\n overflow: hidden;\n\n min-width: 0;\n\n text-overflow: ellipsis;\n word-break: keep-all;\n white-space: nowrap;\n `,\n filterActive: css`\n &&,\n &&:hover {\n color: ${cssVar.colorPrimary};\n }\n `,\n filterButton: css`\n flex: none;\n margin-block: -4px;\n `,\n filterButtons: css`\n display: flex;\n gap: 8px;\n align-items: center;\n justify-content: space-between;\n\n padding-block: 7px;\n padding-inline: 8px;\n border-block-start: 1px solid ${cssVar.colorSplit};\n `,\n filterCheckAll: css`\n margin-block-end: 4px;\n padding-inline: 4px;\n `,\n filterDropdown: css`\n display: flex;\n flex-direction: column;\n min-width: 120px;\n `,\n filterEmpty: css`\n padding-block: 16px;\n padding-inline: 0;\n `,\n filterGroup: css`\n display: flex;\n flex-direction: column;\n\n & > div:not(:first-child) {\n padding-inline-start: 20px;\n }\n `,\n filterGroupTitle: css`\n padding-block: 5px;\n padding-inline: 8px;\n font-size: 12px;\n color: ${cssVar.colorTextDescription};\n `,\n filterItem: css`\n display: flex;\n align-items: center;\n\n padding-block: 5px;\n padding-inline: 8px;\n border-radius: ${cssVar.borderRadiusSM};\n\n white-space: nowrap;\n\n &:hover {\n background: ${cssVar.colorFillTertiary};\n }\n\n & > label {\n cursor: pointer;\n flex: 1;\n }\n `,\n filterMenu: css`\n overflow: auto;\n display: flex;\n flex-direction: column;\n\n max-height: 264px;\n padding: 4px;\n `,\n filterPopup: css`\n overflow: hidden;\n padding: 0;\n `,\n filterSearch: css`\n padding: 8px;\n border-block-end: 1px solid ${cssVar.colorSplit};\n `,\n filterTree: css`\n overflow: auto;\n max-height: 264px;\n padding: 8px;\n `,\n headerInner: css`\n display: inline-flex;\n gap: 6px;\n align-items: center;\n\n min-width: 0;\n max-width: 100%;\n\n vertical-align: middle;\n `,\n hoverable: css`\n /* &&& outranks the variant cell rules (filled clear cells, transparent fixed cells). */\n &&& ${p}-tbody > tr > ${p}-cell-row-hover, &&& ${p}-tbody-virtual ${p}-row:hover > ${p}-cell {\n background: ${hoverBg};\n }\n `,\n loading: css`\n position: absolute;\n z-index: calc(var(--columns-count, 1) * 2 + ${Z_FIXED} + 2);\n inset: 0;\n\n display: flex;\n flex-direction: column;\n gap: 8px;\n align-items: center;\n justify-content: center;\n\n color: ${cssVar.colorTextSecondary};\n\n background: color-mix(in srgb, ${cssVar.colorBgContainer} 60%, transparent);\n `,\n /**\n * Empty-state loading body. Tracks follow leaf column widths so bars sit under the\n * live header; cell padding reuses the size CSS vars on the table ancestor.\n */\n skeleton: css`\n display: flex;\n flex-direction: column;\n\n width: 100%;\n min-width: 0;\n\n text-align: start;\n `,\n skeletonCell: css`\n display: flex;\n align-items: center;\n\n min-width: 0;\n padding-block: var(${PADDING_BLOCK});\n padding-inline: var(${PADDING_INLINE});\n `,\n skeletonRow: css`\n display: grid;\n align-items: stretch;\n\n width: 100%;\n min-width: 0;\n border-block-end: 1px solid ${borderColor};\n\n &:last-child {\n border-block-end: 0;\n }\n `,\n // antd `paginationMargin` (token.margin): keep the pager off the table above and off\n // whatever sits below the table.\n pagination: css`\n display: flex;\n margin-block: 16px;\n `,\n paginationCenter: css`\n justify-content: center;\n `,\n paginationEnd: css`\n justify-content: flex-end;\n `,\n paginationStart: css`\n justify-content: flex-start;\n `,\n paginationTop: css`\n margin-block: 0 16px;\n `,\n root: css`\n min-width: 0;\n `,\n /** Header box of the selection column; `selectionExtra` hangs off its end. */\n selection: css`\n position: relative;\n display: inline-flex;\n flex-direction: column;\n vertical-align: middle;\n `,\n selectionColumn: css`\n && {\n padding-inline: 8px;\n text-align: center;\n }\n\n & > * {\n vertical-align: middle;\n }\n `,\n selectionExtra: css`\n position: absolute;\n z-index: 1;\n inset-block-start: 0;\n\n display: flex;\n align-items: center;\n\n height: 100%;\n margin-inline-start: 100%;\n padding-inline-start: 2px;\n `,\n selectionRadioGroup: css`\n display: inline-flex;\n vertical-align: middle;\n `,\n selectionTrigger: css`\n flex: none;\n margin-block: -4px;\n `,\n sizeLarge: css`\n ${PADDING_BLOCK}: 16px;\n ${PADDING_INLINE}: 16px;\n\n /* Same as VIRTUAL_ROW_HEIGHT in Table.tsx (padding * 2 + 22px line + 1px divider). */\n --lobe-table-virtual-row-height: calc(16px * 2 + 23px);\n `,\n sizeMedium: css`\n ${PADDING_BLOCK}: 12px;\n ${PADDING_INLINE}: 16px;\n\n /* Same as VIRTUAL_ROW_HEIGHT in Table.tsx (padding * 2 + 22px line + 1px divider). */\n --lobe-table-virtual-row-height: calc(12px * 2 + 23px);\n `,\n sizeSmall: css`\n ${PADDING_BLOCK}: 8px;\n ${PADDING_INLINE}: 12px;\n\n /* Same as VIRTUAL_ROW_HEIGHT in Table.tsx (padding * 2 + 22px line + 1px divider). */\n --lobe-table-virtual-row-height: calc(8px * 2 + 23px);\n `,\n // Title + sort ActionIcon row (not a button — the ActionIcon owns the click).\n sortButton: css`\n display: inline-flex;\n gap: 4px;\n align-items: center;\n\n min-width: 0;\n max-width: 100%;\n `,\n // Matches the filter trigger: small ActionIcon with a slight negative margin so the\n // 24px block does not grow the header.\n sortCaret: css`\n flex: none;\n margin-block: -4px;\n `,\n sortTitle: css`\n cursor: pointer;\n min-width: 0;\n `,\n sortedColumn: css`\n ${p}-tbody > tr > &${p}-cell {\n background: ${cssVar.colorFillQuaternary};\n }\n `,\n spinContainer: css`\n position: relative;\n `,\n table: css`\n /* Reset per root so nested / borderless tables never inherit a parent's variant vars. */\n --lobe-table-cell: ${cssVar.colorBgContainer};\n --lobe-table-fill: transparent;\n\n font-size: 14px;\n color: ${cssVar.colorText};\n background: ${cssVar.colorBgContainer};\n\n & table {\n border-spacing: 0;\n border-collapse: separate;\n width: 100%;\n text-align: start;\n }\n\n /* ============================== Cell ============================== */\n & ${p}-cell, & ${p}-thead > tr > th,\n & ${p}-tbody > tr > td,\n & tfoot > tr > th,\n & tfoot > tr > td {\n position: relative;\n\n padding-block: var(${PADDING_BLOCK});\n padding-inline: var(${PADDING_INLINE});\n\n overflow-wrap: break-word;\n\n /* The global \\`* { vertical-align: baseline }\\` reset drops the UA's middle for cells. */\n vertical-align: middle;\n }\n\n /* Row-merged body cells (rowSpan > 1, table and virtual body alike) get vertical\n dividers so the block reads apart from the neighbour rows' lines. Drawn on ::before\n (::after is the fixed-column scroll shadow) so cell box-shadows stay untouched. The\n first / last column skip the edge the frame or table edge already provides. */\n & ${p}-tbody > tr > td[rowspan]:not([rowspan='0'], [rowspan='1'])::before,\n & ${p}-tbody-virtual ${p}-cell[rowspan]:not([rowspan='0'], [rowspan='1'])::before {\n pointer-events: none;\n content: '';\n\n position: absolute;\n inset: 0;\n\n border-inline: ${border};\n }\n\n & ${p}-tbody > tr > td[rowspan]:first-child::before,\n & ${p}-tbody-virtual ${p}-cell[rowspan]:first-child::before {\n border-inline-start: 0;\n }\n\n & ${p}-tbody > tr > td[rowspan]:last-child::before,\n & ${p}-tbody-virtual ${p}-cell[rowspan]:last-child::before {\n border-inline-end: 0;\n }\n\n & ${p}-thead > tr > th,\n & ${p}-thead > tr > td {\n font-size: 13px;\n font-weight: 500;\n color: ${cssVar.colorTextSecondary};\n text-align: start;\n\n /* Clear in dark (outlined) so the container fill shows; Quaternary is the extra header layer. */\n background: ${cellBg};\n box-shadow:\n inset 0 -1px 0 ${borderColor},\n inset 0 999px 0 ${cssVar.colorFillQuaternary};\n\n &[colspan]:not([colspan='1']) {\n text-align: center;\n }\n }\n\n /* th covers rowScope row headers. */\n & ${p}-tbody > tr > td,\n & ${p}-tbody > tr > th {\n border-block-end: ${border};\n\n font-weight: inherit;\n font-variant-numeric: tabular-nums;\n text-align: start;\n\n /* Clear in dark (outlined) so the container fill shows through. */\n background: ${cellBg};\n\n transition: background-color ${cssVar.motionDurationMid};\n }\n\n /* Filled / outlined drop the last body divider: filled because its fill is the edge,\n outlined because the container now draws the frame bottom (avoids a double line, and\n keeps the outline when scroll.y / virtual would otherwise scroll the last-row edge\n away). Borderless keeps it as the closing rule under the rows. */\n &${p}-filled ${p}-tbody > tr:last-child > td,\n &${p}-filled ${p}-tbody > tr:last-child > th,\n &${p}-outlined ${p}-tbody > tr:last-child > td,\n &${p}-outlined ${p}-tbody > tr:last-child > th {\n border-block-end: 0;\n }\n\n /* Borderless with a summary: tfoot draws its own top rule, so skip the last-row one. */\n &${p}-borderless table:has(> tfoot) > ${p}-tbody > tr:last-child > td,\n &${p}-borderless table:has(> tfoot) > ${p}-tbody > tr:last-child > th {\n border-block-end: 0;\n }\n\n & ${p}-tbody > tr${p}-placeholder > td {\n padding-block: 32px;\n color: ${cssVar.colorTextDescription};\n text-align: center;\n }\n\n /* Skeleton loading fills the placeholder like real body rows. */\n & ${p}-tbody > tr${p}-placeholder > td:has([data-table-skeleton]) {\n padding: 0;\n color: inherit;\n text-align: start;\n vertical-align: top;\n }\n\n & ${p}-cell-scrollbar:not([rowspan]) {\n box-shadow: 0 1px 0 1px ${cssVar.colorFillQuaternary};\n }\n\n /* ============================ Ellipsis ============================ */\n & ${p}-cell-ellipsis {\n overflow: hidden;\n text-overflow: ellipsis;\n word-break: keep-all;\n white-space: nowrap;\n\n &${p}-cell-fix-start-shadow, &${p}-cell-fix-end-shadow {\n overflow: visible;\n\n & ${p}-cell-content {\n overflow: hidden;\n display: block;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n }\n }\n\n /* ========================== Title / Footer ========================= */\n & > ${p}-title, & > ${p}-footer {\n padding-block: var(${PADDING_BLOCK});\n padding-inline: var(${PADDING_INLINE});\n }\n\n & > ${p}-footer {\n color: ${cssVar.colorText};\n background: ${cssVar.colorFillQuaternary};\n }\n\n /* ============================== Fixed ============================= */\n & ${p}-container {\n position: relative;\n\n &::before,\n &::after {\n ${fixShadowBase}\n z-index: calc(var(--columns-count, 1) * 2 + ${Z_FIXED} + 1);\n }\n\n &::before {\n inset-inline-start: 0;\n }\n\n &::after {\n inset-inline-end: 0;\n }\n }\n\n &${p}-has-fix-start > ${p}-container::before, &${p}-has-fix-end > ${p}-container::after {\n display: none;\n }\n\n &${p}-fix-start-shadow-show > ${p}-container::before {\n ${startShadow}\n }\n\n &${p}-fix-end-shadow-show > ${p}-container::after {\n ${endShadow}\n }\n\n /* Must outrank the generic cell rule that sets position: relative. */\n &\n ${p}-thead\n > tr\n > th${p}-cell-fix,\n &\n ${p}-tbody\n > tr\n > td${p}-cell-fix,\n &\n ${p}-cell${p}-cell-fix {\n position: sticky;\n z-index: calc(var(--z-offset-reverse) + ${Z_FIXED});\n }\n\n & ${p}-cell-fix {\n background: transparent;\n\n &::after {\n ${fixShadowBase}\n }\n }\n\n & ${p}-cell-fix-start::after {\n inset-inline-start: 100%;\n }\n\n & ${p}-cell-fix-end::after {\n inset-inline-end: 100%;\n }\n\n & ${p}-cell-fix-start-shadow-show::after {\n ${startShadow}\n }\n\n & ${p}-cell-fix-end-shadow-show::after {\n ${endShadow}\n }\n\n /* ============================= Sticky ============================= */\n & ${p}-sticky-holder {\n position: sticky;\n z-index: calc(var(--columns-count, 1) * 2 + ${Z_FIXED} + 1);\n background: transparent;\n\n /* The whole sticky header is one element, so it blurs as one continuous block. */\n ${frost}\n }\n\n & ${p}-sticky-scroll {\n position: sticky;\n z-index: calc(var(--columns-count, 1) * 2 + ${Z_FIXED} + 1);\n inset-block-end: 0;\n }\n\n /* ============================ Selection =========================== */\n & ${p}-selection-col {\n width: ${SELECTION_COLUMN_WIDTH}px;\n\n &${p}-selection-col-with-dropdown {\n width: ${SELECTION_COLUMN_WIDTH + SELECTION_DROPDOWN_WIDTH}px;\n }\n }\n\n &${p}-outlined ${p}-selection-col {\n width: ${SELECTION_COLUMN_WIDTH + 16}px;\n\n &${p}-selection-col-with-dropdown {\n width: ${SELECTION_COLUMN_WIDTH + SELECTION_DROPDOWN_WIDTH + 16}px;\n }\n }\n\n /* The table css carries no hoverable class, so use a fourth & to outrank hover too. */\n &&&& ${p}-tbody > tr${p}-row-selected > td {\n background: ${selectedBg};\n\n &${p}-cell-row-hover {\n background: ${selectedHoverBg};\n }\n }\n\n /* ========================= Expand / Tree ========================== */\n & ${p}-expand-icon-col {\n width: ${EXPAND_COLUMN_WIDTH}px;\n }\n\n & ${p}-row-expand-icon-cell {\n text-align: center;\n\n & ${p}-row-expand-icon {\n float: none;\n display: inline-flex;\n vertical-align: sub;\n }\n }\n\n & ${p}-row-indent {\n float: inline-start;\n height: 1px;\n }\n\n & ${p}-row-expand-icon {\n float: inline-start;\n flex: none;\n vertical-align: middle;\n\n &${p}-row-expand-icon-spaced {\n display: inline-block;\n width: 24px;\n height: 24px;\n visibility: hidden;\n }\n }\n\n & ${p}-row-indent + ${p}-row-expand-icon {\n margin-block: -1px;\n margin-inline-end: 8px;\n }\n\n & tr${p}-expanded-row > td,\n & tr${p}-expanded-row:hover > td {\n background: ${cssVar.colorFillQuaternary};\n }\n\n & ${p}-expanded-row-fixed {\n position: relative;\n\n margin-block: calc(var(${PADDING_BLOCK}) * -1);\n margin-inline: calc(var(${PADDING_INLINE}) * -1);\n padding-block: var(${PADDING_BLOCK});\n padding-inline: var(${PADDING_INLINE});\n }\n\n /* ========================== Nested table ========================== */\n\n /* A table alone in a cell fills it, starting after the expand column. */\n &\n ${p}-tbody\n > tr\n > td\n > ${p}-wrapper:only-child,\n &\n ${p}-tbody\n > tr\n > td\n > ${p}-expanded-row-fixed\n > ${p}-wrapper:only-child {\n & ${p} {\n margin-block: calc(var(${PADDING_BLOCK}) * -1);\n margin-inline: calc(${EXPAND_COLUMN_WIDTH}px - var(${PADDING_INLINE}))\n calc(var(${PADDING_INLINE}) * -1);\n }\n\n & ${p}-tbody > tr:last-child > td {\n border-block-end: 0;\n }\n\n /* The outer cell already draws the frame: keep only the start edge of a bordered nest. */\n & ${p}${p}-outlined {\n & > ${p}-title, & > ${p}-container, & > ${p}-footer {\n border-block: 0;\n border-inline-end: 0;\n border-radius: 0;\n box-shadow: none;\n }\n\n & > ${p}-title + ${p}-container {\n border-block-start: ${border};\n }\n\n &:has(> ${p}-footer) > ${p}-container {\n border-block-end: ${border};\n }\n }\n }\n\n &${p}-outlined ${p}-tbody > tr > td > ${p}-expanded-row-fixed {\n margin-inline: calc((var(${PADDING_INLINE}) + 1px) * -1);\n }\n\n /* ============================= Summary ============================ */\n & ${p}-summary {\n position: relative;\n z-index: ${Z_FIXED};\n\n /* See-through; a sticky summary is a sticky holder and gets its frost there. */\n background: transparent;\n\n & > tr > th,\n & > tr > td {\n border-block-end: ${border};\n }\n }\n\n & div${p}-summary {\n box-shadow: 0 -1px 0 ${borderColor};\n }\n\n /* A fixed summary under \\`sticky\\` is a sticky holder too; keep it sticky (antd orders sticky last). */\n & ${p}-summary${p}-sticky-holder {\n position: sticky;\n z-index: calc(var(--columns-count, 1) * 2 + ${Z_FIXED} + 1);\n }\n\n & tfoot > tr > th,\n & tfoot > tr > td {\n border-block-start: ${border};\n }\n\n /* ============================= Virtual ============================ */\n & ${p}-tbody-virtual {\n &\n ${p}-tbody-virtual-holder-inner\n > ${p}-row,\n &\n ${p}-tbody-virtual-holder-inner\n > div:not(${p}-row)\n > ${p}-row {\n display: flex;\n box-sizing: border-box;\n width: 100%;\n\n /* Virtual rows are locked to the listItemHeight estimate (an integer). Measured\n heights then equal the estimate, so a rowSpan cell (height = summed row sizes)\n ends exactly on the neighbour rows' divider instead of drifting by sub-pixel\n rounding or unmeasured-row estimates. */\n &:not(${p}-row-extra, ${p}-expanded-row) {\n height: var(--lobe-table-virtual-row-height);\n }\n\n & > ${p}-cell {\n align-content: center;\n }\n }\n\n & ${p}-cell {\n border-block-end: ${border};\n background: ${cellBg};\n transition: background-color ${cssVar.motionDurationMid};\n }\n\n & ${p}-expanded-row ${p}-expanded-row-cell${p}-expanded-row-cell-fixed {\n position: sticky;\n inset-inline-start: 0;\n overflow: hidden;\n width: calc(var(--virtual-width) - 1px);\n }\n }\n `,\n };\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"style.mjs","names":[],"sources":["../../../src/base-ui/Table/style.ts"],"sourcesContent":["import { createStaticStyles } from 'antd-style';\n\n/** Own prefix so rc-table classNames never collide with antd's global `.ant-table` CSS. */\nexport const PREFIX_CLS = 'lobe-table';\n\nconst p = `.${PREFIX_CLS}`;\n\n// Cell padding comes from the size class through these vars, so title / footer / expanded rows\n// can reuse (and negate) it.\nconst PADDING_BLOCK = '--lobe-table-padding-block';\nconst PADDING_INLINE = '--lobe-table-padding-inline';\n\n// Matches antd's `zIndexTableFixed`.\nconst Z_FIXED = 2;\n\n// antd `expandColumnWidth`; nested tables start after it.\nexport const EXPAND_COLUMN_WIDTH = 48;\n\n// antd `selectionColumnWidth`, plus the `selections` trigger when there is one.\nexport const SELECTION_COLUMN_WIDTH = 32;\nexport const SELECTION_DROPDOWN_WIDTH = 24;\n\n/** Rows of this table's own sections only, so the rules never leak into nested tables. */\nconst ownRows = ['content', 'header', 'body', 'summary']\n .map((section) => `& > ${p}-container > ${p}-${section} > table > * > tr`)\n .join(', ');\nconst ownCells = (cell: string) =>\n ownRows\n .split(', ')\n .map((row) => `${row} > ${cell}`)\n .join(', ');\n\nexport const styles = createStaticStyles(({ css, cssVar }) => {\n // Light colorFill / dark colorFillSecondary (see --lobe-fill-border in ThemeProvider).\n const borderColor = `var(--lobe-fill-border, ${cssVar.colorFill})`;\n const border = `1px solid ${borderColor}`;\n // Dark: colorFillQuaternary on the clipped container; unset in light so variants keep their fills.\n const surface = (light: string) => `var(--lobe-table-surface, ${light})`;\n // Cell background. Every table root resets it to colorBgContainer (so nested / borderless\n // tables never inherit it); outlined / filled switch it to transparent in dark.\n const cellBg = `var(--lobe-table-cell, ${cssVar.colorBgContainer})`;\n // The variant fill that opaque composites (fixed cells, sticky holder, summary) repeat\n // once. Reset to transparent per root; outlined / filled set it to the dark surface.\n const fill = 'var(--lobe-table-fill, transparent)';\n // Row states: translucent fills on the cell only (never on tr), same for every variant,\n // normal / fixed cells and the virtual body.\n const hoverBg = cssVar.colorFillTertiary;\n const selectedBg = `color-mix(in srgb, ${cssVar.colorPrimary} 6%, transparent)`;\n const selectedHoverBg = `color-mix(in srgb, ${cssVar.colorPrimary} 10%, transparent)`;\n // Fixed cells are see-through. Their frosted backdrop is not painted per cell (each box\n // would blur on its own and show seams at every row): FixedFrost portals one sticky pane\n // per fixed side into each scroll host (frostRail / frostStart / frostEnd below). The\n // sticky header is a single element and blurs itself.\n const frost = `\n -webkit-backdrop-filter: blur(16px);\n backdrop-filter: blur(16px);\n `;\n const variantVars = `\n --lobe-table-cell: var(--lobe-table-cell-bg, ${cssVar.colorBgContainer});\n --lobe-table-fill: var(--lobe-table-surface, transparent);\n `;\n const fixShadowBase = `\n pointer-events: none;\n content: '';\n position: absolute;\n inset-block: 0 -1px;\n width: 30px;\n transition: box-shadow ${cssVar.motionDurationSlow};\n `;\n const startShadow = `box-shadow: inset 10px 0 8px -8px ${cssVar.colorSplit};`;\n const endShadow = `box-shadow: inset -10px 0 8px -8px ${cssVar.colorSplit};`;\n\n /* Rounded corners. overflow:clip + radius on the container alone is not enough: corner\n fixed cells (own stacking layer), header washes and the FixedFrost backdrop-filter panes\n are composited separately and WebKit (and browsers without overflow:clip) paint them\n square past the radius. So the corner cells and frost panes carry the matching inner\n radius themselves (vars inherit from the container; 0 next to title / footer). A\n clip-path on the sections is avoided: it becomes a backdrop root and kills the blur. */\n const cornerClip = (radius: string) => `\n & > ${p}-container {\n --lobe-table-radius-top: ${radius};\n --lobe-table-radius-bottom: ${radius};\n }\n\n & > ${p}-title + ${p}-container {\n --lobe-table-radius-top: 0px;\n }\n\n &:has(> ${p}-footer) > ${p}-container {\n --lobe-table-radius-bottom: 0px;\n }\n\n ${ownRows\n .split(', ')\n .map((r) => r.replace(' > * > tr', ' > thead > tr:first-child > :first-child'))\n .join(', ')} {\n border-start-start-radius: var(--lobe-table-radius-top);\n }\n\n ${ownRows\n .split(', ')\n .map((r) => r.replace(' > * > tr', ' > thead > tr:first-child > :last-child'))\n .join(', ')} {\n border-start-end-radius: var(--lobe-table-radius-top);\n }\n\n ${ownRows\n .split(', ')\n .map((r) => r.replace(' > * > tr', ' > tbody > tr:last-child > :first-child'))\n .join(', ')} {\n border-end-start-radius: var(--lobe-table-radius-bottom);\n }\n\n ${ownRows\n .split(', ')\n .map((r) => r.replace(' > * > tr', ' > tbody > tr:last-child > :last-child'))\n .join(', ')} {\n border-end-end-radius: var(--lobe-table-radius-bottom);\n }\n\n & ${p}-frost-start, & ${p}-frost-end {\n border-radius: inherit;\n }\n `;\n\n return {\n outlined: css`\n &${p}-outlined {\n ${variantVars}\n ${cornerClip(`calc(${cssVar.borderRadiusLG} - 1px)`)}\n /* The square root must not paint behind the rounded frame: the clipped container\n is the ONE layer carrying the body (light colorBgContainer, dark\n colorFillQuaternary). Title / footer are siblings, so they paint it once too. */\n background: transparent;\n\n & > ${p}-container {\n background: ${surface(cssVar.colorBgContainer)};\n }\n\n & > ${p}-title, & > ${p}-footer {\n background: ${surface(cssVar.colorBgContainer)};\n }\n\n & > ${p}-title {\n border: ${border};\n border-block-end: 0;\n border-start-start-radius: ${cssVar.borderRadiusLG};\n border-start-end-radius: ${cssVar.borderRadiusLG};\n }\n\n /* The container draws the full frame (incl. bottom). Last-row borders used to stand\n in for the bottom edge, but with scroll.y / virtual the last row sits inside the\n body viewport - overflow:clip + radius then eats that line at the rounded corners.\n No column dividers (grouped headers included): rows are split horizontally only. */\n & > ${p}-container {\n overflow: clip;\n border: ${border};\n border-radius: ${cssVar.borderRadiusLG};\n\n /* Same lift as the dashboard Surface card (both modes). Outer shadow on the framed\n container is not clipped by its own overflow. */\n box-shadow: rgb(0 0 0 / 4%) 0 1px 2px 0;\n }\n\n & > ${p}-title + ${p}-container {\n border-start-start-radius: 0;\n border-start-end-radius: 0;\n }\n\n &:has(> ${p}-footer) > ${p}-container {\n border-block-end: 0;\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n }\n\n & > ${p}-footer {\n border: ${border};\n border-block-start: 0;\n border-end-start-radius: ${cssVar.borderRadiusLG};\n border-end-end-radius: ${cssVar.borderRadiusLG};\n }\n\n /* Every header row (including the last) draws one bottom edge — no inset\n shadow underneath, or group headers look double-thick. */\n & > ${p}-container > * > table > thead > tr > th {\n border-block-end: ${border};\n\n /* Extra FillQuaternary layer on top of the container fill. */\n background: ${cellBg};\n box-shadow: inset 0 999px 0 ${cssVar.colorFillQuaternary};\n }\n\n /* Fixed cells: see-through (container fill shows) + backdrop blur only. */\n & ${p}-tbody > tr > td${p}-cell-fix, & ${p}-tbody-virtual ${p}-cell${p}-cell-fix {\n background: transparent;\n box-shadow: none;\n }\n\n /* Header: container fill + one Quaternary wash (box-shadow), like other th. */\n & ${p}-thead > tr > th${p}-cell-fix, & ${p}-thead > tr > td${p}-cell-fix {\n background: transparent;\n box-shadow: inset 0 999px 0 ${cssVar.colorFillQuaternary};\n }\n }\n `,\n\n /* Mirrors Block \\`filled\\`: one colorFillTertiary (dark: colorFillQuaternary on the clipped\n container) surface straight on the parent and no frame border. */\n /* FixedFrost rail: absolute over the table (or the virtual row layer), z-index 1 puts it\n above scrolling cells (z auto) and under fixed cells (z >= 2). */\n frostRail: css`\n pointer-events: none;\n\n position: absolute;\n z-index: 1;\n inset-block-start: 0;\n inset-inline-start: 0;\n\n display: flex;\n `,\n frostStart: css`\n position: sticky;\n\n border-start-start-radius: var(--lobe-table-radius-top, 0);\n border-end-start-radius: var(--lobe-table-radius-bottom, 0);\n\n inset-inline-start: 0;\n\n flex: none;\n\n height: 100%;\n ${frost}\n `,\n frostEnd: css`\n position: sticky;\n\n border-start-end-radius: var(--lobe-table-radius-top, 0);\n border-end-end-radius: var(--lobe-table-radius-bottom, 0);\n\n inset-inline-end: 0;\n\n flex: none;\n\n height: 100%;\n margin-inline-start: auto;\n ${frost}\n `,\n filled: css`\n &${p}-filled {\n ${variantVars}\n ${cornerClip(cssVar.borderRadiusLG)}\n /* Filled owns its fill in both modes (Block filled = colorFillTertiary; dark uses the\n Quaternary surface) and its opaque base is the page behind it, not colorBgContainer. */\n --lobe-table-fill: var(--lobe-table-surface, ${cssVar.colorFillTertiary});\n\n /* Root stays clear (square box, would bleed past the rounded corners); the clipped\n container is the ONE fill layer: light FillTertiary, dark colorFillQuaternary. */\n background: transparent;\n\n & > ${p}-title, & > ${p}-footer {\n border-radius: ${cssVar.borderRadiusLG};\n background: ${fill};\n }\n\n & > ${p}-title {\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n }\n\n & > ${p}-footer {\n border-start-start-radius: 0;\n border-start-end-radius: 0;\n }\n\n & > ${p}-container {\n overflow: clip;\n border-radius: ${cssVar.borderRadiusLG};\n background: ${fill};\n }\n\n & > ${p}-title + ${p}-container {\n border-start-start-radius: 0;\n border-start-end-radius: 0;\n }\n\n &:has(> ${p}-footer) > ${p}-container {\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n }\n\n /* Header band: one extra FillQuaternary wash over the container fill. */\n & ${p}-thead > tr > th,\n & ${p}-thead > tr > td {\n background: transparent;\n box-shadow:\n inset 0 -1px 0 ${borderColor},\n inset 0 999px 0 ${cssVar.colorFillQuaternary};\n }\n\n /* Row dividers stay on (base border rule); body is clear over the container fill. */\n & ${p}-tbody > tr > td,\n & ${p}-tbody > tr > th,\n & ${p}-tbody-virtual ${p}-cell {\n background: transparent;\n }\n\n /* Fixed cells: see-through + blur; header keeps the same divider + wash as every th. */\n & ${p}-thead > tr > th${p}-cell-fix, & ${p}-thead > tr > td${p}-cell-fix {\n background: transparent;\n box-shadow:\n inset 0 -1px 0 ${borderColor},\n inset 0 999px 0 ${cssVar.colorFillQuaternary};\n }\n\n & ${p}-tbody > tr > td${p}-cell-fix {\n background: transparent;\n box-shadow: none;\n }\n }\n `,\n /**\n * Borderless: everything but the header is see-through, so the table sits on whatever\n * surface hosts it. Hover / selected rows are translucent fills. Fixed (sticky) cells\n * are see-through with a frosted backdrop so scrolled content stays obscured.\n */\n borderless: css`\n && {\n background: transparent;\n }\n\n && ${p}-tbody > tr > td,\n && ${p}-tbody > tr > th,\n && ${p}-tbody-virtual ${p}-cell, && ${p}-summary, && ${p}-summary > tr > td,\n && ${p}-summary > tr > th,\n && > ${p}-footer {\n background: transparent;\n }\n\n && ${p}-tbody > tr > td${p}-cell-row-hover, && ${p}-tbody-virtual ${p}-row:hover > ${p}-cell {\n background: ${hoverBg};\n }\n\n && ${p}-tbody > tr${p}-row-selected > td {\n background: ${selectedBg};\n\n &${p}-cell-row-hover {\n background: ${selectedHoverBg};\n }\n }\n\n &&\n ${p}-tbody\n > tr\n > td${p}-cell-fix,\n &&\n ${p}-tbody\n > tr\n > th${p}-cell-fix,\n &&\n ${p}-tbody-virtual\n ${p}-cell${p}-cell-fix {\n background: transparent;\n }\n\n && ${p}-tbody > tr > td${p}-cell-fix${p}-cell-row-hover {\n background: ${hoverBg};\n }\n\n && ${p}-tbody > tr${p}-row-selected > td${p}-cell-fix {\n background: ${selectedBg};\n\n &${p}-cell-row-hover {\n background: ${selectedHoverBg};\n }\n }\n `,\n /**\n * Grouped (multi-level) headers only: column dividers in header and body so the\n * group spans stay readable. Plain tables never get vertical dividers.\n */\n grouped: css`\n ${ownCells('th')}, ${ownCells('td')} {\n border-inline-end: ${border};\n }\n\n & ${p}-tbody-virtual ${p}-cell {\n border-inline-end: ${border};\n }\n\n /* Outlined: the container already draws the trailing edge. Other variants: the\n rightmost body cell and first header row cell stop at the table edge. */\n &:not(${p}-outlined) ${p}-tbody > tr > td:last-child,\n &:not(${p}-outlined) ${p}-thead > tr:first-child > th:last-child,\n &${p}-outlined ${p}-tbody > tr > td:last-child,\n &${p}-outlined ${p}-thead > tr:first-child > th:last-child {\n border-inline-end: 0;\n }\n `,\n clickable: css`\n cursor: pointer;\n `,\n /** Title text of an `ellipsis` column; truncates inside the sort button / header controls. */\n columnTitle: css`\n overflow: hidden;\n\n min-width: 0;\n\n text-overflow: ellipsis;\n word-break: keep-all;\n white-space: nowrap;\n `,\n filterActive: css`\n &&,\n &&:hover {\n color: ${cssVar.colorPrimary};\n }\n `,\n filterButton: css`\n flex: none;\n margin-block: -4px;\n `,\n filterButtons: css`\n display: flex;\n gap: 8px;\n align-items: center;\n justify-content: space-between;\n\n padding-block: 7px;\n padding-inline: 8px;\n border-block-start: 1px solid ${cssVar.colorSplit};\n `,\n filterCheckAll: css`\n margin-block-end: 4px;\n padding-inline: 4px;\n `,\n filterDropdown: css`\n display: flex;\n flex-direction: column;\n min-width: 120px;\n `,\n filterEmpty: css`\n padding-block: 16px;\n padding-inline: 0;\n `,\n filterGroup: css`\n display: flex;\n flex-direction: column;\n\n & > div:not(:first-child) {\n padding-inline-start: 20px;\n }\n `,\n filterGroupTitle: css`\n padding-block: 5px;\n padding-inline: 8px;\n font-size: 12px;\n color: ${cssVar.colorTextDescription};\n `,\n filterItem: css`\n display: flex;\n align-items: center;\n\n padding-block: 5px;\n padding-inline: 8px;\n border-radius: ${cssVar.borderRadiusSM};\n\n white-space: nowrap;\n\n &:hover {\n background: ${cssVar.colorFillTertiary};\n }\n\n & > label {\n cursor: pointer;\n flex: 1;\n }\n `,\n filterMenu: css`\n overflow: auto;\n display: flex;\n flex-direction: column;\n\n max-height: 264px;\n padding: 4px;\n `,\n filterPopup: css`\n overflow: hidden;\n padding: 0;\n `,\n filterSearch: css`\n padding: 8px;\n border-block-end: 1px solid ${cssVar.colorSplit};\n `,\n filterTree: css`\n overflow: auto;\n max-height: 264px;\n padding: 8px;\n `,\n headerInner: css`\n display: inline-flex;\n gap: 6px;\n align-items: center;\n\n min-width: 0;\n max-width: 100%;\n\n vertical-align: middle;\n `,\n hoverable: css`\n /* &&& outranks the variant cell rules (filled clear cells, transparent fixed cells). */\n &&& ${p}-tbody > tr > ${p}-cell-row-hover, &&& ${p}-tbody-virtual ${p}-row:hover > ${p}-cell {\n background: ${hoverBg};\n }\n `,\n loading: css`\n position: absolute;\n z-index: calc(var(--columns-count, 1) * 2 + ${Z_FIXED} + 2);\n inset: 0;\n\n display: flex;\n flex-direction: column;\n gap: 8px;\n align-items: center;\n justify-content: center;\n\n color: ${cssVar.colorTextSecondary};\n\n background: color-mix(in srgb, ${cssVar.colorBgContainer} 60%, transparent);\n `,\n /**\n * Empty-state loading body. Tracks follow leaf column widths so bars sit under the\n * live header; cell padding reuses the size CSS vars on the table ancestor.\n */\n skeleton: css`\n display: flex;\n flex-direction: column;\n\n width: 100%;\n min-width: 0;\n\n text-align: start;\n `,\n skeletonCell: css`\n display: flex;\n align-items: center;\n\n min-width: 0;\n padding-block: var(${PADDING_BLOCK});\n padding-inline: var(${PADDING_INLINE});\n `,\n skeletonRow: css`\n display: grid;\n align-items: stretch;\n\n width: 100%;\n min-width: 0;\n border-block-end: 1px solid ${borderColor};\n\n &:last-child {\n border-block-end: 0;\n }\n `,\n // antd `paginationMargin` (token.margin): keep the pager off the table above and off\n // whatever sits below the table.\n pagination: css`\n display: flex;\n margin-block: 16px;\n `,\n paginationCenter: css`\n justify-content: center;\n `,\n paginationEnd: css`\n justify-content: flex-end;\n `,\n paginationStart: css`\n justify-content: flex-start;\n `,\n paginationTop: css`\n margin-block: 0 16px;\n `,\n root: css`\n min-width: 0;\n `,\n /** Header box of the selection column; `selectionExtra` hangs off its end. */\n selection: css`\n position: relative;\n display: inline-flex;\n flex-direction: column;\n vertical-align: middle;\n `,\n selectionColumn: css`\n && {\n padding-inline: 8px;\n text-align: center;\n }\n\n & > * {\n vertical-align: middle;\n }\n `,\n selectionExtra: css`\n position: absolute;\n z-index: 1;\n inset-block-start: 0;\n\n display: flex;\n align-items: center;\n\n height: 100%;\n margin-inline-start: 100%;\n padding-inline-start: 2px;\n `,\n selectionRadioGroup: css`\n display: inline-flex;\n vertical-align: middle;\n `,\n selectionTrigger: css`\n flex: none;\n margin-block: -4px;\n `,\n sizeLarge: css`\n ${PADDING_BLOCK}: 16px;\n ${PADDING_INLINE}: 16px;\n\n /* Same as VIRTUAL_ROW_HEIGHT in Table.tsx (padding * 2 + 22px line + 1px divider). */\n --lobe-table-virtual-row-height: calc(16px * 2 + 23px);\n `,\n sizeMedium: css`\n ${PADDING_BLOCK}: 12px;\n ${PADDING_INLINE}: 16px;\n\n /* Same as VIRTUAL_ROW_HEIGHT in Table.tsx (padding * 2 + 22px line + 1px divider). */\n --lobe-table-virtual-row-height: calc(12px * 2 + 23px);\n `,\n sizeSmall: css`\n ${PADDING_BLOCK}: 8px;\n ${PADDING_INLINE}: 12px;\n\n /* Same as VIRTUAL_ROW_HEIGHT in Table.tsx (padding * 2 + 22px line + 1px divider). */\n --lobe-table-virtual-row-height: calc(8px * 2 + 23px);\n `,\n // Title + sort ActionIcon row (not a button — the ActionIcon owns the click).\n sortButton: css`\n display: inline-flex;\n gap: 4px;\n align-items: center;\n\n min-width: 0;\n max-width: 100%;\n `,\n // Matches the filter trigger: small ActionIcon with a slight negative margin so the\n // 24px block does not grow the header.\n sortCaret: css`\n flex: none;\n margin-block: -4px;\n `,\n sortTitle: css`\n cursor: pointer;\n min-width: 0;\n `,\n sortedColumn: css`\n ${p}-tbody > tr > &${p}-cell {\n background: ${cssVar.colorFillQuaternary};\n }\n `,\n spinContainer: css`\n position: relative;\n `,\n table: css`\n /* Reset per root so nested / borderless tables never inherit a parent's variant vars. */\n --lobe-table-cell: ${cssVar.colorBgContainer};\n --lobe-table-fill: transparent;\n\n font-size: 14px;\n color: ${cssVar.colorText};\n background: ${cssVar.colorBgContainer};\n\n & table {\n border-spacing: 0;\n border-collapse: separate;\n width: 100%;\n text-align: start;\n }\n\n /* ============================== Cell ============================== */\n & ${p}-cell, & ${p}-thead > tr > th,\n & ${p}-tbody > tr > td,\n & tfoot > tr > th,\n & tfoot > tr > td {\n position: relative;\n\n padding-block: var(${PADDING_BLOCK});\n padding-inline: var(${PADDING_INLINE});\n\n overflow-wrap: break-word;\n\n /* The global \\`* { vertical-align: baseline }\\` reset drops the UA's middle for cells. */\n vertical-align: middle;\n }\n\n /* Row-merged body cells (rowSpan > 1, table and virtual body alike) get vertical\n dividers so the block reads apart from the neighbour rows' lines. Drawn on ::before\n (::after is the fixed-column scroll shadow) so cell box-shadows stay untouched. The\n first / last column skip the edge the frame or table edge already provides. */\n & ${p}-tbody > tr > td[rowspan]:not([rowspan='0'], [rowspan='1'])::before,\n & ${p}-tbody-virtual ${p}-cell[rowspan]:not([rowspan='0'], [rowspan='1'])::before {\n pointer-events: none;\n content: '';\n\n position: absolute;\n inset: 0;\n\n border-inline: ${border};\n }\n\n & ${p}-tbody > tr > td[rowspan]:first-child::before,\n & ${p}-tbody-virtual ${p}-cell[rowspan]:first-child::before {\n border-inline-start: 0;\n }\n\n & ${p}-tbody > tr > td[rowspan]:last-child::before,\n & ${p}-tbody-virtual ${p}-cell[rowspan]:last-child::before {\n border-inline-end: 0;\n }\n\n & ${p}-thead > tr > th,\n & ${p}-thead > tr > td {\n font-size: 13px;\n font-weight: 500;\n color: ${cssVar.colorTextSecondary};\n text-align: start;\n\n /* Clear in dark (outlined) so the container fill shows; Quaternary is the extra header layer. */\n background: ${cellBg};\n box-shadow:\n inset 0 -1px 0 ${borderColor},\n inset 0 999px 0 ${cssVar.colorFillQuaternary};\n\n &[colspan]:not([colspan='1']) {\n text-align: center;\n }\n }\n\n /* th covers rowScope row headers. */\n & ${p}-tbody > tr > td,\n & ${p}-tbody > tr > th {\n border-block-end: ${border};\n\n font-weight: inherit;\n font-variant-numeric: tabular-nums;\n text-align: start;\n\n /* Clear in dark (outlined) so the container fill shows through. */\n background: ${cellBg};\n\n transition: background-color ${cssVar.motionDurationMid};\n }\n\n /* Filled / outlined drop the last body divider: filled because its fill is the edge,\n outlined because the container now draws the frame bottom (avoids a double line, and\n keeps the outline when scroll.y / virtual would otherwise scroll the last-row edge\n away). Borderless keeps it as the closing rule under the rows. */\n &${p}-filled ${p}-tbody > tr:last-child > td,\n &${p}-filled ${p}-tbody > tr:last-child > th,\n &${p}-outlined ${p}-tbody > tr:last-child > td,\n &${p}-outlined ${p}-tbody > tr:last-child > th {\n border-block-end: 0;\n }\n\n /* Borderless with a summary: tfoot draws its own top rule, so skip the last-row one. */\n &${p}-borderless table:has(> tfoot) > ${p}-tbody > tr:last-child > td,\n &${p}-borderless table:has(> tfoot) > ${p}-tbody > tr:last-child > th {\n border-block-end: 0;\n }\n\n & ${p}-tbody > tr${p}-placeholder > td {\n padding-block: 32px;\n color: ${cssVar.colorTextDescription};\n text-align: center;\n }\n\n /* Skeleton loading fills the placeholder like real body rows. */\n & ${p}-tbody > tr${p}-placeholder > td:has([data-table-skeleton]) {\n padding: 0;\n color: inherit;\n text-align: start;\n vertical-align: top;\n }\n\n & ${p}-cell-scrollbar:not([rowspan]) {\n box-shadow: 0 1px 0 1px ${cssVar.colorFillQuaternary};\n }\n\n /* ============================ Ellipsis ============================ */\n & ${p}-cell-ellipsis {\n overflow: hidden;\n text-overflow: ellipsis;\n word-break: keep-all;\n white-space: nowrap;\n\n &${p}-cell-fix-start-shadow, &${p}-cell-fix-end-shadow {\n overflow: visible;\n\n & ${p}-cell-content {\n overflow: hidden;\n display: block;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n }\n }\n\n /* ========================== Title / Footer ========================= */\n & > ${p}-title, & > ${p}-footer {\n padding-block: var(${PADDING_BLOCK});\n padding-inline: var(${PADDING_INLINE});\n }\n\n & > ${p}-footer {\n color: ${cssVar.colorText};\n background: ${cssVar.colorFillQuaternary};\n }\n\n /* ============================== Fixed ============================= */\n & ${p}-container {\n position: relative;\n\n &::before,\n &::after {\n ${fixShadowBase}\n z-index: calc(var(--columns-count, 1) * 2 + ${Z_FIXED} + 1);\n }\n\n &::before {\n inset-inline-start: 0;\n }\n\n &::after {\n inset-inline-end: 0;\n }\n }\n\n &${p}-has-fix-start > ${p}-container::before, &${p}-has-fix-end > ${p}-container::after {\n display: none;\n }\n\n &${p}-fix-start-shadow-show > ${p}-container::before {\n ${startShadow}\n }\n\n &${p}-fix-end-shadow-show > ${p}-container::after {\n ${endShadow}\n }\n\n /* Must outrank the generic cell rule that sets position: relative. */\n &\n ${p}-thead\n > tr\n > th${p}-cell-fix,\n &\n ${p}-tbody\n > tr\n > td${p}-cell-fix,\n &\n ${p}-cell${p}-cell-fix {\n position: sticky;\n z-index: calc(var(--z-offset-reverse) + ${Z_FIXED});\n }\n\n & ${p}-cell-fix {\n background: transparent;\n\n &::after {\n ${fixShadowBase}\n }\n }\n\n & ${p}-cell-fix-start::after {\n inset-inline-start: 100%;\n }\n\n & ${p}-cell-fix-end::after {\n inset-inline-end: 100%;\n }\n\n & ${p}-cell-fix-start-shadow-show::after {\n ${startShadow}\n }\n\n & ${p}-cell-fix-end-shadow-show::after {\n ${endShadow}\n }\n\n /* ============================= Sticky ============================= */\n & ${p}-sticky-holder {\n position: sticky;\n z-index: calc(var(--columns-count, 1) * 2 + ${Z_FIXED} + 1);\n background: transparent;\n\n /* The whole sticky header is one element, so it blurs as one continuous block. */\n ${frost}\n }\n\n & ${p}-sticky-scroll {\n position: sticky;\n z-index: calc(var(--columns-count, 1) * 2 + ${Z_FIXED} + 1);\n inset-block-end: 0;\n }\n\n /* ============================ Selection =========================== */\n & ${p}-selection-col {\n width: ${SELECTION_COLUMN_WIDTH}px;\n\n &${p}-selection-col-with-dropdown {\n width: ${SELECTION_COLUMN_WIDTH + SELECTION_DROPDOWN_WIDTH}px;\n }\n }\n\n &${p}-outlined ${p}-selection-col {\n width: ${SELECTION_COLUMN_WIDTH + 16}px;\n\n &${p}-selection-col-with-dropdown {\n width: ${SELECTION_COLUMN_WIDTH + SELECTION_DROPDOWN_WIDTH + 16}px;\n }\n }\n\n /* The table css carries no hoverable class, so use a fourth & to outrank hover too. */\n &&&& ${p}-tbody > tr${p}-row-selected > td {\n background: ${selectedBg};\n\n &${p}-cell-row-hover {\n background: ${selectedHoverBg};\n }\n }\n\n /* ========================= Expand / Tree ========================== */\n & ${p}-expand-icon-col {\n width: ${EXPAND_COLUMN_WIDTH}px;\n }\n\n & ${p}-row-expand-icon-cell {\n text-align: center;\n\n & ${p}-row-expand-icon {\n float: none;\n display: inline-flex;\n vertical-align: sub;\n }\n }\n\n & ${p}-row-indent {\n float: inline-start;\n height: 1px;\n }\n\n & ${p}-row-expand-icon {\n float: inline-start;\n flex: none;\n vertical-align: middle;\n\n &${p}-row-expand-icon-spaced {\n display: inline-block;\n width: 24px;\n height: 24px;\n visibility: hidden;\n }\n }\n\n & ${p}-row-indent + ${p}-row-expand-icon {\n margin-block: -1px;\n margin-inline-end: 8px;\n }\n\n & tr${p}-expanded-row > td,\n & tr${p}-expanded-row:hover > td {\n background: ${cssVar.colorFillQuaternary};\n }\n\n & ${p}-expanded-row-fixed {\n position: relative;\n\n margin-block: calc(var(${PADDING_BLOCK}) * -1);\n margin-inline: calc(var(${PADDING_INLINE}) * -1);\n padding-block: var(${PADDING_BLOCK});\n padding-inline: var(${PADDING_INLINE});\n }\n\n /* ========================== Nested table ========================== */\n\n /* A table alone in a cell fills it, starting after the expand column. */\n &\n ${p}-tbody\n > tr\n > td\n > ${p}-wrapper:only-child,\n &\n ${p}-tbody\n > tr\n > td\n > ${p}-expanded-row-fixed\n > ${p}-wrapper:only-child {\n & ${p} {\n margin-block: calc(var(${PADDING_BLOCK}) * -1);\n margin-inline: calc(${EXPAND_COLUMN_WIDTH}px - var(${PADDING_INLINE}))\n calc(var(${PADDING_INLINE}) * -1);\n }\n\n & ${p}-tbody > tr:last-child > td {\n border-block-end: 0;\n }\n\n /* The outer cell already draws the frame: keep only the start edge of a bordered nest. */\n & ${p}${p}-outlined {\n & > ${p}-title, & > ${p}-container, & > ${p}-footer {\n border-block: 0;\n border-inline-end: 0;\n border-radius: 0;\n box-shadow: none;\n }\n\n & > ${p}-title + ${p}-container {\n border-block-start: ${border};\n }\n\n &:has(> ${p}-footer) > ${p}-container {\n border-block-end: ${border};\n }\n }\n }\n\n &${p}-outlined ${p}-tbody > tr > td > ${p}-expanded-row-fixed {\n margin-inline: calc((var(${PADDING_INLINE}) + 1px) * -1);\n }\n\n /* ============================= Summary ============================ */\n & ${p}-summary {\n position: relative;\n z-index: ${Z_FIXED};\n\n /* See-through; a sticky summary is a sticky holder and gets its frost there. */\n background: transparent;\n\n & > tr > th,\n & > tr > td {\n border-block-end: ${border};\n }\n }\n\n & div${p}-summary {\n box-shadow: 0 -1px 0 ${borderColor};\n }\n\n /* A fixed summary under \\`sticky\\` is a sticky holder too; keep it sticky (antd orders sticky last). */\n & ${p}-summary${p}-sticky-holder {\n position: sticky;\n z-index: calc(var(--columns-count, 1) * 2 + ${Z_FIXED} + 1);\n }\n\n & tfoot > tr > th,\n & tfoot > tr > td {\n border-block-start: ${border};\n }\n\n /* ============================= Virtual ============================ */\n & ${p}-tbody-virtual {\n &\n ${p}-tbody-virtual-holder-inner\n > ${p}-row,\n &\n ${p}-tbody-virtual-holder-inner\n > div:not(${p}-row)\n > ${p}-row {\n display: flex;\n box-sizing: border-box;\n width: 100%;\n\n /* Virtual rows are locked to the listItemHeight estimate (an integer). Measured\n heights then equal the estimate, so a rowSpan cell (height = summed row sizes)\n ends exactly on the neighbour rows' divider instead of drifting by sub-pixel\n rounding or unmeasured-row estimates. */\n &:not(${p}-row-extra, ${p}-expanded-row) {\n height: var(--lobe-table-virtual-row-height);\n }\n\n & > ${p}-cell {\n align-content: center;\n }\n }\n\n & ${p}-cell {\n border-block-end: ${border};\n background: ${cellBg};\n transition: background-color ${cssVar.motionDurationMid};\n }\n\n & ${p}-expanded-row ${p}-expanded-row-cell${p}-expanded-row-cell-fixed {\n position: sticky;\n inset-inline-start: 0;\n overflow: hidden;\n width: calc(var(--virtual-width) - 1px);\n }\n }\n `,\n };\n});\n"],"mappings":"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"}
@@ -42,7 +42,7 @@ declare const variants: (props?: ({
42
42
  mark?: boolean | null | undefined;
43
43
  shiny?: boolean | null | undefined;
44
44
  strong?: boolean | null | undefined;
45
- type?: "danger" | "warning" | "success" | "info" | "secondary" | null | undefined;
45
+ type?: "danger" | "success" | "info" | "warning" | "secondary" | null | undefined;
46
46
  underline?: boolean | null | undefined;
47
47
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
48
48
  //#endregion
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lobehub/ui",
3
- "version": "5.64.3",
3
+ "version": "5.64.4",
4
4
  "description": "Lobe UI is an open-source UI component library for building AIGC web apps",
5
5
  "keywords": [
6
6
  "lobehub",