mirror of
https://github.com/navikt/aksel.git
synced 2026-11-02 19:04:07 +00:00
Compare commits
6
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ca65ffba89 | ||
|
|
f5d9c288ad | ||
|
|
009cab1bc1 | ||
|
|
1d55e2481e | ||
|
|
3e039503fb | ||
|
|
a47cbaff83 |
No files matched your search
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@navikt/ds-react": patch
|
||||
---
|
||||
|
||||
Date utilities: Import date-fns functions and locales from their own paths, so unbundled Node imports (SSR, Vitest/Jest) no longer load every date-fns locale.
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
"@navikt/aksel-icons": minor
|
||||
---
|
||||
|
||||
Icons: All icons are now available as CSS custom properties. Import `@navikt/aksel-icons/css/<IconName>.css` for a single icon (e.g. `--aksel-icon-magnifying-glass`), or `@navikt/aksel-icons/css/index.css` for every icon.
|
||||
@@ -59,37 +59,6 @@ declare module "*.svg" {
|
||||
}
|
||||
```
|
||||
|
||||
### CSS custom properties
|
||||
|
||||
All icons are available as CSS custom properties behind `/css`, one file per icon. Each file declares a `--aksel-icon-<kebab-case-name>` variable on `:root`, containing the icon as an SVG data URI.
|
||||
|
||||
```css
|
||||
@import "@navikt/aksel-icons/css/MagnifyingGlass.css";
|
||||
|
||||
.search-button::before {
|
||||
content: "";
|
||||
display: inline-block;
|
||||
width: 1.5rem;
|
||||
height: 1.5rem;
|
||||
background-color: currentColor;
|
||||
mask: var(--aksel-icon-magnifying-glass) center / contain no-repeat;
|
||||
}
|
||||
|
||||
@media (forced-colors: active) {
|
||||
.search-button::before {
|
||||
background-color: CanvasText;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
To get every icon, import `@navikt/aksel-icons/css/index.css`. This file contains all ~1000 icons (≈700 kB, ≈135 kB gzipped), so prefer importing only the icons you use.
|
||||
|
||||
Import icon files once in a global stylesheet (e.g. your root layout or `globals.css`), not in CSS modules or per-component stylesheets. The variables are global, and the SVG is inlined in each file, so importing the same icon in several places duplicates it in every CSS chunk.
|
||||
|
||||
- Icons added with CSS are decorative only. Give the parent element an accessible name, e.g. with visible text or `aria-label`.
|
||||
- In forced colors mode (e.g. Windows High Contrast), `background-color` is forced to the page background, which hides the icon. Use `background-color: CanvasText` inside `@media (forced-colors: active)` as shown above, so the icon follows the user's text color.
|
||||
- If you use a Content Security Policy, `img-src` must allow `data:`.
|
||||
|
||||
## [Learn more](https://aksel.nav.no/ikoner)
|
||||
|
||||
## License
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
import fastglob from "fast-glob";
|
||||
import path from "node:path";
|
||||
import { describe, expect, test } from "vitest";
|
||||
import {
|
||||
optimizeSvg,
|
||||
svgToDataUri,
|
||||
toCssVariableName,
|
||||
// @ts-expect-error -- css-icons is JavaScript without a declaration file.
|
||||
} from "../config/css-icons";
|
||||
|
||||
describe("toCssVariableName", () => {
|
||||
test.each([
|
||||
["MagnifyingGlass", "--aksel-icon-magnifying-glass"],
|
||||
["Buildings2Fill", "--aksel-icon-buildings-2-fill"],
|
||||
["ClipboardXMark", "--aksel-icon-clipboard-x-mark"],
|
||||
["XMark", "--aksel-icon-x-mark"],
|
||||
])("%s -> %s", (iconName, expected) => {
|
||||
expect(toCssVariableName(iconName)).toBe(expected);
|
||||
});
|
||||
|
||||
test("is unique for every icon", () => {
|
||||
const names = fastglob
|
||||
.sync("*.svg", { cwd: path.resolve(__dirname, "../icons") })
|
||||
.map((file) => toCssVariableName(path.basename(file, ".svg")));
|
||||
|
||||
expect(new Set(names).size).toBe(names.length);
|
||||
});
|
||||
});
|
||||
|
||||
describe("svgToDataUri", () => {
|
||||
const svg = `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M10.5 3.25 4.75 10.5Z" fill="#202733"/>
|
||||
</svg>`;
|
||||
|
||||
test("keeps viewBox, uses currentColor and escapes unsafe characters", () => {
|
||||
const uri = svgToDataUri(optimizeSvg(svg));
|
||||
const data = uri.slice('url("'.length, -'")'.length);
|
||||
|
||||
expect(uri.startsWith('url("data:image/svg+xml,')).toBe(true);
|
||||
expect(data).toContain("viewBox='0 0 24 24'");
|
||||
expect(data).toContain("fill='currentColor'");
|
||||
expect(data).not.toMatch(/["#<>]|width=|height=/);
|
||||
});
|
||||
});
|
||||
@@ -1,95 +0,0 @@
|
||||
const fastglob = require("fast-glob");
|
||||
const kebabCase = require("lodash/kebabCase");
|
||||
const path = require("node:path");
|
||||
const {
|
||||
existsSync,
|
||||
mkdirSync,
|
||||
readFileSync,
|
||||
rmSync,
|
||||
writeFileSync,
|
||||
} = require("node:fs");
|
||||
const { optimize } = require("svgo");
|
||||
|
||||
/**
|
||||
* @param {string} iconName e.g. "MagnifyingGlass"
|
||||
* @returns {string} e.g. "--aksel-icon-magnifying-glass"
|
||||
*/
|
||||
function toCssVariableName(iconName) {
|
||||
return `--aksel-icon-${kebabCase(iconName)}`;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} svgString
|
||||
* @returns {string} Minified SVG with currentColor fill and preserved viewBox
|
||||
*/
|
||||
function optimizeSvg(svgString) {
|
||||
return optimize(svgString.replaceAll("#202733", "currentColor"), {
|
||||
multipass: true,
|
||||
plugins: [
|
||||
{
|
||||
name: "preset-default",
|
||||
params: { overrides: { removeViewBox: false } },
|
||||
},
|
||||
{ name: "removeAttrs", params: { attrs: "svg:(width|height)" } },
|
||||
],
|
||||
}).data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Encodes SVG for use in a CSS `url()`. Keeps readable characters unescaped for smaller output.
|
||||
* @param {string} svgString
|
||||
* @returns {string}
|
||||
*/
|
||||
function svgToDataUri(svgString) {
|
||||
const encoded = svgString
|
||||
.replaceAll('"', "'")
|
||||
.replace(/\s+/g, " ")
|
||||
.trim()
|
||||
.replace(/[^\x20-\x7e]|[%#<>{}"\\]/g, encodeURIComponent);
|
||||
|
||||
return `url("data:image/svg+xml,${encoded}")`;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string[]} declarations
|
||||
* @returns {string}
|
||||
*/
|
||||
function createCssFile(declarations) {
|
||||
return `:root {\n${declarations.map((d) => ` ${d}`).join("\n")}\n}\n`;
|
||||
}
|
||||
|
||||
function main() {
|
||||
const basePath = path.resolve(__dirname, "../icons");
|
||||
const cssFolder = path.resolve(__dirname, "../dist/css");
|
||||
|
||||
const svgList = fastglob.sync("*.svg", { cwd: basePath }).sort();
|
||||
|
||||
if (existsSync(cssFolder)) {
|
||||
rmSync(cssFolder, { recursive: true, force: true });
|
||||
}
|
||||
mkdirSync(cssFolder, { recursive: true });
|
||||
|
||||
const declarations = [];
|
||||
|
||||
for (const svg of svgList) {
|
||||
const iconName = path.basename(svg, ".svg");
|
||||
const svgString = readFileSync(path.join(basePath, svg)).toString();
|
||||
const declaration = `${toCssVariableName(iconName)}: ${svgToDataUri(optimizeSvg(svgString))};`;
|
||||
|
||||
declarations.push(declaration);
|
||||
writeFileSync(
|
||||
path.join(cssFolder, `${iconName}.css`),
|
||||
createCssFile([declaration]),
|
||||
);
|
||||
}
|
||||
|
||||
writeFileSync(path.join(cssFolder, "index.css"), createCssFile(declarations));
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
createCssFile,
|
||||
main,
|
||||
optimizeSvg,
|
||||
svgToDataUri,
|
||||
toCssVariableName,
|
||||
};
|
||||
@@ -2,11 +2,6 @@ import type { Meta, StoryObj } from "@storybook/react-vite";
|
||||
import React from "react";
|
||||
import * as AkselIcons from "@navikt/aksel-icons";
|
||||
import type { StarFillIcon } from "@navikt/aksel-icons";
|
||||
import "@navikt/aksel-icons/css/Airplane.css";
|
||||
import "@navikt/aksel-icons/css/Buildings2Fill.css";
|
||||
import "@navikt/aksel-icons/css/MagnifyingGlass.css";
|
||||
import "@navikt/aksel-icons/css/StarFill.css";
|
||||
import "@navikt/aksel-icons/css/XMarkOctagonFill.css";
|
||||
|
||||
const meta: Meta<typeof StarFillIcon> = {
|
||||
title: "aksel-icons/Icons",
|
||||
@@ -30,45 +25,3 @@ export const IconsInverted: Story = {
|
||||
render: Icons.render,
|
||||
globals: { theme: "dark" },
|
||||
};
|
||||
|
||||
const cssIconVariables = [
|
||||
"--aksel-icon-airplane",
|
||||
"--aksel-icon-buildings-2-fill",
|
||||
"--aksel-icon-magnifying-glass",
|
||||
"--aksel-icon-star-fill",
|
||||
"--aksel-icon-x-mark-octagon-fill",
|
||||
];
|
||||
|
||||
export const CssIcons: Story = {
|
||||
render: () => (
|
||||
<div
|
||||
style={{ display: "flex", gap: "1rem", color: "var(--ax-text-accent)" }}
|
||||
>
|
||||
<style>
|
||||
{`.css-icon {
|
||||
display: inline-block;
|
||||
width: 3rem;
|
||||
height: 3rem;
|
||||
background-color: currentColor;
|
||||
print-color-adjust: exact;
|
||||
}
|
||||
@media (forced-colors: active) {
|
||||
.css-icon { background-color: CanvasText; }
|
||||
}`}
|
||||
</style>
|
||||
{cssIconVariables.map((variable) => (
|
||||
<span
|
||||
key={variable}
|
||||
title={variable}
|
||||
className="css-icon"
|
||||
style={{ mask: `var(${variable}) center / contain no-repeat` }}
|
||||
/>
|
||||
))}
|
||||
</div>
|
||||
),
|
||||
};
|
||||
|
||||
export const CssIconsInverted: Story = {
|
||||
render: CssIcons.render,
|
||||
globals: { theme: "dark" },
|
||||
};
|
||||
@@ -23,9 +23,7 @@
|
||||
"access": "public",
|
||||
"provenance": true
|
||||
},
|
||||
"sideEffects": [
|
||||
"*.css"
|
||||
],
|
||||
"sideEffects": false,
|
||||
"license": "MIT",
|
||||
"main": "./dist/react/cjs/index.js",
|
||||
"module": "./dist/react/esm/index.js",
|
||||
@@ -46,7 +44,6 @@
|
||||
"default": "./dist/metadata.js"
|
||||
},
|
||||
"./svg/*.svg": "./dist/svg/*.svg",
|
||||
"./css/*.css": "./dist/css/*.css",
|
||||
"./package.json": "./package.json"
|
||||
},
|
||||
"typesVersions": {
|
||||
@@ -65,11 +62,10 @@
|
||||
"create-icons": "svgr --no-prettier --silent --index-template config/index-template.js --out-dir src icons && yarn prettify-icons",
|
||||
"prettify-icons": "yarn prettier ./src --write --ignore-path nonexisting-path --log-level silent --no-config",
|
||||
"parse-svg": "node -e 'require(\"./config/parse-svg.js\").main()'",
|
||||
"css-icons": "node -e 'require(\"./config/css-icons.js\").main()'",
|
||||
"copy": "copyfiles util/* src",
|
||||
"update-metadata": "node config/metadata.js",
|
||||
"write-packagejson": "echo '{\"type\": \"module\", \"sideEffects\": false}' > dist/react/esm/package.json",
|
||||
"build": "yarn copy && yarn create-icons && concurrently \"tsc\" \"tsc -p tsconfig.esm.json && tsc-alias -p tsconfig.esm.json && yarn write-packagejson\" && node config/cleanTypes.js && yarn update-metadata && yarn parse-svg && yarn css-icons",
|
||||
"build": "yarn copy && yarn create-icons && concurrently \"tsc\" \"tsc -p tsconfig.esm.json && tsc-alias -p tsconfig.esm.json && yarn write-packagejson\" && node config/cleanTypes.js && yarn update-metadata && yarn parse-svg",
|
||||
"fetch-new:icons": "tsx --env-file=.env config/figma/index.ts",
|
||||
"zip:icons": "node config/zip.js",
|
||||
"test": "vitest run",
|
||||
@@ -91,7 +87,6 @@
|
||||
"prettier": "3.9.6",
|
||||
"react": "19.3.1",
|
||||
"rehype-parse": "9.0.1",
|
||||
"svgo": "3.3.5",
|
||||
"tsc-alias": "1.9.7",
|
||||
"tsx": "^4.23.15",
|
||||
"typescript": "6.0.3",
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { type Locale, format } from "date-fns";
|
||||
import type { Locale } from "date-fns";
|
||||
import { format } from "date-fns/format";
|
||||
import React, { useEffect, useRef } from "react";
|
||||
import type { CalendarDay, Modifiers } from "react-day-picker";
|
||||
import { cl } from "../../utils/helpers";
|
||||
|
||||
@@ -1,12 +1,10 @@
|
||||
import {
|
||||
type Locale,
|
||||
format,
|
||||
getMonth,
|
||||
getYear,
|
||||
setMonth,
|
||||
setYear,
|
||||
startOfMonth,
|
||||
} from "date-fns";
|
||||
import type { Locale } from "date-fns";
|
||||
import { format } from "date-fns/format";
|
||||
import { getMonth } from "date-fns/getMonth";
|
||||
import { getYear } from "date-fns/getYear";
|
||||
import { setMonth } from "date-fns/setMonth";
|
||||
import { setYear } from "date-fns/setYear";
|
||||
import { startOfMonth } from "date-fns/startOfMonth";
|
||||
import React, { type ChangeEvent, useCallback } from "react";
|
||||
import { type CalendarMonth, useDayPicker } from "react-day-picker";
|
||||
import { ArrowLeftIcon, ArrowRightIcon } from "@navikt/aksel-icons";
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { isWeekend } from "date-fns";
|
||||
import { isWeekend } from "date-fns/isWeekend";
|
||||
import React, { useCallback, useState } from "react";
|
||||
import {
|
||||
type ClassNames,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { isSameDay } from "date-fns";
|
||||
import { isSameDay } from "date-fns/isSameDay";
|
||||
import React, { forwardRef, useRef, useState } from "react";
|
||||
import type { DateRange } from "react-day-picker";
|
||||
import { useId } from "../../utils-external";
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { differenceInCalendarDays, isWeekend } from "date-fns";
|
||||
import { differenceInCalendarDays } from "date-fns/differenceInCalendarDays";
|
||||
import { isWeekend } from "date-fns/isWeekend";
|
||||
import React, { useCallback, useState } from "react";
|
||||
import { type DayEventHandler, dateMatchModifiers } from "react-day-picker";
|
||||
import { getLocaleFromString } from "../../utils/components/date/Date.locale";
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
import { differenceInCalendarDays, isSameDay, isWeekend } from "date-fns";
|
||||
import { differenceInCalendarDays } from "date-fns/differenceInCalendarDays";
|
||||
import { isSameDay } from "date-fns/isSameDay";
|
||||
import { isWeekend } from "date-fns/isWeekend";
|
||||
import React, { useState } from "react";
|
||||
import { dateMatchModifiers } from "react-day-picker";
|
||||
import { getLocaleFromString } from "../../utils/components/date/Date.locale";
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
import {
|
||||
compareAsc,
|
||||
compareDesc,
|
||||
format,
|
||||
isSameMonth,
|
||||
setYear,
|
||||
} from "date-fns";
|
||||
import { compareAsc } from "date-fns/compareAsc";
|
||||
import { compareDesc } from "date-fns/compareDesc";
|
||||
import { format } from "date-fns/format";
|
||||
import { isSameMonth } from "date-fns/isSameMonth";
|
||||
import { setYear } from "date-fns/setYear";
|
||||
import React, { useEffect, useRef } from "react";
|
||||
import { dateIsInCurrentMonth, isMatch } from "../../utils/date";
|
||||
import { cl } from "../../utils/helpers";
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
import {
|
||||
format,
|
||||
isAfter,
|
||||
isBefore,
|
||||
setYear,
|
||||
startOfMonth,
|
||||
startOfYear,
|
||||
} from "date-fns";
|
||||
import { format } from "date-fns/format";
|
||||
import { isAfter } from "date-fns/isAfter";
|
||||
import { isBefore } from "date-fns/isBefore";
|
||||
import { setYear } from "date-fns/setYear";
|
||||
import { startOfMonth } from "date-fns/startOfMonth";
|
||||
import { startOfYear } from "date-fns/startOfYear";
|
||||
import React from "react";
|
||||
import { ArrowLeftIcon, ArrowRightIcon } from "@navikt/aksel-icons";
|
||||
import { Button } from "../../button";
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { type Locale, isSameYear } from "date-fns";
|
||||
import type { Locale } from "date-fns";
|
||||
import { isSameYear } from "date-fns/isSameYear";
|
||||
import React from "react";
|
||||
import { clampDisplayYear } from "../../utils/date";
|
||||
import { createStrictContext } from "../../utils/helpers";
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { setYear } from "date-fns";
|
||||
import { setYear } from "date-fns/setYear";
|
||||
import type { Matcher } from "../../utils/components/date/Date.typeutils";
|
||||
import { isMatch } from "../../utils/date";
|
||||
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
import { isSameMonth, setMonth, setYear, startOfMonth } from "date-fns";
|
||||
import { isSameMonth } from "date-fns/isSameMonth";
|
||||
import { setMonth } from "date-fns/setMonth";
|
||||
import { setYear } from "date-fns/setYear";
|
||||
import { startOfMonth } from "date-fns/startOfMonth";
|
||||
import React, { useState } from "react";
|
||||
import { BodyShort } from "../../typography";
|
||||
import { isMatch } from "../../utils/date";
|
||||
|
||||
@@ -1,19 +1,17 @@
|
||||
import {
|
||||
type Locale,
|
||||
addDays,
|
||||
addMonths,
|
||||
addYears,
|
||||
differenceInDays,
|
||||
differenceInMonths,
|
||||
differenceInYears,
|
||||
endOfMonth,
|
||||
endOfYear,
|
||||
format,
|
||||
startOfDay,
|
||||
startOfMonth,
|
||||
startOfYear,
|
||||
subDays,
|
||||
} from "date-fns";
|
||||
import type { Locale } from "date-fns";
|
||||
import { addDays } from "date-fns/addDays";
|
||||
import { addMonths } from "date-fns/addMonths";
|
||||
import { addYears } from "date-fns/addYears";
|
||||
import { differenceInDays } from "date-fns/differenceInDays";
|
||||
import { differenceInMonths } from "date-fns/differenceInMonths";
|
||||
import { differenceInYears } from "date-fns/differenceInYears";
|
||||
import { endOfMonth } from "date-fns/endOfMonth";
|
||||
import { endOfYear } from "date-fns/endOfYear";
|
||||
import { format } from "date-fns/format";
|
||||
import { startOfDay } from "date-fns/startOfDay";
|
||||
import { startOfMonth } from "date-fns/startOfMonth";
|
||||
import { startOfYear } from "date-fns/startOfYear";
|
||||
import { subDays } from "date-fns/subDays";
|
||||
import React, { useCallback, useMemo } from "react";
|
||||
import { Detail } from "../../typography/Detail";
|
||||
import { useDateLocale, useI18n } from "../../utils/i18n/i18n.hooks";
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { isBefore } from "date-fns";
|
||||
import { isBefore } from "date-fns/isBefore";
|
||||
import React, { forwardRef } from "react";
|
||||
import { useTimelineContext } from "../root/TimelineRoot.context";
|
||||
import {
|
||||
|
||||
@@ -12,7 +12,7 @@ import {
|
||||
useHover,
|
||||
useInteractions,
|
||||
} from "@floating-ui/react";
|
||||
import { format } from "date-fns";
|
||||
import { format } from "date-fns/format";
|
||||
import React, { forwardRef, useMemo, useState } from "react";
|
||||
import { useMergeRefs } from "../../utils/hooks";
|
||||
import { useI18n } from "../../utils/i18n/i18n.hooks";
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
import { endOfDay, isSameDay, startOfDay } from "date-fns";
|
||||
import { endOfDay } from "date-fns/endOfDay";
|
||||
import { isSameDay } from "date-fns/isSameDay";
|
||||
import { startOfDay } from "date-fns/startOfDay";
|
||||
import React, { forwardRef, useMemo, useState } from "react";
|
||||
import { consoleWarning } from "../../utils/helpers/consoleWarning";
|
||||
import { TimelineAxisLabelsInternal } from "../axis-labels/TimelineAxisLabelsInternal";
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { renderHook } from "@testing-library/react";
|
||||
import { addDays, isSameDay } from "date-fns";
|
||||
import { addDays } from "date-fns/addDays";
|
||||
import { isSameDay } from "date-fns/isSameDay";
|
||||
import { describe, expect, test } from "vitest";
|
||||
import {
|
||||
useEarliestDate,
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
import { addDays, endOfDay, isAfter, startOfDay, subDays } from "date-fns";
|
||||
import { addDays } from "date-fns/addDays";
|
||||
import { endOfDay } from "date-fns/endOfDay";
|
||||
import { isAfter } from "date-fns/isAfter";
|
||||
import { startOfDay } from "date-fns/startOfDay";
|
||||
import { subDays } from "date-fns/subDays";
|
||||
import { useMemo } from "react";
|
||||
import { horizontalPositionAndWidth } from "../utils/calc";
|
||||
import { invisiblePeriods, withinADay } from "../utils/filter";
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { format } from "date-fns";
|
||||
import { format } from "date-fns/format";
|
||||
import React, { forwardRef } from "react";
|
||||
import { BodyShort } from "../../typography/BodyShort";
|
||||
import { cl } from "../../utils/helpers";
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { differenceInMilliseconds } from "date-fns";
|
||||
import { differenceInMilliseconds } from "date-fns/differenceInMilliseconds";
|
||||
|
||||
const position = (date: Date, start: Date, endInclusive: Date) => {
|
||||
const diff = differenceInMilliseconds(endInclusive, start);
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { differenceInDays } from "date-fns";
|
||||
import { differenceInDays } from "date-fns/differenceInDays";
|
||||
import type { PeriodProps } from "../Timeline.types";
|
||||
import type { Spatial } from "./types.internal";
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { format } from "date-fns";
|
||||
import { format } from "date-fns/format";
|
||||
import { cl } from "../../utils/helpers";
|
||||
import type { TFunction } from "../../utils/i18n/i18n.types";
|
||||
import type { PeriodProps } from "../Timeline.types";
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { differenceInMilliseconds } from "date-fns";
|
||||
import { differenceInMilliseconds } from "date-fns/differenceInMilliseconds";
|
||||
import type { Period, PositionedPeriod } from "./types.internal";
|
||||
|
||||
const lastDate = (a: Date, b: Date): number => differenceInMilliseconds(a, b);
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
import {
|
||||
addMonths,
|
||||
addYears,
|
||||
format,
|
||||
isSameDay,
|
||||
subMonths,
|
||||
subYears,
|
||||
} from "date-fns";
|
||||
import { addMonths } from "date-fns/addMonths";
|
||||
import { addYears } from "date-fns/addYears";
|
||||
import { format } from "date-fns/format";
|
||||
import { isSameDay } from "date-fns/isSameDay";
|
||||
import { subMonths } from "date-fns/subMonths";
|
||||
import { subYears } from "date-fns/subYears";
|
||||
import React, { forwardRef } from "react";
|
||||
import { Detail } from "../../typography/Detail";
|
||||
import { useI18n } from "../../utils/i18n/i18n.hooks";
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
import { enGB, nb, nn } from "date-fns/locale";
|
||||
import { enGB } from "date-fns/locale/en-GB";
|
||||
import { nb } from "date-fns/locale/nb";
|
||||
import { nn } from "date-fns/locale/nn";
|
||||
import { createStrictContext } from "../../helpers";
|
||||
import type { TFunction } from "../../i18n/i18n.types";
|
||||
import en_translations from "../../i18n/locales/en";
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
import {
|
||||
addYears,
|
||||
endOfMonth,
|
||||
endOfYear,
|
||||
startOfDay,
|
||||
startOfMonth,
|
||||
startOfYear,
|
||||
} from "date-fns";
|
||||
import { addYears } from "date-fns/addYears";
|
||||
import { endOfMonth } from "date-fns/endOfMonth";
|
||||
import { endOfYear } from "date-fns/endOfYear";
|
||||
import { startOfDay } from "date-fns/startOfDay";
|
||||
import { startOfMonth } from "date-fns/startOfMonth";
|
||||
import { startOfYear } from "date-fns/startOfYear";
|
||||
import { describe, expect, test } from "vitest";
|
||||
import { calendarRange } from "./calendar-range";
|
||||
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
import {
|
||||
addYears,
|
||||
endOfMonth,
|
||||
endOfYear,
|
||||
startOfDay,
|
||||
startOfMonth,
|
||||
startOfYear,
|
||||
} from "date-fns";
|
||||
import { addYears } from "date-fns/addYears";
|
||||
import { endOfMonth } from "date-fns/endOfMonth";
|
||||
import { endOfYear } from "date-fns/endOfYear";
|
||||
import { startOfDay } from "date-fns/startOfDay";
|
||||
import { startOfMonth } from "date-fns/startOfMonth";
|
||||
import { startOfYear } from "date-fns/startOfYear";
|
||||
|
||||
/**
|
||||
* Generates the min and max-dates possible to show and navigate to in the calendar.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { setYear } from "date-fns";
|
||||
import { setYear } from "date-fns/setYear";
|
||||
import { describe, expect, test } from "vitest";
|
||||
import { dateIsInCurrentMonth, isValidDate } from "./check-dates";
|
||||
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
import {
|
||||
differenceInCalendarDays,
|
||||
isThisMonth,
|
||||
setYear,
|
||||
startOfDay,
|
||||
} from "date-fns";
|
||||
import { differenceInCalendarDays } from "date-fns/differenceInCalendarDays";
|
||||
import { isThisMonth } from "date-fns/isThisMonth";
|
||||
import { setYear } from "date-fns/setYear";
|
||||
import { startOfDay } from "date-fns/startOfDay";
|
||||
|
||||
export const dateIsInCurrentMonth = (
|
||||
date: Date,
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { startOfMonth, startOfYear } from "date-fns";
|
||||
import { startOfMonth } from "date-fns/startOfMonth";
|
||||
import { startOfYear } from "date-fns/startOfYear";
|
||||
import { describe, expect, test } from "vitest";
|
||||
import { isDateOutsideRange } from "./check-dates";
|
||||
import { clampDisplayMonth, clampDisplayYear } from "./clamp-dates";
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
import { isAfter, isBefore, startOfMonth, startOfYear } from "date-fns";
|
||||
import { isAfter } from "date-fns/isAfter";
|
||||
import { isBefore } from "date-fns/isBefore";
|
||||
import { startOfMonth } from "date-fns/startOfMonth";
|
||||
import { startOfYear } from "date-fns/startOfYear";
|
||||
|
||||
/**
|
||||
* Makes sure the month is within the min and max daterange to avoid showing disabled months
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { isSameDay } from "date-fns";
|
||||
import { isSameDay } from "date-fns/isSameDay";
|
||||
import { isDateRange } from "../components/date/Date.typeutils";
|
||||
|
||||
export const disableDate = (
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { nb } from "date-fns/locale";
|
||||
import { nb } from "date-fns/locale/nb";
|
||||
import { describe, expect, test } from "vitest";
|
||||
import { getMonthOptions, getYearOptions } from "./dropdown-options";
|
||||
|
||||
|
||||
@@ -1,16 +1,14 @@
|
||||
import {
|
||||
type Locale,
|
||||
addYears,
|
||||
eachMonthOfInterval,
|
||||
endOfYear,
|
||||
format,
|
||||
getMonth,
|
||||
getYear,
|
||||
isBefore,
|
||||
isSameYear,
|
||||
startOfMonth,
|
||||
startOfYear,
|
||||
} from "date-fns";
|
||||
import type { Locale } from "date-fns";
|
||||
import { addYears } from "date-fns/addYears";
|
||||
import { eachMonthOfInterval } from "date-fns/eachMonthOfInterval";
|
||||
import { endOfYear } from "date-fns/endOfYear";
|
||||
import { format } from "date-fns/format";
|
||||
import { getMonth } from "date-fns/getMonth";
|
||||
import { getYear } from "date-fns/getYear";
|
||||
import { isBefore } from "date-fns/isBefore";
|
||||
import { isSameYear } from "date-fns/isSameYear";
|
||||
import { startOfMonth } from "date-fns/startOfMonth";
|
||||
import { startOfYear } from "date-fns/startOfYear";
|
||||
|
||||
/** Return the months to show in the dropdown. */
|
||||
export function getMonthOptions({
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { type Locale, format } from "date-fns";
|
||||
import type { Locale } from "date-fns";
|
||||
import { format } from "date-fns/format";
|
||||
import {
|
||||
INPUT_DATE_STRING_FORMAT_DATE,
|
||||
INPUT_DATE_STRING_FORMAT_MONTH,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { nb } from "date-fns/locale";
|
||||
import { nb } from "date-fns/locale/nb";
|
||||
import { describe, expect, test } from "vitest";
|
||||
import { formatDateForInput } from "./format-date";
|
||||
import { parseDate } from "./parse-date";
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
import {
|
||||
differenceInCalendarDays,
|
||||
isDate,
|
||||
isSameDay,
|
||||
isSameMonth,
|
||||
} from "date-fns";
|
||||
import { differenceInCalendarDays } from "date-fns/differenceInCalendarDays";
|
||||
import { isDate } from "date-fns/isDate";
|
||||
import { isSameDay } from "date-fns/isSameDay";
|
||||
import { isSameMonth } from "date-fns/isSameMonth";
|
||||
import {
|
||||
type DateRange,
|
||||
type Matcher,
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
import { type Locale, isBefore, parse, sub } from "date-fns";
|
||||
import type { Locale } from "date-fns";
|
||||
import { isBefore } from "date-fns/isBefore";
|
||||
import { parse } from "date-fns/parse";
|
||||
import { sub } from "date-fns/sub";
|
||||
import { isValidDate } from "./check-dates";
|
||||
|
||||
export const INPUT_DATE_STRING_FORMAT_DATE = "dd.MM.yyyy";
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { getMonth } from "date-fns";
|
||||
import { nb } from "date-fns/locale";
|
||||
import { getMonth } from "date-fns/getMonth";
|
||||
import { nb } from "date-fns/locale/nb";
|
||||
import { describe, expect, test } from "vitest";
|
||||
import { isValidDate } from "./check-dates";
|
||||
import { parseDate } from "./parse-date";
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { isBefore, isSameDay } from "date-fns";
|
||||
import { isBefore } from "date-fns/isBefore";
|
||||
import { isSameDay } from "date-fns/isSameDay";
|
||||
import type { DateRange } from "../components/date/Date.typeutils";
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { enGB } from "date-fns/locale";
|
||||
import { enGB } from "date-fns/locale/en-GB";
|
||||
import type { Translations } from "../i18n.types";
|
||||
|
||||
export default {
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { type Locale, nb } from "date-fns/locale";
|
||||
import type { Locale } from "date-fns";
|
||||
import { nb } from "date-fns/locale/nb";
|
||||
|
||||
interface TranslationMap {
|
||||
[component: string]: Record<string, string | Record<string, string> | Locale>;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { nn } from "date-fns/locale";
|
||||
import { nn } from "date-fns/locale/nn";
|
||||
import type { Translations } from "../i18n.types";
|
||||
|
||||
export default {
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
"jscodeshift": "17.4.0",
|
||||
"lodash": "4.18.1",
|
||||
"lz-string": "^1.5.0",
|
||||
"next": "16.4.2",
|
||||
"next": "16.4.3",
|
||||
"next-logger": "^5.0.2",
|
||||
"next-sanity": "13.2.3",
|
||||
"next-themes": "^0.4.6",
|
||||
@@ -71,9 +71,9 @@
|
||||
"@babel/core": "^7.19.0",
|
||||
"@babel/parser": "^7.27.5",
|
||||
"@babel/traverse": "^7.27.4",
|
||||
"@google-cloud/bigquery": "^9.0.2",
|
||||
"@next/bundle-analyzer": "16.4.2",
|
||||
"@next/eslint-plugin-next": "16.4.2",
|
||||
"@google-cloud/bigquery": "^9.5.0",
|
||||
"@next/bundle-analyzer": "16.4.3",
|
||||
"@next/eslint-plugin-next": "16.4.3",
|
||||
"@playwright/test": "1.61.1",
|
||||
"@portabletext/block-tools": "^6.0.0",
|
||||
"@portabletext/markdown": "^2.5.1",
|
||||
|
||||
@@ -167,6 +167,31 @@ module.exports = defineConfig([
|
||||
"import/no-named-export": "error",
|
||||
},
|
||||
},
|
||||
{
|
||||
files: ["@navikt/core/react/src/**/*.{ts,tsx}"],
|
||||
ignores: ["**/*.stories.tsx"],
|
||||
rules: {
|
||||
"@typescript-eslint/no-restricted-imports": [
|
||||
"error",
|
||||
{
|
||||
paths: [
|
||||
{
|
||||
name: "date-fns",
|
||||
allowTypeImports: true,
|
||||
message:
|
||||
'Import functions from their own path, e.g. `import { format } from "date-fns/format"`. The root barrel makes unbundled Node imports load all of date-fns.',
|
||||
},
|
||||
{
|
||||
name: "date-fns/locale",
|
||||
allowTypeImports: true,
|
||||
message:
|
||||
'Import locales from their own path, e.g. `import { nb } from "date-fns/locale/nb"`. The barrel makes unbundled Node imports load all locales.',
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
files: ["@navikt/**"],
|
||||
ignores: ["**/*.stories.tsx"],
|
||||
|
||||
+1
-1
@@ -80,7 +80,7 @@
|
||||
"@biomejs/biome": "2.5.14",
|
||||
"@changesets/cli": "2.31.1",
|
||||
"@eslint/js": "^10.0.1",
|
||||
"@github-ui/storybook-addon-performance-panel": "^1.3.0",
|
||||
"@github-ui/storybook-addon-performance-panel": "^1.3.1",
|
||||
"@storybook/addon-a11y": "^10.6.3",
|
||||
"@storybook/addon-docs": "^10.6.3",
|
||||
"@storybook/addon-themes": "^10.6.3",
|
||||
|
||||
@@ -3026,9 +3026,9 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@github-ui/storybook-addon-performance-panel@npm:^1.3.0":
|
||||
version: 1.3.0
|
||||
resolution: "@github-ui/storybook-addon-performance-panel@npm:1.3.0"
|
||||
"@github-ui/storybook-addon-performance-panel@npm:^1.3.1":
|
||||
version: 1.3.1
|
||||
resolution: "@github-ui/storybook-addon-performance-panel@npm:1.3.1"
|
||||
peerDependencies:
|
||||
"@storybook/icons": ^2.0.0
|
||||
"@storybook/react": ^10.0.0 || >=11.0.0-0 <12.0.0-0
|
||||
@@ -3039,25 +3039,31 @@ __metadata:
|
||||
optional: true
|
||||
react:
|
||||
optional: true
|
||||
checksum: 10/25c956d23a99ea49f11b5dc7dadcaf7084bc7df0ce4644c97db66d13f10a5c76d777f1ae1259cb1a5d6cf60afcb180413429e9c56638281b6e28521db53f750a
|
||||
checksum: 10/f9f1eca61b071d1f1e3eadc9302f6aa17557732225bff88580e259ddcbe33469c045b273daa095095fcc044b63635ce86e36d5adb2c0a5dbeba5eb8ca20f3e3b
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@google-cloud/bigquery@npm:^9.0.2":
|
||||
version: 9.0.2
|
||||
resolution: "@google-cloud/bigquery@npm:9.0.2"
|
||||
"@google-cloud/bigquery@npm:^9.5.0":
|
||||
version: 9.5.0
|
||||
resolution: "@google-cloud/bigquery@npm:9.5.0"
|
||||
dependencies:
|
||||
"@google-cloud/common": "npm:^8.0.0"
|
||||
"@google-cloud/paginator": "npm:^7.0.0"
|
||||
"@google-cloud/precise-date": "npm:^6.0.0"
|
||||
"@google-cloud/promisify": "npm:^6.0.0"
|
||||
apache-arrow: "npm:^21.0.0"
|
||||
arrify: "npm:^3.0.0"
|
||||
big.js: "npm:^7.0.0"
|
||||
duplexify: "npm:^4.1.3"
|
||||
extend: "npm:^3.0.2"
|
||||
stream-events: "npm:^1.0.5"
|
||||
teeny-request: "npm:^11.0.0"
|
||||
checksum: 10/4db3af38f51b80bffada28a6dbe2cec02c1f7ccee82a37dbf1b4790584e1bd0606eb34e0eef675571289dd31dfff41931f049d6e4012e09498f5c357266cd266
|
||||
peerDependencies:
|
||||
"@google-cloud/bigquery-storage": ^6.3.0
|
||||
peerDependenciesMeta:
|
||||
"@google-cloud/bigquery-storage":
|
||||
optional: true
|
||||
checksum: 10/b068c895bec6f0fa64cb65e05590f470edec9409725fe6471d476eb7d053036091d754ec25b024318335cbe813438fea56da2082c3353afe9801a59fcb640775
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -3109,11 +3115,11 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"@hono/node-server@npm:^1.19.9 || ^2.0.5, @hono/node-server@npm:^2.0.12":
|
||||
version: 2.1.1
|
||||
resolution: "@hono/node-server@npm:2.1.1"
|
||||
version: 2.1.5
|
||||
resolution: "@hono/node-server@npm:2.1.5"
|
||||
peerDependencies:
|
||||
hono: ^4
|
||||
checksum: 10/af031ec46684c7a201cf70ce2e14f17dcd64624b42bbbf5a84dc54d7a2a9fe77a96d3d0280a16affcbc99a2de682f8687ee63cf6f6cc3de2cd5bee22ebe1f7fe
|
||||
hono: ^4 || ^5.0.0-0
|
||||
checksum: 10/4b6f21fe37f956a61856b6f517f91543962f32466a88477d362e8cff77272e541ea6388b8026275e1a2a1976d098c9bf4c3e1d8f8087505e8eac777f0f872901
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -4899,7 +4905,6 @@ __metadata:
|
||||
prettier: "npm:3.9.6"
|
||||
react: "npm:19.3.1"
|
||||
rehype-parse: "npm:9.0.1"
|
||||
svgo: "npm:3.3.5"
|
||||
tsc-alias: "npm:1.9.7"
|
||||
tsx: "npm:^4.23.15"
|
||||
typescript: "npm:6.0.3"
|
||||
@@ -5087,84 +5092,91 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@next/bundle-analyzer@npm:16.4.2":
|
||||
version: 16.4.2
|
||||
resolution: "@next/bundle-analyzer@npm:16.4.2"
|
||||
"@next/bundle-analyzer@npm:16.4.3":
|
||||
version: 16.4.3
|
||||
resolution: "@next/bundle-analyzer@npm:16.4.3"
|
||||
dependencies:
|
||||
webpack-bundle-analyzer: "npm:4.10.1"
|
||||
checksum: 10/88aff93dac5666bda4dae47c3c28463470abcc2361d3397e37ed20074b58c0a017305f986097cceac5520052caf7fd35b079f1b45b8e3cb19b1438a3564dfe12
|
||||
checksum: 10/cc29a60472950a8c178af34f7e164f8b903455811aeb01b12ae3f2721124485cc20dcf4e941b509c2dbb82e8023174ea01a69d4a90735fd6c7657f35fb245a60
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@next/env@npm:16.4.2, @next/env@npm:^15.0.0 || ^16.0.0":
|
||||
"@next/env@npm:16.4.3":
|
||||
version: 16.4.3
|
||||
resolution: "@next/env@npm:16.4.3"
|
||||
checksum: 10/61fc8844d0432a0030694486d3a2dc1af58770f81d0f47b7b8b2ce8b8c236f56b83da0d16ba16fef9f2b7d4ce5de6af06e5ca73b722a3d733821b4858b71ddb3
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@next/env@npm:^15.0.0 || ^16.0.0":
|
||||
version: 16.4.2
|
||||
resolution: "@next/env@npm:16.4.2"
|
||||
checksum: 10/6ac734ca99aa1fb31d1130fd6cffdec711ef460cb2b87fa880fa00201c06f61de62bc5d5b7835aa2861087e9587aa1a535ba85dbf37a40979075bc50dac3588f
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@next/eslint-plugin-next@npm:16.4.2":
|
||||
version: 16.4.2
|
||||
resolution: "@next/eslint-plugin-next@npm:16.4.2"
|
||||
"@next/eslint-plugin-next@npm:16.4.3":
|
||||
version: 16.4.3
|
||||
resolution: "@next/eslint-plugin-next@npm:16.4.3"
|
||||
dependencies:
|
||||
"@eslint-community/eslint-utils": "npm:4.9.1"
|
||||
fast-glob: "npm:3.3.1"
|
||||
checksum: 10/961ba902b831ddae05a3519862fc43e969be2cd47e0bdc75a070ddfe7136d22c0b7428bfe1fc7863e44c0af913a43317060e318329bb47907d9fd1a1fbc02420
|
||||
checksum: 10/b00bad73eedf18224e9c7700a6f8e990ace898190e2fc004b4dfc5f592d968da2b47b9cffea163b524bddba2aebf9817245bcd6f5259074fb435cb2a1ecb9994
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@next/swc-darwin-arm64@npm:16.4.2":
|
||||
version: 16.4.2
|
||||
resolution: "@next/swc-darwin-arm64@npm:16.4.2"
|
||||
"@next/swc-darwin-arm64@npm:16.4.3":
|
||||
version: 16.4.3
|
||||
resolution: "@next/swc-darwin-arm64@npm:16.4.3"
|
||||
conditions: os=darwin & cpu=arm64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@next/swc-darwin-x64@npm:16.4.2":
|
||||
version: 16.4.2
|
||||
resolution: "@next/swc-darwin-x64@npm:16.4.2"
|
||||
"@next/swc-darwin-x64@npm:16.4.3":
|
||||
version: 16.4.3
|
||||
resolution: "@next/swc-darwin-x64@npm:16.4.3"
|
||||
conditions: os=darwin & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@next/swc-linux-arm64-gnu@npm:16.4.2":
|
||||
version: 16.4.2
|
||||
resolution: "@next/swc-linux-arm64-gnu@npm:16.4.2"
|
||||
"@next/swc-linux-arm64-gnu@npm:16.4.3":
|
||||
version: 16.4.3
|
||||
resolution: "@next/swc-linux-arm64-gnu@npm:16.4.3"
|
||||
conditions: os=linux & cpu=arm64 & libc=glibc
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@next/swc-linux-arm64-musl@npm:16.4.2":
|
||||
version: 16.4.2
|
||||
resolution: "@next/swc-linux-arm64-musl@npm:16.4.2"
|
||||
"@next/swc-linux-arm64-musl@npm:16.4.3":
|
||||
version: 16.4.3
|
||||
resolution: "@next/swc-linux-arm64-musl@npm:16.4.3"
|
||||
conditions: os=linux & cpu=arm64 & libc=musl
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@next/swc-linux-x64-gnu@npm:16.4.2":
|
||||
version: 16.4.2
|
||||
resolution: "@next/swc-linux-x64-gnu@npm:16.4.2"
|
||||
"@next/swc-linux-x64-gnu@npm:16.4.3":
|
||||
version: 16.4.3
|
||||
resolution: "@next/swc-linux-x64-gnu@npm:16.4.3"
|
||||
conditions: os=linux & cpu=x64 & libc=glibc
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@next/swc-linux-x64-musl@npm:16.4.2":
|
||||
version: 16.4.2
|
||||
resolution: "@next/swc-linux-x64-musl@npm:16.4.2"
|
||||
"@next/swc-linux-x64-musl@npm:16.4.3":
|
||||
version: 16.4.3
|
||||
resolution: "@next/swc-linux-x64-musl@npm:16.4.3"
|
||||
conditions: os=linux & cpu=x64 & libc=musl
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@next/swc-win32-arm64-msvc@npm:16.4.2":
|
||||
version: 16.4.2
|
||||
resolution: "@next/swc-win32-arm64-msvc@npm:16.4.2"
|
||||
"@next/swc-win32-arm64-msvc@npm:16.4.3":
|
||||
version: 16.4.3
|
||||
resolution: "@next/swc-win32-arm64-msvc@npm:16.4.3"
|
||||
conditions: os=win32 & cpu=arm64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@next/swc-win32-x64-msvc@npm:16.4.2":
|
||||
version: 16.4.2
|
||||
resolution: "@next/swc-win32-x64-msvc@npm:16.4.2"
|
||||
"@next/swc-win32-x64-msvc@npm:16.4.3":
|
||||
version: 16.4.3
|
||||
resolution: "@next/swc-win32-x64-msvc@npm:16.4.3"
|
||||
conditions: os=win32 & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
@@ -8510,6 +8522,15 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/node@npm:^25.2.0":
|
||||
version: 25.9.9
|
||||
resolution: "@types/node@npm:25.9.9"
|
||||
dependencies:
|
||||
undici-types: "npm:>=7.24.0 <7.24.7"
|
||||
checksum: 10/8accbdd15bc035db3b20bf9353dabce847a5d3dd1f3976c25e67907f4fd287b00b8163f661fe48cd6d644e30a11e1dffd67e2742233209c7b7cbc500d14d394c
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/parse-json@npm:^4.0.0":
|
||||
version: 4.0.2
|
||||
resolution: "@types/parse-json@npm:4.0.2"
|
||||
@@ -9891,7 +9912,7 @@ __metadata:
|
||||
"@biomejs/biome": "npm:2.5.14"
|
||||
"@changesets/cli": "npm:2.31.1"
|
||||
"@eslint/js": "npm:^10.0.1"
|
||||
"@github-ui/storybook-addon-performance-panel": "npm:^1.3.0"
|
||||
"@github-ui/storybook-addon-performance-panel": "npm:^1.3.1"
|
||||
"@storybook/addon-a11y": "npm:^10.6.3"
|
||||
"@storybook/addon-docs": "npm:^10.6.3"
|
||||
"@storybook/addon-themes": "npm:^10.6.3"
|
||||
@@ -10057,6 +10078,20 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"apache-arrow@npm:^21.0.0":
|
||||
version: 21.2.0
|
||||
resolution: "apache-arrow@npm:21.2.0"
|
||||
dependencies:
|
||||
"@types/node": "npm:^25.2.0"
|
||||
flatbuffers: "npm:^25.1.24"
|
||||
json-with-bigint: "npm:^3.5.3"
|
||||
tslib: "npm:^2.6.2"
|
||||
bin:
|
||||
arrow2csv: bin/arrow2csv.js
|
||||
checksum: 10/209850cda893c54e87a65d12548120ee1b0ed071682c6113d75aba8a662a2eddfa3d507e8441658842478d56759de2078da3e6a42b57914d37fd53eed2e977b0
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"arg@npm:^5.0.2":
|
||||
version: 5.0.2
|
||||
resolution: "arg@npm:5.0.2"
|
||||
@@ -14161,6 +14196,13 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"flatbuffers@npm:^25.1.24":
|
||||
version: 25.9.23
|
||||
resolution: "flatbuffers@npm:25.9.23"
|
||||
checksum: 10/e2086e7f9b04f7932a93f6935347d8cdca0cbdcb582cd23b2b7c55aa1f831c6e33ba595c49bebe25767a945fc4698984840692baa470d61db4484e06aac4df15
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"flatted@npm:^3.2.9, flatted@npm:^3.4.2":
|
||||
version: 3.4.4
|
||||
resolution: "flatted@npm:3.4.4"
|
||||
@@ -14194,12 +14236,12 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"follow-redirects@npm:^1.0.0":
|
||||
version: 1.16.1
|
||||
resolution: "follow-redirects@npm:1.16.1"
|
||||
version: 1.16.2
|
||||
resolution: "follow-redirects@npm:1.16.2"
|
||||
peerDependenciesMeta:
|
||||
debug:
|
||||
optional: true
|
||||
checksum: 10/269c9f38e4bb413d7ab224fb5aa733118288a18e84d4d0a22821a850574624a55d45f2c6735fc09fc1cceedb6343a5539daf6d2dd70bce8980c8336d230a2f50
|
||||
checksum: 10/3303addfa9aaf145022c2faa76ecba8052fe325bce00f3992ca2b13f3295590d6a64828c128cfcbc9678569f2f98fbd190d6ca5f505857b07eea9867008a38a3
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -16702,6 +16744,13 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"json-with-bigint@npm:^3.5.3":
|
||||
version: 3.5.12
|
||||
resolution: "json-with-bigint@npm:3.5.12"
|
||||
checksum: 10/096a98e435311ab7cdc645769b949cda0cc723b2f1fd0dd5e86839432a703e804a99136da658536e86b876a85d193a87066352e6723dbcc498439fc6c3c34d5c
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"json5@npm:2.2.3, json5@npm:^2.2.2, json5@npm:^2.2.3":
|
||||
version: 2.2.3
|
||||
resolution: "json5@npm:2.2.3"
|
||||
@@ -18539,19 +18588,19 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"next@npm:16.4.2":
|
||||
version: 16.4.2
|
||||
resolution: "next@npm:16.4.2"
|
||||
"next@npm:16.4.3":
|
||||
version: 16.4.3
|
||||
resolution: "next@npm:16.4.3"
|
||||
dependencies:
|
||||
"@next/env": "npm:16.4.2"
|
||||
"@next/swc-darwin-arm64": "npm:16.4.2"
|
||||
"@next/swc-darwin-x64": "npm:16.4.2"
|
||||
"@next/swc-linux-arm64-gnu": "npm:16.4.2"
|
||||
"@next/swc-linux-arm64-musl": "npm:16.4.2"
|
||||
"@next/swc-linux-x64-gnu": "npm:16.4.2"
|
||||
"@next/swc-linux-x64-musl": "npm:16.4.2"
|
||||
"@next/swc-win32-arm64-msvc": "npm:16.4.2"
|
||||
"@next/swc-win32-x64-msvc": "npm:16.4.2"
|
||||
"@next/env": "npm:16.4.3"
|
||||
"@next/swc-darwin-arm64": "npm:16.4.3"
|
||||
"@next/swc-darwin-x64": "npm:16.4.3"
|
||||
"@next/swc-linux-arm64-gnu": "npm:16.4.3"
|
||||
"@next/swc-linux-arm64-musl": "npm:16.4.3"
|
||||
"@next/swc-linux-x64-gnu": "npm:16.4.3"
|
||||
"@next/swc-linux-x64-musl": "npm:16.4.3"
|
||||
"@next/swc-win32-arm64-msvc": "npm:16.4.3"
|
||||
"@next/swc-win32-x64-msvc": "npm:16.4.3"
|
||||
"@swc/helpers": "npm:0.5.23"
|
||||
baseline-browser-mapping: "npm:^2.9.19"
|
||||
caniuse-lite: "npm:^1.0.30001579"
|
||||
@@ -18595,7 +18644,7 @@ __metadata:
|
||||
optional: true
|
||||
bin:
|
||||
next: dist/bin/next
|
||||
checksum: 10/f72af6bfb2d469d3ee29551c221a8fc48f5b4f4a7b685b6e1897458657607186fac34867f42ec66a67e9d5dc72e7e97abf08db875ba0ce921876b19c63617dc4
|
||||
checksum: 10/4473274bcb1da4921d33b81f8e6c25ac2a9ee959fee49b538bd186550c641111a74b42e85ad406842c1ae471ead49ed98ce1eae699d64f8fa55dc67c14557ee7
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -23285,7 +23334,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"svgo@npm:3.3.5, svgo@npm:^3.0.2":
|
||||
"svgo@npm:^3.0.2":
|
||||
version: 3.3.5
|
||||
resolution: "svgo@npm:3.3.5"
|
||||
dependencies:
|
||||
@@ -23926,7 +23975,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"tslib@npm:^2.0.0, tslib@npm:^2.0.1, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.4.0, tslib@npm:^2.8.0, tslib@npm:^2.8.1":
|
||||
"tslib@npm:^2.0.0, tslib@npm:^2.0.1, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.4.0, tslib@npm:^2.6.2, tslib@npm:^2.8.0, tslib@npm:^2.8.1":
|
||||
version: 2.8.1
|
||||
resolution: "tslib@npm:2.8.1"
|
||||
checksum: 10/3e2e043d5c2316461cb54e5c7fe02c30ef6dccb3384717ca22ae5c6b5bc95232a6241df19c622d9c73b809bea33b187f6dbc73030963e29950c2141bc32a79f7
|
||||
@@ -24215,6 +24264,13 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"undici-types@npm:>=7.24.0 <7.24.7":
|
||||
version: 7.24.6
|
||||
resolution: "undici-types@npm:7.24.6"
|
||||
checksum: 10/defc9538b952e3c15b8526596c591f7c1f0c7605ad27a2b7feddbea7ef2e3003f3eda2cdb051a3cb1a2185e3893100fd9cb925c799db99d48131ea63b5233d10
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"undici-types@npm:~7.18.0":
|
||||
version: 7.18.2
|
||||
resolution: "undici-types@npm:7.18.2"
|
||||
@@ -25136,12 +25192,12 @@ __metadata:
|
||||
"@babel/core": "npm:^7.19.0"
|
||||
"@babel/parser": "npm:^7.27.5"
|
||||
"@babel/traverse": "npm:^7.27.4"
|
||||
"@google-cloud/bigquery": "npm:^9.0.2"
|
||||
"@google-cloud/bigquery": "npm:^9.5.0"
|
||||
"@navikt/analytics-types": "npm:0.0.9"
|
||||
"@navikt/next-logger": "npm:5.0.1"
|
||||
"@navikt/oasis": "npm:4.1.4"
|
||||
"@next/bundle-analyzer": "npm:16.4.2"
|
||||
"@next/eslint-plugin-next": "npm:16.4.2"
|
||||
"@next/bundle-analyzer": "npm:16.4.3"
|
||||
"@next/eslint-plugin-next": "npm:16.4.3"
|
||||
"@playwright/test": "npm:1.61.1"
|
||||
"@portabletext/block-tools": "npm:^6.0.0"
|
||||
"@portabletext/markdown": "npm:^2.5.1"
|
||||
@@ -25172,7 +25228,7 @@ __metadata:
|
||||
json5: "npm:2.2.3"
|
||||
lodash: "npm:4.18.1"
|
||||
lz-string: "npm:^1.5.0"
|
||||
next: "npm:16.4.2"
|
||||
next: "npm:16.4.3"
|
||||
next-logger: "npm:^5.0.2"
|
||||
next-sanity: "npm:13.2.3"
|
||||
next-themes: "npm:^0.4.6"
|
||||
|
||||
Reference in new issue
Block a user