@lobehub/ui 5.62.1 → 5.63.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/base-ui/Input/style.d.mts +1 -1
- package/es/base-ui/Pagination/Pagination.mjs +20 -3
- package/es/base-ui/Pagination/Pagination.mjs.map +1 -1
- package/es/base-ui/Pagination/style.mjs +47 -3
- package/es/base-ui/Pagination/style.mjs.map +1 -1
- package/es/base-ui/ProTable/FieldControl.mjs +10 -3
- package/es/base-ui/ProTable/FieldControl.mjs.map +1 -1
- package/es/base-ui/ProTable/LightFilter.mjs +6 -3
- package/es/base-ui/ProTable/LightFilter.mjs.map +1 -1
- package/es/base-ui/ProTable/ProTable.d.mts +4 -5
- package/es/base-ui/ProTable/ProTable.mjs +38 -31
- package/es/base-ui/ProTable/ProTable.mjs.map +1 -1
- package/es/base-ui/ProTable/SearchForm.mjs +59 -6
- package/es/base-ui/ProTable/SearchForm.mjs.map +1 -1
- package/es/base-ui/ProTable/index.d.mts +3 -2
- package/es/base-ui/ProTable/index.mjs +3 -1
- package/es/base-ui/ProTable/locale.d.mts +18 -0
- package/es/base-ui/ProTable/locale.mjs +68 -0
- package/es/base-ui/ProTable/locale.mjs.map +1 -0
- package/es/base-ui/ProTable/style.mjs +38 -0
- package/es/base-ui/ProTable/style.mjs.map +1 -1
- package/es/base-ui/ProTable/type.d.mts +66 -10
- package/es/base-ui/ProTable/useColumnRequest.mjs +61 -0
- package/es/base-ui/ProTable/useColumnRequest.mjs.map +1 -0
- package/es/base-ui/ProTable/useFetchData.mjs.map +1 -1
- package/es/base-ui/Select/Select.mjs +3 -1
- package/es/base-ui/Select/Select.mjs.map +1 -1
- package/es/base-ui/Select/hooks.mjs +8 -4
- package/es/base-ui/Select/hooks.mjs.map +1 -1
- package/es/base-ui/Select/type.d.mts +7 -0
- package/es/base-ui/Table/Table.mjs +3 -1
- package/es/base-ui/Table/Table.mjs.map +1 -1
- package/es/base-ui/Table/style.mjs +109 -18
- package/es/base-ui/Table/style.mjs.map +1 -1
- package/es/base-ui/Text/style.d.mts +1 -1
- package/es/dashboard/FilterStrip/style.mjs +1 -1
- package/es/dashboard/FilterStrip/style.mjs.map +1 -1
- package/es/dashboard/MetricStrip/style.mjs +1 -1
- package/es/dashboard/MetricStrip/style.mjs.map +1 -1
- package/es/dashboard/PageSkeleton/style.mjs +2 -1
- package/es/dashboard/PageSkeleton/style.mjs.map +1 -1
- package/es/dashboard/Surface/Surface.mjs +1 -2
- package/es/dashboard/Surface/Surface.mjs.map +1 -1
- package/es/dashboard/Surface/style.d.mts +10 -5
- package/es/dashboard/Surface/style.mjs +17 -13
- package/es/dashboard/Surface/style.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -52,7 +52,7 @@ const styles = createStaticStyles(({ css, cssVar, responsive }) => ({
|
|
|
52
52
|
min-block-size: 54px;
|
|
53
53
|
padding-block: 12px;
|
|
54
54
|
padding-inline: 16px;
|
|
55
|
-
border-block-end: 1px solid ${cssVar.
|
|
55
|
+
border-block-end: 1px solid ${cssVar.colorBorderSecondary};
|
|
56
56
|
|
|
57
57
|
&:last-child {
|
|
58
58
|
border-block-end: none;
|
|
@@ -76,6 +76,7 @@ const styles = createStaticStyles(({ css, cssVar, responsive }) => ({
|
|
|
76
76
|
gap: 12px;
|
|
77
77
|
`,
|
|
78
78
|
stat: css`
|
|
79
|
+
overflow: clip;
|
|
79
80
|
display: flex;
|
|
80
81
|
flex-direction: column;
|
|
81
82
|
padding: 16px;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"style.mjs","names":[],"sources":["../../../src/dashboard/PageSkeleton/style.ts"],"sourcesContent":["import { createStaticStyles } from 'antd-style';\n\nexport const styles = createStaticStyles(({ css, cssVar, responsive }) => ({\n action: css`\n flex: none;\n inline-size: 96px;\n block-size: 32px;\n\n ${responsive.mobile} {\n inline-size: 100%;\n block-size: 44px;\n }\n `,\n cell: css`\n flex: none;\n inline-size: 88px;\n block-size: 14px;\n `,\n copy: css`\n flex: 1;\n min-inline-size: 0;\n `,\n header: css`\n display: flex;\n gap: 16px;\n align-items: flex-start;\n justify-content: space-between;\n\n ${responsive.mobile} {\n flex-direction: column;\n align-items: stretch;\n }\n `,\n headerCopy: css`\n display: flex;\n flex: 1;\n flex-direction: column;\n gap: 8px;\n\n min-inline-size: 0;\n `,\n page: css`\n display: flex;\n flex-direction: column;\n gap: 20px;\n `,\n row: css`\n display: flex;\n gap: 12px;\n align-items: center;\n\n min-block-size: 54px;\n padding-block: 12px;\n padding-inline: 16px;\n border-block-end: 1px solid ${cssVar.
|
|
1
|
+
{"version":3,"file":"style.mjs","names":[],"sources":["../../../src/dashboard/PageSkeleton/style.ts"],"sourcesContent":["import { createStaticStyles } from 'antd-style';\n\nexport const styles = createStaticStyles(({ css, cssVar, responsive }) => ({\n action: css`\n flex: none;\n inline-size: 96px;\n block-size: 32px;\n\n ${responsive.mobile} {\n inline-size: 100%;\n block-size: 44px;\n }\n `,\n cell: css`\n flex: none;\n inline-size: 88px;\n block-size: 14px;\n `,\n copy: css`\n flex: 1;\n min-inline-size: 0;\n `,\n header: css`\n display: flex;\n gap: 16px;\n align-items: flex-start;\n justify-content: space-between;\n\n ${responsive.mobile} {\n flex-direction: column;\n align-items: stretch;\n }\n `,\n headerCopy: css`\n display: flex;\n flex: 1;\n flex-direction: column;\n gap: 8px;\n\n min-inline-size: 0;\n `,\n page: css`\n display: flex;\n flex-direction: column;\n gap: 20px;\n `,\n row: css`\n display: flex;\n gap: 12px;\n align-items: center;\n\n min-block-size: 54px;\n padding-block: 12px;\n padding-inline: 16px;\n border-block-end: 1px solid ${cssVar.colorBorderSecondary};\n\n &:last-child {\n border-block-end: none;\n }\n `,\n srOnly: css`\n position: absolute;\n\n overflow: hidden;\n\n inline-size: 1px;\n block-size: 1px;\n\n white-space: nowrap;\n\n clip-path: inset(50%);\n `,\n statGrid: css`\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));\n gap: 12px;\n `,\n stat: css`\n overflow: clip;\n display: flex;\n flex-direction: column;\n padding: 16px;\n `,\n statValue: css`\n inline-size: 42%;\n block-size: ${cssVar.fontSizeHeading2};\n margin-block: 6px 14px;\n `,\n table: css`\n overflow: hidden;\n min-inline-size: 0;\n `,\n tag: css`\n flex: none;\n inline-size: 72px;\n block-size: 22px;\n border-radius: ${cssVar.borderRadiusSM};\n `,\n thead: css`\n display: flex;\n gap: 12px;\n align-items: center;\n\n min-block-size: 39px;\n padding-block: 10px;\n padding-inline: 16px;\n\n background: ${cssVar.colorFillTertiary};\n `,\n theadCell: css`\n flex: none;\n block-size: 12px;\n `,\n title: css`\n inline-size: 220px;\n max-inline-size: 70%;\n block-size: ${cssVar.fontSizeHeading3};\n `,\n}));\n"],"mappings":";;AAEA,MAAa,SAAS,oBAAoB,EAAE,KAAK,QAAQ,kBAAkB;CACzE,QAAQ,GAAG;;;;;MAKP,WAAW,OAAO;;;;;CAKtB,MAAM,GAAG;;;;;CAKT,MAAM,GAAG;;;;CAIT,QAAQ,GAAG;;;;;;MAMP,WAAW,OAAO;;;;;CAKtB,YAAY,GAAG;;;;;;;;CAQf,MAAM,GAAG;;;;;CAKT,KAAK,GAAG;;;;;;;;kCAQwB,OAAO,qBAAqB;;;;;;CAM5D,QAAQ,GAAG;;;;;;;;;;;;CAYX,UAAU,GAAG;;;;;CAKb,MAAM,GAAG;;;;;;CAMT,WAAW,GAAG;;kBAEE,OAAO,iBAAiB;;;CAGxC,OAAO,GAAG;;;;CAIV,KAAK,GAAG;;;;qBAIW,OAAO,eAAe;;CAEzC,OAAO,GAAG;;;;;;;;;kBASM,OAAO,kBAAkB;;CAEzC,WAAW,GAAG;;;;CAId,OAAO,GAAG;;;kBAGM,OAAO,iBAAiB;;AAE1C,EAAE"}
|
|
@@ -21,7 +21,6 @@ function Surface({ bleed = false, chart, children, className, description, extra
|
|
|
21
21
|
const placeholder = Boolean(loading) && !defined(children);
|
|
22
22
|
const hasHeader = defined(title) || defined(description) || defined(extra) || refreshing;
|
|
23
23
|
const pad = bleed ? false : padded ?? (hasHeader || placeholder);
|
|
24
|
-
const clip = hasHeader || bleed || pad || defined(chart);
|
|
25
24
|
const heading = /* @__PURE__ */ jsxs("div", {
|
|
26
25
|
className: styles.heading,
|
|
27
26
|
children: [defined(title) ? /* @__PURE__ */ jsx("div", {
|
|
@@ -50,7 +49,7 @@ function Surface({ bleed = false, chart, children, className, description, extra
|
|
|
50
49
|
return /* @__PURE__ */ jsx(SurfaceDepthContext, {
|
|
51
50
|
value: depth + 1,
|
|
52
51
|
children: /* @__PURE__ */ jsxs("div", {
|
|
53
|
-
className: cx(cardClassName, styles.content,
|
|
52
|
+
className: cx(cardClassName, styles.content, styles.clip, href && styles.cardLinked, bleed && styles.bleed, className),
|
|
54
53
|
...rest,
|
|
55
54
|
children: [
|
|
56
55
|
hasHeader ? /* @__PURE__ */ jsxs("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Surface.mjs","names":[],"sources":["../../../src/dashboard/Surface/Surface.tsx"],"sourcesContent":["'use client';\n\nimport { cx } from 'antd-style';\nimport { ArrowUpRight } from 'lucide-react';\nimport type { ReactNode } from 'react';\n\nimport Skeleton from '@/base-ui/Skeleton';\nimport Spin from '@/base-ui/Spin';\n\nimport {\n SurfaceDepthContext,\n useSurfaceCardClassName,\n useSurfaceDepth,\n useSurfaceLink,\n} from './link';\nimport { styles } from './style';\nimport type { SurfaceProps } from './type';\n\nconst defined = (node: ReactNode) => node !== null && node !== undefined && node !== false;\n\n/**\n * Elevated card on a workspace canvas. Bare, it is a plain frame. With `title`,\n * `description` or `extra` it gets a header and a padded body that lets a\n * trailing table meet the card edges.\n */\nfunction Surface({\n bleed = false,\n chart,\n children,\n className,\n description,\n extra,\n href,\n loading,\n padded,\n renderLink,\n title,\n ...rest\n}: SurfaceProps) {\n const depth = useSurfaceDepth();\n const link = useSurfaceLink(renderLink);\n const cardClassName = useSurfaceCardClassName();\n const refreshing = Boolean(loading) && defined(children);\n const placeholder = Boolean(loading) && !defined(children);\n const hasHeader = defined(title) || defined(description) || defined(extra) || refreshing;\n const pad = bleed ? false : (padded ?? (hasHeader || placeholder));\n
|
|
1
|
+
{"version":3,"file":"Surface.mjs","names":[],"sources":["../../../src/dashboard/Surface/Surface.tsx"],"sourcesContent":["'use client';\n\nimport { cx } from 'antd-style';\nimport { ArrowUpRight } from 'lucide-react';\nimport type { ReactNode } from 'react';\n\nimport Skeleton from '@/base-ui/Skeleton';\nimport Spin from '@/base-ui/Spin';\n\nimport {\n SurfaceDepthContext,\n useSurfaceCardClassName,\n useSurfaceDepth,\n useSurfaceLink,\n} from './link';\nimport { styles } from './style';\nimport type { SurfaceProps } from './type';\n\nconst defined = (node: ReactNode) => node !== null && node !== undefined && node !== false;\n\n/**\n * Elevated card on a workspace canvas. Bare, it is a plain frame. With `title`,\n * `description` or `extra` it gets a header and a padded body that lets a\n * trailing table meet the card edges.\n */\nfunction Surface({\n bleed = false,\n chart,\n children,\n className,\n description,\n extra,\n href,\n loading,\n padded,\n renderLink,\n title,\n ...rest\n}: SurfaceProps) {\n const depth = useSurfaceDepth();\n const link = useSurfaceLink(renderLink);\n const cardClassName = useSurfaceCardClassName();\n const refreshing = Boolean(loading) && defined(children);\n const placeholder = Boolean(loading) && !defined(children);\n const hasHeader = defined(title) || defined(description) || defined(extra) || refreshing;\n const pad = bleed ? false : (padded ?? (hasHeader || placeholder));\n\n const heading = (\n <div className={styles.heading}>\n {defined(title) ? <div className={styles.title}>{title}</div> : null}\n {defined(description) ? <div className={styles.desc}>{description}</div> : null}\n </div>\n );\n\n const body = placeholder ? (\n <div aria-busy=\"true\" className={styles.loading}>\n <Skeleton height={220} radius={8} />\n </div>\n ) : (\n children\n );\n\n // With header actions, the arrow sits after them as the rightmost item.\n const trailing = refreshing || defined(extra);\n const arrow = <ArrowUpRight aria-hidden data-surface-arrow className={styles.arrow} size={16} />;\n\n return (\n <SurfaceDepthContext value={depth + 1}>\n <div\n className={cx(\n cardClassName,\n styles.content,\n styles.clip,\n href && styles.cardLinked,\n bleed && styles.bleed,\n className,\n )}\n {...rest}\n >\n {hasHeader ? (\n <div className={styles.header}>\n {href\n ? link({\n children: (\n <>\n {heading}\n {trailing ? null : arrow}\n </>\n ),\n className: styles.headingLink,\n href,\n })\n : heading}\n {trailing ? (\n <div className={styles.extra}>\n {refreshing ? <Spin size=\"small\" variant=\"network\" /> : null}\n {extra}\n {href\n ? link({\n 'aria-hidden': true,\n 'children': arrow,\n 'className': styles.arrowLink,\n href,\n 'tabIndex': -1,\n } as any)\n : null}\n </div>\n ) : null}\n </div>\n ) : null}\n {pad ? <div className={cx(styles.body, styles.tableBleed)}>{body}</div> : body}\n {defined(chart) ? <div className={styles.chart}>{chart}</div> : null}\n </div>\n </SurfaceDepthContext>\n );\n}\n\nSurface.displayName = 'Surface';\n\nexport default Surface;\n"],"mappings":";;;;;;;;;AAkBA,MAAM,WAAW,SAAoB,SAAS,QAAQ,SAAS,KAAA,KAAa,SAAS;;;;;;AAOrF,SAAS,QAAQ,EACf,QAAQ,OACR,OACA,UACA,WACA,aACA,OACA,MACA,SACA,QACA,YACA,OACA,GAAG,QACY;CACf,MAAM,QAAQ,gBAAgB;CAC9B,MAAM,OAAO,eAAe,UAAU;CACtC,MAAM,gBAAgB,wBAAwB;CAC9C,MAAM,aAAa,QAAQ,OAAO,KAAK,QAAQ,QAAQ;CACvD,MAAM,cAAc,QAAQ,OAAO,KAAK,CAAC,QAAQ,QAAQ;CACzD,MAAM,YAAY,QAAQ,KAAK,KAAK,QAAQ,WAAW,KAAK,QAAQ,KAAK,KAAK;CAC9E,MAAM,MAAM,QAAQ,QAAS,WAAW,aAAa;CAErD,MAAM,UACJ,qBAAC,OAAD;EAAK,WAAW,OAAO;EAAvB,UAAA,CACG,QAAQ,KAAK,IAAI,oBAAC,OAAD;GAAK,WAAW,OAAO;GAAQ,UAAA;EAAW,CAAA,IAAI,MAC/D,QAAQ,WAAW,IAAI,oBAAC,OAAD;GAAK,WAAW,OAAO;GAAO,UAAA;EAAiB,CAAA,IAAI,IACxE;;CAGP,MAAM,OAAO,cACX,oBAAC,OAAD;EAAK,aAAU;EAAO,WAAW,OAAO;EACtC,UAAA,oBAAC,UAAD;GAAU,QAAQ;GAAK,QAAQ;EAAI,CAAA;CAChC,CAAA,IAEL;CAIF,MAAM,WAAW,cAAc,QAAQ,KAAK;CAC5C,MAAM,QAAQ,oBAAC,cAAD;EAAc,eAAA;EAAY,sBAAA;EAAmB,WAAW,OAAO;EAAO,MAAM;CAAK,CAAA;CAE/F,OACE,oBAAC,qBAAD;EAAqB,OAAO,QAAQ;EAClC,UAAA,qBAAC,OAAD;GACE,WAAW,GACT,eACA,OAAO,SACP,OAAO,MACP,QAAQ,OAAO,YACf,SAAS,OAAO,OAChB,SACF;GACA,GAAI;GATN,UAAA;IAWG,YACC,qBAAC,OAAD;KAAK,WAAW,OAAO;KAAvB,UAAA,CACG,OACG,KAAK;MACH,UACE,qBAAA,UAAA,EAAA,UAAA,CACG,SACA,WAAW,OAAO,KACnB,EAAA,CAAA;MAEJ,WAAW,OAAO;MAClB;KACF,CAAC,IACD,SACH,WACC,qBAAC,OAAD;MAAK,WAAW,OAAO;MAAvB,UAAA;OACG,aAAa,oBAAC,MAAD;QAAM,MAAK;QAAQ,SAAQ;OAAW,CAAA,IAAI;OACvD;OACA,OACG,KAAK;QACH,eAAe;QACf,YAAY;QACZ,aAAa,OAAO;QACpB;QACA,YAAY;OACd,CAAQ,IACR;MACD;KACH,CAAA,IAAA,IACD;IACH,CAAA,IAAA;IACH,MAAM,oBAAC,OAAD;KAAK,WAAW,GAAG,OAAO,MAAM,OAAO,UAAU;KAAI,UAAA;IAAU,CAAA,IAAI;IACzE,QAAQ,KAAK,IAAI,oBAAC,OAAD;KAAK,WAAW,OAAO;KAAQ,UAAA;IAAW,CAAA,IAAI;GAC7D;;CACc,CAAA;AAEzB;AAEA,QAAQ,cAAc"}
|
|
@@ -6,10 +6,11 @@
|
|
|
6
6
|
* `colorFillTertiary` (white 6%): on the #0d0d0d workspace it reads as about #1c1c1c, a subtle
|
|
7
7
|
* raised step. `colorFillQuaternary` (white 2%, about #111) would barely separate from the page.
|
|
8
8
|
*
|
|
9
|
-
* Borders and inner dividers (table, header and cell lines, PageSkeleton) use
|
|
10
|
-
*
|
|
11
|
-
* card
|
|
12
|
-
*
|
|
9
|
+
* Borders and inner dividers (table, header and cell lines, PageSkeleton, strip seams) all use the
|
|
10
|
+
* outer border token `colorBorderSecondary` (light and dark); hover and focus use the stronger
|
|
11
|
+
* `colorFill`. The card follows Block: light is Block `outlined` (`colorBgContainer` +
|
|
12
|
+
* `colorBorderSecondary`), dark uses the Block `filled` background (`colorFillTertiary`) with the
|
|
13
|
+
* same `colorBorderSecondary` border.
|
|
13
14
|
*
|
|
14
15
|
* Anything that must hide content scrolled beneath it (table header cells, pinned and sticky
|
|
15
16
|
* cells, their scroll shadows) uses `--lobe-surface-bg-solid`: the same white 6% blended onto
|
|
@@ -28,7 +29,11 @@ declare const styles: {
|
|
|
28
29
|
cardDark: string;
|
|
29
30
|
cardNested: string;
|
|
30
31
|
chart: string;
|
|
31
|
-
/**
|
|
32
|
+
/**
|
|
33
|
+
* Rounded corners clip whatever reaches the edge: a bled table, header rule, chart, or a
|
|
34
|
+
* tab / segmented indicator. \`clip\` (not \`hidden\`) creates no scroll container, so sticky
|
|
35
|
+
* table headers keep sticking to the page scroller; popups are portaled and unaffected.
|
|
36
|
+
*/
|
|
32
37
|
clip: string;
|
|
33
38
|
loading: string;
|
|
34
39
|
arrow: string;
|
|
@@ -7,10 +7,11 @@ import { createStaticStyles } from "antd-style";
|
|
|
7
7
|
* `colorFillTertiary` (white 6%): on the #0d0d0d workspace it reads as about #1c1c1c, a subtle
|
|
8
8
|
* raised step. `colorFillQuaternary` (white 2%, about #111) would barely separate from the page.
|
|
9
9
|
*
|
|
10
|
-
* Borders and inner dividers (table, header and cell lines, PageSkeleton) use
|
|
11
|
-
*
|
|
12
|
-
* card
|
|
13
|
-
*
|
|
10
|
+
* Borders and inner dividers (table, header and cell lines, PageSkeleton, strip seams) all use the
|
|
11
|
+
* outer border token `colorBorderSecondary` (light and dark); hover and focus use the stronger
|
|
12
|
+
* `colorFill`. The card follows Block: light is Block `outlined` (`colorBgContainer` +
|
|
13
|
+
* `colorBorderSecondary`), dark uses the Block `filled` background (`colorFillTertiary`) with the
|
|
14
|
+
* same `colorBorderSecondary` border.
|
|
14
15
|
*
|
|
15
16
|
* Anything that must hide content scrolled beneath it (table header cells, pinned and sticky
|
|
16
17
|
* cells, their scroll shadows) uses `--lobe-surface-bg-solid`: the same white 6% blended onto
|
|
@@ -31,7 +32,7 @@ const styles = createStaticStyles(({ css, cssVar }) => ({
|
|
|
31
32
|
|
|
32
33
|
&&,
|
|
33
34
|
&&:hover {
|
|
34
|
-
border: 1px solid ${cssVar.
|
|
35
|
+
border: 1px solid ${cssVar.colorBorderSecondary};
|
|
35
36
|
border-radius: ${cssVar.borderRadiusLG};
|
|
36
37
|
background: var(--lobe-surface-bg);
|
|
37
38
|
box-shadow: rgb(0 0 0 / 4%) 0 1px 2px 0;
|
|
@@ -48,8 +49,7 @@ const styles = createStaticStyles(({ css, cssVar }) => ({
|
|
|
48
49
|
var(--lobe-surface-canvas, ${cssVar.colorBgContainer})
|
|
49
50
|
);
|
|
50
51
|
|
|
51
|
-
/*
|
|
52
|
-
border-color: ${cssVar.colorFillSecondary};
|
|
52
|
+
/* Border: Block's border token (colorBorderSecondary) in both modes, from \`card\`. */
|
|
53
53
|
}
|
|
54
54
|
`,
|
|
55
55
|
cardNested: css`
|
|
@@ -61,9 +61,13 @@ const styles = createStaticStyles(({ css, cssVar }) => ({
|
|
|
61
61
|
chart: css`
|
|
62
62
|
min-inline-size: 0;
|
|
63
63
|
`,
|
|
64
|
-
/**
|
|
64
|
+
/**
|
|
65
|
+
* Rounded corners clip whatever reaches the edge: a bled table, header rule, chart, or a
|
|
66
|
+
* tab / segmented indicator. \`clip\` (not \`hidden\`) creates no scroll container, so sticky
|
|
67
|
+
* table headers keep sticking to the page scroller; popups are portaled and unaffected.
|
|
68
|
+
*/
|
|
65
69
|
clip: css`
|
|
66
|
-
overflow:
|
|
70
|
+
overflow: clip;
|
|
67
71
|
`,
|
|
68
72
|
loading: css`
|
|
69
73
|
padding-block: 4px 8px;
|
|
@@ -120,7 +124,7 @@ const styles = createStaticStyles(({ css, cssVar }) => ({
|
|
|
120
124
|
|
|
121
125
|
&& .ant-table-css-var,
|
|
122
126
|
&& .ant-table-wrapper {
|
|
123
|
-
--ant-table-border-color: ${cssVar.
|
|
127
|
+
--ant-table-border-color: ${cssVar.colorBorderSecondary};
|
|
124
128
|
--ant-table-row-hover-bg: color-mix(
|
|
125
129
|
in srgb,
|
|
126
130
|
${cssVar.colorText} 6%,
|
|
@@ -134,7 +138,7 @@ const styles = createStaticStyles(({ css, cssVar }) => ({
|
|
|
134
138
|
white-space: nowrap;
|
|
135
139
|
|
|
136
140
|
background: var(--lobe-surface-bg-solid, ${cssVar.colorBgContainer});
|
|
137
|
-
box-shadow: inset 0 -1px 0 ${cssVar.
|
|
141
|
+
box-shadow: inset 0 -1px 0 ${cssVar.colorBorderSecondary};
|
|
138
142
|
}
|
|
139
143
|
|
|
140
144
|
/* Pinned body cells inherit the transparent body, so a scrolled cell paints
|
|
@@ -198,7 +202,7 @@ const styles = createStaticStyles(({ css, cssVar }) => ({
|
|
|
198
202
|
}
|
|
199
203
|
|
|
200
204
|
&& td {
|
|
201
|
-
border-block-end-color: ${cssVar.
|
|
205
|
+
border-block-end-color: ${cssVar.colorBorderSecondary};
|
|
202
206
|
}
|
|
203
207
|
|
|
204
208
|
&& tr:hover > td,
|
|
@@ -254,7 +258,7 @@ const styles = createStaticStyles(({ css, cssVar }) => ({
|
|
|
254
258
|
min-block-size: 48px;
|
|
255
259
|
padding-block: 8px;
|
|
256
260
|
padding-inline: 16px;
|
|
257
|
-
border-block-end: 1px solid ${cssVar.
|
|
261
|
+
border-block-end: 1px solid ${cssVar.colorBorderSecondary};
|
|
258
262
|
`,
|
|
259
263
|
heading: css`
|
|
260
264
|
min-inline-size: 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"style.mjs","names":[],"sources":["../../../src/dashboard/Surface/style.ts"],"sourcesContent":["import { createStaticStyles } from 'antd-style';\n\n/**\n * A content card sitting on the workspace.\n *\n * Backgrounds: light mode uses `colorBgContainer`. Dark mode uses the translucent\n * `colorFillTertiary` (white 6%): on the #0d0d0d workspace it reads as about #1c1c1c, a subtle\n * raised step. `colorFillQuaternary` (white 2%, about #111) would barely separate from the page.\n *\n * Borders and inner dividers (table, header and cell lines, PageSkeleton) use `colorFillSecondary`\n * (white 10% in dark, black 6% in light); hover and focus use the stronger `colorFill`. The light\n * card outline itself is one step darker (`colorFill`); dark keeps `colorFillSecondary`, which over\n * the dark card lands near #2f2f2f against #1c1c1c.\n *\n * Anything that must hide content scrolled beneath it (table header cells, pinned and sticky\n * cells, their scroll shadows) uses `--lobe-surface-bg-solid`: the same white 6% blended onto\n * `--lobe-surface-canvas` (default `colorBgContainer`, the ConsoleShell workspace). `color-mix`\n * in srgb with an opaque base is plain alpha compositing, so it matches the translucent card.\n * Set `--lobe-surface-canvas` when a card sits on another page color.\n *\n * A Surface inside another Surface (`useSurfaceDepth() > 0`) drops its own fill so fills do not\n * stack. Row hover backgrounds keep their own mix. Layout containers (ConsoleShell, ConsoleNav,\n * FilterSidebar split divider, AuthLayout page canvas) keep their own tokens.\n *\n * Apply the card with `useSurfaceCardClassName()`; plain `surfaceStyles.card` is the light look.\n */\nexport const styles = createStaticStyles(({ css, cssVar }) => ({\n card: css`\n --lobe-surface-bg: ${cssVar.colorBgContainer};\n --lobe-surface-bg-solid: ${cssVar.colorBgContainer};\n\n &&,\n &&:hover {\n border: 1px solid ${cssVar.colorFill};\n border-radius: ${cssVar.borderRadiusLG};\n background: var(--lobe-surface-bg);\n box-shadow: rgb(0 0 0 / 4%) 0 1px 2px 0;\n }\n `,\n cardDark: css`\n &&& {\n --lobe-surface-bg: ${cssVar.colorFillTertiary};\n\n /* colorFillTertiary is white 6% in dark; blend the same amount onto the page. */\n --lobe-surface-bg-solid: color-mix(\n in srgb,\n #fff 6%,\n var(--lobe-surface-canvas, ${cssVar.colorBgContainer})\n );\n\n /* Dark keeps the lighter border; light mode uses the slightly darker colorFill. */\n border-color: ${cssVar.colorFillSecondary};\n }\n `,\n cardNested: css`\n &&&,\n &&&:hover {\n background: transparent;\n }\n `,\n chart: css`\n min-inline-size: 0;\n `,\n /** Rounded corners clip a bled table, header rule, or chart. Bare cards keep overflow visible. */\n clip: css`\n overflow: hidden;\n `,\n loading: css`\n padding-block: 4px 8px;\n `,\n arrow: css`\n flex: none;\n\n margin-block-start: 8px;\n margin-inline-start: auto;\n\n color: ${cssVar.colorTextTertiary};\n\n transition:\n color 150ms ease-out,\n transform 150ms ease-out;\n `,\n arrowLink: css`\n display: flex;\n flex: none;\n align-items: center;\n color: inherit;\n\n & [data-surface-arrow] {\n margin-block-start: 0;\n }\n `,\n bleed: css`\n && th,\n && td {\n padding-inline: 16px;\n }\n\n && th {\n white-space: nowrap;\n }\n `,\n body: css`\n --surface-pad-inline: 16px;\n --surface-pad-block: 16px;\n\n padding: 16px;\n `,\n /** Table and header rules for the rich card. Kept off `card` so the shared class stays a plain frame. */\n content: css`\n min-inline-size: 0;\n\n /* Ant Design paints its own container color on .ant-table and the cells.\n Clear it so the card background shows through; the card owns the fill. */\n && .ant-table,\n && th,\n && td {\n background: transparent;\n }\n\n && .ant-table-css-var,\n && .ant-table-wrapper {\n --ant-table-border-color: ${cssVar.colorFillSecondary};\n --ant-table-row-hover-bg: color-mix(\n in srgb,\n ${cssVar.colorText} 6%,\n ${cssVar.colorBgElevated}\n );\n }\n\n && th {\n font-weight: 500;\n color: ${cssVar.colorTextSecondary};\n white-space: nowrap;\n\n background: var(--lobe-surface-bg-solid, ${cssVar.colorBgContainer});\n box-shadow: inset 0 -1px 0 ${cssVar.colorFillSecondary};\n }\n\n /* Pinned body cells inherit the transparent body, so a scrolled cell paints\n straight through them. Frost with the card color. Header pins stay the\n same solid fill as the rest of the header — a translucent header reads\n as a lighter strip in dark mode. */\n && td.ant-table-cell-fix-start,\n && td.ant-table-cell-fix-end {\n background: var(--lobe-surface-bg-solid, ${cssVar.colorBgContainer});\n backdrop-filter: blur(12px);\n }\n\n && td.ant-table-cell-fix-end-shadow-show::after {\n background: linear-gradient(\n to left,\n color-mix(\n in srgb,\n var(--lobe-surface-bg-solid, ${cssVar.colorBgContainer}) 72%,\n transparent\n ),\n transparent\n );\n backdrop-filter: blur(8px);\n }\n\n && td.ant-table-cell-fix-start-shadow-show::after {\n background: linear-gradient(\n to right,\n color-mix(\n in srgb,\n var(--lobe-surface-bg-solid, ${cssVar.colorBgContainer}) 72%,\n transparent\n ),\n transparent\n );\n backdrop-filter: blur(8px);\n }\n\n [dir='rtl'] && td.ant-table-cell-fix-end-shadow-show::after {\n background: linear-gradient(\n to right,\n color-mix(\n in srgb,\n var(--lobe-surface-bg-solid, ${cssVar.colorBgContainer}) 72%,\n transparent\n ),\n transparent\n );\n }\n\n [dir='rtl'] && td.ant-table-cell-fix-start-shadow-show::after {\n background: linear-gradient(\n to left,\n color-mix(\n in srgb,\n var(--lobe-surface-bg-solid, ${cssVar.colorBgContainer}) 72%,\n transparent\n ),\n transparent\n );\n }\n\n && td {\n border-block-end-color: ${cssVar.colorFillSecondary};\n }\n\n && tr:hover > td,\n && .ant-table-tbody > tr.ant-table-row:hover > td {\n background: color-mix(in srgb, ${cssVar.colorText} 6%, ${cssVar.colorBgElevated});\n }\n\n /* base-ui Table pins with inline position:sticky, not .ant-table-cell-fix-*.\n The transparent body rule above would let scrolled text show through. */\n && td[style*='sticky'] {\n background: var(--lobe-surface-bg-solid, ${cssVar.colorBgContainer});\n }\n\n && tr:hover > td[style*='sticky'] {\n background: color-mix(in srgb, ${cssVar.colorText} 6%, ${cssVar.colorBgElevated});\n }\n `,\n /** Whole card answers hover when its header drills into another page. */\n cardLinked: css`\n &&:hover,\n &&:focus-within {\n border-color: ${cssVar.colorFill};\n }\n\n &&:hover [data-surface-arrow] {\n transform: translate(1px, -1px);\n color: ${cssVar.colorText};\n }\n `,\n desc: css`\n margin-block-start: -4px;\n\n font-size: 13px;\n font-weight: 400;\n line-height: 1.45;\n color: ${cssVar.colorTextSecondary};\n `,\n /* One fixed control row (32px, the height of a small Segmented or a default ActionIcon), so a\n header with controls is exactly as tall as one without, and the controls sit centered with\n 8px clear above the divider. */\n extra: css`\n display: flex;\n flex: none;\n gap: 8px;\n align-items: center;\n\n block-size: 32px;\n `,\n header: css`\n display: flex;\n gap: 12px;\n align-items: flex-start;\n justify-content: space-between;\n\n box-sizing: border-box;\n min-block-size: 48px;\n padding-block: 8px;\n padding-inline: 16px;\n border-block-end: 1px solid ${cssVar.colorFillSecondary};\n `,\n heading: css`\n min-inline-size: 0;\n `,\n headingLink: css`\n display: flex;\n flex: 1;\n gap: 12px;\n align-items: flex-start;\n\n min-inline-size: 0;\n\n color: inherit;\n text-decoration: none;\n\n &:hover {\n color: inherit;\n }\n `,\n /**\n * A table inside padded card body meets the card's left, right, and bottom\n * edges. A table that is the only body content also meets the header.\n * Padding amounts come from `--surface-pad-*` on the same element.\n */\n tableBleed: css`\n /* A table nested in a cell keeps the cell's own inset. */\n && :has(> [data-table-wrapper]):not(td :has(> [data-table-wrapper])) {\n width: calc(100% + 2 * var(--surface-pad-inline, 16px));\n margin-inline: calc(-1 * var(--surface-pad-inline, 16px));\n }\n\n && :has(> [data-table-wrapper]):not(td :has(> [data-table-wrapper])):last-child {\n margin-block-end: calc(-1 * var(--surface-pad-block, 16px));\n }\n\n && :has(> [data-table-wrapper]):not(td :has(> [data-table-wrapper])):first-child:last-child {\n margin-block-start: calc(-1 * var(--surface-pad-block, 16px));\n }\n\n /* ProTable keeps its search and toolbar in the padding. The table itself\n meets the card's left, right, and bottom edges. Lower-specificity\n selectors stay above the :has(th/td) rules for stylelint. */\n && .ant-table-css-var,\n && .ant-table-wrapper {\n --ant-table-cell-padding-inline: var(--surface-pad-inline, 16px);\n --ant-table-cell-padding-inline-md: var(--surface-pad-inline, 16px);\n --ant-table-cell-padding-inline-sm: var(--surface-pad-inline, 16px);\n --ant-table-header-border-radius: 0;\n }\n\n && .ant-table-wrapper {\n width: calc(100% + 2 * var(--surface-pad-inline, 16px));\n max-width: none;\n margin-inline: calc(-1 * var(--surface-pad-inline, 16px));\n }\n\n /* A plain table that is the card body meets the header and the bottom edge.\n Its own corner radius would otherwise float inside the card padding. */\n && > .lobe-flex:only-child > .ant-table-wrapper:only-child {\n margin-block: calc(-1 * var(--surface-pad-block, 16px));\n }\n\n && .ant-pro-table:last-child {\n margin-block-end: calc(-1 * var(--surface-pad-block, 16px));\n }\n\n && .ant-table-wrapper .ant-table,\n && .ant-table-wrapper .ant-table-container,\n && .ant-table-thead > tr > th,\n && .ant-table-thead > tr > th:first-child,\n && .ant-table-thead > tr > th:last-child {\n border-radius: 0;\n }\n\n && .ant-table-wrapper .ant-table-cell {\n padding-inline: var(--surface-pad-inline, 16px);\n }\n\n && .ant-table-wrapper .ant-pagination {\n margin-block: 0;\n padding-block: 12px;\n padding-inline: var(--surface-pad-inline, 16px);\n }\n\n && :has(> [data-table-wrapper]):not(td :has(> [data-table-wrapper])) th,\n && :has(> [data-table-wrapper]):not(td :has(> [data-table-wrapper])) td {\n padding-inline: var(--surface-pad-inline, 16px);\n }\n\n /* The root's negative bottom margin includes this sibling. Without block\n padding the pager sits on the card edge. Same inset as the ant pagination. */\n &&\n :has(> [data-table-wrapper]):not(td :has(> [data-table-wrapper]))\n > :not([data-table-wrapper]) {\n margin-block: 0;\n padding-block: 12px;\n padding-inline: var(--surface-pad-inline, 16px);\n }\n `,\n title: css`\n overflow: hidden;\n\n min-inline-size: 0;\n\n font-size: 14px;\n font-weight: 500;\n\n /* The title line is the 32px control row; extra and the arrow center on it, and a\n description adds its own line below without moving them. */\n line-height: 32px;\n color: ${cssVar.colorText};\n text-overflow: ellipsis;\n white-space: nowrap;\n `,\n}));\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,MAAa,SAAS,oBAAoB,EAAE,KAAK,cAAc;CAC7D,MAAM,GAAG;yBACc,OAAO,iBAAiB;+BAClB,OAAO,iBAAiB;;;;0BAI7B,OAAO,UAAU;uBACpB,OAAO,eAAe;;;;;CAK3C,UAAU,GAAG;;2BAEY,OAAO,kBAAkB;;;;;;qCAMf,OAAO,iBAAiB;;;;sBAIvC,OAAO,mBAAmB;;;CAG9C,YAAY,GAAG;;;;;;CAMf,OAAO,GAAG;;;;CAIV,MAAM,GAAG;;;CAGT,SAAS,GAAG;;;CAGZ,OAAO,GAAG;;;;;;aAMC,OAAO,kBAAkB;;;;;;CAMpC,WAAW,GAAG;;;;;;;;;;CAUd,OAAO,GAAG;;;;;;;;;;CAUV,MAAM,GAAG;;;;;;;CAOT,SAAS,GAAG;;;;;;;;;;;;;kCAaoB,OAAO,mBAAmB;;;UAGlD,OAAO,UAAU;UACjB,OAAO,gBAAgB;;;;;;eAMlB,OAAO,mBAAmB;;;iDAGQ,OAAO,iBAAiB;mCACtC,OAAO,mBAAmB;;;;;;;;;iDASZ,OAAO,iBAAiB;;;;;;;;;yCAShC,OAAO,iBAAiB;;;;;;;;;;;;;yCAaxB,OAAO,iBAAiB;;;;;;;;;;;;;yCAaxB,OAAO,iBAAiB;;;;;;;;;;;;yCAYxB,OAAO,iBAAiB;;;;;;;;gCAQjC,OAAO,mBAAmB;;;;;uCAKnB,OAAO,UAAU,OAAO,OAAO,gBAAgB;;;;;;iDAMrC,OAAO,iBAAiB;;;;uCAIlC,OAAO,UAAU,OAAO,OAAO,gBAAgB;;;;CAIpF,YAAY,GAAG;;;sBAGK,OAAO,UAAU;;;;;eAKxB,OAAO,UAAU;;;CAG9B,MAAM,GAAG;;;;;;aAME,OAAO,mBAAmB;;CAKrC,OAAO,GAAG;;;;;;;;CAQV,QAAQ,GAAG;;;;;;;;;;kCAUqB,OAAO,mBAAmB;;CAE1D,SAAS,GAAG;;;CAGZ,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;CAoBhB,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2Ef,OAAO,GAAG;;;;;;;;;;;aAWC,OAAO,UAAU;;;;AAI9B,EAAE"}
|
|
1
|
+
{"version":3,"file":"style.mjs","names":[],"sources":["../../../src/dashboard/Surface/style.ts"],"sourcesContent":["import { createStaticStyles } from 'antd-style';\n\n/**\n * A content card sitting on the workspace.\n *\n * Backgrounds: light mode uses `colorBgContainer`. Dark mode uses the translucent\n * `colorFillTertiary` (white 6%): on the #0d0d0d workspace it reads as about #1c1c1c, a subtle\n * raised step. `colorFillQuaternary` (white 2%, about #111) would barely separate from the page.\n *\n * Borders and inner dividers (table, header and cell lines, PageSkeleton, strip seams) all use the\n * outer border token `colorBorderSecondary` (light and dark); hover and focus use the stronger\n * `colorFill`. The card follows Block: light is Block `outlined` (`colorBgContainer` +\n * `colorBorderSecondary`), dark uses the Block `filled` background (`colorFillTertiary`) with the\n * same `colorBorderSecondary` border.\n *\n * Anything that must hide content scrolled beneath it (table header cells, pinned and sticky\n * cells, their scroll shadows) uses `--lobe-surface-bg-solid`: the same white 6% blended onto\n * `--lobe-surface-canvas` (default `colorBgContainer`, the ConsoleShell workspace). `color-mix`\n * in srgb with an opaque base is plain alpha compositing, so it matches the translucent card.\n * Set `--lobe-surface-canvas` when a card sits on another page color.\n *\n * A Surface inside another Surface (`useSurfaceDepth() > 0`) drops its own fill so fills do not\n * stack. Row hover backgrounds keep their own mix. Layout containers (ConsoleShell, ConsoleNav,\n * FilterSidebar split divider, AuthLayout page canvas) keep their own tokens.\n *\n * Apply the card with `useSurfaceCardClassName()`; plain `surfaceStyles.card` is the light look.\n */\nexport const styles = createStaticStyles(({ css, cssVar }) => ({\n card: css`\n --lobe-surface-bg: ${cssVar.colorBgContainer};\n --lobe-surface-bg-solid: ${cssVar.colorBgContainer};\n\n &&,\n &&:hover {\n border: 1px solid ${cssVar.colorBorderSecondary};\n border-radius: ${cssVar.borderRadiusLG};\n background: var(--lobe-surface-bg);\n box-shadow: rgb(0 0 0 / 4%) 0 1px 2px 0;\n }\n `,\n cardDark: css`\n &&& {\n --lobe-surface-bg: ${cssVar.colorFillTertiary};\n\n /* colorFillTertiary is white 6% in dark; blend the same amount onto the page. */\n --lobe-surface-bg-solid: color-mix(\n in srgb,\n #fff 6%,\n var(--lobe-surface-canvas, ${cssVar.colorBgContainer})\n );\n\n /* Border: Block's border token (colorBorderSecondary) in both modes, from \\`card\\`. */\n }\n `,\n cardNested: css`\n &&&,\n &&&:hover {\n background: transparent;\n }\n `,\n chart: css`\n min-inline-size: 0;\n `,\n /**\n * Rounded corners clip whatever reaches the edge: a bled table, header rule, chart, or a\n * tab / segmented indicator. \\`clip\\` (not \\`hidden\\`) creates no scroll container, so sticky\n * table headers keep sticking to the page scroller; popups are portaled and unaffected.\n */\n clip: css`\n overflow: clip;\n `,\n loading: css`\n padding-block: 4px 8px;\n `,\n arrow: css`\n flex: none;\n\n margin-block-start: 8px;\n margin-inline-start: auto;\n\n color: ${cssVar.colorTextTertiary};\n\n transition:\n color 150ms ease-out,\n transform 150ms ease-out;\n `,\n arrowLink: css`\n display: flex;\n flex: none;\n align-items: center;\n color: inherit;\n\n & [data-surface-arrow] {\n margin-block-start: 0;\n }\n `,\n bleed: css`\n && th,\n && td {\n padding-inline: 16px;\n }\n\n && th {\n white-space: nowrap;\n }\n `,\n body: css`\n --surface-pad-inline: 16px;\n --surface-pad-block: 16px;\n\n padding: 16px;\n `,\n /** Table and header rules for the rich card. Kept off `card` so the shared class stays a plain frame. */\n content: css`\n min-inline-size: 0;\n\n /* Ant Design paints its own container color on .ant-table and the cells.\n Clear it so the card background shows through; the card owns the fill. */\n && .ant-table,\n && th,\n && td {\n background: transparent;\n }\n\n && .ant-table-css-var,\n && .ant-table-wrapper {\n --ant-table-border-color: ${cssVar.colorBorderSecondary};\n --ant-table-row-hover-bg: color-mix(\n in srgb,\n ${cssVar.colorText} 6%,\n ${cssVar.colorBgElevated}\n );\n }\n\n && th {\n font-weight: 500;\n color: ${cssVar.colorTextSecondary};\n white-space: nowrap;\n\n background: var(--lobe-surface-bg-solid, ${cssVar.colorBgContainer});\n box-shadow: inset 0 -1px 0 ${cssVar.colorBorderSecondary};\n }\n\n /* Pinned body cells inherit the transparent body, so a scrolled cell paints\n straight through them. Frost with the card color. Header pins stay the\n same solid fill as the rest of the header — a translucent header reads\n as a lighter strip in dark mode. */\n && td.ant-table-cell-fix-start,\n && td.ant-table-cell-fix-end {\n background: var(--lobe-surface-bg-solid, ${cssVar.colorBgContainer});\n backdrop-filter: blur(12px);\n }\n\n && td.ant-table-cell-fix-end-shadow-show::after {\n background: linear-gradient(\n to left,\n color-mix(\n in srgb,\n var(--lobe-surface-bg-solid, ${cssVar.colorBgContainer}) 72%,\n transparent\n ),\n transparent\n );\n backdrop-filter: blur(8px);\n }\n\n && td.ant-table-cell-fix-start-shadow-show::after {\n background: linear-gradient(\n to right,\n color-mix(\n in srgb,\n var(--lobe-surface-bg-solid, ${cssVar.colorBgContainer}) 72%,\n transparent\n ),\n transparent\n );\n backdrop-filter: blur(8px);\n }\n\n [dir='rtl'] && td.ant-table-cell-fix-end-shadow-show::after {\n background: linear-gradient(\n to right,\n color-mix(\n in srgb,\n var(--lobe-surface-bg-solid, ${cssVar.colorBgContainer}) 72%,\n transparent\n ),\n transparent\n );\n }\n\n [dir='rtl'] && td.ant-table-cell-fix-start-shadow-show::after {\n background: linear-gradient(\n to left,\n color-mix(\n in srgb,\n var(--lobe-surface-bg-solid, ${cssVar.colorBgContainer}) 72%,\n transparent\n ),\n transparent\n );\n }\n\n && td {\n border-block-end-color: ${cssVar.colorBorderSecondary};\n }\n\n && tr:hover > td,\n && .ant-table-tbody > tr.ant-table-row:hover > td {\n background: color-mix(in srgb, ${cssVar.colorText} 6%, ${cssVar.colorBgElevated});\n }\n\n /* base-ui Table pins with inline position:sticky, not .ant-table-cell-fix-*.\n The transparent body rule above would let scrolled text show through. */\n && td[style*='sticky'] {\n background: var(--lobe-surface-bg-solid, ${cssVar.colorBgContainer});\n }\n\n && tr:hover > td[style*='sticky'] {\n background: color-mix(in srgb, ${cssVar.colorText} 6%, ${cssVar.colorBgElevated});\n }\n `,\n /** Whole card answers hover when its header drills into another page. */\n cardLinked: css`\n &&:hover,\n &&:focus-within {\n border-color: ${cssVar.colorFill};\n }\n\n &&:hover [data-surface-arrow] {\n transform: translate(1px, -1px);\n color: ${cssVar.colorText};\n }\n `,\n desc: css`\n margin-block-start: -4px;\n\n font-size: 13px;\n font-weight: 400;\n line-height: 1.45;\n color: ${cssVar.colorTextSecondary};\n `,\n /* One fixed control row (32px, the height of a small Segmented or a default ActionIcon), so a\n header with controls is exactly as tall as one without, and the controls sit centered with\n 8px clear above the divider. */\n extra: css`\n display: flex;\n flex: none;\n gap: 8px;\n align-items: center;\n\n block-size: 32px;\n `,\n header: css`\n display: flex;\n gap: 12px;\n align-items: flex-start;\n justify-content: space-between;\n\n box-sizing: border-box;\n min-block-size: 48px;\n padding-block: 8px;\n padding-inline: 16px;\n border-block-end: 1px solid ${cssVar.colorBorderSecondary};\n `,\n heading: css`\n min-inline-size: 0;\n `,\n headingLink: css`\n display: flex;\n flex: 1;\n gap: 12px;\n align-items: flex-start;\n\n min-inline-size: 0;\n\n color: inherit;\n text-decoration: none;\n\n &:hover {\n color: inherit;\n }\n `,\n /**\n * A table inside padded card body meets the card's left, right, and bottom\n * edges. A table that is the only body content also meets the header.\n * Padding amounts come from `--surface-pad-*` on the same element.\n */\n tableBleed: css`\n /* A table nested in a cell keeps the cell's own inset. */\n && :has(> [data-table-wrapper]):not(td :has(> [data-table-wrapper])) {\n width: calc(100% + 2 * var(--surface-pad-inline, 16px));\n margin-inline: calc(-1 * var(--surface-pad-inline, 16px));\n }\n\n && :has(> [data-table-wrapper]):not(td :has(> [data-table-wrapper])):last-child {\n margin-block-end: calc(-1 * var(--surface-pad-block, 16px));\n }\n\n && :has(> [data-table-wrapper]):not(td :has(> [data-table-wrapper])):first-child:last-child {\n margin-block-start: calc(-1 * var(--surface-pad-block, 16px));\n }\n\n /* ProTable keeps its search and toolbar in the padding. The table itself\n meets the card's left, right, and bottom edges. Lower-specificity\n selectors stay above the :has(th/td) rules for stylelint. */\n && .ant-table-css-var,\n && .ant-table-wrapper {\n --ant-table-cell-padding-inline: var(--surface-pad-inline, 16px);\n --ant-table-cell-padding-inline-md: var(--surface-pad-inline, 16px);\n --ant-table-cell-padding-inline-sm: var(--surface-pad-inline, 16px);\n --ant-table-header-border-radius: 0;\n }\n\n && .ant-table-wrapper {\n width: calc(100% + 2 * var(--surface-pad-inline, 16px));\n max-width: none;\n margin-inline: calc(-1 * var(--surface-pad-inline, 16px));\n }\n\n /* A plain table that is the card body meets the header and the bottom edge.\n Its own corner radius would otherwise float inside the card padding. */\n && > .lobe-flex:only-child > .ant-table-wrapper:only-child {\n margin-block: calc(-1 * var(--surface-pad-block, 16px));\n }\n\n && .ant-pro-table:last-child {\n margin-block-end: calc(-1 * var(--surface-pad-block, 16px));\n }\n\n && .ant-table-wrapper .ant-table,\n && .ant-table-wrapper .ant-table-container,\n && .ant-table-thead > tr > th,\n && .ant-table-thead > tr > th:first-child,\n && .ant-table-thead > tr > th:last-child {\n border-radius: 0;\n }\n\n && .ant-table-wrapper .ant-table-cell {\n padding-inline: var(--surface-pad-inline, 16px);\n }\n\n && .ant-table-wrapper .ant-pagination {\n margin-block: 0;\n padding-block: 12px;\n padding-inline: var(--surface-pad-inline, 16px);\n }\n\n && :has(> [data-table-wrapper]):not(td :has(> [data-table-wrapper])) th,\n && :has(> [data-table-wrapper]):not(td :has(> [data-table-wrapper])) td {\n padding-inline: var(--surface-pad-inline, 16px);\n }\n\n /* The root's negative bottom margin includes this sibling. Without block\n padding the pager sits on the card edge. Same inset as the ant pagination. */\n &&\n :has(> [data-table-wrapper]):not(td :has(> [data-table-wrapper]))\n > :not([data-table-wrapper]) {\n margin-block: 0;\n padding-block: 12px;\n padding-inline: var(--surface-pad-inline, 16px);\n }\n `,\n title: css`\n overflow: hidden;\n\n min-inline-size: 0;\n\n font-size: 14px;\n font-weight: 500;\n\n /* The title line is the 32px control row; extra and the arrow center on it, and a\n description adds its own line below without moving them. */\n line-height: 32px;\n color: ${cssVar.colorText};\n text-overflow: ellipsis;\n white-space: nowrap;\n `,\n}));\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BA,MAAa,SAAS,oBAAoB,EAAE,KAAK,cAAc;CAC7D,MAAM,GAAG;yBACc,OAAO,iBAAiB;+BAClB,OAAO,iBAAiB;;;;0BAI7B,OAAO,qBAAqB;uBAC/B,OAAO,eAAe;;;;;CAK3C,UAAU,GAAG;;2BAEY,OAAO,kBAAkB;;;;;;qCAMf,OAAO,iBAAiB;;;;;;CAM3D,YAAY,GAAG;;;;;;CAMf,OAAO,GAAG;;;;;;;;CAQV,MAAM,GAAG;;;CAGT,SAAS,GAAG;;;CAGZ,OAAO,GAAG;;;;;;aAMC,OAAO,kBAAkB;;;;;;CAMpC,WAAW,GAAG;;;;;;;;;;CAUd,OAAO,GAAG;;;;;;;;;;CAUV,MAAM,GAAG;;;;;;;CAOT,SAAS,GAAG;;;;;;;;;;;;;kCAaoB,OAAO,qBAAqB;;;UAGpD,OAAO,UAAU;UACjB,OAAO,gBAAgB;;;;;;eAMlB,OAAO,mBAAmB;;;iDAGQ,OAAO,iBAAiB;mCACtC,OAAO,qBAAqB;;;;;;;;;iDASd,OAAO,iBAAiB;;;;;;;;;yCAShC,OAAO,iBAAiB;;;;;;;;;;;;;yCAaxB,OAAO,iBAAiB;;;;;;;;;;;;;yCAaxB,OAAO,iBAAiB;;;;;;;;;;;;yCAYxB,OAAO,iBAAiB;;;;;;;;gCAQjC,OAAO,qBAAqB;;;;;uCAKrB,OAAO,UAAU,OAAO,OAAO,gBAAgB;;;;;;iDAMrC,OAAO,iBAAiB;;;;uCAIlC,OAAO,UAAU,OAAO,OAAO,gBAAgB;;;;CAIpF,YAAY,GAAG;;;sBAGK,OAAO,UAAU;;;;;eAKxB,OAAO,UAAU;;;CAG9B,MAAM,GAAG;;;;;;aAME,OAAO,mBAAmB;;CAKrC,OAAO,GAAG;;;;;;;;CAQV,QAAQ,GAAG;;;;;;;;;;kCAUqB,OAAO,qBAAqB;;CAE5D,SAAS,GAAG;;;CAGZ,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;CAoBhB,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2Ef,OAAO,GAAG;;;;;;;;;;;aAWC,OAAO,UAAU;;;;AAI9B,EAAE"}
|