Files
web/packages/design-system/.storybook/preview.tsx
Erik Tiekstra 6a342aaa9e chore: generated design system css variables from updated json file
Approved-by: Matilda Landström
2025-10-30 12:27:16 +00:00

79 lines
2.3 KiB
TypeScript

import { withThemeByClassName } from '@storybook/addon-themes'
import type { Preview, ReactRenderer } from '@storybook/nextjs-vite'
import { IntlProvider } from 'react-intl'
import { reactIntl } from './reactIntl'
import '../lib/design-system-new-deprecated.css'
import '../lib/fonts.css'
import '../lib/normalize.css'
import '../lib/style.css'
export const themes = {
themes: {
Scandic: 'scandic',
'Scandic Go': 'scandic-go',
'Downtown Camper': 'downtown-camper',
'Grand Hotel': 'grand-hotel',
Haymarket: 'haymarket',
'Hotel Norge': 'hotel-norge',
Marski: 'marski',
'The Dock': 'the-dock',
},
defaultTheme: 'Scandic',
}
const preview: Preview = {
decorators: [
// Theme decorator
withThemeByClassName<ReactRenderer>(themes),
(Story) => (
// eslint-disable-next-line @typescript-eslint/no-explicit-any
<IntlProvider locale="en" {...(reactIntl as any)}>
<Story />
</IntlProvider>
),
],
initialGlobals: {
locale: reactIntl.defaultLocale,
locales: {
en: { icon: '🇬🇧', title: 'English', right: 'EN' },
sv: { icon: '🇸🇪', title: 'Svenska', right: 'SV' },
da: { icon: '🇩🇰', title: 'Dansk', right: 'DA' },
no: { icon: '🇳🇴', title: 'Norsk', right: 'NO' },
fi: { icon: '🇫🇮', title: 'Suomi', right: 'FI' },
de: { icon: '🇩🇪', title: 'Deutsch', right: 'DE' },
},
backgrounds: { value: 'scandicSubtle' },
},
parameters: {
reactIntl,
nextjs: {
appDirectory: true,
},
docs: {
toc: true,
},
controls: { matchers: { color: /(background|color)$/i, date: /Date$/i } },
options: {
storySort: {
order: ['Introduction', 'Global', 'Components', 'Compositions', '*'],
},
},
backgrounds: {
options: {
// 👇 Scandic
scandicPrimary: { name: 'Scandic Primary', value: '#FAF6F2' },
scandicSubtle: { name: 'Scandic Subtle', value: '#F2ECE6' },
scandicPrimaryDark: { name: 'Scandic Primary Dark', value: '#4D001B' },
// 👇 Default values
storybookDark: { name: 'Storybook Dark', value: '#333' },
storybookLight: { name: 'Storybook Light', value: '#F7F9F2' },
},
},
},
tags: ['autodocs'],
}
export default preview