@navikt/ds-react 6.11.0 → 6.13.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/cjs/alert/Alert.d.ts +9 -4
- package/cjs/alert/Alert.js +5 -3
- package/cjs/alert/Alert.js.map +1 -1
- package/cjs/layout/base/BasePrimitive.d.ts +35 -3
- package/cjs/layout/base/BasePrimitive.js +33 -3
- package/cjs/layout/base/BasePrimitive.js.map +1 -1
- package/cjs/layout/base/PrimitiveAsChildProps.d.ts +41 -0
- package/cjs/layout/base/PrimitiveAsChildProps.js +3 -0
- package/cjs/layout/base/PrimitiveAsChildProps.js.map +1 -0
- package/cjs/layout/box/Box.d.ts +5 -32
- package/cjs/layout/box/Box.js +15 -4
- package/cjs/layout/box/Box.js.map +1 -1
- package/cjs/layout/grid/HGrid.d.ts +7 -5
- package/cjs/layout/grid/HGrid.js +7 -2
- package/cjs/layout/grid/HGrid.js.map +1 -1
- package/cjs/layout/stack/HStack.d.ts +2 -1
- package/cjs/layout/stack/HStack.js.map +1 -1
- package/cjs/layout/stack/Stack.d.ts +8 -5
- package/cjs/layout/stack/Stack.js +10 -5
- package/cjs/layout/stack/Stack.js.map +1 -1
- package/cjs/layout/stack/VStack.d.ts +2 -1
- package/cjs/layout/stack/VStack.js.map +1 -1
- package/cjs/layout/utilities/css.js +3 -0
- package/cjs/layout/utilities/css.js.map +1 -1
- package/cjs/modal/Modal.js +3 -2
- package/cjs/modal/Modal.js.map +1 -1
- package/cjs/modal/types.d.ts +5 -0
- package/cjs/toggle-group/parts/useToggleItem.js +1 -1
- package/cjs/toggle-group/parts/useToggleItem.js.map +1 -1
- package/cjs/util/types/AsChildProps.d.ts +1 -0
- package/esm/alert/Alert.d.ts +9 -4
- package/esm/alert/Alert.js +5 -3
- package/esm/alert/Alert.js.map +1 -1
- package/esm/layout/base/BasePrimitive.d.ts +35 -3
- package/esm/layout/base/BasePrimitive.js +32 -2
- package/esm/layout/base/BasePrimitive.js.map +1 -1
- package/esm/layout/base/PrimitiveAsChildProps.d.ts +41 -0
- package/esm/layout/base/PrimitiveAsChildProps.js +2 -0
- package/esm/layout/base/PrimitiveAsChildProps.js.map +1 -0
- package/esm/layout/box/Box.d.ts +5 -32
- package/esm/layout/box/Box.js +15 -4
- package/esm/layout/box/Box.js.map +1 -1
- package/esm/layout/grid/HGrid.d.ts +7 -5
- package/esm/layout/grid/HGrid.js +7 -2
- package/esm/layout/grid/HGrid.js.map +1 -1
- package/esm/layout/stack/HStack.d.ts +2 -1
- package/esm/layout/stack/HStack.js.map +1 -1
- package/esm/layout/stack/Stack.d.ts +8 -5
- package/esm/layout/stack/Stack.js +10 -5
- package/esm/layout/stack/Stack.js.map +1 -1
- package/esm/layout/stack/VStack.d.ts +2 -1
- package/esm/layout/stack/VStack.js.map +1 -1
- package/esm/layout/utilities/css.js +3 -0
- package/esm/layout/utilities/css.js.map +1 -1
- package/esm/modal/Modal.js +3 -2
- package/esm/modal/Modal.js.map +1 -1
- package/esm/modal/types.d.ts +5 -0
- package/esm/toggle-group/parts/useToggleItem.js +1 -1
- package/esm/toggle-group/parts/useToggleItem.js.map +1 -1
- package/esm/util/types/AsChildProps.d.ts +1 -0
- package/package.json +3 -3
- package/src/alert/Alert.tsx +27 -6
- package/src/layout/base/BasePrimitive.tsx +84 -2
- package/src/layout/base/PrimitiveAsChildProps.ts +42 -0
- package/src/layout/box/Box.tsx +64 -81
- package/src/layout/grid/HGrid.tsx +73 -45
- package/src/layout/stack/HStack.tsx +2 -1
- package/src/layout/stack/Stack.tsx +80 -62
- package/src/layout/stack/VStack.tsx +3 -1
- package/src/layout/utilities/css.ts +3 -0
- package/src/modal/Modal.tsx +3 -1
- package/src/modal/types.ts +5 -0
- package/src/toggle-group/parts/useToggleItem.ts +4 -1
- package/src/util/types/AsChildProps.ts +1 -0
- package/cjs/layout/sidemal-test/AvatarPanel.d.ts +0 -4
- package/cjs/layout/sidemal-test/AvatarPanel.js +0 -19
- package/cjs/layout/sidemal-test/AvatarPanel.js.map +0 -1
- package/cjs/layout/sidemal-test/Content.d.ts +0 -2
- package/cjs/layout/sidemal-test/Content.js +0 -67
- package/cjs/layout/sidemal-test/Content.js.map +0 -1
- package/cjs/layout/sidemal-test/Filter.d.ts +0 -2
- package/cjs/layout/sidemal-test/Filter.js +0 -49
- package/cjs/layout/sidemal-test/Filter.js.map +0 -1
- package/cjs/layout/sidemal-test/Header.d.ts +0 -2
- package/cjs/layout/sidemal-test/Header.js +0 -49
- package/cjs/layout/sidemal-test/Header.js.map +0 -1
- package/cjs/layout/sidemal-test/Intro.d.ts +0 -2
- package/cjs/layout/sidemal-test/Intro.js +0 -37
- package/cjs/layout/sidemal-test/Intro.js.map +0 -1
- package/cjs/layout/sidemal-test/Sidebar.d.ts +0 -4
- package/cjs/layout/sidemal-test/Sidebar.js +0 -50
- package/cjs/layout/sidemal-test/Sidebar.js.map +0 -1
- package/cjs/layout/sidemal-test/content-box/ContentBox.d.ts +0 -8
- package/cjs/layout/sidemal-test/content-box/ContentBox.js +0 -66
- package/cjs/layout/sidemal-test/content-box/ContentBox.js.map +0 -1
- package/cjs/layout/sidemal-test/content-box/index.d.ts +0 -1
- package/cjs/layout/sidemal-test/content-box/index.js +0 -9
- package/cjs/layout/sidemal-test/content-box/index.js.map +0 -1
- package/esm/layout/sidemal-test/AvatarPanel.d.ts +0 -4
- package/esm/layout/sidemal-test/AvatarPanel.js +0 -12
- package/esm/layout/sidemal-test/AvatarPanel.js.map +0 -1
- package/esm/layout/sidemal-test/Content.d.ts +0 -2
- package/esm/layout/sidemal-test/Content.js +0 -60
- package/esm/layout/sidemal-test/Content.js.map +0 -1
- package/esm/layout/sidemal-test/Filter.d.ts +0 -2
- package/esm/layout/sidemal-test/Filter.js +0 -22
- package/esm/layout/sidemal-test/Filter.js.map +0 -1
- package/esm/layout/sidemal-test/Header.d.ts +0 -2
- package/esm/layout/sidemal-test/Header.js +0 -42
- package/esm/layout/sidemal-test/Header.js.map +0 -1
- package/esm/layout/sidemal-test/Intro.d.ts +0 -2
- package/esm/layout/sidemal-test/Intro.js +0 -30
- package/esm/layout/sidemal-test/Intro.js.map +0 -1
- package/esm/layout/sidemal-test/Sidebar.d.ts +0 -4
- package/esm/layout/sidemal-test/Sidebar.js +0 -41
- package/esm/layout/sidemal-test/Sidebar.js.map +0 -1
- package/esm/layout/sidemal-test/content-box/ContentBox.d.ts +0 -8
- package/esm/layout/sidemal-test/content-box/ContentBox.js +0 -37
- package/esm/layout/sidemal-test/content-box/ContentBox.js.map +0 -1
- package/esm/layout/sidemal-test/content-box/index.d.ts +0 -1
- package/esm/layout/sidemal-test/content-box/index.js +0 -2
- package/esm/layout/sidemal-test/content-box/index.js.map +0 -1
- package/src/layout/sidemal-test/AvatarPanel.tsx +0 -27
- package/src/layout/sidemal-test/Content.tsx +0 -129
- package/src/layout/sidemal-test/Filter.tsx +0 -46
- package/src/layout/sidemal-test/Header.tsx +0 -96
- package/src/layout/sidemal-test/Intro.tsx +0 -91
- package/src/layout/sidemal-test/Sidebar.tsx +0 -77
- package/src/layout/sidemal-test/content-box/ContentBox.tsx +0 -46
- package/src/layout/sidemal-test/content-box/index.ts +0 -1
- package/src/layout/sidemal-test/styling.css +0 -43
package/esm/modal/Modal.js
CHANGED
|
@@ -74,7 +74,7 @@ const polyfillClassName = "navds-modal--polyfilled";
|
|
|
74
74
|
*/
|
|
75
75
|
export const Modal = forwardRef((_a, ref) => {
|
|
76
76
|
var _b, _c;
|
|
77
|
-
var { header, children, open, onBeforeClose, onCancel, closeOnBackdropClick, width, portal, className, "aria-labelledby": ariaLabelledby, style, onClick, onMouseDown } = _a, rest = __rest(_a, ["header", "children", "open", "onBeforeClose", "onCancel", "closeOnBackdropClick", "width", "portal", "className", "aria-labelledby", "style", "onClick", "onMouseDown"]);
|
|
77
|
+
var { header, children, open, onBeforeClose, onCancel, closeOnBackdropClick, width, placement, portal, className, "aria-labelledby": ariaLabelledby, style, onClick, onMouseDown } = _a, rest = __rest(_a, ["header", "children", "open", "onBeforeClose", "onCancel", "closeOnBackdropClick", "width", "placement", "portal", "className", "aria-labelledby", "style", "onClick", "onMouseDown"]);
|
|
78
78
|
const modalRef = useRef(null);
|
|
79
79
|
const mergedRef = useMergeRefs(modalRef, ref);
|
|
80
80
|
const ariaLabelId = useId();
|
|
@@ -117,9 +117,10 @@ export const Modal = forwardRef((_a, ref) => {
|
|
|
117
117
|
useBodyScrollLock(modalRef, portalNode, isNested);
|
|
118
118
|
const isWidthPreset = typeof width === "string" && ["small", "medium"].includes(width);
|
|
119
119
|
const mergedClassName = cl("navds-modal", className, {
|
|
120
|
-
polyfillClassName: needPolyfill,
|
|
120
|
+
[polyfillClassName]: needPolyfill,
|
|
121
121
|
"navds-modal--autowidth": !width,
|
|
122
122
|
[`navds-modal--${width}`]: isWidthPreset,
|
|
123
|
+
"navds-modal--top": placement === "top" && !needPolyfill,
|
|
123
124
|
});
|
|
124
125
|
const mergedStyle = Object.assign(Object.assign({}, style), (!isWidthPreset ? { width } : {}));
|
|
125
126
|
const mouseClickStart = useRef({
|
package/esm/modal/Modal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Modal.js","sourceRoot":"","sources":["../../src/modal/Modal.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,MAAM,MAAM,CAAC;AACtB,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,EAEL,eAAe,EACf,eAAe,EACf,iBAAiB,GAClB,MAAM,cAAc,CAAC;AACtB,OAAO,cAAc,EAAE,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjE,MAAM,iBAAiB,GAAG,yBAAyB,CAAC;AAWpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,UAAU,CAC7B,CACE,
|
|
1
|
+
{"version":3,"file":"Modal.js","sourceRoot":"","sources":["../../src/modal/Modal.tsx"],"names":[],"mappings":"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"}
|
package/esm/modal/types.d.ts
CHANGED
|
@@ -60,6 +60,11 @@ interface ModalPropsBase extends React.DialogHTMLAttributes<HTMLDialogElement> {
|
|
|
60
60
|
* @default fit-content (up to 700px)
|
|
61
61
|
* */
|
|
62
62
|
width?: "medium" | "small" | number | `${number}${string}`;
|
|
63
|
+
/**
|
|
64
|
+
* Where to place the modal in the viewport. (Will always be centered on mobile and old browsers.)
|
|
65
|
+
* @default "center"
|
|
66
|
+
*/
|
|
67
|
+
placement?: "top" | "center";
|
|
63
68
|
/**
|
|
64
69
|
* Lets you render the modal into a different part of the DOM.
|
|
65
70
|
* Will use `rootElement` from `Provider` if defined, otherwise `document.body`.
|
|
@@ -64,7 +64,7 @@ export function useToggleItem({ value, disabled = false, onFocus: _onFocus, onCl
|
|
|
64
64
|
ref: mergeRefs([register, ref]),
|
|
65
65
|
isSelected,
|
|
66
66
|
isFocused: focusedValue === value,
|
|
67
|
-
onClick: composeEventHandlers(onClick, () => setSelectedValue(value)),
|
|
67
|
+
onClick: composeEventHandlers(onClick, () => selectedValue !== value && setSelectedValue(value)),
|
|
68
68
|
onFocus: disabled ? undefined : composeEventHandlers(_onFocus, onFocus),
|
|
69
69
|
onKeyDown: composeEventHandlers(_onKeyDown, onKeyDown),
|
|
70
70
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useToggleItem.js","sourceRoot":"","sources":["../../../src/toggle-group/parts/useToggleItem.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"useToggleItem.js","sourceRoot":"","sources":["../../../src/toggle-group/parts/useToggleItem.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@navikt/ds-react",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.13.0",
|
|
4
4
|
"description": "React components from the Norwegian Labour and Welfare Administration.",
|
|
5
5
|
"author": "Aksel, a team part of the Norwegian Labour and Welfare Administration.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -594,8 +594,8 @@
|
|
|
594
594
|
"dependencies": {
|
|
595
595
|
"@floating-ui/react": "0.25.4",
|
|
596
596
|
"@floating-ui/react-dom": "^2.0.9",
|
|
597
|
-
"@navikt/aksel-icons": "^6.
|
|
598
|
-
"@navikt/ds-tokens": "^6.
|
|
597
|
+
"@navikt/aksel-icons": "^6.13.0",
|
|
598
|
+
"@navikt/ds-tokens": "^6.13.0",
|
|
599
599
|
"clsx": "^2.1.0",
|
|
600
600
|
"date-fns": "^3.0.0",
|
|
601
601
|
"react-day-picker": "8.10.0"
|
package/src/alert/Alert.tsx
CHANGED
|
@@ -16,7 +16,7 @@ export interface AlertProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
16
16
|
*/
|
|
17
17
|
children: React.ReactNode;
|
|
18
18
|
/**
|
|
19
|
-
* Changes colors and icon
|
|
19
|
+
* Level of severity. Changes colors and icon.
|
|
20
20
|
*/
|
|
21
21
|
variant: "error" | "warning" | "info" | "success";
|
|
22
22
|
/**
|
|
@@ -30,15 +30,20 @@ export interface AlertProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
30
30
|
*/
|
|
31
31
|
fullWidth?: boolean;
|
|
32
32
|
/**
|
|
33
|
-
*
|
|
33
|
+
* Sets max-width on the content to 43.5rem.
|
|
34
|
+
* @default true
|
|
35
|
+
*/
|
|
36
|
+
contentMaxWidth?: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Removes background, border and padding.
|
|
34
39
|
* @default false
|
|
35
40
|
*/
|
|
36
41
|
inline?: boolean;
|
|
37
42
|
/**
|
|
38
|
-
*
|
|
43
|
+
* Adds a close-button (X).
|
|
39
44
|
*
|
|
40
45
|
* **Requires onClose to be set**.
|
|
41
|
-
* @default
|
|
46
|
+
* @default false
|
|
42
47
|
*/
|
|
43
48
|
closeButton?: boolean;
|
|
44
49
|
/**
|
|
@@ -85,6 +90,7 @@ export const Alert = forwardRef<HTMLDivElement, AlertProps>(
|
|
|
85
90
|
variant,
|
|
86
91
|
size = "medium",
|
|
87
92
|
fullWidth = false,
|
|
93
|
+
contentMaxWidth = true,
|
|
88
94
|
inline = false,
|
|
89
95
|
closeButton = false,
|
|
90
96
|
onClose,
|
|
@@ -109,7 +115,14 @@ export const Alert = forwardRef<HTMLDivElement, AlertProps>(
|
|
|
109
115
|
)}
|
|
110
116
|
>
|
|
111
117
|
<Icon variant={variant} className="navds-alert__icon" />
|
|
112
|
-
<BodyLong
|
|
118
|
+
<BodyLong
|
|
119
|
+
as="div"
|
|
120
|
+
size={size}
|
|
121
|
+
className={cl(
|
|
122
|
+
"navds-alert__wrapper",
|
|
123
|
+
contentMaxWidth && "navds-alert__wrapper--maxwidth",
|
|
124
|
+
)}
|
|
125
|
+
>
|
|
113
126
|
{children}
|
|
114
127
|
</BodyLong>
|
|
115
128
|
{closeButton && !inline && (
|
|
@@ -120,7 +133,15 @@ export const Alert = forwardRef<HTMLDivElement, AlertProps>(
|
|
|
120
133
|
variant="tertiary-neutral"
|
|
121
134
|
onClick={onClose}
|
|
122
135
|
type="button"
|
|
123
|
-
icon={
|
|
136
|
+
icon={
|
|
137
|
+
<XMarkIcon
|
|
138
|
+
title={
|
|
139
|
+
["error", "warning"].includes(variant)
|
|
140
|
+
? "Lukk varsel"
|
|
141
|
+
: "Lukk melding"
|
|
142
|
+
}
|
|
143
|
+
/>
|
|
144
|
+
}
|
|
124
145
|
/>
|
|
125
146
|
</div>
|
|
126
147
|
)}
|
|
@@ -4,8 +4,7 @@ import { Slot } from "../../slot/Slot";
|
|
|
4
4
|
import { getResponsiveProps, getResponsiveValue } from "../utilities/css";
|
|
5
5
|
import { ResponsiveProp, SpacingScale } from "../utilities/types";
|
|
6
6
|
|
|
7
|
-
export
|
|
8
|
-
children: React.ReactElement;
|
|
7
|
+
export type PrimitiveProps = {
|
|
9
8
|
className?: string;
|
|
10
9
|
/**
|
|
11
10
|
* Padding around children.
|
|
@@ -40,6 +39,47 @@ export interface BasePrimitiveProps {
|
|
|
40
39
|
paddingBlock?: ResponsiveProp<
|
|
41
40
|
SpacingScale | `${SpacingScale} ${SpacingScale}`
|
|
42
41
|
>;
|
|
42
|
+
/**
|
|
43
|
+
* Margin around element.
|
|
44
|
+
* Accepts a [spacing token](https://aksel.nav.no/grunnleggende/styling/design-tokens#0cc9fb32f213)
|
|
45
|
+
* or an object of spacing tokens for different breakpoints.
|
|
46
|
+
* @example
|
|
47
|
+
* margin='4'
|
|
48
|
+
* margin={{xs: '2', sm: '3', md: '4', lg: '5', xl: '6'}}
|
|
49
|
+
*/
|
|
50
|
+
margin?: ResponsiveProp<SpacingScale>;
|
|
51
|
+
/**
|
|
52
|
+
* Horizontal margin around element.
|
|
53
|
+
* Accepts a [spacing token](https://aksel.nav.no/grunnleggende/styling/design-tokens#0cc9fb32f213)
|
|
54
|
+
* or an object of spacing tokens for different breakpoints.
|
|
55
|
+
* @example
|
|
56
|
+
* marginInline='4'
|
|
57
|
+
* marginInline='4 5'
|
|
58
|
+
* marginInline={{xs: '0 32', sm: '3', md: '4 5', lg: '5', xl: '6'}}
|
|
59
|
+
*/
|
|
60
|
+
marginInline?: ResponsiveProp<
|
|
61
|
+
| SpacingScale
|
|
62
|
+
| `${SpacingScale} ${SpacingScale}`
|
|
63
|
+
| "auto"
|
|
64
|
+
| `auto ${SpacingScale}`
|
|
65
|
+
| `${SpacingScale} auto`
|
|
66
|
+
>;
|
|
67
|
+
/**
|
|
68
|
+
* Vertical margin around element.
|
|
69
|
+
* Accepts a [spacing token](https://aksel.nav.no/grunnleggende/styling/design-tokens#0cc9fb32f213)
|
|
70
|
+
* or an object of spacing tokens for different breakpoints.
|
|
71
|
+
* @example
|
|
72
|
+
* marginBlock='4'
|
|
73
|
+
* marginBlock='4 5'
|
|
74
|
+
* marginBlock={{xs: '2', sm: '3', md: '4', lg: '5', xl: '6'}}
|
|
75
|
+
*/
|
|
76
|
+
marginBlock?: ResponsiveProp<
|
|
77
|
+
| SpacingScale
|
|
78
|
+
| `${SpacingScale} ${SpacingScale}`
|
|
79
|
+
| "auto"
|
|
80
|
+
| `auto ${SpacingScale}`
|
|
81
|
+
| `${SpacingScale} auto`
|
|
82
|
+
>;
|
|
43
83
|
/**
|
|
44
84
|
* CSS `width`
|
|
45
85
|
*/
|
|
@@ -140,6 +180,38 @@ export interface BasePrimitiveProps {
|
|
|
140
180
|
* CSS `flex-grow`
|
|
141
181
|
*/
|
|
142
182
|
flexGrow?: ResponsiveProp<string>;
|
|
183
|
+
};
|
|
184
|
+
|
|
185
|
+
export const PRIMITIVE_PROPS: (keyof PrimitiveProps)[] = [
|
|
186
|
+
"className",
|
|
187
|
+
"padding",
|
|
188
|
+
"paddingInline",
|
|
189
|
+
"paddingBlock",
|
|
190
|
+
"margin",
|
|
191
|
+
"marginInline",
|
|
192
|
+
"marginBlock",
|
|
193
|
+
"width",
|
|
194
|
+
"minWidth",
|
|
195
|
+
"maxWidth",
|
|
196
|
+
"height",
|
|
197
|
+
"minHeight",
|
|
198
|
+
"maxHeight",
|
|
199
|
+
"position",
|
|
200
|
+
"inset",
|
|
201
|
+
"top",
|
|
202
|
+
"right",
|
|
203
|
+
"bottom",
|
|
204
|
+
"left",
|
|
205
|
+
"overflow",
|
|
206
|
+
"overflowX",
|
|
207
|
+
"overflowY",
|
|
208
|
+
"flexBasis",
|
|
209
|
+
"flexGrow",
|
|
210
|
+
"flexShrink",
|
|
211
|
+
];
|
|
212
|
+
|
|
213
|
+
interface BasePrimitiveProps extends PrimitiveProps {
|
|
214
|
+
children: React.ReactElement;
|
|
143
215
|
}
|
|
144
216
|
|
|
145
217
|
export const BasePrimitive = ({
|
|
@@ -148,6 +220,9 @@ export const BasePrimitive = ({
|
|
|
148
220
|
padding,
|
|
149
221
|
paddingInline,
|
|
150
222
|
paddingBlock,
|
|
223
|
+
margin,
|
|
224
|
+
marginInline,
|
|
225
|
+
marginBlock,
|
|
151
226
|
width,
|
|
152
227
|
minWidth,
|
|
153
228
|
maxWidth,
|
|
@@ -172,6 +247,10 @@ export const BasePrimitive = ({
|
|
|
172
247
|
...getResponsiveProps("r", "p", "spacing", padding),
|
|
173
248
|
...getResponsiveProps("r", "pi", "spacing", paddingInline),
|
|
174
249
|
...getResponsiveProps("r", "pb", "spacing", paddingBlock),
|
|
250
|
+
/* Margin */
|
|
251
|
+
...getResponsiveProps("r", "m", "spacing", margin),
|
|
252
|
+
...getResponsiveProps("r", "mi", "spacing", marginInline),
|
|
253
|
+
...getResponsiveProps("r", "mb", "spacing", marginBlock),
|
|
175
254
|
/* Width & height */
|
|
176
255
|
...getResponsiveValue("r", "w", width),
|
|
177
256
|
...getResponsiveValue("r", "minw", minWidth),
|
|
@@ -203,6 +282,9 @@ export const BasePrimitive = ({
|
|
|
203
282
|
"navds-r-p": padding,
|
|
204
283
|
"navds-r-pi": paddingInline,
|
|
205
284
|
"navds-r-pb": paddingBlock,
|
|
285
|
+
"navds-r-m": margin,
|
|
286
|
+
"navds-r-mi": marginInline,
|
|
287
|
+
"navds-r-mb": marginBlock,
|
|
206
288
|
"navds-r-w": width,
|
|
207
289
|
"navds-r-minw": minWidth,
|
|
208
290
|
"navds-r-maxw": maxWidth,
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
export type PrimitiveAsChildProps =
|
|
2
|
+
| {
|
|
3
|
+
children: React.ReactElement | false | null;
|
|
4
|
+
/**
|
|
5
|
+
* Renders the component and its child as a single element,
|
|
6
|
+
* merging the props of the component with the props of the child.
|
|
7
|
+
* @example
|
|
8
|
+
* ```tsx
|
|
9
|
+
* <Component asChild data-prop>
|
|
10
|
+
* <ChildComponent data-child />
|
|
11
|
+
* </Component>
|
|
12
|
+
*
|
|
13
|
+
* // Renders
|
|
14
|
+
* <div data-prop data-child />
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
asChild: true;
|
|
18
|
+
/**
|
|
19
|
+
* Implements [OverridableComponent](https://aksel.nav.no/grunnleggende/kode/overridablecomponent)
|
|
20
|
+
*
|
|
21
|
+
* When using asChild, the prop is not allowed as it would have no effect.
|
|
22
|
+
*/
|
|
23
|
+
as?: never;
|
|
24
|
+
}
|
|
25
|
+
| {
|
|
26
|
+
children?: React.ReactNode;
|
|
27
|
+
/**
|
|
28
|
+
* Renders the component and its child as a single element,
|
|
29
|
+
* merging the props of the component with the props of the child.
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```tsx
|
|
33
|
+
* <Component asChild data-prop>
|
|
34
|
+
* <ChildComponent data-child />
|
|
35
|
+
* </Component>
|
|
36
|
+
*
|
|
37
|
+
* // Renders
|
|
38
|
+
* <div data-prop data-child />
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
asChild?: false;
|
|
42
|
+
};
|
package/src/layout/box/Box.tsx
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import cl from "clsx";
|
|
2
2
|
import React, { forwardRef } from "react";
|
|
3
|
+
import { Slot } from "../../slot/Slot";
|
|
4
|
+
import { omit } from "../../util";
|
|
3
5
|
import { OverridableComponent } from "../../util/types";
|
|
6
|
+
import BasePrimitive, {
|
|
7
|
+
PRIMITIVE_PROPS,
|
|
8
|
+
PrimitiveProps,
|
|
9
|
+
} from "../base/BasePrimitive";
|
|
10
|
+
import { PrimitiveAsChildProps } from "../base/PrimitiveAsChildProps";
|
|
4
11
|
import { getResponsiveProps } from "../utilities/css";
|
|
5
12
|
import {
|
|
6
13
|
BackgroundColorToken,
|
|
@@ -9,77 +16,45 @@ import {
|
|
|
9
16
|
ResponsiveProp,
|
|
10
17
|
ShadowToken,
|
|
11
18
|
SpaceDelimitedAttribute,
|
|
12
|
-
SpacingScale,
|
|
13
19
|
SurfaceColorToken,
|
|
14
20
|
} from "../utilities/types";
|
|
15
21
|
|
|
16
|
-
export
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
padding?: ResponsiveProp<SpacingScale>;
|
|
53
|
-
/**
|
|
54
|
-
* Horizontal padding around children.
|
|
55
|
-
* Accepts a [spacing token](https://aksel.nav.no/grunnleggende/styling/design-tokens#0cc9fb32f213)
|
|
56
|
-
* or an object of spacing tokens for different breakpoints.
|
|
57
|
-
* @example
|
|
58
|
-
* paddingInline='4'
|
|
59
|
-
* paddingInline='4 5'
|
|
60
|
-
* paddingInline={{xs: '0 32', sm: '3', md: '4 5', lg: '5', xl: '6'}}
|
|
61
|
-
*/
|
|
62
|
-
paddingInline?: ResponsiveProp<
|
|
63
|
-
SpacingScale | `${SpacingScale} ${SpacingScale}`
|
|
64
|
-
>;
|
|
65
|
-
/**
|
|
66
|
-
* Vertical padding around children.
|
|
67
|
-
* Accepts a [spacing token](https://aksel.nav.no/grunnleggende/styling/design-tokens#0cc9fb32f213)
|
|
68
|
-
* or an object of spacing tokens for different breakpoints.
|
|
69
|
-
* @example
|
|
70
|
-
* paddingBlock='4'
|
|
71
|
-
* paddingBlock='4 5'
|
|
72
|
-
* paddingBlock={{xs: '2', sm: '3', md: '4', lg: '5', xl: '6'}}
|
|
73
|
-
*/
|
|
74
|
-
paddingBlock?: ResponsiveProp<
|
|
75
|
-
SpacingScale | `${SpacingScale} ${SpacingScale}`
|
|
76
|
-
>;
|
|
77
|
-
/** Shadow on box. Accepts a shadow token.
|
|
78
|
-
* @example
|
|
79
|
-
* shadow='small'
|
|
80
|
-
*/
|
|
81
|
-
shadow?: ShadowToken;
|
|
82
|
-
}
|
|
22
|
+
export type BoxProps = PrimitiveProps &
|
|
23
|
+
PrimitiveAsChildProps &
|
|
24
|
+
React.HTMLAttributes<HTMLDivElement> & {
|
|
25
|
+
/**
|
|
26
|
+
* CSS `background-color` property.
|
|
27
|
+
* Accepts a [background/surface color token](https://aksel.nav.no/grunnleggende/styling/design-tokens#afff774dad80).
|
|
28
|
+
*/
|
|
29
|
+
background?: BackgroundColorToken | SurfaceColorToken;
|
|
30
|
+
/**
|
|
31
|
+
* CSS `border-color` property.
|
|
32
|
+
* Accepts a [border color token](https://aksel.nav.no/grunnleggende/styling/design-tokens#adb1767e2f87).
|
|
33
|
+
*/
|
|
34
|
+
borderColor?: BorderColorToken;
|
|
35
|
+
/**
|
|
36
|
+
* CSS `border-radius` property.
|
|
37
|
+
* Accepts a [radius token](https://aksel.nav.no/grunnleggende/styling/design-tokens#6d79c5605d31)
|
|
38
|
+
* or an object of radius tokens for different breakpoints.
|
|
39
|
+
* @example
|
|
40
|
+
* borderRadius='full'
|
|
41
|
+
* borderRadius='0 full large small'
|
|
42
|
+
* borderRadius={{xs: 'small large', sm: '0', md: 'large', lg: 'full'}}
|
|
43
|
+
*/
|
|
44
|
+
borderRadius?: ResponsiveProp<SpaceDelimitedAttribute<BorderRadiiToken>>;
|
|
45
|
+
/**
|
|
46
|
+
* CSS `border-width` property. If this is not set there will be no border.
|
|
47
|
+
* @example
|
|
48
|
+
* borderWidth='2'
|
|
49
|
+
* borderWidth='1 2 3 4'
|
|
50
|
+
*/
|
|
51
|
+
borderWidth?: SpaceDelimitedAttribute<"0" | "1" | "2" | "3" | "4" | "5">;
|
|
52
|
+
/** Shadow on box. Accepts a shadow token.
|
|
53
|
+
* @example
|
|
54
|
+
* shadow='small'
|
|
55
|
+
*/
|
|
56
|
+
shadow?: ShadowToken;
|
|
57
|
+
};
|
|
83
58
|
|
|
84
59
|
/**
|
|
85
60
|
* Foundational Layout-primitive for generic encapsulation & styling.
|
|
@@ -111,17 +86,16 @@ export interface BoxProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
111
86
|
export const Box: OverridableComponent<BoxProps, HTMLDivElement> = forwardRef(
|
|
112
87
|
(
|
|
113
88
|
{
|
|
89
|
+
children,
|
|
90
|
+
className,
|
|
114
91
|
as: Component = "div",
|
|
115
92
|
background,
|
|
116
93
|
borderColor,
|
|
117
94
|
borderWidth,
|
|
118
95
|
borderRadius,
|
|
119
|
-
className,
|
|
120
|
-
padding,
|
|
121
|
-
paddingInline,
|
|
122
|
-
paddingBlock,
|
|
123
96
|
shadow,
|
|
124
97
|
style: _style,
|
|
98
|
+
asChild,
|
|
125
99
|
...rest
|
|
126
100
|
},
|
|
127
101
|
ref,
|
|
@@ -149,18 +123,27 @@ export const Box: OverridableComponent<BoxProps, HTMLDivElement> = forwardRef(
|
|
|
149
123
|
false,
|
|
150
124
|
["0"],
|
|
151
125
|
),
|
|
152
|
-
...getResponsiveProps("box", "padding", "spacing", padding),
|
|
153
|
-
...getResponsiveProps("box", "padding-inline", "spacing", paddingInline),
|
|
154
|
-
...getResponsiveProps("box", "padding-block", "spacing", paddingBlock),
|
|
155
126
|
};
|
|
156
127
|
|
|
128
|
+
const Comp = asChild ? Slot : Component;
|
|
129
|
+
|
|
157
130
|
return (
|
|
158
|
-
<
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
131
|
+
<BasePrimitive {...rest}>
|
|
132
|
+
<Comp
|
|
133
|
+
{...omit(rest, PRIMITIVE_PROPS)}
|
|
134
|
+
ref={ref}
|
|
135
|
+
style={style}
|
|
136
|
+
className={cl("navds-box", className, {
|
|
137
|
+
"navds-box-bg": background,
|
|
138
|
+
"navds-box-border-color": borderColor,
|
|
139
|
+
"navds-box-border-width": borderWidth,
|
|
140
|
+
"navds-box-border-radius": borderRadius,
|
|
141
|
+
"navds-box-shadow": shadow,
|
|
142
|
+
})}
|
|
143
|
+
>
|
|
144
|
+
{children}
|
|
145
|
+
</Comp>
|
|
146
|
+
</BasePrimitive>
|
|
164
147
|
);
|
|
165
148
|
},
|
|
166
149
|
);
|