@navikt/ds-react 5.7.5 → 5.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 +31 -10
- package/cjs/accordion/AccordionHeader.js +2 -2
- package/cjs/chips/Toggle.js +2 -3
- package/cjs/form/combobox/FilteredOptions/filteredOptionsContext.js +1 -2
- package/cjs/form/combobox/Input/Input.js +13 -5
- package/cjs/layout/sidemal-test/Sidebar.js +1 -1
- package/cjs/loader/Loader.js +1 -1
- package/cjs/modal/Modal.js +35 -14
- package/cjs/tooltip/Tooltip.js +14 -3
- package/esm/accordion/AccordionHeader.js +2 -2
- package/esm/accordion/AccordionHeader.js.map +1 -1
- package/esm/chips/Toggle.d.ts +1 -1
- package/esm/chips/Toggle.js +2 -3
- package/esm/chips/Toggle.js.map +1 -1
- package/esm/form/combobox/FilteredOptions/filteredOptionsContext.js +1 -2
- package/esm/form/combobox/FilteredOptions/filteredOptionsContext.js.map +1 -1
- package/esm/form/combobox/Input/Input.js +13 -5
- package/esm/form/combobox/Input/Input.js.map +1 -1
- package/esm/layout/bleed/Bleed.d.ts +1 -1
- package/esm/layout/bleed/Bleed.js +1 -1
- package/esm/layout/bleed/Bleed.js.map +1 -1
- package/esm/layout/box/Box.d.ts +1 -2
- package/esm/layout/box/Box.js +1 -1
- package/esm/layout/box/Box.js.map +1 -1
- package/esm/layout/grid/HGrid.d.ts +1 -1
- package/esm/layout/grid/HGrid.js +1 -1
- package/esm/layout/grid/HGrid.js.map +1 -1
- package/esm/layout/responsive/Responsive.d.ts +1 -1
- package/esm/layout/sidemal-test/Sidebar.js +1 -1
- package/esm/layout/sidemal-test/Sidebar.js.map +1 -1
- package/esm/layout/stack/Stack.d.ts +1 -1
- package/esm/layout/stack/Stack.js +1 -1
- package/esm/layout/stack/Stack.js.map +1 -1
- package/esm/layout/utilities/css.d.ts +1 -8
- package/esm/layout/utilities/css.js.map +1 -1
- package/esm/layout/utilities/types.d.ts +9 -0
- package/esm/loader/Loader.d.ts +1 -1
- package/esm/loader/Loader.js +1 -1
- package/esm/modal/Modal.js +35 -14
- package/esm/modal/Modal.js.map +1 -1
- package/esm/modal/ModalContext.d.ts +1 -0
- package/esm/modal/ModalContext.js.map +1 -1
- package/esm/modal/types.d.ts +7 -0
- package/esm/tooltip/Tooltip.js +16 -5
- package/esm/tooltip/Tooltip.js.map +1 -1
- package/package.json +3 -3
- package/src/accordion/AccordionHeader.tsx +3 -3
- package/src/chips/Toggle.tsx +22 -12
- package/src/chips/chips.stories.tsx +9 -3
- package/src/date/datepicker/datepicker.stories.tsx +0 -1
- package/src/date/monthpicker/monthpicker.stories.tsx +28 -1
- package/src/form/combobox/FilteredOptions/filteredOptionsContext.tsx +1 -2
- package/src/form/combobox/Input/Input.tsx +19 -4
- package/src/form/combobox/combobox.stories.tsx +44 -0
- package/src/layout/bleed/Bleed.tsx +2 -5
- package/src/layout/box/Box.tsx +1 -3
- package/src/layout/grid/HGrid.tsx +2 -6
- package/src/layout/responsive/Responsive.tsx +1 -1
- package/src/layout/sidemal-test/Sidebar.tsx +1 -1
- package/src/layout/stack/Stack.tsx +2 -6
- package/src/layout/utilities/css.ts +1 -36
- package/src/layout/utilities/types.ts +16 -0
- package/src/loader/Loader.tsx +1 -1
- package/src/modal/Modal.tsx +50 -20
- package/src/modal/ModalContext.ts +1 -0
- package/src/modal/modal.stories.tsx +30 -2
- package/src/modal/types.ts +7 -0
- package/src/tooltip/Tooltip.tsx +18 -6
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { HTMLAttributes } from "react";
|
|
2
|
-
import { ResponsiveProp, SpacingScale } from "../utilities/
|
|
2
|
+
import { ResponsiveProp, SpacingScale } from "../utilities/types";
|
|
3
3
|
export interface HGridProps extends HTMLAttributes<HTMLDivElement> {
|
|
4
4
|
children: React.ReactNode;
|
|
5
5
|
/**
|
package/esm/layout/grid/HGrid.js
CHANGED
|
@@ -11,7 +11,7 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
11
11
|
};
|
|
12
12
|
import React, { forwardRef } from "react";
|
|
13
13
|
import cl from "clsx";
|
|
14
|
-
import { getResponsiveProps, getResponsiveValue
|
|
14
|
+
import { getResponsiveProps, getResponsiveValue } from "../utilities/css";
|
|
15
15
|
/**
|
|
16
16
|
* Horizontal Grid Primitive with dynamic columns and gap based on breakpoints.
|
|
17
17
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HGrid.js","sourceRoot":"","sources":["../../../src/layout/grid/HGrid.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAkB,MAAM,OAAO,CAAC;AAC1D,OAAO,EAAE,MAAM,MAAM,CAAC;AACtB,OAAO,
|
|
1
|
+
{"version":3,"file":"HGrid.js","sourceRoot":"","sources":["../../../src/layout/grid/HGrid.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAkB,MAAM,OAAO,CAAC;AAC1D,OAAO,EAAE,MAAM,MAAM,CAAC;AACtB,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AA2B1E;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,UAAU,CAC7B,CAAC,EAAkD,EAAE,GAAG,EAAE,EAAE;QAA3D,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,OAAW,EAAN,IAAI,cAAhD,iDAAkD,CAAF;IAC/C,MAAM,MAAM,+DACP,KAAK,KACR,oBAAoB,EAAE,KAAK,KACxB,kBAAkB,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,GAClD,kBAAkB,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAC/D,CAAC;IAEF,OAAO,CACL,6CACM,IAAI,IACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC,EACvC,KAAK,EAAE,MAAM,IACb,CACH,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,SAAS,UAAU,CACjB,KAAuC;IAEvC,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,EAAE,CAAC;KACX;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC1D,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC;KAC9B;IAED,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC;QAC5D,eAAe;QACf,cAAc,CAAC,WAAW,CAAC;KAC5B,CAAC,CACH,CAAC;AACJ,CAAC;AAED,MAAM,cAAc,GAAG,CAAC,IAAqB,EAAE,EAAE;IAC/C,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAC5B,OAAO,UAAU,IAAI,mBAAmB,CAAC;KAC1C;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,eAAe,KAAK,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
+
import { Link } from "../../link";
|
|
2
3
|
import { Heading, Label } from "../../typography";
|
|
3
4
|
import { Box } from "../box";
|
|
4
5
|
import { VStack } from "../stack";
|
|
5
|
-
import { Link } from "../../link";
|
|
6
6
|
const LinkElement = ({ children }) => {
|
|
7
7
|
return (React.createElement(Label, { as: "li", className: "sidebarlink" }, children));
|
|
8
8
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sidebar.js","sourceRoot":"","sources":["../../../src/layout/sidemal-test/Sidebar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Sidebar.js","sourceRoot":"","sources":["../../../src/layout/sidemal-test/Sidebar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,WAAW,GAAG,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;IACnC,OAAO,CACL,oBAAC,KAAK,IAAC,EAAE,EAAC,IAAI,EAAC,SAAS,EAAC,aAAa,IACnC,QAAQ,CACH,CACT,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,UAAU,OAAO;IACrB,OAAO,CACL,oBAAC,MAAM,IAAC,GAAG,EAAC,GAAG,EAAC,SAAS,EAAC,SAAS;QACjC,oBAAC,YAAY,OAAG;QAChB,oBAAC,SAAS,OAAG,CACN,CACV,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,CACL,oBAAC,GAAG,IACF,EAAE,EAAC,KAAK,gBACG,SAAS,EACpB,aAAa,EAAC,GAAG,EACjB,YAAY,EAAC,KAAK,EAClB,UAAU,EAAC,iBAAiB,EAC5B,YAAY,EAAC,QAAQ;QAErB,oBAAC,GAAG,IAAC,YAAY,EAAC,KAAK,EAAC,aAAa,EAAC,KAAK;YACzC,oBAAC,OAAO,IAAC,IAAI,EAAC,QAAQ,cAAkB,CACpC;QACN,4BAAI,SAAS,EAAC,YAAY;YACxB,oBAAC,WAAW,4BAAgC;YAC5C,oBAAC,WAAW,4BAA2B;YACvC,oBAAC,WAAW,mCAAkC;YAC9C,oBAAC,WAAW,sCAAqC;YACjD,oBAAC,WAAW,qCAAoC;YAChD,oBAAC,WAAW,6BAA4B;YACxC,oBAAC,WAAW,kEAAkD;YAC9D,oBAAC,WAAW,kCAAsC;YAClD,oBAAC,WAAW,2CAA+C;YAC3D,oBAAC,WAAW,sCAAqC;YACjD,oBAAC,WAAW,oCAAwC;YACpD,oBAAC,WAAW,yBAA6B,CACtC,CACD,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,CACL,oBAAC,GAAG,IACF,YAAY,EAAC,GAAG,EAChB,aAAa,EAAC,GAAG,EACjB,UAAU,EAAC,iBAAiB,gBACjB,oBAAe,EAC1B,EAAE,EAAC,SAAS,EACZ,YAAY,EAAC,QAAQ;QAErB,oBAAC,GAAG,IAAC,YAAY,EAAC,KAAK,EAAC,aAAa,EAAC,GAAG;YACvC,oBAAC,OAAO,IAAC,IAAI,EAAC,OAAO,yBAAwB,CACzC;QACN,2CAAgB,SAAS;YACvB,4BAAI,SAAS,EAAC,YAAY;gBACxB,oBAAC,GAAG,IAAC,YAAY,EAAC,GAAG,EAAC,aAAa,EAAC,GAAG;oBACrC,oBAAC,IAAI,0BAAuB,CACxB,CACH,CACD,CACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React, { HTMLAttributes } from "react";
|
|
2
2
|
import { OverridableComponent } from "../../util/OverridableComponent";
|
|
3
|
-
import { ResponsiveProp, SpacingScale } from "../utilities/
|
|
3
|
+
import { ResponsiveProp, SpacingScale } from "../utilities/types";
|
|
4
4
|
export interface StackProps extends HTMLAttributes<HTMLDivElement> {
|
|
5
5
|
children: React.ReactNode;
|
|
6
6
|
/**
|
|
@@ -11,7 +11,7 @@ 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 { getResponsiveProps, getResponsiveValue
|
|
14
|
+
import { getResponsiveProps, getResponsiveValue } from "../utilities/css";
|
|
15
15
|
export const Stack = forwardRef((_a, ref) => {
|
|
16
16
|
var { as: Component = "div", className, align, justify, wrap = true, gap, style: _style, direction = "row" } = _a, rest = __rest(_a, ["as", "className", "align", "justify", "wrap", "gap", "style", "direction"]);
|
|
17
17
|
const style = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, _style), { "--__ac-stack-wrap": wrap ? "wrap" : "nowrap" }), getResponsiveProps(`stack`, "gap", "spacing", gap)), getResponsiveValue(`stack`, "direction", direction)), getResponsiveValue(`stack`, "align", align)), getResponsiveValue(`stack`, "justify", justify));
|
|
@@ -1 +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,
|
|
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,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAqC1E,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,GAAG,KAAK,OAElB,EADI,IAAI,cATT,4EAUC,CADQ;IAIT,MAAM,KAAK,2FACN,MAAM,KACT,mBAAmB,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,KAC1C,kBAAkB,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,GAClD,kBAAkB,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC,GACnD,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,GAC3C,kBAAkB,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CACnD,CAAC;IAEF,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"}
|
|
@@ -1,14 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
export type SpacingScale = "0" | "05" | "1" | "1-alt" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "10" | "11" | "12" | "14" | "16" | "18" | "20" | "24" | "32";
|
|
3
|
-
export type SpaceDelimitedAttribute<T extends string> = T | `${T} ${T}` | `${T} ${T} ${T}` | `${T} ${T} ${T} ${T}`;
|
|
4
|
-
type FixedResponsiveT<T> = {
|
|
5
|
-
[Breakpoint in BreakpointsAlias]?: T;
|
|
6
|
-
};
|
|
7
|
-
export type ResponsiveProp<T> = T | FixedResponsiveT<T>;
|
|
1
|
+
import { ResponsiveProp } from "./types";
|
|
8
2
|
export declare function getResponsiveValue<T = string>(componentName: string, componentProp: string, responsiveProp?: ResponsiveProp<T>): {
|
|
9
3
|
[k: string]: T;
|
|
10
4
|
};
|
|
11
5
|
export declare function getResponsiveProps<T extends string>(componentName: string, componentProp: string, tokenSubgroup: string, responsiveProp?: ResponsiveProp<T>, invert?: boolean, tokenExceptions?: string[]): {
|
|
12
6
|
[x: string]: string;
|
|
13
7
|
};
|
|
14
|
-
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"css.js","sourceRoot":"","sources":["../../../src/layout/utilities/css.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"css.js","sourceRoot":"","sources":["../../../src/layout/utilities/css.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,kBAAkB,CAChC,aAAqB,EACrB,aAAqB,EACrB,cAAkC;IAElC,IAAI,CAAC,cAAc,EAAE;QACnB,OAAO,EAAE,CAAC;KACX;IAED,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE;QACtC,OAAO;YACL,CAAC,UAAU,aAAa,IAAI,aAAa,KAAK,CAAC,EAAE,cAAc;SAChE,CAAC;KACH;IAED,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE,eAAe,CAAC,EAAE,EAAE,CAAC;QACzE,UAAU,aAAa,IAAI,aAAa,IAAI,eAAe,EAAE;QAC7D,eAAe;KAChB,CAAC,CACH,CAAC;AACJ,CAAC;AAED,MAAM,uBAAuB,GAAG,CAAC,SAAiB,EAAE,EAAE;IACpD,QAAQ,SAAS,EAAE;QACjB,KAAK,IAAI;YACP,OAAO,KAAK,CAAC;KAChB;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,yBAAyB,GAAG,CAChC,aAAqB,EACrB,WAAmB,EACnB,aAAqB,EACrB,eAAyB,EACzB,MAAe,EACf,EAAE;IACF,OAAO,WAAW;SACf,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;QACjB,IAAI,aAAa,KAAK,eAAe,IAAI,CAAC,KAAK,MAAM,EAAE;YACrD,MAAM,KAAK,GAAG,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;YAC/B,OAAO,iBAAiB,KAAK,QAAQ,CAAC;SACvC;QAED,IAAI,MAAM,GAAG,WAAW,aAAa,IAAI,CAAC,GAAG,CAAC;QAC9C,IAAI,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;YAC/B,MAAM,GAAG,uBAAuB,CAAC,CAAC,CAAC,CAAC;SACrC;QACD,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,KAAK,GAAG,EAAE;gBACb,OAAO,GAAG,CAAC;aACZ;YACD,OAAO,aAAa,MAAM,GAAG,CAAC;SAC/B;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;SACD,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,UAAU,kBAAkB,CAChC,aAAqB,EACrB,aAAqB,EACrB,aAAqB,EACrB,cAAkC,EAClC,MAAM,GAAG,KAAK,EACd,kBAA4B,EAAE;IAE9B,IAAI,CAAC,cAAc,EAAE;QACnB,OAAO,EAAE,CAAC;KACX;IAED,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE;QACtC,OAAO;YACL,CAAC,UAAU,aAAa,IAAI,aAAa,KAAK,CAAC,EAC7C,yBAAyB,CACvB,aAAa,EACb,cAAc,EACd,aAAa,EACb,eAAe,EACf,MAAM,CACP;SACJ,CAAC;KACH;IAED,MAAM,UAAU,GAAG,EAAE,CAAC;IACtB,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,YAAY,CAAC,EAAE,EAAE;QACzE,UAAU,CAAC,UAAU,aAAa,IAAI,aAAa,IAAI,eAAe,EAAE,CAAC;YACvE,yBAAyB,CACvB,aAAa,EACb,YAAY,EACZ,aAAa,EACb,eAAe,EACf,MAAM,CACP,CAAC;IACN,CAAC,CAAC,CAAC;IACH,OAAO,UAAU,CAAC;AACpB,CAAC"}
|
|
@@ -3,7 +3,16 @@ import surfaceColors from "@navikt/ds-tokens/src/colors-surface.json";
|
|
|
3
3
|
import borderColors from "@navikt/ds-tokens/src/colors-border.json";
|
|
4
4
|
import borderRadii from "@navikt/ds-tokens/src/border.json";
|
|
5
5
|
import shadows from "@navikt/ds-tokens/src/shadow.json";
|
|
6
|
+
import Spacing from "@navikt/ds-tokens/src/spacing.json";
|
|
6
7
|
export type BackgroundToken = keyof typeof bgColors.a | keyof typeof surfaceColors.a;
|
|
7
8
|
export type BorderColorToken = keyof typeof borderColors.a;
|
|
8
9
|
export type BorderRadiiToken = keyof (typeof borderRadii.a)["border-radius"] | "0";
|
|
9
10
|
export type ShadowToken = keyof typeof shadows.a.shadow;
|
|
11
|
+
export type BreakpointsAlias = "xs" | "sm" | "md" | "lg" | "xl";
|
|
12
|
+
export type SpacingScale = keyof (typeof Spacing)["a"]["spacing"];
|
|
13
|
+
export type SpaceDelimitedAttribute<T extends string> = T | `${T} ${T}` | `${T} ${T} ${T}` | `${T} ${T} ${T} ${T}`;
|
|
14
|
+
type FixedResponsiveT<T> = {
|
|
15
|
+
[Breakpoint in BreakpointsAlias]?: T;
|
|
16
|
+
};
|
|
17
|
+
export type ResponsiveProp<T> = T | FixedResponsiveT<T>;
|
|
18
|
+
export {};
|
package/esm/loader/Loader.d.ts
CHANGED
|
@@ -37,7 +37,7 @@ export type LoaderType = React.ForwardRefExoticComponent<LoaderProps & React.Ref
|
|
|
37
37
|
*
|
|
38
38
|
* @example
|
|
39
39
|
* ```jsx
|
|
40
|
-
* <Loader size="3xlarge" title="
|
|
40
|
+
* <Loader size="3xlarge" title="Venter..." />
|
|
41
41
|
* ```
|
|
42
42
|
*/
|
|
43
43
|
export declare const Loader: LoaderType;
|
package/esm/loader/Loader.js
CHANGED
package/esm/modal/Modal.js
CHANGED
|
@@ -70,7 +70,7 @@ import dialogPolyfill, { needPolyfill } from "./dialog-polyfill";
|
|
|
70
70
|
*/
|
|
71
71
|
export const Modal = forwardRef((_a, ref) => {
|
|
72
72
|
var _b, _c;
|
|
73
|
-
var { header, children, open, onBeforeClose, onCancel, width, portal, className, "aria-labelledby": ariaLabelledby, style } = _a, rest = __rest(_a, ["header", "children", "open", "onBeforeClose", "onCancel", "width", "portal", "className", "aria-labelledby", "style"]);
|
|
73
|
+
var { header, children, open, onBeforeClose, onCancel, closeOnBackdropClick, width, portal, className, "aria-labelledby": ariaLabelledby, style, onClick } = _a, rest = __rest(_a, ["header", "children", "open", "onBeforeClose", "onCancel", "closeOnBackdropClick", "width", "portal", "className", "aria-labelledby", "style", "onClick"]);
|
|
74
74
|
const modalRef = useRef(null);
|
|
75
75
|
const mergedRef = useMemo(() => mergeRefs([modalRef, ref]), [ref]);
|
|
76
76
|
const ariaLabelId = useId();
|
|
@@ -86,6 +86,12 @@ export const Modal = forwardRef((_a, ref) => {
|
|
|
86
86
|
if (needPolyfill && modalRef.current && portalNode) {
|
|
87
87
|
dialogPolyfill.registerDialog(modalRef.current);
|
|
88
88
|
}
|
|
89
|
+
// We set autofocus on the dialog element to prevent the default behavior where first focusable element gets focus when modal is opened.
|
|
90
|
+
// This is mainly to fix an edge case where having a Tooltip as the first focusable element would make it activate when you open the modal.
|
|
91
|
+
// We have to use JS because it doesn't work to set it with a prop (React bug?)
|
|
92
|
+
// Currently doesn't seem to work in Chrome. See also Tooltip.tsx
|
|
93
|
+
if (modalRef.current && portalNode)
|
|
94
|
+
modalRef.current.autofocus = true;
|
|
89
95
|
}, [modalRef, portalNode]);
|
|
90
96
|
useEffect(() => {
|
|
91
97
|
// We need to have this in a useEffect so that the content renders before the modal is displayed,
|
|
@@ -102,22 +108,37 @@ export const Modal = forwardRef((_a, ref) => {
|
|
|
102
108
|
}, [modalRef, portalNode, open]);
|
|
103
109
|
useBodyScrollLock(modalRef, portalNode);
|
|
104
110
|
const isWidthPreset = typeof width === "string" && ["small", "medium"].includes(width);
|
|
105
|
-
const
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
111
|
+
const mergedClassName = cl("navds-modal", className, {
|
|
112
|
+
"navds-modal--polyfilled": needPolyfill,
|
|
113
|
+
"navds-modal--autowidth": !width,
|
|
114
|
+
[`navds-modal--${width}`]: isWidthPreset,
|
|
115
|
+
});
|
|
116
|
+
const mergedStyle = Object.assign(Object.assign({}, style), (!isWidthPreset ? { width } : {}));
|
|
117
|
+
const mergedOnCancel = (event) => {
|
|
118
|
+
if (onBeforeClose && onBeforeClose() === false) {
|
|
119
|
+
event.preventDefault();
|
|
120
|
+
}
|
|
121
|
+
else if (onCancel)
|
|
122
|
+
onCancel(event);
|
|
123
|
+
};
|
|
124
|
+
const mergedOnClick = closeOnBackdropClick && !needPolyfill // closeOnBackdropClick has issues on polyfill when nesting modals (DatePicker)
|
|
125
|
+
? (event) => {
|
|
126
|
+
onClick && onClick(event);
|
|
127
|
+
if (event.target === modalRef.current &&
|
|
128
|
+
(!onBeforeClose || onBeforeClose() !== false)) {
|
|
129
|
+
modalRef.current.close();
|
|
113
130
|
}
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
131
|
+
}
|
|
132
|
+
: onClick;
|
|
133
|
+
const mergedAriaLabelledBy = !ariaLabelledby && !rest["aria-label"] && header
|
|
134
|
+
? ariaLabelId
|
|
135
|
+
: ariaLabelledby;
|
|
136
|
+
const component = (
|
|
137
|
+
// eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-noninteractive-element-interactions
|
|
138
|
+
React.createElement("dialog", Object.assign({}, rest, { ref: mergedRef, className: mergedClassName, style: mergedStyle, onCancel: mergedOnCancel, onClick: mergedOnClick, "aria-labelledby": mergedAriaLabelledBy }),
|
|
119
139
|
React.createElement(ModalContext.Provider, { value: {
|
|
120
140
|
closeHandler: getCloseHandler(modalRef, header, onBeforeClose),
|
|
141
|
+
ref: modalRef,
|
|
121
142
|
} },
|
|
122
143
|
header && (React.createElement(ModalHeader, null,
|
|
123
144
|
header.label && (React.createElement(Detail, { className: "navds-modal__label" }, header.label)),
|
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,EACZ,UAAU,EACV,UAAU,EACV,SAAS,EACT,OAAO,EACP,MAAM,GACP,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,cAAc,EAAE,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAYjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModalContext.js","sourceRoot":"","sources":["../../src/modal/ModalContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ModalContext.js","sourceRoot":"","sources":["../../src/modal/ModalContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,CAAC,aAAa,CAA2B,IAAI,CAAC,CAAC"}
|
package/esm/modal/types.d.ts
CHANGED
|
@@ -42,6 +42,13 @@ export interface ModalProps extends React.DialogHTMLAttributes<HTMLDialogElement
|
|
|
42
42
|
* Called when the user presses the Esc key, unless `onBeforeClose()` returns `false`.
|
|
43
43
|
*/
|
|
44
44
|
onCancel?: React.ReactEventHandler<HTMLDialogElement>;
|
|
45
|
+
/**
|
|
46
|
+
* Whether to close when clicking on the backdrop.
|
|
47
|
+
*
|
|
48
|
+
* **WARNING:** Users may click outside by accident. Don't use if closing can cause data loss, or the modal contains important info.
|
|
49
|
+
* @default false
|
|
50
|
+
*/
|
|
51
|
+
closeOnBackdropClick?: boolean;
|
|
45
52
|
/**
|
|
46
53
|
* @default fit-content (up to 700px)
|
|
47
54
|
* */
|
package/esm/tooltip/Tooltip.js
CHANGED
|
@@ -9,12 +9,13 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
9
9
|
}
|
|
10
10
|
return t;
|
|
11
11
|
};
|
|
12
|
-
import { arrow as flArrow,
|
|
12
|
+
import { FloatingPortal, autoUpdate, arrow as flArrow, flip, offset, safePolygon, shift, useDismiss, useFloating, useFocus, useHover, useInteractions, } from "@floating-ui/react";
|
|
13
13
|
import cl from "clsx";
|
|
14
|
-
import React, { cloneElement, forwardRef, useMemo, useRef, useState, } from "react";
|
|
14
|
+
import React, { cloneElement, forwardRef, useContext, useMemo, useRef, useState, } from "react";
|
|
15
|
+
import { ModalContext } from "../modal/ModalContext";
|
|
16
|
+
import { useProvider } from "../provider";
|
|
15
17
|
import { Detail } from "../typography";
|
|
16
18
|
import { mergeRefs, useId } from "../util";
|
|
17
|
-
import { useProvider } from "../provider";
|
|
18
19
|
/**
|
|
19
20
|
* A component that displays a tooltip when the user hovers over its child element.
|
|
20
21
|
*
|
|
@@ -33,7 +34,11 @@ export const Tooltip = forwardRef((_a, ref) => {
|
|
|
33
34
|
var { children, className, arrow: _arrow = true, placement: _placement = "top", open: userOpen, defaultOpen = false, offset: _offset, content, delay = 150, id, keys, maxChar = 80 } = _a, rest = __rest(_a, ["children", "className", "arrow", "placement", "open", "defaultOpen", "offset", "content", "delay", "id", "keys", "maxChar"]);
|
|
34
35
|
const [open, setOpen] = useState(defaultOpen);
|
|
35
36
|
const arrowRef = useRef(null);
|
|
36
|
-
const
|
|
37
|
+
const modalContext = useContext(ModalContext);
|
|
38
|
+
const providerRootElement = (_b = useProvider()) === null || _b === void 0 ? void 0 : _b.rootElement;
|
|
39
|
+
const rootElement = modalContext
|
|
40
|
+
? modalContext.ref.current
|
|
41
|
+
: providerRootElement;
|
|
37
42
|
const { x, y, strategy, context, placement, middlewareData: { arrow: { x: arrowX, y: arrowY } = {}, hide: { referenceHidden } = {}, }, refs, } = useFloating({
|
|
38
43
|
placement: _placement,
|
|
39
44
|
open: userOpen !== null && userOpen !== void 0 ? userOpen : open,
|
|
@@ -44,7 +49,13 @@ export const Tooltip = forwardRef((_a, ref) => {
|
|
|
44
49
|
flip({ padding: 5, fallbackPlacements: ["bottom", "top"] }),
|
|
45
50
|
flArrow({ element: arrowRef, padding: 5 }),
|
|
46
51
|
],
|
|
47
|
-
whileElementsMounted:
|
|
52
|
+
whileElementsMounted: modalContext
|
|
53
|
+
? (reference, floating, update) =>
|
|
54
|
+
// Reduces jumping in Chrome when used in a Modal and it's the first focusable element.
|
|
55
|
+
// Can be removed when autofocus starts working on <dialog> in Chrome. See also Modal.tsx
|
|
56
|
+
autoUpdate(reference, floating, update, { animationFrame: true })
|
|
57
|
+
: autoUpdate,
|
|
58
|
+
strategy: modalContext ? "fixed" : undefined,
|
|
48
59
|
});
|
|
49
60
|
const { getReferenceProps, getFloatingProps } = useInteractions([
|
|
50
61
|
useHover(context, { handleClose: safePolygon(), restMs: delay }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tooltip.js","sourceRoot":"","sources":["../../src/tooltip/Tooltip.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EACL,KAAK,IAAI,OAAO,EAChB,
|
|
1
|
+
{"version":3,"file":"Tooltip.js","sourceRoot":"","sources":["../../src/tooltip/Tooltip.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@navikt/ds-react",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.8.0",
|
|
4
4
|
"description": "Aksel react-components for NAV designsystem",
|
|
5
5
|
"author": "Aksel | NAV designsystem team",
|
|
6
6
|
"license": "MIT",
|
|
@@ -38,8 +38,8 @@
|
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
40
|
"@floating-ui/react": "0.25.4",
|
|
41
|
-
"@navikt/aksel-icons": "^5.
|
|
42
|
-
"@navikt/ds-tokens": "^5.
|
|
41
|
+
"@navikt/aksel-icons": "^5.8.0",
|
|
42
|
+
"@navikt/ds-tokens": "^5.8.0",
|
|
43
43
|
"@radix-ui/react-tabs": "1.0.0",
|
|
44
44
|
"@radix-ui/react-toggle-group": "1.0.0",
|
|
45
45
|
"clsx": "^1.2.1",
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
+
import { ChevronDownIcon } from "@navikt/aksel-icons";
|
|
1
2
|
import cl from "clsx";
|
|
2
3
|
import React, { forwardRef, useContext } from "react";
|
|
3
4
|
import { Heading } from "../typography";
|
|
4
5
|
import { AccordionContext } from "./AccordionContext";
|
|
5
6
|
import { AccordionItemContext } from "./AccordionItem";
|
|
6
|
-
import { ChevronDownIcon } from "@navikt/aksel-icons";
|
|
7
7
|
|
|
8
8
|
export interface AccordionHeaderProps
|
|
9
9
|
extends React.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
@@ -37,13 +37,13 @@ const AccordionHeader = forwardRef<HTMLButtonElement, AccordionHeaderProps>(
|
|
|
37
37
|
aria-expanded={itemContext.open}
|
|
38
38
|
type="button"
|
|
39
39
|
>
|
|
40
|
-
<
|
|
40
|
+
<span className="navds-accordion__icon-wrapper">
|
|
41
41
|
<ChevronDownIcon
|
|
42
42
|
className="navds-accordion__header-chevron"
|
|
43
43
|
title="Vis mer"
|
|
44
44
|
aria-hidden
|
|
45
45
|
/>
|
|
46
|
-
</
|
|
46
|
+
</span>
|
|
47
47
|
<Heading
|
|
48
48
|
size={accordionContext?.headingSize ?? "small"}
|
|
49
49
|
as="span"
|
package/src/chips/Toggle.tsx
CHANGED
|
@@ -6,7 +6,7 @@ export interface ToggleChipsProps
|
|
|
6
6
|
extends React.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
7
7
|
children: string;
|
|
8
8
|
/**
|
|
9
|
-
* Toggles aria-pressed and visual
|
|
9
|
+
* Toggles aria-pressed and visual changes
|
|
10
10
|
*/
|
|
11
11
|
selected?: boolean;
|
|
12
12
|
/**
|
|
@@ -44,28 +44,38 @@ export const ToggleChips: OverridableComponent<
|
|
|
44
44
|
className={cl(
|
|
45
45
|
"navds-chips__chip navds-chips__toggle",
|
|
46
46
|
className,
|
|
47
|
-
`navds-chips__toggle--${variant}
|
|
47
|
+
`navds-chips__toggle--${variant}`,
|
|
48
|
+
{ "navds-chips__toggle--with-checkmark": checkmark }
|
|
48
49
|
)}
|
|
49
50
|
aria-pressed={selected}
|
|
50
51
|
>
|
|
51
|
-
{
|
|
52
|
+
{checkmark && (
|
|
52
53
|
<svg
|
|
53
54
|
aria-hidden
|
|
54
55
|
className="navds-chips__toggle-icon"
|
|
55
|
-
width="
|
|
56
|
-
height="
|
|
57
|
-
viewBox="0 0
|
|
56
|
+
width="1.25em"
|
|
57
|
+
height="1.25em"
|
|
58
|
+
viewBox="0 0 20 20"
|
|
58
59
|
fill="none"
|
|
59
60
|
xmlns="http://www.w3.org/2000/svg"
|
|
60
61
|
focusable={false}
|
|
61
62
|
role="img"
|
|
62
63
|
>
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
64
|
+
{selected ? (
|
|
65
|
+
<path
|
|
66
|
+
fillRule="evenodd"
|
|
67
|
+
clipRule="evenodd"
|
|
68
|
+
d="M10 18.125C14.4873 18.125 18.125 14.4873 18.125 10C18.125 5.51269 14.4873 1.875 10 1.875C5.51269 1.875 1.875 5.51269 1.875 10C1.875 14.4873 5.51269 18.125 10 18.125ZM14.128 7.72904C14.3695 7.44357 14.3339 7.01635 14.0485 6.7748C13.763 6.53326 13.3358 6.56886 13.0942 6.85432L8.60428 12.1606L6.41627 9.97263C6.15185 9.70822 5.72315 9.70822 5.45873 9.97263C5.19431 10.2371 5.19431 10.6658 5.45873 10.9302L8.16706 13.6385C8.30095 13.7724 8.48479 13.8441 8.67397 13.8362C8.86316 13.8284 9.0404 13.7416 9.16271 13.5971L14.128 7.72904Z"
|
|
69
|
+
fill="currentColor"
|
|
70
|
+
/>
|
|
71
|
+
) : (
|
|
72
|
+
<path
|
|
73
|
+
fillRule="evenodd"
|
|
74
|
+
clipRule="evenodd"
|
|
75
|
+
d="M10 3.125C6.20304 3.125 3.125 6.20304 3.125 10C3.125 13.797 6.20304 16.875 10 16.875C13.797 16.875 16.875 13.797 16.875 10C16.875 6.20304 13.797 3.125 10 3.125ZM1.875 10C1.875 5.51269 5.51269 1.875 10 1.875C14.4873 1.875 18.125 5.51269 18.125 10C18.125 14.4873 14.4873 18.125 10 18.125C5.51269 18.125 1.875 14.4873 1.875 10Z"
|
|
76
|
+
fill="var(--a-border-default)"
|
|
77
|
+
/>
|
|
78
|
+
)}
|
|
69
79
|
</svg>
|
|
70
80
|
)}
|
|
71
81
|
<span className="navds-chips__chip-text">{children}</span>
|
|
@@ -60,11 +60,11 @@ Default.argTypes = {
|
|
|
60
60
|
},
|
|
61
61
|
};
|
|
62
62
|
|
|
63
|
-
export const Toggle = () => {
|
|
63
|
+
export const Toggle = ({ size }) => {
|
|
64
64
|
const [selected, setSelected] = useState<number[]>([2, 4]);
|
|
65
65
|
return (
|
|
66
66
|
<div className="colgap">
|
|
67
|
-
<Chips>
|
|
67
|
+
<Chips size={size}>
|
|
68
68
|
{options.map((c, y) => (
|
|
69
69
|
<Chips.Toggle
|
|
70
70
|
selected={selected.includes(y)}
|
|
@@ -81,7 +81,7 @@ export const Toggle = () => {
|
|
|
81
81
|
</Chips.Toggle>
|
|
82
82
|
))}
|
|
83
83
|
</Chips>
|
|
84
|
-
<Chips>
|
|
84
|
+
<Chips size={size}>
|
|
85
85
|
{options.map((c, y) => (
|
|
86
86
|
<Chips.Toggle
|
|
87
87
|
variant="neutral"
|
|
@@ -102,6 +102,12 @@ export const Toggle = () => {
|
|
|
102
102
|
</div>
|
|
103
103
|
);
|
|
104
104
|
};
|
|
105
|
+
Toggle.argTypes = {
|
|
106
|
+
size: {
|
|
107
|
+
control: { type: "radio" },
|
|
108
|
+
options: ["medium", "small"],
|
|
109
|
+
},
|
|
110
|
+
};
|
|
105
111
|
|
|
106
112
|
export const ToggleNoCheckmark = () => {
|
|
107
113
|
const [selected, setSelected] = useState<number>(2);
|
|
@@ -4,7 +4,6 @@ import isSameDay from "date-fns/isSameDay";
|
|
|
4
4
|
import React, { useId, useState } from "react";
|
|
5
5
|
import { useDatepicker, useRangeDatepicker } from "..";
|
|
6
6
|
import { BodyLong, Button, HGrid, HStack, Modal, VStack } from "../..";
|
|
7
|
-
|
|
8
7
|
import DatePicker, { DatePickerProps } from "./DatePicker";
|
|
9
8
|
|
|
10
9
|
const disabledDays = [
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { Meta, StoryFn } from "@storybook/react";
|
|
2
|
+
import setYear from "date-fns/setYear";
|
|
2
3
|
import React, { useId, useState } from "react";
|
|
3
4
|
import { Button, DateInputProps } from "../..";
|
|
4
5
|
import { useMonthpicker } from "../hooks";
|
|
5
|
-
import MonthPicker
|
|
6
|
+
import MonthPicker from "./MonthPicker";
|
|
7
|
+
import { MonthPickerProps } from "./types";
|
|
6
8
|
|
|
7
9
|
export default {
|
|
8
10
|
title: "ds-react/Monthpicker",
|
|
@@ -147,3 +149,28 @@ export const UserControlled = () => {
|
|
|
147
149
|
</div>
|
|
148
150
|
);
|
|
149
151
|
};
|
|
152
|
+
|
|
153
|
+
export const FollowYear = () => {
|
|
154
|
+
const { monthpickerProps, inputProps, selectedMonth, setSelected } =
|
|
155
|
+
useMonthpicker({
|
|
156
|
+
fromDate: new Date("Aug 23 2019"),
|
|
157
|
+
toDate: new Date("Aug 23 2025"),
|
|
158
|
+
onMonthChange: console.log,
|
|
159
|
+
});
|
|
160
|
+
|
|
161
|
+
const customYearChange = (yearDate?: Date) => {
|
|
162
|
+
monthpickerProps.onYearChange?.(yearDate);
|
|
163
|
+
if (selectedMonth && yearDate) {
|
|
164
|
+
setSelected(setYear(selectedMonth, yearDate.getFullYear()));
|
|
165
|
+
}
|
|
166
|
+
};
|
|
167
|
+
|
|
168
|
+
return (
|
|
169
|
+
<div className="min-h-96">
|
|
170
|
+
<MonthPicker {...monthpickerProps} onYearChange={customYearChange}>
|
|
171
|
+
<MonthPicker.Input {...inputProps} label="Velg månede" />
|
|
172
|
+
</MonthPicker>
|
|
173
|
+
{selectedMonth && <div className="pt-4">{selectedMonth.getMonth()}</div>}
|
|
174
|
+
</div>
|
|
175
|
+
);
|
|
176
|
+
};
|
|
@@ -95,8 +95,7 @@ export const FilteredOptionsProvider = ({ children, value: props }) => {
|
|
|
95
95
|
shouldAutocomplete &&
|
|
96
96
|
normalizeText(searchTerm) !== "" &&
|
|
97
97
|
(previousSearchTerm?.length || 0) < searchTerm.length &&
|
|
98
|
-
filteredOptions.length > 0
|
|
99
|
-
!isValueInList(searchTerm, filteredOptions)
|
|
98
|
+
filteredOptions.length > 0
|
|
100
99
|
) {
|
|
101
100
|
setValue(
|
|
102
101
|
`${searchTerm}${filteredOptions[0].substring(searchTerm.length)}`
|
|
@@ -31,6 +31,7 @@ const Input = forwardRef<HTMLInputElement, InputProps>(
|
|
|
31
31
|
allowNewValues,
|
|
32
32
|
currentOption,
|
|
33
33
|
filteredOptions,
|
|
34
|
+
isValueNew,
|
|
34
35
|
toggleIsListOpen,
|
|
35
36
|
isListOpen,
|
|
36
37
|
filteredOptionsIndex,
|
|
@@ -46,29 +47,43 @@ const Input = forwardRef<HTMLInputElement, InputProps>(
|
|
|
46
47
|
|
|
47
48
|
const onEnter = useCallback(
|
|
48
49
|
(event: React.KeyboardEvent) => {
|
|
50
|
+
const isTextInSelectedOptions = (text: string) => {
|
|
51
|
+
return selectedOptions.find(
|
|
52
|
+
(item) => item.toLocaleLowerCase() === text.toLocaleLowerCase()
|
|
53
|
+
);
|
|
54
|
+
};
|
|
55
|
+
|
|
49
56
|
if (currentOption) {
|
|
50
57
|
event.preventDefault();
|
|
51
58
|
// Selecting a value from the dropdown / FilteredOptions
|
|
52
59
|
toggleOption(currentOption, event);
|
|
53
|
-
if (!isMultiSelect && !
|
|
60
|
+
if (!isMultiSelect && !isTextInSelectedOptions(currentOption))
|
|
54
61
|
toggleIsListOpen(false);
|
|
55
|
-
} else if (shouldAutocomplete &&
|
|
62
|
+
} else if (shouldAutocomplete && isTextInSelectedOptions(value)) {
|
|
56
63
|
event.preventDefault();
|
|
57
64
|
// Trying to set the same value that is already set, so just clearing the input
|
|
58
65
|
clearInput(event);
|
|
59
66
|
} else if ((allowNewValues || shouldAutocomplete) && value !== "") {
|
|
60
67
|
event.preventDefault();
|
|
61
68
|
// Autocompleting or adding a new value
|
|
62
|
-
|
|
63
|
-
|
|
69
|
+
const selectedValue =
|
|
70
|
+
allowNewValues && isValueNew ? value : filteredOptions[0];
|
|
71
|
+
toggleOption(selectedValue, event);
|
|
72
|
+
if (
|
|
73
|
+
!isMultiSelect &&
|
|
74
|
+
!isTextInSelectedOptions(filteredOptions[0] || selectedValue)
|
|
75
|
+
) {
|
|
64
76
|
toggleIsListOpen(false);
|
|
77
|
+
}
|
|
65
78
|
}
|
|
66
79
|
},
|
|
67
80
|
[
|
|
68
81
|
allowNewValues,
|
|
69
82
|
clearInput,
|
|
70
83
|
currentOption,
|
|
84
|
+
filteredOptions,
|
|
71
85
|
isMultiSelect,
|
|
86
|
+
isValueNew,
|
|
72
87
|
selectedOptions,
|
|
73
88
|
shouldAutocomplete,
|
|
74
89
|
toggleIsListOpen,
|