@kystverket/styrbord 1.12.0 → 1.13.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -119
- package/dist/src/components/kystverket/Header/headerContext.d.ts +2 -1
- package/dist/src/components/kystverket/Icon/Icon.stories.d.ts +2 -1
- package/dist/src/components/kystverket/Icon/icon.d.ts +4 -2
- package/dist/src/components/kystverket/Icon/icon.types.d.ts +1 -1
- package/dist/src/components/kystverket/SaksbehandlingShell/ItemCard/ItemCard.d.ts +2 -0
- package/dist/src/components/kystverket/SaksbehandlingShell/ItemCard/ItemCard.types.d.ts +6 -0
- package/dist/src/components/kystverket/SaksbehandlingShell/ItemList/ItemList.d.ts +2 -0
- package/dist/src/components/kystverket/SaksbehandlingShell/ItemList/ItemList.types.d.ts +6 -0
- package/dist/src/components/kystverket/SaksbehandlingShell/SaksbehandlingShell.d.ts +2 -0
- package/dist/src/components/kystverket/SaksbehandlingShell/SaksbehandlingShell.stories.d.ts +13 -0
- package/dist/src/components/kystverket/SaksbehandlingShell/SaksbehandlingShell.types.d.ts +31 -0
- package/dist/src/components/kystverket/SideSheet/SideSheet.types.d.ts +1 -1
- package/dist/src/main.d.ts +2 -0
- package/dist/style.css +1 -1
- package/dist/style.js +2145 -1980
- package/dist/style.umd.cjs +9 -9
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -35,128 +35,23 @@ Importering av enkeltkomponenter.
|
|
|
35
35
|
import { Heading, Ingress, Tabs } from '@kystverket/styrbord';
|
|
36
36
|
```
|
|
37
37
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
Styrbords design tokens hentes fra [@Kystverket/styrbord-tokens](https://github.com/Kystverket/styrbord-tokens).
|
|
41
|
-
|
|
42
|
-
## Endringslogg
|
|
43
|
-
|
|
44
|
-
### 2026-06-22 -- v1.9.9
|
|
45
|
-
|
|
46
|
-
Lagt inn en ny context for å hente filer som er lastet opp til RichTextArea, MarkdownToReact og FileUploader kalt `FileRetrieverContext`. Uten en provider til denne så vil komponentene fortsatt fungere, men preview av opplastede/refererte filer vil ikke bli vist.
|
|
47
|
-
|
|
48
|
-
### 2026-06-09 -- v1.9.0
|
|
38
|
+
### Språk og oversettelser
|
|
49
39
|
|
|
50
|
-
|
|
40
|
+
Applikasjoner som bruker Styrbord må wrappe alt med både `<SprakProvider>` (for å velge språk) og `<StyrbordTranslations>` (for å hente oversettelsene til Styrbord). Uten dette vil komponenter som for eksempel Footer vise nøkkelstrenger i stedet for oversatt tekst.
|
|
51
41
|
|
|
52
|
-
|
|
42
|
+
```tsx
|
|
43
|
+
import { SprakProvider } from '@kystverket/sprak-react';
|
|
44
|
+
import { STYRBORD_TRANSLATIONS_NAMESPACE, StyrbordTranslations } from '@kystverket/styrbord';
|
|
53
45
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
- Oppdatert Header til å støtte 'applikasjoner'. For å overstyre LinkComponent som brukes (for å slippe full reload i f.eks. NextJS) kan man wrapper Header med HeaderContext.
|
|
63
|
-
|
|
64
|
-
```ts
|
|
65
|
-
<HeaderContext.Provider value={{ LinkComponent: Link }}>
|
|
66
|
-
<Header
|
|
67
|
-
logo={{ variant: 'selvbetjening', url: '/' + language }}
|
|
68
|
-
slots={{ postLinks: <LanguageSwitcher language={language} /> }}
|
|
69
|
-
/>
|
|
70
|
-
</HeaderContext.Provider>
|
|
46
|
+
function App() {
|
|
47
|
+
return (
|
|
48
|
+
<SprakProvider locale="nb-NO">
|
|
49
|
+
<StyrbordTranslations>{/* resten av applikasjonen */}</StyrbordTranslations>
|
|
50
|
+
</SprakProvider>
|
|
51
|
+
);
|
|
52
|
+
}
|
|
71
53
|
```
|
|
72
54
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
Header bruker nå hamburger-ikon for mobilmeny.
|
|
76
|
-
|
|
77
|
-
Fullt navn vises ikke lenger, kun initialer. Initialer blir automatisk lagd basert på navn.
|
|
78
|
-
|
|
79
|
-
### 2026-03-10 -- v1.4.0
|
|
80
|
-
|
|
81
|
-
Endret fra StyrbordTranslationContext til å bruke @kystverket/sprak-react.
|
|
82
|
-
|
|
83
|
-
Internt i Styrbord-komponenter kan man bruke følgende for å hente oversettelsesfunksjonen.
|
|
84
|
-
|
|
85
|
-
```ts
|
|
86
|
-
import { useStyrbordTranslation } from '~/translations';
|
|
87
|
-
...
|
|
88
|
-
const { t } = useTranslation();
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
Applikasjoner som bruker Styrbord må wrappe alt med både `<SprakProvider>` (for å velge språk) og `<StyrbordTranslations>` (for å hente oversettelsene til Styrbord).
|
|
92
|
-
|
|
93
|
-
### 2026-01-13 -- v1.3.0
|
|
94
|
-
|
|
95
|
-
#### Knekkende endring
|
|
96
|
-
|
|
97
|
-
Fjernet parameteren language fra Header og Footer. For å endre språk i Styrbord-komponenter kan man nå bruke følgende context provider rundt hele applikasjonen.
|
|
98
|
-
|
|
99
|
-
```jsx
|
|
100
|
-
<StyrbordTranslationContext.Provider value={{ language: 'nb-NO' }}>...</StyrbordTranslationContext.Provider>
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
Internt i Styrbord-komponenter kan man bruke følgende for å hente oversettelsesfunksjonen.
|
|
104
|
-
|
|
105
|
-
```ts
|
|
106
|
-
import { useStyrbordTranslation } from '~/i18n/translations';
|
|
107
|
-
...
|
|
108
|
-
const { t } = useStyrbordTranslation();
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
### 2025-11-11 -- v1.2.1
|
|
112
|
-
|
|
113
|
-
- Oppdatert Alert til å ikke være egenprodusert, men istedet være en variant av Alert fra Designsystemet. Deler av interfacet endres til å være likere Designsystemet (size).
|
|
114
|
-
|
|
115
|
-
### 2025-11-11 -- v1.1.0
|
|
116
|
-
|
|
117
|
-
- Oppdatert til Designsystemet versjon 1.7.2 fra 1.6.1.
|
|
118
|
-
- Fjernet unødvendig dependency til @navikt/aksel-icons.
|
|
119
|
-
|
|
120
|
-
### 2025-10-24 -- v1.0
|
|
121
|
-
|
|
122
|
-
Offisielt versjon 1.0.
|
|
123
|
-
|
|
124
|
-
- Fjernet all duplisering av CSS-variabler. Tidligere har vi for bakoverkompatibilitet duplisert alle Designsystemvariabler til en variabel uten `--ds-` foran. Disse variablene er nå ikke lenger tilstede. Versjon 1.0 var en god anledning til å rydde i dette.
|
|
125
|
-
- `--spacing-#`-variablene er flyttet fra styrbord-tokens til styrbord. Skal ikke ha noen effekt. Oppfordrer til å bruke `--ds-size-#` over `--spacing-#`.
|
|
126
|
-
|
|
127
|
-
### 2025-10-23
|
|
128
|
-
|
|
129
|
-
Oppdatert til Designsystemet 1.6.1 fra 1.4.0.
|
|
130
|
-
|
|
131
|
-
Endret Avatar.
|
|
132
|
-
|
|
133
|
-
- Størrelser er nå `2x` og `3x` fra `xxs` og `xxxs`.
|
|
134
|
-
- Endret fargevalg. `data-color` er nå kun vanlige farger, men man kan legge på `data-color-variant="surface-tinted"` for å få dusere farger.
|
|
135
|
-
|
|
136
|
-
### 2025-10-16
|
|
137
|
-
|
|
138
|
-
Footer har blitt endret. Den er ikke bakoverkompatibel, men siden footer stort sett settes en gang bør
|
|
139
|
-
dette gå bra. Se [Footer.stories.tsx](https://github.com/Kystverket/styrbord/blob/main/src/components/kystverket/Footer/Footer.stories.tsx) for hvordan den skal brukes i din applikasjon.
|
|
140
|
-
|
|
141
|
-
### 2025-09-08
|
|
142
|
-
|
|
143
|
-
Box har fått noen endringer på fargene og interfacet. Dette er gjort for å gjøre default-fargene
|
|
144
|
-
mer attraktive og bruke, og samtidig endre fargenavn til å matche variabelnavn fra Designsystemet.
|
|
145
|
-
|
|
146
|
-
- Fargen `action` er fjernet og endret til `primary`.
|
|
147
|
-
- Attributten `subtle` er fjernet. Default-farge er nå mye likere `subtle`.
|
|
148
|
-
- Fargevarianter kan velges ved å sette `color="farge/variant"`. For å matche den gamle `action`-fargen
|
|
149
|
-
kan man ha `color="primary/active"`. Se Box-storyen for alle variantene.
|
|
150
|
-
|
|
151
|
-
### 2025-08-15
|
|
152
|
-
|
|
153
|
-
Arbeid for å gjøre Styrbord mindre forskjellig fra Designsystemet. Dette gjør at det forhåpentligvis blir lettere å lære, og lettere å ta i bruk dokumentasjonen til Designsystemet.
|
|
154
|
-
|
|
155
|
-
- `<InputLabel>` er fjernet. Man kan bruke `<Label>` med `<LabelContent>` (ny) for å oppnå samme visning.
|
|
156
|
-
- `<ErrorLabel>` er fjernet. Man kan bruke `<ValidationMessage>` (fra Designsystemet) for å oppnå samme visning.
|
|
157
|
-
- `<Label>` (fra typografi) er fjernet fra vanlig eksport. Svært lite brukt, og blokkerer `<Label>`-komponenten fra Designsystemet. Har man fortsatt behov for den er den tilgjengelig som `<Typography.Label>`.
|
|
158
|
-
- Overskrivingen av `<Card>` er fjernet. For å oppnå samme stil kan man plassere `<CardTitle>` (ny) i et Card.
|
|
159
|
-
- Overskrivingen av `<Details>` er fjernet. Dette gjør at man må gi innhold til `<Details>` som komponenter og ikke attributter slik vi gjorde det før.
|
|
160
|
-
- Tillater ikke lenger å sende en boolsk verdi til error attributter i input-komponenter.
|
|
55
|
+
## Design Tokens
|
|
161
56
|
|
|
162
|
-
|
|
57
|
+
Styrbords design tokens hentes fra [@Kystverket/styrbord-tokens](https://github.com/Kystverket/styrbord-tokens).
|
|
@@ -5,8 +5,9 @@ export type HeaderLinkComponentProps = {
|
|
|
5
5
|
children: ReactNode;
|
|
6
6
|
onClick?: (e?: React.UIEvent | undefined) => void;
|
|
7
7
|
};
|
|
8
|
+
export type HeaderLinkComponent = (props: HeaderLinkComponentProps) => React.ReactElement;
|
|
8
9
|
export interface HeaderContextProps {
|
|
9
|
-
LinkComponent:
|
|
10
|
+
LinkComponent: HeaderLinkComponent;
|
|
10
11
|
}
|
|
11
12
|
export declare const HeaderContext: React.Context<HeaderContextProps>;
|
|
12
13
|
export interface ApplicationHeaderContextProps {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { StoryFn } from '@storybook/react-vite';
|
|
2
2
|
declare const meta: {
|
|
3
3
|
title: string;
|
|
4
|
-
component: ({ material,
|
|
4
|
+
component: ({ material, indicator, className, size, title, background }: import("~/components/kystverket/Icon/icon").MaterialIconProps) => React.JSX.Element;
|
|
5
5
|
decorators: ((Story: import("storybook/internal/csf").PartialStoryFn, context: import("storybook/internal/csf").StoryContext) => React.JSX.Element)[];
|
|
6
6
|
tags: string[];
|
|
7
7
|
argTypes: {};
|
|
@@ -9,3 +9,4 @@ declare const meta: {
|
|
|
9
9
|
export default meta;
|
|
10
10
|
export declare const IconShowcase: StoryFn;
|
|
11
11
|
export declare const IconSizing: StoryFn;
|
|
12
|
+
export declare const IconIndicator: StoryFn;
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
+
import type { StyrbordPaletteColor, StyrbordSemanticColor } from '@kystverket/styrbord-tokens/colors';
|
|
1
2
|
import { IconId } from './icon.types';
|
|
2
3
|
type IconSize = '2xs' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl';
|
|
3
4
|
export interface MaterialIconProps {
|
|
4
5
|
material: IconId;
|
|
5
|
-
|
|
6
|
+
indicator?: IconId;
|
|
6
7
|
className?: string;
|
|
7
8
|
size?: IconSize;
|
|
8
9
|
title?: string;
|
|
10
|
+
background?: StyrbordPaletteColor | StyrbordSemanticColor;
|
|
9
11
|
}
|
|
10
|
-
declare const Icon: ({ material,
|
|
12
|
+
declare const Icon: ({ material, indicator, className, size, title, background }: MaterialIconProps) => React.JSX.Element;
|
|
11
13
|
export default Icon;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const iconIdList: readonly ["
|
|
1
|
+
export declare const iconIdList: readonly ["add_box", "add_location_alt", "add_location", "add", "adjust", "alternate_email", "anchor", "apps", "archive", "arrow_back", "arrow_downward", "arrow_forward", "arrow_right_alt", "arrow_upward", "article", "assignment", "attach_file", "cached", "calendar_month", "change_history", "chat_add_on", "chat_bubble", "chat", "check_circle", "check", "chevron_left", "chevron_right", "circle", "close", "cloud_alert", "cloud_done", "code_blocks", "comment", "compare_arrows", "compare", "content_copy", "conversation", "data_table", "delete", "description", "difference", "directions_boat", "directory_sync", "distance", "domain", "download", "drafts", "edit_document", "edit_location_alt", "edit_location", "edit_square", "edit", "error", "event", "explore_nearby", "explore", "export_notes", "favorite", "file_map", "file_save", "folder_open", "format_align_center", "format_align_justify", "format_align_left", "format_align_right", "format_bold", "format_italic", "format_list_bulleted", "format_list_numbered", "forum", "forward_to_inbox", "forward", "globe_uk", "groups", "image", "inbox", "info_i", "info", "keep_off", "keep", "keyboard_arrow_down", "keyboard_arrow_up", "language", "layers", "left_panel_close", "left_panel_open", "lightbulb", "link", "location_chip", "lock", "login", "logout", "mail_shield", "mail", "manage_search", "map_pin_heart", "map", "mark_as_unread", "mark_chat_read", "mark_chat_unread", "mark_email_read", "mark_email_unread", "match_case", "menu", "mode_cool", "more_vert", "move_to_inbox", "move", "note_stack_add", "note_stack", "notification_add", "numbers", "open_in_new", "pan_zoom", "pending_actions", "person_add", "person_pin_circle", "person_pin", "person", "photo_camera", "picture_as_pdf", "pin_drop", "question_exchange", "radio_button_checked", "radio_button_unchecked", "redo", "reply_all", "reply", "right_panel_close", "right_panel_open", "sailing", "save", "send_and_archive", "send", "settings_input_antenna", "settings", "severe_cold", "sort", "source_environment", "stacked_email", "stylus", "sync", "text_compare", "text_snippet", "timeline", "undo", "upload", "video_library", "videocam", "view_list", "visibility", "warning", "zoom_in_map", "zoom_out_map"];
|
|
2
2
|
export type IconId = (typeof iconIdList)[number];
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import type { SaksbehandlingShellProps } from './SaksbehandlingShell.types';
|
|
2
|
+
export declare function SaksbehandlingShell({ headerContent, caseActions, itemActions, items, selectedItemId, onSelectItemId, comparisonContent, defaultItemListOpen, defaultComparisonOpen, children, className, }: Readonly<SaksbehandlingShellProps>): React.JSX.Element;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { StoryFn } from '@storybook/react-vite';
|
|
2
|
+
import { SaksbehandlingShell } from './SaksbehandlingShell';
|
|
3
|
+
declare const meta: {
|
|
4
|
+
title: string;
|
|
5
|
+
component: typeof SaksbehandlingShell;
|
|
6
|
+
decorators: ((Story: import("storybook/internal/csf").PartialStoryFn, context: import("storybook/internal/csf").StoryContext) => React.JSX.Element)[];
|
|
7
|
+
tags: string[];
|
|
8
|
+
parameters: {
|
|
9
|
+
layout: string;
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
export default meta;
|
|
13
|
+
export declare const Default: StoryFn<typeof SaksbehandlingShell>;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import type { MaterialIconProps } from '../Icon/icon';
|
|
3
|
+
export interface SaksbehandlingItem {
|
|
4
|
+
id: string;
|
|
5
|
+
title: string;
|
|
6
|
+
description?: string;
|
|
7
|
+
children?: ReactNode;
|
|
8
|
+
icon: MaterialIconProps['material'];
|
|
9
|
+
iconIndicator?: MaterialIconProps['indicator'];
|
|
10
|
+
iconColor?: MaterialIconProps['background'];
|
|
11
|
+
}
|
|
12
|
+
export interface SaksbehandlingShellProps {
|
|
13
|
+
/** Content for the header row. */
|
|
14
|
+
headerContent: ReactNode;
|
|
15
|
+
/** Actions related to the case as a whole, shown on the left of the toolbar. */
|
|
16
|
+
caseActions?: ReactNode;
|
|
17
|
+
/** Actions related to the currently selected item, shown on the right of the toolbar. */
|
|
18
|
+
itemActions?: ReactNode;
|
|
19
|
+
items: SaksbehandlingItem[];
|
|
20
|
+
selectedItemId?: string;
|
|
21
|
+
onSelectItemId: (id: string) => void;
|
|
22
|
+
/** Optional comparison section content. When omitted, the comparison panel and its toggle are not rendered. */
|
|
23
|
+
comparisonContent?: ReactNode;
|
|
24
|
+
/** Default open state of the item list panel. Default: `true`. */
|
|
25
|
+
defaultItemListOpen?: boolean;
|
|
26
|
+
/** Default open state of the comparison panel. Default: `false`. */
|
|
27
|
+
defaultComparisonOpen?: boolean;
|
|
28
|
+
/** Main section content for the currently selected item. */
|
|
29
|
+
children?: ReactNode;
|
|
30
|
+
className?: string;
|
|
31
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CSSProperties, ReactNode } from 'react';
|
|
2
|
-
export type SideSheetSize = 'sm' | 'md' | 'lg' | '33%' | '50%' | '66%';
|
|
2
|
+
export type SideSheetSize = 'sm' | 'md' | 'lg' | '33%' | '40%' | '50%' | '66%';
|
|
3
3
|
export type SideSheetPlacement = 'left' | 'right';
|
|
4
4
|
/**
|
|
5
5
|
* - `overlay`: sheet slides over content (default). Can be pinned by the user via `pinnable`.
|
package/dist/src/main.d.ts
CHANGED
|
@@ -55,6 +55,8 @@ export { default as CompactDetails } from './components/kystverket/CompactDetail
|
|
|
55
55
|
export type { CompactDetailsProps } from './components/kystverket/CompactDetails/CompactDetails.types';
|
|
56
56
|
export { default as ClickableCard } from './components/kystverket/ClickableCard/ClickableCard';
|
|
57
57
|
export type { ClickableCardProps, ClickableCardColor, ClickableCardVariant, } from './components/kystverket/ClickableCard/ClickableCard.types';
|
|
58
|
+
export { SaksbehandlingShell } from './components/kystverket/SaksbehandlingShell/SaksbehandlingShell';
|
|
59
|
+
export type { SaksbehandlingShellProps, SaksbehandlingItem, } from './components/kystverket/SaksbehandlingShell/SaksbehandlingShell.types';
|
|
58
60
|
export { Button } from './components/designsystemet/Button/Button';
|
|
59
61
|
export type { ButtonProps } from './components/designsystemet/Button/Button';
|
|
60
62
|
export { IconButton } from './components/designsystemet/IconButton/IconButton';
|