@dbcdk/react-components 0.0.189 → 0.0.191
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/dist/client.cjs +7 -0
- package/dist/client.d.ts +1 -0
- package/dist/client.js +1 -0
- package/dist/components/accordion/Accordion.cjs +4 -8
- package/dist/components/accordion/Accordion.d.ts +1 -1
- package/dist/components/accordion/Accordion.js +4 -8
- package/dist/components/accordion/Accordion.module.css +55 -6
- package/dist/components/accordion/components/AccordionRow.cjs +2 -2
- package/dist/components/accordion/components/AccordionRow.d.ts +2 -2
- package/dist/components/accordion/components/AccordionRow.js +2 -2
- package/dist/components/accordion/components/AccordionRow.module.css +24 -2
- package/dist/components/breadcrumbs/Breadcrumbs.cjs +10 -7
- package/dist/components/breadcrumbs/Breadcrumbs.js +10 -7
- package/dist/components/breadcrumbs/Breadcrumbs.module.css +1 -5
- package/dist/components/button/Button.module.css +4 -2
- package/dist/components/button-select/ButtonSelect.cjs +2 -2
- package/dist/components/button-select/ButtonSelect.d.ts +1 -0
- package/dist/components/button-select/ButtonSelect.js +2 -2
- package/dist/components/button-select/ButtonSelect.module.css +14 -0
- package/dist/components/chip/Chip.module.css +38 -2
- package/dist/components/forms/checkbox/Checkbox.cjs +6 -1
- package/dist/components/forms/checkbox/Checkbox.js +6 -1
- package/dist/components/forms/checkbox/Checkbox.module.css +26 -0
- package/dist/components/forms/input/Input.module.css +2 -1
- package/dist/components/forms/input-container/InputContainer.d.ts +3 -3
- package/dist/components/forms/input-container/InputContainer.module.css +0 -7
- package/dist/components/grid/Grid.cjs +4 -2
- package/dist/components/grid/Grid.d.ts +2 -2
- package/dist/components/grid/Grid.js +4 -2
- package/dist/components/nav-bar/NavBar.d.ts +1 -0
- package/dist/components/overlay/side-panel/SidePanel.module.css +3 -1
- package/dist/components/page-layout/PageLayout.module.css +18 -2
- package/dist/components/sidebar/components/SidebarItem.cjs +2 -0
- package/dist/components/sidebar/components/SidebarItem.d.ts +2 -1
- package/dist/components/sidebar/components/SidebarItem.js +2 -0
- package/dist/components/sidebar/components/expandable-sidebar-item/ExpandableSidebarItem.cjs +4 -0
- package/dist/components/sidebar/components/expandable-sidebar-item/ExpandableSidebarItem.d.ts +2 -1
- package/dist/components/sidebar/components/expandable-sidebar-item/ExpandableSidebarItem.js +4 -0
- package/dist/components/sidebar/components/sidebar-item-content/SidebarItemContent.cjs +6 -1
- package/dist/components/sidebar/components/sidebar-item-content/SidebarItemContent.d.ts +2 -1
- package/dist/components/sidebar/components/sidebar-item-content/SidebarItemContent.js +6 -1
- package/dist/components/sidebar/components/sidebar-item-content/SidebarItemContent.module.css +14 -0
- package/dist/components/sidebar/components/sidebar-items/SidebarItems.cjs +13 -2
- package/dist/components/sidebar/components/sidebar-items/SidebarItems.js +13 -2
- package/dist/components/table/Table.module.css +2 -4
- package/dist/components/table/Table.types.d.ts +1 -0
- package/dist/components/table/components/TableHeaderCell.cjs +1 -1
- package/dist/components/table/components/TableHeaderCell.js +1 -1
- package/dist/components/table/components/TableRow.cjs +1 -0
- package/dist/components/table/components/TableRow.js +1 -0
- package/dist/components/table/tanstackTable.utils.cjs +3 -2
- package/dist/components/table/tanstackTable.utils.js +3 -2
- package/dist/components/tabs/Tabs.module.css +13 -4
- package/dist/hooks/useStickyLayout.cjs +99 -0
- package/dist/hooks/useStickyLayout.d.ts +22 -0
- package/dist/hooks/useStickyLayout.js +97 -0
- package/dist/index.cjs +7 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/styles/css-helper-classes/scrollbar.css +10 -0
- package/dist/styles/styles.css +40 -24
- package/dist/styles/themes/dbc/base.css +2 -2
- package/dist/styles.css +40 -24
- package/package.json +1 -1
- package/dist/styles/fonts/Roboto/OFL.txt +0 -93
- package/dist/styles/fonts/Roboto/README.txt +0 -118
- package/dist/styles/fonts/Roboto/Roboto-Black.ttf +0 -0
- package/dist/styles/fonts/Roboto/Roboto-BlackItalic.ttf +0 -0
- package/dist/styles/fonts/Roboto/Roboto-Bold.ttf +0 -0
- package/dist/styles/fonts/Roboto/Roboto-BoldItalic.ttf +0 -0
- package/dist/styles/fonts/Roboto/Roboto-ExtraBold.ttf +0 -0
- package/dist/styles/fonts/Roboto/Roboto-ExtraBoldItalic.ttf +0 -0
- package/dist/styles/fonts/Roboto/Roboto-ExtraLight.ttf +0 -0
- package/dist/styles/fonts/Roboto/Roboto-ExtraLightItalic.ttf +0 -0
- package/dist/styles/fonts/Roboto/Roboto-Italic.ttf +0 -0
- package/dist/styles/fonts/Roboto/Roboto-Light.ttf +0 -0
- package/dist/styles/fonts/Roboto/Roboto-LightItalic.ttf +0 -0
- package/dist/styles/fonts/Roboto/Roboto-Medium.ttf +0 -0
- package/dist/styles/fonts/Roboto/Roboto-MediumItalic.ttf +0 -0
- package/dist/styles/fonts/Roboto/Roboto-Regular.ttf +0 -0
- package/dist/styles/fonts/Roboto/Roboto-SemiBold.ttf +0 -0
- package/dist/styles/fonts/Roboto/Roboto-SemiBoldItalic.ttf +0 -0
- package/dist/styles/fonts/Roboto/Roboto-Thin.ttf +0 -0
- package/dist/styles/fonts/Roboto/Roboto-ThinItalic.ttf +0 -0
- package/dist/styles/fonts/Roboto/Roboto_Condensed-Black.ttf +0 -0
- package/dist/styles/fonts/Roboto/Roboto_Condensed-BlackItalic.ttf +0 -0
- package/dist/styles/fonts/Roboto/Roboto_Condensed-Bold.ttf +0 -0
- package/dist/styles/fonts/Roboto/Roboto_Condensed-BoldItalic.ttf +0 -0
- package/dist/styles/fonts/Roboto/Roboto_Condensed-ExtraBold.ttf +0 -0
- package/dist/styles/fonts/Roboto/Roboto_Condensed-ExtraBoldItalic.ttf +0 -0
- package/dist/styles/fonts/Roboto/Roboto_Condensed-ExtraLight.ttf +0 -0
- package/dist/styles/fonts/Roboto/Roboto_Condensed-ExtraLightItalic.ttf +0 -0
- package/dist/styles/fonts/Roboto/Roboto_Condensed-Italic.ttf +0 -0
- package/dist/styles/fonts/Roboto/Roboto_Condensed-Light.ttf +0 -0
- package/dist/styles/fonts/Roboto/Roboto_Condensed-LightItalic.ttf +0 -0
- package/dist/styles/fonts/Roboto/Roboto_Condensed-Medium.ttf +0 -0
- package/dist/styles/fonts/Roboto/Roboto_Condensed-MediumItalic.ttf +0 -0
- package/dist/styles/fonts/Roboto/Roboto_Condensed-Regular.ttf +0 -0
- package/dist/styles/fonts/Roboto/Roboto_Condensed-SemiBold.ttf +0 -0
- package/dist/styles/fonts/Roboto/Roboto_Condensed-SemiBoldItalic.ttf +0 -0
- package/dist/styles/fonts/Roboto/Roboto_Condensed-Thin.ttf +0 -0
- package/dist/styles/fonts/Roboto/Roboto_Condensed-ThinItalic.ttf +0 -0
- package/dist/styles/fonts/Roboto/Roboto_SemiCondensed-Black.ttf +0 -0
- package/dist/styles/fonts/Roboto/Roboto_SemiCondensed-BlackItalic.ttf +0 -0
- package/dist/styles/fonts/Roboto/Roboto_SemiCondensed-Bold.ttf +0 -0
- package/dist/styles/fonts/Roboto/Roboto_SemiCondensed-BoldItalic.ttf +0 -0
- package/dist/styles/fonts/Roboto/Roboto_SemiCondensed-ExtraBold.ttf +0 -0
- package/dist/styles/fonts/Roboto/Roboto_SemiCondensed-ExtraBoldItalic.ttf +0 -0
- package/dist/styles/fonts/Roboto/Roboto_SemiCondensed-ExtraLight.ttf +0 -0
- package/dist/styles/fonts/Roboto/Roboto_SemiCondensed-ExtraLightItalic.ttf +0 -0
- package/dist/styles/fonts/Roboto/Roboto_SemiCondensed-Italic.ttf +0 -0
- package/dist/styles/fonts/Roboto/Roboto_SemiCondensed-Light.ttf +0 -0
- package/dist/styles/fonts/Roboto/Roboto_SemiCondensed-LightItalic.ttf +0 -0
- package/dist/styles/fonts/Roboto/Roboto_SemiCondensed-Medium.ttf +0 -0
- package/dist/styles/fonts/Roboto/Roboto_SemiCondensed-MediumItalic.ttf +0 -0
- package/dist/styles/fonts/Roboto/Roboto_SemiCondensed-Regular.ttf +0 -0
- package/dist/styles/fonts/Roboto/Roboto_SemiCondensed-SemiBold.ttf +0 -0
- package/dist/styles/fonts/Roboto/Roboto_SemiCondensed-SemiBoldItalic.ttf +0 -0
- package/dist/styles/fonts/Roboto/Roboto_SemiCondensed-Thin.ttf +0 -0
- package/dist/styles/fonts/Roboto/Roboto_SemiCondensed-ThinItalic.ttf +0 -0
- package/dist/styles/fonts/Tajawal/OFL.txt +0 -93
- package/dist/styles/fonts/Tajawal/Tajawal-Black.ttf +0 -0
- package/dist/styles/fonts/Tajawal/Tajawal-Bold.ttf +0 -0
- package/dist/styles/fonts/Tajawal/Tajawal-ExtraBold.ttf +0 -0
- package/dist/styles/fonts/Tajawal/Tajawal-ExtraLight.ttf +0 -0
- package/dist/styles/fonts/Tajawal/Tajawal-Light.ttf +0 -0
- package/dist/styles/fonts/Tajawal/Tajawal-Medium.ttf +0 -0
- package/dist/styles/fonts/Tajawal/Tajawal-Regular.ttf +0 -0
package/dist/client.cjs
CHANGED
|
@@ -48,6 +48,7 @@ var TreeView = require('./components/tree-view/TreeView');
|
|
|
48
48
|
var nestedFiltering = require('./utils/arrays/nested-filtering');
|
|
49
49
|
var MultiSelect = require('./components/forms/multi-select/MultiSelect');
|
|
50
50
|
var useViewportFill = require('./hooks/useViewportFill');
|
|
51
|
+
var useStickyLayout = require('./hooks/useStickyLayout');
|
|
51
52
|
var formatDate = require('./utils/date/formatDate');
|
|
52
53
|
var FilterField = require('./components/filter-field/FilterField');
|
|
53
54
|
var Select = require('./components/forms/select/Select');
|
|
@@ -386,6 +387,12 @@ Object.keys(useViewportFill).forEach(function (k) {
|
|
|
386
387
|
get: function () { return useViewportFill[k]; }
|
|
387
388
|
});
|
|
388
389
|
});
|
|
390
|
+
Object.keys(useStickyLayout).forEach(function (k) {
|
|
391
|
+
if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
|
|
392
|
+
enumerable: true,
|
|
393
|
+
get: function () { return useStickyLayout[k]; }
|
|
394
|
+
});
|
|
395
|
+
});
|
|
389
396
|
Object.keys(formatDate).forEach(function (k) {
|
|
390
397
|
if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
|
|
391
398
|
enumerable: true,
|
package/dist/client.d.ts
CHANGED
|
@@ -45,6 +45,7 @@ export * from './components/tree-view/TreeView';
|
|
|
45
45
|
export * from './utils/arrays/nested-filtering';
|
|
46
46
|
export * from './components/forms/multi-select/MultiSelect';
|
|
47
47
|
export * from './hooks/useViewportFill';
|
|
48
|
+
export * from './hooks/useStickyLayout';
|
|
48
49
|
export * from './utils/date/formatDate';
|
|
49
50
|
export * from './components/filter-field/FilterField';
|
|
50
51
|
export * from './components/forms/select/Select';
|
package/dist/client.js
CHANGED
|
@@ -46,6 +46,7 @@ export * from './components/tree-view/TreeView';
|
|
|
46
46
|
export * from './utils/arrays/nested-filtering';
|
|
47
47
|
export * from './components/forms/multi-select/MultiSelect';
|
|
48
48
|
export * from './hooks/useViewportFill';
|
|
49
|
+
export * from './hooks/useStickyLayout';
|
|
49
50
|
export * from './utils/date/formatDate';
|
|
50
51
|
export * from './components/filter-field/FilterField';
|
|
51
52
|
export * from './components/forms/select/Select';
|
|
@@ -23,7 +23,7 @@ function Accordion({
|
|
|
23
23
|
items,
|
|
24
24
|
mode = "single",
|
|
25
25
|
size = "md",
|
|
26
|
-
variant = "
|
|
26
|
+
variant = "filled",
|
|
27
27
|
renderMode = "lazy",
|
|
28
28
|
defaultOpenIndex = null,
|
|
29
29
|
defaultOpenIndexes = [],
|
|
@@ -35,6 +35,7 @@ function Accordion({
|
|
|
35
35
|
...rest
|
|
36
36
|
}) {
|
|
37
37
|
const uid = react.useId();
|
|
38
|
+
const resolvedVariant = variant === "default" ? "filled" : variant;
|
|
38
39
|
const isControlled = mode === "single" ? openIndex !== void 0 : openIndexes !== void 0;
|
|
39
40
|
const [hasMounted, setHasMounted] = react.useState(false);
|
|
40
41
|
react.useEffect(() => {
|
|
@@ -96,12 +97,7 @@ function Accordion({
|
|
|
96
97
|
"div",
|
|
97
98
|
{
|
|
98
99
|
...rest,
|
|
99
|
-
className: [
|
|
100
|
-
styles__default.default.container,
|
|
101
|
-
styles__default.default[size],
|
|
102
|
-
variant !== "default" ? styles__default.default[variant] : "",
|
|
103
|
-
className
|
|
104
|
-
].filter(Boolean).join(" "),
|
|
100
|
+
className: [styles__default.default.container, styles__default.default[size], styles__default.default[resolvedVariant], className].filter(Boolean).join(" "),
|
|
105
101
|
children: items.map((item, i) => {
|
|
106
102
|
var _a;
|
|
107
103
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -114,7 +110,7 @@ function Accordion({
|
|
|
114
110
|
onToggle: toggle,
|
|
115
111
|
shouldAnimate: hasMounted,
|
|
116
112
|
headlineSize: size === "sm" ? 4 : 3,
|
|
117
|
-
variant,
|
|
113
|
+
variant: resolvedVariant,
|
|
118
114
|
renderMode
|
|
119
115
|
},
|
|
120
116
|
(_a = item.id) != null ? _a : i
|
|
@@ -13,7 +13,7 @@ export interface AccordionItem {
|
|
|
13
13
|
}
|
|
14
14
|
type Size = 'sm' | 'md' | 'lg';
|
|
15
15
|
type Mode = 'single' | 'multiple';
|
|
16
|
-
type Variant = '
|
|
16
|
+
type Variant = 'filled' | 'outlined' | 'default';
|
|
17
17
|
type OpenIndexes = number[] | 'all';
|
|
18
18
|
type RenderMode = 'lazy' | 'eager';
|
|
19
19
|
export interface AccordionProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> {
|
|
@@ -17,7 +17,7 @@ function Accordion({
|
|
|
17
17
|
items,
|
|
18
18
|
mode = "single",
|
|
19
19
|
size = "md",
|
|
20
|
-
variant = "
|
|
20
|
+
variant = "filled",
|
|
21
21
|
renderMode = "lazy",
|
|
22
22
|
defaultOpenIndex = null,
|
|
23
23
|
defaultOpenIndexes = [],
|
|
@@ -29,6 +29,7 @@ function Accordion({
|
|
|
29
29
|
...rest
|
|
30
30
|
}) {
|
|
31
31
|
const uid = useId();
|
|
32
|
+
const resolvedVariant = variant === "default" ? "filled" : variant;
|
|
32
33
|
const isControlled = mode === "single" ? openIndex !== void 0 : openIndexes !== void 0;
|
|
33
34
|
const [hasMounted, setHasMounted] = useState(false);
|
|
34
35
|
useEffect(() => {
|
|
@@ -90,12 +91,7 @@ function Accordion({
|
|
|
90
91
|
"div",
|
|
91
92
|
{
|
|
92
93
|
...rest,
|
|
93
|
-
className: [
|
|
94
|
-
styles.container,
|
|
95
|
-
styles[size],
|
|
96
|
-
variant !== "default" ? styles[variant] : "",
|
|
97
|
-
className
|
|
98
|
-
].filter(Boolean).join(" "),
|
|
94
|
+
className: [styles.container, styles[size], styles[resolvedVariant], className].filter(Boolean).join(" "),
|
|
99
95
|
children: items.map((item, i) => {
|
|
100
96
|
var _a;
|
|
101
97
|
return /* @__PURE__ */ jsx(
|
|
@@ -108,7 +104,7 @@ function Accordion({
|
|
|
108
104
|
onToggle: toggle,
|
|
109
105
|
shouldAnimate: hasMounted,
|
|
110
106
|
headlineSize: size === "sm" ? 4 : 3,
|
|
111
|
-
variant,
|
|
107
|
+
variant: resolvedVariant,
|
|
112
108
|
renderMode
|
|
113
109
|
},
|
|
114
110
|
(_a = item.id) != null ? _a : i
|
|
@@ -1,41 +1,90 @@
|
|
|
1
1
|
.container {
|
|
2
2
|
border-radius: var(--border-radius-default);
|
|
3
|
-
background-color:
|
|
3
|
+
background-color: transparent;
|
|
4
4
|
box-sizing: border-box;
|
|
5
5
|
display: flex;
|
|
6
6
|
flex-direction: column;
|
|
7
7
|
overflow: hidden;
|
|
8
|
-
gap:
|
|
8
|
+
gap: 0;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.filled {
|
|
12
|
+
--acc-item-bg: transparent;
|
|
13
|
+
--acc-trigger-bg: color-mix(
|
|
14
|
+
in srgb,
|
|
15
|
+
var(--color-bg-contextual-subtle) 66%,
|
|
16
|
+
var(--color-bg-surface)
|
|
17
|
+
);
|
|
18
|
+
--acc-trigger-bg-hover: color-mix(
|
|
19
|
+
in srgb,
|
|
20
|
+
var(--color-bg-contextual-subtle) 74%,
|
|
21
|
+
var(--color-bg-surface)
|
|
22
|
+
);
|
|
23
|
+
--acc-content-bg: var(--color-bg-surface);
|
|
24
|
+
--acc-item-separator: none;
|
|
25
|
+
--acc-item-gap: calc((var(--spacing-xxs) + var(--spacing-xs)) / 2);
|
|
26
|
+
--acc-item-radius: var(--border-radius-sm);
|
|
27
|
+
--acc-content-px: var(--acc-trigger-px);
|
|
28
|
+
--acc-content-open-pt: var(--spacing-2xs);
|
|
9
29
|
}
|
|
10
30
|
|
|
11
31
|
.outlined {
|
|
12
|
-
background-color:
|
|
32
|
+
background-color: var(--color-bg-surface);
|
|
13
33
|
border: 1px solid var(--color-border-subtle);
|
|
14
34
|
border-radius: var(--border-radius-md);
|
|
15
35
|
gap: 0;
|
|
36
|
+
--acc-item-bg: transparent;
|
|
37
|
+
--acc-content-bg: transparent;
|
|
38
|
+
--acc-item-gap: 0;
|
|
39
|
+
--acc-item-radius: 0;
|
|
16
40
|
--acc-trigger-bg: transparent;
|
|
41
|
+
--acc-trigger-bg-hover: transparent;
|
|
17
42
|
--acc-content-px: var(--acc-trigger-px);
|
|
18
43
|
--acc-item-separator: 1px solid var(--color-border-subtle);
|
|
19
44
|
}
|
|
20
45
|
|
|
21
46
|
/* Size variables (consumed by AccordionRow) */
|
|
22
47
|
.sm {
|
|
23
|
-
--acc-trigger-py: var(--spacing-
|
|
48
|
+
--acc-trigger-py: var(--spacing-xxs);
|
|
24
49
|
--acc-trigger-px: var(--spacing-sm);
|
|
25
50
|
--acc-content-py: var(--spacing-sm);
|
|
26
51
|
--acc-font-size: var(--font-size-sm);
|
|
27
52
|
}
|
|
28
53
|
|
|
29
54
|
.md {
|
|
30
|
-
--acc-trigger-py: var(--spacing-
|
|
55
|
+
--acc-trigger-py: var(--spacing-xs);
|
|
31
56
|
--acc-trigger-px: var(--spacing-md);
|
|
32
57
|
--acc-content-py: var(--spacing-md);
|
|
33
58
|
--acc-font-size: var(--font-size-md);
|
|
34
59
|
}
|
|
35
60
|
|
|
36
61
|
.lg {
|
|
37
|
-
--acc-trigger-py: var(--spacing-
|
|
62
|
+
--acc-trigger-py: var(--spacing-sm);
|
|
38
63
|
--acc-trigger-px: var(--spacing-md);
|
|
39
64
|
--acc-content-py: var(--spacing-md);
|
|
40
65
|
--acc-font-size: var(--font-size-md);
|
|
41
66
|
}
|
|
67
|
+
|
|
68
|
+
.filled.sm {
|
|
69
|
+
--acc-trigger-py: var(--spacing-2xs);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.filled.md {
|
|
73
|
+
--acc-trigger-py: calc((var(--spacing-xs) + var(--spacing-xxs)) / 2);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.filled.lg {
|
|
77
|
+
--acc-trigger-py: calc((var(--spacing-sm) + var(--spacing-xs)) / 2);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.outlined.sm {
|
|
81
|
+
--acc-trigger-py: var(--spacing-xs);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.outlined.md {
|
|
85
|
+
--acc-trigger-py: var(--spacing-sm);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.outlined.lg {
|
|
89
|
+
--acc-trigger-py: var(--spacing-md);
|
|
90
|
+
}
|
|
@@ -19,11 +19,11 @@ function AccordionRow({
|
|
|
19
19
|
onToggle,
|
|
20
20
|
shouldAnimate = true,
|
|
21
21
|
headlineSize = 4,
|
|
22
|
-
variant = "
|
|
22
|
+
variant: _variant = "filled",
|
|
23
23
|
renderMode = "lazy"
|
|
24
24
|
}) {
|
|
25
25
|
const isDisabled = !!item.disabled;
|
|
26
|
-
const headlineWeight =
|
|
26
|
+
const headlineWeight = 400;
|
|
27
27
|
const buttonId = `${uid}-acc-btn-${index}`;
|
|
28
28
|
const panelId = `${uid}-acc-panel-${index}`;
|
|
29
29
|
const { innerRef, height, onTransitionEnd } = useCollapsibleHeight.useCollapsibleHeight(isOpen, shouldAnimate);
|
|
@@ -8,7 +8,7 @@ export type AccordionRowProps = {
|
|
|
8
8
|
onToggle: (index: number) => void;
|
|
9
9
|
shouldAnimate?: boolean;
|
|
10
10
|
headlineSize?: 1 | 2 | 3 | 4 | 5 | 6;
|
|
11
|
-
variant?: '
|
|
11
|
+
variant?: 'filled' | 'outlined' | 'default';
|
|
12
12
|
renderMode?: 'lazy' | 'eager';
|
|
13
13
|
};
|
|
14
|
-
export declare function AccordionRow({ uid, index, item, isOpen, onToggle, shouldAnimate, headlineSize, variant, renderMode, }: AccordionRowProps): JSX.Element;
|
|
14
|
+
export declare function AccordionRow({ uid, index, item, isOpen, onToggle, shouldAnimate, headlineSize, variant: _variant, renderMode, }: AccordionRowProps): JSX.Element;
|
|
@@ -13,11 +13,11 @@ function AccordionRow({
|
|
|
13
13
|
onToggle,
|
|
14
14
|
shouldAnimate = true,
|
|
15
15
|
headlineSize = 4,
|
|
16
|
-
variant = "
|
|
16
|
+
variant: _variant = "filled",
|
|
17
17
|
renderMode = "lazy"
|
|
18
18
|
}) {
|
|
19
19
|
const isDisabled = !!item.disabled;
|
|
20
|
-
const headlineWeight =
|
|
20
|
+
const headlineWeight = 400;
|
|
21
21
|
const buttonId = `${uid}-acc-btn-${index}`;
|
|
22
22
|
const panelId = `${uid}-acc-panel-${index}`;
|
|
23
23
|
const { innerRef, height, onTransitionEnd } = useCollapsibleHeight(isOpen, shouldAnimate);
|
|
@@ -5,6 +5,15 @@
|
|
|
5
5
|
background: var(--acc-trigger-bg, var(--color-bg-contextual-subtle));
|
|
6
6
|
}
|
|
7
7
|
|
|
8
|
+
.item:not(.disabled):hover .headerRow {
|
|
9
|
+
background: var(--acc-trigger-bg-hover, var(--acc-trigger-bg, var(--color-bg-contextual-subtle)));
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.item:not(.disabled):hover .title,
|
|
13
|
+
.item:not(.disabled):hover .chevron {
|
|
14
|
+
color: var(--color-fg-default);
|
|
15
|
+
}
|
|
16
|
+
|
|
8
17
|
.trigger {
|
|
9
18
|
all: unset;
|
|
10
19
|
box-sizing: border-box;
|
|
@@ -75,9 +84,10 @@
|
|
|
75
84
|
}
|
|
76
85
|
|
|
77
86
|
.chevron {
|
|
78
|
-
width: var(--icon-size-
|
|
79
|
-
height: var(--icon-size-
|
|
87
|
+
width: var(--icon-size-sm);
|
|
88
|
+
height: var(--icon-size-sm);
|
|
80
89
|
flex: 0 0 auto;
|
|
90
|
+
color: var(--color-fg-muted);
|
|
81
91
|
transition: transform var(--transition-normal) var(--ease-standard);
|
|
82
92
|
}
|
|
83
93
|
|
|
@@ -108,12 +118,24 @@
|
|
|
108
118
|
|
|
109
119
|
.content {
|
|
110
120
|
padding: var(--acc-content-py) var(--acc-content-px, 0);
|
|
121
|
+
background: var(--acc-content-bg, transparent);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
.item[data-state='open'] .content {
|
|
125
|
+
padding-top: var(--acc-content-open-pt, var(--acc-content-py));
|
|
111
126
|
}
|
|
112
127
|
|
|
113
128
|
.item {
|
|
129
|
+
background: var(--acc-item-bg, transparent);
|
|
130
|
+
border-radius: var(--acc-item-radius, 0);
|
|
131
|
+
overflow: hidden;
|
|
114
132
|
border-bottom: var(--acc-item-separator, none);
|
|
115
133
|
}
|
|
116
134
|
|
|
135
|
+
.item + .item {
|
|
136
|
+
margin-top: var(--acc-item-gap, 0);
|
|
137
|
+
}
|
|
138
|
+
|
|
117
139
|
:global(.outlined) .item[data-state='open'] .headerRow {
|
|
118
140
|
box-shadow: inset 3px 0 0 var(--color-border-selected);
|
|
119
141
|
}
|
|
@@ -12,13 +12,16 @@ function Breadcrumbs({
|
|
|
12
12
|
items,
|
|
13
13
|
...navProps
|
|
14
14
|
}) {
|
|
15
|
-
return /* @__PURE__ */ jsxRuntime.jsx("nav", { className: styles__default.default.breadcrumbs, "aria-label": "breadcrumb", ...navProps, children: /* @__PURE__ */ jsxRuntime.jsx("ul", { children: items.map((item, index) =>
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
15
|
+
return /* @__PURE__ */ jsxRuntime.jsx("nav", { className: styles__default.default.breadcrumbs, "aria-label": "breadcrumb", ...navProps, children: /* @__PURE__ */ jsxRuntime.jsx("ul", { children: items.map((item, index) => {
|
|
16
|
+
const isCurrent = index === items.length - 1;
|
|
17
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(react.Fragment, { children: [
|
|
18
|
+
/* @__PURE__ */ jsxRuntime.jsxs("li", { "aria-current": isCurrent ? "page" : void 0, children: [
|
|
19
|
+
item.icon && item.icon,
|
|
20
|
+
item.onClick ? /* @__PURE__ */ jsxRuntime.jsx("button", { onClick: item.onClick, children: item.label }) : /* @__PURE__ */ jsxRuntime.jsx("span", { children: item.label })
|
|
21
|
+
] }),
|
|
22
|
+
index < items.length - 1 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: styles__default.default.separator, children: "/" })
|
|
23
|
+
] }, `breadcrumbItem-${item.label}-${index}`);
|
|
24
|
+
}) }) });
|
|
22
25
|
}
|
|
23
26
|
|
|
24
27
|
exports.Breadcrumbs = Breadcrumbs;
|
|
@@ -6,13 +6,16 @@ function Breadcrumbs({
|
|
|
6
6
|
items,
|
|
7
7
|
...navProps
|
|
8
8
|
}) {
|
|
9
|
-
return /* @__PURE__ */ jsx("nav", { className: styles.breadcrumbs, "aria-label": "breadcrumb", ...navProps, children: /* @__PURE__ */ jsx("ul", { children: items.map((item, index) =>
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
9
|
+
return /* @__PURE__ */ jsx("nav", { className: styles.breadcrumbs, "aria-label": "breadcrumb", ...navProps, children: /* @__PURE__ */ jsx("ul", { children: items.map((item, index) => {
|
|
10
|
+
const isCurrent = index === items.length - 1;
|
|
11
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
12
|
+
/* @__PURE__ */ jsxs("li", { "aria-current": isCurrent ? "page" : void 0, children: [
|
|
13
|
+
item.icon && item.icon,
|
|
14
|
+
item.onClick ? /* @__PURE__ */ jsx("button", { onClick: item.onClick, children: item.label }) : /* @__PURE__ */ jsx("span", { children: item.label })
|
|
15
|
+
] }),
|
|
16
|
+
index < items.length - 1 && /* @__PURE__ */ jsx("span", { className: styles.separator, children: "/" })
|
|
17
|
+
] }, `breadcrumbItem-${item.label}-${index}`);
|
|
18
|
+
}) }) });
|
|
16
19
|
}
|
|
17
20
|
|
|
18
21
|
export { Breadcrumbs };
|
|
@@ -34,12 +34,8 @@
|
|
|
34
34
|
.breadcrumbs li[aria-current='page'],
|
|
35
35
|
.breadcrumbs li:last-of-type {
|
|
36
36
|
color: var(--color-fg-default);
|
|
37
|
-
cursor: default;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
.breadcrumbs li[aria-current='page'] button,
|
|
41
|
-
.breadcrumbs li:last-of-type button {
|
|
42
37
|
font-weight: var(--font-weight-medium);
|
|
38
|
+
cursor: default;
|
|
43
39
|
}
|
|
44
40
|
|
|
45
41
|
.separator {
|
|
@@ -259,7 +259,8 @@
|
|
|
259
259
|
}
|
|
260
260
|
|
|
261
261
|
.header:hover {
|
|
262
|
-
background-color:
|
|
262
|
+
background-color: transparent;
|
|
263
|
+
border-color: var(--color-navbar-fg);
|
|
263
264
|
}
|
|
264
265
|
|
|
265
266
|
.header:focus-visible {
|
|
@@ -275,7 +276,8 @@
|
|
|
275
276
|
}
|
|
276
277
|
|
|
277
278
|
.header.active:hover {
|
|
278
|
-
background-color: color-mix(in srgb, var(--color-navbar-fg)
|
|
279
|
+
background-color: color-mix(in srgb, var(--color-navbar-fg) 16%, transparent);
|
|
280
|
+
border-color: var(--color-navbar-fg);
|
|
279
281
|
}
|
|
280
282
|
|
|
281
283
|
.button.xs {
|
|
@@ -10,7 +10,7 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
|
10
10
|
var styles__default = /*#__PURE__*/_interopDefault(styles);
|
|
11
11
|
|
|
12
12
|
function ButtonSelect(props) {
|
|
13
|
-
const { options, size = "md", disabled } = props;
|
|
13
|
+
const { options, size = "md", disabled, modified = false } = props;
|
|
14
14
|
const selectedValues = Array.isArray(props.value) ? props.value : [props.value];
|
|
15
15
|
function handleSelect(optionValue) {
|
|
16
16
|
if (props.multiple) {
|
|
@@ -20,7 +20,7 @@ function ButtonSelect(props) {
|
|
|
20
20
|
}
|
|
21
21
|
props.onChange(optionValue);
|
|
22
22
|
}
|
|
23
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles__default.default.group, role: "group", children: options.map((option) => {
|
|
23
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles__default.default.group, role: "group", "data-modified": modified ? "true" : void 0, children: options.map((option) => {
|
|
24
24
|
const isSelected = selectedValues.includes(option.value);
|
|
25
25
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
26
26
|
Button.Button,
|
|
@@ -10,6 +10,7 @@ interface ButtonSelectBaseProps<T extends string = string> {
|
|
|
10
10
|
options: ButtonSelectOption<T>[];
|
|
11
11
|
size?: ButtonSize;
|
|
12
12
|
disabled?: boolean;
|
|
13
|
+
modified?: boolean;
|
|
13
14
|
}
|
|
14
15
|
export interface ButtonSelectSingleProps<T extends string = string> extends ButtonSelectBaseProps<T> {
|
|
15
16
|
value: T;
|
|
@@ -4,7 +4,7 @@ import { Button } from '../../components/button/Button';
|
|
|
4
4
|
import styles from './ButtonSelect.module.css';
|
|
5
5
|
|
|
6
6
|
function ButtonSelect(props) {
|
|
7
|
-
const { options, size = "md", disabled } = props;
|
|
7
|
+
const { options, size = "md", disabled, modified = false } = props;
|
|
8
8
|
const selectedValues = Array.isArray(props.value) ? props.value : [props.value];
|
|
9
9
|
function handleSelect(optionValue) {
|
|
10
10
|
if (props.multiple) {
|
|
@@ -14,7 +14,7 @@ function ButtonSelect(props) {
|
|
|
14
14
|
}
|
|
15
15
|
props.onChange(optionValue);
|
|
16
16
|
}
|
|
17
|
-
return /* @__PURE__ */ jsx("div", { className: styles.group, role: "group", children: options.map((option) => {
|
|
17
|
+
return /* @__PURE__ */ jsx("div", { className: styles.group, role: "group", "data-modified": modified ? "true" : void 0, children: options.map((option) => {
|
|
18
18
|
const isSelected = selectedValues.includes(option.value);
|
|
19
19
|
return /* @__PURE__ */ jsx(
|
|
20
20
|
Button,
|
|
@@ -3,6 +3,20 @@
|
|
|
3
3
|
flex-wrap: nowrap;
|
|
4
4
|
}
|
|
5
5
|
|
|
6
|
+
.group[data-modified='true'] {
|
|
7
|
+
background-color: color-mix(in srgb, var(--color-status-warning-bg) 35%, transparent);
|
|
8
|
+
border-radius: var(--border-radius-default);
|
|
9
|
+
padding: 0;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.group[data-modified='true'] .btn {
|
|
13
|
+
border-color: color-mix(
|
|
14
|
+
in srgb,
|
|
15
|
+
var(--color-status-warning-border) 60%,
|
|
16
|
+
var(--color-border-default)
|
|
17
|
+
);
|
|
18
|
+
}
|
|
19
|
+
|
|
6
20
|
/* Collapse the doubled border between adjacent buttons */
|
|
7
21
|
.group .btn:not(:first-child) {
|
|
8
22
|
margin-left: -1px;
|
|
@@ -24,6 +24,10 @@
|
|
|
24
24
|
transform var(--transition-fast) var(--ease-standard);
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
+
.hasClose {
|
|
28
|
+
gap: var(--spacing-2xs);
|
|
29
|
+
}
|
|
30
|
+
|
|
27
31
|
.container:focus-visible {
|
|
28
32
|
outline: none;
|
|
29
33
|
}
|
|
@@ -39,14 +43,14 @@
|
|
|
39
43
|
/* Types */
|
|
40
44
|
|
|
41
45
|
.outlined {
|
|
42
|
-
--chip-bg:
|
|
46
|
+
--chip-bg: transparent;
|
|
43
47
|
--chip-border: var(--chip-outlined-border, var(--color-border-subtle));
|
|
44
48
|
--chip-fg: var(--chip-outlined-fg, var(--color-fg-muted));
|
|
45
49
|
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.03);
|
|
46
50
|
}
|
|
47
51
|
|
|
48
52
|
.outlined:hover {
|
|
49
|
-
background-color:
|
|
53
|
+
background-color: transparent;
|
|
50
54
|
border-color: var(--chip-outlined-border-hover, var(--color-border-default));
|
|
51
55
|
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
|
|
52
56
|
color: var(--chip-outlined-fg-hover, var(--color-fg-default));
|
|
@@ -120,6 +124,25 @@
|
|
|
120
124
|
box-shadow: none;
|
|
121
125
|
}
|
|
122
126
|
|
|
127
|
+
.outlined.neutral {
|
|
128
|
+
--chip-bg: transparent;
|
|
129
|
+
--chip-border: var(--chip-outlined-border, var(--color-border-subtle));
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
.outlined.neutral:hover,
|
|
133
|
+
.outlined.neutral:focus-visible {
|
|
134
|
+
--chip-bg: transparent;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
.neutral .close {
|
|
138
|
+
color: var(--color-fg-subtle);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
.neutral .close:hover,
|
|
142
|
+
.neutral .close:focus-visible {
|
|
143
|
+
color: var(--color-fg-default);
|
|
144
|
+
}
|
|
145
|
+
|
|
123
146
|
.success {
|
|
124
147
|
--chip-bg: var(--color-status-success-bg);
|
|
125
148
|
--chip-fg: var(--color-status-success-fg);
|
|
@@ -195,6 +218,19 @@
|
|
|
195
218
|
box-shadow: inset 0 0 0 1px var(--color-border-selected);
|
|
196
219
|
}
|
|
197
220
|
|
|
221
|
+
.outlined.selected,
|
|
222
|
+
.outlined.selected:hover,
|
|
223
|
+
.outlined.selected:focus-visible {
|
|
224
|
+
background: color-mix(in srgb, var(--color-bg-selected) 65%, var(--color-bg-surface));
|
|
225
|
+
border-color: var(--color-border-selected);
|
|
226
|
+
box-shadow: inset 0 0 0 1px var(--color-border-selected);
|
|
227
|
+
color: var(--color-brand);
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
.outlined.selected:hover {
|
|
231
|
+
background: color-mix(in srgb, var(--color-bg-selected-hover) 65%, var(--color-bg-surface));
|
|
232
|
+
}
|
|
233
|
+
|
|
198
234
|
.selected:hover {
|
|
199
235
|
background-color: var(--color-bg-selected);
|
|
200
236
|
border-color: var(--color-border-selected);
|
|
@@ -49,7 +49,11 @@ function Checkbox({
|
|
|
49
49
|
const content = /* @__PURE__ */ jsxRuntime.jsxs(
|
|
50
50
|
"span",
|
|
51
51
|
{
|
|
52
|
-
className: [
|
|
52
|
+
className: [
|
|
53
|
+
styles__default.default.container,
|
|
54
|
+
size === "sm" ? styles__default.default.containerSm : "",
|
|
55
|
+
modified ? styles__default.default.modified : ""
|
|
56
|
+
].filter(Boolean).join(" "),
|
|
53
57
|
"data-cy": dataCy,
|
|
54
58
|
children: [
|
|
55
59
|
/* @__PURE__ */ jsxRuntime.jsx(Tooltip.Tooltip, { content: tooltip, placement: tooltipPlacement, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -65,6 +69,7 @@ function Checkbox({
|
|
|
65
69
|
onClick: toggle,
|
|
66
70
|
className: [
|
|
67
71
|
styles__default.default.checkbox,
|
|
72
|
+
disabled ? "disabled" : "",
|
|
68
73
|
isChecked ? styles__default.default.checked : "",
|
|
69
74
|
styles__default.default[variant],
|
|
70
75
|
styles__default.default[size]
|
|
@@ -43,7 +43,11 @@ function Checkbox({
|
|
|
43
43
|
const content = /* @__PURE__ */ jsxs(
|
|
44
44
|
"span",
|
|
45
45
|
{
|
|
46
|
-
className: [
|
|
46
|
+
className: [
|
|
47
|
+
styles.container,
|
|
48
|
+
size === "sm" ? styles.containerSm : "",
|
|
49
|
+
modified ? styles.modified : ""
|
|
50
|
+
].filter(Boolean).join(" "),
|
|
47
51
|
"data-cy": dataCy,
|
|
48
52
|
children: [
|
|
49
53
|
/* @__PURE__ */ jsx(Tooltip, { content: tooltip, placement: tooltipPlacement, children: /* @__PURE__ */ jsx(
|
|
@@ -59,6 +63,7 @@ function Checkbox({
|
|
|
59
63
|
onClick: toggle,
|
|
60
64
|
className: [
|
|
61
65
|
styles.checkbox,
|
|
66
|
+
disabled ? "disabled" : "",
|
|
62
67
|
isChecked ? styles.checked : "",
|
|
63
68
|
styles[variant],
|
|
64
69
|
styles[size]
|
|
@@ -7,6 +7,13 @@
|
|
|
7
7
|
color: var(--color-fg-default);
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
+
.container.modified {
|
|
11
|
+
background-color: color-mix(in srgb, var(--color-status-warning-bg) 75%, transparent);
|
|
12
|
+
border-radius: var(--border-radius-default);
|
|
13
|
+
padding: 0;
|
|
14
|
+
display: inline-flex;
|
|
15
|
+
}
|
|
16
|
+
|
|
10
17
|
.containerSm {
|
|
11
18
|
gap: var(--spacing-xs);
|
|
12
19
|
}
|
|
@@ -28,6 +35,12 @@
|
|
|
28
35
|
box-shadow var(--transition-fast) var(--ease-standard);
|
|
29
36
|
}
|
|
30
37
|
|
|
38
|
+
.checkbox:disabled {
|
|
39
|
+
cursor: not-allowed;
|
|
40
|
+
opacity: 0.5;
|
|
41
|
+
filter: grayscale(0.2);
|
|
42
|
+
}
|
|
43
|
+
|
|
31
44
|
.checkbox.sm {
|
|
32
45
|
width: var(--component-size-xs);
|
|
33
46
|
height: var(--component-size-xs);
|
|
@@ -54,11 +67,24 @@
|
|
|
54
67
|
border-color: var(--color-fg-default);
|
|
55
68
|
}
|
|
56
69
|
|
|
70
|
+
.checkbox:disabled:hover {
|
|
71
|
+
border-color: var(--color-border-default);
|
|
72
|
+
}
|
|
73
|
+
|
|
57
74
|
.checked {
|
|
58
75
|
background-color: var(--color-brand);
|
|
59
76
|
border-color: var(--color-brand);
|
|
60
77
|
}
|
|
61
78
|
|
|
79
|
+
.checkbox:disabled.checked {
|
|
80
|
+
background-color: var(--color-bg-subtle);
|
|
81
|
+
border-color: var(--color-border-muted);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.checkbox:disabled.checked .icon {
|
|
85
|
+
color: var(--color-fg-muted);
|
|
86
|
+
}
|
|
87
|
+
|
|
62
88
|
.icon {
|
|
63
89
|
width: var(--icon-size-md);
|
|
64
90
|
height: var(--icon-size-md);
|
|
@@ -191,7 +191,8 @@
|
|
|
191
191
|
}
|
|
192
192
|
|
|
193
193
|
.header:hover:not([aria-disabled='true']) {
|
|
194
|
-
background-color:
|
|
194
|
+
background-color: transparent;
|
|
195
|
+
border-color: var(--color-navbar-fg);
|
|
195
196
|
}
|
|
196
197
|
|
|
197
198
|
.header:focus-within:not([aria-disabled='true']) {
|