Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
9c18e4b
Add color selection and clipboard copy functionality
erland-obos Nov 17, 2025
0f8cd6d
Support headings in link-list (#1531)
oscarcarlstrom Nov 20, 2025
440543f
Add layout grids (#1532)
oscarcarlstrom Nov 20, 2025
b1b752c
Version Packages (#1522)
github-actions[bot] Nov 20, 2025
25b08b0
Fix layout-gap-x utility class (#1533)
oscarcarlstrom Nov 20, 2025
27bd60e
Version Packages (#1534)
github-actions[bot] Nov 20, 2025
6dd0def
Move layout-grid classes to utility layer (#1535)
oscarcarlstrom Nov 21, 2025
2d52120
Version Packages (#1536)
github-actions[bot] Nov 21, 2025
5cb5f28
Respect prefers-reduced-motion in carousel scroll buttons (#1537)
oscarcarlstrom Nov 21, 2025
5d2c582
chore(deps): update actions/checkout action to v5.0.1 (#1539)
renovate[bot] Nov 24, 2025
b0fb8d5
chore(deps): update falti/dotenv-action action to v1.1.5 (#1540)
renovate[bot] Nov 24, 2025
718ee9e
chore(deps): update mikefarah/yq action to v4.49.1 (#1541)
renovate[bot] Nov 24, 2025
ac0021d
fix(deps): update dependency vite to v7.2.4 (#1542)
renovate[bot] Nov 24, 2025
c24f5be
chore(deps): update pnpm to v10.23.0 (#1544)
renovate[bot] Nov 24, 2025
37ca479
fix(deps): update sanity packages (#1545)
renovate[bot] Nov 24, 2025
6dc3cf2
Reduce motion for arrow key scrolling in Carousel (#1549)
oscarcarlstrom Nov 24, 2025
2c66d4c
fix sanity studio url (#1550)
aulonm Nov 24, 2025
7a22a4a
Mark LinkList as stable (#1551)
oscarcarlstrom Nov 24, 2025
d4be27b
Add color selection and clipboard copy functionality
erland-obos Nov 17, 2025
a563bd9
Merge remote-tracking branch 'origin/feature/enable-copy-color-as-css…
erland-obos Nov 24, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/dark-knives-brush.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@obosbbl/grunnmuren-react": patch
---

Movments in the `Carousel` are now eliminated when using arrow keys for users that has a reduced motion preferrence
5 changes: 0 additions & 5 deletions .changeset/dull-lies-shout.md

This file was deleted.

39 changes: 0 additions & 39 deletions .changeset/giant-parrots-travel.md

This file was deleted.

5 changes: 5 additions & 0 deletions .changeset/honest-emus-kiss.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@obosbbl/grunnmuren-react": patch
---

Respect prefers-reduced-motion when user clicks the prev/next buttons in the `<Carousel>` component.
88 changes: 88 additions & 0 deletions .changeset/warm-breads-type.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
---
"@obosbbl/grunnmuren-react": minor
---

`LinkList` is now stable. Usage:

Basic list of links:

```tsx
import { Link, LinkList, LinkListItem } from '@obosbbl/grunnmuren-react';

<LinkList>
<LinkListItem>
<Link href="/bolig">Bolig</Link>
</LinkListItem>
<LinkListItem>
<Link href="/bank">Bank</Link>
</LinkListItem>
<LinkListItem>
<Link href="/medlem">Medlem</Link>
</LinkListItem>
</LinkList>
```

External links:

```tsx
import { Link, LinkList, LinkListItem } from '@obosbbl/grunnmuren-react';

<LinkList>
<LinkListItem>
<Link href="https://minside.obosnett.no/login" rel="external">
OBOS Nett - Min side
</Link>
</LinkListItem>
<LinkListItem>
<Link
href="https://www.tryg.no"
rel="external noopener noreferrer"
target="_blank"
>
Les mer om trygg forsikring
</Link>
</LinkListItem>
</LinkList>
```

Downloadable files:

```tsx
import { Link, LinkList, LinkListItem } from '@obosbbl/grunnmuren-react';

<LinkList>
<LinkListItem>
<Link download href="/vilkar.pdf">
Medlemsvilkår
</Link>
</LinkListItem>
<LinkListItem>
<Link download href="/consent.pdf">
Samtykke
</Link>
</LinkListItem>
</LinkList>
```

With headings:

```tsx
import { Heading, Link, LinkList, LinkListContainer, LinkListItem } from '@obosbbl/grunnmuren-react';

<LinkListContainer>
<Heading level={2}>
<Link href="/om">OBOS</Link>
</Heading>
<LinkList>
<LinkListItem>
<Link href="/bolig">Bolig</Link>
</LinkListItem>
<LinkListItem>
<Link href="/bank">Bank</Link>
</LinkListItem>
<LinkListItem>
<Link href="/medlem">Medlem</Link>
</LinkListItem>
</LinkList>
</LinkListContainer>
```
2 changes: 1 addition & 1 deletion .github/workflows/build-push-image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
packages: read
steps:
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/deploy-container-app.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,27 +38,27 @@ jobs:
id-token: write
steps:
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1

- name: Prepare config
uses: falti/dotenv-action@a33be0b8cf6a6e6f1b82cc9f3782061ab1022be5 # v1.1.4
uses: falti/dotenv-action@f4656c46de6bc223dda660f6724d52537bc0642a # v1.1.5
with:
path: ${{ env.DKTP_ENV_FILE }}
export-variables: true
keys-case: bypass

- name: Validate yaml
uses: mikefarah/yq@0ecdce24e83f0fa127940334be98c86b07b0c488 # v4.48.1
uses: mikefarah/yq@45be35c06387d692bb6bf689919919e0e32e796f # v4.49.1
with:
# https://mikefarah.gitbook.io/yq/usage/tips-and-tricks#validating-yaml-files
cmd: yq --exit-status 'tag == "!!map" or tag== "!!seq"' ${{ env.DKTP_CONFIG_FILE }} > /dev/null
- name: Create config
uses: mikefarah/yq@0ecdce24e83f0fa127940334be98c86b07b0c488 # v4.48.1
uses: mikefarah/yq@45be35c06387d692bb6bf689919919e0e32e796f # v4.49.1
with:
# https://mikefarah.gitbook.io/yq/operators/env-variable-operators#tip
cmd: yq '(.. | select(tag == "!!str")) |= envsubst' ${{ env.DKTP_CONFIG_FILE }} > ${{ env.CONFIG_FILE_OUTPUT }}
- name: Validate updated yaml
uses: mikefarah/yq@0ecdce24e83f0fa127940334be98c86b07b0c488 # v4.48.1
uses: mikefarah/yq@45be35c06387d692bb6bf689919919e0e32e796f # v4.49.1
with:
# https://mikefarah.gitbook.io/yq/usage/tips-and-tricks#validating-yaml-files
cmd: yq --exit-status 'tag == "!!map" or tag== "!!seq"' ${{ env.CONFIG_FILE_OUTPUT }} > /dev/null
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ jobs:
node-version: [22.x]

steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1
- uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4.2.0
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:

steps:
- name: Checkout Repo
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1
with:
fetch-depth: 0

Expand Down
10 changes: 5 additions & 5 deletions apps/docs/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,24 +26,24 @@
"@portabletext/react": "5.0.0",
"@react-aria/utils": "3.31.0",
"@sanity/asset-utils": "^2.3.0",
"@sanity/client": "7.12.1",
"@sanity/client": "7.13.0",
"@sanity/code-input": "6.0.3",
"@sanity/image-url": "^1.2.0",
"@sanity/table": "2.0.0",
"@sanity/vision": "4.15.0",
"@sanity/vision": "4.18.0",
"@tanstack/nitro-v2-vite-plugin": "1.133.19",
"@tanstack/react-router": "1.136.8",
"@tanstack/react-start": "1.136.8",
"@vitejs/plugin-react": "5.1.1",
"cva": "1.0.0-beta.4",
"groq": "4.15.0",
"groq": "4.18.0",
"prism-react-renderer": "2.4.1",
"react": "19.2.0",
"react-aria-components": "1.13.0",
"react-dom": "19.2.0",
"react-element-to-jsx-string": "17.0.1",
"react-live": "4.1.8",
"sanity": "4.15.0",
"sanity": "4.18.0",
"use-debounce": "10.0.6"
},
"devDependencies": {
Expand All @@ -53,7 +53,7 @@
"@tanstack/react-router-devtools": "1.136.8",
"react-docgen-typescript": "2.4.0",
"tailwindcss": "4.1.17",
"vite": "7.2.2",
"vite": "7.2.4",
"vite-tsconfig-paths": "5.1.4"
}
}
21 changes: 21 additions & 0 deletions apps/docs/src/routeTree.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@

import { Route as rootRouteImport } from './routes/__root'
import { Route as DocsRouteImport } from './routes/_docs'
import { Route as StudioIndexRouteImport } from './routes/studio/index'
import { Route as DocsIndexRouteImport } from './routes/_docs/index'
import { Route as StudioSplatRouteImport } from './routes/studio/$'
import { Route as ApiHealthRouteImport } from './routes/api/health'
Expand All @@ -24,6 +25,11 @@ const DocsRoute = DocsRouteImport.update({
id: '/_docs',
getParentRoute: () => rootRouteImport,
} as any)
const StudioIndexRoute = StudioIndexRouteImport.update({
id: '/studio/',
path: '/studio/',
getParentRoute: () => rootRouteImport,
} as any)
const DocsIndexRoute = DocsIndexRouteImport.update({
id: '/',
path: '/',
Expand Down Expand Up @@ -75,6 +81,7 @@ export interface FileRoutesByFullPath {
'/api/health': typeof ApiHealthRoute
'/studio/$': typeof StudioSplatRoute
'/': typeof DocsIndexRoute
'/studio': typeof StudioIndexRoute
'/komponenter/$slug': typeof DocsKomponenterSlugRoute
'/profil/farger': typeof DocsProfilFargerRoute
'/profil/ikoner': typeof DocsProfilIkonerRoute
Expand All @@ -86,6 +93,7 @@ export interface FileRoutesByTo {
'/api/health': typeof ApiHealthRoute
'/studio/$': typeof StudioSplatRoute
'/': typeof DocsIndexRoute
'/studio': typeof StudioIndexRoute
'/komponenter/$slug': typeof DocsKomponenterSlugRoute
'/profil/farger': typeof DocsProfilFargerRoute
'/profil/ikoner': typeof DocsProfilIkonerRoute
Expand All @@ -99,6 +107,7 @@ export interface FileRoutesById {
'/api/health': typeof ApiHealthRoute
'/studio/$': typeof StudioSplatRoute
'/_docs/': typeof DocsIndexRoute
'/studio/': typeof StudioIndexRoute
'/_docs/komponenter/$slug': typeof DocsKomponenterSlugRoute
'/_docs/profil/farger': typeof DocsProfilFargerRoute
'/_docs/profil/ikoner': typeof DocsProfilIkonerRoute
Expand All @@ -112,6 +121,7 @@ export interface FileRouteTypes {
| '/api/health'
| '/studio/$'
| '/'
| '/studio'
| '/komponenter/$slug'
| '/profil/farger'
| '/profil/ikoner'
Expand All @@ -123,6 +133,7 @@ export interface FileRouteTypes {
| '/api/health'
| '/studio/$'
| '/'
| '/studio'
| '/komponenter/$slug'
| '/profil/farger'
| '/profil/ikoner'
Expand All @@ -135,6 +146,7 @@ export interface FileRouteTypes {
| '/api/health'
| '/studio/$'
| '/_docs/'
| '/studio/'
| '/_docs/komponenter/$slug'
| '/_docs/profil/farger'
| '/_docs/profil/ikoner'
Expand All @@ -146,6 +158,7 @@ export interface RootRouteChildren {
DocsRoute: typeof DocsRouteWithChildren
ApiHealthRoute: typeof ApiHealthRoute
StudioSplatRoute: typeof StudioSplatRoute
StudioIndexRoute: typeof StudioIndexRoute
}

declare module '@tanstack/react-router' {
Expand All @@ -157,6 +170,13 @@ declare module '@tanstack/react-router' {
preLoaderRoute: typeof DocsRouteImport
parentRoute: typeof rootRouteImport
}
'/studio/': {
id: '/studio/'
path: '/studio'
fullPath: '/studio'
preLoaderRoute: typeof StudioIndexRouteImport
parentRoute: typeof rootRouteImport
}
'/_docs/': {
id: '/_docs/'
path: '/'
Expand Down Expand Up @@ -249,6 +269,7 @@ const rootRouteChildren: RootRouteChildren = {
DocsRoute: DocsRouteWithChildren,
ApiHealthRoute: ApiHealthRoute,
StudioSplatRoute: StudioSplatRoute,
StudioIndexRoute: StudioIndexRoute,
}
export const routeTree = rootRouteImport
._addFileChildren(rootRouteChildren)
Expand Down
Loading