@navikt/ds-react 4.7.3 → 4.8.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/_docs.json +374 -70
- package/cjs/dropdown/Menu/GroupedList/index.js +4 -4
- package/cjs/index.js +1 -0
- package/cjs/layout/stack/HStack.js +51 -0
- package/cjs/layout/stack/Spacer.js +21 -0
- package/cjs/layout/stack/Stack.js +51 -0
- package/cjs/layout/stack/VStack.js +51 -0
- package/cjs/layout/stack/index.js +9 -0
- package/cjs/layout/stack/package.json +6 -0
- package/cjs/layout/utilities/css.js +17 -0
- package/esm/dropdown/Menu/GroupedList/{Heading.js → GroupedHeading.js} +1 -1
- package/esm/dropdown/Menu/GroupedList/GroupedHeading.js.map +1 -0
- package/esm/dropdown/Menu/GroupedList/{Item.js → GroupedItem.js} +1 -1
- package/esm/dropdown/Menu/GroupedList/GroupedItem.js.map +1 -0
- package/esm/dropdown/Menu/GroupedList/index.d.ts +2 -2
- package/esm/dropdown/Menu/GroupedList/index.js +2 -2
- package/esm/dropdown/Menu/GroupedList/index.js.map +1 -1
- package/esm/form/TextField.d.ts +1 -1
- package/esm/index.d.ts +1 -0
- package/esm/index.js +1 -0
- package/esm/index.js.map +1 -1
- package/esm/layout/stack/HStack.d.ts +24 -0
- package/esm/layout/stack/HStack.js +26 -0
- package/esm/layout/stack/HStack.js.map +1 -0
- package/esm/layout/stack/Spacer.d.ts +14 -0
- package/esm/layout/stack/Spacer.js +15 -0
- package/esm/layout/stack/Spacer.js.map +1 -0
- package/esm/layout/stack/Stack.d.ts +26 -0
- package/esm/layout/stack/Stack.js +23 -0
- package/esm/layout/stack/Stack.js.map +1 -0
- package/esm/layout/stack/VStack.d.ts +24 -0
- package/esm/layout/stack/VStack.js +26 -0
- package/esm/layout/stack/VStack.js.map +1 -0
- package/esm/layout/stack/index.d.ts +3 -0
- package/esm/layout/stack/index.js +4 -0
- package/esm/layout/stack/index.js.map +1 -0
- package/esm/layout/utilities/css.d.ts +10 -0
- package/esm/layout/utilities/css.js +14 -0
- package/esm/layout/utilities/css.js.map +1 -0
- package/package.json +2 -2
- package/src/dropdown/Menu/GroupedList/index.tsx +2 -2
- package/src/form/TextField.tsx +1 -1
- package/src/index.ts +1 -0
- package/src/layout/stack/HStack.tsx +30 -0
- package/src/layout/stack/Spacer.tsx +15 -0
- package/src/layout/stack/Stack.tsx +76 -0
- package/src/layout/stack/VStack.tsx +30 -0
- package/src/layout/stack/index.ts +3 -0
- package/src/layout/stack/stack.stories.tsx +161 -0
- package/src/layout/utilities/css.ts +56 -0
- package/esm/dropdown/Menu/GroupedList/Heading.js.map +0 -1
- package/esm/dropdown/Menu/GroupedList/Item.js.map +0 -1
- /package/cjs/dropdown/Menu/GroupedList/{Heading.js → GroupedHeading.js} +0 -0
- /package/cjs/dropdown/Menu/GroupedList/{Item.js → GroupedItem.js} +0 -0
- /package/esm/dropdown/Menu/GroupedList/{Heading.d.ts → GroupedHeading.d.ts} +0 -0
- /package/esm/dropdown/Menu/GroupedList/{Item.d.ts → GroupedItem.d.ts} +0 -0
- /package/src/dropdown/Menu/GroupedList/{Heading.tsx → GroupedHeading.tsx} +0 -0
- /package/src/dropdown/Menu/GroupedList/{Item.tsx → GroupedItem.tsx} +0 -0
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { Meta } from "@storybook/react";
|
|
3
|
+
import { HStack, VStack, Spacer } from ".";
|
|
4
|
+
|
|
5
|
+
export default {
|
|
6
|
+
title: "ds-react/Stack",
|
|
7
|
+
component: HStack,
|
|
8
|
+
} satisfies Meta<typeof HStack>;
|
|
9
|
+
|
|
10
|
+
export const Horizontal = {
|
|
11
|
+
render: () => (
|
|
12
|
+
<HStack gap="4">
|
|
13
|
+
<Placeholders count={4} />
|
|
14
|
+
</HStack>
|
|
15
|
+
),
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export const Spacing = {
|
|
19
|
+
render: () => (
|
|
20
|
+
<div style={{ height: "80vh", display: "flex" }}>
|
|
21
|
+
<VStack gap="8">
|
|
22
|
+
<Spacer />
|
|
23
|
+
<HStack gap="4">
|
|
24
|
+
<Placeholders count={1} />
|
|
25
|
+
<Spacer />
|
|
26
|
+
<Placeholders count={1} />
|
|
27
|
+
</HStack>
|
|
28
|
+
<HStack gap="4">
|
|
29
|
+
<Placeholders count={1} />
|
|
30
|
+
<Placeholders count={1} />
|
|
31
|
+
</HStack>
|
|
32
|
+
<HStack gap="4">
|
|
33
|
+
<Placeholders count={2} />
|
|
34
|
+
</HStack>
|
|
35
|
+
</VStack>
|
|
36
|
+
</div>
|
|
37
|
+
),
|
|
38
|
+
parameters: {
|
|
39
|
+
layout: "fullscreen",
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
export const Vertical = {
|
|
44
|
+
render: () => (
|
|
45
|
+
<VStack gap="4">
|
|
46
|
+
<Placeholders count={4} />
|
|
47
|
+
</VStack>
|
|
48
|
+
),
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
export const VerticalDemo = {
|
|
52
|
+
render: () => (
|
|
53
|
+
<VStack gap="2">
|
|
54
|
+
<VStack>
|
|
55
|
+
<Placeholders count={4} />
|
|
56
|
+
</VStack>
|
|
57
|
+
<Placeholders count={4} />
|
|
58
|
+
<VStack>
|
|
59
|
+
<Placeholders count={4} />
|
|
60
|
+
</VStack>
|
|
61
|
+
</VStack>
|
|
62
|
+
),
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
export const VerticalAlign = {
|
|
66
|
+
render: () => (
|
|
67
|
+
<VStack gap="4">
|
|
68
|
+
<VStack align="start">
|
|
69
|
+
<Placeholders count={2} />
|
|
70
|
+
</VStack>
|
|
71
|
+
<VStack align="center">
|
|
72
|
+
<Placeholders count={2} />
|
|
73
|
+
</VStack>
|
|
74
|
+
<VStack align="end">
|
|
75
|
+
<Placeholders count={2} />
|
|
76
|
+
</VStack>
|
|
77
|
+
</VStack>
|
|
78
|
+
),
|
|
79
|
+
parameters: {
|
|
80
|
+
layout: "fullscreen",
|
|
81
|
+
},
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
export const OverrideComponent = {
|
|
85
|
+
render: () => (
|
|
86
|
+
<VStack gap="4" as="form" onSubmit={(e) => e.preventDefault()}>
|
|
87
|
+
<Placeholders count={4} />
|
|
88
|
+
</VStack>
|
|
89
|
+
),
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
export const Responsive = {
|
|
93
|
+
render: () => (
|
|
94
|
+
<VStack gap={{ xs: "1", sm: "3", md: "6", lg: "10", xl: "16" }}>
|
|
95
|
+
<Placeholders count={4} />
|
|
96
|
+
</VStack>
|
|
97
|
+
),
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
export const Nested = {
|
|
101
|
+
render: () => (
|
|
102
|
+
<VStack gap="16">
|
|
103
|
+
<Placeholders count={2}>
|
|
104
|
+
<VStack gap="4">
|
|
105
|
+
<Placeholders count={2} color="gray" />
|
|
106
|
+
</VStack>
|
|
107
|
+
</Placeholders>
|
|
108
|
+
</VStack>
|
|
109
|
+
),
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
export const DividerDemo = {
|
|
113
|
+
render: () => (
|
|
114
|
+
<div style={{ height: "80vh", width: "40rem" }}>
|
|
115
|
+
<VStack gap={{ xs: "2", md: "6", lg: "12" }}>
|
|
116
|
+
<HStack gap={{ xs: "2", md: "6", lg: "12" }}>
|
|
117
|
+
<Placeholders count={1} />
|
|
118
|
+
<Spacer />
|
|
119
|
+
<Placeholders count={1} />
|
|
120
|
+
</HStack>
|
|
121
|
+
<hr
|
|
122
|
+
style={{
|
|
123
|
+
border: "none",
|
|
124
|
+
borderBottom: "1px solid var(--a-border-divider)",
|
|
125
|
+
margin: 0,
|
|
126
|
+
}}
|
|
127
|
+
/>
|
|
128
|
+
<HStack gap={{ xs: "2", md: "6", lg: "12" }}>
|
|
129
|
+
<Placeholders count={2} />
|
|
130
|
+
</HStack>
|
|
131
|
+
</VStack>
|
|
132
|
+
</div>
|
|
133
|
+
),
|
|
134
|
+
};
|
|
135
|
+
|
|
136
|
+
function Placeholders({
|
|
137
|
+
count,
|
|
138
|
+
children,
|
|
139
|
+
color,
|
|
140
|
+
}: {
|
|
141
|
+
count: number;
|
|
142
|
+
children?: React.ReactNode;
|
|
143
|
+
color?: string;
|
|
144
|
+
}) {
|
|
145
|
+
return (
|
|
146
|
+
<>
|
|
147
|
+
{Array.from({ length: count }, (_, i) => (
|
|
148
|
+
<div
|
|
149
|
+
key={i}
|
|
150
|
+
style={{
|
|
151
|
+
backgroundColor: color ?? "var(--a-purple-200)",
|
|
152
|
+
height: children ? "" : "3rem",
|
|
153
|
+
width: children ? "" : "3rem",
|
|
154
|
+
}}
|
|
155
|
+
>
|
|
156
|
+
{children}
|
|
157
|
+
</div>
|
|
158
|
+
))}
|
|
159
|
+
</>
|
|
160
|
+
);
|
|
161
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
export type BreakpointsAlias = "xs" | "sm" | "md" | "lg" | "xl";
|
|
2
|
+
export type SpacingScale =
|
|
3
|
+
| "0"
|
|
4
|
+
| "05"
|
|
5
|
+
| "1"
|
|
6
|
+
| "2"
|
|
7
|
+
| "3"
|
|
8
|
+
| "4"
|
|
9
|
+
| "5"
|
|
10
|
+
| "6"
|
|
11
|
+
| "7"
|
|
12
|
+
| "8"
|
|
13
|
+
| "9"
|
|
14
|
+
| "10"
|
|
15
|
+
| "11"
|
|
16
|
+
| "12"
|
|
17
|
+
| "14"
|
|
18
|
+
| "16"
|
|
19
|
+
| "18"
|
|
20
|
+
| "20"
|
|
21
|
+
| "24"
|
|
22
|
+
| "32";
|
|
23
|
+
|
|
24
|
+
export type ResponsiveProp<T> =
|
|
25
|
+
| T
|
|
26
|
+
| {
|
|
27
|
+
// eslint-disable-next-line no-unused-vars
|
|
28
|
+
[Breakpoint in BreakpointsAlias]?: T;
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
export function getResponsiveProps(
|
|
32
|
+
componentName: string,
|
|
33
|
+
componentProp: string,
|
|
34
|
+
tokenSubgroup: string,
|
|
35
|
+
responsiveProp?:
|
|
36
|
+
| string
|
|
37
|
+
| {
|
|
38
|
+
// eslint-disable-next-line no-unused-vars
|
|
39
|
+
[Breakpoint in BreakpointsAlias]?: string;
|
|
40
|
+
}
|
|
41
|
+
) {
|
|
42
|
+
if (!responsiveProp) return {};
|
|
43
|
+
|
|
44
|
+
if (typeof responsiveProp === "string") {
|
|
45
|
+
return {
|
|
46
|
+
[`--ac-${componentName}-${componentProp}-xs`]: `var(--a-${tokenSubgroup}-${responsiveProp})`,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
return Object.fromEntries(
|
|
51
|
+
Object.entries(responsiveProp).map(([breakpointAlias, aliasOrScale]) => [
|
|
52
|
+
`--ac-${componentName}-${componentProp}-${breakpointAlias}`,
|
|
53
|
+
`var(--a-${tokenSubgroup}-${aliasOrScale})`,
|
|
54
|
+
])
|
|
55
|
+
);
|
|
56
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Heading.js","sourceRoot":"","sources":["../../../../src/dropdown/Menu/GroupedList/Heading.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,MAAM,MAAM,CAAC;AAUtB,MAAM,CAAC,MAAM,cAAc,GAAG,UAAU,CAGtC,CAAC,EAAsB,EAAE,GAAG,EAAE,EAAE;QAA/B,EAAE,SAAS,OAAW,EAAN,IAAI,cAApB,aAAsB,CAAF;IAAY,OAAA,CACjC,4CACM,IAAI,IACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,8BAA8B,EAC9B,eAAe,EACf,uBAAuB,EACvB,SAAS,CACV,IACD,CACH,CAAA;CAAA,CAAC,CAAC;AAEH,eAAe,cAAc,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Item.js","sourceRoot":"","sources":["../../../../src/dropdown/Menu/GroupedList/Item.tsx"],"names":[],"mappings":";;;;;;;;;;;AACA,OAAO,EAAE,MAAM,MAAM,CAAC;AACtB,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAUjD,MAAM,CAAC,MAAM,WAAW,GAGpB,UAAU,CAAC,CAAC,EAAgD,EAAE,GAAG,EAAE,EAAE;QAAzD,EAAE,EAAE,EAAE,SAAS,GAAG,QAAQ,EAAE,SAAS,OAAW,EAAN,IAAI,cAA9C,mBAAgD,CAAF;IAC5D,MAAM,OAAO,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;IAE5C,OAAO,CACL,4BAAI,SAAS,EAAC,2BAA2B;QACvC,oBAAC,SAAS,oBACJ,IAAI,IACR,KAAK,EAAE,IAAI,CAAC,QAAQ,EACpB,OAAO,EAAE,CAAC,KAAgD,EAAE,EAAE;;gBAC5D,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,wDAAG,KAAK,CAAC,CAAC;gBAC3B,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,qDAAG,KAAK,CAAC,CAAC;YACzB,CAAC,EACD,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,sBAAsB,EACtB,kBAAkB,EAClB,yBAAyB,EACzB,SAAS,CACV,IACD,CACC,CACN,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,eAAe,WAAW,CAAC"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|