@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,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.VStack = void 0;
|
|
27
|
+
const react_1 = __importStar(require("react"));
|
|
28
|
+
const Stack_1 = require("./Stack");
|
|
29
|
+
/**
|
|
30
|
+
* Layout-primitive for vetical flexbox
|
|
31
|
+
*
|
|
32
|
+
* @see [📝 Documentation](https://aksel.nav.no/komponenter/core/Stack)
|
|
33
|
+
* @see 🏷️ {@link VStackProps}
|
|
34
|
+
* @see [🤖 OverridableComponent](https://aksel.nav.no/grunnleggende/kode/overridablecomponent) support
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* <VStack gap="8">
|
|
38
|
+
* <MyComponent />
|
|
39
|
+
* <MyComponent />
|
|
40
|
+
* </VStack>
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* // Responsive gap
|
|
44
|
+
* <VStack gap={{xs: "2", md: "6"}}>
|
|
45
|
+
* <MyComponent />
|
|
46
|
+
* <MyComponent />
|
|
47
|
+
* </VStack>
|
|
48
|
+
*/
|
|
49
|
+
exports.VStack = (0, react_1.forwardRef)((props, ref) => {
|
|
50
|
+
return react_1.default.createElement(Stack_1.Stack, Object.assign({}, props, { ref: ref, direction: "column", wrap: false }));
|
|
51
|
+
});
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Spacer = exports.VStack = exports.HStack = void 0;
|
|
4
|
+
var HStack_1 = require("./HStack");
|
|
5
|
+
Object.defineProperty(exports, "HStack", { enumerable: true, get: function () { return HStack_1.HStack; } });
|
|
6
|
+
var VStack_1 = require("./VStack");
|
|
7
|
+
Object.defineProperty(exports, "VStack", { enumerable: true, get: function () { return VStack_1.VStack; } });
|
|
8
|
+
var Spacer_1 = require("./Spacer");
|
|
9
|
+
Object.defineProperty(exports, "Spacer", { enumerable: true, get: function () { return Spacer_1.Spacer; } });
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getResponsiveProps = void 0;
|
|
4
|
+
function getResponsiveProps(componentName, componentProp, tokenSubgroup, responsiveProp) {
|
|
5
|
+
if (!responsiveProp)
|
|
6
|
+
return {};
|
|
7
|
+
if (typeof responsiveProp === "string") {
|
|
8
|
+
return {
|
|
9
|
+
[`--ac-${componentName}-${componentProp}-xs`]: `var(--a-${tokenSubgroup}-${responsiveProp})`,
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
return Object.fromEntries(Object.entries(responsiveProp).map(([breakpointAlias, aliasOrScale]) => [
|
|
13
|
+
`--ac-${componentName}-${componentProp}-${breakpointAlias}`,
|
|
14
|
+
`var(--a-${tokenSubgroup}-${aliasOrScale})`,
|
|
15
|
+
]));
|
|
16
|
+
}
|
|
17
|
+
exports.getResponsiveProps = getResponsiveProps;
|
|
@@ -16,4 +16,4 @@ export const GroupedHeading = forwardRef((_a, ref) => {
|
|
|
16
16
|
return (React.createElement("dt", Object.assign({}, rest, { ref: ref, className: cl("navds-dropdown__list-heading", "navds-heading", "navds-heading--xsmall", className) })));
|
|
17
17
|
});
|
|
18
18
|
export default GroupedHeading;
|
|
19
|
-
//# sourceMappingURL=
|
|
19
|
+
//# sourceMappingURL=GroupedHeading.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GroupedHeading.js","sourceRoot":"","sources":["../../../../src/dropdown/Menu/GroupedList/GroupedHeading.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"}
|
|
@@ -23,4 +23,4 @@ export const GroupedItem = forwardRef((_a, ref) => {
|
|
|
23
23
|
}, ref: ref, className: cl("navds-dropdown__item", "navds-body-short", "navds-body-short--small", className) }))));
|
|
24
24
|
});
|
|
25
25
|
export default GroupedItem;
|
|
26
|
-
//# sourceMappingURL=
|
|
26
|
+
//# sourceMappingURL=GroupedItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GroupedItem.js","sourceRoot":"","sources":["../../../../src/dropdown/Menu/GroupedList/GroupedItem.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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { OverridableComponent } from "../../../util/OverridableComponent";
|
|
3
|
-
import { GroupedHeadingProps } from "./
|
|
4
|
-
import { GroupedItemProps } from "./
|
|
3
|
+
import { GroupedHeadingProps } from "./GroupedHeading";
|
|
4
|
+
import { GroupedItemProps } from "./GroupedItem";
|
|
5
5
|
export interface GroupedListProps extends React.HTMLAttributes<HTMLDListElement> {
|
|
6
6
|
/**
|
|
7
7
|
* Menu list content
|
|
@@ -11,8 +11,8 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
11
11
|
};
|
|
12
12
|
import cl from "clsx";
|
|
13
13
|
import React, { forwardRef } from "react";
|
|
14
|
-
import GroupedHeading from "./
|
|
15
|
-
import GroupedItem from "./
|
|
14
|
+
import GroupedHeading from "./GroupedHeading";
|
|
15
|
+
import GroupedItem from "./GroupedItem";
|
|
16
16
|
export const DescriptionList = forwardRef((_a, ref) => {
|
|
17
17
|
var { className, children } = _a, rest = __rest(_a, ["className", "children"]);
|
|
18
18
|
return (React.createElement("dl", Object.assign({}, rest, { ref: ref, className: cl("navds-dropdown__list", className) }), children));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/dropdown/Menu/GroupedList/index.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,MAAM,CAAC;AACtB,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,cAAuC,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/dropdown/Menu/GroupedList/index.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,MAAM,CAAC;AACtB,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,cAAuC,MAAM,kBAAkB,CAAC;AACvE,OAAO,WAAiC,MAAM,eAAe,CAAC;AA2B9D,MAAM,CAAC,MAAM,eAAe,GAAG,UAAU,CACvC,CAAC,EAAgC,EAAE,GAAG,EAAE,EAAE;QAAzC,EAAE,SAAS,EAAE,QAAQ,OAAW,EAAN,IAAI,cAA9B,yBAAgC,CAAF;IAAY,OAAA,CACzC,4CAAQ,IAAI,IAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,sBAAsB,EAAE,SAAS,CAAC,KACrE,QAAQ,CACN,CACN,CAAA;CAAA,CACiB,CAAC;AAErB,eAAe,CAAC,OAAO,GAAG,cAAc,CAAC;AACzC,eAAe,CAAC,IAAI,GAAG,WAAW,CAAC;AAEnC,eAAe,eAAe,CAAC"}
|
package/esm/form/TextField.d.ts
CHANGED
|
@@ -25,7 +25,7 @@ export interface TextFieldProps extends FormFieldProps, Omit<InputHTMLAttributes
|
|
|
25
25
|
* Type of form control. Picking the correct type helps user fill inn their required information
|
|
26
26
|
* @default "text"
|
|
27
27
|
*/
|
|
28
|
-
type?: "email" | "number" | "password" | "tel" | "text" | "url";
|
|
28
|
+
type?: "email" | "number" | "password" | "tel" | "text" | "url" | "time";
|
|
29
29
|
}
|
|
30
30
|
/**
|
|
31
31
|
* A component that displays a text input field with a label.
|
package/esm/index.d.ts
CHANGED
package/esm/index.js
CHANGED
package/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AACtB,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AACtB,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { OverridableComponent } from "../../util/OverridableComponent";
|
|
2
|
+
import { StackProps } from "./Stack";
|
|
3
|
+
export type HStackProps = Omit<StackProps, "direction">;
|
|
4
|
+
/**
|
|
5
|
+
* Layout-primitive for horizontal flexbox
|
|
6
|
+
*
|
|
7
|
+
* @see [📝 Documentation](https://aksel.nav.no/komponenter/core/Stack)
|
|
8
|
+
* @see 🏷️ {@link HStackProps}
|
|
9
|
+
* @see [🤖 OverridableComponent](https://aksel.nav.no/grunnleggende/kode/overridablecomponent) support
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* <HStack gap="8">
|
|
13
|
+
* <MyComponent />
|
|
14
|
+
* <MyComponent />
|
|
15
|
+
* </HStack>
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* // Responsive gap
|
|
19
|
+
* <HStack gap={{xs: "2", md: "6"}}>
|
|
20
|
+
* <MyComponent />
|
|
21
|
+
* <MyComponent />
|
|
22
|
+
* </HStack>
|
|
23
|
+
*/
|
|
24
|
+
export declare const HStack: OverridableComponent<HStackProps, HTMLDivElement>;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import React, { forwardRef } from "react";
|
|
2
|
+
import { Stack } from "./Stack";
|
|
3
|
+
/**
|
|
4
|
+
* Layout-primitive for horizontal flexbox
|
|
5
|
+
*
|
|
6
|
+
* @see [📝 Documentation](https://aksel.nav.no/komponenter/core/Stack)
|
|
7
|
+
* @see 🏷️ {@link HStackProps}
|
|
8
|
+
* @see [🤖 OverridableComponent](https://aksel.nav.no/grunnleggende/kode/overridablecomponent) support
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* <HStack gap="8">
|
|
12
|
+
* <MyComponent />
|
|
13
|
+
* <MyComponent />
|
|
14
|
+
* </HStack>
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* // Responsive gap
|
|
18
|
+
* <HStack gap={{xs: "2", md: "6"}}>
|
|
19
|
+
* <MyComponent />
|
|
20
|
+
* <MyComponent />
|
|
21
|
+
* </HStack>
|
|
22
|
+
*/
|
|
23
|
+
export const HStack = forwardRef((props, ref) => {
|
|
24
|
+
return React.createElement(Stack, Object.assign({}, props, { ref: ref, direction: "row" }));
|
|
25
|
+
});
|
|
26
|
+
//# sourceMappingURL=HStack.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HStack.js","sourceRoot":"","sources":["../../../src/layout/stack/HStack.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAc,KAAK,EAAE,MAAM,SAAS,CAAC;AAI5C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,MAAM,GACjB,UAAU,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IACxB,OAAO,oBAAC,KAAK,oBAAK,KAAK,IAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAC,KAAK,IAAG,CAAC;AACxD,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
/**
|
|
3
|
+
* Layout-primitive for auto-spacing between elements
|
|
4
|
+
*
|
|
5
|
+
* @see [📝 Documentation](https://aksel.nav.no/komponenter/core/Stack)
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* <HStack gap="8">
|
|
9
|
+
* <MyComponent />
|
|
10
|
+
* <Spacer />
|
|
11
|
+
* <MyComponent />
|
|
12
|
+
* </HStack>
|
|
13
|
+
*/
|
|
14
|
+
export declare const Spacer: () => React.JSX.Element;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
/**
|
|
3
|
+
* Layout-primitive for auto-spacing between elements
|
|
4
|
+
*
|
|
5
|
+
* @see [📝 Documentation](https://aksel.nav.no/komponenter/core/Stack)
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* <HStack gap="8">
|
|
9
|
+
* <MyComponent />
|
|
10
|
+
* <Spacer />
|
|
11
|
+
* <MyComponent />
|
|
12
|
+
* </HStack>
|
|
13
|
+
*/
|
|
14
|
+
export const Spacer = () => React.createElement("div", { className: "navds-stack__spacer" });
|
|
15
|
+
//# sourceMappingURL=Spacer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Spacer.js","sourceRoot":"","sources":["../../../src/layout/stack/Spacer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,6BAAK,SAAS,EAAC,qBAAqB,GAAG,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import React, { HTMLAttributes } from "react";
|
|
2
|
+
import { OverridableComponent } from "../../util/OverridableComponent";
|
|
3
|
+
import { ResponsiveProp, SpacingScale } from "../utilities/css";
|
|
4
|
+
export interface StackProps extends HTMLAttributes<HTMLDivElement> {
|
|
5
|
+
children: React.ReactNode;
|
|
6
|
+
/**
|
|
7
|
+
* Justify-content
|
|
8
|
+
*/
|
|
9
|
+
justify?: "start" | "center" | "end" | "space-around" | "space-between" | "space-evenly";
|
|
10
|
+
/**
|
|
11
|
+
* Align-items
|
|
12
|
+
*/
|
|
13
|
+
align?: "start" | "center" | "end" | "baseline" | "stretch";
|
|
14
|
+
/**
|
|
15
|
+
* flex-wrap
|
|
16
|
+
*/
|
|
17
|
+
wrap?: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* @example
|
|
20
|
+
* gap='4'
|
|
21
|
+
* gap={{xs: '2', sm: '3', md: '4', lg: '5', xl: '6'}}
|
|
22
|
+
*/
|
|
23
|
+
gap?: ResponsiveProp<SpacingScale>;
|
|
24
|
+
direction: "row" | "column";
|
|
25
|
+
}
|
|
26
|
+
export declare const Stack: OverridableComponent<StackProps, HTMLDivElement>;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
2
|
+
var t = {};
|
|
3
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
4
|
+
t[p] = s[p];
|
|
5
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
6
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
7
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
8
|
+
t[p[i]] = s[p[i]];
|
|
9
|
+
}
|
|
10
|
+
return t;
|
|
11
|
+
};
|
|
12
|
+
import cl from "clsx";
|
|
13
|
+
import React, { forwardRef } from "react";
|
|
14
|
+
import { getResponsiveProps, } from "../utilities/css";
|
|
15
|
+
export const Stack = forwardRef((_a, ref) => {
|
|
16
|
+
var { as: Component = "div", className, align, justify, wrap = true, gap, style: _style, direction } = _a, rest = __rest(_a, ["as", "className", "align", "justify", "wrap", "gap", "style", "direction"]);
|
|
17
|
+
const style = Object.assign(Object.assign({ "--ac-stack-direction": direction, "--ac-stack-align": align, "--ac-stack-justify": justify, "--ac-stack-wrap": wrap ? "wrap" : "nowrap" }, getResponsiveProps(`stack`, "gap", "spacing", gap)), _style);
|
|
18
|
+
return (React.createElement(Component, Object.assign({}, rest, { ref: ref, style: style, className: cl("navds-stack", className, {
|
|
19
|
+
"navds-vstack": direction === "column",
|
|
20
|
+
"navds-hstack": direction === "row",
|
|
21
|
+
}) })));
|
|
22
|
+
});
|
|
23
|
+
//# sourceMappingURL=Stack.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Stack.js","sourceRoot":"","sources":["../../../src/layout/stack/Stack.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,MAAM,CAAC;AACtB,OAAO,KAAK,EAAE,EAAE,UAAU,EAAkB,MAAM,OAAO,CAAC;AAE1D,OAAO,EACL,kBAAkB,GAGnB,MAAM,kBAAkB,CAAC;AA+B1B,MAAM,CAAC,MAAM,KAAK,GAChB,UAAU,CACR,CACE,EAUC,EACD,GAAG,EACH,EAAE;QAZF,EACE,EAAE,EAAE,SAAS,GAAG,KAAK,EACrB,SAAS,EACT,KAAK,EACL,OAAO,EACP,IAAI,GAAG,IAAI,EACX,GAAG,EACH,KAAK,EAAE,MAAM,EACb,SAAS,OAEV,EADI,IAAI,cATT,4EAUC,CADQ;IAIT,MAAM,KAAK,GAAG,8BACZ,sBAAsB,EAAE,SAAS,EACjC,kBAAkB,EAAE,KAAK,EACzB,oBAAoB,EAAE,OAAO,EAC7B,iBAAiB,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,IACxC,kBAAkB,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,GAClD,MAAM,CACa,CAAC;IAEzB,OAAO,CACL,oBAAC,SAAS,oBACJ,IAAI,IACR,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,EAAE,CAAC,aAAa,EAAE,SAAS,EAAE;YACtC,cAAc,EAAE,SAAS,KAAK,QAAQ;YACtC,cAAc,EAAE,SAAS,KAAK,KAAK;SACpC,CAAC,IACF,CACH,CAAC;AACJ,CAAC,CACF,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { OverridableComponent } from "../../util/OverridableComponent";
|
|
2
|
+
import { StackProps } from "./Stack";
|
|
3
|
+
export type VStackProps = Omit<StackProps, "direction" | "wrap">;
|
|
4
|
+
/**
|
|
5
|
+
* Layout-primitive for vetical flexbox
|
|
6
|
+
*
|
|
7
|
+
* @see [📝 Documentation](https://aksel.nav.no/komponenter/core/Stack)
|
|
8
|
+
* @see 🏷️ {@link VStackProps}
|
|
9
|
+
* @see [🤖 OverridableComponent](https://aksel.nav.no/grunnleggende/kode/overridablecomponent) support
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* <VStack gap="8">
|
|
13
|
+
* <MyComponent />
|
|
14
|
+
* <MyComponent />
|
|
15
|
+
* </VStack>
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* // Responsive gap
|
|
19
|
+
* <VStack gap={{xs: "2", md: "6"}}>
|
|
20
|
+
* <MyComponent />
|
|
21
|
+
* <MyComponent />
|
|
22
|
+
* </VStack>
|
|
23
|
+
*/
|
|
24
|
+
export declare const VStack: OverridableComponent<VStackProps, HTMLDivElement>;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import React, { forwardRef } from "react";
|
|
2
|
+
import { Stack } from "./Stack";
|
|
3
|
+
/**
|
|
4
|
+
* Layout-primitive for vetical flexbox
|
|
5
|
+
*
|
|
6
|
+
* @see [📝 Documentation](https://aksel.nav.no/komponenter/core/Stack)
|
|
7
|
+
* @see 🏷️ {@link VStackProps}
|
|
8
|
+
* @see [🤖 OverridableComponent](https://aksel.nav.no/grunnleggende/kode/overridablecomponent) support
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* <VStack gap="8">
|
|
12
|
+
* <MyComponent />
|
|
13
|
+
* <MyComponent />
|
|
14
|
+
* </VStack>
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* // Responsive gap
|
|
18
|
+
* <VStack gap={{xs: "2", md: "6"}}>
|
|
19
|
+
* <MyComponent />
|
|
20
|
+
* <MyComponent />
|
|
21
|
+
* </VStack>
|
|
22
|
+
*/
|
|
23
|
+
export const VStack = forwardRef((props, ref) => {
|
|
24
|
+
return React.createElement(Stack, Object.assign({}, props, { ref: ref, direction: "column", wrap: false }));
|
|
25
|
+
});
|
|
26
|
+
//# sourceMappingURL=VStack.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VStack.js","sourceRoot":"","sources":["../../../src/layout/stack/VStack.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAc,KAAK,EAAE,MAAM,SAAS,CAAC;AAI5C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,MAAM,GACjB,UAAU,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IACxB,OAAO,oBAAC,KAAK,oBAAK,KAAK,IAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAC,QAAQ,EAAC,IAAI,EAAE,KAAK,IAAI,CAAC;AACxE,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/layout/stack/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAoB,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,MAAM,EAAoB,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export type BreakpointsAlias = "xs" | "sm" | "md" | "lg" | "xl";
|
|
2
|
+
export type SpacingScale = "0" | "05" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "10" | "11" | "12" | "14" | "16" | "18" | "20" | "24" | "32";
|
|
3
|
+
export type ResponsiveProp<T> = T | {
|
|
4
|
+
[Breakpoint in BreakpointsAlias]?: T;
|
|
5
|
+
};
|
|
6
|
+
export declare function getResponsiveProps(componentName: string, componentProp: string, tokenSubgroup: string, responsiveProp?: string | {
|
|
7
|
+
[Breakpoint in BreakpointsAlias]?: string;
|
|
8
|
+
}): {
|
|
9
|
+
[x: string]: string;
|
|
10
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export function getResponsiveProps(componentName, componentProp, tokenSubgroup, responsiveProp) {
|
|
2
|
+
if (!responsiveProp)
|
|
3
|
+
return {};
|
|
4
|
+
if (typeof responsiveProp === "string") {
|
|
5
|
+
return {
|
|
6
|
+
[`--ac-${componentName}-${componentProp}-xs`]: `var(--a-${tokenSubgroup}-${responsiveProp})`,
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
return Object.fromEntries(Object.entries(responsiveProp).map(([breakpointAlias, aliasOrScale]) => [
|
|
10
|
+
`--ac-${componentName}-${componentProp}-${breakpointAlias}`,
|
|
11
|
+
`var(--a-${tokenSubgroup}-${aliasOrScale})`,
|
|
12
|
+
]));
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"css.js","sourceRoot":"","sources":["../../../src/layout/utilities/css.ts"],"names":[],"mappings":"AA8BA,MAAM,UAAU,kBAAkB,CAChC,aAAqB,EACrB,aAAqB,EACrB,aAAqB,EACrB,cAKK;IAEL,IAAI,CAAC,cAAc;QAAE,OAAO,EAAE,CAAC;IAE/B,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE;QACtC,OAAO;YACL,CAAC,QAAQ,aAAa,IAAI,aAAa,KAAK,CAAC,EAAE,WAAW,aAAa,IAAI,cAAc,GAAG;SAC7F,CAAC;KACH;IAED,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE,YAAY,CAAC,EAAE,EAAE,CAAC;QACtE,QAAQ,aAAa,IAAI,aAAa,IAAI,eAAe,EAAE;QAC3D,WAAW,aAAa,IAAI,YAAY,GAAG;KAC5C,CAAC,CACH,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@navikt/ds-react",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.8.0",
|
|
4
4
|
"description": "Aksel react-components for NAV designsystem",
|
|
5
5
|
"author": "Aksel | NAV designsystem team",
|
|
6
6
|
"license": "MIT",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
40
|
"@floating-ui/react": "0.24.1",
|
|
41
|
-
"@navikt/aksel-icons": "^4.
|
|
41
|
+
"@navikt/aksel-icons": "^4.8.0",
|
|
42
42
|
"@radix-ui/react-tabs": "1.0.0",
|
|
43
43
|
"@radix-ui/react-toggle-group": "1.0.0",
|
|
44
44
|
"clsx": "^1.2.1",
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import cl from "clsx";
|
|
2
2
|
import React, { forwardRef } from "react";
|
|
3
3
|
import { OverridableComponent } from "../../../util/OverridableComponent";
|
|
4
|
-
import GroupedHeading, { GroupedHeadingProps } from "./
|
|
5
|
-
import GroupedItem, { GroupedItemProps } from "./
|
|
4
|
+
import GroupedHeading, { GroupedHeadingProps } from "./GroupedHeading";
|
|
5
|
+
import GroupedItem, { GroupedItemProps } from "./GroupedItem";
|
|
6
6
|
|
|
7
7
|
export interface GroupedListProps
|
|
8
8
|
extends React.HTMLAttributes<HTMLDListElement> {
|
package/src/form/TextField.tsx
CHANGED
|
@@ -31,7 +31,7 @@ export interface TextFieldProps
|
|
|
31
31
|
* Type of form control. Picking the correct type helps user fill inn their required information
|
|
32
32
|
* @default "text"
|
|
33
33
|
*/
|
|
34
|
-
type?: "email" | "number" | "password" | "tel" | "text" | "url";
|
|
34
|
+
type?: "email" | "number" | "password" | "tel" | "text" | "url" | "time";
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
/**
|
package/src/index.ts
CHANGED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import React, { forwardRef } from "react";
|
|
2
|
+
import { OverridableComponent } from "../../util/OverridableComponent";
|
|
3
|
+
import { StackProps, Stack } from "./Stack";
|
|
4
|
+
|
|
5
|
+
export type HStackProps = Omit<StackProps, "direction">;
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Layout-primitive for horizontal flexbox
|
|
9
|
+
*
|
|
10
|
+
* @see [📝 Documentation](https://aksel.nav.no/komponenter/core/Stack)
|
|
11
|
+
* @see 🏷️ {@link HStackProps}
|
|
12
|
+
* @see [🤖 OverridableComponent](https://aksel.nav.no/grunnleggende/kode/overridablecomponent) support
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* <HStack gap="8">
|
|
16
|
+
* <MyComponent />
|
|
17
|
+
* <MyComponent />
|
|
18
|
+
* </HStack>
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* // Responsive gap
|
|
22
|
+
* <HStack gap={{xs: "2", md: "6"}}>
|
|
23
|
+
* <MyComponent />
|
|
24
|
+
* <MyComponent />
|
|
25
|
+
* </HStack>
|
|
26
|
+
*/
|
|
27
|
+
export const HStack: OverridableComponent<HStackProps, HTMLDivElement> =
|
|
28
|
+
forwardRef((props, ref) => {
|
|
29
|
+
return <Stack {...props} ref={ref} direction="row" />;
|
|
30
|
+
});
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Layout-primitive for auto-spacing between elements
|
|
5
|
+
*
|
|
6
|
+
* @see [📝 Documentation](https://aksel.nav.no/komponenter/core/Stack)
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* <HStack gap="8">
|
|
10
|
+
* <MyComponent />
|
|
11
|
+
* <Spacer />
|
|
12
|
+
* <MyComponent />
|
|
13
|
+
* </HStack>
|
|
14
|
+
*/
|
|
15
|
+
export const Spacer = () => <div className="navds-stack__spacer" />;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import cl from "clsx";
|
|
2
|
+
import React, { forwardRef, HTMLAttributes } from "react";
|
|
3
|
+
import { OverridableComponent } from "../../util/OverridableComponent";
|
|
4
|
+
import {
|
|
5
|
+
getResponsiveProps,
|
|
6
|
+
ResponsiveProp,
|
|
7
|
+
SpacingScale,
|
|
8
|
+
} from "../utilities/css";
|
|
9
|
+
|
|
10
|
+
export interface StackProps extends HTMLAttributes<HTMLDivElement> {
|
|
11
|
+
children: React.ReactNode;
|
|
12
|
+
/**
|
|
13
|
+
* Justify-content
|
|
14
|
+
*/
|
|
15
|
+
justify?:
|
|
16
|
+
| "start"
|
|
17
|
+
| "center"
|
|
18
|
+
| "end"
|
|
19
|
+
| "space-around"
|
|
20
|
+
| "space-between"
|
|
21
|
+
| "space-evenly";
|
|
22
|
+
/**
|
|
23
|
+
* Align-items
|
|
24
|
+
*/
|
|
25
|
+
align?: "start" | "center" | "end" | "baseline" | "stretch";
|
|
26
|
+
/**
|
|
27
|
+
* flex-wrap
|
|
28
|
+
*/
|
|
29
|
+
wrap?: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* @example
|
|
32
|
+
* gap='4'
|
|
33
|
+
* gap={{xs: '2', sm: '3', md: '4', lg: '5', xl: '6'}}
|
|
34
|
+
*/
|
|
35
|
+
gap?: ResponsiveProp<SpacingScale>;
|
|
36
|
+
direction: "row" | "column";
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export const Stack: OverridableComponent<StackProps, HTMLDivElement> =
|
|
40
|
+
forwardRef(
|
|
41
|
+
(
|
|
42
|
+
{
|
|
43
|
+
as: Component = "div",
|
|
44
|
+
className,
|
|
45
|
+
align,
|
|
46
|
+
justify,
|
|
47
|
+
wrap = true,
|
|
48
|
+
gap,
|
|
49
|
+
style: _style,
|
|
50
|
+
direction,
|
|
51
|
+
...rest
|
|
52
|
+
},
|
|
53
|
+
ref
|
|
54
|
+
) => {
|
|
55
|
+
const style = {
|
|
56
|
+
"--ac-stack-direction": direction,
|
|
57
|
+
"--ac-stack-align": align,
|
|
58
|
+
"--ac-stack-justify": justify,
|
|
59
|
+
"--ac-stack-wrap": wrap ? "wrap" : "nowrap",
|
|
60
|
+
...getResponsiveProps(`stack`, "gap", "spacing", gap),
|
|
61
|
+
..._style,
|
|
62
|
+
} as React.CSSProperties;
|
|
63
|
+
|
|
64
|
+
return (
|
|
65
|
+
<Component
|
|
66
|
+
{...rest}
|
|
67
|
+
ref={ref}
|
|
68
|
+
style={style}
|
|
69
|
+
className={cl("navds-stack", className, {
|
|
70
|
+
"navds-vstack": direction === "column",
|
|
71
|
+
"navds-hstack": direction === "row",
|
|
72
|
+
})}
|
|
73
|
+
/>
|
|
74
|
+
);
|
|
75
|
+
}
|
|
76
|
+
);
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import React, { forwardRef } from "react";
|
|
2
|
+
import { OverridableComponent } from "../../util/OverridableComponent";
|
|
3
|
+
import { StackProps, Stack } from "./Stack";
|
|
4
|
+
|
|
5
|
+
export type VStackProps = Omit<StackProps, "direction" | "wrap">;
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Layout-primitive for vetical flexbox
|
|
9
|
+
*
|
|
10
|
+
* @see [📝 Documentation](https://aksel.nav.no/komponenter/core/Stack)
|
|
11
|
+
* @see 🏷️ {@link VStackProps}
|
|
12
|
+
* @see [🤖 OverridableComponent](https://aksel.nav.no/grunnleggende/kode/overridablecomponent) support
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* <VStack gap="8">
|
|
16
|
+
* <MyComponent />
|
|
17
|
+
* <MyComponent />
|
|
18
|
+
* </VStack>
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* // Responsive gap
|
|
22
|
+
* <VStack gap={{xs: "2", md: "6"}}>
|
|
23
|
+
* <MyComponent />
|
|
24
|
+
* <MyComponent />
|
|
25
|
+
* </VStack>
|
|
26
|
+
*/
|
|
27
|
+
export const VStack: OverridableComponent<VStackProps, HTMLDivElement> =
|
|
28
|
+
forwardRef((props, ref) => {
|
|
29
|
+
return <Stack {...props} ref={ref} direction="column" wrap={false} />;
|
|
30
|
+
});
|