@lobehub/ui 5.57.3 → 5.59.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/Grid/style.mjs +8 -8
- package/es/Grid/style.mjs.map +1 -1
- package/es/Image/type.d.mts +1 -0
- package/es/Image/viewer/ImageViewer.mjs +1 -0
- package/es/Image/viewer/ImageViewer.mjs.map +1 -1
- package/es/Image/viewer/Toolbar.mjs +19 -6
- package/es/Image/viewer/Toolbar.mjs.map +1 -1
- package/es/Image/viewer/ViewerChrome.mjs.map +1 -1
- package/es/base-ui/Input/style.d.mts +1 -1
- package/es/base-ui/Input/style.mjs +8 -2
- package/es/base-ui/Input/style.mjs.map +1 -1
- package/es/dashboard/ChartGrid/ChartGrid.d.mts +10 -0
- package/es/dashboard/ChartGrid/ChartGrid.mjs +18 -0
- package/es/dashboard/ChartGrid/ChartGrid.mjs.map +1 -0
- package/es/dashboard/ChartGrid/index.d.mts +3 -0
- package/es/dashboard/ChartGrid/style.mjs +32 -0
- package/es/dashboard/ChartGrid/style.mjs.map +1 -0
- package/es/dashboard/ChartGrid/type.d.mts +9 -0
- package/es/dashboard/ConsoleShell/ConsoleShell.d.mts +1 -1
- package/es/dashboard/ConsoleShell/ConsoleShell.mjs +12 -4
- package/es/dashboard/ConsoleShell/ConsoleShell.mjs.map +1 -1
- package/es/dashboard/ConsoleShell/style.mjs +15 -0
- package/es/dashboard/ConsoleShell/style.mjs.map +1 -1
- package/es/dashboard/ConsoleShell/type.d.mts +2 -0
- package/es/dashboard/FilterStrip/FilterStrip.d.mts +11 -0
- package/es/dashboard/FilterStrip/FilterStrip.mjs +51 -0
- package/es/dashboard/FilterStrip/FilterStrip.mjs.map +1 -0
- package/es/dashboard/FilterStrip/index.d.mts +3 -0
- package/es/dashboard/FilterStrip/style.mjs +93 -0
- package/es/dashboard/FilterStrip/style.mjs.map +1 -0
- package/es/dashboard/FilterStrip/type.d.mts +26 -0
- package/es/dashboard/LabelWithKey/LabelWithKey.d.mts +10 -0
- package/es/dashboard/LabelWithKey/LabelWithKey.mjs +18 -0
- package/es/dashboard/LabelWithKey/LabelWithKey.mjs.map +1 -0
- package/es/dashboard/LabelWithKey/index.d.mts +3 -0
- package/es/dashboard/LabelWithKey/type.d.mts +12 -0
- package/es/dashboard/MetricStrip/MetricStrip.d.mts +10 -0
- package/es/dashboard/MetricStrip/MetricStrip.mjs +76 -0
- package/es/dashboard/MetricStrip/MetricStrip.mjs.map +1 -0
- package/es/dashboard/MetricStrip/index.d.mts +3 -0
- package/es/dashboard/MetricStrip/style.mjs +116 -0
- package/es/dashboard/MetricStrip/style.mjs.map +1 -0
- package/es/dashboard/MetricStrip/type.d.mts +25 -0
- package/es/dashboard/PageToolbar/PageToolbar.d.mts +10 -0
- package/es/dashboard/PageToolbar/PageToolbar.mjs +21 -0
- package/es/dashboard/PageToolbar/PageToolbar.mjs.map +1 -0
- package/es/dashboard/PageToolbar/index.d.mts +3 -0
- package/es/dashboard/PageToolbar/style.mjs +34 -0
- package/es/dashboard/PageToolbar/style.mjs.map +1 -0
- package/es/dashboard/PageToolbar/type.d.mts +12 -0
- package/es/dashboard/PanelSurface/PanelSurface.d.mts +10 -0
- package/es/dashboard/PanelSurface/PanelSurface.mjs +36 -0
- package/es/dashboard/PanelSurface/PanelSurface.mjs.map +1 -0
- package/es/dashboard/PanelSurface/index.d.mts +3 -0
- package/es/dashboard/PanelSurface/style.mjs +24 -0
- package/es/dashboard/PanelSurface/style.mjs.map +1 -0
- package/es/dashboard/PanelSurface/type.d.mts +18 -0
- package/es/dashboard/Section/Section.d.mts +10 -0
- package/es/dashboard/Section/Section.mjs +81 -0
- package/es/dashboard/Section/Section.mjs.map +1 -0
- package/es/dashboard/Section/index.d.mts +3 -0
- package/es/dashboard/Section/style.mjs +35 -0
- package/es/dashboard/Section/style.mjs.map +1 -0
- package/es/dashboard/Section/type.d.mts +24 -0
- package/es/dashboard/Surface/Surface.d.mts +4 -3
- package/es/dashboard/Surface/Surface.mjs +67 -7
- package/es/dashboard/Surface/Surface.mjs.map +1 -1
- package/es/dashboard/Surface/index.d.mts +3 -2
- package/es/dashboard/Surface/link.d.mts +14 -0
- package/es/dashboard/Surface/link.mjs +22 -0
- package/es/dashboard/Surface/link.mjs.map +1 -0
- package/es/dashboard/Surface/style.d.mts +23 -0
- package/es/dashboard/Surface/style.mjs +283 -2
- package/es/dashboard/Surface/style.mjs.map +1 -1
- package/es/dashboard/Surface/type.d.mts +30 -2
- package/es/dashboard/TableIconActions/TableIconActions.d.mts +17 -0
- package/es/dashboard/TableIconActions/TableIconActions.mjs +39 -0
- package/es/dashboard/TableIconActions/TableIconActions.mjs.map +1 -0
- package/es/dashboard/TableIconActions/index.d.mts +3 -0
- package/es/dashboard/TableIconActions/type.d.mts +18 -0
- package/es/dashboard/TitleWithTips/TitleWithTips.d.mts +10 -0
- package/es/dashboard/TitleWithTips/TitleWithTips.mjs +28 -0
- package/es/dashboard/TitleWithTips/TitleWithTips.mjs.map +1 -0
- package/es/dashboard/TitleWithTips/index.d.mts +3 -0
- package/es/dashboard/TitleWithTips/type.d.mts +11 -0
- package/es/dashboard/index.d.mts +30 -2
- package/es/dashboard/index.mjs +12 -2
- package/package.json +1 -1
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { PanelSurfaceProps } from "./type.mjs";
|
|
2
|
+
//#region src/dashboard/PanelSurface/PanelSurface.d.ts
|
|
3
|
+
/** Titled console panel. Body padding stays inside so a trailing table can bleed to the edges. */
|
|
4
|
+
declare const PanelSurface: {
|
|
5
|
+
({ title, description, extra, href, loading, renderLink, size, className, style, children }: PanelSurfaceProps): import("react").JSX.Element;
|
|
6
|
+
displayName: string;
|
|
7
|
+
};
|
|
8
|
+
//#endregion
|
|
9
|
+
export { PanelSurface as default };
|
|
10
|
+
//# sourceMappingURL=PanelSurface.d.mts.map
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import Spin from "../../base-ui/Spin/Spin.mjs";
|
|
3
|
+
import Skeleton from "../../base-ui/Skeleton/index.mjs";
|
|
4
|
+
import { styles } from "../Surface/style.mjs";
|
|
5
|
+
import Surface from "../Surface/Surface.mjs";
|
|
6
|
+
import { styles as styles$1 } from "./style.mjs";
|
|
7
|
+
import { jsx } from "react/jsx-runtime";
|
|
8
|
+
import { cx } from "antd-style";
|
|
9
|
+
//#region src/dashboard/PanelSurface/PanelSurface.tsx
|
|
10
|
+
/** Titled console panel. Body padding stays inside so a trailing table can bleed to the edges. */
|
|
11
|
+
const PanelSurface = ({ title, description, extra, href, loading, renderLink, size = "default", className, style, children }) => /* @__PURE__ */ jsx(Surface, {
|
|
12
|
+
className,
|
|
13
|
+
description,
|
|
14
|
+
extra: loading && children ? /* @__PURE__ */ jsx(Spin, { size: "small" }) : extra,
|
|
15
|
+
href,
|
|
16
|
+
padded: false,
|
|
17
|
+
renderLink,
|
|
18
|
+
style,
|
|
19
|
+
title,
|
|
20
|
+
children: loading && !children ? /* @__PURE__ */ jsx("div", {
|
|
21
|
+
"aria-busy": "true",
|
|
22
|
+
className: styles$1.loadingBody,
|
|
23
|
+
children: /* @__PURE__ */ jsx(Skeleton, {
|
|
24
|
+
height: 220,
|
|
25
|
+
radius: 8
|
|
26
|
+
})
|
|
27
|
+
}) : /* @__PURE__ */ jsx("div", {
|
|
28
|
+
className: cx(size === "small" ? styles$1.bodySmall : styles$1.body, styles.tableBleed),
|
|
29
|
+
children
|
|
30
|
+
})
|
|
31
|
+
});
|
|
32
|
+
PanelSurface.displayName = "PanelSurface";
|
|
33
|
+
//#endregion
|
|
34
|
+
export { PanelSurface as default };
|
|
35
|
+
|
|
36
|
+
//# sourceMappingURL=PanelSurface.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PanelSurface.mjs","names":["styles","surfaceStyles"],"sources":["../../../src/dashboard/PanelSurface/PanelSurface.tsx"],"sourcesContent":["'use client';\n\nimport { cx } from 'antd-style';\n\nimport Skeleton from '@/base-ui/Skeleton';\nimport Spin from '@/base-ui/Spin';\n\nimport { styles as surfaceStyles } from '../Surface/style';\nimport Surface from '../Surface/Surface';\nimport { styles } from './style';\nimport type { PanelSurfaceProps } from './type';\n\n/** Titled console panel. Body padding stays inside so a trailing table can bleed to the edges. */\nconst PanelSurface = ({\n title,\n description,\n extra,\n href,\n loading,\n renderLink,\n size = 'default',\n className,\n style,\n children,\n}: PanelSurfaceProps) => (\n <Surface\n className={className}\n description={description}\n extra={loading && children ? <Spin size=\"small\" /> : extra}\n href={href}\n padded={false}\n renderLink={renderLink}\n style={style}\n title={title}\n >\n {loading && !children ? (\n <div aria-busy=\"true\" className={styles.loadingBody}>\n <Skeleton height={220} radius={8} />\n </div>\n ) : (\n <div\n className={cx(size === 'small' ? styles.bodySmall : styles.body, surfaceStyles.tableBleed)}\n >\n {children}\n </div>\n )}\n </Surface>\n);\n\nPanelSurface.displayName = 'PanelSurface';\n\nexport default PanelSurface;\n"],"mappings":";;;;;;;;;;AAaA,MAAM,gBAAgB,EACpB,OACA,aACA,OACA,MACA,SACA,YACA,OAAO,WACP,WACA,OACA,eAEA,oBAAC,SAAD;CACa;CACE;CACb,OAAO,WAAW,WAAW,oBAAC,MAAD,EAAM,MAAK,QAAS,CAAA,IAAI;CAC/C;CACN,QAAQ;CACI;CACL;CACA;CAEN,UAAA,WAAW,CAAC,WACX,oBAAC,OAAD;EAAK,aAAU;EAAO,WAAWA,SAAO;EACtC,UAAA,oBAAC,UAAD;GAAU,QAAQ;GAAK,QAAQ;EAAI,CAAA;CAChC,CAAA,IAEL,oBAAC,OAAD;EACE,WAAW,GAAG,SAAS,UAAUA,SAAO,YAAYA,SAAO,MAAMC,OAAc,UAAU;EAExF;CACE,CAAA;AAEA,CAAA;AAGX,aAAa,cAAc"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { createStaticStyles } from "antd-style";
|
|
2
|
+
//#region src/dashboard/PanelSurface/style.ts
|
|
3
|
+
const styles = createStaticStyles(({ css }) => ({
|
|
4
|
+
body: css`
|
|
5
|
+
--surface-pad-inline: 16px;
|
|
6
|
+
--surface-pad-block: 16px;
|
|
7
|
+
|
|
8
|
+
padding: 16px;
|
|
9
|
+
`,
|
|
10
|
+
bodySmall: css`
|
|
11
|
+
--surface-pad-inline: 16px;
|
|
12
|
+
--surface-pad-block: 12px;
|
|
13
|
+
|
|
14
|
+
padding-block: 12px;
|
|
15
|
+
padding-inline: 16px;
|
|
16
|
+
`,
|
|
17
|
+
loadingBody: css`
|
|
18
|
+
padding-block: 4px 8px;
|
|
19
|
+
`
|
|
20
|
+
}));
|
|
21
|
+
//#endregion
|
|
22
|
+
export { styles };
|
|
23
|
+
|
|
24
|
+
//# sourceMappingURL=style.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"style.mjs","names":[],"sources":["../../../src/dashboard/PanelSurface/style.ts"],"sourcesContent":["import { createStaticStyles } from 'antd-style';\n\nexport const styles = createStaticStyles(({ css }) => ({\n body: css`\n --surface-pad-inline: 16px;\n --surface-pad-block: 16px;\n\n padding: 16px;\n `,\n bodySmall: css`\n --surface-pad-inline: 16px;\n --surface-pad-block: 12px;\n\n padding-block: 12px;\n padding-inline: 16px;\n `,\n loadingBody: css`\n padding-block: 4px 8px;\n `,\n}));\n"],"mappings":";;AAEA,MAAa,SAAS,oBAAoB,EAAE,WAAW;CACrD,MAAM,GAAG;;;;;;CAMT,WAAW,GAAG;;;;;;;CAOd,aAAa,GAAG;;;AAGlB,EAAE"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { SurfaceRenderLink } from "../Surface/type.mjs";
|
|
2
|
+
import { CSSProperties, ReactNode } from "react";
|
|
3
|
+
//#region src/dashboard/PanelSurface/type.d.ts
|
|
4
|
+
interface PanelSurfaceProps {
|
|
5
|
+
children?: ReactNode;
|
|
6
|
+
className?: string;
|
|
7
|
+
description?: ReactNode;
|
|
8
|
+
extra?: ReactNode;
|
|
9
|
+
href?: string;
|
|
10
|
+
loading?: boolean;
|
|
11
|
+
renderLink?: SurfaceRenderLink;
|
|
12
|
+
size?: 'default' | 'small';
|
|
13
|
+
style?: CSSProperties;
|
|
14
|
+
title?: ReactNode;
|
|
15
|
+
}
|
|
16
|
+
//#endregion
|
|
17
|
+
export { PanelSurfaceProps };
|
|
18
|
+
//# sourceMappingURL=type.d.mts.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { SectionProps } from "./type.mjs";
|
|
2
|
+
//#region src/dashboard/Section/Section.d.ts
|
|
3
|
+
/** A titled page section with description, extra and a "more" link, flat or as a card. */
|
|
4
|
+
declare const Section: {
|
|
5
|
+
({ className, variant, fontSize, title, more, moreLink, icon, children, desc, extra, gap, padded, renderLink, ...rest }: SectionProps): import("react").JSX.Element;
|
|
6
|
+
displayName: string;
|
|
7
|
+
};
|
|
8
|
+
//#endregion
|
|
9
|
+
export { Section as default };
|
|
10
|
+
//# sourceMappingURL=Section.d.mts.map
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import FlexBasic_default from "../../Flex/FlexBasic.mjs";
|
|
3
|
+
import Icon from "../../Icon/Icon.mjs";
|
|
4
|
+
import { useSurfaceLink } from "../Surface/link.mjs";
|
|
5
|
+
import Surface from "../Surface/Surface.mjs";
|
|
6
|
+
import { styles } from "./style.mjs";
|
|
7
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
+
import { ChevronRight } from "lucide-react";
|
|
9
|
+
//#region src/dashboard/Section/Section.tsx
|
|
10
|
+
/** A titled page section with description, extra and a "more" link, flat or as a card. */
|
|
11
|
+
const Section = ({ className, variant = "default", fontSize, title, more, moreLink, icon, children, desc, extra, gap, padded, renderLink, ...rest }) => {
|
|
12
|
+
const link = useSurfaceLink(renderLink);
|
|
13
|
+
const moreNode = moreLink ? link({
|
|
14
|
+
children: /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("span", { children: more }), /* @__PURE__ */ jsx(Icon, { icon: ChevronRight })] }),
|
|
15
|
+
className: styles.more,
|
|
16
|
+
href: moreLink,
|
|
17
|
+
rel: moreLink.startsWith("http") ? "noreferrer" : void 0,
|
|
18
|
+
target: moreLink.startsWith("http") ? "_blank" : void 0
|
|
19
|
+
}) : null;
|
|
20
|
+
const actions = extra || moreNode ? /* @__PURE__ */ jsxs(FlexBasic_default, {
|
|
21
|
+
horizontal: true,
|
|
22
|
+
align: "center",
|
|
23
|
+
gap: 8,
|
|
24
|
+
children: [extra, moreNode]
|
|
25
|
+
}) : void 0;
|
|
26
|
+
if (variant === "card") return /* @__PURE__ */ jsx(Surface, {
|
|
27
|
+
description: desc,
|
|
28
|
+
extra: actions,
|
|
29
|
+
padded: padded ?? true,
|
|
30
|
+
title: title ? /* @__PURE__ */ jsxs("span", {
|
|
31
|
+
className: styles.title,
|
|
32
|
+
style: fontSize ? { fontSize } : void 0,
|
|
33
|
+
children: [icon, title]
|
|
34
|
+
}) : void 0,
|
|
35
|
+
children: /* @__PURE__ */ jsx(FlexBasic_default, {
|
|
36
|
+
className,
|
|
37
|
+
gap: gap ?? 12,
|
|
38
|
+
...rest,
|
|
39
|
+
children
|
|
40
|
+
})
|
|
41
|
+
});
|
|
42
|
+
if (!title) return /* @__PURE__ */ jsx(FlexBasic_default, {
|
|
43
|
+
className,
|
|
44
|
+
gap,
|
|
45
|
+
...rest,
|
|
46
|
+
children
|
|
47
|
+
});
|
|
48
|
+
return /* @__PURE__ */ jsxs(FlexBasic_default, {
|
|
49
|
+
className,
|
|
50
|
+
gap: gap ?? 16,
|
|
51
|
+
width: "100%",
|
|
52
|
+
...rest,
|
|
53
|
+
children: [/* @__PURE__ */ jsxs(FlexBasic_default, {
|
|
54
|
+
horizontal: true,
|
|
55
|
+
align: "center",
|
|
56
|
+
gap: 12,
|
|
57
|
+
justify: "space-between",
|
|
58
|
+
width: "100%",
|
|
59
|
+
children: [/* @__PURE__ */ jsxs(FlexBasic_default, {
|
|
60
|
+
gap: 4,
|
|
61
|
+
children: [
|
|
62
|
+
icon,
|
|
63
|
+
/* @__PURE__ */ jsx("h2", {
|
|
64
|
+
className: styles.title,
|
|
65
|
+
style: fontSize ? { fontSize } : void 0,
|
|
66
|
+
children: title
|
|
67
|
+
}),
|
|
68
|
+
desc ? /* @__PURE__ */ jsx("div", {
|
|
69
|
+
className: styles.desc,
|
|
70
|
+
children: desc
|
|
71
|
+
}) : null
|
|
72
|
+
]
|
|
73
|
+
}), actions ?? null]
|
|
74
|
+
}), children]
|
|
75
|
+
});
|
|
76
|
+
};
|
|
77
|
+
Section.displayName = "Section";
|
|
78
|
+
//#endregion
|
|
79
|
+
export { Section as default };
|
|
80
|
+
|
|
81
|
+
//# sourceMappingURL=Section.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Section.mjs","names":["Flexbox"],"sources":["../../../src/dashboard/Section/Section.tsx"],"sourcesContent":["'use client';\n\nimport { ChevronRight } from 'lucide-react';\n\nimport { Flexbox } from '@/Flex';\nimport Icon from '@/Icon';\n\nimport { useSurfaceLink } from '../Surface/link';\nimport Surface from '../Surface/Surface';\nimport { styles } from './style';\nimport type { SectionProps } from './type';\n\n/** A titled page section with description, extra and a \"more\" link, flat or as a card. */\nconst Section = ({\n className,\n variant = 'default',\n fontSize,\n title,\n more,\n moreLink,\n icon,\n children,\n desc,\n extra,\n gap,\n padded,\n renderLink,\n ...rest\n}: SectionProps) => {\n const link = useSurfaceLink(renderLink);\n const moreNode = moreLink\n ? link({\n children: (\n <>\n <span>{more}</span>\n <Icon icon={ChevronRight} />\n </>\n ),\n className: styles.more,\n href: moreLink,\n rel: moreLink.startsWith('http') ? 'noreferrer' : undefined,\n target: moreLink.startsWith('http') ? '_blank' : undefined,\n })\n : null;\n const actions =\n extra || moreNode ? (\n <Flexbox horizontal align=\"center\" gap={8}>\n {extra}\n {moreNode}\n </Flexbox>\n ) : undefined;\n\n if (variant === 'card') {\n return (\n <Surface\n description={desc}\n extra={actions}\n padded={padded ?? true}\n title={\n title ? (\n <span className={styles.title} style={fontSize ? { fontSize } : undefined}>\n {icon}\n {title}\n </span>\n ) : undefined\n }\n >\n <Flexbox className={className} gap={gap ?? 12} {...rest}>\n {children}\n </Flexbox>\n </Surface>\n );\n }\n\n if (!title) {\n return (\n <Flexbox className={className} gap={gap} {...rest}>\n {children}\n </Flexbox>\n );\n }\n\n return (\n <Flexbox className={className} gap={gap ?? 16} width=\"100%\" {...rest}>\n <Flexbox horizontal align=\"center\" gap={12} justify=\"space-between\" width=\"100%\">\n <Flexbox gap={4}>\n {icon}\n <h2 className={styles.title} style={fontSize ? { fontSize } : undefined}>\n {title}\n </h2>\n {desc ? <div className={styles.desc}>{desc}</div> : null}\n </Flexbox>\n {actions ?? null}\n </Flexbox>\n {children}\n </Flexbox>\n );\n};\n\nSection.displayName = 'Section';\n\nexport default Section;\n"],"mappings":";;;;;;;;;;AAaA,MAAM,WAAW,EACf,WACA,UAAU,WACV,UACA,OACA,MACA,UACA,MACA,UACA,MACA,OACA,KACA,QACA,YACA,GAAG,WACe;CAClB,MAAM,OAAO,eAAe,UAAU;CACtC,MAAM,WAAW,WACb,KAAK;EACH,UACE,qBAAA,UAAA,EAAA,UAAA,CACE,oBAAC,QAAD,EAAA,UAAO,KAAW,CAAA,GAClB,oBAAC,MAAD,EAAM,MAAM,aAAe,CAAA,CAC3B,EAAA,CAAA;EAEJ,WAAW,OAAO;EAClB,MAAM;EACN,KAAK,SAAS,WAAW,MAAM,IAAI,eAAe,KAAA;EAClD,QAAQ,SAAS,WAAW,MAAM,IAAI,WAAW,KAAA;CACnD,CAAC,IACD;CACJ,MAAM,UACJ,SAAS,WACP,qBAACA,mBAAD;EAAS,YAAA;EAAW,OAAM;EAAS,KAAK;EAAxC,UAAA,CACG,OACA,QACM;CACP,CAAA,IAAA,KAAA;CAEN,IAAI,YAAY,QACd,OACE,oBAAC,SAAD;EACE,aAAa;EACb,OAAO;EACP,QAAQ,UAAU;EAClB,OACE,QACE,qBAAC,QAAD;GAAM,WAAW,OAAO;GAAO,OAAO,WAAW,EAAE,SAAS,IAAI,KAAA;GAAhE,UAAA,CACG,MACA,KACG;EACJ,CAAA,IAAA,KAAA;EAGN,UAAA,oBAACA,mBAAD;GAAoB;GAAW,KAAK,OAAO;GAAI,GAAI;GAChD;EACM,CAAA;CACF,CAAA;CAIb,IAAI,CAAC,OACH,OACE,oBAACA,mBAAD;EAAoB;EAAgB;EAAK,GAAI;EAC1C;CACM,CAAA;CAIb,OACE,qBAACA,mBAAD;EAAoB;EAAW,KAAK,OAAO;EAAI,OAAM;EAAO,GAAI;EAAhE,UAAA,CACE,qBAACA,mBAAD;GAAS,YAAA;GAAW,OAAM;GAAS,KAAK;GAAI,SAAQ;GAAgB,OAAM;GAA1E,UAAA,CACE,qBAACA,mBAAD;IAAS,KAAK;IAAd,UAAA;KACG;KACD,oBAAC,MAAD;MAAI,WAAW,OAAO;MAAO,OAAO,WAAW,EAAE,SAAS,IAAI,KAAA;MAC3D,UAAA;KACC,CAAA;KACH,OAAO,oBAAC,OAAD;MAAK,WAAW,OAAO;MAAO,UAAA;KAAU,CAAA,IAAI;IAC7C;GACR,CAAA,GAAA,WAAW,IACL;EACR,CAAA,GAAA,QACM;;AAEb;AAEA,QAAQ,cAAc"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { createStaticStyles } from "antd-style";
|
|
2
|
+
//#region src/dashboard/Section/style.ts
|
|
3
|
+
const styles = createStaticStyles(({ css, cssVar }) => ({
|
|
4
|
+
desc: css`
|
|
5
|
+
font-size: 13px;
|
|
6
|
+
font-weight: 400;
|
|
7
|
+
line-height: 1.45;
|
|
8
|
+
color: ${cssVar.colorTextSecondary};
|
|
9
|
+
`,
|
|
10
|
+
more: css`
|
|
11
|
+
display: inline-flex;
|
|
12
|
+
gap: 2px;
|
|
13
|
+
align-items: center;
|
|
14
|
+
|
|
15
|
+
font-size: 13px;
|
|
16
|
+
color: ${cssVar.colorTextSecondary};
|
|
17
|
+
text-decoration: none;
|
|
18
|
+
|
|
19
|
+
&:hover {
|
|
20
|
+
color: ${cssVar.colorText};
|
|
21
|
+
}
|
|
22
|
+
`,
|
|
23
|
+
title: css`
|
|
24
|
+
margin: 0;
|
|
25
|
+
|
|
26
|
+
font-size: 15px;
|
|
27
|
+
font-weight: 600;
|
|
28
|
+
line-height: 1.4;
|
|
29
|
+
color: ${cssVar.colorText};
|
|
30
|
+
`
|
|
31
|
+
}));
|
|
32
|
+
//#endregion
|
|
33
|
+
export { styles };
|
|
34
|
+
|
|
35
|
+
//# sourceMappingURL=style.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"style.mjs","names":[],"sources":["../../../src/dashboard/Section/style.ts"],"sourcesContent":["import { createStaticStyles } from 'antd-style';\n\nexport const styles = createStaticStyles(({ css, cssVar }) => ({\n desc: css`\n font-size: 13px;\n font-weight: 400;\n line-height: 1.45;\n color: ${cssVar.colorTextSecondary};\n `,\n more: css`\n display: inline-flex;\n gap: 2px;\n align-items: center;\n\n font-size: 13px;\n color: ${cssVar.colorTextSecondary};\n text-decoration: none;\n\n &:hover {\n color: ${cssVar.colorText};\n }\n `,\n title: css`\n margin: 0;\n\n font-size: 15px;\n font-weight: 600;\n line-height: 1.4;\n color: ${cssVar.colorText};\n `,\n}));\n"],"mappings":";;AAEA,MAAa,SAAS,oBAAoB,EAAE,KAAK,cAAc;CAC7D,MAAM,GAAG;;;;aAIE,OAAO,mBAAmB;;CAErC,MAAM,GAAG;;;;;;aAME,OAAO,mBAAmB;;;;eAIxB,OAAO,UAAU;;;CAG9B,OAAO,GAAG;;;;;;aAMC,OAAO,UAAU;;AAE9B,EAAE"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { FlexboxProps } from "../../Flex/type.mjs";
|
|
2
|
+
import "../../Flex/index.mjs";
|
|
3
|
+
import { SurfaceRenderLink } from "../Surface/type.mjs";
|
|
4
|
+
import { ReactNode } from "react";
|
|
5
|
+
//#region src/dashboard/Section/type.d.ts
|
|
6
|
+
interface SectionProps extends Omit<FlexboxProps, 'title'> {
|
|
7
|
+
desc?: ReactNode;
|
|
8
|
+
extra?: ReactNode;
|
|
9
|
+
fontSize?: number;
|
|
10
|
+
icon?: ReactNode;
|
|
11
|
+
/** Text of the "more" link. */
|
|
12
|
+
more?: ReactNode;
|
|
13
|
+
/** Target of the "more" link. An `http` URL opens in a new tab. */
|
|
14
|
+
moreLink?: string;
|
|
15
|
+
/** Card body padding (`variant="card"`). Turn off when the children already sit on the card edge. */
|
|
16
|
+
padded?: boolean;
|
|
17
|
+
renderLink?: SurfaceRenderLink;
|
|
18
|
+
title?: ReactNode;
|
|
19
|
+
/** `default` is a titled page section; `card` wraps it in a Surface. */
|
|
20
|
+
variant?: 'default' | 'card';
|
|
21
|
+
}
|
|
22
|
+
//#endregion
|
|
23
|
+
export { SectionProps };
|
|
24
|
+
//# sourceMappingURL=type.d.mts.map
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { SurfaceProps } from "./type.mjs";
|
|
2
2
|
//#region src/dashboard/Surface/Surface.d.ts
|
|
3
3
|
/**
|
|
4
|
-
* Elevated card on a workspace canvas.
|
|
5
|
-
*
|
|
4
|
+
* Elevated card on a workspace canvas. Bare, it is a plain frame. With `title`,
|
|
5
|
+
* `description` or `extra` it gets a header and a padded body that lets a
|
|
6
|
+
* trailing table meet the card edges.
|
|
6
7
|
*/
|
|
7
|
-
declare function Surface({ className, ...rest }: SurfaceProps): import("react").JSX.Element;
|
|
8
|
+
declare function Surface({ bleed, chart, children, className, description, extra, href, loading, padded, renderLink, title, ...rest }: SurfaceProps): import("react").JSX.Element;
|
|
8
9
|
declare namespace Surface {
|
|
9
10
|
var displayName: string;
|
|
10
11
|
}
|
|
@@ -1,16 +1,76 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import Spin from "../../base-ui/Spin/Spin.mjs";
|
|
3
|
+
import Skeleton from "../../base-ui/Skeleton/index.mjs";
|
|
2
4
|
import { styles } from "./style.mjs";
|
|
3
|
-
import {
|
|
5
|
+
import { SurfaceDepthContext, useSurfaceDepth, useSurfaceLink } from "./link.mjs";
|
|
6
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
4
7
|
import { cx } from "antd-style";
|
|
8
|
+
import { ArrowUpRight } from "lucide-react";
|
|
5
9
|
//#region src/dashboard/Surface/Surface.tsx
|
|
10
|
+
const defined = (node) => node !== null && node !== void 0 && node !== false;
|
|
6
11
|
/**
|
|
7
|
-
* Elevated card on a workspace canvas.
|
|
8
|
-
*
|
|
12
|
+
* Elevated card on a workspace canvas. Bare, it is a plain frame. With `title`,
|
|
13
|
+
* `description` or `extra` it gets a header and a padded body that lets a
|
|
14
|
+
* trailing table meet the card edges.
|
|
9
15
|
*/
|
|
10
|
-
function Surface({ className, ...rest }) {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
16
|
+
function Surface({ bleed = false, chart, children, className, description, extra, href, loading, padded, renderLink, title, ...rest }) {
|
|
17
|
+
const depth = useSurfaceDepth();
|
|
18
|
+
const link = useSurfaceLink(renderLink);
|
|
19
|
+
const refreshing = Boolean(loading) && defined(children);
|
|
20
|
+
const placeholder = Boolean(loading) && !defined(children);
|
|
21
|
+
const hasHeader = defined(title) || defined(description) || defined(extra) || refreshing;
|
|
22
|
+
const pad = bleed ? false : padded ?? (hasHeader || placeholder);
|
|
23
|
+
const clip = hasHeader || bleed || pad || defined(chart);
|
|
24
|
+
const heading = /* @__PURE__ */ jsxs("div", {
|
|
25
|
+
className: styles.heading,
|
|
26
|
+
children: [defined(title) ? /* @__PURE__ */ jsx("div", {
|
|
27
|
+
className: styles.title,
|
|
28
|
+
children: title
|
|
29
|
+
}) : null, defined(description) ? /* @__PURE__ */ jsx("div", {
|
|
30
|
+
className: styles.desc,
|
|
31
|
+
children: description
|
|
32
|
+
}) : null]
|
|
33
|
+
});
|
|
34
|
+
const body = placeholder ? /* @__PURE__ */ jsx("div", {
|
|
35
|
+
"aria-busy": "true",
|
|
36
|
+
className: styles.loading,
|
|
37
|
+
children: /* @__PURE__ */ jsx(Skeleton, {
|
|
38
|
+
height: 220,
|
|
39
|
+
radius: 8
|
|
40
|
+
})
|
|
41
|
+
}) : children;
|
|
42
|
+
return /* @__PURE__ */ jsx(SurfaceDepthContext, {
|
|
43
|
+
value: depth + 1,
|
|
44
|
+
children: /* @__PURE__ */ jsxs("div", {
|
|
45
|
+
className: cx(styles.card, styles.content, clip && styles.clip, href && styles.cardLinked, bleed && styles.bleed, className),
|
|
46
|
+
...rest,
|
|
47
|
+
children: [
|
|
48
|
+
hasHeader ? /* @__PURE__ */ jsxs("div", {
|
|
49
|
+
className: styles.header,
|
|
50
|
+
children: [href ? link({
|
|
51
|
+
children: /* @__PURE__ */ jsxs(Fragment, { children: [heading, /* @__PURE__ */ jsx(ArrowUpRight, {
|
|
52
|
+
"aria-hidden": true,
|
|
53
|
+
"data-surface-arrow": true,
|
|
54
|
+
className: styles.arrow,
|
|
55
|
+
size: 16
|
|
56
|
+
})] }),
|
|
57
|
+
className: styles.headingLink,
|
|
58
|
+
href
|
|
59
|
+
}) : heading, refreshing || defined(extra) ? /* @__PURE__ */ jsxs("div", {
|
|
60
|
+
className: styles.extra,
|
|
61
|
+
children: [refreshing ? /* @__PURE__ */ jsx(Spin, { size: "small" }) : null, extra]
|
|
62
|
+
}) : null]
|
|
63
|
+
}) : null,
|
|
64
|
+
pad ? /* @__PURE__ */ jsx("div", {
|
|
65
|
+
className: cx(styles.body, styles.tableBleed),
|
|
66
|
+
children: body
|
|
67
|
+
}) : body,
|
|
68
|
+
defined(chart) ? /* @__PURE__ */ jsx("div", {
|
|
69
|
+
className: styles.chart,
|
|
70
|
+
children: chart
|
|
71
|
+
}) : null
|
|
72
|
+
]
|
|
73
|
+
})
|
|
14
74
|
});
|
|
15
75
|
}
|
|
16
76
|
Surface.displayName = "Surface";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Surface.mjs","names":[],"sources":["../../../src/dashboard/Surface/Surface.tsx"],"sourcesContent":["'use client';\n\nimport { cx } from 'antd-style';\n\nimport { styles } from './style';\nimport type { SurfaceProps } from './type';\n\n/**\n * Elevated card on a workspace canvas.
|
|
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 { SurfaceDepthContext, useSurfaceDepth, useSurfaceLink } 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 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 const clip = hasHeader || bleed || pad || defined(chart);\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 return (\n <SurfaceDepthContext value={depth + 1}>\n <div\n className={cx(\n styles.card,\n styles.content,\n clip && 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 <ArrowUpRight\n aria-hidden\n data-surface-arrow\n className={styles.arrow}\n size={16}\n />\n </>\n ),\n className: styles.headingLink,\n href,\n })\n : heading}\n {refreshing || defined(extra) ? (\n <div className={styles.extra}>\n {refreshing ? <Spin size=\"small\" /> : null}\n {extra}\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":";;;;;;;;;AAaA,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,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;CACrD,MAAM,OAAO,aAAa,SAAS,OAAO,QAAQ,KAAK;CAEvD,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;CAGF,OACE,oBAAC,qBAAD;EAAqB,OAAO,QAAQ;EAClC,UAAA,qBAAC,OAAD;GACE,WAAW,GACT,OAAO,MACP,OAAO,SACP,QAAQ,OAAO,MACf,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,SACD,oBAAC,cAAD;OACE,eAAA;OACA,sBAAA;OACA,WAAW,OAAO;OAClB,MAAM;MACP,CAAA,CACD,EAAA,CAAA;MAEJ,WAAW,OAAO;MAClB;KACF,CAAC,IACD,SACH,cAAc,QAAQ,KAAK,IAC1B,qBAAC,OAAD;MAAK,WAAW,OAAO;MAAvB,UAAA,CACG,aAAa,oBAAC,MAAD,EAAM,MAAK,QAAS,CAAA,IAAI,MACrC,KACE;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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
+
import { SurfaceLinkProps, SurfaceProps, SurfaceRenderLink } from "./type.mjs";
|
|
2
|
+
import { SurfaceLinkProvider, useSurfaceDepth, useSurfaceLink } from "./link.mjs";
|
|
1
3
|
import { styles } from "./style.mjs";
|
|
2
|
-
import { SurfaceProps } from "./type.mjs";
|
|
3
4
|
import Surface from "./Surface.mjs";
|
|
4
|
-
export { type SurfaceProps, Surface as default, styles as surfaceStyles };
|
|
5
|
+
export { type SurfaceLinkProps, SurfaceLinkProvider, type SurfaceProps, type SurfaceRenderLink, Surface as default, styles as surfaceStyles, useSurfaceDepth, useSurfaceLink };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { SurfaceRenderLink } from "./type.mjs";
|
|
2
|
+
import { ReactNode } from "react";
|
|
3
|
+
//#region src/dashboard/Surface/link.d.ts
|
|
4
|
+
/** Plugs the app router into every dashboard card link (Surface, MetricStrip, Section). */
|
|
5
|
+
declare const SurfaceLinkProvider: ({ children, renderLink }: {
|
|
6
|
+
children?: ReactNode;
|
|
7
|
+
renderLink: SurfaceRenderLink;
|
|
8
|
+
}) => import("react").JSX.Element;
|
|
9
|
+
declare const useSurfaceLink: (override?: SurfaceRenderLink) => SurfaceRenderLink;
|
|
10
|
+
/** How many Surface cards wrap this node. A table can skip its own card when already inside one. */
|
|
11
|
+
declare const useSurfaceDepth: () => number;
|
|
12
|
+
//#endregion
|
|
13
|
+
export { SurfaceLinkProvider, useSurfaceDepth, useSurfaceLink };
|
|
14
|
+
//# sourceMappingURL=link.d.mts.map
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { createContext, use } from "react";
|
|
3
|
+
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
//#region src/dashboard/Surface/link.tsx
|
|
5
|
+
const defaultRenderLink = ({ children, ...rest }) => /* @__PURE__ */ jsx("a", {
|
|
6
|
+
...rest,
|
|
7
|
+
children
|
|
8
|
+
});
|
|
9
|
+
const SurfaceLinkContext = createContext(defaultRenderLink);
|
|
10
|
+
const SurfaceDepthContext = createContext(0);
|
|
11
|
+
/** Plugs the app router into every dashboard card link (Surface, MetricStrip, Section). */
|
|
12
|
+
const SurfaceLinkProvider = ({ children, renderLink }) => /* @__PURE__ */ jsx(SurfaceLinkContext, {
|
|
13
|
+
value: renderLink,
|
|
14
|
+
children
|
|
15
|
+
});
|
|
16
|
+
const useSurfaceLink = (override) => override ?? use(SurfaceLinkContext);
|
|
17
|
+
/** How many Surface cards wrap this node. A table can skip its own card when already inside one. */
|
|
18
|
+
const useSurfaceDepth = () => use(SurfaceDepthContext);
|
|
19
|
+
//#endregion
|
|
20
|
+
export { SurfaceDepthContext, SurfaceLinkProvider, useSurfaceDepth, useSurfaceLink };
|
|
21
|
+
|
|
22
|
+
//# sourceMappingURL=link.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"link.mjs","names":[],"sources":["../../../src/dashboard/Surface/link.tsx"],"sourcesContent":["'use client';\n\nimport { createContext, type ReactNode, use } from 'react';\n\nimport type { SurfaceLinkProps, SurfaceRenderLink } from './type';\n\nconst defaultRenderLink: SurfaceRenderLink = ({ children, ...rest }: SurfaceLinkProps) => (\n <a {...rest}>{children}</a>\n);\n\nconst SurfaceLinkContext = createContext<SurfaceRenderLink>(defaultRenderLink);\n\nconst SurfaceDepthContext = createContext(0);\n\n/** Plugs the app router into every dashboard card link (Surface, MetricStrip, Section). */\nexport const SurfaceLinkProvider = ({\n children,\n renderLink,\n}: {\n children?: ReactNode;\n renderLink: SurfaceRenderLink;\n}) => <SurfaceLinkContext value={renderLink}>{children}</SurfaceLinkContext>;\n\nexport const useSurfaceLink = (override?: SurfaceRenderLink) => override ?? use(SurfaceLinkContext);\n\n/** How many Surface cards wrap this node. A table can skip its own card when already inside one. */\nexport const useSurfaceDepth = () => use(SurfaceDepthContext);\n\nexport { SurfaceDepthContext };\n"],"mappings":";;;;AAMA,MAAM,qBAAwC,EAAE,UAAU,GAAG,WAC3D,oBAAC,KAAD;CAAG,GAAI;CAAO;AAAY,CAAA;AAG5B,MAAM,qBAAqB,cAAiC,iBAAiB;AAE7E,MAAM,sBAAsB,cAAc,CAAC;;AAG3C,MAAa,uBAAuB,EAClC,UACA,iBAII,oBAAC,oBAAD;CAAoB,OAAO;CAAa;AAA6B,CAAA;AAE3E,MAAa,kBAAkB,aAAiC,YAAY,IAAI,kBAAkB;;AAGlG,MAAa,wBAAwB,IAAI,mBAAmB"}
|
|
@@ -8,6 +8,29 @@
|
|
|
8
8
|
*/
|
|
9
9
|
declare const styles: {
|
|
10
10
|
card: string;
|
|
11
|
+
chart: string;
|
|
12
|
+
/** Rounded corners clip a bled table, header rule, or chart. Bare cards keep overflow visible. */
|
|
13
|
+
clip: string;
|
|
14
|
+
loading: string;
|
|
15
|
+
arrow: string;
|
|
16
|
+
bleed: string;
|
|
17
|
+
body: string;
|
|
18
|
+
/** Table and header rules for the rich card. Kept off `card` so the shared class stays a plain frame. */
|
|
19
|
+
content: string;
|
|
20
|
+
/** Whole card answers hover when its header drills into another page. */
|
|
21
|
+
cardLinked: string;
|
|
22
|
+
desc: string;
|
|
23
|
+
extra: string;
|
|
24
|
+
header: string;
|
|
25
|
+
heading: string;
|
|
26
|
+
headingLink: string;
|
|
27
|
+
/**
|
|
28
|
+
* A table inside padded card body meets the card's left, right, and bottom
|
|
29
|
+
* edges. A table that is the only body content also meets the header.
|
|
30
|
+
* Padding amounts come from `--surface-pad-*` on the same element.
|
|
31
|
+
*/
|
|
32
|
+
tableBleed: string;
|
|
33
|
+
title: string;
|
|
11
34
|
};
|
|
12
35
|
//#endregion
|
|
13
36
|
export { styles };
|