@uxf/data-grid 11.32.0 → 11.33.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/README.md +5 -1
- package/_components/drawer.d.ts +2 -2
- package/_components/drawer.js +7 -10
- package/data-grid.stories.js +1 -1
- package/export-button/export-button.js +1 -1
- package/filters-button/filters-button.js +1 -1
- package/hidden-columns/hidden-columns.d.ts +3 -4
- package/hidden-columns/hidden-columns.js +3 -6
- package/hidden-columns-button/hidden-columns-button.d.ts +1 -3
- package/hidden-columns-button/hidden-columns-button.js +4 -7
- package/package.json +3 -3
- package/styles.css +11 -24
- package/table-v2/styles.css +18 -11
package/README.md
CHANGED
|
@@ -14,12 +14,12 @@ yarn upgrade @uxf/core@latest @uxf/ui@latest @uxf/data-grid@latest
|
|
|
14
14
|
|
|
15
15
|
```css
|
|
16
16
|
@import url("tailwindcss/components.css");
|
|
17
|
-
@import url("@uxf/data-grid/styles.css");
|
|
18
17
|
@import url("@uxf/ui/button/button.css");
|
|
19
18
|
@import url("@uxf/ui/button-list/button-list.css");
|
|
20
19
|
@import url("@uxf/ui/calendar/calendar.css");
|
|
21
20
|
@import url("@uxf/ui/checkbox/checkbox.css");
|
|
22
21
|
@import url("@uxf/ui/chip/chip.css");
|
|
22
|
+
@import url("@uxf/ui/dialog/dialog.css");
|
|
23
23
|
@import url("@uxf/ui/dropdown/dropdown.css");
|
|
24
24
|
@import url("@uxf/ui/icon/icon.css");
|
|
25
25
|
@import url("@uxf/ui/label/label.css");
|
|
@@ -28,11 +28,15 @@ yarn upgrade @uxf/core@latest @uxf/ui@latest @uxf/data-grid@latest
|
|
|
28
28
|
@import url("@uxf/ui/input/input.css");
|
|
29
29
|
@import url("@uxf/ui/_input-with-popover/input-with-popover.css");
|
|
30
30
|
@import url("@uxf/ui/combobox/combobox.css");
|
|
31
|
+
@import url("@uxf/ui/modal-header/modal-header.css");
|
|
31
32
|
@import url("@uxf/ui/multi-select/multi-select.css");
|
|
32
33
|
@import url("@uxf/ui/multi-combobox/multi-combobox.css");
|
|
33
34
|
@import url("@uxf/ui/pagination/pagination.css");
|
|
34
35
|
@import url("@uxf/ui/select/select.css");
|
|
35
36
|
@import url("@uxf/ui/toggle/toggle.css");
|
|
37
|
+
|
|
38
|
+
/* must be after component css files */
|
|
39
|
+
@import url("@uxf/data-grid/styles.css");
|
|
36
40
|
```
|
|
37
41
|
|
|
38
42
|
## State and actions of data-grid
|
package/_components/drawer.d.ts
CHANGED
|
@@ -2,8 +2,8 @@ import React, { ReactNode } from "react";
|
|
|
2
2
|
interface DrawerProps {
|
|
3
3
|
title?: ReactNode;
|
|
4
4
|
children?: ReactNode;
|
|
5
|
-
|
|
5
|
+
isOpen: boolean;
|
|
6
6
|
onClose: () => void;
|
|
7
7
|
}
|
|
8
|
-
export declare
|
|
8
|
+
export declare function Drawer(props: DrawerProps): React.JSX.Element | null;
|
|
9
9
|
export {};
|
package/_components/drawer.js
CHANGED
|
@@ -3,22 +3,19 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.Drawer =
|
|
6
|
+
exports.Drawer = Drawer;
|
|
7
7
|
const react_1 = require("@floating-ui/react");
|
|
8
8
|
const use_is_mounted_1 = require("@uxf/core-react/hooks/use-is-mounted");
|
|
9
|
+
const dialog_1 = require("@uxf/ui/dialog");
|
|
9
10
|
const modal_header_1 = require("@uxf/ui/modal-header");
|
|
10
11
|
const react_2 = __importDefault(require("react"));
|
|
11
|
-
|
|
12
|
+
function Drawer(props) {
|
|
12
13
|
const isMounted = (0, use_is_mounted_1.useIsMounted)();
|
|
13
14
|
if (!isMounted) {
|
|
14
15
|
return null;
|
|
15
16
|
}
|
|
16
17
|
return (react_2.default.createElement(react_1.FloatingPortal, null,
|
|
17
|
-
react_2.default.createElement(
|
|
18
|
-
react_2.default.createElement(
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
react_2.default.createElement("div", { className: "uxf-data-grid__drawer-content" }, props.children))),
|
|
22
|
-
react_2.default.createElement("section", { className: "uxf-data-grid__drawer-backdrop", onClick: props.onClose }))));
|
|
23
|
-
};
|
|
24
|
-
exports.Drawer = Drawer;
|
|
18
|
+
react_2.default.createElement(dialog_1.Dialog, { className: "uxf-dg-modal", onClose: props.onClose, open: props.isOpen, variant: "drawer-right" },
|
|
19
|
+
react_2.default.createElement(modal_header_1.ModalHeader, { onClose: props.onClose, title: props.title }),
|
|
20
|
+
react_2.default.createElement("div", { className: "uxf-data-grid__drawer-content" }, props.children))));
|
|
21
|
+
}
|
package/data-grid.stories.js
CHANGED
|
@@ -87,6 +87,6 @@ function Default() {
|
|
|
87
87
|
});
|
|
88
88
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
89
89
|
react_1.default.createElement(toggle_1.Toggle, { label: "No border", name: "noBorder", onChange: (value) => setNoBorder(Boolean(value)), value: noBorder }),
|
|
90
|
-
react_1.default.createElement(data_grid_1.DataGrid, { actionCell: actionCell, actions: actions, data: data, error: error, isLoading: isLoading, isRowSelectable: true, onCsvDownload: console.log, onReload: onReload, schema: schemaWithFrontendConfig, state: state }),
|
|
90
|
+
react_1.default.createElement(data_grid_1.DataGrid, { actionCell: actionCell, actions: actions, data: data, error: error, isLoading: isLoading, isRowSelectable: true, noBorder: noBorder, onCsvDownload: console.log, onReload: onReload, schema: schemaWithFrontendConfig, state: state }),
|
|
91
91
|
react_1.default.createElement(json_renderer_1.JsonRenderer, { value: state })));
|
|
92
92
|
}
|
|
@@ -11,7 +11,7 @@ const react_1 = __importDefault(require("react"));
|
|
|
11
11
|
const utils_1 = require("../utils");
|
|
12
12
|
/** @deprecated Use DataGridExportButton */
|
|
13
13
|
function ExportButton(props) {
|
|
14
|
-
return (react_1.default.createElement(button_1.Button, { className: "uxf-data-grid__plugin-button", isIconButton: true, onClick: () => props.onCsvDownload((0, utils_1.createRequest)(props.state.request)), title: "St\u00E1hnout CSV", variant: "secondary" },
|
|
14
|
+
return (react_1.default.createElement(button_1.Button, { className: "uxf-data-grid__plugin-button", isIconButton: true, onClick: () => props.onCsvDownload((0, utils_1.createRequest)(props.state.request)), size: "sm", title: "St\u00E1hnout CSV", variant: "secondary" },
|
|
15
15
|
react_1.default.createElement(icon_1.Icon, { name: "file-arrow-down" })));
|
|
16
16
|
}
|
|
17
17
|
exports.DataGridExportButton = ExportButton;
|
|
@@ -40,7 +40,7 @@ function FiltersButton(props) {
|
|
|
40
40
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
41
41
|
react_1.default.createElement(button_1.Button, { className: "uxf-data-grid__plugin-button", isIconButton: true, onClick: () => setIsOpen(true), size: "sm", title: "Filtrovat", variant: "secondary" },
|
|
42
42
|
react_1.default.createElement(icon_1.Icon, { name: "filter" })),
|
|
43
|
-
react_1.default.createElement(drawer_1.Drawer, { onClose: () => setIsOpen(false),
|
|
43
|
+
react_1.default.createElement(drawer_1.Drawer, { isOpen: isOpen, onClose: () => setIsOpen(false), title: (_a = props.drawerTitle) !== null && _a !== void 0 ? _a : "Filtrování" },
|
|
44
44
|
react_1.default.createElement(filters_1.DataGridFilters, { actions: props.actions, filterHandlers: props.filterHandlers, schema: props.schema, state: props.state }))));
|
|
45
45
|
}
|
|
46
46
|
exports.DataGridFiltersButton = FiltersButton;
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import React from "react";
|
|
1
|
+
import React, { ReactNode } from "react";
|
|
2
2
|
import { Schema } from "../types";
|
|
3
3
|
import { DataGridControl } from "../use-data-grid-control";
|
|
4
4
|
export interface DataGridHiddenColumnsProps extends DataGridControl {
|
|
5
5
|
schema: Schema<any>;
|
|
6
|
+
title?: ReactNode;
|
|
6
7
|
}
|
|
7
|
-
|
|
8
|
-
export declare function HiddenColumns(props: DataGridHiddenColumnsProps): React.JSX.Element;
|
|
9
|
-
export declare const DataGridHiddenColumns: typeof HiddenColumns;
|
|
8
|
+
export declare function DataGridHiddenColumns(props: DataGridHiddenColumnsProps): React.JSX.Element;
|
|
@@ -3,8 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.DataGridHiddenColumns =
|
|
7
|
-
exports.HiddenColumns = HiddenColumns;
|
|
6
|
+
exports.DataGridHiddenColumns = DataGridHiddenColumns;
|
|
8
7
|
const show_1 = require("@uxf/core-react/components/show");
|
|
9
8
|
const is_empty_1 = require("@uxf/core/utils/is-empty");
|
|
10
9
|
const is_not_empty_1 = require("@uxf/core/utils/is-not-empty");
|
|
@@ -12,8 +11,7 @@ const icon_1 = require("@uxf/ui/icon");
|
|
|
12
11
|
const text_link_1 = require("@uxf/ui/text-link");
|
|
13
12
|
const toggle_1 = require("@uxf/ui/toggle");
|
|
14
13
|
const react_1 = __importDefault(require("react"));
|
|
15
|
-
|
|
16
|
-
function HiddenColumns(props) {
|
|
14
|
+
function DataGridHiddenColumns(props) {
|
|
17
15
|
const columns = props.schema.columns.filter((c) => !c.hidden);
|
|
18
16
|
const visibleColumns = columns.filter((c) => { var _a, _b, _c, _d; return !((_c = (_b = (_a = props.state.userConfig.columns) === null || _a === void 0 ? void 0 : _a[c.name]) === null || _b === void 0 ? void 0 : _b.isHidden) !== null && _c !== void 0 ? _c : (_d = c.config) === null || _d === void 0 ? void 0 : _d.isHidden); });
|
|
19
17
|
const hiddenColumns = columns.filter((c) => { var _a, _b, _c, _d; return (_c = (_b = (_a = props.state.userConfig.columns) === null || _a === void 0 ? void 0 : _a[c.name]) === null || _b === void 0 ? void 0 : _b.isHidden) !== null && _c !== void 0 ? _c : (_d = c.config) === null || _d === void 0 ? void 0 : _d.isHidden; });
|
|
@@ -22,7 +20,7 @@ function HiddenColumns(props) {
|
|
|
22
20
|
return (react_1.default.createElement("div", { className: "uxf-data-grid__toolbar-control-columns" },
|
|
23
21
|
react_1.default.createElement("div", { className: "uxf-data-grid__hidden-columns-title" },
|
|
24
22
|
react_1.default.createElement("div", null, "Zobrazen\u00E9 sloupce"),
|
|
25
|
-
react_1.default.createElement(text_link_1.TextLink, {
|
|
23
|
+
react_1.default.createElement(text_link_1.TextLink, { isDisabled: (0, is_empty_1.isEmpty)(visibleColumns), onClick: onChangeAll(false), variant: "text" }, "skr\u00FDt v\u0161e")),
|
|
26
24
|
visibleColumns.map((column) => (react_1.default.createElement(toggle_1.Toggle, { key: column.name, label: typeof column.label === "string" ? column.label : "", name: column.name, onChange: onToggleChange(column.name), size: "sm", value: true, variant: "reversed" }))),
|
|
27
25
|
react_1.default.createElement(show_1.Show, { when: (0, is_empty_1.isEmpty)(visibleColumns) },
|
|
28
26
|
react_1.default.createElement("div", { className: "uxf-data-grid__hidden-columns-empty-box" },
|
|
@@ -34,4 +32,3 @@ function HiddenColumns(props) {
|
|
|
34
32
|
react_1.default.createElement(text_link_1.TextLink, { onClick: onChangeAll(true), variant: "text" }, "zobrazit v\u0161e")),
|
|
35
33
|
hiddenColumns.map((column) => (react_1.default.createElement(toggle_1.Toggle, { key: column.name, label: typeof column.label === "string" ? column.label : "", name: column.name, onChange: onToggleChange(column.name), size: "sm", value: false, variant: "reversed" }))))));
|
|
36
34
|
}
|
|
37
|
-
exports.DataGridHiddenColumns = HiddenColumns;
|
|
@@ -5,6 +5,4 @@ export interface DataGridHiddenColumnsButtonProps extends DataGridControl {
|
|
|
5
5
|
drawerTitle?: ReactNode;
|
|
6
6
|
schema: Schema<any>;
|
|
7
7
|
}
|
|
8
|
-
|
|
9
|
-
export declare function HiddenColumnsButton(props: DataGridHiddenColumnsButtonProps): React.JSX.Element;
|
|
10
|
-
export declare const DataGridHiddenColumnsButton: typeof HiddenColumnsButton;
|
|
8
|
+
export declare function DataGridHiddenColumnsButton(props: DataGridHiddenColumnsButtonProps): React.JSX.Element;
|
|
@@ -23,21 +23,18 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.DataGridHiddenColumnsButton =
|
|
27
|
-
exports.HiddenColumnsButton = HiddenColumnsButton;
|
|
26
|
+
exports.DataGridHiddenColumnsButton = DataGridHiddenColumnsButton;
|
|
28
27
|
const button_1 = require("@uxf/ui/button");
|
|
29
28
|
const icon_1 = require("@uxf/ui/icon");
|
|
30
29
|
const react_1 = __importStar(require("react"));
|
|
31
30
|
const drawer_1 = require("../_components/drawer");
|
|
32
31
|
const hidden_columns_1 = require("../hidden-columns");
|
|
33
|
-
|
|
34
|
-
function HiddenColumnsButton(props) {
|
|
32
|
+
function DataGridHiddenColumnsButton(props) {
|
|
35
33
|
var _a;
|
|
36
34
|
const [isOpen, setIsOpen] = (0, react_1.useState)(false);
|
|
37
35
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
38
36
|
react_1.default.createElement(button_1.Button, { className: "uxf-data-grid__plugin-button", isIconButton: true, onClick: () => setIsOpen(true), size: "sm", title: "Nastaven\u00ED sloupc\u016F", variant: "secondary" },
|
|
39
37
|
react_1.default.createElement(icon_1.Icon, { name: "table-columns" })),
|
|
40
|
-
react_1.default.createElement(drawer_1.Drawer, { onClose: () => setIsOpen(false),
|
|
41
|
-
react_1.default.createElement(hidden_columns_1.
|
|
38
|
+
react_1.default.createElement(drawer_1.Drawer, { isOpen: isOpen, onClose: () => setIsOpen(false), title: (_a = props.drawerTitle) !== null && _a !== void 0 ? _a : "Sloupce" },
|
|
39
|
+
react_1.default.createElement(hidden_columns_1.DataGridHiddenColumns, { actions: props.actions, schema: props.schema, state: props.state }))));
|
|
42
40
|
}
|
|
43
|
-
exports.DataGridHiddenColumnsButton = HiddenColumnsButton;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@uxf/data-grid",
|
|
3
|
-
"version": "11.
|
|
3
|
+
"version": "11.33.0",
|
|
4
4
|
"description": "UXF DataGrid",
|
|
5
5
|
"homepage": "https://gitlab.com/uxf-npm/data-grid#readme",
|
|
6
6
|
"main": "index.js",
|
|
@@ -32,8 +32,8 @@
|
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
34
|
"@uxf/core": "11.32.0",
|
|
35
|
-
"@uxf/core-react": "11.
|
|
36
|
-
"@uxf/ui": "11.
|
|
35
|
+
"@uxf/core-react": "11.33.0",
|
|
36
|
+
"@uxf/ui": "11.33.0",
|
|
37
37
|
"dayjs": "1.11.13",
|
|
38
38
|
"deepmerge": "4.3.1",
|
|
39
39
|
"fast-glob": "3.3.2",
|
package/styles.css
CHANGED
|
@@ -75,9 +75,7 @@
|
|
|
75
75
|
}
|
|
76
76
|
|
|
77
77
|
&__drawer {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
@apply ease-in-out;
|
|
78
|
+
/* @apply ease-in-out; TODO animate
|
|
81
79
|
|
|
82
80
|
background-color: theme("colors.gray.900/.25");
|
|
83
81
|
inset: 0;
|
|
@@ -104,12 +102,13 @@
|
|
|
104
102
|
}
|
|
105
103
|
|
|
106
104
|
&-body-wrapper {
|
|
105
|
+
--panel-max-w: 400px;
|
|
106
|
+
|
|
107
107
|
@apply transition-all duration-500 ease-in-out;
|
|
108
108
|
|
|
109
|
-
background-color: theme("colors.white");
|
|
110
|
-
box-shadow: theme("boxShadow.xl");
|
|
109
|
+
!* background-color: theme("colors.white"); *!
|
|
111
110
|
height: 100%;
|
|
112
|
-
max-width: var(--
|
|
111
|
+
max-width: var(--panel-max-w);
|
|
113
112
|
position: absolute;
|
|
114
113
|
right: 0;
|
|
115
114
|
transform: translateX(100%);
|
|
@@ -118,26 +117,10 @@
|
|
|
118
117
|
&--open {
|
|
119
118
|
transform: translateX(0);
|
|
120
119
|
}
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
&-body {
|
|
124
|
-
display: flex;
|
|
125
|
-
flex-direction: column;
|
|
126
|
-
height: 100%;
|
|
127
|
-
max-width: var(--uxf-dg-drawer-max-w);
|
|
128
|
-
overflow-y: auto;
|
|
129
|
-
padding-bottom: theme("spacing.10");
|
|
130
|
-
position: relative;
|
|
131
|
-
width: 100%;
|
|
132
|
-
|
|
133
|
-
:root .dark & {
|
|
134
|
-
background-color: theme("colors.gray.950");
|
|
135
|
-
color: theme("colors.gray.100");
|
|
136
|
-
}
|
|
137
|
-
}
|
|
120
|
+
} */
|
|
138
121
|
|
|
139
122
|
&-content {
|
|
140
|
-
padding: theme("spacing.4");
|
|
123
|
+
padding: theme("spacing.4") theme("spacing.4") theme("spacing.14");
|
|
141
124
|
}
|
|
142
125
|
|
|
143
126
|
&-backdrop {
|
|
@@ -560,6 +543,10 @@
|
|
|
560
543
|
}
|
|
561
544
|
}
|
|
562
545
|
|
|
546
|
+
.uxf-dg-modal {
|
|
547
|
+
--panel-max-w: 400px;
|
|
548
|
+
}
|
|
549
|
+
|
|
563
550
|
/* TODO: tohle je imo k ničemu, že Vejvis? */
|
|
564
551
|
|
|
565
552
|
/* .rdg-cell.action {
|
package/table-v2/styles.css
CHANGED
|
@@ -1,21 +1,24 @@
|
|
|
1
1
|
:root {
|
|
2
2
|
--uxf-dg-table-font-size: theme("fontSize.sm");
|
|
3
3
|
--uxf-dg-table-cell-padding: theme("spacing.2");
|
|
4
|
-
--uxf-dg-table-action-cell-bg-color: theme("colors.white");
|
|
5
|
-
--uxf-dg-table-action-cell-left-divider-color: theme("colors.lightBorder");
|
|
6
4
|
--uxf-dg-table-action-cell-left-divider-size: 1px;
|
|
7
5
|
--uxf-dg-table-row-divider-size: 1px;
|
|
8
|
-
--uxf-dg-table-row-divider-color: theme("colors.lightBorder");
|
|
9
|
-
--uxf-dg-table-row-bg-color-odd: theme("colors.white");
|
|
10
|
-
--uxf-dg-table-row-bg-color-even: theme("colors.white");
|
|
11
|
-
--uxf-dg-table-header-action-cell-bg-color: theme("colors.neutral.50");
|
|
12
|
-
--uxf-dg-table-header-bg-color: theme("colors.neutral.50");
|
|
13
|
-
--uxf-dg-table-header-color: theme("colors.neutral.400");
|
|
14
|
-
--uxf-dg-table-header-divider-size: var(--uxf-dg-table-row-divider-size);
|
|
15
|
-
--uxf-dg-table-header-divider-color: var(--uxf-dg-table-row-divider-color);
|
|
16
6
|
}
|
|
17
7
|
|
|
18
8
|
.uxf-dg-table {
|
|
9
|
+
--uxf-dg-table-text-color: var(--uxf-color-base-text-high-emphasis);
|
|
10
|
+
--uxf-dg-table-action-cell-left-divider-color: var(--uxf-color-base-border-border);
|
|
11
|
+
--uxf-dg-table-row-divider-color: var(--uxf-color-base-border-border);
|
|
12
|
+
--uxf-dg-table-action-cell-bg-color: var(--uxf-color-base-surface-main);
|
|
13
|
+
--uxf-dg-table-row-bg-color-odd: var(--uxf-color-base-surface-main);
|
|
14
|
+
--uxf-dg-table-row-bg-color-even: var(--uxf-color-base-surface-main);
|
|
15
|
+
--uxf-dg-table-header-action-cell-bg-color: var(--uxf-color-base-surface-background);
|
|
16
|
+
--uxf-dg-table-header-bg-color: var(--uxf-color-base-surface-background);
|
|
17
|
+
--uxf-dg-table-header-color: var(--uxf-color-base-text-disabled);
|
|
18
|
+
--uxf-dg-table-header-divider-size: var(--uxf-dg-table-row-divider-size);
|
|
19
|
+
--uxf-dg-table-header-divider-color: var(--uxf-dg-table-row-divider-color);
|
|
20
|
+
|
|
21
|
+
color: var(--uxf-dg-table-text-color);
|
|
19
22
|
display: grid;
|
|
20
23
|
font-size: var(--uxf-dg-table-font-size);
|
|
21
24
|
overflow-x: auto;
|
|
@@ -70,6 +73,10 @@
|
|
|
70
73
|
width: 12px;
|
|
71
74
|
}
|
|
72
75
|
}
|
|
76
|
+
|
|
77
|
+
span {
|
|
78
|
+
@apply truncate;
|
|
79
|
+
}
|
|
73
80
|
}
|
|
74
81
|
|
|
75
82
|
&__action-cell {
|
|
@@ -96,7 +103,7 @@
|
|
|
96
103
|
z-index: 2;
|
|
97
104
|
|
|
98
105
|
&::before {
|
|
99
|
-
background-color:
|
|
106
|
+
background-color: var(--uxf-color-base-border-border);
|
|
100
107
|
bottom: 0;
|
|
101
108
|
content: "";
|
|
102
109
|
position: absolute;
|