mirror of
https://github.com/navikt/aksel.git
synced 2026-10-15 02:02:02 +00:00
Compare commits
34
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bb00b750e6 | ||
|
|
803eb21ab1 | ||
|
|
dc548667ff | ||
|
|
aa537e4d4a | ||
|
|
71408487e0 | ||
|
|
ddd04367af | ||
|
|
2303d6ce8c | ||
|
|
216eae6f1d | ||
|
|
0e5c58b28f | ||
|
|
163c1bce04 | ||
|
|
8ee604e6a7 | ||
|
|
c73db43c96 | ||
|
|
83960d7390 | ||
|
|
6c81fc0b23 | ||
|
|
a8cbd92e1c | ||
|
|
2700f7ac41 | ||
|
|
c3ce2c50f8 | ||
|
|
a7db426e04 | ||
|
|
68a2f0249b | ||
|
|
5f9fdb617b | ||
|
|
b4f37e80d0 | ||
|
|
f70bebc03e | ||
|
|
7aa85beb01 | ||
|
|
d29509dc0a | ||
|
|
90f6178c3a | ||
|
|
6678742543 | ||
|
|
715a34ac7d | ||
|
|
85feb0ed8a | ||
|
|
d2a7c868d5 | ||
|
|
edab37a5da | ||
|
|
fad913ce6b | ||
|
|
54e03db491 | ||
|
|
b52806535d | ||
|
|
bbca69af9c |
No files matched your search
@@ -0,0 +1,20 @@
|
||||
version: 2
|
||||
registries:
|
||||
npm-github:
|
||||
type: npm-registry
|
||||
url: https://npm.pkg.github.com
|
||||
token: ${{ secrets.READER_TOKEN }}
|
||||
updates:
|
||||
- package-ecosystem: npm
|
||||
directory: /
|
||||
schedule:
|
||||
interval: weekly
|
||||
registries:
|
||||
- npm-github
|
||||
|
||||
- package-ecosystem: github-actions
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: weekly
|
||||
registries:
|
||||
- npm-github
|
||||
@@ -60,7 +60,7 @@ jobs:
|
||||
|
||||
- name: Find Comment
|
||||
if: github.event_name != 'push' && !contains(github.event.head_commit.message, '[ci skip]')
|
||||
uses: peter-evans/find-comment@v2
|
||||
uses: peter-evans/find-comment@v3
|
||||
id: fc
|
||||
with:
|
||||
issue-number: ${{ github.event.pull_request.number }}
|
||||
@@ -69,7 +69,7 @@ jobs:
|
||||
|
||||
- name: Create or update comment
|
||||
if: github.event_name != 'push' && !contains(github.event.head_commit.message, '[ci skip]')
|
||||
uses: peter-evans/create-or-update-comment@v3
|
||||
uses: peter-evans/create-or-update-comment@v4
|
||||
with:
|
||||
comment-id: ${{ steps.fc.outputs.comment-id }}
|
||||
issue-number: ${{ github.event.pull_request.number }}
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
# @navikt/aksel-icons
|
||||
|
||||
## 7.11.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
- Icons: Added new icons 'SortUp' and 'SortDown' 🎉. ([#3528](https://github.com/navikt/aksel/pull/3528))
|
||||
|
||||
## 7.10.0
|
||||
|
||||
## 7.9.2
|
||||
|
||||
## 7.9.1
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
"postcss": "^8.4.31",
|
||||
"postcss-url": "^10.1.3",
|
||||
"typescript": "5.5.4",
|
||||
"vite": "^5.4.6",
|
||||
"vite": "^6.0.9",
|
||||
"vite-plugin-singlefile": "^1.0.0",
|
||||
"vite-plugin-svgr": "^4.2.0"
|
||||
}
|
||||
|
||||
@@ -13,5 +13,5 @@ keywords:
|
||||
- forward
|
||||
- videresend
|
||||
variant: Stroke
|
||||
updated_at: 23.02.2024
|
||||
updated_at: 05.09.2024
|
||||
created_at: 07.03.2023
|
||||
@@ -15,5 +15,5 @@ keywords:
|
||||
- risiko
|
||||
- forsiktighet
|
||||
variant: Stroke
|
||||
updated_at: 05.01.2024
|
||||
updated_at: 27.09.2024
|
||||
created_at: 07.03.2023
|
||||
@@ -15,5 +15,5 @@ keywords:
|
||||
- markup-språk
|
||||
- kildekode
|
||||
variant: Stroke
|
||||
updated_at: 01.03.2024
|
||||
updated_at: 18.09.2024
|
||||
created_at: 07.03.2023
|
||||
@@ -6,5 +6,5 @@ keywords:
|
||||
- sann
|
||||
- resultat
|
||||
variant: Stroke
|
||||
updated_at: 05.01.2024
|
||||
updated_at: 24.09.2024
|
||||
created_at: 07.03.2023
|
||||
@@ -9,5 +9,5 @@ keywords:
|
||||
- open
|
||||
- åpne
|
||||
variant: Stroke
|
||||
updated_at: 24.01.2024
|
||||
updated_at: 16.09.2024
|
||||
created_at: 07.03.2023
|
||||
@@ -10,5 +10,5 @@ keywords:
|
||||
- wardrobe
|
||||
- kleshenger
|
||||
variant: Stroke
|
||||
updated_at: 04.12.2023
|
||||
updated_at: 12.09.2024
|
||||
created_at: 07.03.2023
|
||||
@@ -7,5 +7,5 @@ keywords:
|
||||
- penger
|
||||
- norske kroner
|
||||
variant: Stroke
|
||||
updated_at: 05.01.2024
|
||||
updated_at: 03.09.2024
|
||||
created_at: 07.03.2023
|
||||
@@ -15,5 +15,5 @@ keywords:
|
||||
- avslutt
|
||||
- avslutt
|
||||
variant: Stroke
|
||||
updated_at: 25.04.2024
|
||||
updated_at: 06.09.2024
|
||||
created_at: 07.03.2023
|
||||
@@ -20,5 +20,5 @@ keywords:
|
||||
- ansvar
|
||||
- paragraf
|
||||
variant: Stroke
|
||||
updated_at: 04.01.2024
|
||||
updated_at: 18.09.2024
|
||||
created_at: 07.03.2023
|
||||
@@ -6,5 +6,5 @@ keywords:
|
||||
- crystal
|
||||
- snø
|
||||
variant: Stroke
|
||||
updated_at: 05.01.2024
|
||||
updated_at: 23.09.2024
|
||||
created_at: 07.03.2023
|
||||
@@ -0,0 +1,3 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M18.0303 18.5303C17.8897 18.671 17.6989 18.75 17.5 18.75C17.3011 18.75 17.1103 18.671 16.9697 18.5303L13.4697 15.0303C13.1768 14.7374 13.1768 14.2626 13.4697 13.9697C13.7626 13.6768 14.2374 13.6768 14.5303 13.9697L16.75 16.1893V6C16.75 5.58579 17.0858 5.25 17.5 5.25C17.9142 5.25 18.25 5.58579 18.25 6V16.1893L20.4697 13.9697C20.7626 13.6768 21.2374 13.6768 21.5303 13.9697C21.8232 14.2626 21.8232 14.7374 21.5303 15.0303L18.0303 18.5303ZM2.75 6.25C2.33579 6.25 2 6.58579 2 7C2 7.41421 2.33579 7.75 2.75 7.75L12.25 7.75C12.6642 7.75 13 7.41421 13 7C13 6.58579 12.6642 6.25 12.25 6.25L2.75 6.25ZM2.75 11.25C2.33579 11.25 2 11.5858 2 12C2 12.4142 2.33579 12.75 2.75 12.75L10.25 12.75C10.6642 12.75 11 12.4142 11 12C11 11.5858 10.6642 11.25 10.25 11.25H2.75ZM2 17C2 16.5858 2.33579 16.25 2.75 16.25H8.25C8.66421 16.25 9 16.5858 9 17C9 17.4142 8.66421 17.75 8.25 17.75H2.75C2.33579 17.75 2 17.4142 2 17Z" fill="#23262A"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.0 KiB |
@@ -0,0 +1,11 @@
|
||||
name: SortDown
|
||||
category: Interface
|
||||
sub_category: Filtering and sorting
|
||||
keywords:
|
||||
- sort
|
||||
- sortering
|
||||
- synkende
|
||||
- descending
|
||||
variant: Stroke
|
||||
updated_at: 27.01.2025
|
||||
created_at: 27.01.2025
|
||||
@@ -0,0 +1,3 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M18.0303 5.46967C17.8897 5.32902 17.6989 5.25 17.5 5.25C17.3011 5.25 17.1103 5.32902 16.9697 5.46967L13.4697 8.96967C13.1768 9.26256 13.1768 9.73744 13.4697 10.0303C13.7626 10.3232 14.2374 10.3232 14.5303 10.0303L16.75 7.81066V18C16.75 18.4142 17.0858 18.75 17.5 18.75C17.9142 18.75 18.25 18.4142 18.25 18V7.81066L20.4697 10.0303C20.7626 10.3232 21.2374 10.3232 21.5303 10.0303C21.8232 9.73744 21.8232 9.26256 21.5303 8.96967L18.0303 5.46967ZM2.75 17.75C2.33579 17.75 2 17.4142 2 17C2 16.5858 2.33579 16.25 2.75 16.25L12.25 16.25C12.6642 16.25 13 16.5858 13 17C13 17.4142 12.6642 17.75 12.25 17.75L2.75 17.75ZM2.75 12.75C2.33579 12.75 2 12.4142 2 12C2 11.5858 2.33579 11.25 2.75 11.25L10.25 11.25C10.6642 11.25 11 11.5858 11 12C11 12.4142 10.6642 12.75 10.25 12.75H2.75ZM2 7C2 7.41421 2.33579 7.75 2.75 7.75H8.25C8.66421 7.75 9 7.41421 9 7C9 6.58579 8.66421 6.25 8.25 6.25H2.75C2.33579 6.25 2 6.58579 2 7Z" fill="#23262A"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
@@ -0,0 +1,11 @@
|
||||
name: SortUp
|
||||
category: Interface
|
||||
sub_category: Filtering and sorting
|
||||
keywords:
|
||||
- sort
|
||||
- sortering
|
||||
- stigende
|
||||
- ascending
|
||||
variant: Stroke
|
||||
updated_at: 27.01.2025
|
||||
created_at: 27.01.2025
|
||||
@@ -6,5 +6,5 @@ keywords:
|
||||
- europa
|
||||
- europe
|
||||
variant: Stroke
|
||||
updated_at: 08.07.2024
|
||||
updated_at: 23.09.2024
|
||||
created_at: 07.03.2023
|
||||
@@ -12,5 +12,5 @@ keywords:
|
||||
- diagram
|
||||
- analyse
|
||||
variant: Stroke
|
||||
updated_at: 05.07.2024
|
||||
updated_at: 18.09.2024
|
||||
created_at: 07.03.2023
|
||||
@@ -12,5 +12,5 @@ keywords:
|
||||
- diagram
|
||||
- analyse
|
||||
variant: Stroke
|
||||
updated_at: 05.07.2024
|
||||
updated_at: 26.09.2024
|
||||
created_at: 07.03.2023
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@navikt/aksel-icons",
|
||||
"version": "7.9.2",
|
||||
"version": "7.11.0",
|
||||
"author": "Aksel | Nav",
|
||||
"homepage": "https://aksel.nav.no/ikoner",
|
||||
"repository": {
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
# @navikt/aksel-stylelint
|
||||
|
||||
## 7.11.0
|
||||
|
||||
## 7.10.0
|
||||
|
||||
## 7.9.2
|
||||
|
||||
## 7.9.1
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@navikt/aksel-stylelint",
|
||||
"version": "7.9.2",
|
||||
"version": "7.11.0",
|
||||
"author": "Aksel | Nav",
|
||||
"homepage": "https://aksel.nav.no/grunnleggende/kode/stylelint",
|
||||
"repository": {
|
||||
@@ -35,8 +35,8 @@
|
||||
"dev": "yarn watch:lint"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@navikt/ds-css": "^7.9.2",
|
||||
"@navikt/ds-tokens": "^7.9.2",
|
||||
"@navikt/ds-css": "^7.11.0",
|
||||
"@navikt/ds-tokens": "^7.11.0",
|
||||
"concurrently": "9.0.1",
|
||||
"postcss-selector-parser": "^6.0.13",
|
||||
"postcss-value-parser": "^4.2.0",
|
||||
|
||||
@@ -1,5 +1,19 @@
|
||||
# @navikt/aksel
|
||||
|
||||
## 7.11.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [[`c73db43`](https://github.com/navikt/aksel/commit/c73db43c9638b922388ef6684c016663a0a29873), [`c73db43`](https://github.com/navikt/aksel/commit/c73db43c9638b922388ef6684c016663a0a29873)]:
|
||||
- @navikt/ds-css@7.11.0
|
||||
|
||||
## 7.10.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [[`d29509d`](https://github.com/navikt/aksel/commit/d29509dc0ad0ef6bff38ad9a2a820d3bd1770aaa), [`fad913c`](https://github.com/navikt/aksel/commit/fad913ce6b27580a2f7b54984955324d1af08196), [`715a34a`](https://github.com/navikt/aksel/commit/715a34ac7d4aa46b5b7b5990e5e1cd528cfd7f6b)]:
|
||||
- @navikt/ds-css@7.10.0
|
||||
|
||||
## 7.9.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@navikt/aksel",
|
||||
"version": "7.9.2",
|
||||
"version": "7.11.0",
|
||||
"description": "Aksel command line interface. Handles css-imports, codemods and more",
|
||||
"author": "Aksel | Nav designsystem team",
|
||||
"license": "MIT",
|
||||
@@ -29,7 +29,7 @@
|
||||
},
|
||||
"homepage": "https://aksel.nav.no/grunnleggende/kode/kommandolinje",
|
||||
"dependencies": {
|
||||
"@navikt/ds-css": "^7.9.2",
|
||||
"@navikt/ds-css": "^7.11.0",
|
||||
"axios": "1.7.4",
|
||||
"chalk": "4.1.0",
|
||||
"clipboardy": "^2.3.0",
|
||||
|
||||
@@ -1,5 +1,25 @@
|
||||
# @navikt/ds-css
|
||||
|
||||
## 7.11.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- ExpansionCard: Removed dynamic padding on button-element. ([#3532](https://github.com/navikt/aksel/pull/3532))
|
||||
|
||||
- Modal: Defaults to `margin: auto` for tailwind 4 support. ([#3532](https://github.com/navikt/aksel/pull/3532))
|
||||
|
||||
## 7.10.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
- Table: New prop `contentGutter` added to `ExpandableRow`-component. This allows user more control for content layout inside expandable element. ([#3507](https://github.com/navikt/aksel/pull/3507))
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Button: Using `<Loader />` within `icon`-prop now supported. ([#3515](https://github.com/navikt/aksel/pull/3515))
|
||||
|
||||
- Combobox: Always render `maxSelected` message when `isMultiSelect` is set. ([#3506](https://github.com/navikt/aksel/pull/3506))
|
||||
|
||||
## 7.9.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -497,7 +497,7 @@
|
||||
}
|
||||
|
||||
/* Loader overrides */
|
||||
.navds-button .navds-loader {
|
||||
.navds-button > .navds-loader {
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@ import { describe, expect, test } from "vitest";
|
||||
* Darkside config might have some new files added. We can skip these when checking for equality.
|
||||
*/
|
||||
const newFiles = ["theme"];
|
||||
const deprecatedFiles = ["linkpanel"];
|
||||
|
||||
describe("Check that old and new (darkside) bundle matches", () => {
|
||||
test("Darkside includes the same files as old bundle", () => {
|
||||
@@ -27,6 +28,9 @@ describe("Check that old and new (darkside) bundle matches", () => {
|
||||
|
||||
// Compare file names
|
||||
oldFiles.forEach((file) => {
|
||||
if (deprecatedFiles.find((oldFile) => file.includes(oldFile))) {
|
||||
return;
|
||||
}
|
||||
expect(darksideFiles).toContain(file);
|
||||
});
|
||||
|
||||
@@ -39,8 +43,9 @@ describe("Check that old and new (darkside) bundle matches", () => {
|
||||
|
||||
/**
|
||||
* Check that darkside has the same amount of files as old bundle
|
||||
* (minus the new files * 2 since .min.css is also included)
|
||||
*/
|
||||
expect(darksideFiles.length - newFiles.length * 2).toBe(oldFiles.length);
|
||||
expect(
|
||||
darksideFiles.length - newFiles.length * 2 + deprecatedFiles.length * 2,
|
||||
).toBe(oldFiles.length);
|
||||
});
|
||||
});
|
||||
@@ -45,8 +45,8 @@
|
||||
}
|
||||
|
||||
&:focus-visible {
|
||||
outline: 2px solid var(--ax-border-focus);
|
||||
outline-offset: 2px;
|
||||
outline: 3px solid var(--ax-border-focus);
|
||||
outline-offset: 3px;
|
||||
z-index: 1;
|
||||
|
||||
&::before,
|
||||
@@ -57,7 +57,7 @@
|
||||
}
|
||||
|
||||
.navds-accordion--small .navds-accordion__header {
|
||||
padding-block: var(--a-spacing-2);
|
||||
padding-block: var(--ax-space-8);
|
||||
}
|
||||
|
||||
.navds-accordion__header::before,
|
||||
@@ -73,10 +73,6 @@
|
||||
background-color: var(--ax-border-subtleA);
|
||||
}
|
||||
|
||||
.navds-accordion__item:last-child > .navds-accordion__content {
|
||||
border-bottom: 1px solid transparent;
|
||||
}
|
||||
|
||||
.navds-accordion__header::after {
|
||||
top: initial;
|
||||
bottom: 0;
|
||||
@@ -100,7 +96,7 @@
|
||||
height: 22px;
|
||||
align-self: center;
|
||||
background-color: var(--ax-bg-accent-moderateA);
|
||||
color: var(--ax-text-accent-strong);
|
||||
color: var(--ax-text-accent);
|
||||
}
|
||||
|
||||
.navds-accordion__header-chevron {
|
||||
@@ -115,46 +111,9 @@
|
||||
}
|
||||
|
||||
/* ---------------------------- Accordion content --------------------------- */
|
||||
.navds-accordion__content {
|
||||
--__acx-accordion-content-line-width: 2px;
|
||||
|
||||
padding-inline: var(--ax-space-24) var(--ax-space-12);
|
||||
display: none;
|
||||
overflow: hidden;
|
||||
padding-block: 0;
|
||||
max-height: 0;
|
||||
border-color: transparent;
|
||||
transition: all 250ms cubic-bezier(0.2, 0, 0, 1) allow-discrete;
|
||||
animation: navds-accordion-content-animation 250ms cubic-bezier(0.2, 0, 0, 1);
|
||||
}
|
||||
|
||||
.navds-accordion__item--no-animation {
|
||||
animation: none;
|
||||
}
|
||||
|
||||
@keyframes navds-accordion-content-animation {
|
||||
0% {
|
||||
opacity: 0.01;
|
||||
}
|
||||
|
||||
20% {
|
||||
opacity: 0.01;
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.navds-accordion--indent > .navds-accordion__item > .navds-accordion__content {
|
||||
padding-inline: var(--ax-space-24) var(--ax-space-12);
|
||||
}
|
||||
|
||||
.navds-accordion--indent > .navds-accordion__item .navds-accordion__content-inner {
|
||||
box-shadow: -2px 0 0 0 var(--ax-border-subtleA);
|
||||
padding-block: var(--ax-space-8);
|
||||
|
||||
/* Aligns content with heading-section */
|
||||
padding-inline: calc(var(--ax-space-20) + 2px) var(--ax-space-20);
|
||||
|
||||
@media (forced-colors: active) {
|
||||
@@ -162,20 +121,54 @@
|
||||
}
|
||||
}
|
||||
|
||||
.navds-accordion__item[data-expanded="true"] > .navds-accordion__content {
|
||||
display: block;
|
||||
opacity: 1;
|
||||
overflow: visible;
|
||||
max-height: fit-content;
|
||||
padding-block: var(--ax-space-8);
|
||||
padding-block-end: var(--ax-space-24);
|
||||
border-color: var(--ax-border-subtleA);
|
||||
.navds-accordion--indent > .navds-accordion__item > .navds-accordion__content {
|
||||
box-shadow: -2px 0 0 0 var(--ax-border-subtleA);
|
||||
}
|
||||
|
||||
@starting-style {
|
||||
.navds-accordion__item[data-expanded="true"]:not(.navds-accordion__item--no-animation) > .navds-accordion__content {
|
||||
padding-block: 0;
|
||||
max-height: 0;
|
||||
.navds-accordion__item {
|
||||
& > .navds-accordion__content {
|
||||
display: grid;
|
||||
grid-template-rows: 0fr;
|
||||
visibility: hidden;
|
||||
overflow: hidden;
|
||||
margin-inline: var(--ax-space-24) var(--ax-space-12);
|
||||
margin-block: 0;
|
||||
transition-timing-function: cubic-bezier(0.2, 0, 0, 1);
|
||||
transition-duration: 250ms;
|
||||
transition-property: visibility, opacity, grid-template-rows, margin, min-height;
|
||||
border-color: transparent;
|
||||
opacity: 0;
|
||||
|
||||
& .navds-accordion__content-inner {
|
||||
min-height: 0;
|
||||
padding-block: 0;
|
||||
}
|
||||
}
|
||||
|
||||
&[data-expanded="true"] {
|
||||
& > .navds-accordion__content {
|
||||
grid-template-rows: 1fr;
|
||||
visibility: visible;
|
||||
margin-block: var(--ax-space-8);
|
||||
margin-block-end: var(--ax-space-24);
|
||||
border-color: var(--ax-border-subtleA);
|
||||
opacity: 1;
|
||||
|
||||
& .navds-accordion__content-inner {
|
||||
min-height: fit-content;
|
||||
}
|
||||
}
|
||||
|
||||
&:last-child {
|
||||
border-bottom: 1px solid var(--ax-border-subtleA);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* ---------------- Accordion No Animation (defaultOpen) ---------------- */
|
||||
|
||||
.navds-accordion__item--no-animation {
|
||||
& > .navds-accordion__content {
|
||||
transition: none;
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
/* --------------------------- ActionMenu content --------------------------- */
|
||||
.navds-action-menu__content {
|
||||
overflow: hidden;
|
||||
border-radius: var(--ax-border-radius-large);
|
||||
border-radius: var(--ax-border-radius-xlarge);
|
||||
border: 1px solid var(--ax-border-subtleA);
|
||||
box-shadow: var(--ax-shadow-dialog);
|
||||
transition: transform 250ms cubic-bezier(0, 0, 0, 1) allow-discrete;
|
||||
@@ -39,7 +39,7 @@
|
||||
--__axc-action-menu-item-pl: var(--ax-space-8);
|
||||
--__axc-action-menu-item-height: 2rem;
|
||||
|
||||
border-radius: var(--ax-border-radius-large);
|
||||
border-radius: var(--ax-border-radius-xlarge);
|
||||
background-color: var(--ax-bg-raised);
|
||||
min-width: 128px;
|
||||
max-width: min(95vw, 640px);
|
||||
@@ -60,7 +60,7 @@
|
||||
gap: var(--ax-space-8);
|
||||
min-height: var(--__axc-action-menu-item-height);
|
||||
cursor: default;
|
||||
border-radius: var(--ax-border-radius-medium);
|
||||
border-radius: var(--ax-border-radius-large);
|
||||
position: relative;
|
||||
padding-left: var(--__axc-action-menu-item-pl);
|
||||
padding-right: var(--__axc-action-menu-item-pr);
|
||||
@@ -107,7 +107,7 @@
|
||||
|
||||
&:focus {
|
||||
background-color: var(--ax-bg-danger-moderate-hoverA);
|
||||
color: var(--ax-text-danger-strong);
|
||||
color: var(--ax-text-danger);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
@font-face {
|
||||
font-family: "Source Sans 3";
|
||||
font-style: italic;
|
||||
font-weight: 400 600;
|
||||
font-weight: 400 650;
|
||||
font-display: swap;
|
||||
src: url(https://cdn.nav.no/aksel/fonts/SourceSans3-italic-cyrillic_ext.woff2) format("woff2");
|
||||
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
||||
@@ -12,7 +12,7 @@
|
||||
@font-face {
|
||||
font-family: "Source Sans 3";
|
||||
font-style: italic;
|
||||
font-weight: 400 600;
|
||||
font-weight: 400 650;
|
||||
font-display: swap;
|
||||
src: url(https://cdn.nav.no/aksel/fonts/SourceSans3-italic-cyrillic.woff2) format("woff2");
|
||||
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
@@ -22,7 +22,7 @@
|
||||
@font-face {
|
||||
font-family: "Source Sans 3";
|
||||
font-style: italic;
|
||||
font-weight: 400 600;
|
||||
font-weight: 400 650;
|
||||
font-display: swap;
|
||||
src: url(https://cdn.nav.no/aksel/fonts/SourceSans3-italic-latin_ext.woff2) format("woff2");
|
||||
unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113,
|
||||
@@ -33,7 +33,7 @@
|
||||
@font-face {
|
||||
font-family: "Source Sans 3";
|
||||
font-style: italic;
|
||||
font-weight: 400 600;
|
||||
font-weight: 400 650;
|
||||
font-display: swap;
|
||||
src: url(https://cdn.nav.no/aksel/fonts/SourceSans3-italic.woff2) format("woff2");
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F,
|
||||
@@ -44,7 +44,7 @@
|
||||
@font-face {
|
||||
font-family: "Source Sans 3";
|
||||
font-style: normal;
|
||||
font-weight: 400 600;
|
||||
font-weight: 400 650;
|
||||
font-display: swap;
|
||||
src: url(https://cdn.nav.no/aksel/fonts/SourceSans3-normal-cyrillic_ext.woff2) format("woff2");
|
||||
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
||||
@@ -54,7 +54,7 @@
|
||||
@font-face {
|
||||
font-family: "Source Sans 3";
|
||||
font-style: normal;
|
||||
font-weight: 400 600;
|
||||
font-weight: 400 650;
|
||||
font-display: swap;
|
||||
src: url(https://cdn.nav.no/aksel/fonts/SourceSans3-normal-cyrillic.woff2) format("woff2");
|
||||
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
@@ -64,7 +64,7 @@
|
||||
@font-face {
|
||||
font-family: "Source Sans 3";
|
||||
font-style: normal;
|
||||
font-weight: 400 600;
|
||||
font-weight: 400 650;
|
||||
font-display: swap;
|
||||
src: url(https://cdn.nav.no/aksel/fonts/SourceSans3-normal-latin_ext.woff2) format("woff2");
|
||||
unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113,
|
||||
@@ -75,7 +75,7 @@
|
||||
@font-face {
|
||||
font-family: "Source Sans 3";
|
||||
font-style: normal;
|
||||
font-weight: 400 600;
|
||||
font-weight: 400 650;
|
||||
font-display: swap;
|
||||
src: url(https://cdn.nav.no/aksel/fonts/SourceSans3-normal.woff2) format("woff2");
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F,
|
||||
@@ -88,7 +88,7 @@
|
||||
@font-face {
|
||||
font-family: "Source Sans Pro";
|
||||
font-style: italic;
|
||||
font-weight: 400 600;
|
||||
font-weight: 400 650;
|
||||
font-display: swap;
|
||||
src: url(https://cdn.nav.no/aksel/fonts/SourceSans3-italic-latin_ext.woff2) format("woff2");
|
||||
unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113,
|
||||
@@ -99,7 +99,7 @@
|
||||
@font-face {
|
||||
font-family: "Source Sans Pro";
|
||||
font-style: italic;
|
||||
font-weight: 400 600;
|
||||
font-weight: 400 650;
|
||||
font-display: swap;
|
||||
src: url(https://cdn.nav.no/aksel/fonts/SourceSans3-italic.woff2) format("woff2");
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F,
|
||||
@@ -110,7 +110,7 @@
|
||||
@font-face {
|
||||
font-family: "Source Sans Pro";
|
||||
font-style: normal;
|
||||
font-weight: 400 600;
|
||||
font-weight: 400 650;
|
||||
font-display: swap;
|
||||
src: url(https://cdn.nav.no/aksel/fonts/SourceSans3-normal-latin_ext.woff2) format("woff2");
|
||||
unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113,
|
||||
@@ -121,7 +121,7 @@
|
||||
@font-face {
|
||||
font-family: "Source Sans Pro";
|
||||
font-style: normal;
|
||||
font-weight: 400 600;
|
||||
font-weight: 400 650;
|
||||
font-display: swap;
|
||||
src: url(https://cdn.nav.no/aksel/fonts/SourceSans3-normal.woff2) format("woff2");
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F,
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
--__axc-button-border-width: 2px;
|
||||
|
||||
padding: var(--ax-space-12) var(--ax-space-20);
|
||||
border-radius: var(--ax-border-radius-medium);
|
||||
border-radius: var(--ax-border-radius-large);
|
||||
display: inline-flex;
|
||||
cursor: pointer;
|
||||
text-decoration: none;
|
||||
@@ -17,26 +17,28 @@
|
||||
box-shadow: inset 0 0 0 var(--__axc-button-border-width) var(--__axc-button-border-color);
|
||||
|
||||
&:focus-visible {
|
||||
outline: 2px solid var(--ax-border-focus);
|
||||
outline-offset: 2px;
|
||||
outline: 3px solid var(--ax-border-focus);
|
||||
outline-offset: 3px;
|
||||
}
|
||||
}
|
||||
|
||||
.navds-button--small,
|
||||
.navds-button--xsmall {
|
||||
--__axc-button-icon-margin: -2px;
|
||||
--__axc-button-icon-size: 1.25rem;
|
||||
}
|
||||
|
||||
.navds-button--small {
|
||||
padding: var(--ax-space-4) var(--ax-space-12);
|
||||
min-height: 2rem;
|
||||
min-width: 2rem;
|
||||
gap: var(--ax-space-6);
|
||||
}
|
||||
|
||||
.navds-button--xsmall {
|
||||
padding: var(--ax-space-2) var(--ax-space-8);
|
||||
gap: var(--ax-space-4);
|
||||
|
||||
--__axc-button-icon-size: 1.25rem;
|
||||
}
|
||||
|
||||
.navds-button--icon-only {
|
||||
@@ -53,7 +55,7 @@
|
||||
|
||||
@supports not selector(:focus-visible) {
|
||||
.navds-button:focus {
|
||||
outline: 2px solid var(--ax-border-focus);
|
||||
outline: 3px solid var(--ax-border-focus);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -262,7 +264,7 @@
|
||||
}
|
||||
|
||||
/* Loader overrides */
|
||||
.navds-button .navds-loader {
|
||||
.navds-button > .navds-loader {
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
|
||||
@@ -73,14 +73,14 @@
|
||||
.navds-chat--info {
|
||||
& .navds-chat__bubble,
|
||||
& .navds-chat__avatar {
|
||||
background-color: var(--ax-bg-info-raised);
|
||||
background-color: var(--ax-bg-info-moderate);
|
||||
}
|
||||
}
|
||||
|
||||
.navds-chat--neutral {
|
||||
& .navds-chat__bubble,
|
||||
& .navds-chat__avatar {
|
||||
background-color: var(--ax-bg-raised);
|
||||
background-color: var(--ax-bg-moderateA);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -28,8 +28,8 @@
|
||||
min-height: 2rem;
|
||||
|
||||
&:focus-visible {
|
||||
outline: 2px solid var(--ax-border-focus);
|
||||
outline-offset: 2px;
|
||||
outline: 3px solid var(--ax-border-focus);
|
||||
outline-offset: 3px;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -72,7 +72,7 @@
|
||||
.navds-chips__toggle--action {
|
||||
box-shadow: inset 0 0 0 1px var(--ax-border-accent-subtleA);
|
||||
background-color: var(--ax-bg-accent-moderate);
|
||||
color: var(--ax-text-default);
|
||||
color: var(--ax-text-accent-strong);
|
||||
|
||||
&:hover {
|
||||
background-color: var(--ax-bg-accent-moderate-hover);
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
margin: 0;
|
||||
text-decoration: none;
|
||||
border: none;
|
||||
border-radius: var(--ax-border-radius-medium);
|
||||
border-radius: var(--ax-border-radius-large);
|
||||
padding: var(--__axc-copybutton-padding);
|
||||
display: grid;
|
||||
place-content: center;
|
||||
@@ -25,8 +25,8 @@
|
||||
}
|
||||
|
||||
&:focus-visible {
|
||||
outline: 2px solid var(--ax-border-focus);
|
||||
outline-offset: 2px;
|
||||
outline: 3px solid var(--ax-border-focus);
|
||||
outline-offset: 3px;
|
||||
}
|
||||
|
||||
&:disabled {
|
||||
@@ -67,12 +67,8 @@
|
||||
--__axc-copybutton-padding: var(--ax-space-4);
|
||||
}
|
||||
|
||||
& .navds-copybutton__icon {
|
||||
font-size: 1.25rem;
|
||||
}
|
||||
|
||||
& > .navds-copybutton__content {
|
||||
gap: var(--ax-space-6);
|
||||
gap: var(--ax-space-4);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -96,7 +92,7 @@
|
||||
}
|
||||
|
||||
& > .navds-copybutton__content {
|
||||
gap: var(--ax-space-4);
|
||||
gap: var(--ax-space-2);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -104,18 +100,6 @@
|
||||
.navds-copybutton__icon {
|
||||
font-size: 1.5rem;
|
||||
display: flex;
|
||||
|
||||
&:first-of-type {
|
||||
margin-left: -0.25rem;
|
||||
}
|
||||
|
||||
&:last-of-type {
|
||||
margin-right: -0.25rem;
|
||||
}
|
||||
|
||||
&:only-child {
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.navds-copybutton--active .navds-copybutton__icon {
|
||||
@@ -146,14 +130,6 @@
|
||||
|
||||
&.navds-copybutton--active {
|
||||
color: var(--ax-text-success);
|
||||
|
||||
&:hover {
|
||||
color: var(--ax-text-success-strong);
|
||||
}
|
||||
}
|
||||
|
||||
&:hover {
|
||||
color: var(--ax-text-accent-strong);
|
||||
}
|
||||
|
||||
&:disabled {
|
||||
@@ -165,11 +141,6 @@
|
||||
.navds-copybutton--neutral {
|
||||
color: var(--ax-text-subtle);
|
||||
|
||||
&:hover,
|
||||
&.navds-copybutton--active {
|
||||
color: var(--ax-text-default);
|
||||
}
|
||||
|
||||
&:disabled {
|
||||
color: var(--ax-text-subtle);
|
||||
}
|
||||
@@ -179,5 +150,5 @@
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: var(--ax-space-8);
|
||||
gap: var(--ax-space-6);
|
||||
}
|
||||
@@ -35,21 +35,19 @@
|
||||
width: 2.5rem;
|
||||
height: 2.5rem;
|
||||
text-align: center;
|
||||
border-radius: var(--ax-border-radius-medium);
|
||||
border-radius: var(--ax-border-radius-large);
|
||||
}
|
||||
|
||||
.rdp-day_range_start {
|
||||
border-radius: var(--ax-border-radius-xlarge) var(--ax-border-radius-medium) var(--ax-border-radius-medium)
|
||||
var(--ax-border-radius-xlarge);
|
||||
border-radius: 100% var(--ax-border-radius-xlarge) var(--ax-border-radius-xlarge) 100%;
|
||||
}
|
||||
|
||||
.rdp-day_range_end:not(.rdp-day_range_start) {
|
||||
border-radius: var(--ax-border-radius-medium) var(--ax-border-radius-xlarge) var(--ax-border-radius-xlarge)
|
||||
var(--ax-border-radius-medium);
|
||||
border-radius: var(--ax-border-radius-large) 100% 100% var(--ax-border-radius-large);
|
||||
}
|
||||
|
||||
.rdp-day_range_start.rdp-day_range_end {
|
||||
border-radius: var(--ax-border-radius-xlarge);
|
||||
border-radius: var(--ax-border-radius-large);
|
||||
}
|
||||
|
||||
.navds-date__field {
|
||||
@@ -142,7 +140,7 @@
|
||||
width: 3rem;
|
||||
height: 3rem;
|
||||
text-transform: capitalize;
|
||||
border-radius: var(--ax-border-radius-medium);
|
||||
border-radius: var(--ax-border-radius-large);
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
@@ -159,8 +157,8 @@
|
||||
.rdp-cell > button.rdp-day,
|
||||
button.navds-date__month-button {
|
||||
&:focus-visible {
|
||||
outline: 2px solid var(--ax-border-focus);
|
||||
outline-offset: 1px;
|
||||
outline: 3px solid var(--ax-border-focus);
|
||||
outline-offset: 3px;
|
||||
}
|
||||
|
||||
&:active:not(:disabled) {
|
||||
@@ -192,7 +190,7 @@
|
||||
text-decoration: none;
|
||||
border: none;
|
||||
background: none;
|
||||
border-radius: calc(var(--ax-border-radius-medium) - 1px);
|
||||
border-radius: calc(var(--ax-border-radius-large) - 1px);
|
||||
padding: var(--ax-space-12);
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
.navds-expansioncard {
|
||||
--__axc-expansioncard-border-radius: calc(var(--ax-border-radius-xlarge) - 1px);
|
||||
--__axc-expansioncard-padding-block: var(--ax-space-16);
|
||||
--__axc-expansioncard-padding-block: var(--ax-space-20);
|
||||
--__axc-expansioncard-padding-inline: var(--ax-space-20);
|
||||
|
||||
border-radius: var(--ax-border-radius-xlarge);
|
||||
@@ -17,7 +17,7 @@
|
||||
/* ------------------------ ExpansionCard Small-size ------------------------ */
|
||||
.navds-expansioncard--small {
|
||||
--__axc-expansioncard-padding-inline: var(--ax-space-16);
|
||||
--__axc-expansioncard-padding-block: var(--ax-space-12);
|
||||
--__axc-expansioncard-padding-block: var(--ax-space-16);
|
||||
|
||||
& > .navds-expansioncard__header .navds-expansioncard__title--small {
|
||||
margin-top: var(--ax-space-2);
|
||||
@@ -45,7 +45,7 @@
|
||||
justify-content: space-between;
|
||||
|
||||
&:hover {
|
||||
background-color: var(--ax-bg-hover);
|
||||
background-color: var(--ax-bg-hoverA);
|
||||
}
|
||||
|
||||
&[data-open="true"] {
|
||||
@@ -55,7 +55,7 @@
|
||||
/* Divider between header and content */
|
||||
&::after {
|
||||
content: "";
|
||||
background-color: var(--ax-border-subtle);
|
||||
background-color: var(--ax-border-subtleA);
|
||||
bottom: 0;
|
||||
left: var(--__axc-expansioncard-padding-inline);
|
||||
height: 1px;
|
||||
@@ -98,15 +98,7 @@
|
||||
align-self: flex-start;
|
||||
|
||||
&:focus-visible {
|
||||
outline: 2px solid var(--ax-border-focus);
|
||||
outline-offset: 2px;
|
||||
}
|
||||
|
||||
@supports not selector(:focus-visible) {
|
||||
&:focus {
|
||||
outline: 2px solid var(--ax-border-focus);
|
||||
outline-offset: 2px;
|
||||
}
|
||||
outline: 3px solid var(--ax-border-focus);
|
||||
}
|
||||
|
||||
/* Makes the whole header clickable */
|
||||
|
||||
@@ -10,12 +10,12 @@
|
||||
flex-direction: column;
|
||||
width: 100%;
|
||||
position: relative;
|
||||
border-radius: var(--ax-border-radius-medium);
|
||||
border-radius: var(--ax-border-radius-large);
|
||||
}
|
||||
|
||||
.navds-form-field:not(:is(.navds-combobox--disabled, .navds-combobox--readonly)) {
|
||||
& .navds-combobox__wrapper:hover {
|
||||
border-color: var(--ax-border-focus);
|
||||
border-color: var(--ax-border-accent-strong);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,6 +31,10 @@
|
||||
opacity: var(--ax-opacity-disabled);
|
||||
|
||||
& .navds-combobox__wrapper {
|
||||
&:hover {
|
||||
border-color: var(--ax-border-default);
|
||||
}
|
||||
|
||||
& *:hover {
|
||||
cursor: not-allowed;
|
||||
}
|
||||
@@ -77,12 +81,12 @@
|
||||
|
||||
.navds-combobox__wrapper-inner {
|
||||
border: 1px solid var(--ax-border-default);
|
||||
border-radius: var(--ax-border-radius-medium);
|
||||
border-radius: var(--ax-border-radius-large);
|
||||
|
||||
&:has(.navds-combobox__input:focus-visible) {
|
||||
outline: 2px solid var(--ax-border-focus);
|
||||
outline-offset: 2px;
|
||||
border-color: var(--ax-border-focus);
|
||||
outline: 3px solid var(--ax-border-focus);
|
||||
outline-offset: 3px;
|
||||
border-color: var(--ax-border-accent-strong);
|
||||
}
|
||||
|
||||
&:has(.navds-combobox__input:focus-visible).navds-combobox__wrapper-inner--virtually-unfocused {
|
||||
@@ -113,15 +117,19 @@
|
||||
&:hover {
|
||||
cursor: text;
|
||||
}
|
||||
|
||||
.navds-combobox--disabled &:hover {
|
||||
border-color: var(--ax-border-default);
|
||||
}
|
||||
}
|
||||
|
||||
.navds-combobox--error {
|
||||
& .navds-combobox__wrapper-inner {
|
||||
border-color: var(--ax-border-danger);
|
||||
box-shadow: 0 0 0 1px var(--ax-border-danger);
|
||||
border-color: var(--ax-border-danger-strong);
|
||||
box-shadow: 0 0 0 1px var(--ax-border-danger-strong);
|
||||
|
||||
&:has(.navds-combobox__input:focus-visible) {
|
||||
border-color: var(--ax-border-danger);
|
||||
border-color: var(--ax-border-danger-strong);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -207,7 +215,6 @@
|
||||
}
|
||||
|
||||
.navds-combobox__button-toggle-list {
|
||||
border-radius: var(--ax-border-radius-medium);
|
||||
color: var(--ax-text-default);
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
@@ -230,7 +237,7 @@
|
||||
/* dropdown & non selectable dropdown items */
|
||||
|
||||
.navds-combobox__list {
|
||||
max-height: 290px;
|
||||
max-height: 316px;
|
||||
overflow: clip;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
@@ -265,10 +272,10 @@
|
||||
justify-content: space-between;
|
||||
padding-block: var(--__axc-combobox-list-item-padding-block);
|
||||
padding-inline: var(--__axc-combobox-list-item-padding-inline);
|
||||
border-radius: var(--ax-border-radius-medium);
|
||||
border-radius: var(--ax-border-radius-large);
|
||||
border: 0;
|
||||
margin-inline: var(--ax-space-8);
|
||||
margin-block: var(--ax-space-4);
|
||||
margin-block: var(--ax-space-2);
|
||||
scroll-margin-block: 8px; /* outline + outline-offset + margin-block */
|
||||
}
|
||||
|
||||
@@ -307,7 +314,6 @@
|
||||
.navds-combobox__list-item--focus {
|
||||
cursor: pointer;
|
||||
outline: 2px solid var(--ax-border-focus);
|
||||
outline-offset: 2px;
|
||||
}
|
||||
|
||||
.navds-combobox__list-item {
|
||||
@@ -321,10 +327,11 @@
|
||||
& mark {
|
||||
background-color: transparent;
|
||||
font-weight: var(--ax-font-weight-bold);
|
||||
color: var(--ax-text-default);
|
||||
}
|
||||
|
||||
& svg {
|
||||
color: var(--ax-text-accent);
|
||||
color: var(--ax-text-default);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -344,14 +351,14 @@
|
||||
justify-content: flex-start;
|
||||
gap: 0.25rem;
|
||||
margin: 0;
|
||||
margin-block: calc(var(--ax-space-4) * -1);
|
||||
padding-block: var(--ax-space-16);
|
||||
margin-block-start: calc(var(--ax-space-4) * -1);
|
||||
|
||||
& svg {
|
||||
color: var(--ax-text-default);
|
||||
}
|
||||
|
||||
&:only-child {
|
||||
margin-block: calc(var(--ax-space-4) * -1);
|
||||
border: none;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,17 +3,17 @@
|
||||
padding: var(--ax-space-16) var(--ax-space-20);
|
||||
border: 4px solid var(--ax-border-danger);
|
||||
border-radius: var(--ax-border-radius-xlarge);
|
||||
outline-offset: 2px;
|
||||
outline-offset: 3px;
|
||||
|
||||
&:focus-visible,
|
||||
&:has(.navds-error-summary__heading:focus-visible) {
|
||||
outline: 2px solid var(--ax-border-focus);
|
||||
outline: 3px solid var(--ax-border-focus);
|
||||
}
|
||||
}
|
||||
|
||||
@supports not selector(:focus-visible) {
|
||||
.navds-error-summary:focus {
|
||||
outline: 2px solid var(--ax-border-focus);
|
||||
outline: 3px solid var(--ax-border-focus);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -26,19 +26,23 @@
|
||||
border-color: var(--ax-border-accent-strong);
|
||||
|
||||
& > .navds-dropzone__area-button {
|
||||
color: var(--ax-text-accent-strong);
|
||||
background-color: var(--ax-bg-accent-moderate-hover);
|
||||
box-shadow: inset 0 0 0 2px var(--ax-bg-accent-strong-hover);
|
||||
}
|
||||
}
|
||||
|
||||
&:active .navds-dropzone__area-button {
|
||||
background-color: var(--ax-bg-accent-strong-pressed);
|
||||
color: var(--ax-text-accent-contrast);
|
||||
box-shadow: none;
|
||||
&:active:not([data-disabled="true"]) {
|
||||
& > .navds-dropzone__area-button {
|
||||
background-color: var(--ax-bg-accent-strong-pressed);
|
||||
color: var(--ax-text-accent-contrast);
|
||||
box-shadow: none;
|
||||
}
|
||||
}
|
||||
|
||||
&[data-disabled="true"] {
|
||||
--__axc-dropzone-background: var(--ax-bg-soft);
|
||||
|
||||
border-color: var(--ax-border-subtleA);
|
||||
cursor: default;
|
||||
}
|
||||
}
|
||||
@@ -89,7 +93,7 @@
|
||||
|
||||
.navds-dropzone--error > .navds-dropzone__area {
|
||||
border-color: transparent;
|
||||
outline: 2px solid var(--ax-border-danger);
|
||||
outline: 2px solid var(--ax-border-danger-strong);
|
||||
outline-offset: -1px;
|
||||
}
|
||||
|
||||
@@ -130,7 +134,7 @@
|
||||
}
|
||||
|
||||
.navds-dropzone--dragging .navds-dropzone__area-release {
|
||||
color: var(--ax-text-accent-strong);
|
||||
color: var(--ax-text-accent);
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
}
|
||||
@@ -165,7 +169,7 @@ li.navds-file-item {
|
||||
}
|
||||
|
||||
.navds-file-item--error > .navds-file-item__inner {
|
||||
outline: 2px solid var(--ax-border-danger);
|
||||
outline: 2px solid var(--ax-border-danger-strong);
|
||||
}
|
||||
|
||||
.navds-file-item__icon {
|
||||
@@ -198,7 +202,6 @@ li.navds-file-item {
|
||||
}
|
||||
|
||||
.navds-file-item__error {
|
||||
color: var(--ax-text-danger);
|
||||
display: grid;
|
||||
transition-property: grid-template-rows, padding-top;
|
||||
transition-duration: 250ms;
|
||||
@@ -206,20 +209,8 @@ li.navds-file-item {
|
||||
overflow: hidden;
|
||||
grid-template-rows: 0fr;
|
||||
|
||||
& .navds-file-item__error {
|
||||
.navds-file-item--error & {
|
||||
grid-template-rows: 1fr;
|
||||
padding-top: var(--ax-space-4);
|
||||
}
|
||||
}
|
||||
|
||||
.navds-file-item__error-content {
|
||||
min-height: 0;
|
||||
display: flex;
|
||||
gap: var(--ax-space-4);
|
||||
|
||||
& > svg {
|
||||
flex-shrink: 0;
|
||||
height: 1rem;
|
||||
margin-top: 0.1rem;
|
||||
}
|
||||
}
|
||||
@@ -50,7 +50,7 @@
|
||||
|
||||
.navds-form-progress__stepper {
|
||||
border: 1px solid var(--ax-border-subtle);
|
||||
border-radius: var(--ax-border-radius-large);
|
||||
border-radius: var(--ax-border-radius-xlarge);
|
||||
padding: var(--ax-space-16) var(--ax-space-20);
|
||||
margin-top: var(--ax-space-4);
|
||||
background: var(--ax-bg-raised);
|
||||
|
||||
@@ -68,26 +68,42 @@
|
||||
height: 1.25rem;
|
||||
}
|
||||
|
||||
.navds-checkbox__input:focus + .navds-checkbox__label::before,
|
||||
.navds-radio__input:focus + .navds-radio__label::before {
|
||||
outline: 2px solid var(--ax-border-focus);
|
||||
outline-offset: 2px;
|
||||
}
|
||||
|
||||
.navds-checkbox__input:indeterminate + .navds-checkbox__label::after {
|
||||
.navds-checkbox__input:focus + .navds-checkbox__label::after,
|
||||
.navds-radio__input:focus + .navds-radio__label::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
transform: translate(var(--ax-space-6), -50%);
|
||||
background-color: var(--ax-bg-default);
|
||||
width: 0.75rem;
|
||||
height: 0.25rem;
|
||||
border-radius: 1px;
|
||||
flex-shrink: 0;
|
||||
width: 100%;
|
||||
height: calc(100% - var(--ax-space-24));
|
||||
border-radius: var(--ax-border-radius-medium);
|
||||
outline: 3px solid var(--ax-border-focus);
|
||||
outline-offset: 3px;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.navds-checkbox--small .navds-checkbox__input:indeterminate + .navds-checkbox__label::after {
|
||||
transform: translate(0.25rem, -50%);
|
||||
.navds-checkbox--small > .navds-checkbox__input:focus + .navds-checkbox__label::after,
|
||||
.navds-radio--small > .navds-radio__input:focus + .navds-radio__label::after {
|
||||
height: calc(100% - var(--ax-space-12));
|
||||
}
|
||||
|
||||
.navds-checkbox__icon-indeterminate {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.navds-checkbox__input:indeterminate + .navds-checkbox__label > .navds-checkbox__icon-indeterminate {
|
||||
display: block;
|
||||
width: 0.75rem;
|
||||
height: 0.25rem;
|
||||
background-color: var(--ax-bg-default);
|
||||
border-radius: 1px;
|
||||
position: absolute;
|
||||
transform: translate(var(--ax-space-6), -50%);
|
||||
top: 50%;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.navds-checkbox--small .navds-checkbox__input:indeterminate + .navds-checkbox__label > .navds-checkbox__icon-indeterminate {
|
||||
transform: translate(var(--ax-space-4), -50%);
|
||||
height: 0.1875rem;
|
||||
}
|
||||
|
||||
.navds-checkbox__input:where(:checked, :indeterminate) + .navds-checkbox__label::before {
|
||||
@@ -141,7 +157,7 @@
|
||||
|
||||
.navds-checkbox__input:hover:not(:disabled) + .navds-checkbox__label,
|
||||
.navds-radio__input:hover:not(:disabled) + .navds-radio__label {
|
||||
color: var(--ax-text-accent-strong);
|
||||
color: var(--ax-text-accent);
|
||||
}
|
||||
|
||||
.navds-checkbox__input:hover:not(:disabled, :checked, :indeterminate) + .navds-checkbox__label::before,
|
||||
@@ -152,13 +168,12 @@
|
||||
|
||||
.navds-checkbox--error > .navds-checkbox__input:not(:disabled, :checked, :indeterminate) + .navds-checkbox__label::before,
|
||||
.navds-radio--error > .navds-radio__input:not(:disabled, :checked) + .navds-radio__label::before {
|
||||
border-color: var(--ax-border-danger);
|
||||
border-color: var(--ax-border-danger-strong);
|
||||
}
|
||||
|
||||
.navds-checkbox--error > .navds-checkbox__input:not(:disabled, :checked, :indeterminate):hover + .navds-checkbox__label::before,
|
||||
.navds-radio--error > .navds-radio__input:not(:disabled, :checked):hover + .navds-radio__label::before {
|
||||
background-color: var(--ax-bg-danger-moderate-hoverA);
|
||||
border-color: var(--ax-border-danger-strong);
|
||||
}
|
||||
|
||||
.navds-checkbox--error > .navds-checkbox__input:is(:checked, :indeterminate):not(:disabled) + .navds-checkbox__label::before {
|
||||
@@ -222,7 +237,7 @@
|
||||
inset 0 0 0 8px var(--ax-bg-moderate);
|
||||
}
|
||||
|
||||
.navds-checkbox--readonly > .navds-checkbox__input:indeterminate + .navds-checkbox__label::after {
|
||||
.navds-checkbox--readonly > .navds-checkbox__input:indeterminate + .navds-checkbox__label > .navds-checkbox__icon-indeterminate {
|
||||
background-color: var(--ax-text-subtle);
|
||||
}
|
||||
|
||||
@@ -247,7 +262,7 @@
|
||||
color: var(--__axc-radio-checkbox-high-contrast-text);
|
||||
}
|
||||
|
||||
.navds-checkbox__input:indeterminate + .navds-checkbox__label::after {
|
||||
.navds-checkbox__input:indeterminate + .navds-checkbox__label > .navds-checkbox__icon-indeterminate {
|
||||
background-color: var(--__axc-radio-checkbox-high-contrast-text);
|
||||
}
|
||||
|
||||
@@ -265,7 +280,10 @@
|
||||
background-color: var(--__axc-radio-checkbox-high-contrast-bg);
|
||||
}
|
||||
|
||||
.navds-checkbox--readonly > .navds-checkbox__input:indeterminate + .navds-checkbox__label::after {
|
||||
.navds-checkbox--readonly
|
||||
> .navds-checkbox__input:indeterminate
|
||||
+ .navds-checkbox__label
|
||||
> .navds-checkbox__icon-indeterminate {
|
||||
background-color: var(--__axc-radio-checkbox-high-contrast-text);
|
||||
}
|
||||
|
||||
|
||||
@@ -22,12 +22,12 @@
|
||||
.navds-search__wrapper {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
border-radius: var(--ax-border-radius-medium);
|
||||
border-radius: var(--ax-border-radius-large);
|
||||
|
||||
/* We have to outline the whole container to include the Search-buttons */
|
||||
&:has(.navds-search__input:focus-visible) {
|
||||
outline: 2px solid var(--ax-border-focus);
|
||||
outline-offset: 2px;
|
||||
outline: 3px solid var(--ax-border-focus);
|
||||
outline-offset: 3px;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -97,8 +97,8 @@
|
||||
.navds-search__button-search {
|
||||
flex-shrink: 0;
|
||||
border-radius: 0;
|
||||
border-top-right-radius: var(--ax-border-radius-medium);
|
||||
border-bottom-right-radius: var(--ax-border-radius-medium);
|
||||
border-top-right-radius: var(--ax-border-radius-large);
|
||||
border-bottom-right-radius: var(--ax-border-radius-large);
|
||||
}
|
||||
|
||||
.navds-search__button-search.navds-button--secondary {
|
||||
@@ -127,13 +127,13 @@
|
||||
|
||||
/* --------------------------- Search Error-state --------------------------- */
|
||||
.navds-search--error .navds-search__input:not(:disabled) {
|
||||
border-color: var(--ax-border-danger);
|
||||
border-color: var(--ax-border-danger-strong);
|
||||
box-shadow:
|
||||
inset -2px 0 0 0 var(--ax-border-danger),
|
||||
inset 0 0 0 1px var(--ax-border-danger);
|
||||
inset -2px 0 0 0 var(--ax-border-danger-strong),
|
||||
inset 0 0 0 1px var(--ax-border-danger-strong);
|
||||
|
||||
&.navds-search__input--simple {
|
||||
box-shadow: inset 0 0 0 1px var(--ax-border-danger);
|
||||
box-shadow: inset 0 0 0 1px var(--ax-border-danger-strong);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
.navds-select__input {
|
||||
appearance: none;
|
||||
background-color: var(--ax-bg-input);
|
||||
border-radius: var(--ax-border-radius-medium);
|
||||
border-radius: var(--ax-border-radius-large);
|
||||
border: 1px solid var(--ax-border-default);
|
||||
color: var(--ax-text-default);
|
||||
width: 100%;
|
||||
@@ -18,8 +18,8 @@
|
||||
}
|
||||
|
||||
&:focus {
|
||||
outline: 2px solid var(--ax-border-focus);
|
||||
outline-offset: 2px;
|
||||
outline: 3px solid var(--ax-border-focus);
|
||||
outline-offset: 3px;
|
||||
border-color: var(--ax-border-accent-strong);
|
||||
}
|
||||
|
||||
@@ -66,8 +66,8 @@
|
||||
/* --------------------------- Select Error-state --------------------------- */
|
||||
.navds-select--error {
|
||||
> * select {
|
||||
box-shadow: 0 0 0 1px var(--ax-border-danger);
|
||||
border-color: var(--ax-border-danger);
|
||||
box-shadow: 0 0 0 1px var(--ax-border-danger-strong);
|
||||
border-color: var(--ax-border-danger-strong);
|
||||
}
|
||||
|
||||
> * select:hover,
|
||||
|
||||
@@ -31,31 +31,46 @@
|
||||
}
|
||||
|
||||
.navds-switch__content {
|
||||
--__axc-switch-block-padding: 0.75rem;
|
||||
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.125rem;
|
||||
padding: 0.75rem 0 0.75rem 3.25rem;
|
||||
gap: var(--ax-space-2);
|
||||
padding: var(--__axc-switch-block-padding) 0 var(--__axc-switch-block-padding) 3.25rem;
|
||||
|
||||
.navds-switch--right & {
|
||||
padding: 0.75rem 3.25rem 0.75rem 0;
|
||||
padding: var(--__axc-switch-block-padding) 3.25rem var(--__axc-switch-block-padding) 0;
|
||||
}
|
||||
|
||||
.navds-switch--small & {
|
||||
padding: calc(var(--ax-space-8) - var(--ax-space-2)) 0 calc(var(--ax-space-8) - var(--ax-space-2)) 3.25rem;
|
||||
--__axc-switch-block-padding: 0.375rem;
|
||||
}
|
||||
|
||||
.navds-switch--right.navds-switch--small & {
|
||||
padding: calc(var(--ax-space-8) - var(--ax-space-2)) 3.25rem calc(var(--ax-space-8) - var(--ax-space-2)) 0;
|
||||
&.navds-switch--with-description {
|
||||
padding-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.navds-switch--with-description {
|
||||
padding-bottom: 0;
|
||||
.navds-switch__input:focus ~ .navds-switch__label-wrapper > &::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: calc(100% - var(--__axc-switch-block-padding) * 2);
|
||||
border-radius: var(--ax-border-radius-medium);
|
||||
outline: 3px solid var(--ax-border-focus);
|
||||
outline-offset: 3px;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.navds-switch__input:focus ~ .navds-switch__label-wrapper > &.navds-switch--with-description::after {
|
||||
height: calc(100% - var(--__axc-switch-block-padding) * 1);
|
||||
}
|
||||
}
|
||||
|
||||
.navds-switch__input:hover ~ .navds-switch__label-wrapper,
|
||||
.navds-switch__label-wrapper:hover {
|
||||
color: var(--ax-text-accent-strong);
|
||||
color: var(--ax-text-accent);
|
||||
}
|
||||
|
||||
.navds-switch__input:disabled:hover ~ .navds-switch__label-wrapper {
|
||||
@@ -100,9 +115,9 @@
|
||||
border-color: var(--ax-bg-accent-strong-pressed);
|
||||
}
|
||||
|
||||
.navds-switch__input:focus-visible ~ & {
|
||||
outline: 2px solid var(--ax-border-focus);
|
||||
outline-offset: 2px;
|
||||
.navds-switch--standalone > .navds-switch__input:focus ~ & {
|
||||
outline: 3px solid var(--ax-border-focus);
|
||||
outline-offset: 3px;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -124,7 +139,7 @@
|
||||
.navds-switch__input:checked ~ .navds-switch__track > & {
|
||||
background-color: var(--ax-bg-raised);
|
||||
transform: translateX(1.25rem);
|
||||
color: var(--ax-text-accent-strong);
|
||||
color: var(--ax-text-accent);
|
||||
width: 1.25rem;
|
||||
height: 1.25rem;
|
||||
left: 0;
|
||||
@@ -238,9 +253,9 @@
|
||||
color: field;
|
||||
}
|
||||
|
||||
.navds-switch__input:focus-visible ~ .navds-switch__track {
|
||||
outline: 2px solid highlight;
|
||||
outline-offset: 2px;
|
||||
.navds-switch__input:focus ~ .navds-switch__label-wrapper > .navds-switch__content::after,
|
||||
.navds-switch--standalone > .navds-switch__input:focus ~ .navds-switch__track {
|
||||
outline: 3px solid highlight;
|
||||
}
|
||||
|
||||
.navds-switch--disabled:not(.navds-switch--loading) {
|
||||
@@ -248,7 +263,7 @@
|
||||
}
|
||||
|
||||
.navds-switch--disabled:not(.navds-switch--loading) .navds-switch__thumb {
|
||||
background-color: graytext;
|
||||
background-color: graytext !important;
|
||||
}
|
||||
|
||||
.navds-switch--disabled:not(.navds-switch--loading) .navds-switch__track {
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
appearance: none;
|
||||
padding: var(--ax-space-8);
|
||||
background: var(--ax-bg-input);
|
||||
border-radius: var(--ax-border-radius-medium);
|
||||
border-radius: var(--ax-border-radius-large);
|
||||
border: 1px solid var(--ax-border-default);
|
||||
min-height: 3rem;
|
||||
width: 100%;
|
||||
@@ -14,8 +14,8 @@
|
||||
|
||||
&:focus-visible {
|
||||
border-color: var(--ax-border-accent-strong);
|
||||
outline: 2px solid var(--ax-border-focus);
|
||||
outline-offset: 2px;
|
||||
outline: 3px solid var(--ax-border-focus);
|
||||
outline-offset: 3px;
|
||||
}
|
||||
|
||||
&:disabled {
|
||||
@@ -39,8 +39,8 @@
|
||||
}
|
||||
|
||||
.navds-text-field--error .navds-text-field__input:not(:disabled) {
|
||||
border-color: var(--ax-border-danger);
|
||||
box-shadow: 0 0 0 1px var(--ax-border-danger);
|
||||
border-color: var(--ax-border-danger-strong);
|
||||
box-shadow: 0 0 0 1px var(--ax-border-danger-strong);
|
||||
}
|
||||
|
||||
.navds-text-field--readonly .navds-text-field__input {
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
appearance: none;
|
||||
padding: var(--ax-space-8);
|
||||
background-color: var(--ax-bg-input);
|
||||
border-radius: var(--ax-border-radius-medium);
|
||||
border-radius: var(--ax-border-radius-large);
|
||||
border: 1px solid var(--ax-border-default);
|
||||
resize: none;
|
||||
width: 100%;
|
||||
@@ -20,8 +20,8 @@
|
||||
}
|
||||
|
||||
&:focus-visible {
|
||||
outline: 2px solid var(--ax-border-focus);
|
||||
outline-offset: 2px;
|
||||
outline: 3px solid var(--ax-border-focus);
|
||||
outline-offset: 3px;
|
||||
border-color: var(--ax-border-accent-strong);
|
||||
}
|
||||
|
||||
@@ -90,8 +90,8 @@
|
||||
}
|
||||
|
||||
.navds-textarea--error .navds-textarea__input:not(:disabled) {
|
||||
box-shadow: 0 0 0 1px var(--ax-border-danger);
|
||||
border-color: var(--ax-border-danger);
|
||||
box-shadow: 0 0 0 1px var(--ax-border-danger-strong);
|
||||
border-color: var(--ax-border-danger-strong);
|
||||
}
|
||||
|
||||
@media (forced-colors: active) {
|
||||
|
||||
@@ -45,7 +45,6 @@
|
||||
@import "./tooltip.darkside.css" layer(aksel.components);
|
||||
@import "./toggle-group.darkside.css" layer(aksel.components);
|
||||
@import "./panel.darkside.css" layer(aksel.components);
|
||||
@import "./link-panel.darkside.css" layer(aksel.components);
|
||||
@import "./read-more.darkside.css" layer(aksel.components);
|
||||
@import "./progress-bar.darkside.css" layer(aksel.components);
|
||||
@import "./skeleton.darkside.css" layer(aksel.components);
|
||||
|
||||
@@ -87,7 +87,7 @@
|
||||
.navds-internalheader__button {
|
||||
&:focus-visible {
|
||||
outline: 3px solid var(--ax-border-focus);
|
||||
outline-offset: -3px;
|
||||
outline-offset: -4px;
|
||||
}
|
||||
|
||||
&:active {
|
||||
|
||||
@@ -1,47 +0,0 @@
|
||||
.navds-link-panel {
|
||||
text-decoration: none;
|
||||
color: var(--ac-link-panel-text, var(--a-text-default));
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
gap: var(--a-spacing-4);
|
||||
}
|
||||
|
||||
.navds-link-panel:hover .navds-link-panel__title {
|
||||
text-decoration: underline;
|
||||
color: var(--ac-link-panel-hover-text, var(--a-text-action-hover));
|
||||
}
|
||||
|
||||
.navds-link-panel:hover {
|
||||
box-shadow: var(--a-shadow-small);
|
||||
border-color: var(--ac-link-panel-hover-border, var(--a-border-action-hover));
|
||||
}
|
||||
|
||||
.navds-link-panel:focus-visible {
|
||||
outline: 3px solid transparent;
|
||||
outline-offset: 2px;
|
||||
box-shadow: var(--a-shadow-focus);
|
||||
}
|
||||
|
||||
@supports not selector(:focus-visible) {
|
||||
.navds-link-panel:focus {
|
||||
outline: 3px solid transparent;
|
||||
outline-offset: 2px;
|
||||
box-shadow: var(--a-shadow-focus);
|
||||
}
|
||||
}
|
||||
|
||||
.navds-link-panel__chevron {
|
||||
flex-shrink: 0;
|
||||
font-size: 1.5rem;
|
||||
transition: transform 200ms;
|
||||
}
|
||||
|
||||
.navds-link-panel:hover > .navds-link-panel__chevron,
|
||||
.navds-link-panel:focus-within > .navds-link-panel__chevron {
|
||||
transform: translateX(4px);
|
||||
}
|
||||
|
||||
.navds-link-panel__description {
|
||||
margin-top: var(--a-spacing-1);
|
||||
}
|
||||
@@ -13,8 +13,9 @@
|
||||
}
|
||||
|
||||
&:focus-visible {
|
||||
outline: 2px solid var(--ax-border-focus);
|
||||
outline-offset: 2px;
|
||||
outline: 3px solid var(--ax-border-focus);
|
||||
outline-offset: 3px;
|
||||
border-radius: 1px;
|
||||
}
|
||||
|
||||
&.navds-link--inline-text {
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
max-height: 100%;
|
||||
max-width: 100%;
|
||||
color: var(--ax-text-default);
|
||||
margin: auto;
|
||||
|
||||
&[open] {
|
||||
display: flex;
|
||||
|
||||
@@ -20,8 +20,8 @@
|
||||
text-align: start;
|
||||
|
||||
&:focus-visible {
|
||||
outline: 2px solid var(--ax-border-focus);
|
||||
outline-offset: 2px;
|
||||
outline: 3px solid var(--ax-border-focus);
|
||||
outline-offset: 3px;
|
||||
}
|
||||
|
||||
&[data-state="open"] .navds-read-more__expand-icon {
|
||||
|
||||
@@ -66,10 +66,11 @@
|
||||
padding: var(--__axc-stepper-border-width);
|
||||
margin: calc(var(--__axc-stepper-border-width) * -1) calc(var(--__axc-stepper-border-width) * -1)
|
||||
var(--__axc-stepper-circle-size);
|
||||
width: 100%;
|
||||
|
||||
&:focus-visible {
|
||||
outline: 2px solid var(--ax-border-focus);
|
||||
outline-offset: 4px;
|
||||
outline: 3px solid var(--ax-border-focus);
|
||||
outline-offset: 3px;
|
||||
|
||||
/* Isolate item to make outline show above line--2 */
|
||||
isolation: isolate;
|
||||
|
||||
@@ -126,8 +126,8 @@
|
||||
}
|
||||
|
||||
.navds-table__sort-button:focus-visible {
|
||||
outline: 2px solid var(--ax-border-focus);
|
||||
outline-offset: -4px;
|
||||
outline: 3px solid var(--ax-border-focus);
|
||||
outline-offset: -5px;
|
||||
}
|
||||
|
||||
.navds-table__header-cell[aria-sort="ascending"] .navds-table__sort-button,
|
||||
@@ -211,7 +211,7 @@
|
||||
}
|
||||
|
||||
.navds-table__toggle-expand-button:focus-visible {
|
||||
outline: 2px solid var(--ax-border-focus);
|
||||
outline: 3px solid var(--ax-border-focus);
|
||||
}
|
||||
|
||||
.navds-table__expanded-row-cell {
|
||||
@@ -229,9 +229,27 @@
|
||||
}
|
||||
|
||||
.navds-table__expanded-row-content {
|
||||
padding: var(--ax-space-16) calc(var(--ax-space-8) + 3rem);
|
||||
--__ac-table-expanded-row-pi: calc(var(--ax-space-8) + 3rem);
|
||||
|
||||
padding-block: var(--ax-space-16);
|
||||
}
|
||||
|
||||
.navds-table--small .navds-table__expanded-row-content {
|
||||
padding: var(--ax-space-8) calc(var(--ax-space-8) + 3rem);
|
||||
padding-block: var(--ax-space-8);
|
||||
}
|
||||
|
||||
.navds-table__expanded-row-content--gutter-both {
|
||||
padding-inline: var(--__ac-table-expanded-row-pi);
|
||||
}
|
||||
|
||||
.navds-table__expanded-row-content--gutter-left {
|
||||
padding-inline: var(--__ac-table-expanded-row-pi) var(--ax-space-8);
|
||||
}
|
||||
|
||||
.navds-table__expanded-row-content--gutter-right {
|
||||
padding-inline: var(--ax-space-8) var(--__ac-table-expanded-row-pi);
|
||||
}
|
||||
|
||||
.navds-table__expanded-row-content--gutter-none {
|
||||
padding-inline: var(--ax-space-8);
|
||||
}
|
||||
@@ -68,8 +68,8 @@
|
||||
}
|
||||
|
||||
&:focus-visible {
|
||||
outline: 2px solid var(--ax-border-focus);
|
||||
outline-offset: -2px;
|
||||
outline: 3px solid var(--ax-border-focus);
|
||||
outline-offset: -3px;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -126,8 +126,8 @@
|
||||
}
|
||||
|
||||
.navds-tabs__tabpanel:focus-visible {
|
||||
outline: 2px solid var(--ax-border-focus);
|
||||
outline-offset: -2px;
|
||||
outline: 3px solid var(--ax-border-focus);
|
||||
outline-offset: -4px;
|
||||
}
|
||||
|
||||
@media (forced-colors: active) {
|
||||
|
||||
@@ -64,11 +64,11 @@
|
||||
|
||||
.navds-timeline__period:focus-visible {
|
||||
z-index: 4;
|
||||
outline: 2px solid var(--ax-border-focus);
|
||||
outline-offset: 2px;
|
||||
outline: 3px solid var(--ax-border-focus);
|
||||
outline-offset: 3px;
|
||||
|
||||
&& {
|
||||
box-shadow: 0 0 0 2px var(--ax-bg-default);
|
||||
box-shadow: 0 0 0 3px var(--ax-bg-default);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -237,9 +237,9 @@
|
||||
&:focus-visible {
|
||||
box-shadow:
|
||||
inset 0 0 0 4px var(--ax-border-danger-strong),
|
||||
0 0 0 2px var(--ax-bg-default);
|
||||
outline: 2px solid var(--ax-border-focus);
|
||||
outline-offset: 2px;
|
||||
0 0 0 3px var(--ax-bg-default);
|
||||
outline: 3px solid var(--ax-border-focus);
|
||||
outline-offset: 3px;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -298,7 +298,7 @@
|
||||
.navds-timeline__zoom-button:focus-visible {
|
||||
box-shadow:
|
||||
0 0 0 1px var(--ax-bg-default),
|
||||
0 0 0 3px var(--ax-border-focus);
|
||||
0 0 0 4px var(--ax-border-focus);
|
||||
border-width: 1px;
|
||||
}
|
||||
|
||||
@@ -323,8 +323,8 @@
|
||||
|
||||
@media (forced-colors: active) {
|
||||
.navds-timeline__period:focus {
|
||||
outline: 2px solid highlight;
|
||||
outline-offset: 2px;
|
||||
outline: 3px solid highlight;
|
||||
outline-offset: 3px;
|
||||
}
|
||||
|
||||
.navds-timeline__period--success,
|
||||
@@ -350,7 +350,7 @@
|
||||
.navds-timeline__pin-button:focus,
|
||||
.navds-timeline__pin-button:focus-visible {
|
||||
outline: 4px solid highlight;
|
||||
outline-offset: 2px;
|
||||
outline-offset: 3px;
|
||||
box-shadow: none;
|
||||
}
|
||||
}
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
/* Main Togglegroup */
|
||||
.navds-toggle-group {
|
||||
border-radius: var(--ax-border-radius-medium);
|
||||
border-radius: var(--ax-border-radius-large);
|
||||
background-color: transparent;
|
||||
box-shadow: inset 0 0 0 1px var(--ax-border-default);
|
||||
display: inline-grid;
|
||||
@@ -30,7 +30,7 @@
|
||||
cursor: pointer;
|
||||
background-color: transparent;
|
||||
color: var(--ax-text-default);
|
||||
border-radius: var(--ax-border-radius-medium);
|
||||
border-radius: var(--ax-border-radius-large);
|
||||
min-width: fit-content;
|
||||
position: relative;
|
||||
|
||||
@@ -40,8 +40,8 @@
|
||||
}
|
||||
|
||||
&:focus-visible {
|
||||
outline: 2px solid var(--ax-border-focus);
|
||||
outline-offset: 2px;
|
||||
outline: 3px solid var(--ax-border-focus);
|
||||
outline-offset: 3px;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
font-size: var(--ax-font-size-heading-2xlarge);
|
||||
letter-spacing: -0.01em;
|
||||
line-height: var(--ax-font-line-height-heading-2xlarge);
|
||||
font-weight: 650;
|
||||
}
|
||||
|
||||
.navds-heading--xlarge.navds-typo--spacing {
|
||||
@@ -18,6 +19,7 @@
|
||||
font-size: var(--ax-font-size-heading-xlarge);
|
||||
letter-spacing: -0.008em;
|
||||
line-height: var(--ax-font-line-height-heading-xlarge);
|
||||
font-weight: 650;
|
||||
}
|
||||
|
||||
.navds-heading--large.navds-typo--spacing {
|
||||
@@ -51,6 +53,7 @@
|
||||
font-size: var(--ax-font-size-heading-medium);
|
||||
letter-spacing: -0.002em;
|
||||
line-height: var(--ax-font-line-height-heading-medium);
|
||||
font-weight: 650;
|
||||
}
|
||||
|
||||
.navds-heading--medium.navds-typo--spacing {
|
||||
|
||||
@@ -121,6 +121,7 @@
|
||||
min-width: 3rem;
|
||||
font-size: 1.5rem;
|
||||
align-self: flex-start;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.navds-expansioncard--small > :where(.navds-expansioncard__header) > :where(.navds-expansioncard__header-button) {
|
||||
|
||||
@@ -87,6 +87,11 @@
|
||||
0 0 0 4px var(--a-border-focus);
|
||||
}
|
||||
|
||||
/* Temp-fix to remove new darkside indeterminate node */
|
||||
.navds-checkbox__icon-indeterminate {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.navds-checkbox__input:indeterminate + .navds-checkbox__label::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
max-height: 100%;
|
||||
max-width: 100%;
|
||||
color: var(--a-text-default);
|
||||
margin: auto;
|
||||
|
||||
/* In case Modal is opened with `show()`, in eg. Vergic screensharing */
|
||||
inset: 0;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@navikt/ds-css",
|
||||
"version": "7.9.2",
|
||||
"version": "7.11.0",
|
||||
"description": "CSS for Nav Designsystem",
|
||||
"author": "Aksel | Nav designsystem team",
|
||||
"keywords": [
|
||||
@@ -28,12 +28,12 @@
|
||||
"test": "yarn build && vitest run"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@navikt/ds-tokens": "^7.9.2",
|
||||
"@navikt/ds-tokens": "^7.11.0",
|
||||
"@types/clean-css": "4.2.11",
|
||||
"autoprefixer": "^10.4.20",
|
||||
"browserslist": "^4.24.2",
|
||||
"clean-css": "5.3.3",
|
||||
"cssnano": "6.0.0",
|
||||
"cssnano": "7.0.6",
|
||||
"fast-glob": "3.2.11",
|
||||
"lightningcss": "^1.28.0",
|
||||
"lodash": "^4.17.21",
|
||||
|
||||
@@ -249,11 +249,29 @@
|
||||
}
|
||||
|
||||
.navds-table__expanded-row-content {
|
||||
padding: var(--a-spacing-4) calc(var(--a-spacing-2) + 3rem);
|
||||
--__ac-table-expanded-row-pi: calc(var(--a-spacing-2) + 3rem);
|
||||
|
||||
padding-block: var(--a-spacing-4);
|
||||
}
|
||||
|
||||
.navds-table--small .navds-table__expanded-row-content {
|
||||
padding: var(--a-spacing-2) calc(var(--a-spacing-2) + 3rem);
|
||||
padding-block: var(--a-spacing-2);
|
||||
}
|
||||
|
||||
.navds-table__expanded-row-content--gutter-both {
|
||||
padding-inline: var(--__ac-table-expanded-row-pi);
|
||||
}
|
||||
|
||||
.navds-table__expanded-row-content--gutter-left {
|
||||
padding-inline: var(--__ac-table-expanded-row-pi) var(--a-spacing-2);
|
||||
}
|
||||
|
||||
.navds-table__expanded-row-content--gutter-right {
|
||||
padding-inline: var(--a-spacing-2) var(--__ac-table-expanded-row-pi);
|
||||
}
|
||||
|
||||
.navds-table__expanded-row-content--gutter-none {
|
||||
padding-inline: var(--a-spacing-2);
|
||||
}
|
||||
|
||||
@media (forced-colors: active) {
|
||||
|
||||
@@ -1,5 +1,27 @@
|
||||
# @navikt/ds-react
|
||||
|
||||
## 7.11.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [[`6c81fc0`](https://github.com/navikt/aksel/commit/6c81fc0b239a02499412d350af65389833d59b26)]:
|
||||
- @navikt/aksel-icons@7.11.0
|
||||
- @navikt/ds-tokens@7.11.0
|
||||
|
||||
## 7.10.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
- Table: New prop `contentGutter` added to `ExpandableRow`-component. This allows user more control for content layout inside expandable element. ([#3507](https://github.com/navikt/aksel/pull/3507))
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Combobox: Always render `maxSelected` message when `isMultiSelect` is set. ([#3506](https://github.com/navikt/aksel/pull/3506))
|
||||
|
||||
- Updated dependencies []:
|
||||
- @navikt/ds-tokens@7.10.0
|
||||
- @navikt/aksel-icons@7.10.0
|
||||
|
||||
## 7.9.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@navikt/ds-react",
|
||||
"version": "7.9.2",
|
||||
"version": "7.11.0",
|
||||
"description": "React components from the Norwegian Labour and Welfare Administration.",
|
||||
"author": "Aksel, a team part of the Norwegian Labour and Welfare Administration.",
|
||||
"license": "MIT",
|
||||
@@ -615,8 +615,8 @@
|
||||
"dependencies": {
|
||||
"@floating-ui/react": "0.25.4",
|
||||
"@floating-ui/react-dom": "^2.0.9",
|
||||
"@navikt/aksel-icons": "^7.9.2",
|
||||
"@navikt/ds-tokens": "^7.9.2",
|
||||
"@navikt/aksel-icons": "^7.11.0",
|
||||
"@navikt/ds-tokens": "^7.11.0",
|
||||
"clsx": "^2.1.0",
|
||||
"date-fns": "^3.0.0",
|
||||
"react-day-picker": "8.10.1"
|
||||
|
||||
@@ -74,7 +74,12 @@ export const ToggleChips: OverridableComponent<
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
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"
|
||||
fill="var(--ax-text-neutral-icon, var(--ac-chip-toggle-circle-border, var(--a-border-default)))"
|
||||
/* After removing old fallbacks, change to currentColor */
|
||||
fill={`var(${
|
||||
variant === "action"
|
||||
? "--ax-text-accent-strong"
|
||||
: "--ax-text-default"
|
||||
}, var(--ac-chip-toggle-circle-border, var(--a-border-default)))`}
|
||||
/>
|
||||
)}
|
||||
</svg>
|
||||
|
||||
@@ -21,7 +21,7 @@ export const DatePickerCaption = ({ displayMonth, id }: CaptionProps) => {
|
||||
<>
|
||||
<div className="navds-date__caption">
|
||||
<Button
|
||||
variant="tertiary"
|
||||
variant="tertiary-neutral"
|
||||
disabled={!previousMonth}
|
||||
onClick={() => previousMonth && goToMonth(previousMonth)}
|
||||
icon={<ArrowLeftIcon title={translate("goToPreviousMonth")} />}
|
||||
@@ -41,7 +41,7 @@ export const DatePickerCaption = ({ displayMonth, id }: CaptionProps) => {
|
||||
icon={<ArrowRightIcon title={translate("goToNextMonth")} />}
|
||||
onClick={() => nextMonth && goToMonth(nextMonth)}
|
||||
disabled={!nextMonth}
|
||||
variant="tertiary"
|
||||
variant="tertiary-neutral"
|
||||
className="navds-date__caption-button"
|
||||
type="button"
|
||||
/>
|
||||
|
||||
@@ -56,7 +56,7 @@ export const DropdownCaption = ({ displayMonth, id }: CaptionProps) => {
|
||||
{formatCaption(displayMonth, { locale })}
|
||||
</span>
|
||||
<Button
|
||||
variant="tertiary"
|
||||
variant="tertiary-neutral"
|
||||
disabled={!previousMonth}
|
||||
onClick={() => previousMonth && goToMonth(previousMonth)}
|
||||
icon={<ArrowLeftIcon title={translate("goToPreviousMonth")} />}
|
||||
@@ -94,10 +94,10 @@ export const DropdownCaption = ({ displayMonth, id }: CaptionProps) => {
|
||||
</div>
|
||||
|
||||
<Button
|
||||
variant="tertiary-neutral"
|
||||
icon={<ArrowRightIcon title={translate("goToNextMonth")} />}
|
||||
onClick={() => nextMonth && goToMonth(nextMonth)}
|
||||
disabled={!nextMonth}
|
||||
variant="tertiary"
|
||||
className="navds-date__caption-button"
|
||||
type="button"
|
||||
/>
|
||||
|
||||
@@ -78,6 +78,7 @@ export const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(
|
||||
/>
|
||||
</svg>
|
||||
</span>
|
||||
<span className="navds-checkbox__icon-indeterminate" />
|
||||
<span
|
||||
className={cl("navds-checkbox__content", {
|
||||
"navds-sr-only": props.hideLabel,
|
||||
|
||||
@@ -23,10 +23,10 @@ const FilteredOptions = () => {
|
||||
isMouseLastUsedInputDevice,
|
||||
isValueNew,
|
||||
} = useFilteredOptionsContext();
|
||||
const { maxSelected } = useSelectedOptionsContext();
|
||||
const { maxSelected, isMultiSelect } = useSelectedOptionsContext();
|
||||
|
||||
const shouldRenderNonSelectables =
|
||||
maxSelected.isLimitReached || // Render maxSelected message
|
||||
(isMultiSelect && maxSelected.limit) || // Render maxSelected message
|
||||
isLoading || // Render loading message
|
||||
(!isLoading && filteredOptions.length === 0 && !allowNewValues); // Render no hits message
|
||||
|
||||
@@ -45,7 +45,7 @@ const FilteredOptions = () => {
|
||||
>
|
||||
{shouldRenderNonSelectables && (
|
||||
<div className="navds-combobox__list_non-selectables" role="status">
|
||||
{maxSelected.isLimitReached && <MaxSelectedMessage />}
|
||||
{isMultiSelect && maxSelected.limit && <MaxSelectedMessage />}
|
||||
{isLoading && <LoadingMessage />}
|
||||
{!isLoading && filteredOptions.length === 0 && !allowNewValues && (
|
||||
<NoSearchHitsMessage />
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import cl from "clsx";
|
||||
import React, { MouseEvent, forwardRef } from "react";
|
||||
import { ExclamationmarkTriangleIcon } from "@navikt/aksel-icons";
|
||||
import { BodyShort } from "../../../../typography";
|
||||
import { BodyShort, ErrorMessage } from "../../../../typography";
|
||||
import { OverridableComponent } from "../../../../util";
|
||||
import { useI18n } from "../../../../util/i18n/i18n.hooks";
|
||||
import { ComponentTranslation } from "../../../../util/i18n/i18n.types";
|
||||
@@ -125,13 +124,9 @@ export const Item: OverridableComponent<FileUploadItemProps, HTMLDivElement> =
|
||||
aria-live="polite"
|
||||
>
|
||||
{showError && (
|
||||
<BodyShort
|
||||
size="small"
|
||||
className="navds-file-item__error-content"
|
||||
>
|
||||
<ExclamationmarkTriangleIcon aria-hidden />
|
||||
<ErrorMessage size="small" showIcon>
|
||||
{error}
|
||||
</BodyShort>
|
||||
</ErrorMessage>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -85,6 +85,7 @@ export const Switch = forwardRef<HTMLInputElement, SwitchProps>(
|
||||
"navds-switch--loading": loading,
|
||||
"navds-switch--disabled": inputProps.disabled ?? loading,
|
||||
"navds-switch--readonly": readOnly,
|
||||
"navds-switch--standalone": hideLabel,
|
||||
},
|
||||
)}
|
||||
>
|
||||
|
||||
@@ -48,6 +48,11 @@ export interface ExpandableRowProps extends Omit<RowProps, "content"> {
|
||||
* @default 999
|
||||
*/
|
||||
colSpan?: number;
|
||||
/**
|
||||
* Optional left, right-gutter for content
|
||||
* @default Same as `togglePlacement`
|
||||
*/
|
||||
contentGutter?: "left" | "right" | "none";
|
||||
}
|
||||
|
||||
export type ExpandableRowType = React.ForwardRefExoticComponent<
|
||||
@@ -67,6 +72,7 @@ export const ExpandableRow: ExpandableRowType = forwardRef(
|
||||
expansionDisabled = false,
|
||||
expandOnRowClick = false,
|
||||
colSpan = 999,
|
||||
contentGutter,
|
||||
onClick,
|
||||
...rest
|
||||
},
|
||||
@@ -139,7 +145,9 @@ export const ExpandableRow: ExpandableRowType = forwardRef(
|
||||
<td colSpan={colSpan} className="navds-table__expanded-row-cell">
|
||||
<AnimateHeight
|
||||
className="navds-table__expanded-row-collapse"
|
||||
innerClassName="navds-table__expanded-row-content"
|
||||
innerClassName={`navds-table__expanded-row-content navds-table__expanded-row-content--gutter-${
|
||||
contentGutter ?? togglePlacement
|
||||
}`}
|
||||
height={_open ? "auto" : 0}
|
||||
duration={150}
|
||||
easing="cubic-bezier(0.39,0.57,0.56,1)"
|
||||
|
||||
@@ -120,6 +120,68 @@ export const ExpandableSmall = () => {
|
||||
);
|
||||
};
|
||||
|
||||
export const ExpandableContentGutter = () => {
|
||||
return (
|
||||
<Table zebraStripes>
|
||||
<Table.Header>
|
||||
<Table.Row>
|
||||
<Table.HeaderCell></Table.HeaderCell>
|
||||
<Table.HeaderCell>Cell</Table.HeaderCell>
|
||||
<Table.HeaderCell>Cell</Table.HeaderCell>
|
||||
<Table.HeaderCell></Table.HeaderCell>
|
||||
</Table.Row>
|
||||
</Table.Header>
|
||||
<Table.Body>
|
||||
<Table.ExpandableRow
|
||||
defaultOpen
|
||||
content="ContentContent ContentContent ContentContent"
|
||||
togglePlacement="left"
|
||||
>
|
||||
<Table.DataCell>Cell</Table.DataCell>
|
||||
<Table.DataCell>Cell</Table.DataCell>
|
||||
<Table.DataCell>Cell</Table.DataCell>
|
||||
</Table.ExpandableRow>
|
||||
<Table.ExpandableRow
|
||||
content="ContentContent ContentContent ContentContent"
|
||||
togglePlacement="right"
|
||||
defaultOpen
|
||||
>
|
||||
<Table.DataCell>Cell</Table.DataCell>
|
||||
<Table.DataCell>Cell</Table.DataCell>
|
||||
<Table.DataCell>Cell</Table.DataCell>
|
||||
</Table.ExpandableRow>
|
||||
<Table.ExpandableRow
|
||||
content="ContentContent ContentContent ContentContent"
|
||||
defaultOpen
|
||||
contentGutter="left"
|
||||
>
|
||||
<Table.DataCell>Cell</Table.DataCell>
|
||||
<Table.DataCell>Cell</Table.DataCell>
|
||||
<Table.DataCell>Cell</Table.DataCell>
|
||||
</Table.ExpandableRow>
|
||||
<Table.ExpandableRow
|
||||
content="ContentContent ContentContent ContentContent"
|
||||
defaultOpen
|
||||
contentGutter="right"
|
||||
>
|
||||
<Table.DataCell>Cell</Table.DataCell>
|
||||
<Table.DataCell>Cell</Table.DataCell>
|
||||
<Table.DataCell>Cell</Table.DataCell>
|
||||
</Table.ExpandableRow>
|
||||
<Table.ExpandableRow
|
||||
content="ContentContent ContentContent ContentContent Con.."
|
||||
defaultOpen
|
||||
contentGutter="none"
|
||||
>
|
||||
<Table.DataCell>Cell</Table.DataCell>
|
||||
<Table.DataCell>Cell</Table.DataCell>
|
||||
<Table.DataCell>Cell</Table.DataCell>
|
||||
</Table.ExpandableRow>
|
||||
</Table.Body>
|
||||
</Table>
|
||||
);
|
||||
};
|
||||
|
||||
const columns = [
|
||||
{
|
||||
name: "Navn",
|
||||
|
||||
@@ -31,13 +31,15 @@ export interface TagProps extends HTMLAttributes<HTMLSpanElement> {
|
||||
| "alt2-moderate"
|
||||
| "alt3"
|
||||
| "alt3-filled"
|
||||
| "alt3-moderate"
|
||||
| "meta-1"
|
||||
| "meta-1-filled"
|
||||
| "meta-1-moderate"
|
||||
| "meta-2"
|
||||
| "meta-2-filled"
|
||||
| "meta-2-moderate";
|
||||
| "alt3-moderate";
|
||||
|
||||
/* Temp hide these until naming is resolved */
|
||||
// | "meta-1"
|
||||
// | "meta-1-filled"
|
||||
// | "meta-1-moderate"
|
||||
// | "meta-2"
|
||||
// | "meta-2-filled"
|
||||
// | "meta-2-moderate";
|
||||
/**
|
||||
* @default "medium"
|
||||
*/
|
||||
|
||||
@@ -15,8 +15,6 @@ const variants: TagProps["variant"][] = [
|
||||
"alt1",
|
||||
"alt2",
|
||||
"alt3",
|
||||
"meta-1",
|
||||
"meta-2",
|
||||
"warning-filled",
|
||||
"error-filled",
|
||||
"info-filled",
|
||||
@@ -25,8 +23,6 @@ const variants: TagProps["variant"][] = [
|
||||
"alt1-filled",
|
||||
"alt2-filled",
|
||||
"alt3-filled",
|
||||
"meta-1-filled",
|
||||
"meta-2-filled",
|
||||
"warning-moderate",
|
||||
"error-moderate",
|
||||
"info-moderate",
|
||||
@@ -35,8 +31,6 @@ const variants: TagProps["variant"][] = [
|
||||
"alt1-moderate",
|
||||
"alt2-moderate",
|
||||
"alt3-moderate",
|
||||
"meta-1-moderate",
|
||||
"meta-2-moderate",
|
||||
];
|
||||
|
||||
export default {
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
# @navikt/ds-tailwind
|
||||
|
||||
## 7.11.0
|
||||
|
||||
## 7.10.0
|
||||
|
||||
## 7.9.2
|
||||
|
||||
## 7.9.1
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@navikt/ds-tailwind",
|
||||
"version": "7.9.2",
|
||||
"version": "7.11.0",
|
||||
"description": "Tailwind config based on @navikt/ds-tokens",
|
||||
"author": "Aksel | Nav designsystem team",
|
||||
"keywords": [
|
||||
@@ -24,7 +24,7 @@
|
||||
"directory": "@navikt/core/tailwind"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@navikt/ds-tokens": "^7.9.2",
|
||||
"@navikt/ds-tokens": "^7.11.0",
|
||||
"color": "4.2.3",
|
||||
"lodash": "^4.17.21",
|
||||
"tailwindcss": "^3.3.3",
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
# @navikt/ds-tokens
|
||||
|
||||
## 7.11.0
|
||||
|
||||
## 7.10.0
|
||||
|
||||
## 7.9.2
|
||||
|
||||
## 7.9.1
|
||||
|
||||
@@ -95,6 +95,11 @@ function createTokenValue(token: TransformedToken): string {
|
||||
if ((token.type as TokenTypes) === "global-breakpoints") {
|
||||
return token.value ?? token.$value;
|
||||
}
|
||||
|
||||
if ((token.type as TokenTypes) === "global-color") {
|
||||
return `var(--${token.path.join("-")})`;
|
||||
}
|
||||
|
||||
return `var(--${kebabName})`;
|
||||
}
|
||||
|
||||
|
||||
@@ -27,19 +27,13 @@ describe("Validate token configurations", () => {
|
||||
|
||||
test(`Semantic tokens for all roles: Lightmode`, () => {
|
||||
expect(
|
||||
validateConfig(
|
||||
semanticTokensForAllRolesConfig("light"),
|
||||
configKeysWithGroup,
|
||||
),
|
||||
validateConfig(semanticTokensForAllRolesConfig(), configKeysWithGroup),
|
||||
).toBeTruthy();
|
||||
});
|
||||
|
||||
test(`Semantic tokens for all roles: Darkmode`, () => {
|
||||
expect(
|
||||
validateConfig(
|
||||
semanticTokensForAllRolesConfig("dark"),
|
||||
configKeysWithGroup,
|
||||
),
|
||||
validateConfig(semanticTokensForAllRolesConfig(), configKeysWithGroup),
|
||||
).toBeTruthy();
|
||||
});
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@ export const lightModeTokens = () => {
|
||||
mergeConfigs([
|
||||
shadowTokenConfig("light"),
|
||||
opacityTokenConfig("light"),
|
||||
semanticTokensForAllRolesConfig("light"),
|
||||
semanticTokensForAllRolesConfig(),
|
||||
textContrastTokenConfig,
|
||||
semanticTokenConfig("light"),
|
||||
globalColorLightModeConfig,
|
||||
@@ -52,7 +52,7 @@ export const darkModeTokens = () => {
|
||||
mergeConfigs([
|
||||
shadowTokenConfig("dark"),
|
||||
opacityTokenConfig("dark"),
|
||||
semanticTokensForAllRolesConfig("dark"),
|
||||
semanticTokensForAllRolesConfig(),
|
||||
textContrastTokenConfig,
|
||||
semanticTokenConfig("dark"),
|
||||
globalColorDarkModeConfig,
|
||||
|
||||
@@ -1,12 +1,8 @@
|
||||
import _ from "lodash";
|
||||
import {
|
||||
ColorRolesList,
|
||||
type ColorTheme,
|
||||
type SemanticColorRoles,
|
||||
} from "../../types";
|
||||
import { ColorRolesList, type SemanticColorRoles } from "../../types";
|
||||
import { type StyleDictionaryTokenConfig } from "../tokens.util";
|
||||
|
||||
const configForRole = (role: SemanticColorRoles, theme: ColorTheme) => {
|
||||
const configForRole = (role: SemanticColorRoles) => {
|
||||
return {
|
||||
bg: {
|
||||
[`${role}-soft`]: {
|
||||
@@ -14,6 +10,11 @@ const configForRole = (role: SemanticColorRoles, theme: ColorTheme) => {
|
||||
type: "color",
|
||||
group: `background.${role}`,
|
||||
},
|
||||
[`${role}-softA`]: {
|
||||
value: `{ax.${role}.100A.value}`,
|
||||
type: "color",
|
||||
group: `background.${role}`,
|
||||
},
|
||||
[`${role}-hover`]: {
|
||||
value: `{ax.${role}.200.value}`,
|
||||
type: "color",
|
||||
@@ -69,17 +70,6 @@ const configForRole = (role: SemanticColorRoles, theme: ColorTheme) => {
|
||||
type: "color",
|
||||
group: `background.${role}`,
|
||||
},
|
||||
[`${role}-raised`]: {
|
||||
/* We bump raised for darkmode */
|
||||
value: `{ax.${role}.${theme === "light" ? "100" : "200"}.value}`,
|
||||
type: "color",
|
||||
group: `background.${role}`,
|
||||
},
|
||||
[`${role}-raised-hover`]: {
|
||||
value: `{ax.${role}.${theme === "light" ? "200" : "300"}.value}`,
|
||||
type: "color",
|
||||
group: `background.${role}`,
|
||||
},
|
||||
},
|
||||
text: {
|
||||
[role]: {
|
||||
@@ -126,9 +116,9 @@ const configForRole = (role: SemanticColorRoles, theme: ColorTheme) => {
|
||||
/**
|
||||
* We need to deep merge the token config for each role to get the complete token config for all roles.
|
||||
*/
|
||||
export const semanticTokensForAllRolesConfig = (theme: ColorTheme) => {
|
||||
export const semanticTokensForAllRolesConfig = () => {
|
||||
return ColorRolesList.filter((name) => name !== "neutral").reduce(
|
||||
(acc, role) => _.merge(acc, configForRole(role, theme)),
|
||||
(acc, role) => _.merge(acc, configForRole(role)),
|
||||
{} as ReturnType<typeof configForRole>,
|
||||
);
|
||||
};
|
||||
@@ -78,6 +78,11 @@ export function semanticTokenConfig(theme: ColorTheme) {
|
||||
type: "color",
|
||||
group: `background`,
|
||||
},
|
||||
softA: {
|
||||
value: `{ax.neutral.100A.value}`,
|
||||
type: "color",
|
||||
group: `background`,
|
||||
},
|
||||
hover: {
|
||||
value: `{ax.neutral.200.value}`,
|
||||
type: "color",
|
||||
@@ -119,24 +124,24 @@ export function semanticTokenConfig(theme: ColorTheme) {
|
||||
group: `background`,
|
||||
},
|
||||
strong: {
|
||||
value: `{ax.neutral.600.value}`,
|
||||
type: "color",
|
||||
group: `background`,
|
||||
},
|
||||
"strong-hover": {
|
||||
value: `{ax.neutral.700.value}`,
|
||||
type: "color",
|
||||
group: `background`,
|
||||
},
|
||||
"strong-pressed": {
|
||||
"strong-hover": {
|
||||
value: `{ax.neutral.800.value}`,
|
||||
type: "color",
|
||||
group: `background`,
|
||||
},
|
||||
"strong-pressed": {
|
||||
value: `{ax.neutral.900.value}`,
|
||||
type: "color",
|
||||
group: `background`,
|
||||
},
|
||||
},
|
||||
border: {
|
||||
default: {
|
||||
value: "{ax.neutral.500.value}",
|
||||
value: "{ax.neutral.600.value}",
|
||||
type: "color",
|
||||
group: "border",
|
||||
},
|
||||
@@ -160,7 +165,7 @@ export function semanticTokenConfig(theme: ColorTheme) {
|
||||
* - Discuss with brand
|
||||
*/
|
||||
focus: {
|
||||
value: "{ax.accent.700.value}",
|
||||
value: "{ax.neutral.1000.value}",
|
||||
type: "color",
|
||||
group: "border",
|
||||
/**
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@navikt/ds-tokens",
|
||||
"version": "7.9.2",
|
||||
"version": "7.11.0",
|
||||
"description": "Design-tokens for Nav designsystem",
|
||||
"author": "Aksel | Nav designsystem team",
|
||||
"keywords": [
|
||||
|
||||
@@ -50,6 +50,7 @@ export type StaticDefaultBgKeys =
|
||||
| "sunken"
|
||||
| "overlay"
|
||||
| "soft"
|
||||
| "softA"
|
||||
| "moderate"
|
||||
| "moderateA"
|
||||
| "strong";
|
||||
@@ -66,10 +67,10 @@ export type StatefulDefaultBgKeys =
|
||||
|
||||
export type StaticBgKeys =
|
||||
| `${SemanticColorRoles}-soft`
|
||||
| `${SemanticColorRoles}-softA`
|
||||
| `${SemanticColorRoles}-moderate`
|
||||
| `${SemanticColorRoles}-moderateA`
|
||||
| `${SemanticColorRoles}-strong`
|
||||
| `${SemanticColorRoles}-raised`;
|
||||
| `${SemanticColorRoles}-strong`;
|
||||
|
||||
export type StatefulBgKeys =
|
||||
| `${SemanticColorRoles}-hover`
|
||||
@@ -79,8 +80,7 @@ export type StatefulBgKeys =
|
||||
| `${SemanticColorRoles}-moderate-pressed`
|
||||
| `${SemanticColorRoles}-moderate-pressedA`
|
||||
| `${SemanticColorRoles}-strong-hover`
|
||||
| `${SemanticColorRoles}-strong-pressed`
|
||||
| `${SemanticColorRoles}-raised-hover`;
|
||||
| `${SemanticColorRoles}-strong-pressed`;
|
||||
|
||||
export type DefaultTextColorKeys =
|
||||
| "default"
|
||||
|
||||
+560
-532
File diff suppressed because it is too large.
Load diff
@@ -1,6 +1,6 @@
|
||||
# MIT License
|
||||
|
||||
Copyright 2024 NAV (Arbeids- og velferdsdirektoratet) - The Norwegian Labour and Welfare Administration
|
||||
Copyright 2025 NAV (Arbeids- og velferdsdirektoratet) - The Norwegian Labour and Welfare Administration
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the "Software"),
|
||||
|
||||
@@ -15,10 +15,10 @@
|
||||
"playroom"
|
||||
],
|
||||
"dependencies": {
|
||||
"@navikt/aksel-icons": "^7.9.2",
|
||||
"@navikt/ds-css": "^7.9.2",
|
||||
"@navikt/ds-react": "^7.9.2",
|
||||
"@navikt/ds-tailwind": "^7.9.2",
|
||||
"@navikt/ds-tokens": "^7.9.2"
|
||||
"@navikt/aksel-icons": "^7.11.0",
|
||||
"@navikt/ds-css": "^7.11.0",
|
||||
"@navikt/ds-react": "^7.11.0",
|
||||
"@navikt/ds-tailwind": "^7.11.0",
|
||||
"@navikt/ds-tokens": "^7.11.0"
|
||||
}
|
||||
}
|
||||
@@ -1,55 +0,0 @@
|
||||
import NextLink from "next/link";
|
||||
import { BodyLong, BodyShort, Heading, Link } from "@navikt/ds-react";
|
||||
import ErrorBoundary from "@/error-boundary";
|
||||
import { useFormatedDate } from "@/hooks/useFormatedDate";
|
||||
import { amplitudeLogNavigation } from "@/logging";
|
||||
import { AkselBloggDocT, ResolveContributorsT, ResolveSlugT } from "@/types";
|
||||
import { getAuthors } from "@/utils";
|
||||
|
||||
type BloggCardProps = {
|
||||
blog: ResolveContributorsT<ResolveSlugT<AkselBloggDocT>>;
|
||||
};
|
||||
|
||||
const BloggCard = ({ blog }: BloggCardProps) => {
|
||||
const date = useFormatedDate(blog?.publishedAt ?? blog._createdAt);
|
||||
return (
|
||||
<li
|
||||
key={blog._id}
|
||||
className="flex h-full flex-col place-content-start border-b border-b-border-subtle pb-10"
|
||||
>
|
||||
<Heading size="medium" as="div">
|
||||
<NextLink href={`/${blog.slug}`} passHref legacyBehavior>
|
||||
<Link
|
||||
className="text-deepblue-500 underline hover:no-underline"
|
||||
onClick={(e) =>
|
||||
amplitudeLogNavigation(
|
||||
"blogg-card",
|
||||
e.currentTarget.getAttribute("href"),
|
||||
)
|
||||
}
|
||||
>
|
||||
{blog.heading}
|
||||
</Link>
|
||||
</NextLink>
|
||||
</Heading>
|
||||
<BodyLong className="my-2 line-clamp-2">{blog?.ingress}</BodyLong>
|
||||
{getAuthors(blog).length > 0 && (
|
||||
<BodyShort
|
||||
size="small"
|
||||
className="mt-auto flex gap-2 justify-self-end text-text-subtle"
|
||||
>
|
||||
<span className="font-semibold">{getAuthors(blog)[0]}</span>
|
||||
<span>{date}</span>
|
||||
</BodyShort>
|
||||
)}
|
||||
</li>
|
||||
);
|
||||
};
|
||||
|
||||
export default function Component(props: BloggCardProps) {
|
||||
return (
|
||||
<ErrorBoundary boundaryName="ArtikkelCard">
|
||||
<BloggCard {...props} />
|
||||
</ErrorBoundary>
|
||||
);
|
||||
}
|
||||
@@ -1,88 +0,0 @@
|
||||
import NextLink from "next/link";
|
||||
import { BodyLong, Heading, Link } from "@navikt/ds-react";
|
||||
|
||||
const CubeLarge = () => (
|
||||
<svg
|
||||
width="1016"
|
||||
height="320"
|
||||
viewBox="0 0 1016 320"
|
||||
fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
className="pointer-events-none absolute right-0 z-0 hidden lg:block"
|
||||
aria-hidden
|
||||
>
|
||||
<path
|
||||
d="M849.229 637.344L1096.48 390.09L849.228 142.836L601.975 390.09L849.229 637.344Z"
|
||||
stroke="#F9A8D4"
|
||||
strokeOpacity="0.4"
|
||||
strokeWidth="3.54219"
|
||||
strokeLinejoin="round"
|
||||
/>
|
||||
<path
|
||||
d="M872.671 119.393L1119.93 -127.861H873.041L625.787 119.393H872.671Z"
|
||||
stroke="#F9A8D4"
|
||||
strokeOpacity="0.4"
|
||||
strokeWidth="3.54219"
|
||||
strokeLinejoin="round"
|
||||
/>
|
||||
</svg>
|
||||
);
|
||||
|
||||
const CubeSmall = () => (
|
||||
<svg
|
||||
className="pointer-events-none absolute left-0 z-0 max-w-full overflow-hidden lg:hidden"
|
||||
width="390"
|
||||
height="290"
|
||||
viewBox="0 0 390 290"
|
||||
fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
aria-hidden
|
||||
>
|
||||
<path
|
||||
d="M-0.327544 508.393L246.927 261.139H0.0431418L-247.212 508.393H-0.327544Z"
|
||||
stroke="#F9A8D4"
|
||||
strokeOpacity="0.4"
|
||||
strokeWidth="3.54219"
|
||||
strokeLinejoin="round"
|
||||
/>
|
||||
<path
|
||||
d="M517.621 -9.55799L764.876 237.697L517.992 237.697L270.737 -9.55799H517.621Z"
|
||||
stroke="#F9A8D4"
|
||||
strokeOpacity="0.4"
|
||||
strokeWidth="3.54219"
|
||||
strokeLinejoin="round"
|
||||
/>
|
||||
</svg>
|
||||
);
|
||||
|
||||
export const BloggAd = () => {
|
||||
return (
|
||||
<div className="relative left-1/2 right-1/2 -mx-[50vw] my-20 flex h-72 w-screen items-center bg-[#FBCFE8] px-4 md:left-auto md:right-auto md:mx-auto md:w-full md:max-w-[85%] md:rounded-2xl md:px-6 lg:h-80 lg:pl-12">
|
||||
<div className="z-10 max-w-sm text-[#831843]">
|
||||
<Heading level="2" size="xlarge" spacing>
|
||||
Skriv for bloggen
|
||||
</Heading>
|
||||
|
||||
<BodyLong spacing>
|
||||
Brenner du for digital produktutvikling, og har en #FFC0E6-blogger i
|
||||
magen?
|
||||
</BodyLong>
|
||||
<BodyLong>
|
||||
Ta kontakt med{" "}
|
||||
<NextLink
|
||||
href="https://nav-it.slack.com/archives/C7NE7A8UF"
|
||||
passHref
|
||||
legacyBehavior
|
||||
>
|
||||
<Link className="font-semibold text-[#831843]">
|
||||
#Aksel-designsystemet
|
||||
</Link>
|
||||
</NextLink>{" "}
|
||||
på Slack
|
||||
</BodyLong>
|
||||
</div>
|
||||
<CubeLarge />
|
||||
<CubeSmall />
|
||||
</div>
|
||||
);
|
||||
};
|
||||
@@ -1,7 +1,6 @@
|
||||
import { Heading } from "@navikt/ds-react";
|
||||
import { Heading, Show } from "@navikt/ds-react";
|
||||
import { SanityBlockContent } from "@/sanity-block";
|
||||
import { AkselBloggDocT, ResolveContributorsT, ResolveSlugT } from "@/types";
|
||||
import { BloggList } from "./parts/BloggList";
|
||||
import { HighlightedBlogg } from "./parts/HighlightedBlogg";
|
||||
|
||||
export const LatestBloggposts = ({
|
||||
@@ -23,7 +22,7 @@ export const LatestBloggposts = ({
|
||||
level="1"
|
||||
size="xlarge"
|
||||
spacing
|
||||
className="mx-auto w-full text-5xl text-deepblue-700 md:mx-0 md:max-w-none"
|
||||
className="mx-auto w-full text-5xl text-aksel-heading md:mx-0 md:max-w-none"
|
||||
>
|
||||
{title}
|
||||
</Heading>
|
||||
@@ -31,11 +30,9 @@ export const LatestBloggposts = ({
|
||||
{/* Desktop-view */}
|
||||
<div className="mx-auto my-10 grid gap-12 md:my-12 md:grid-cols-2">
|
||||
<HighlightedBlogg blogg={bloggs[0]} />
|
||||
<div className="col-span-1 grid place-content-start gap-12">
|
||||
{bloggs.slice(1, 3).map((blogg) => (
|
||||
<BloggList blogg={blogg} key={blogg._id} />
|
||||
))}
|
||||
</div>
|
||||
<Show above="md">
|
||||
<HighlightedBlogg blogg={bloggs[1]} />
|
||||
</Show>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
|
||||
@@ -13,7 +13,7 @@ export const BloggList = ({
|
||||
}) => {
|
||||
const date = useFormatedDate(blogg?.publishedAt ?? blogg._createdAt);
|
||||
return (
|
||||
<div>
|
||||
<li>
|
||||
<div className="hidden gap-6 md:flex">
|
||||
<div className="relative hidden aspect-square h-[11.75rem] rounded-lg ring-1 ring-border-subtle lg:block">
|
||||
{blogg?.seo?.image ? (
|
||||
@@ -37,15 +37,15 @@ export const BloggList = ({
|
||||
)}
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<div className="w-full">
|
||||
<NextLink href={`/${blogg.slug}`} passHref legacyBehavior>
|
||||
<Link className="text-deepblue-500 underline hover:no-underline">
|
||||
<Heading size="small" level="2">
|
||||
<Link className="text-aksel-heading underline hover:no-underline">
|
||||
<Heading size="medium" level="2">
|
||||
{blogg.heading}
|
||||
</Heading>
|
||||
</Link>
|
||||
</NextLink>
|
||||
<BodyLong className="mt-4" size="small">
|
||||
<BodyLong className="mt-4" size="medium">
|
||||
{blogg?.ingress}
|
||||
</BodyLong>
|
||||
{getAuthors(blogg).length > 0 ? (
|
||||
@@ -63,54 +63,29 @@ export const BloggList = ({
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
<div className="md:hidden">
|
||||
<div className="relative mb-6 block aspect-video">
|
||||
{blogg?.seo?.image ? (
|
||||
<Image
|
||||
src={urlFor(blogg.seo.image).auto("format").url()}
|
||||
layout="fill"
|
||||
objectFit="cover"
|
||||
aria-hidden
|
||||
priority
|
||||
className="rounded-lg"
|
||||
/>
|
||||
) : (
|
||||
<Image
|
||||
src={getImage(blogg?.heading ?? "", "thumbnail")}
|
||||
layout="fill"
|
||||
objectFit="cover"
|
||||
aria-hidden
|
||||
priority
|
||||
className="rounded-lg"
|
||||
/>
|
||||
)}
|
||||
</div>
|
||||
<div className="md:hidden">
|
||||
<NextLink href={`/${blogg.slug}`} passHref legacyBehavior>
|
||||
<Link className="text-deepblue-500 underline hover:no-underline">
|
||||
<Heading size="small" level="2">
|
||||
{blogg.heading}
|
||||
</Heading>
|
||||
</Link>
|
||||
</NextLink>
|
||||
<BodyLong className="mt-4" size="small">
|
||||
{blogg?.ingress}
|
||||
</BodyLong>
|
||||
{getAuthors(blogg).length > 0 ? (
|
||||
<BodyShort
|
||||
size="small"
|
||||
className="mt-4 flex gap-2 text-text-subtle"
|
||||
>
|
||||
<span className="font-semibold">{getAuthors(blogg)[0]}</span>
|
||||
<span>{date}</span>
|
||||
</BodyShort>
|
||||
) : (
|
||||
<BodyShort size="small" className="mt-4 text-text-subtle">
|
||||
<span>{date}</span>
|
||||
</BodyShort>
|
||||
)}
|
||||
</div>
|
||||
|
||||
<div className="w-full md:hidden">
|
||||
<NextLink href={`/${blogg.slug}`} passHref legacyBehavior>
|
||||
<Link className="text-aksel-heading underline hover:no-underline">
|
||||
<Heading size="medium" level="2">
|
||||
{blogg.heading}
|
||||
</Heading>
|
||||
</Link>
|
||||
</NextLink>
|
||||
<BodyLong className="mt-4" size="medium">
|
||||
{blogg?.ingress}
|
||||
</BodyLong>
|
||||
{getAuthors(blogg).length > 0 ? (
|
||||
<BodyShort size="small" className="mt-4 flex gap-2 text-text-subtle">
|
||||
<span className="font-semibold">{getAuthors(blogg)[0]}</span>
|
||||
<span>{date}</span>
|
||||
</BodyShort>
|
||||
) : (
|
||||
<BodyShort size="small" className="mt-4 text-text-subtle">
|
||||
<span>{date}</span>
|
||||
</BodyShort>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
);
|
||||
};
|
||||
+4
-4
@@ -13,7 +13,7 @@ export const HighlightedBlogg = ({
|
||||
}) => {
|
||||
const date = useFormatedDate(blogg?.publishedAt ?? blogg._createdAt);
|
||||
return (
|
||||
<div>
|
||||
<article>
|
||||
<div className="col-span-1 hidden md:block">
|
||||
<div className="relative mb-10 block aspect-video rounded-lg ring-1 ring-border-subtle">
|
||||
{blogg?.seo?.image ? (
|
||||
@@ -46,7 +46,7 @@ export const HighlightedBlogg = ({
|
||||
)}
|
||||
</div>
|
||||
<NextLink href={`/${blogg.slug}`} passHref legacyBehavior>
|
||||
<Link className="text-deepblue-500 underline hover:no-underline">
|
||||
<Link className="text-aksel-heading underline hover:no-underline">
|
||||
<Heading size="large" level="2">
|
||||
{blogg.heading}
|
||||
</Heading>
|
||||
@@ -93,7 +93,7 @@ export const HighlightedBlogg = ({
|
||||
)}
|
||||
</div>
|
||||
<NextLink href={`/${blogg.slug}`} passHref legacyBehavior>
|
||||
<Link className="text-deepblue-500 underline hover:no-underline">
|
||||
<Link className="text-aksel-heading underline hover:no-underline">
|
||||
<Heading size="large" level="2">
|
||||
{blogg.heading}
|
||||
</Heading>
|
||||
@@ -109,6 +109,6 @@ export const HighlightedBlogg = ({
|
||||
</BodyShort>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
);
|
||||
};
|
||||
@@ -25,11 +25,7 @@ export const SearchForm = () => {
|
||||
}
|
||||
|
||||
return (
|
||||
<form
|
||||
role="search"
|
||||
onSubmit={(e) => e.preventDefault()}
|
||||
className="px-6 pb-4"
|
||||
>
|
||||
<form role="search" onSubmit={(e) => e.preventDefault()} className="w-full">
|
||||
<Search
|
||||
label={
|
||||
<span className="flex items-center gap-2">
|
||||
|
||||
@@ -2,12 +2,13 @@ import cl from "clsx";
|
||||
import Image from "next/legacy/image";
|
||||
import NextLink from "next/link";
|
||||
import { forwardRef, useContext } from "react";
|
||||
import { Show } from "@navikt/ds-react";
|
||||
import { Tag } from "@/cms/frontpage-blocks/latest-articles/Tag";
|
||||
import { urlFor } from "@/sanity/interface";
|
||||
import { SearchHitT, searchOptions } from "@/types";
|
||||
import { StatusTag } from "@/web/StatusTag";
|
||||
import { SearchContext, SearchLoggingContext } from "../providers";
|
||||
import { highlightMatches, highlightStr } from "../utils";
|
||||
import { highlightStr } from "../utils";
|
||||
|
||||
export const Hit = forwardRef<
|
||||
HTMLLIElement,
|
||||
@@ -33,10 +34,11 @@ export const Hit = forwardRef<
|
||||
"relative flex scroll-my-10 items-center justify-between gap-3 border-b border-border-subtle px-2 last-of-type:border-b-0 has-[+_*_:focus-visible]:border-b-transparent has-[:focus-visible]:border-b-transparent",
|
||||
)}
|
||||
>
|
||||
<div className="w-full truncate px-2 py-3">
|
||||
<div className="w-full px-2 py-3">
|
||||
<span
|
||||
className={cl({
|
||||
"flex flex-col": simple,
|
||||
"flex flex-col gap-1 md:flex-row md:justify-between md:gap-4":
|
||||
simple,
|
||||
"flex items-center gap-2": !simple,
|
||||
})}
|
||||
>
|
||||
@@ -44,12 +46,13 @@ export const Hit = forwardRef<
|
||||
href={href}
|
||||
onClick={() => logSuccess(index, `/${hit.item.slug}`)}
|
||||
className={cl(
|
||||
"group scroll-my-32 truncate text-xl font-semibold underline hover:decoration-[3px] focus:outline-none",
|
||||
"group scroll-my-32 break-words text-xl font-semibold underline hover:decoration-[3px] focus:outline-none",
|
||||
"after:absolute after:inset-0 after:rounded-lg after:ring-inset focus-visible:after:ring-[3px] focus-visible:after:ring-border-focus",
|
||||
)}
|
||||
>
|
||||
{highlightStr(hit.item.heading, query, tag)}
|
||||
</NextLink>
|
||||
|
||||
{simple ? (
|
||||
<Tag
|
||||
type={hit.item._type}
|
||||
@@ -65,7 +68,9 @@ export const Hit = forwardRef<
|
||||
)}
|
||||
</span>
|
||||
|
||||
{!simple && <HeadingLinks hit={hit} />}
|
||||
<Show above="md" asChild>
|
||||
<p className="line-clamp-2">{hit.description}</p>
|
||||
</Show>
|
||||
</div>
|
||||
|
||||
{!simple && (
|
||||
@@ -87,19 +92,3 @@ export const Hit = forwardRef<
|
||||
</li>
|
||||
);
|
||||
});
|
||||
|
||||
function HeadingLinks({
|
||||
hit,
|
||||
}: {
|
||||
hit: SearchHitT | Omit<SearchHitT, "score" | "anchor">;
|
||||
}) {
|
||||
if (hit.matches && hit.matches?.[0].key !== "heading") {
|
||||
return highlightMatches(hit.matches[0]);
|
||||
}
|
||||
|
||||
return (
|
||||
<span className="max-w-full text-lg font-regular text-text-subtle">
|
||||
{hit.description}
|
||||
</span>
|
||||
);
|
||||
}
|
||||
@@ -75,7 +75,7 @@ export function Collection({
|
||||
<div>
|
||||
{heading && tag && (
|
||||
<h2
|
||||
className={cl("sticky top-0 z-10 p-2 px-6 md:px-10", {
|
||||
className={cl("top-0 z-10 p-2 px-6 md:sticky md:px-10", {
|
||||
"bg-deepblue-50": ["komponent_artikkel", "ds_artikkel"].includes(
|
||||
tag,
|
||||
),
|
||||
@@ -91,7 +91,7 @@ export function Collection({
|
||||
)}
|
||||
{heading && !tag && (
|
||||
<Heading
|
||||
className="sticky top-0 z-10 bg-surface-subtle p-2 px-6 md:px-10"
|
||||
className="top-0 z-10 bg-surface-subtle p-2 px-6 md:sticky md:px-10"
|
||||
size="small"
|
||||
level="2"
|
||||
>
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { useContext } from "react";
|
||||
import { Modal } from "@navikt/ds-react";
|
||||
import { XMarkIcon } from "@navikt/aksel-icons";
|
||||
import { Button, Heading, Modal } from "@navikt/ds-react";
|
||||
import { AkselSearchButton } from "@/web/search/parts/SearchButton";
|
||||
import { SearchContext, SearchNavigationContext } from "../providers";
|
||||
import { SearchForm } from "./Form";
|
||||
@@ -22,16 +23,28 @@ export const Search = () => {
|
||||
e.stopPropagation();
|
||||
}
|
||||
}}
|
||||
className="h-[90%] max-h-[52rem]"
|
||||
className="md:h-[90%] md:max-h-[52rem]"
|
||||
width="medium"
|
||||
aria-labelledby="aksel-search-heading"
|
||||
closeOnBackdropClick
|
||||
header={{
|
||||
heading: "Søk",
|
||||
closeButton: true,
|
||||
}}
|
||||
>
|
||||
<Heading
|
||||
level="1"
|
||||
size="medium"
|
||||
id="aksel-search-heading"
|
||||
visuallyHidden
|
||||
>
|
||||
Søk
|
||||
</Heading>
|
||||
<Skeleton />
|
||||
<SearchForm />
|
||||
<div className="flex items-center gap-2 px-2 py-1 md:px-4 md:py-4">
|
||||
<SearchForm />
|
||||
<Button
|
||||
variant="tertiary-neutral"
|
||||
onClick={close}
|
||||
icon={<XMarkIcon title="Lukk" />}
|
||||
/>
|
||||
</div>
|
||||
<Results />
|
||||
</Modal>
|
||||
</>
|
||||
|
||||
Loaded 100 of 114 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user