@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.
Files changed (58) hide show
  1. package/_docs.json +374 -70
  2. package/cjs/dropdown/Menu/GroupedList/index.js +4 -4
  3. package/cjs/index.js +1 -0
  4. package/cjs/layout/stack/HStack.js +51 -0
  5. package/cjs/layout/stack/Spacer.js +21 -0
  6. package/cjs/layout/stack/Stack.js +51 -0
  7. package/cjs/layout/stack/VStack.js +51 -0
  8. package/cjs/layout/stack/index.js +9 -0
  9. package/cjs/layout/stack/package.json +6 -0
  10. package/cjs/layout/utilities/css.js +17 -0
  11. package/esm/dropdown/Menu/GroupedList/{Heading.js → GroupedHeading.js} +1 -1
  12. package/esm/dropdown/Menu/GroupedList/GroupedHeading.js.map +1 -0
  13. package/esm/dropdown/Menu/GroupedList/{Item.js → GroupedItem.js} +1 -1
  14. package/esm/dropdown/Menu/GroupedList/GroupedItem.js.map +1 -0
  15. package/esm/dropdown/Menu/GroupedList/index.d.ts +2 -2
  16. package/esm/dropdown/Menu/GroupedList/index.js +2 -2
  17. package/esm/dropdown/Menu/GroupedList/index.js.map +1 -1
  18. package/esm/form/TextField.d.ts +1 -1
  19. package/esm/index.d.ts +1 -0
  20. package/esm/index.js +1 -0
  21. package/esm/index.js.map +1 -1
  22. package/esm/layout/stack/HStack.d.ts +24 -0
  23. package/esm/layout/stack/HStack.js +26 -0
  24. package/esm/layout/stack/HStack.js.map +1 -0
  25. package/esm/layout/stack/Spacer.d.ts +14 -0
  26. package/esm/layout/stack/Spacer.js +15 -0
  27. package/esm/layout/stack/Spacer.js.map +1 -0
  28. package/esm/layout/stack/Stack.d.ts +26 -0
  29. package/esm/layout/stack/Stack.js +23 -0
  30. package/esm/layout/stack/Stack.js.map +1 -0
  31. package/esm/layout/stack/VStack.d.ts +24 -0
  32. package/esm/layout/stack/VStack.js +26 -0
  33. package/esm/layout/stack/VStack.js.map +1 -0
  34. package/esm/layout/stack/index.d.ts +3 -0
  35. package/esm/layout/stack/index.js +4 -0
  36. package/esm/layout/stack/index.js.map +1 -0
  37. package/esm/layout/utilities/css.d.ts +10 -0
  38. package/esm/layout/utilities/css.js +14 -0
  39. package/esm/layout/utilities/css.js.map +1 -0
  40. package/package.json +2 -2
  41. package/src/dropdown/Menu/GroupedList/index.tsx +2 -2
  42. package/src/form/TextField.tsx +1 -1
  43. package/src/index.ts +1 -0
  44. package/src/layout/stack/HStack.tsx +30 -0
  45. package/src/layout/stack/Spacer.tsx +15 -0
  46. package/src/layout/stack/Stack.tsx +76 -0
  47. package/src/layout/stack/VStack.tsx +30 -0
  48. package/src/layout/stack/index.ts +3 -0
  49. package/src/layout/stack/stack.stories.tsx +161 -0
  50. package/src/layout/utilities/css.ts +56 -0
  51. package/esm/dropdown/Menu/GroupedList/Heading.js.map +0 -1
  52. package/esm/dropdown/Menu/GroupedList/Item.js.map +0 -1
  53. /package/cjs/dropdown/Menu/GroupedList/{Heading.js → GroupedHeading.js} +0 -0
  54. /package/cjs/dropdown/Menu/GroupedList/{Item.js → GroupedItem.js} +0 -0
  55. /package/esm/dropdown/Menu/GroupedList/{Heading.d.ts → GroupedHeading.d.ts} +0 -0
  56. /package/esm/dropdown/Menu/GroupedList/{Item.d.ts → GroupedItem.d.ts} +0 -0
  57. /package/src/dropdown/Menu/GroupedList/{Heading.tsx → GroupedHeading.tsx} +0 -0
  58. /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,6 @@
1
+ {
2
+ "sideEffects": false,
3
+ "main": "./index.js",
4
+ "module": "../../../esm/layout/stack/index.js",
5
+ "types": "../../../esm/layout/stack/index.d.ts"
6
+ }
@@ -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=Heading.js.map
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=Item.js.map
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 "./Heading";
4
- import { GroupedItemProps } from "./Item";
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 "./Heading";
15
- import GroupedItem from "./Item";
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,WAAW,CAAC;AAChE,OAAO,WAAiC,MAAM,QAAQ,CAAC;AA2BvD,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"}
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"}
@@ -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
@@ -32,3 +32,4 @@ export * from "./toggle-group";
32
32
  export * from "./tooltip";
33
33
  export * from "./typography";
34
34
  export * from "./util";
35
+ export * from "./layout/stack";
package/esm/index.js CHANGED
@@ -32,4 +32,5 @@ export * from "./toggle-group";
32
32
  export * from "./tooltip";
33
33
  export * from "./typography";
34
34
  export * from "./util";
35
+ export * from "./layout/stack";
35
36
  //# sourceMappingURL=index.js.map
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,3 @@
1
+ export { HStack, type HStackProps } from "./HStack";
2
+ export { VStack, type VStackProps } from "./VStack";
3
+ export { Spacer } from "./Spacer";
@@ -0,0 +1,4 @@
1
+ export { HStack } from "./HStack";
2
+ export { VStack } from "./VStack";
3
+ export { Spacer } from "./Spacer";
4
+ //# sourceMappingURL=index.js.map
@@ -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.7.3",
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.7.3",
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 "./Heading";
5
- import GroupedItem, { GroupedItemProps } from "./Item";
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> {
@@ -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
@@ -32,3 +32,4 @@ export * from "./toggle-group";
32
32
  export * from "./tooltip";
33
33
  export * from "./typography";
34
34
  export * from "./util";
35
+ export * from "./layout/stack";
@@ -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
+ });
@@ -0,0 +1,3 @@
1
+ export { HStack, type HStackProps } from "./HStack";
2
+ export { VStack, type VStackProps } from "./VStack";
3
+ export { Spacer } from "./Spacer";