@norges-domstoler/dds-components 5.2.0-beta.1 → 5.3.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 +14 -3
- package/dist/assets/svg/calendar_today.svg.js +1 -1
- package/dist/cjs/components/DescriptionList/DescriptionList.tokens.d.ts +70 -0
- package/dist/cjs/components/Modal/Modal.tokens.d.ts +0 -6
- package/dist/cjs/components/Modal/ModalBody.d.ts +6 -1
- package/dist/cjs/components/ScrollableContainer/ScrollableContainer.d.ts +7 -0
- package/dist/cjs/components/ScrollableContainer/ScrollableContainer.stories.d.ts +15 -0
- package/dist/cjs/components/ScrollableContainer/ScrollableContainer.tokens.d.ts +25 -0
- package/dist/cjs/components/ScrollableContainer/Scrollbar.d.ts +7 -0
- package/dist/cjs/components/ScrollableContainer/index.d.ts +3 -0
- package/dist/cjs/components/ScrollableContainer/scrollbarStyling.d.ts +26 -0
- package/dist/cjs/components/Select/Select.tokens.d.ts +0 -3
- package/dist/cjs/helpers/styling/index.d.ts +0 -1
- package/dist/cjs/icons/tsx/closeSmall.d.ts +2 -0
- package/dist/cjs/icons/tsx/index.d.ts +1 -0
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.js +951 -626
- package/dist/components/Datepicker/Datepicker.js +1 -1
- package/dist/components/DescriptionList/DescriptionList.js +6 -3
- package/dist/components/DescriptionList/DescriptionList.tokens.d.ts +70 -0
- package/dist/components/DescriptionList/DescriptionList.tokens.js +60 -0
- package/dist/components/DescriptionList/DescriptionListDesc.js +2 -2
- package/dist/components/DescriptionList/DescriptionListGroup.js +4 -4
- package/dist/components/Drawer/Drawer.js +12 -10
- package/dist/components/List/List.js +1 -1
- package/dist/components/Modal/Modal.tokens.d.ts +0 -6
- package/dist/components/Modal/Modal.tokens.js +0 -10
- package/dist/components/Modal/ModalBody.d.ts +6 -1
- package/dist/components/Modal/ModalBody.js +13 -13
- package/dist/components/OverflowMenu/OverflowMenu.js +3 -3
- package/dist/components/Pagination/Pagination.js +1 -1
- package/dist/components/ScrollableContainer/ScrollableContainer.d.ts +7 -0
- package/dist/components/ScrollableContainer/ScrollableContainer.js +47 -0
- package/dist/components/ScrollableContainer/ScrollableContainer.stories.d.ts +15 -0
- package/dist/components/ScrollableContainer/ScrollableContainer.tokens.d.ts +25 -0
- package/dist/components/ScrollableContainer/ScrollableContainer.tokens.js +36 -0
- package/dist/components/ScrollableContainer/Scrollbar.d.ts +7 -0
- package/dist/components/ScrollableContainer/Scrollbar.js +178 -0
- package/dist/components/ScrollableContainer/index.d.ts +3 -0
- package/dist/components/ScrollableContainer/scrollbarStyling.d.ts +26 -0
- package/dist/components/ScrollableContainer/scrollbarStyling.js +40 -0
- package/dist/components/Select/Select.js +38 -3
- package/dist/components/Select/Select.styles.js +7 -4
- package/dist/components/Select/Select.tokens.d.ts +0 -3
- package/dist/components/Select/Select.tokens.js +6 -18
- package/dist/components/Table/SortCell.js +1 -1
- package/dist/components/Table/Table.js +2 -2
- package/dist/components/Table/TableWrapper.js +3 -3
- package/dist/components/Tabs/TabList.js +2 -2
- package/dist/components/TextInput/TextInput.styles.js +2 -2
- package/dist/components/TextInput/TextInput.tokens.js +1 -1
- package/dist/helpers/styling/focusVisible.js +3 -2
- package/dist/helpers/styling/index.d.ts +0 -1
- package/dist/icons/tsx/closeSmall.d.ts +2 -0
- package/dist/icons/tsx/closeSmall.js +25 -0
- package/dist/icons/tsx/index.d.ts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +4 -0
- package/package.json +2 -4
- package/dist/cjs/components/DescriptionList/DescriptionListDesc.tokens.d.ts +0 -7
- package/dist/cjs/components/DescriptionList/DescriptionListGroup.tokens.d.ts +0 -4
- package/dist/cjs/components/DescriptionList/DescriptionListTerm.tokens.d.ts +0 -13
- package/dist/cjs/helpers/styling/scrollbarStyling.d.ts +0 -3
- package/dist/components/DescriptionList/DescriptionListDesc.tokens.d.ts +0 -7
- package/dist/components/DescriptionList/DescriptionListDesc.tokens.js +0 -22
- package/dist/components/DescriptionList/DescriptionListGroup.tokens.d.ts +0 -4
- package/dist/components/DescriptionList/DescriptionListGroup.tokens.js +0 -11
- package/dist/components/DescriptionList/DescriptionListTerm.tokens.d.ts +0 -13
- package/dist/components/DescriptionList/DescriptionListTerm.tokens.js +0 -27
- package/dist/helpers/styling/scrollbarStyling.d.ts +0 -3
- package/dist/helpers/styling/scrollbarStyling.js +0 -8
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import { slicedToArray as _slicedToArray } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
import { __rest } from 'tslib';
|
|
3
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
4
|
+
import { useRef, useState, useCallback, useEffect } from 'react';
|
|
5
|
+
import styled from 'styled-components';
|
|
6
|
+
import { scrollbarTokens } from './ScrollableContainer.tokens.js';
|
|
7
|
+
import { getBaseHTMLProps } from '../../types/BaseComponentProps.js';
|
|
8
|
+
|
|
9
|
+
var track = scrollbarTokens.track,
|
|
10
|
+
thumb = scrollbarTokens.thumb,
|
|
11
|
+
minThumbHeightPx = scrollbarTokens.minThumbHeightPx;
|
|
12
|
+
var ScrollbarOuterWrapper = styled.div.withConfig({
|
|
13
|
+
displayName: "Scrollbar__ScrollbarOuterWrapper",
|
|
14
|
+
componentId: "sc-mphi5n-0"
|
|
15
|
+
})([""]);
|
|
16
|
+
var ScrollbarElements = styled.div.withConfig({
|
|
17
|
+
displayName: "Scrollbar__ScrollbarElements",
|
|
18
|
+
componentId: "sc-mphi5n-1"
|
|
19
|
+
})(["display:block;height:100%;position:relative;display:grid;justify-items:center;"]);
|
|
20
|
+
var Track = styled.div.withConfig({
|
|
21
|
+
displayName: "Scrollbar__Track",
|
|
22
|
+
componentId: "sc-mphi5n-2"
|
|
23
|
+
})(["bottom:0;top:0;position:absolute;background-color:", ";border-radius:", ";width:", ";"], track.backgroundColor, track.borderRadius, track.width);
|
|
24
|
+
var Thumb = styled.div.withConfig({
|
|
25
|
+
displayName: "Scrollbar__Thumb",
|
|
26
|
+
componentId: "sc-mphi5n-3"
|
|
27
|
+
})(["position:absolute;background-color:", ";border-radius:", ";width:", ";transition:background-color 0.2s;&:hover{background-color:", ";}"], thumb.base.backgroundColor, thumb.base.borderRadius, thumb.base.width, thumb.hover.backgroundColor);
|
|
28
|
+
var Scrollbar = function Scrollbar(props) {
|
|
29
|
+
var id = props.id,
|
|
30
|
+
className = props.className,
|
|
31
|
+
htmlProps = props.htmlProps,
|
|
32
|
+
contentRef = props.contentRef,
|
|
33
|
+
rest = __rest(props, ["id", "className", "htmlProps", "contentRef"]);
|
|
34
|
+
|
|
35
|
+
var trackRef = useRef(null);
|
|
36
|
+
var thumbRef = useRef(null);
|
|
37
|
+
|
|
38
|
+
var _useState = useState(minThumbHeightPx),
|
|
39
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
40
|
+
thumbHeight = _useState2[0],
|
|
41
|
+
setThumbHeight = _useState2[1];
|
|
42
|
+
|
|
43
|
+
var _useState3 = useState(true),
|
|
44
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
45
|
+
isScrollable = _useState4[0],
|
|
46
|
+
setIsScrollable = _useState4[1];
|
|
47
|
+
|
|
48
|
+
var _useState5 = useState(0),
|
|
49
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
50
|
+
thumbTop = _useState6[0],
|
|
51
|
+
setThumbTop = _useState6[1];
|
|
52
|
+
|
|
53
|
+
var observer = useRef(null);
|
|
54
|
+
|
|
55
|
+
var _useState7 = useState(0),
|
|
56
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
57
|
+
scrollStartPosition = _useState8[0],
|
|
58
|
+
setScrollStartPosition = _useState8[1];
|
|
59
|
+
|
|
60
|
+
var _useState9 = useState(0),
|
|
61
|
+
_useState10 = _slicedToArray(_useState9, 2),
|
|
62
|
+
initialScrollTop = _useState10[0],
|
|
63
|
+
setInitialScrollTop = _useState10[1];
|
|
64
|
+
|
|
65
|
+
var _useState11 = useState(false),
|
|
66
|
+
_useState12 = _slicedToArray(_useState11, 2),
|
|
67
|
+
isDragging = _useState12[0],
|
|
68
|
+
setIsDragging = _useState12[1];
|
|
69
|
+
|
|
70
|
+
function handleResize(ref, trackSize) {
|
|
71
|
+
var clientHeight = ref.clientHeight,
|
|
72
|
+
scrollHeight = ref.scrollHeight;
|
|
73
|
+
setIsScrollable(clientHeight !== scrollHeight);
|
|
74
|
+
setThumbHeight(Math.max(clientHeight / scrollHeight * trackSize, minThumbHeightPx));
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
var handleTrackClick = useCallback(function (e) {
|
|
78
|
+
if (contentRef && contentRef.current) {
|
|
79
|
+
var trackCurrent = trackRef.current;
|
|
80
|
+
var contentCurrent = contentRef.current;
|
|
81
|
+
|
|
82
|
+
if (trackCurrent && contentCurrent) {
|
|
83
|
+
var clientY = e.clientY;
|
|
84
|
+
var target = e.target;
|
|
85
|
+
var rect = target.getBoundingClientRect();
|
|
86
|
+
var trackTop = rect.top;
|
|
87
|
+
var thumbOffset = -(thumbHeight / 2);
|
|
88
|
+
var clickRatio = (clientY - trackTop + thumbOffset) / trackCurrent.clientHeight;
|
|
89
|
+
var scrollAmount = Math.floor(clickRatio * contentCurrent.scrollHeight);
|
|
90
|
+
contentCurrent.scrollTo({
|
|
91
|
+
top: scrollAmount,
|
|
92
|
+
behavior: 'smooth'
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}, [thumbHeight]);
|
|
97
|
+
var handleThumbPositioning = useCallback(function () {
|
|
98
|
+
console.log('positioning');
|
|
99
|
+
|
|
100
|
+
if (!(contentRef === null || contentRef === void 0 ? void 0 : contentRef.current) || !trackRef.current || !thumbRef.current) {
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
var _contentRef$current = contentRef.current,
|
|
105
|
+
contentTop = _contentRef$current.scrollTop,
|
|
106
|
+
contentHeight = _contentRef$current.scrollHeight;
|
|
107
|
+
var clientHeight = trackRef.current.clientHeight;
|
|
108
|
+
var newTop = +contentTop / +contentHeight * clientHeight;
|
|
109
|
+
newTop = Math.min(newTop, clientHeight - thumbHeight);
|
|
110
|
+
setThumbTop(newTop);
|
|
111
|
+
}, []);
|
|
112
|
+
useEffect(function () {
|
|
113
|
+
if (contentRef && contentRef.current && trackRef.current) {
|
|
114
|
+
var ref = contentRef.current;
|
|
115
|
+
var clientHeight = trackRef.current.clientHeight;
|
|
116
|
+
observer.current = new ResizeObserver(function () {
|
|
117
|
+
handleResize(ref, clientHeight);
|
|
118
|
+
});
|
|
119
|
+
observer.current.observe(ref);
|
|
120
|
+
ref.addEventListener('scroll', handleThumbPositioning);
|
|
121
|
+
return function () {
|
|
122
|
+
var _a;
|
|
123
|
+
|
|
124
|
+
(_a = observer.current) === null || _a === void 0 ? void 0 : _a.unobserve(ref);
|
|
125
|
+
ref.removeEventListener('scroll', handleThumbPositioning);
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
}, []);
|
|
129
|
+
var handleThumbMousedown = useCallback(function (e) {
|
|
130
|
+
setScrollStartPosition(e.clientY);
|
|
131
|
+
if (contentRef && contentRef.current) setInitialScrollTop(contentRef.current.scrollTop);
|
|
132
|
+
setIsDragging(true);
|
|
133
|
+
}, []);
|
|
134
|
+
var handleThumbMouseup = useCallback(function () {
|
|
135
|
+
if (isDragging) {
|
|
136
|
+
setIsDragging(false);
|
|
137
|
+
}
|
|
138
|
+
}, [isDragging]);
|
|
139
|
+
var handleThumbMousemove = useCallback(function (e) {
|
|
140
|
+
if (contentRef && contentRef.current) {
|
|
141
|
+
if (isDragging) {
|
|
142
|
+
var _contentRef$current2 = contentRef.current,
|
|
143
|
+
contentScrollHeight = _contentRef$current2.scrollHeight,
|
|
144
|
+
contentOffsetHeight = _contentRef$current2.offsetHeight;
|
|
145
|
+
var deltaY = (e.clientY - scrollStartPosition) * (contentOffsetHeight / thumbHeight);
|
|
146
|
+
var newScrollTop = Math.min(initialScrollTop + deltaY, contentScrollHeight - contentOffsetHeight);
|
|
147
|
+
contentRef.current.scrollTop = newScrollTop;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}, [isDragging, scrollStartPosition, thumbHeight]);
|
|
151
|
+
useEffect(function () {
|
|
152
|
+
document.addEventListener('mousemove', handleThumbMousemove);
|
|
153
|
+
document.addEventListener('mouseup', handleThumbMouseup);
|
|
154
|
+
document.addEventListener('mouseleave', handleThumbMouseup);
|
|
155
|
+
return function () {
|
|
156
|
+
document.removeEventListener('mousemove', handleThumbMousemove);
|
|
157
|
+
document.removeEventListener('mouseup', handleThumbMouseup);
|
|
158
|
+
document.removeEventListener('mouseleave', handleThumbMouseup);
|
|
159
|
+
};
|
|
160
|
+
}, [handleThumbMousemove, handleThumbMouseup]);
|
|
161
|
+
return isScrollable ? jsx(ScrollbarOuterWrapper, Object.assign({}, getBaseHTMLProps(id, className, htmlProps, rest), {
|
|
162
|
+
children: jsxs(ScrollbarElements, {
|
|
163
|
+
children: [jsx(Track, {
|
|
164
|
+
ref: trackRef,
|
|
165
|
+
onClick: handleTrackClick
|
|
166
|
+
}), jsx(Thumb, {
|
|
167
|
+
style: {
|
|
168
|
+
height: thumbHeight,
|
|
169
|
+
top: thumbTop
|
|
170
|
+
},
|
|
171
|
+
ref: thumbRef,
|
|
172
|
+
onMouseDown: handleThumbMousedown
|
|
173
|
+
})]
|
|
174
|
+
})
|
|
175
|
+
})) : null;
|
|
176
|
+
};
|
|
177
|
+
|
|
178
|
+
export { Scrollbar };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CSS-in-JS scrollbar styling til bruk der det ikke passer å bruke dedikerte komponenter. Inkluderer styling for webkit pseudo-elementer og for Firefox.
|
|
3
|
+
*/
|
|
4
|
+
export declare const scrollbarStyling: {
|
|
5
|
+
webkit: {
|
|
6
|
+
'&::-webkit-scrollbar': {
|
|
7
|
+
width: string;
|
|
8
|
+
height: string;
|
|
9
|
+
};
|
|
10
|
+
'&::-webkit-scrollbar-track': {
|
|
11
|
+
background: string;
|
|
12
|
+
borderRadius: string;
|
|
13
|
+
};
|
|
14
|
+
'&::-webkit-scrollbar-thumb': {
|
|
15
|
+
background: string;
|
|
16
|
+
borderRadius: string;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
'&::-webkit-scrollbar-thumb:hover': {
|
|
20
|
+
background: string;
|
|
21
|
+
};
|
|
22
|
+
firefox: {
|
|
23
|
+
scrollbarColor: string;
|
|
24
|
+
scrollbarWidth: string;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { scrollbarTokens } from './ScrollableContainer.tokens.js';
|
|
2
|
+
|
|
3
|
+
var thumb = scrollbarTokens.thumb,
|
|
4
|
+
track = scrollbarTokens.track;
|
|
5
|
+
/**
|
|
6
|
+
* CSS-in-JS scrollbar styling til bruk der det ikke passer å bruke dedikerte komponenter. Inkluderer styling for webkit pseudo-elementer og for Firefox.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
var scrollbarStyling = {
|
|
10
|
+
webkit: {
|
|
11
|
+
/* width */
|
|
12
|
+
'&::-webkit-scrollbar': {
|
|
13
|
+
width: track.width,
|
|
14
|
+
height: track.width
|
|
15
|
+
},
|
|
16
|
+
|
|
17
|
+
/* Track */
|
|
18
|
+
'&::-webkit-scrollbar-track': {
|
|
19
|
+
background: track.backgroundColor,
|
|
20
|
+
borderRadius: track.borderRadius
|
|
21
|
+
},
|
|
22
|
+
|
|
23
|
+
/* Handle */
|
|
24
|
+
'&::-webkit-scrollbar-thumb': {
|
|
25
|
+
background: thumb.base.backgroundColor,
|
|
26
|
+
borderRadius: thumb.base.borderRadius
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
|
|
30
|
+
/* Handle on hover */
|
|
31
|
+
'&::-webkit-scrollbar-thumb:hover': {
|
|
32
|
+
background: thumb.hover.backgroundColor
|
|
33
|
+
},
|
|
34
|
+
firefox: {
|
|
35
|
+
scrollbarColor: thumb.base.backgroundColor + ' ' + track.backgroundColor,
|
|
36
|
+
scrollbarWidth: 'thin'
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
export { scrollbarStyling };
|
|
@@ -6,6 +6,8 @@ import ReactSelect, { components } from 'react-select';
|
|
|
6
6
|
import { prefix, getCustomStyles, Wrapper, Container, Label } from './Select.styles.js';
|
|
7
7
|
import { selectTokens } from './Select.tokens.js';
|
|
8
8
|
import { CheckIcon } from '../../icons/tsx/check.js';
|
|
9
|
+
import { CloseSmallIcon } from '../../icons/tsx/closeSmall.js';
|
|
10
|
+
import { ChevronDownIcon } from '../../icons/tsx/chevronDown.js';
|
|
9
11
|
import { RequiredMarker } from '../../helpers/RequiredMarker/RequiredMarker.js';
|
|
10
12
|
import { InputMessage } from '../InputMessage/InputMessage.js';
|
|
11
13
|
import { Icon } from '../Icon/Icon.js';
|
|
@@ -14,7 +16,10 @@ import { derivativeIdGenerator, spaceSeparatedIdListGenerator } from '../../util
|
|
|
14
16
|
var DdsOption = components.Option,
|
|
15
17
|
NoOptionsMessage = components.NoOptionsMessage,
|
|
16
18
|
Input = components.Input,
|
|
17
|
-
SingleValue = components.SingleValue
|
|
19
|
+
SingleValue = components.SingleValue,
|
|
20
|
+
ClearIndicator = components.ClearIndicator,
|
|
21
|
+
DropdownIndicator = components.DropdownIndicator,
|
|
22
|
+
MultiValueRemove = components.MultiValueRemove;
|
|
18
23
|
var createSelectOptions = function createSelectOptions() {
|
|
19
24
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
20
25
|
args[_key] = arguments[_key];
|
|
@@ -32,7 +37,7 @@ var IconOption = function IconOption(props) {
|
|
|
32
37
|
return jsxs(DdsOption, Object.assign({}, props, {
|
|
33
38
|
children: [props.isSelected && jsx(Icon, {
|
|
34
39
|
icon: CheckIcon,
|
|
35
|
-
iconSize: "
|
|
40
|
+
iconSize: "medium"
|
|
36
41
|
}), props.children]
|
|
37
42
|
}));
|
|
38
43
|
};
|
|
@@ -55,6 +60,33 @@ var NoOptionsMessageCustom = function NoOptionsMessageCustom(props) {
|
|
|
55
60
|
}));
|
|
56
61
|
};
|
|
57
62
|
|
|
63
|
+
var CustomClearIndicator = function CustomClearIndicator(props) {
|
|
64
|
+
return jsx(ClearIndicator, Object.assign({}, props, {
|
|
65
|
+
children: jsx(Icon, {
|
|
66
|
+
icon: CloseSmallIcon,
|
|
67
|
+
iconSize: "medium"
|
|
68
|
+
})
|
|
69
|
+
}));
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
var CustomMultiValueRemove = function CustomMultiValueRemove(props) {
|
|
73
|
+
return jsx(MultiValueRemove, Object.assign({}, props, {
|
|
74
|
+
children: jsx(Icon, {
|
|
75
|
+
icon: CloseSmallIcon,
|
|
76
|
+
iconSize: "medium"
|
|
77
|
+
})
|
|
78
|
+
}));
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
var CustomDropdownIndicator = function CustomDropdownIndicator(props) {
|
|
82
|
+
return jsx(DropdownIndicator, Object.assign({}, props, {
|
|
83
|
+
children: jsx(Icon, {
|
|
84
|
+
icon: ChevronDownIcon,
|
|
85
|
+
iconSize: "medium"
|
|
86
|
+
})
|
|
87
|
+
}));
|
|
88
|
+
};
|
|
89
|
+
|
|
58
90
|
function escapeRegexCharacters(text) {
|
|
59
91
|
return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&');
|
|
60
92
|
}
|
|
@@ -143,7 +175,10 @@ var SelectInner = function SelectInner(_a, ref) {
|
|
|
143
175
|
Input: CustomInput,
|
|
144
176
|
SingleValue: customSingleValueElement ? function (props) {
|
|
145
177
|
return CustomSingleValue(props, customSingleValueElement);
|
|
146
|
-
} : SingleValue
|
|
178
|
+
} : SingleValue,
|
|
179
|
+
ClearIndicator: CustomClearIndicator,
|
|
180
|
+
DropdownIndicator: CustomDropdownIndicator,
|
|
181
|
+
MultiValueRemove: CustomMultiValueRemove
|
|
147
182
|
},
|
|
148
183
|
'aria-invalid': hasErrorMessage ? true : undefined
|
|
149
184
|
}, rest);
|
|
@@ -2,7 +2,7 @@ import styled, { css } from 'styled-components';
|
|
|
2
2
|
import { typographyTokens } from '../Typography/Typography.tokens.js';
|
|
3
3
|
import { selectTokens } from './Select.tokens.js';
|
|
4
4
|
import { Typography } from '../Typography/Typography.js';
|
|
5
|
-
import { scrollbarStyling } from '
|
|
5
|
+
import { scrollbarStyling } from '../ScrollableContainer/scrollbarStyling.js';
|
|
6
6
|
|
|
7
7
|
var prefix = 'dds-select';
|
|
8
8
|
var Label = styled(Typography).withConfig({
|
|
@@ -12,14 +12,14 @@ var Label = styled(Typography).withConfig({
|
|
|
12
12
|
var Container = styled.div.withConfig({
|
|
13
13
|
displayName: "Selectstyles__Container",
|
|
14
14
|
componentId: "sc-19jkd5s-1"
|
|
15
|
-
})(["@media (prefers-reduced-motion:no-preference){transition:box-shadow 0.2s,border-color 0.2s,background-color 0.2s;}position:relative;", "
|
|
15
|
+
})(["@media (prefers-reduced-motion:no-preference){transition:box-shadow 0.2s,border-color 0.2s,background-color 0.2s;}position:relative;", " *::selection{", "}", " &:hover{", " ", "{", "}}&:focus-within{", " ", "{", "}}", " .", "__menu-list{", " ", "}&:hover .", "__dropdown-indicator,&:focus-within .", "__dropdown-indicator{", "}", " ", ""], selectTokens.container.base, typographyTokens.selection.base, function (_ref) {
|
|
16
16
|
var hasLabel = _ref.hasLabel,
|
|
17
17
|
isMulti = _ref.isMulti;
|
|
18
18
|
return isMulti && hasLabel ? css([".", "__value-container{", "}.", "__indicators{", "}"], prefix, selectTokens.valueContainer.isMulti.withLabel.base, prefix, selectTokens.indicatorsContainer.isMulti.withLabel.base) : isMulti && !hasLabel ? css([".", "__control{", "}.", "__value-container{", "}.", "__indicators{", "}"], prefix, selectTokens.input.isMulti.noLabel.base, prefix, selectTokens.valueContainer.isMulti.noLabel.base, prefix, selectTokens.indicatorsContainer.isMulti.noLabel.base) : hasLabel ? css([".", "__value-container{", "}.", "__indicators{", "}"], prefix, selectTokens.valueContainer.withLabel.base, prefix, selectTokens.indicatorsContainer.withLabel.base) : css([".", "__control{", "}.", "__value-container{", "}.", "__indicators{", "}"], prefix, selectTokens.input.noLabel.base, prefix, selectTokens.valueContainer.noLabel.base, prefix, selectTokens.indicatorsContainer.noLabel.base);
|
|
19
19
|
}, selectTokens.container.hover.base, Label, selectTokens.label.hover.base, selectTokens.container.focus.base, Label, selectTokens.label.focus.base, function (_ref2) {
|
|
20
20
|
var errorMessage = _ref2.errorMessage;
|
|
21
21
|
return errorMessage && css(["", " &:hover{", "}&:focus-within{", "}"], selectTokens.container.danger.base, selectTokens.container.danger.hover.base, selectTokens.container.danger.focus.base);
|
|
22
|
-
}, prefix, scrollbarStyling, prefix, prefix, selectTokens.dropdownIndicator.hover.base, function (_ref3) {
|
|
22
|
+
}, prefix, scrollbarStyling.webkit, scrollbarStyling.firefox, prefix, prefix, selectTokens.dropdownIndicator.hover.base, function (_ref3) {
|
|
23
23
|
var isDisabled = _ref3.isDisabled;
|
|
24
24
|
return isDisabled && css(["cursor:not-allowed;", " &:hover{box-shadow:none;", " ", "{", "}&:hover .", "__dropdown-indicator{", "}}"], selectTokens.container.disabled.base, selectTokens.container.disabled.base, Label, selectTokens.label.base, prefix, selectTokens.dropdownIndicator.base);
|
|
25
25
|
}, function (_ref4) {
|
|
@@ -89,7 +89,7 @@ var getCustomStyles = function getCustomStyles() {
|
|
|
89
89
|
transition: 'color 0.2s, background-color 0.2s'
|
|
90
90
|
}
|
|
91
91
|
}), selectTokens.multiValueRemove.base), {
|
|
92
|
-
|
|
92
|
+
padding: 0,
|
|
93
93
|
'&:hover': Object.assign({}, selectTokens.multiValueRemove.hover.base),
|
|
94
94
|
'&:focus': {
|
|
95
95
|
backgroundColor: 'blue'
|
|
@@ -127,6 +127,9 @@ var getCustomStyles = function getCustomStyles() {
|
|
|
127
127
|
return Object.assign(Object.assign({
|
|
128
128
|
display: 'inline-flex'
|
|
129
129
|
}, selectTokens.clearIndicator.base), {
|
|
130
|
+
'@media (prefers-reduced-motion: no-preference)': {
|
|
131
|
+
transition: 'color 0.2s'
|
|
132
|
+
},
|
|
130
133
|
'&:hover': Object.assign({}, selectTokens.clearIndicator.hover.base)
|
|
131
134
|
});
|
|
132
135
|
},
|
|
@@ -8,8 +8,7 @@ var Colors = ddsBaseTokens.colors,
|
|
|
8
8
|
Spacing = ddsBaseTokens.spacing,
|
|
9
9
|
FontPackages = ddsBaseTokens.fontPackages,
|
|
10
10
|
BorderRadius = ddsBaseTokens.borderRadius,
|
|
11
|
-
Border = ddsBaseTokens.border
|
|
12
|
-
IconSizes = ddsBaseTokens.iconSizes;
|
|
11
|
+
Border = ddsBaseTokens.border;
|
|
13
12
|
var textDefault = ddsReferenceTokens.textDefault;
|
|
14
13
|
var multiValueContainerMinHeight = "".concat(Spacing.SizesDdsSpacingLocalX0125NumberPx * 2 + Spacing.SizesDdsSpacingLocalX025NumberPx * 2 + calculateHeightWithLineHeight(FontPackages.supportingStyle_inputtext_01.numbers.lineHeightNumber, FontPackages.supportingStyle_inputtext_01.numbers.fontSizeNumber), "px"); //custom spacing so that multiselect has same height as single value select
|
|
15
14
|
|
|
@@ -90,8 +89,7 @@ var drodownIndicatorReadOnlyBase = {
|
|
|
90
89
|
color: 'transparent'
|
|
91
90
|
};
|
|
92
91
|
var clearIndicatorBase = {
|
|
93
|
-
color: Colors.DdsColorNeutralsGray6
|
|
94
|
-
padding: " 0 ".concat(Spacing.SizesDdsSpacingLocalX025, " 0 0")
|
|
92
|
+
color: Colors.DdsColorNeutralsGray6
|
|
95
93
|
};
|
|
96
94
|
var loadingIndicatorBase = {
|
|
97
95
|
color: Colors.DdsColorNeutralsGray6,
|
|
@@ -117,13 +115,11 @@ var optionBase = Object.assign(Object.assign({
|
|
|
117
115
|
color: textDefault.textColor
|
|
118
116
|
});
|
|
119
117
|
var optionHoverBase = {
|
|
120
|
-
backgroundColor: Colors.DdsColorInteractiveLighter
|
|
121
|
-
};
|
|
122
|
-
var optionSelectedBase = Object.assign(Object.assign({
|
|
123
118
|
backgroundColor: Colors.DdsColorInteractiveLightest
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
|
|
119
|
+
};
|
|
120
|
+
var optionSelectedBase = Object.assign({
|
|
121
|
+
backgroundColor: Colors.DdsColorNeutralsWhite
|
|
122
|
+
}, FontPackages.body_sans_02.base);
|
|
127
123
|
var noOptionsMessageBase = Object.assign({
|
|
128
124
|
padding: "".concat(Spacing.SizesDdsSpacingLocalX05, " ").concat(Spacing.SizesDdsSpacingLocalX1),
|
|
129
125
|
color: Colors.DdsColorNeutralsGray6
|
|
@@ -148,17 +144,12 @@ var multiValueLabelBase = Object.assign(Object.assign({
|
|
|
148
144
|
fontWeight: 'bold'
|
|
149
145
|
});
|
|
150
146
|
var multiValueRemoveBase = {
|
|
151
|
-
padding: "".concat(Spacing.SizesDdsSpacingLocalX025),
|
|
152
147
|
color: Colors.DdsColorNeutralsGray9
|
|
153
148
|
};
|
|
154
149
|
var multiValueRemoveHoverBase = {
|
|
155
150
|
color: Colors.DdsColorNeutralsWhite,
|
|
156
151
|
backgroundColor: Colors.DdsColorInteractiveBase
|
|
157
152
|
};
|
|
158
|
-
var multiValueRemoveIconBase = {
|
|
159
|
-
height: IconSizes.DdsIconsizeSmall,
|
|
160
|
-
width: IconSizes.DdsIconsizeSmall
|
|
161
|
-
};
|
|
162
153
|
var containerDisabledBase = {
|
|
163
154
|
backgroundColor: Colors.DdsColorNeutralsGray1,
|
|
164
155
|
borderColor: Colors.DdsColorNeutralsGray5
|
|
@@ -267,9 +258,6 @@ var selectTokens = {
|
|
|
267
258
|
base: multiValueRemoveBase,
|
|
268
259
|
hover: {
|
|
269
260
|
base: multiValueRemoveHoverBase
|
|
270
|
-
},
|
|
271
|
-
icon: {
|
|
272
|
-
base: multiValueRemoveIconBase
|
|
273
261
|
}
|
|
274
262
|
},
|
|
275
263
|
indicatorsContainer: {
|
|
@@ -6,9 +6,9 @@ import { cellTokens } from './Cell.tokens.js';
|
|
|
6
6
|
import styled from 'styled-components';
|
|
7
7
|
import { removeButtonStyling } from '../../helpers/styling/removeButtonStyling.js';
|
|
8
8
|
import { UnfoldMoreIcon } from '../../icons/tsx/unfoldMore.js';
|
|
9
|
-
import { ChevronDownIcon } from '../../icons/tsx/chevronDown.js';
|
|
10
9
|
import { ChevronUpIcon } from '../../icons/tsx/chevronUp.js';
|
|
11
10
|
import { Icon } from '../Icon/Icon.js';
|
|
11
|
+
import { ChevronDownIcon } from '../../icons/tsx/chevronDown.js';
|
|
12
12
|
|
|
13
13
|
var SortIcon = styled(Icon).withConfig({
|
|
14
14
|
displayName: "SortCell__SortIcon",
|
|
@@ -4,12 +4,12 @@ import { forwardRef } from 'react';
|
|
|
4
4
|
import styled, { css } from 'styled-components';
|
|
5
5
|
import { cellTokens } from './Cell.tokens.js';
|
|
6
6
|
import { typographyTokens } from '../Typography/Typography.tokens.js';
|
|
7
|
-
import { scrollbarStyling } from '
|
|
7
|
+
import { scrollbarStyling } from '../ScrollableContainer/scrollbarStyling.js';
|
|
8
8
|
|
|
9
9
|
var StyledTable = styled.table.withConfig({
|
|
10
10
|
displayName: "Table__StyledTable",
|
|
11
11
|
componentId: "sc-bw0w0a-0"
|
|
12
|
-
})(["border-spacing:0;border-collapse:collapse;*::selection{", "}", " ", " ", ""], typographyTokens.selection.base, scrollbarStyling, function (_ref) {
|
|
12
|
+
})(["border-spacing:0;border-collapse:collapse;*::selection{", "}", " ", " ", " ", ""], typographyTokens.selection.base, scrollbarStyling.webkit, scrollbarStyling.firefox, function (_ref) {
|
|
13
13
|
var density = _ref.density;
|
|
14
14
|
return density && css(["td,th{", "}"], cellTokens.density[density].base);
|
|
15
15
|
}, function (_ref2) {
|
|
@@ -3,15 +3,15 @@ import { __rest } from 'tslib';
|
|
|
3
3
|
import { jsx } from 'react/jsx-runtime';
|
|
4
4
|
import { useState, useRef, useEffect } from 'react';
|
|
5
5
|
import styled, { css } from 'styled-components';
|
|
6
|
-
import { scrollbarStyling } from '
|
|
6
|
+
import { scrollbarStyling } from '../ScrollableContainer/scrollbarStyling.js';
|
|
7
7
|
|
|
8
8
|
var Wrapper = styled.div.withConfig({
|
|
9
9
|
displayName: "TableWrapper__Wrapper",
|
|
10
10
|
componentId: "sc-eb384b-0"
|
|
11
|
-
})(["", " ", ""], function (_ref) {
|
|
11
|
+
})(["", " ", " ", ""], function (_ref) {
|
|
12
12
|
var overflowX = _ref.overflowX;
|
|
13
13
|
return overflowX && css(["overflow-x:auto;"]);
|
|
14
|
-
}, scrollbarStyling);
|
|
14
|
+
}, scrollbarStyling.webkit, scrollbarStyling.firefox);
|
|
15
15
|
var TableWrapper = function TableWrapper(_a) {
|
|
16
16
|
var children = _a.children,
|
|
17
17
|
rest = __rest(_a, ["children"]);
|
|
@@ -5,7 +5,7 @@ import { forwardRef, useState, Children, isValidElement, cloneElement } from 're
|
|
|
5
5
|
import styled from 'styled-components';
|
|
6
6
|
import { tabsTokens } from './Tabs.tokens.js';
|
|
7
7
|
import { useTabsContext } from './Tabs.context.js';
|
|
8
|
-
import { scrollbarStyling } from '
|
|
8
|
+
import { scrollbarStyling } from '../ScrollableContainer/scrollbarStyling.js';
|
|
9
9
|
import { useRoveFocus } from '../../hooks/useRoveFocus.js';
|
|
10
10
|
import { useCombinedRef } from '../../hooks/useCombinedRefs.js';
|
|
11
11
|
import { useOnKeyDown } from '../../hooks/useOnKeyDown.js';
|
|
@@ -14,7 +14,7 @@ import { useOnClickOutside } from '../../hooks/useOnClickOutside.js';
|
|
|
14
14
|
var TabRow = styled.div.withConfig({
|
|
15
15
|
displayName: "TabList__TabRow",
|
|
16
16
|
componentId: "sc-1ldr0lz-0"
|
|
17
|
-
})(["", " ", " scroll-snap-type:x mandatory;@media (prefers-reduced-motion:no-preference){scroll-behavior:smooth;}&:focus-visible{", "}&:focus-visible button{outline:none;}"], tabsTokens.tabList.base, scrollbarStyling, tabsTokens.tabList.focus.base);
|
|
17
|
+
})(["", " ", " ", " scroll-snap-type:x mandatory;@media (prefers-reduced-motion:no-preference){scroll-behavior:smooth;}&:focus-visible{", "}&:focus-visible button{outline:none;}"], tabsTokens.tabList.base, scrollbarStyling.webkit, scrollbarStyling.firefox, tabsTokens.tabList.focus.base);
|
|
18
18
|
var TabList = /*#__PURE__*/forwardRef(function (_a, ref) {
|
|
19
19
|
var children = _a.children,
|
|
20
20
|
id = _a.id,
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import styled, { css } from 'styled-components';
|
|
2
2
|
import { textInputTokens } from './TextInput.tokens.js';
|
|
3
3
|
import { StatefulInput, Label as Label$1 } from '../../helpers/Input/Input.styles.js';
|
|
4
|
-
import { scrollbarStyling } from '
|
|
4
|
+
import { scrollbarStyling } from '../ScrollableContainer/scrollbarStyling.js';
|
|
5
5
|
import { inputTokens } from '../../helpers/Input/Input.tokens.js';
|
|
6
6
|
|
|
7
7
|
var TextArea = styled(StatefulInput).withConfig({
|
|
8
8
|
displayName: "TextInputstyles__TextArea",
|
|
9
9
|
componentId: "sc-165zflr-0"
|
|
10
|
-
})(["", " ", " ", " &:hover:enabled:read-write ~ label{background-color:", ";}"], scrollbarStyling, textInputTokens.multiline.base, function (_ref) {
|
|
10
|
+
})(["", " ", " ", " ", " &:hover:enabled:read-write ~ label{background-color:", ";}"], scrollbarStyling.webkit, scrollbarStyling.firefox, textInputTokens.multiline.base, function (_ref) {
|
|
11
11
|
var hasLabel = _ref.hasLabel;
|
|
12
12
|
return css(["", ""], textInputTokens.multiline[hasLabel].base);
|
|
13
13
|
}, function (_ref2) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ddsBaseTokens, ddsReferenceTokens } from '@norges-domstoler/dds-design-tokens';
|
|
2
|
-
import { scrollbarWidthNumberPx } from '
|
|
2
|
+
import { scrollbarWidthNumberPx } from '../ScrollableContainer/ScrollableContainer.tokens.js';
|
|
3
3
|
|
|
4
4
|
var Colors = ddsBaseTokens.colors,
|
|
5
5
|
Spacing = ddsBaseTokens.spacing;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { ddsBaseTokens } from '@norges-domstoler/dds-design-tokens';
|
|
2
2
|
|
|
3
3
|
var Border = ddsBaseTokens.border,
|
|
4
|
-
Colors = ddsBaseTokens.colors
|
|
5
|
-
|
|
4
|
+
Colors = ddsBaseTokens.colors,
|
|
5
|
+
spacing = ddsBaseTokens.spacing;
|
|
6
|
+
var outlineOffset = spacing.SizesDdsSpacingLocalX0125;
|
|
6
7
|
var focusVisible = {
|
|
7
8
|
outline: "".concat(Border.BordersDdsBorderFocusBaseStrokeWeight, " ").concat(Border.BordersDdsBorderFocusBaseStroke, " solid"),
|
|
8
9
|
outlineOffset: outlineOffset
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { __rest } from 'tslib';
|
|
2
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
|
+
import { StyledSvg } from '../utils/StyledSvg.js';
|
|
4
|
+
|
|
5
|
+
function CloseSmallIcon(props) {
|
|
6
|
+
var title = props.title,
|
|
7
|
+
rest = __rest(props, ["title"]);
|
|
8
|
+
|
|
9
|
+
return jsxs(StyledSvg, Object.assign({
|
|
10
|
+
width: 24,
|
|
11
|
+
height: 24,
|
|
12
|
+
fill: "currentColor"
|
|
13
|
+
}, rest, {
|
|
14
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
15
|
+
viewBox: "0 0 24 24"
|
|
16
|
+
}, {
|
|
17
|
+
children: [title && jsx("title", {
|
|
18
|
+
children: title
|
|
19
|
+
}), jsx("path", {
|
|
20
|
+
d: "M7.293 8.707l1.414-1.414L12 10.586l3.293-3.293 1.414 1.414L13.414 12l3.293 3.293-1.414 1.414L12 13.414l-3.293 3.293-1.414-1.414L10.586 12 7.293 8.707z"
|
|
21
|
+
})]
|
|
22
|
+
}));
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export { CloseSmallIcon };
|
package/dist/index.d.ts
CHANGED
|
@@ -33,5 +33,6 @@ export * from './components/Tabs';
|
|
|
33
33
|
export * from './components/Tag';
|
|
34
34
|
export * from './components/Chip';
|
|
35
35
|
export * from './components/VisuallyHidden';
|
|
36
|
+
export * from './components/ScrollableContainer';
|
|
36
37
|
export * from './icons/tsx';
|
|
37
38
|
export * from './components/Stepper';
|
package/dist/index.js
CHANGED
|
@@ -59,6 +59,9 @@ export { Tag } from './components/Tag/Tag.js';
|
|
|
59
59
|
export { Chip } from './components/Chip/Chip.js';
|
|
60
60
|
export { ChipGroup } from './components/Chip/ChipGroup.js';
|
|
61
61
|
export { VisuallyHidden } from './components/VisuallyHidden/VisuallyHidden.js';
|
|
62
|
+
export { Scrollbar } from './components/ScrollableContainer/Scrollbar.js';
|
|
63
|
+
export { ScrollableContainer } from './components/ScrollableContainer/ScrollableContainer.js';
|
|
64
|
+
export { scrollbarStyling } from './components/ScrollableContainer/scrollbarStyling.js';
|
|
62
65
|
export { AppsIcon } from './icons/tsx/apps.js';
|
|
63
66
|
export { ArchiveIcon } from './icons/tsx/archive.js';
|
|
64
67
|
export { ArrowDownIcon } from './icons/tsx/arrowDown.js';
|
|
@@ -89,6 +92,7 @@ export { ChevronLeftIcon } from './icons/tsx/chevronLeft.js';
|
|
|
89
92
|
export { ChevronRightIcon } from './icons/tsx/chevronRight.js';
|
|
90
93
|
export { ChevronUpIcon } from './icons/tsx/chevronUp.js';
|
|
91
94
|
export { CloseIcon } from './icons/tsx/close.js';
|
|
95
|
+
export { CloseSmallIcon } from './icons/tsx/closeSmall.js';
|
|
92
96
|
export { CloseCircledIcon } from './icons/tsx/closeCircled.js';
|
|
93
97
|
export { CloudIcon } from './icons/tsx/cloud.js';
|
|
94
98
|
export { CollapseIcon } from './icons/tsx/collapse.js';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@norges-domstoler/dds-components",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.3.0",
|
|
4
4
|
"description": "React components used in Elsa - domstolenes designsystem",
|
|
5
5
|
"author": "Elsa team",
|
|
6
6
|
"license": "MIT",
|
|
@@ -80,7 +80,7 @@
|
|
|
80
80
|
"eslint-plugin-react": "^7.30.1",
|
|
81
81
|
"eslint-plugin-storybook": "^0.6.4",
|
|
82
82
|
"jest": "^28.1.3",
|
|
83
|
-
"jest-environment-jsdom": "^
|
|
83
|
+
"jest-environment-jsdom": "^29.0.1",
|
|
84
84
|
"react": "^18.2.0",
|
|
85
85
|
"react-dom": "^18.2.0",
|
|
86
86
|
"rollup": "^2.78.1",
|
|
@@ -116,8 +116,6 @@
|
|
|
116
116
|
}
|
|
117
117
|
},
|
|
118
118
|
"dependencies": {
|
|
119
|
-
"@emotion/react": "^11.10.0",
|
|
120
|
-
"@emotion/styled": "^11.10.0",
|
|
121
119
|
"@floating-ui/react-dom": "^1.0.0",
|
|
122
120
|
"focus-visible": "^5.2.0",
|
|
123
121
|
"react-select": "^5.4.0",
|