@altinn/altinn-components 0.57.3 → 0.58.1

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.
Files changed (227) hide show
  1. package/README.md +33 -0
  2. package/dist/Section-DvBigBR1.js +2226 -0
  3. package/dist/assets/BookmarkSettingsItemLabel.css +1 -1
  4. package/dist/assets/DialogContact.css +1 -0
  5. package/dist/assets/DialogHeader.css +1 -0
  6. package/dist/assets/DialogLayout.css +1 -0
  7. package/dist/assets/DialogSection.css +1 -0
  8. package/dist/assets/Link.css +1 -0
  9. package/dist/assets/Section.css +1 -1
  10. package/dist/assets/SettingsItemBase.css +1 -1
  11. package/dist/components/AccessAreaListItem/AccessAreaListItem.js +17 -16
  12. package/dist/components/AccessPackageListItem/AccessPackageListItem.js +9 -8
  13. package/dist/components/Account/AccountList.js +7 -6
  14. package/dist/components/Account/AccountListItem.js +8 -7
  15. package/dist/components/Account/AccountListItemControls.js +11 -10
  16. package/dist/components/Account/AccountListItemDetails.js +12 -11
  17. package/dist/components/Account/AccountListVirtual.js +4 -3
  18. package/dist/components/Account/AccountMenu.js +11 -10
  19. package/dist/components/Account/AccountNotificationSettings.js +10 -9
  20. package/dist/components/Account/AccountOrganization.js +15 -14
  21. package/dist/components/AccountSelector/AccountSelector.js +10 -9
  22. package/dist/components/ActivityLog/ActivityLog.js +4 -3
  23. package/dist/components/ActivityLog/ActivityLogItem.js +4 -3
  24. package/dist/components/ActivityLog/ActivityLogSegment.js +4 -3
  25. package/dist/components/Alert/Alert.js +8 -7
  26. package/dist/components/Article/Article.js +4 -3
  27. package/dist/components/Article/ArticleContact.js +4 -3
  28. package/dist/components/Article/ArticleHeader.js +4 -3
  29. package/dist/components/Attachment/AttachmentLink.js +1 -1
  30. package/dist/components/Banner/Banner.js +6 -5
  31. package/dist/components/Bookmarks/BookmarkModal.js +7 -6
  32. package/dist/components/Bookmarks/BookmarkSettingsItem.js +4 -3
  33. package/dist/components/Bookmarks/BookmarkSettingsItemLabel.js +12 -11
  34. package/dist/components/Bookmarks/BookmarkSettingsList.js +9 -8
  35. package/dist/components/Breadcrumbs/Breadcrumbs.js +4 -3
  36. package/dist/components/Bulk/BulkButton.js +11 -11
  37. package/dist/components/Bulk/BulkHeader.js +8 -7
  38. package/dist/components/Button/ButtonIcon.js +4 -3
  39. package/dist/components/Button/ComboButton.js +4 -3
  40. package/dist/components/Button/FloatingActionButton.js +8 -7
  41. package/dist/components/Button/IconButton.js +5 -4
  42. package/dist/components/Byline/Byline.js +3 -2
  43. package/dist/components/Byline/index.js +1 -1
  44. package/dist/components/ContextMenu/ContextMenu.js +28 -24
  45. package/dist/components/Dashboard/DashboardCard.js +7 -6
  46. package/dist/components/Dashboard/DashboardHeader.js +9 -8
  47. package/dist/components/Datepicker/Datepicker.js +1 -1
  48. package/dist/components/Datepicker/DatepickerHeader.js +4 -3
  49. package/dist/components/Datepicker/DatepickerTable.js +11 -10
  50. package/dist/components/Dialog/Dialog.js +25 -31
  51. package/dist/components/Dialog/DialogActions.js +4 -3
  52. package/dist/components/Dialog/DialogActivityLog.js +4 -3
  53. package/dist/components/Dialog/DialogAttachments.js +6 -5
  54. package/dist/components/Dialog/DialogBody.js +8 -7
  55. package/dist/components/Dialog/DialogByline.js +3 -2
  56. package/dist/components/Dialog/DialogContact.js +47 -11
  57. package/dist/components/Dialog/DialogHeader.js +31 -28
  58. package/dist/components/Dialog/DialogHistory.js +7 -6
  59. package/dist/components/Dialog/DialogHistoryItem.js +4 -3
  60. package/dist/components/Dialog/DialogHistorySegment.js +8 -7
  61. package/dist/components/Dialog/DialogLayout.js +21 -20
  62. package/dist/components/Dialog/DialogList.js +3 -2
  63. package/dist/components/Dialog/DialogListGroup.js +3 -2
  64. package/dist/components/Dialog/DialogListItem.js +3 -2
  65. package/dist/components/Dialog/DialogMetadata.js +3 -2
  66. package/dist/components/Dialog/DialogSection.js +10 -7
  67. package/dist/components/Dialog/DialogSeenBy.js +4 -3
  68. package/dist/components/Dialog/DialogSelect.js +10 -9
  69. package/dist/components/Dialog/DialogStatus.js +4 -3
  70. package/dist/components/Dialog/DialogTabs.js +4 -3
  71. package/dist/components/Dialog/SeenByLog.js +4 -3
  72. package/dist/components/Dialog/SeenByLogButton.js +7 -6
  73. package/dist/components/Dialog/SeenByLogItem.js +12 -11
  74. package/dist/components/Dialog/index.js +1 -1
  75. package/dist/components/Dropdown/DrawerButton.js +4 -3
  76. package/dist/components/Dropdown/DrawerHeader.js +8 -7
  77. package/dist/components/Dropdown/Dropdown.js +3 -2
  78. package/dist/components/Dropdown/DropdownBase.js +8 -7
  79. package/dist/components/Dropdown/FloatingDropdown.js +19 -18
  80. package/dist/components/Dropdown/index.js +5 -7
  81. package/dist/components/DsComponents/index.js +21 -20
  82. package/dist/components/Forms/Checkbox.js +4 -3
  83. package/dist/components/Forms/CheckboxOptions.js +4 -3
  84. package/dist/components/Forms/FieldBase.js +3 -2
  85. package/dist/components/Forms/FieldsetBase.js +4 -3
  86. package/dist/components/Forms/Radio.js +4 -3
  87. package/dist/components/Forms/RadioOptions.js +4 -3
  88. package/dist/components/Forms/SearchField.js +3 -2
  89. package/dist/components/Forms/SelectField.js +5 -4
  90. package/dist/components/Forms/Switch.js +6 -5
  91. package/dist/components/Forms/SwitchOptions.js +4 -3
  92. package/dist/components/Forms/TextField.js +4 -3
  93. package/dist/components/Forms/TextFieldDropdown.js +4 -3
  94. package/dist/components/Forms/TextareaField.js +4 -3
  95. package/dist/components/Forms/index.js +1 -1
  96. package/dist/components/GlobalHeader/GlobalAccountButton.js +8 -7
  97. package/dist/components/GlobalHeader/GlobalHeader.js +10 -9
  98. package/dist/components/GlobalHeader/GlobalMenuButton.js +4 -3
  99. package/dist/components/GlobalHeader/HeaderDrawer.js +9 -8
  100. package/dist/components/GlobalHeader/HeaderDropdown.js +6 -5
  101. package/dist/components/GlobalHeader/HeaderLogo.js +8 -7
  102. package/dist/components/GlobalMenu/GlobalMenu.js +10 -9
  103. package/dist/components/GlobalMenu/LocaleSwitcher.js +13 -12
  104. package/dist/components/GlobalMenu/LogoutButton.js +4 -3
  105. package/dist/components/GlobalMenu_old/BackButton.js +4 -3
  106. package/dist/components/GlobalMenu_old/CurrentAccount.js +4 -3
  107. package/dist/components/GlobalMenu_old/GlobalMenu.js +10 -9
  108. package/dist/components/GlobalMenu_old/GlobalMenuButton.js +12 -11
  109. package/dist/components/GlobalMenu_old/LogoutButton.js +4 -3
  110. package/dist/components/Header/Header.js +4 -3
  111. package/dist/components/Header/HeaderBase.js +7 -6
  112. package/dist/components/Header/HeaderButton.js +18 -17
  113. package/dist/components/Header/LocaleButton.js +12 -11
  114. package/dist/components/Header/LocaleSwitcher.js +9 -8
  115. package/dist/components/Icon/Icon.js +4 -3
  116. package/dist/components/Icon/index.js +1 -1
  117. package/dist/components/Inbox/InboxPage.js +8 -7
  118. package/dist/components/InboxSearch/InboxSearch.js +10 -9
  119. package/dist/components/Item/ItemLabel.js +2 -1
  120. package/dist/components/Item/ItemMedia.js +3 -2
  121. package/dist/components/Item/ItemSelect.js +3 -2
  122. package/dist/components/Item/index.js +1 -1
  123. package/dist/components/Layout/Layout.js +8 -7
  124. package/dist/components/List/List.js +3 -2
  125. package/dist/components/List/ListBase.js +4 -3
  126. package/dist/components/List/ListItem.js +1 -1
  127. package/dist/components/List/ListItemHeader.js +3 -2
  128. package/dist/components/List/ListItemIcon.js +3 -2
  129. package/dist/components/List/ListItemLabel.js +4 -3
  130. package/dist/components/List/index.js +1 -1
  131. package/dist/components/Menu/Menu.js +1 -1
  132. package/dist/components/Menu/MenuItem.js +3 -2
  133. package/dist/components/Menu/MenuItems.js +3 -2
  134. package/dist/components/Menu/MenuListSearch.js +3 -2
  135. package/dist/components/Menu/MenuOption.js +1 -1
  136. package/dist/components/Menu/TabMenu.js +7 -6
  137. package/dist/components/Menu/VirtualizedMenuItems.js +3 -2
  138. package/dist/components/Menu/index.js +1 -1
  139. package/dist/components/Menu/useMenuSearch.js +1 -1
  140. package/dist/components/Metadata/MetaItem.js +3 -2
  141. package/dist/components/Metadata/MetaItemIcon.js +3 -2
  142. package/dist/components/Metadata/MetaProgress.js +3 -2
  143. package/dist/components/Metadata/MetaTimestamp.js +3 -2
  144. package/dist/components/Metadata/Metadata.js +9 -8
  145. package/dist/components/Metadata/index.js +1 -1
  146. package/dist/components/Modal/Modal.js +8 -7
  147. package/dist/components/Modal/ModalBase.js +25 -24
  148. package/dist/components/Modal/ModalHeader.js +10 -9
  149. package/dist/components/Modal/ModalIcon.js +4 -3
  150. package/dist/components/Notifications/NotificationItem.js +4 -3
  151. package/dist/components/Notifications/NotificationItemBase.js +4 -3
  152. package/dist/components/Notifications/NotificationItemControls.js +6 -5
  153. package/dist/components/Notifications/NotificationItemIcon.js +15 -14
  154. package/dist/components/Page/AccordionSection.js +4 -3
  155. package/dist/components/Page/ContactButtons.js +7 -6
  156. package/dist/components/Page/ContactSection.js +7 -6
  157. package/dist/components/Page/PageMenu.js +11 -10
  158. package/dist/components/Page/PageNav.js +7 -6
  159. package/dist/components/Page/Section.js +3 -2
  160. package/dist/components/Page/index.js +1 -1
  161. package/dist/components/ResourceListItem/ResourceListItem.js +8 -7
  162. package/dist/components/RootProvider/RootProvider.js +4 -3
  163. package/dist/components/RootProvider/index.js +1 -1
  164. package/dist/components/Search/SearchItem.js +7 -6
  165. package/dist/components/Searchbar/Autocomplete.js +9 -8
  166. package/dist/components/Searchbar/AutocompleteItem.js +6 -5
  167. package/dist/components/Searchbar/Searchbar.js +4 -3
  168. package/dist/components/Searchbar/SearchbarField.js +4 -3
  169. package/dist/components/Settings/SettingsItem.js +75 -69
  170. package/dist/components/Settings/SettingsItemBase.js +67 -39
  171. package/dist/components/Settings/SettingsList.js +12 -11
  172. package/dist/components/Settings/SettingsModal.js +7 -6
  173. package/dist/components/Settings/SettingsSection.js +10 -9
  174. package/dist/components/Settings/UsedByLog.js +4 -3
  175. package/dist/components/Settings/UsedByLogItem.js +10 -9
  176. package/dist/components/Snackbar/SnackbarItem.js +16 -15
  177. package/dist/components/Timeline/Timeline.js +4 -3
  178. package/dist/components/Timeline/TimelineActivity.js +4 -3
  179. package/dist/components/Timeline/TimelineBase.js +4 -3
  180. package/dist/components/Timeline/TimelineFooter.js +7 -6
  181. package/dist/components/Timeline/TimelineHeader.js +4 -3
  182. package/dist/components/Timeline/TimelineIcon.js +6 -5
  183. package/dist/components/Timeline/TimelineSection.js +4 -3
  184. package/dist/components/Timeline/TimelineSegment.js +7 -6
  185. package/dist/components/Toolbar/DatepickerFilter.js +4 -3
  186. package/dist/components/Toolbar/SelectDateFilter.js +8 -7
  187. package/dist/components/Toolbar/Toolbar.js +1 -1
  188. package/dist/components/Toolbar/ToolbarFilter.js +11 -10
  189. package/dist/components/Toolbar/ToolbarFilterAddMenu.js +18 -17
  190. package/dist/components/Toolbar/ToolbarFilterButton.js +4 -3
  191. package/dist/components/Toolbar/ToolbarFilterMenu.js +11 -10
  192. package/dist/components/Toolbar/ToolbarMenu.js +3 -2
  193. package/dist/components/Toolbar/ToolbarSearch.js +3 -2
  194. package/dist/components/Toolbar/index.js +1 -1
  195. package/dist/components/Transmission/Transmission.js +9 -8
  196. package/dist/components/Transmission/TransmissionList.js +6 -5
  197. package/dist/components/Transmission/TransmissionType.js +4 -3
  198. package/dist/components/Typography/Heading.js +3 -2
  199. package/dist/components/Typography/Link.js +11 -0
  200. package/dist/components/Typography/index.js +4 -2
  201. package/dist/components/UserListItem/UserListItem.js +9 -8
  202. package/dist/components/index.js +255 -254
  203. package/dist/hooks/useAccountSelector.js +18 -17
  204. package/dist/index.js +246 -245
  205. package/dist/link-D1SA3LCe.js +10 -0
  206. package/dist/{textfield-CRXtg-r5.js → textfield-f4Za2qt6.js} +428 -431
  207. package/dist/types/lib/components/Bulk/Bulk.stories.d.ts +4 -1
  208. package/dist/types/lib/components/Bulk/BulkButton.d.ts +2 -1
  209. package/dist/types/lib/components/ContextMenu/ContextMenu.d.ts +3 -2
  210. package/dist/types/lib/components/Dialog/DialogContact.d.ts +12 -3
  211. package/dist/types/lib/components/Dropdown/Dropdown.d.ts +3 -1
  212. package/dist/types/lib/components/Dropdown/Dropdown.stories.d.ts +1 -2
  213. package/dist/types/lib/components/Dropdown/index.d.ts +0 -1
  214. package/dist/types/lib/components/Forms/SearchField.stories.d.ts +1 -0
  215. package/dist/types/lib/components/Menu/VirtualizedMenu.stories.d.ts +24 -3
  216. package/dist/types/lib/components/Settings/SettingsItem.d.ts +1 -1
  217. package/dist/types/lib/components/Settings/SettingsItemBase.d.ts +16 -10
  218. package/dist/types/lib/components/Typography/Link.d.ts +11 -0
  219. package/dist/types/lib/components/Typography/index.d.ts +1 -0
  220. package/dist/types/lib/stories/Profile.stories.d.ts +1 -0
  221. package/dist/types/lib/test-utils/screenshot-compare.d.ts +49 -0
  222. package/package.json +10 -3
  223. package/dist/Section-xbt3ft20.js +0 -2265
  224. package/dist/assets/DrawerOrDropdown.css +0 -1
  225. package/dist/components/Dropdown/DrawerOrDropdown.js +0 -42
  226. package/dist/types/lib/components/Dropdown/DrawerOrDropdown.d.ts +0 -11
  227. package/dist/types/lib/components/Settings/SettingsItem.stories.d.ts +0 -67
@@ -7,7 +7,10 @@ declare const meta: {
7
7
  args: {};
8
8
  };
9
9
  export default meta;
10
- export declare const Default: ({ defaultBulkIds, }: {
10
+ export declare const Default: ({ defaultAccountId, defaultBulkIds, }: {
11
+ defaultAccountId?: string;
11
12
  defaultBulkIds?: string[];
12
13
  }) => import("react/jsx-runtime").JSX.Element;
13
14
  export declare const BulkModeOn: () => import("react/jsx-runtime").JSX.Element;
15
+ export declare const Company: () => import("react/jsx-runtime").JSX.Element;
16
+ export declare const CompanyBulkMode: () => import("react/jsx-runtime").JSX.Element;
@@ -4,5 +4,6 @@ export interface BulkButtonProps {
4
4
  icon: SvgElement;
5
5
  label: string;
6
6
  onClick?: () => void;
7
+ loading?: boolean;
7
8
  }
8
- export declare const BulkButton: ({ icon, label, onClick }: BulkButtonProps) => import("react/jsx-runtime").JSX.Element;
9
+ export declare const BulkButton: ({ icon, label, onClick, loading }: BulkButtonProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,9 +1,10 @@
1
1
  import { DropdownProps } from '../Dropdown';
2
- import { MenuProps } from '../Menu';
2
+ import { MenuItemColor, MenuProps } from '../Menu';
3
3
  export interface ContextMenuProps extends MenuProps {
4
4
  id?: string;
5
5
  title?: string;
6
6
  placement?: DropdownProps['placement'];
7
7
  'aria-label'?: string;
8
+ color?: MenuItemColor;
8
9
  }
9
- export declare const ContextMenu: ({ groups, items, title, id, placement, "aria-label": ariaLabel, }: ContextMenuProps) => import("react/jsx-runtime").JSX.Element;
10
+ export declare const ContextMenu: ({ groups, items, title, color, id, placement, "aria-label": ariaLabel, }: ContextMenuProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,7 +1,16 @@
1
1
  import { ReactNode } from 'react';
2
- import { ContactButtonsProps, ContactSectionProps } from '..';
3
- export interface DialogContactProps extends ContactButtonsProps {
2
+ import { ButtonProps, LinkProps } from '..';
3
+ export interface DialogContactButtonProps {
4
+ as?: ButtonProps['as'];
5
+ href?: ButtonProps['href'];
6
+ onClick?: ButtonProps['onClick'];
7
+ label: string;
8
+ }
9
+ export interface DialogContactProps {
10
+ id?: string;
4
11
  title?: string;
5
12
  children?: ReactNode;
13
+ buttons: DialogContactButtonProps[];
14
+ helpLink?: LinkProps;
6
15
  }
7
- export declare const DialogContact: ({ id, title, children, items }: ContactSectionProps) => import("react/jsx-runtime").JSX.Element;
16
+ export declare const DialogContact: ({ id, title, children, buttons, helpLink, }: DialogContactProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,9 +1,11 @@
1
1
  import { ReactNode } from 'react';
2
+ import { Color } from '..';
2
3
  export type DropdownSize = 'auto' | 'sm' | 'md' | 'lg';
3
4
  export type DropdownPlacement = 'left' | 'right' | 'bottom' | 'top' | 'bottom-left' | 'bottom-right' | 'top-left' | 'top-right';
4
5
  export type DropdownVariant = 'dropdown' | 'drawer' | 'drawer-dropdown' | 'header-dropdown' | 'header';
5
6
  export interface DropdownProps {
6
7
  id?: string;
8
+ color?: Color;
7
9
  className?: string;
8
10
  backdrop?: boolean;
9
11
  placement?: DropdownPlacement;
@@ -21,4 +23,4 @@ export interface DropdownProps {
21
23
  useFixedPosition?: boolean;
22
24
  expanded?: boolean;
23
25
  }
24
- export declare const Dropdown: ({ id, size, className, backdrop, placement, variant, title, closeLabel, submitLabel, trigger, children, open, onClose, onSubmit, activeDescendantId, useFixedPosition, expanded, }: DropdownProps) => import("react/jsx-runtime").JSX.Element;
26
+ export declare const Dropdown: ({ id, size, className, backdrop, placement, variant, title, closeLabel, submitLabel, trigger, children, open, onClose, color, onSubmit, activeDescendantId, useFixedPosition, expanded, }: DropdownProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,7 +1,7 @@
1
1
  import { DropdownProps } from './Dropdown';
2
2
  declare const meta: {
3
3
  title: string;
4
- component: ({ id, size, className, backdrop, placement, variant, title, closeLabel, submitLabel, trigger, children, open, onClose, onSubmit, activeDescendantId, useFixedPosition, expanded, }: DropdownProps) => import("react/jsx-runtime").JSX.Element;
4
+ component: ({ id, size, className, backdrop, placement, variant, title, closeLabel, submitLabel, trigger, children, open, onClose, color, onSubmit, activeDescendantId, useFixedPosition, expanded, }: DropdownProps) => import("react/jsx-runtime").JSX.Element;
5
5
  tags: string[];
6
6
  parameters: {};
7
7
  args: {
@@ -11,4 +11,3 @@ declare const meta: {
11
11
  export default meta;
12
12
  export declare const DropdownMenu: ({ title, placement }: DropdownProps) => import("react/jsx-runtime").JSX.Element;
13
13
  export declare const DrawerMenu: ({ title, placement }: DropdownProps) => import("react/jsx-runtime").JSX.Element;
14
- export declare const DrawerOrDropdownMenu: ({ title, placement }: DropdownProps) => import("react/jsx-runtime").JSX.Element;
@@ -6,5 +6,4 @@ export * from './DrawerHeader';
6
6
  export * from './DrawerFooter';
7
7
  export * from './DrawerButton';
8
8
  export * from './DrawerBody';
9
- export * from './DrawerOrDropdown';
10
9
  export * from './FloatingDropdown';
@@ -16,4 +16,5 @@ export declare const Default: Story;
16
16
  export declare const ClearButton: Story;
17
17
  export declare const DebouncedQuery: (args: SearchFieldProps) => import("react/jsx-runtime").JSX.Element;
18
18
  export declare const Controlled: (args: SearchFieldProps) => import("react/jsx-runtime").JSX.Element;
19
+ export declare const Collapsible: (args: SearchFieldProps) => import("react/jsx-runtime").JSX.Element;
19
20
  export declare const Autocomplete: (args: SearchFieldProps) => import("react/jsx-runtime").JSX.Element;
@@ -17,6 +17,27 @@ declare const meta: {
17
17
  };
18
18
  };
19
19
  export default meta;
20
- export declare const NotVirtualized: () => import("react/jsx-runtime").JSX.Element;
21
- export declare const Virtualized: () => import("react/jsx-runtime").JSX.Element;
22
- export declare const ToolbarVirtualizedMenu: () => import("react/jsx-runtime").JSX.Element;
20
+ export declare const NotVirtualized: {
21
+ (): import("react/jsx-runtime").JSX.Element;
22
+ parameters: {
23
+ screenshot: {
24
+ skip: boolean;
25
+ };
26
+ };
27
+ };
28
+ export declare const Virtualized: {
29
+ (): import("react/jsx-runtime").JSX.Element;
30
+ parameters: {
31
+ screenshot: {
32
+ skip: boolean;
33
+ };
34
+ };
35
+ };
36
+ export declare const ToolbarVirtualizedMenu: {
37
+ (): import("react/jsx-runtime").JSX.Element;
38
+ parameters: {
39
+ screenshot: {
40
+ skip: boolean;
41
+ };
42
+ };
43
+ };
@@ -19,4 +19,4 @@ export interface SettingsItemProps extends SettingsItemBaseProps {
19
19
  modalProps?: SettingsItemModalProps;
20
20
  children?: ReactNode;
21
21
  }
22
- export declare const SettingsItem: ({ loading, variant, id, name, checked, onChange, modalProps, children, ...props }: SettingsItemProps) => import("react/jsx-runtime").JSX.Element;
22
+ export declare const SettingsItem: ({ loading, variant, id, name, title, value, description, checked, onChange, modalProps, children, ...props }: SettingsItemProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,13 +1,19 @@
1
- import { ListItemBaseProps, ListItemHeaderProps, ListItemLabelProps } from '..';
2
- export interface SettingsItemBaseProps extends ListItemBaseProps, ListItemHeaderProps {
1
+ import { ReactNode } from 'react';
2
+ import { BadgeProps, HeadingProps, ItemBaseProps, ItemLinkProps, ItemMediaProps } from '..';
3
+ export interface SettingsItemBaseProps extends ItemLinkProps {
3
4
  id?: string;
4
5
  groupId?: string;
5
- collapsible?: boolean;
6
- expanded?: boolean;
7
- icon?: ListItemHeaderProps['icon'];
8
- label?: ListItemHeaderProps['children'];
9
- title?: ListItemLabelProps['title'];
10
- value?: ListItemLabelProps['value'];
11
- description?: ListItemLabelProps['description'];
6
+ hidden?: boolean;
7
+ ref?: ItemBaseProps['ref'];
8
+ color?: ItemBaseProps['color'];
9
+ icon?: ItemMediaProps['icon'];
10
+ label?: ReactNode;
11
+ titleProps?: HeadingProps;
12
+ descriptionProps?: HeadingProps;
13
+ highlightWords?: string[];
14
+ badge?: BadgeProps;
15
+ linkIcon?: boolean;
16
+ controls?: ReactNode;
17
+ children?: ReactNode;
12
18
  }
13
- export declare const SettingsItemBase: ({ ref, loading, color, size, expanded, icon, label, title, value, description, children, highlightWords, ...props }: SettingsItemBaseProps) => import("react/jsx-runtime").JSX.Element;
19
+ export declare const SettingsItemBase: ({ as, ref, hidden, loading, color, expanded, icon, label, titleProps, descriptionProps, children, highlightWords, badge, linkIcon, controls, ...rest }: SettingsItemBaseProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,11 @@
1
+ import { LinkProps as DsLinkProps } from '@digdir/designsystemet-react';
2
+ import * as React from 'react';
3
+ export type LinkSize = 'xs' | DsLinkProps['data-size'];
4
+ export type LinkProps = {
5
+ as?: React.ElementType;
6
+ size?: LinkSize;
7
+ } & Omit<DsLinkProps, 'asChild' | 'data-size'>;
8
+ export declare const Link: React.ForwardRefExoticComponent<{
9
+ as?: React.ElementType;
10
+ size?: LinkSize;
11
+ } & Omit<DsLinkProps, "data-size" | "asChild"> & React.RefAttributes<HTMLButtonElement>>;
@@ -1,2 +1,3 @@
1
1
  export * from './Typography';
2
2
  export * from './Heading';
3
+ export * from './Link';
@@ -11,6 +11,7 @@ export declare const DashboardPage: () => import("react/jsx-runtime").JSX.Elemen
11
11
  export declare const AccountsPage: () => import("react/jsx-runtime").JSX.Element;
12
12
  export declare const AccountsPageVirtualized: () => import("react/jsx-runtime").JSX.Element;
13
13
  export declare const AlertsPage: () => import("react/jsx-runtime").JSX.Element;
14
+ export declare const BookmarksPage: () => import("react/jsx-runtime").JSX.Element;
14
15
  export declare const SettingsPage: () => import("react/jsx-runtime").JSX.Element;
15
16
  export declare const ActivityLogPage: () => import("react/jsx-runtime").JSX.Element;
16
17
  export declare const UsersPage: () => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,49 @@
1
+ export interface ComparisonResult {
2
+ match: boolean;
3
+ mismatchedPixels: number;
4
+ totalPixels: number;
5
+ percentage: number;
6
+ error?: string;
7
+ baselineCreated?: boolean;
8
+ }
9
+ /**
10
+ * Compare two PNG screenshots pixel-by-pixel.
11
+ * - If baseline doesn't exist: auto-creates it from actual (first run)
12
+ * - If baseline exists: compares pixel-by-pixel and generates diff image on mismatch
13
+ *
14
+ * @param actualPath - Screenshot captured during test run (.screenshots-temp/actual/)
15
+ * @param baselinePath - Reference screenshot (lib/components/.../\_\_screenshots\_\_/)
16
+ * @param diffPath - Where to save diff image on mismatch (.screenshots-temp/diff/)
17
+ * @param threshold - Pixel matching threshold (0-1), defaults to 0.1
18
+ * @returns Comparison result with match status and pixel difference details
19
+ */
20
+ export declare function compareScreenshots(actualPath: string, baselinePath: string, diffPath: string, threshold?: number): Promise<ComparisonResult>;
21
+ /**
22
+ * Clean up temporary screenshot directories created during testing.
23
+ */
24
+ export declare function cleanupTemporaryFiles(): Promise<void>;
25
+ interface ComparisonFailure {
26
+ testName: string;
27
+ actualPath: string;
28
+ baselinePath: string;
29
+ diffPath: string;
30
+ percentage: number;
31
+ mismatchedPixels: number;
32
+ totalPixels: number;
33
+ error?: string;
34
+ }
35
+ /**
36
+ * Compare all captured screenshots against baselines.
37
+ * - Baselines are stored in component-local \_\_screenshots\_\_ directories
38
+ * - If baseline doesn't exist, it's auto-created from the actual screenshot
39
+ * - Diff images are saved to .screenshots-temp/diff/ for failed comparisons
40
+ *
41
+ * @param filterPattern - Optional pattern to filter screenshots (e.g., "Button")
42
+ * @returns Summary of passed tests, failures, and newly created baselines
43
+ */
44
+ export declare function compareAllScreenshots(filterPattern?: string): Promise<{
45
+ passed: number;
46
+ failed: ComparisonFailure[];
47
+ baselinesCreated: number;
48
+ }>;
49
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@altinn/altinn-components",
3
- "version": "0.57.3",
3
+ "version": "0.58.1",
4
4
  "main": "dist/index.js",
5
5
  "files": [
6
6
  "dist/",
@@ -38,7 +38,9 @@
38
38
  "@storybook/addon-vitest": "10.2.10",
39
39
  "@storybook/react-vite": "10.2.10",
40
40
  "@testing-library/react": "^16.3.0",
41
+ "@storycap-testrun/browser": "^2.0.0",
41
42
  "@types/node": "^25.0.7",
43
+ "@types/pngjs": "^6.0.5",
42
44
  "@types/react": "^19.1.5",
43
45
  "@types/react-dom": "^19.1.5",
44
46
  "@vitejs/plugin-react-swc": "^3.9.0",
@@ -49,18 +51,20 @@
49
51
  "axe-playwright": "^2.1.0",
50
52
  "glob": "^13.0.6",
51
53
  "lint-staged": "^15.5.2",
54
+ "pixelmatch": "^7.1.0",
52
55
  "playwright": "^1.57.0",
56
+ "pngjs": "^7.0.0",
53
57
  "rollup-preserve-directives": "^1.1.3",
54
58
  "storybook": "10.2.10",
55
59
  "storybook-addon-tag-badges": "^3.0.4",
56
60
  "storybook-addon-theme-provider": "^0.2.10",
57
61
  "tsx": "^4.21.0",
58
62
  "typescript": "^5.8.3",
59
- "vite": "7.3.1",
63
+ "vite": "7.3.2",
60
64
  "vite-plugin-dts": "^4.5.4",
61
65
  "vite-plugin-lib-inject-css": "^2.2.2",
62
66
  "vite-plugin-static-copy": "^2.3.2",
63
- "vitest": "4.0.16"
67
+ "vitest": "4.0.18"
64
68
  },
65
69
  "peerDependencies": {
66
70
  "react": ">=18.3.1 || ^19.0.0",
@@ -87,6 +91,9 @@
87
91
  "ci:build-storybook": "storybook build --quiet",
88
92
  "test-storybook": "vitest --run --project=storybook",
89
93
  "test-storybook-watch": "vitest --project=storybook",
94
+ "test:screenshots": "rm -rf .screenshots-temp/actual && SCREENSHOT_MODE=test vitest --run --project=storybook && node --import tsx lib/test-utils/screenshot-compare.ts",
95
+ "test:screenshots:filter": "bash scripts/test-screenshots-filter.sh",
96
+ "test:screenshots:regenerate-all": "node --import tsx scripts/regenerate-screenshots.ts",
90
97
  "ci:test-storybook": "pnpm dlx concurrently -k -s first \"pnpm storybook\" \"pnpm dlx wait-on http://localhost:6006 && pnpm test-storybook\"",
91
98
  "install:browsers": "pnpm exec playwright install",
92
99
  "build-tokens": "node --import tsx scripts/build-tokens.ts && pnpm biome check ./lib/css/tokens/design-tokens-build/. --write"