@lobehub/ui 5.59.0 → 5.61.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/ActionIcon/style.mjs +8 -2
- package/es/ActionIcon/style.mjs.map +1 -1
- package/es/EmojiPicker/AvatarUploader.mjs +1 -1
- package/es/Form/components/FormSubmitFooter.mjs +1 -1
- package/es/awesome/Grainient/Grainient.d.mts +11 -0
- package/es/awesome/Grainient/Grainient.mjs +311 -0
- package/es/awesome/Grainient/Grainient.mjs.map +1 -0
- package/es/awesome/Grainient/index.d.mts +3 -0
- package/es/awesome/Grainient/style.mjs +25 -0
- package/es/awesome/Grainient/style.mjs.map +1 -0
- package/es/awesome/Grainient/type.d.mts +122 -0
- package/es/awesome/index.d.mts +4 -1
- package/es/awesome/index.mjs +2 -1
- package/es/base-ui/ActionIcon/style.mjs +8 -2
- package/es/base-ui/ActionIcon/style.mjs.map +1 -1
- package/es/base-ui/Input/style.d.mts +1 -1
- package/es/base-ui/Pagination/Pagination.mjs +158 -41
- package/es/base-ui/Pagination/Pagination.mjs.map +1 -1
- package/es/base-ui/Pagination/helpers.mjs +3 -3
- package/es/base-ui/Pagination/helpers.mjs.map +1 -1
- package/es/base-ui/Pagination/index.d.mts +2 -2
- package/es/base-ui/Pagination/style.mjs +39 -0
- package/es/base-ui/Pagination/style.mjs.map +1 -1
- package/es/base-ui/Pagination/type.d.mts +42 -4
- package/es/base-ui/QRCode/QRCode.mjs +1 -1
- package/es/base-ui/Table/Column.d.mts +9 -0
- package/es/base-ui/Table/Column.mjs +7 -0
- package/es/base-ui/Table/Column.mjs.map +1 -0
- package/es/base-ui/Table/ColumnGroup.d.mts +12 -0
- package/es/base-ui/Table/ColumnGroup.mjs +7 -0
- package/es/base-ui/Table/ColumnGroup.mjs.map +1 -0
- package/es/base-ui/Table/ExpandIcon.mjs +33 -0
- package/es/base-ui/Table/ExpandIcon.mjs.map +1 -0
- package/es/base-ui/Table/FilterDropdown.mjs +284 -0
- package/es/base-ui/Table/FilterDropdown.mjs.map +1 -0
- package/es/base-ui/Table/LoadingSkeleton.mjs +83 -0
- package/es/base-ui/Table/LoadingSkeleton.mjs.map +1 -0
- package/es/base-ui/Table/Table.d.mts +21 -3
- package/es/base-ui/Table/Table.mjs +444 -97
- package/es/base-ui/Table/Table.mjs.map +1 -1
- package/es/base-ui/Table/columnUtils.mjs +56 -0
- package/es/base-ui/Table/columnUtils.mjs.map +1 -0
- package/es/base-ui/Table/index.d.mts +4 -2
- package/es/base-ui/Table/selectionUtils.d.mts +9 -0
- package/es/base-ui/Table/selectionUtils.mjs +128 -0
- package/es/base-ui/Table/selectionUtils.mjs.map +1 -0
- package/es/base-ui/Table/semantic.mjs +55 -0
- package/es/base-ui/Table/semantic.mjs.map +1 -0
- package/es/base-ui/Table/style.mjs +801 -161
- package/es/base-ui/Table/style.mjs.map +1 -1
- package/es/base-ui/Table/type.d.mts +471 -37
- package/es/base-ui/Table/useBreakpoint.mjs +41 -0
- package/es/base-ui/Table/useBreakpoint.mjs.map +1 -0
- package/es/base-ui/Table/useFilter.mjs +64 -0
- package/es/base-ui/Table/useFilter.mjs.map +1 -0
- package/es/base-ui/Table/useSelection.mjs +421 -0
- package/es/base-ui/Table/useSelection.mjs.map +1 -0
- package/es/base-ui/Table/useSorter.mjs +152 -0
- package/es/base-ui/Table/useSorter.mjs.map +1 -0
- package/es/base-ui/Table/useTableState.mjs +82 -55
- package/es/base-ui/Table/useTableState.mjs.map +1 -1
- package/es/base-ui/index.d.mts +6 -4
- package/es/base-ui/index.mjs +9 -9
- package/es/chat/EditableMessageList/EditableMessageList.mjs +1 -1
- package/es/chat/MessageInput/MessageInput.mjs +1 -1
- package/es/chat/MessageModal/MessageModal.mjs +1 -1
- package/es/chat/TokenTag/TokenTag.mjs +1 -1
- package/es/dashboard/AuthLayout/Aside.d.mts +10 -0
- package/es/dashboard/AuthLayout/Aside.mjs +30 -0
- package/es/dashboard/AuthLayout/Aside.mjs.map +1 -0
- package/es/dashboard/AuthLayout/AuthLayout.d.mts +3 -1
- package/es/dashboard/AuthLayout/AuthLayout.mjs +93 -37
- package/es/dashboard/AuthLayout/AuthLayout.mjs.map +1 -1
- package/es/dashboard/AuthLayout/index.d.mts +3 -2
- package/es/dashboard/AuthLayout/style.mjs +120 -1
- package/es/dashboard/AuthLayout/style.mjs.map +1 -1
- package/es/dashboard/AuthLayout/type.d.mts +39 -3
- package/es/dashboard/AuthTools/AuthLocaleSwitch.d.mts +10 -0
- package/es/dashboard/AuthTools/AuthLocaleSwitch.mjs +32 -0
- package/es/dashboard/AuthTools/AuthLocaleSwitch.mjs.map +1 -0
- package/es/dashboard/AuthTools/AuthThemeSwitch.d.mts +10 -0
- package/es/dashboard/AuthTools/AuthThemeSwitch.mjs +59 -0
- package/es/dashboard/AuthTools/AuthThemeSwitch.mjs.map +1 -0
- package/es/dashboard/AuthTools/index.d.mts +4 -0
- package/es/dashboard/AuthTools/style.mjs +63 -0
- package/es/dashboard/AuthTools/style.mjs.map +1 -0
- package/es/dashboard/AuthTools/type.d.mts +30 -0
- package/es/dashboard/ConsoleNav/Skeleton.d.mts +15 -0
- package/es/dashboard/ConsoleNav/Skeleton.mjs +81 -0
- package/es/dashboard/ConsoleNav/Skeleton.mjs.map +1 -0
- package/es/dashboard/ConsoleNav/index.d.mts +3 -2
- package/es/dashboard/ConsoleNav/style.mjs +15 -0
- package/es/dashboard/ConsoleNav/style.mjs.map +1 -1
- package/es/dashboard/ConsoleNav/type.d.mts +14 -1
- package/es/dashboard/ConsoleShell/ConsoleShell.d.mts +1 -1
- package/es/dashboard/ConsoleShell/ConsoleShell.mjs +11 -3
- package/es/dashboard/ConsoleShell/ConsoleShell.mjs.map +1 -1
- package/es/dashboard/ConsoleShell/style.mjs +6 -0
- package/es/dashboard/ConsoleShell/style.mjs.map +1 -1
- package/es/dashboard/ConsoleShell/type.d.mts +9 -0
- package/es/dashboard/FilterSidebar/FilterSidebar.mjs +18 -17
- package/es/dashboard/FilterSidebar/FilterSidebar.mjs.map +1 -1
- package/es/dashboard/FilterStrip/FilterStrip.mjs +36 -32
- package/es/dashboard/FilterStrip/FilterStrip.mjs.map +1 -1
- package/es/dashboard/FilterStrip/style.mjs +2 -1
- package/es/dashboard/FilterStrip/style.mjs.map +1 -1
- package/es/dashboard/MetricStrip/MetricCell.mjs +81 -0
- package/es/dashboard/MetricStrip/MetricCell.mjs.map +1 -0
- package/es/dashboard/MetricStrip/MetricStrip.d.mts +5 -2
- package/es/dashboard/MetricStrip/MetricStrip.mjs +33 -62
- package/es/dashboard/MetricStrip/MetricStrip.mjs.map +1 -1
- package/es/dashboard/MetricStrip/style.mjs +49 -4
- package/es/dashboard/MetricStrip/style.mjs.map +1 -1
- package/es/dashboard/MetricStrip/type.d.mts +12 -0
- package/es/dashboard/PageSkeleton/PageSkeleton.mjs +20 -18
- package/es/dashboard/PageSkeleton/PageSkeleton.mjs.map +1 -1
- package/es/dashboard/PageSkeleton/style.mjs +1 -1
- package/es/dashboard/PageSkeleton/style.mjs.map +1 -1
- package/es/dashboard/PanelSurface/PanelSurface.mjs +4 -1
- package/es/dashboard/PanelSurface/PanelSurface.mjs.map +1 -1
- package/es/dashboard/StatCard/StatCard.d.mts +2 -1
- package/es/dashboard/StatCard/StatCard.mjs +24 -72
- package/es/dashboard/StatCard/StatCard.mjs.map +1 -1
- package/es/dashboard/StatCard/type.d.mts +16 -5
- package/es/dashboard/Surface/Surface.mjs +26 -10
- package/es/dashboard/Surface/Surface.mjs.map +1 -1
- package/es/dashboard/Surface/index.d.mts +2 -2
- package/es/dashboard/Surface/link.d.mts +6 -1
- package/es/dashboard/Surface/link.mjs +12 -1
- package/es/dashboard/Surface/link.mjs.map +1 -1
- package/es/dashboard/Surface/style.d.mts +22 -3
- package/es/dashboard/Surface/style.mjs +95 -26
- package/es/dashboard/Surface/style.mjs.map +1 -1
- package/es/dashboard/index.d.mts +10 -4
- package/es/dashboard/index.mjs +7 -3
- package/es/i18n/resources/en/index.d.mts +3 -2
- package/es/i18n/resources/en/index.mjs +4 -2
- package/es/i18n/resources/en/index.mjs.map +1 -1
- package/es/i18n/resources/en/table.d.mts +23 -0
- package/es/i18n/resources/en/table.mjs +24 -0
- package/es/i18n/resources/en/table.mjs.map +1 -0
- package/es/i18n/resources/zhCn/index.d.mts +3 -2
- package/es/i18n/resources/zhCn/index.mjs +4 -2
- package/es/i18n/resources/zhCn/index.mjs.map +1 -1
- package/es/i18n/resources/zhCn/table.d.mts +23 -0
- package/es/i18n/resources/zhCn/table.mjs +24 -0
- package/es/i18n/resources/zhCn/table.mjs.map +1 -0
- package/es/i18n/types.d.mts +2 -1
- package/es/index.mjs +2 -2
- package/package.json +2 -2
- package/es/base-ui/Table/FilterMenu.mjs +0 -45
- package/es/base-ui/Table/FilterMenu.mjs.map +0 -1
- package/es/base-ui/Table/TableBody.mjs +0 -59
- package/es/base-ui/Table/TableBody.mjs.map +0 -1
- package/es/base-ui/Table/TableHead.mjs +0 -50
- package/es/base-ui/Table/TableHead.mjs.map +0 -1
- package/es/base-ui/Table/features.mjs +0 -12
- package/es/base-ui/Table/features.mjs.map +0 -1
- package/es/base-ui/Table/fixedOffsets.mjs +0 -29
- package/es/base-ui/Table/fixedOffsets.mjs.map +0 -1
- package/es/base-ui/Table/toColumnDefs.mjs +0 -26
- package/es/base-ui/Table/toColumnDefs.mjs.map +0 -1
- package/es/dashboard/StatCard/style.mjs +0 -135
- package/es/dashboard/StatCard/style.mjs.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lobehub/ui",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.61.0",
|
|
4
4
|
"description": "Lobe UI is an open-source UI component library for building AIGC web apps",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"lobehub",
|
|
@@ -161,12 +161,12 @@
|
|
|
161
161
|
"@mdx-js/react": "^3.1.1",
|
|
162
162
|
"@pierre/diffs": "1.2.12",
|
|
163
163
|
"@radix-ui/react-slot": "^1.3.0",
|
|
164
|
+
"@rc-component/table": "~1.11.1",
|
|
164
165
|
"@shikijs/core": "^4.3.1",
|
|
165
166
|
"@shikijs/stream": "^4.3.1",
|
|
166
167
|
"@shikijs/transformers": "^4.3.1",
|
|
167
168
|
"@splinetool/runtime": "1.12.98",
|
|
168
169
|
"@tanstack/form-core": "^1.33.5",
|
|
169
|
-
"@tanstack/react-table": "^9.2.4",
|
|
170
170
|
"ahooks": "^3.9.7",
|
|
171
171
|
"antd-style": "^4.1.0",
|
|
172
172
|
"beautiful-mermaid": "^1.1.3",
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import Icon from "../../Icon/Icon.mjs";
|
|
3
|
-
import DropdownMenu from "../DropdownMenu/DropdownMenu.mjs";
|
|
4
|
-
import { styles } from "./style.mjs";
|
|
5
|
-
import { memo } from "react";
|
|
6
|
-
import { jsx } from "react/jsx-runtime";
|
|
7
|
-
import { cx } from "antd-style";
|
|
8
|
-
import { ListFilter } from "lucide-react";
|
|
9
|
-
//#region src/base-ui/Table/FilterMenu.tsx
|
|
10
|
-
const FilterMenu = memo(({ filters, label, onChange, value }) => {
|
|
11
|
-
const items = [
|
|
12
|
-
...filters.map((filter) => ({
|
|
13
|
-
checked: value.includes(filter.value),
|
|
14
|
-
closeOnClick: false,
|
|
15
|
-
key: String(filter.value),
|
|
16
|
-
label: filter.text,
|
|
17
|
-
onCheckedChange: (checked) => onChange(checked ? [...value, filter.value] : value.filter((item) => item !== filter.value)),
|
|
18
|
-
type: "checkbox"
|
|
19
|
-
})),
|
|
20
|
-
{ type: "divider" },
|
|
21
|
-
{
|
|
22
|
-
disabled: value.length === 0,
|
|
23
|
-
key: "__reset",
|
|
24
|
-
label: "Reset",
|
|
25
|
-
onClick: () => onChange([])
|
|
26
|
-
}
|
|
27
|
-
];
|
|
28
|
-
return /* @__PURE__ */ jsx(DropdownMenu, {
|
|
29
|
-
items,
|
|
30
|
-
children: /* @__PURE__ */ jsx("button", {
|
|
31
|
-
"aria-label": `Filter ${label}`,
|
|
32
|
-
className: cx(styles.filterButton, value.length > 0 && styles.filterActive),
|
|
33
|
-
type: "button",
|
|
34
|
-
children: /* @__PURE__ */ jsx(Icon, {
|
|
35
|
-
icon: ListFilter,
|
|
36
|
-
size: 12
|
|
37
|
-
})
|
|
38
|
-
})
|
|
39
|
-
});
|
|
40
|
-
});
|
|
41
|
-
FilterMenu.displayName = "TableFilterMenu";
|
|
42
|
-
//#endregion
|
|
43
|
-
export { FilterMenu as default };
|
|
44
|
-
|
|
45
|
-
//# sourceMappingURL=FilterMenu.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FilterMenu.mjs","names":[],"sources":["../../../src/base-ui/Table/FilterMenu.tsx"],"sourcesContent":["'use client';\n\nimport { cx } from 'antd-style';\nimport { ListFilter } from 'lucide-react';\nimport { memo, type ReactNode } from 'react';\n\nimport DropdownMenu from '@/base-ui/DropdownMenu';\nimport type { DropdownItem } from '@/base-ui/DropdownMenu/type';\nimport Icon from '@/Icon';\n\nimport { styles } from './style';\nimport type { FilterValue } from './type';\n\ninterface FilterMenuProps {\n filters: { text: ReactNode; value: FilterValue }[];\n label: string;\n onChange: (next: FilterValue[]) => void;\n value: FilterValue[];\n}\n\nconst FilterMenu = memo<FilterMenuProps>(({ filters, label, onChange, value }) => {\n const items: DropdownItem[] = [\n ...filters.map((filter) => ({\n checked: value.includes(filter.value),\n closeOnClick: false,\n key: String(filter.value),\n label: filter.text,\n onCheckedChange: (checked: boolean) =>\n onChange(\n checked ? [...value, filter.value] : value.filter((item) => item !== filter.value),\n ),\n type: 'checkbox' as const,\n })),\n { type: 'divider' as const },\n { disabled: value.length === 0, key: '__reset', label: 'Reset', onClick: () => onChange([]) },\n ];\n\n return (\n <DropdownMenu items={items}>\n <button\n aria-label={`Filter ${label}`}\n className={cx(styles.filterButton, value.length > 0 && styles.filterActive)}\n type=\"button\"\n >\n <Icon icon={ListFilter} size={12} />\n </button>\n </DropdownMenu>\n );\n});\n\nFilterMenu.displayName = 'TableFilterMenu';\n\nexport default FilterMenu;\n"],"mappings":";;;;;;;;;AAoBA,MAAM,aAAa,MAAuB,EAAE,SAAS,OAAO,UAAU,YAAY;CAChF,MAAM,QAAwB;EAC5B,GAAG,QAAQ,KAAK,YAAY;GAC1B,SAAS,MAAM,SAAS,OAAO,KAAK;GACpC,cAAc;GACd,KAAK,OAAO,OAAO,KAAK;GACxB,OAAO,OAAO;GACd,kBAAkB,YAChB,SACE,UAAU,CAAC,GAAG,OAAO,OAAO,KAAK,IAAI,MAAM,QAAQ,SAAS,SAAS,OAAO,KAAK,CACnF;GACF,MAAM;EACR,EAAE;EACF,EAAE,MAAM,UAAmB;EAC3B;GAAE,UAAU,MAAM,WAAW;GAAG,KAAK;GAAW,OAAO;GAAS,eAAe,SAAS,CAAC,CAAC;EAAE;CAC9F;CAEA,OACE,oBAAC,cAAD;EAAqB;EACnB,UAAA,oBAAC,UAAD;GACE,cAAY,UAAU;GACtB,WAAW,GAAG,OAAO,cAAc,MAAM,SAAS,KAAK,OAAO,YAAY;GAC1E,MAAK;GAEL,UAAA,oBAAC,MAAD;IAAM,MAAM;IAAY,MAAM;GAAK,CAAA;EAC7B,CAAA;CACI,CAAA;AAElB,CAAC;AAED,WAAW,cAAc"}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import Spin from "../Spin/Spin.mjs";
|
|
3
|
-
import Empty from "../../Empty/Empty.mjs";
|
|
4
|
-
import { styles } from "./style.mjs";
|
|
5
|
-
import { getCellValue } from "./toColumnDefs.mjs";
|
|
6
|
-
import { createElement } from "react";
|
|
7
|
-
import { jsx } from "react/jsx-runtime";
|
|
8
|
-
import { cx } from "antd-style";
|
|
9
|
-
//#region src/base-ui/Table/TableBody.tsx
|
|
10
|
-
const TableBody = ({ classNames, columnIds, columns, emptyText, fixedOffsets, loading, onRow, rowClassName, rows, styles: customStyles }) => {
|
|
11
|
-
if (rows.length === 0) return /* @__PURE__ */ jsx("tbody", {
|
|
12
|
-
className: classNames?.body,
|
|
13
|
-
style: customStyles?.body,
|
|
14
|
-
children: /* @__PURE__ */ jsx("tr", { children: /* @__PURE__ */ jsx("td", {
|
|
15
|
-
className: styles.empty,
|
|
16
|
-
colSpan: columns.length,
|
|
17
|
-
children: loading ? /* @__PURE__ */ jsx(Spin, {}) : emptyText ?? /* @__PURE__ */ jsx(Empty, { description: "No data" })
|
|
18
|
-
}) })
|
|
19
|
-
});
|
|
20
|
-
return /* @__PURE__ */ jsx("tbody", {
|
|
21
|
-
className: classNames?.body,
|
|
22
|
-
style: customStyles?.body,
|
|
23
|
-
children: rows.map((row, rowIndex) => {
|
|
24
|
-
const record = row.original;
|
|
25
|
-
const rowProps = onRow?.(record, rowIndex) ?? {};
|
|
26
|
-
const extraClassName = typeof rowClassName === "function" ? rowClassName(record, rowIndex) : rowClassName;
|
|
27
|
-
return /* @__PURE__ */ createElement("tr", {
|
|
28
|
-
...rowProps,
|
|
29
|
-
key: row.id,
|
|
30
|
-
style: {
|
|
31
|
-
...customStyles?.row,
|
|
32
|
-
...rowProps.style
|
|
33
|
-
},
|
|
34
|
-
className: cx(styles.row, rowProps.onClick && styles.clickable, extraClassName, classNames?.row, rowProps.className)
|
|
35
|
-
}, columns.map((column, columnIndex) => {
|
|
36
|
-
const value = getCellValue(record, column);
|
|
37
|
-
const cellProps = column.onCell?.(record, rowIndex) ?? {};
|
|
38
|
-
const content = column.render ? column.render(value, record, rowIndex) : value;
|
|
39
|
-
return /* @__PURE__ */ createElement("td", {
|
|
40
|
-
...cellProps,
|
|
41
|
-
key: columnIds[columnIndex],
|
|
42
|
-
title: column.ellipsis && typeof content === "string" ? content : cellProps.title,
|
|
43
|
-
className: cx(styles.cell, column.ellipsis && styles.ellipsis, column.fixed && styles.fixed, column.className, classNames?.cell, cellProps.className),
|
|
44
|
-
style: {
|
|
45
|
-
textAlign: column.align,
|
|
46
|
-
width: column.width,
|
|
47
|
-
...fixedOffsets[columnIndex],
|
|
48
|
-
...customStyles?.cell,
|
|
49
|
-
...cellProps.style
|
|
50
|
-
}
|
|
51
|
-
}, content);
|
|
52
|
-
}));
|
|
53
|
-
})
|
|
54
|
-
});
|
|
55
|
-
};
|
|
56
|
-
//#endregion
|
|
57
|
-
export { TableBody as default };
|
|
58
|
-
|
|
59
|
-
//# sourceMappingURL=TableBody.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TableBody.mjs","names":[],"sources":["../../../src/base-ui/Table/TableBody.tsx"],"sourcesContent":["'use client';\n\nimport { cx } from 'antd-style';\nimport type { CSSProperties, Key, ReactNode } from 'react';\n\nimport Spin from '@/base-ui/Spin';\nimport Empty from '@/Empty';\n\nimport { styles } from './style';\nimport { getCellValue } from './toColumnDefs';\nimport type { TableColumn, TableProps } from './type';\n\ninterface TableBodyProps<T> {\n classNames?: TableProps<T>['classNames'];\n columnIds: string[];\n columns: TableColumn<T>[];\n emptyText?: ReactNode;\n fixedOffsets: (CSSProperties | undefined)[];\n loading: boolean;\n onRow?: TableProps<T>['onRow'];\n rowClassName?: TableProps<T>['rowClassName'];\n rows: { id: Key; original: T }[];\n styles?: TableProps<T>['styles'];\n}\n\nconst TableBody = <T,>({\n classNames,\n columnIds,\n columns,\n emptyText,\n fixedOffsets,\n loading,\n onRow,\n rowClassName,\n rows,\n styles: customStyles,\n}: TableBodyProps<T>) => {\n if (rows.length === 0) {\n return (\n <tbody className={classNames?.body} style={customStyles?.body}>\n <tr>\n <td className={styles.empty} colSpan={columns.length}>\n {loading ? <Spin /> : (emptyText ?? <Empty description=\"No data\" />)}\n </td>\n </tr>\n </tbody>\n );\n }\n\n return (\n <tbody className={classNames?.body} style={customStyles?.body}>\n {rows.map((row, rowIndex) => {\n const record = row.original;\n const rowProps = onRow?.(record, rowIndex) ?? {};\n const extraClassName =\n typeof rowClassName === 'function' ? rowClassName(record, rowIndex) : rowClassName;\n\n return (\n <tr\n {...rowProps}\n key={row.id}\n style={{ ...customStyles?.row, ...rowProps.style }}\n className={cx(\n styles.row,\n rowProps.onClick && styles.clickable,\n extraClassName,\n classNames?.row,\n rowProps.className,\n )}\n >\n {columns.map((column, columnIndex) => {\n const value = getCellValue(record, column);\n const cellProps = column.onCell?.(record, rowIndex) ?? {};\n const content = column.render\n ? column.render(value, record, rowIndex)\n : (value as ReactNode);\n\n return (\n <td\n {...cellProps}\n key={columnIds[columnIndex]}\n title={column.ellipsis && typeof content === 'string' ? content : cellProps.title}\n className={cx(\n styles.cell,\n column.ellipsis && styles.ellipsis,\n column.fixed && styles.fixed,\n column.className,\n classNames?.cell,\n cellProps.className,\n )}\n style={{\n textAlign: column.align,\n width: column.width,\n ...fixedOffsets[columnIndex],\n ...customStyles?.cell,\n ...cellProps.style,\n }}\n >\n {content}\n </td>\n );\n })}\n </tr>\n );\n })}\n </tbody>\n );\n};\n\nexport default TableBody;\n"],"mappings":";;;;;;;;;AAyBA,MAAM,aAAiB,EACrB,YACA,WACA,SACA,WACA,cACA,SACA,OACA,cACA,MACA,QAAQ,mBACe;CACvB,IAAI,KAAK,WAAW,GAClB,OACE,oBAAC,SAAD;EAAO,WAAW,YAAY;EAAM,OAAO,cAAc;EACvD,UAAA,oBAAC,MAAD,EAAA,UACE,oBAAC,MAAD;GAAI,WAAW,OAAO;GAAO,SAAS,QAAQ;GAC3C,UAAA,UAAU,oBAAC,MAAD,CAAO,CAAA,IAAK,aAAa,oBAAC,OAAD,EAAO,aAAY,UAAW,CAAA;EAChE,CAAA,EACF,CAAA;CACC,CAAA;CAIX,OACE,oBAAC,SAAD;EAAO,WAAW,YAAY;EAAM,OAAO,cAAc;EACtD,UAAA,KAAK,KAAK,KAAK,aAAa;GAC3B,MAAM,SAAS,IAAI;GACnB,MAAM,WAAW,QAAQ,QAAQ,QAAQ,KAAK,CAAC;GAC/C,MAAM,iBACJ,OAAO,iBAAiB,aAAa,aAAa,QAAQ,QAAQ,IAAI;GAExE,OACE,8BAAC,MAAD;IACE,GAAI;IACJ,KAAK,IAAI;IACT,OAAO;KAAE,GAAG,cAAc;KAAK,GAAG,SAAS;IAAM;IACjD,WAAW,GACT,OAAO,KACP,SAAS,WAAW,OAAO,WAC3B,gBACA,YAAY,KACZ,SAAS,SACX;GAkCE,GAhCD,QAAQ,KAAK,QAAQ,gBAAgB;IACpC,MAAM,QAAQ,aAAa,QAAQ,MAAM;IACzC,MAAM,YAAY,OAAO,SAAS,QAAQ,QAAQ,KAAK,CAAC;IACxD,MAAM,UAAU,OAAO,SACnB,OAAO,OAAO,OAAO,QAAQ,QAAQ,IACpC;IAEL,OACE,8BAAC,MAAD;KACE,GAAI;KACJ,KAAK,UAAU;KACf,OAAO,OAAO,YAAY,OAAO,YAAY,WAAW,UAAU,UAAU;KAC5E,WAAW,GACT,OAAO,MACP,OAAO,YAAY,OAAO,UAC1B,OAAO,SAAS,OAAO,OACvB,OAAO,WACP,YAAY,MACZ,UAAU,SACZ;KACA,OAAO;MACL,WAAW,OAAO;MAClB,OAAO,OAAO;MACd,GAAG,aAAa;MAChB,GAAG,cAAc;MACjB,GAAG,UAAU;KACf;IAGE,GADD,OACC;GAER,CAAC,CACC;EAER,CAAC;CACI,CAAA;AAEX"}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import Icon from "../../Icon/Icon.mjs";
|
|
3
|
-
import { styles } from "./style.mjs";
|
|
4
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
-
import { cx } from "antd-style";
|
|
6
|
-
import { ChevronDown, ChevronUp } from "lucide-react";
|
|
7
|
-
//#region src/base-ui/Table/TableHead.tsx
|
|
8
|
-
const ariaSortOf = (sorted) => sorted === "asc" ? "ascending" : sorted === "desc" ? "descending" : "none";
|
|
9
|
-
const TableHead = ({ classNames, columnIds, columns, fixedOffsets, getColumn, renderFilter, styles: customStyles }) => /* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsx("tr", { children: columns.map((column, index) => {
|
|
10
|
-
const id = columnIds[index];
|
|
11
|
-
const tableColumn = getColumn(id);
|
|
12
|
-
const sorted = column.sorter ? tableColumn?.getIsSorted() ?? false : false;
|
|
13
|
-
return /* @__PURE__ */ jsx("th", {
|
|
14
|
-
"aria-sort": column.sorter ? ariaSortOf(sorted) : void 0,
|
|
15
|
-
scope: "col",
|
|
16
|
-
className: cx(styles.header, column.fixed && styles.fixed, column.className, classNames?.header),
|
|
17
|
-
style: {
|
|
18
|
-
textAlign: column.align,
|
|
19
|
-
width: column.width,
|
|
20
|
-
...fixedOffsets[index],
|
|
21
|
-
...customStyles?.header,
|
|
22
|
-
...column.fixed ? { zIndex: 3 } : void 0
|
|
23
|
-
},
|
|
24
|
-
children: /* @__PURE__ */ jsxs("span", {
|
|
25
|
-
className: styles.headerInner,
|
|
26
|
-
children: [column.sorter ? /* @__PURE__ */ jsxs("button", {
|
|
27
|
-
className: styles.sortButton,
|
|
28
|
-
type: "button",
|
|
29
|
-
onClick: tableColumn?.getToggleSortingHandler(),
|
|
30
|
-
children: [column.title, /* @__PURE__ */ jsxs("span", {
|
|
31
|
-
"aria-hidden": "true",
|
|
32
|
-
className: styles.sortCaret,
|
|
33
|
-
children: [/* @__PURE__ */ jsx(Icon, {
|
|
34
|
-
"data-active": sorted === "asc",
|
|
35
|
-
icon: ChevronUp,
|
|
36
|
-
size: 10
|
|
37
|
-
}), /* @__PURE__ */ jsx(Icon, {
|
|
38
|
-
"data-active": sorted === "desc",
|
|
39
|
-
icon: ChevronDown,
|
|
40
|
-
size: 10
|
|
41
|
-
})]
|
|
42
|
-
})]
|
|
43
|
-
}) : column.title, column.filters?.length ? renderFilter?.(column, id) : null]
|
|
44
|
-
})
|
|
45
|
-
}, id);
|
|
46
|
-
}) }) });
|
|
47
|
-
//#endregion
|
|
48
|
-
export { TableHead as default };
|
|
49
|
-
|
|
50
|
-
//# sourceMappingURL=TableHead.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TableHead.mjs","names":[],"sources":["../../../src/base-ui/Table/TableHead.tsx"],"sourcesContent":["'use client';\n\nimport { cx } from 'antd-style';\nimport { ChevronDown, ChevronUp } from 'lucide-react';\nimport type { CSSProperties, ReactNode } from 'react';\n\nimport Icon from '@/Icon';\n\nimport { styles } from './style';\nimport type { TableColumn, TableProps } from './type';\n\ntype SortState = false | 'asc' | 'desc';\n\ninterface HeadColumn {\n getIsSorted: () => SortState;\n getToggleSortingHandler: () => undefined | ((event: unknown) => void);\n}\n\ninterface TableHeadProps<T> {\n classNames?: TableProps<T>['classNames'];\n columnIds: string[];\n columns: TableColumn<T>[];\n fixedOffsets: (CSSProperties | undefined)[];\n getColumn: (id: string) => HeadColumn | undefined;\n renderFilter?: (column: TableColumn<T>, id: string) => ReactNode;\n styles?: TableProps<T>['styles'];\n}\n\nconst ariaSortOf = (sorted: SortState) =>\n sorted === 'asc' ? 'ascending' : sorted === 'desc' ? 'descending' : 'none';\n\nconst TableHead = <T,>({\n classNames,\n columnIds,\n columns,\n fixedOffsets,\n getColumn,\n renderFilter,\n styles: customStyles,\n}: TableHeadProps<T>) => (\n <thead>\n <tr>\n {columns.map((column, index) => {\n const id = columnIds[index];\n const tableColumn = getColumn(id);\n const sorted: SortState = column.sorter ? (tableColumn?.getIsSorted() ?? false) : false;\n\n return (\n <th\n aria-sort={column.sorter ? ariaSortOf(sorted) : undefined}\n key={id}\n scope=\"col\"\n className={cx(\n styles.header,\n column.fixed && styles.fixed,\n column.className,\n classNames?.header,\n )}\n style={{\n textAlign: column.align,\n width: column.width,\n ...fixedOffsets[index],\n ...customStyles?.header,\n ...(column.fixed ? { zIndex: 3 } : undefined),\n }}\n >\n <span className={styles.headerInner}>\n {column.sorter ? (\n <button\n className={styles.sortButton}\n type=\"button\"\n onClick={tableColumn?.getToggleSortingHandler()}\n >\n {column.title}\n <span aria-hidden=\"true\" className={styles.sortCaret}>\n <Icon data-active={sorted === 'asc'} icon={ChevronUp} size={10} />\n <Icon data-active={sorted === 'desc'} icon={ChevronDown} size={10} />\n </span>\n </button>\n ) : (\n column.title\n )}\n {column.filters?.length ? renderFilter?.(column, id) : null}\n </span>\n </th>\n );\n })}\n </tr>\n </thead>\n);\n\nexport default TableHead;\n"],"mappings":";;;;;;;AA4BA,MAAM,cAAc,WAClB,WAAW,QAAQ,cAAc,WAAW,SAAS,eAAe;AAEtE,MAAM,aAAiB,EACrB,YACA,WACA,SACA,cACA,WACA,cACA,QAAQ,mBAER,oBAAC,SAAD,EAAA,UACE,oBAAC,MAAD,EAAA,UACG,QAAQ,KAAK,QAAQ,UAAU;CAC9B,MAAM,KAAK,UAAU;CACrB,MAAM,cAAc,UAAU,EAAE;CAChC,MAAM,SAAoB,OAAO,SAAU,aAAa,YAAY,KAAK,QAAS;CAElF,OACE,oBAAC,MAAD;EACE,aAAW,OAAO,SAAS,WAAW,MAAM,IAAI,KAAA;EAEhD,OAAM;EACN,WAAW,GACT,OAAO,QACP,OAAO,SAAS,OAAO,OACvB,OAAO,WACP,YAAY,MACd;EACA,OAAO;GACL,WAAW,OAAO;GAClB,OAAO,OAAO;GACd,GAAG,aAAa;GAChB,GAAG,cAAc;GACjB,GAAI,OAAO,QAAQ,EAAE,QAAQ,EAAE,IAAI,KAAA;EACrC;EAEA,UAAA,qBAAC,QAAD;GAAM,WAAW,OAAO;GAAxB,UAAA,CACG,OAAO,SACN,qBAAC,UAAD;IACE,WAAW,OAAO;IAClB,MAAK;IACL,SAAS,aAAa,wBAAwB;IAHhD,UAAA,CAKG,OAAO,OACR,qBAAC,QAAD;KAAM,eAAY;KAAO,WAAW,OAAO;KAA3C,UAAA,CACE,oBAAC,MAAD;MAAM,eAAa,WAAW;MAAO,MAAM;MAAW,MAAM;KAAK,CAAA,GACjE,oBAAC,MAAD;MAAM,eAAa,WAAW;MAAQ,MAAM;MAAa,MAAM;KAAK,CAAA,CAChE;IACA,CAAA,CAAA;GAER,CAAA,IAAA,OAAO,OAER,OAAO,SAAS,SAAS,eAAe,QAAQ,EAAE,IAAI,IACnD;;CACJ,GAlCG,EAkCH;AAER,CAAC,EACC,CAAA,EACC,CAAA"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { columnFilteringFeature, createFilteredRowModel, createSortedRowModel, rowSortingFeature, tableFeatures } from "@tanstack/react-table";
|
|
2
|
-
//#region src/base-ui/Table/features.ts
|
|
3
|
-
const tableFeatureSet = tableFeatures({
|
|
4
|
-
columnFilteringFeature,
|
|
5
|
-
filteredRowModel: createFilteredRowModel(),
|
|
6
|
-
rowSortingFeature,
|
|
7
|
-
sortedRowModel: createSortedRowModel()
|
|
8
|
-
});
|
|
9
|
-
//#endregion
|
|
10
|
-
export { tableFeatureSet };
|
|
11
|
-
|
|
12
|
-
//# sourceMappingURL=features.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"features.mjs","names":[],"sources":["../../../src/base-ui/Table/features.ts"],"sourcesContent":["import {\n columnFilteringFeature,\n createFilteredRowModel,\n createSortedRowModel,\n rowSortingFeature,\n tableFeatures,\n} from '@tanstack/react-table';\n\nexport const tableFeatureSet = tableFeatures({\n columnFilteringFeature,\n filteredRowModel: createFilteredRowModel(),\n rowSortingFeature,\n sortedRowModel: createSortedRowModel(),\n});\n\nexport type TableFeatureSet = typeof tableFeatureSet;\n"],"mappings":";;AAQA,MAAa,kBAAkB,cAAc;CAC3C;CACA,kBAAkB,uBAAuB;CACzC;CACA,gBAAgB,qBAAqB;AACvC,CAAC"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
//#region src/base-ui/Table/fixedOffsets.ts
|
|
2
|
-
const widthOf = (column) => typeof column.width === "number" ? column.width : 0;
|
|
3
|
-
const getFixedOffsets = (columns) => {
|
|
4
|
-
const offsets = columns.map(() => void 0);
|
|
5
|
-
let left = 0;
|
|
6
|
-
columns.forEach((column, index) => {
|
|
7
|
-
if (column.fixed !== "left") return;
|
|
8
|
-
offsets[index] = {
|
|
9
|
-
left,
|
|
10
|
-
position: "sticky"
|
|
11
|
-
};
|
|
12
|
-
left += widthOf(column);
|
|
13
|
-
});
|
|
14
|
-
let right = 0;
|
|
15
|
-
for (let index = columns.length - 1; index >= 0; index--) {
|
|
16
|
-
const column = columns[index];
|
|
17
|
-
if (column.fixed !== "right") continue;
|
|
18
|
-
offsets[index] = {
|
|
19
|
-
position: "sticky",
|
|
20
|
-
right
|
|
21
|
-
};
|
|
22
|
-
right += widthOf(column);
|
|
23
|
-
}
|
|
24
|
-
return offsets;
|
|
25
|
-
};
|
|
26
|
-
//#endregion
|
|
27
|
-
export { getFixedOffsets };
|
|
28
|
-
|
|
29
|
-
//# sourceMappingURL=fixedOffsets.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fixedOffsets.mjs","names":[],"sources":["../../../src/base-ui/Table/fixedOffsets.ts"],"sourcesContent":["import type { CSSProperties } from 'react';\n\nimport type { TableColumn } from './type';\n\nconst widthOf = (column: TableColumn<any>) => (typeof column.width === 'number' ? column.width : 0);\n\nexport const getFixedOffsets = (columns: TableColumn<any>[]): (CSSProperties | undefined)[] => {\n const offsets: (CSSProperties | undefined)[] = columns.map(() => undefined);\n\n let left = 0;\n columns.forEach((column, index) => {\n if (column.fixed !== 'left') return;\n offsets[index] = { left, position: 'sticky' };\n left += widthOf(column);\n });\n\n let right = 0;\n for (let index = columns.length - 1; index >= 0; index--) {\n const column = columns[index];\n if (column.fixed !== 'right') continue;\n offsets[index] = { position: 'sticky', right };\n right += widthOf(column);\n }\n\n return offsets;\n};\n"],"mappings":";AAIA,MAAM,WAAW,WAA8B,OAAO,OAAO,UAAU,WAAW,OAAO,QAAQ;AAEjG,MAAa,mBAAmB,YAA+D;CAC7F,MAAM,UAAyC,QAAQ,UAAU,KAAA,CAAS;CAE1E,IAAI,OAAO;CACX,QAAQ,SAAS,QAAQ,UAAU;EACjC,IAAI,OAAO,UAAU,QAAQ;EAC7B,QAAQ,SAAS;GAAE;GAAM,UAAU;EAAS;EAC5C,QAAQ,QAAQ,MAAM;CACxB,CAAC;CAED,IAAI,QAAQ;CACZ,KAAK,IAAI,QAAQ,QAAQ,SAAS,GAAG,SAAS,GAAG,SAAS;EACxD,MAAM,SAAS,QAAQ;EACvB,IAAI,OAAO,UAAU,SAAS;EAC9B,QAAQ,SAAS;GAAE,UAAU;GAAU;EAAM;EAC7C,SAAS,QAAQ,MAAM;CACzB;CAEA,OAAO;AACT"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
//#region src/base-ui/Table/toColumnDefs.ts
|
|
2
|
-
const getColumnId = (column, index) => String(column.key ?? column.dataIndex ?? `__column_${index}`);
|
|
3
|
-
const getCellValue = (record, column) => column.dataIndex ? record[column.dataIndex] : void 0;
|
|
4
|
-
const isEmptyFilter = (value) => !Array.isArray(value) || value.length === 0;
|
|
5
|
-
const toColumnDefs = (columns) => columns.map((column, index) => {
|
|
6
|
-
if ((Boolean(column.sorter) || Boolean(column.filters?.length)) && column.key == null && column.dataIndex == null) throw new Error("[Table] sortable or filterable columns need a `key` or `dataIndex`");
|
|
7
|
-
const comparator = typeof column.sorter === "function" ? column.sorter : void 0;
|
|
8
|
-
const { onFilter } = column;
|
|
9
|
-
const filterFn = onFilter ? Object.assign((row, _columnId, filterValue) => filterValue.some((value) => onFilter(value, row.original)), { autoRemove: isEmptyFilter }) : void 0;
|
|
10
|
-
return {
|
|
11
|
-
accessorFn: (record) => getCellValue(record, column),
|
|
12
|
-
enableColumnFilter: Boolean(column.filters?.length),
|
|
13
|
-
enableSorting: Boolean(column.sorter),
|
|
14
|
-
filterFn,
|
|
15
|
-
id: getColumnId(column, index),
|
|
16
|
-
sortDescFirst: column.sortDirections?.[0] === "descend",
|
|
17
|
-
...comparator && {
|
|
18
|
-
sortFn: (rowA, rowB) => comparator(rowA.original, rowB.original),
|
|
19
|
-
sortUndefined: false
|
|
20
|
-
}
|
|
21
|
-
};
|
|
22
|
-
});
|
|
23
|
-
//#endregion
|
|
24
|
-
export { getCellValue, getColumnId, toColumnDefs };
|
|
25
|
-
|
|
26
|
-
//# sourceMappingURL=toColumnDefs.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"toColumnDefs.mjs","names":[],"sources":["../../../src/base-ui/Table/toColumnDefs.ts"],"sourcesContent":["import type { ColumnDef, RowData } from '@tanstack/react-table';\n\nimport type { TableFeatureSet } from './features';\nimport type { FilterValue, TableColumn } from './type';\n\nexport const getColumnId = (column: TableColumn<any>, index: number): string =>\n String(column.key ?? column.dataIndex ?? `__column_${index}`);\n\nexport const getCellValue = <T>(record: T, column: TableColumn<T>): unknown =>\n column.dataIndex ? record[column.dataIndex] : undefined;\n\nconst isEmptyFilter = (value: unknown) => !Array.isArray(value) || value.length === 0;\n\nexport const toColumnDefs = <T extends RowData>(\n columns: TableColumn<T>[],\n): ColumnDef<TableFeatureSet, T, unknown>[] =>\n columns.map((column, index) => {\n const needsStableId = Boolean(column.sorter) || Boolean(column.filters?.length);\n if (needsStableId && column.key == null && column.dataIndex == null) {\n throw new Error('[Table] sortable or filterable columns need a `key` or `dataIndex`');\n }\n\n const comparator = typeof column.sorter === 'function' ? column.sorter : undefined;\n const { onFilter } = column;\n\n const filterFn = onFilter\n ? Object.assign(\n (row: { original: T }, _columnId: string, filterValue: FilterValue[]) =>\n filterValue.some((value) => onFilter(value, row.original)),\n { autoRemove: isEmptyFilter },\n )\n : undefined;\n\n return {\n accessorFn: (record: T) => getCellValue(record, column),\n enableColumnFilter: Boolean(column.filters?.length),\n enableSorting: Boolean(column.sorter),\n filterFn,\n id: getColumnId(column, index),\n sortDescFirst: column.sortDirections?.[0] === 'descend',\n ...(comparator && {\n sortFn: (rowA: { original: T }, rowB: { original: T }) =>\n comparator(rowA.original, rowB.original),\n sortUndefined: false,\n }),\n } as unknown as ColumnDef<TableFeatureSet, T, unknown>;\n });\n"],"mappings":";AAKA,MAAa,eAAe,QAA0B,UACpD,OAAO,OAAO,OAAO,OAAO,aAAa,YAAY,OAAO;AAE9D,MAAa,gBAAmB,QAAW,WACzC,OAAO,YAAY,OAAO,OAAO,aAAa,KAAA;AAEhD,MAAM,iBAAiB,UAAmB,CAAC,MAAM,QAAQ,KAAK,KAAK,MAAM,WAAW;AAEpF,MAAa,gBACX,YAEA,QAAQ,KAAK,QAAQ,UAAU;CAE7B,KADsB,QAAQ,OAAO,MAAM,KAAK,QAAQ,OAAO,SAAS,MAAM,MACzD,OAAO,OAAO,QAAQ,OAAO,aAAa,MAC7D,MAAM,IAAI,MAAM,oEAAoE;CAGtF,MAAM,aAAa,OAAO,OAAO,WAAW,aAAa,OAAO,SAAS,KAAA;CACzE,MAAM,EAAE,aAAa;CAErB,MAAM,WAAW,WACb,OAAO,QACJ,KAAsB,WAAmB,gBACxC,YAAY,MAAM,UAAU,SAAS,OAAO,IAAI,QAAQ,CAAC,GAC3D,EAAE,YAAY,cAAc,CAC9B,IACA,KAAA;CAEJ,OAAO;EACL,aAAa,WAAc,aAAa,QAAQ,MAAM;EACtD,oBAAoB,QAAQ,OAAO,SAAS,MAAM;EAClD,eAAe,QAAQ,OAAO,MAAM;EACpC;EACA,IAAI,YAAY,QAAQ,KAAK;EAC7B,eAAe,OAAO,iBAAiB,OAAO;EAC9C,GAAI,cAAc;GAChB,SAAS,MAAuB,SAC9B,WAAW,KAAK,UAAU,KAAK,QAAQ;GACzC,eAAe;EACjB;CACF;AACF,CAAC"}
|
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
import { createStaticStyles } from "antd-style";
|
|
2
|
-
//#region src/dashboard/StatCard/style.ts
|
|
3
|
-
const styles = createStaticStyles(({ css, cssVar, responsive }) => ({
|
|
4
|
-
badge: css`
|
|
5
|
-
display: inline-flex;
|
|
6
|
-
flex: none;
|
|
7
|
-
align-items: center;
|
|
8
|
-
justify-content: center;
|
|
9
|
-
|
|
10
|
-
inline-size: 24px;
|
|
11
|
-
block-size: 24px;
|
|
12
|
-
border: 1px solid ${cssVar.colorFillSecondary};
|
|
13
|
-
border-radius: ${cssVar.borderRadiusSM};
|
|
14
|
-
|
|
15
|
-
color: ${cssVar.colorTextTertiary};
|
|
16
|
-
|
|
17
|
-
background: ${cssVar.colorFillTertiary};
|
|
18
|
-
`,
|
|
19
|
-
body: css`
|
|
20
|
-
position: relative;
|
|
21
|
-
z-index: 1;
|
|
22
|
-
`,
|
|
23
|
-
copy: css`
|
|
24
|
-
flex-wrap: nowrap;
|
|
25
|
-
min-inline-size: 0;
|
|
26
|
-
`,
|
|
27
|
-
delta: css`
|
|
28
|
-
display: inline-flex;
|
|
29
|
-
gap: 2px;
|
|
30
|
-
align-items: center;
|
|
31
|
-
|
|
32
|
-
font-size: ${cssVar.fontSizeSM};
|
|
33
|
-
font-variant-numeric: tabular-nums;
|
|
34
|
-
`,
|
|
35
|
-
deltaDown: css`
|
|
36
|
-
color: ${cssVar.colorError};
|
|
37
|
-
`,
|
|
38
|
-
deltaFlat: css`
|
|
39
|
-
color: ${cssVar.colorTextTertiary};
|
|
40
|
-
`,
|
|
41
|
-
deltaUp: css`
|
|
42
|
-
color: ${cssVar.colorSuccess};
|
|
43
|
-
`,
|
|
44
|
-
frame: css`
|
|
45
|
-
&&& {
|
|
46
|
-
border-color: ${cssVar.colorBorderSecondary};
|
|
47
|
-
}
|
|
48
|
-
`,
|
|
49
|
-
gray: css`
|
|
50
|
-
&::before {
|
|
51
|
-
background: linear-gradient(
|
|
52
|
-
to bottom,
|
|
53
|
-
${cssVar.colorBgElevated} 0%,
|
|
54
|
-
color-mix(in srgb, ${cssVar.colorText} 4%, ${cssVar.colorBgElevated}) 100%
|
|
55
|
-
);
|
|
56
|
-
}
|
|
57
|
-
`,
|
|
58
|
-
hint: css`
|
|
59
|
-
font-size: ${cssVar.fontSizeSM};
|
|
60
|
-
color: ${cssVar.colorTextTertiary};
|
|
61
|
-
`,
|
|
62
|
-
label: css`
|
|
63
|
-
font-size: ${cssVar.fontSizeSM};
|
|
64
|
-
color: ${cssVar.colorTextSecondary};
|
|
65
|
-
`,
|
|
66
|
-
lift: css`
|
|
67
|
-
display: flex;
|
|
68
|
-
min-inline-size: 0;
|
|
69
|
-
border-radius: ${cssVar.borderRadiusLG};
|
|
70
|
-
box-shadow: ${cssVar.boxShadowTertiary};
|
|
71
|
-
`,
|
|
72
|
-
metricFoot: css`
|
|
73
|
-
margin-block-start: 14px;
|
|
74
|
-
`,
|
|
75
|
-
metricHint: css`
|
|
76
|
-
&& {
|
|
77
|
-
font-size: ${cssVar.fontSize};
|
|
78
|
-
color: ${cssVar.colorText};
|
|
79
|
-
}
|
|
80
|
-
`,
|
|
81
|
-
metricLabel: css`
|
|
82
|
-
&& {
|
|
83
|
-
font-size: ${cssVar.fontSize};
|
|
84
|
-
font-weight: 500;
|
|
85
|
-
color: ${cssVar.colorText};
|
|
86
|
-
}
|
|
87
|
-
`,
|
|
88
|
-
metricValue: css`
|
|
89
|
-
&& {
|
|
90
|
-
margin-block-start: 6px;
|
|
91
|
-
|
|
92
|
-
font-size: ${cssVar.fontSizeHeading2};
|
|
93
|
-
font-weight: 700;
|
|
94
|
-
font-variant-numeric: tabular-nums;
|
|
95
|
-
line-height: 1.05;
|
|
96
|
-
color: ${cssVar.colorText};
|
|
97
|
-
}
|
|
98
|
-
`,
|
|
99
|
-
root: css`
|
|
100
|
-
position: relative;
|
|
101
|
-
|
|
102
|
-
overflow: hidden;
|
|
103
|
-
flex: 1;
|
|
104
|
-
|
|
105
|
-
min-inline-size: 0;
|
|
106
|
-
padding: 16px;
|
|
107
|
-
`,
|
|
108
|
-
value: css`
|
|
109
|
-
font-size: ${cssVar.fontSizeHeading2};
|
|
110
|
-
font-weight: 600;
|
|
111
|
-
font-variant-numeric: tabular-nums;
|
|
112
|
-
line-height: 1.2;
|
|
113
|
-
color: ${cssVar.colorText};
|
|
114
|
-
|
|
115
|
-
${responsive.mobile} {
|
|
116
|
-
font-size: ${cssVar.fontSizeHeading3};
|
|
117
|
-
}
|
|
118
|
-
`,
|
|
119
|
-
wash: css`
|
|
120
|
-
isolation: isolate;
|
|
121
|
-
|
|
122
|
-
&::before {
|
|
123
|
-
pointer-events: none;
|
|
124
|
-
content: '';
|
|
125
|
-
|
|
126
|
-
position: absolute;
|
|
127
|
-
z-index: 0;
|
|
128
|
-
inset: 0;
|
|
129
|
-
}
|
|
130
|
-
`
|
|
131
|
-
}));
|
|
132
|
-
//#endregion
|
|
133
|
-
export { styles };
|
|
134
|
-
|
|
135
|
-
//# sourceMappingURL=style.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"style.mjs","names":[],"sources":["../../../src/dashboard/StatCard/style.ts"],"sourcesContent":["import { createStaticStyles } from 'antd-style';\n\nexport const styles = createStaticStyles(({ css, cssVar, responsive }) => ({\n badge: css`\n display: inline-flex;\n flex: none;\n align-items: center;\n justify-content: center;\n\n inline-size: 24px;\n block-size: 24px;\n border: 1px solid ${cssVar.colorFillSecondary};\n border-radius: ${cssVar.borderRadiusSM};\n\n color: ${cssVar.colorTextTertiary};\n\n background: ${cssVar.colorFillTertiary};\n `,\n body: css`\n position: relative;\n z-index: 1;\n `,\n copy: css`\n flex-wrap: nowrap;\n min-inline-size: 0;\n `,\n delta: css`\n display: inline-flex;\n gap: 2px;\n align-items: center;\n\n font-size: ${cssVar.fontSizeSM};\n font-variant-numeric: tabular-nums;\n `,\n deltaDown: css`\n color: ${cssVar.colorError};\n `,\n deltaFlat: css`\n color: ${cssVar.colorTextTertiary};\n `,\n deltaUp: css`\n color: ${cssVar.colorSuccess};\n `,\n frame: css`\n &&& {\n border-color: ${cssVar.colorBorderSecondary};\n }\n `,\n gray: css`\n &::before {\n background: linear-gradient(\n to bottom,\n ${cssVar.colorBgElevated} 0%,\n color-mix(in srgb, ${cssVar.colorText} 4%, ${cssVar.colorBgElevated}) 100%\n );\n }\n `,\n hint: css`\n font-size: ${cssVar.fontSizeSM};\n color: ${cssVar.colorTextTertiary};\n `,\n label: css`\n font-size: ${cssVar.fontSizeSM};\n color: ${cssVar.colorTextSecondary};\n `,\n lift: css`\n display: flex;\n min-inline-size: 0;\n border-radius: ${cssVar.borderRadiusLG};\n box-shadow: ${cssVar.boxShadowTertiary};\n `,\n metricFoot: css`\n margin-block-start: 14px;\n `,\n metricHint: css`\n && {\n font-size: ${cssVar.fontSize};\n color: ${cssVar.colorText};\n }\n `,\n metricLabel: css`\n && {\n font-size: ${cssVar.fontSize};\n font-weight: 500;\n color: ${cssVar.colorText};\n }\n `,\n metricValue: css`\n && {\n margin-block-start: 6px;\n\n font-size: ${cssVar.fontSizeHeading2};\n font-weight: 700;\n font-variant-numeric: tabular-nums;\n line-height: 1.05;\n color: ${cssVar.colorText};\n }\n `,\n root: css`\n position: relative;\n\n overflow: hidden;\n flex: 1;\n\n min-inline-size: 0;\n padding: 16px;\n `,\n value: css`\n font-size: ${cssVar.fontSizeHeading2};\n font-weight: 600;\n font-variant-numeric: tabular-nums;\n line-height: 1.2;\n color: ${cssVar.colorText};\n\n ${responsive.mobile} {\n font-size: ${cssVar.fontSizeHeading3};\n }\n `,\n wash: css`\n isolation: isolate;\n\n &::before {\n pointer-events: none;\n content: '';\n\n position: absolute;\n z-index: 0;\n inset: 0;\n }\n `,\n}));\n"],"mappings":";;AAEA,MAAa,SAAS,oBAAoB,EAAE,KAAK,QAAQ,kBAAkB;CACzE,OAAO,GAAG;;;;;;;;wBAQY,OAAO,mBAAmB;qBAC7B,OAAO,eAAe;;aAE9B,OAAO,kBAAkB;;kBAEpB,OAAO,kBAAkB;;CAEzC,MAAM,GAAG;;;;CAIT,MAAM,GAAG;;;;CAIT,OAAO,GAAG;;;;;iBAKK,OAAO,WAAW;;;CAGjC,WAAW,GAAG;aACH,OAAO,WAAW;;CAE7B,WAAW,GAAG;aACH,OAAO,kBAAkB;;CAEpC,SAAS,GAAG;aACD,OAAO,aAAa;;CAE/B,OAAO,GAAG;;sBAEU,OAAO,qBAAqB;;;CAGhD,MAAM,GAAG;;;;UAID,OAAO,gBAAgB;6BACJ,OAAO,UAAU,OAAO,OAAO,gBAAgB;;;;CAI1E,MAAM,GAAG;iBACM,OAAO,WAAW;aACtB,OAAO,kBAAkB;;CAEpC,OAAO,GAAG;iBACK,OAAO,WAAW;aACtB,OAAO,mBAAmB;;CAErC,MAAM,GAAG;;;qBAGU,OAAO,eAAe;kBACzB,OAAO,kBAAkB;;CAEzC,YAAY,GAAG;;;CAGf,YAAY,GAAG;;mBAEE,OAAO,SAAS;eACpB,OAAO,UAAU;;;CAG9B,aAAa,GAAG;;mBAEC,OAAO,SAAS;;eAEpB,OAAO,UAAU;;;CAG9B,aAAa,GAAG;;;;mBAIC,OAAO,iBAAiB;;;;eAI5B,OAAO,UAAU;;;CAG9B,MAAM,GAAG;;;;;;;;;CAST,OAAO,GAAG;iBACK,OAAO,iBAAiB;;;;aAI5B,OAAO,UAAU;;MAExB,WAAW,OAAO;mBACL,OAAO,iBAAiB;;;CAGzC,MAAM,GAAG;;;;;;;;;;;;AAYX,EAAE"}
|