@ks-digital/designsystem-react 0.0.1-alpha.0

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 (52) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +49 -0
  3. package/eslint.config.mjs +12 -0
  4. package/package.json +25 -0
  5. package/project.json +8 -0
  6. package/src/components/Alert/Alert.tsx +2 -0
  7. package/src/components/Avatar/Avatar.tsx +2 -0
  8. package/src/components/Badge/Badge.tsx +2 -0
  9. package/src/components/Breadcrumbs/Breadcrumbs.tsx +5 -0
  10. package/src/components/Button/Button.tsx +2 -0
  11. package/src/components/Card/Card.tsx +2 -0
  12. package/src/components/Checkbox/Checkbox.tsx +2 -0
  13. package/src/components/Chip/Chip.tsx +23 -0
  14. package/src/components/Details/Details.tsx +2 -0
  15. package/src/components/Dialog/Dialog.tsx +2 -0
  16. package/src/components/Divider/Divider.tsx +2 -0
  17. package/src/components/Dropdown/Dropdown.tsx +2 -0
  18. package/src/components/ErrorSummary/ErrorSummary.tsx +5 -0
  19. package/src/components/Field/Field.tsx +2 -0
  20. package/src/components/Fieldset/Fieldset.tsx +2 -0
  21. package/src/components/Heading/Heading.tsx +2 -0
  22. package/src/components/Input/Input.tsx +2 -0
  23. package/src/components/Label/Label.tsx +2 -0
  24. package/src/components/Link/Link.tsx +2 -0
  25. package/src/components/List/List.tsx +19 -0
  26. package/src/components/Loaders/index.tsx +2 -0
  27. package/src/components/Loaders/skeleton/Skeleton.tsx +2 -0
  28. package/src/components/Loaders/spinner/Spinner.tsx +2 -0
  29. package/src/components/MultiSuggestion/MultiSuggestion.tsx +33 -0
  30. package/src/components/Pagination/Pagination.tsx +2 -0
  31. package/src/components/Paragraph/Paragraph.tsx +2 -0
  32. package/src/components/Popover/Popover.tsx +2 -0
  33. package/src/components/Radio/Radio.tsx +2 -0
  34. package/src/components/Search/Search.tsx +2 -0
  35. package/src/components/Select/Select.tsx +2 -0
  36. package/src/components/SkipLink/SkipLink.tsx +2 -0
  37. package/src/components/Suggestion/Suggestion.tsx +29 -0
  38. package/src/components/Switch/Switch.tsx +2 -0
  39. package/src/components/Table/Table.tsx +2 -0
  40. package/src/components/Tabs/Tabs.tsx +2 -0
  41. package/src/components/Tag/Tag.tsx +2 -0
  42. package/src/components/Textarea/Textarea.tsx +2 -0
  43. package/src/components/Textfield/Textfield.tsx +2 -0
  44. package/src/components/ToggleGroup/ToggleGroup.tsx +5 -0
  45. package/src/components/Tooltip/Tooltip.tsx +2 -0
  46. package/src/components/ValidationMessage/ValidationMessage.tsx +5 -0
  47. package/src/index.ts +42 -0
  48. package/src/react-types.d.ts +15 -0
  49. package/tsconfig.json +25 -0
  50. package/tsconfig.lib.json +23 -0
  51. package/tsconfig.spec.json +28 -0
  52. package/vite.config.ts +53 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 KS Digital
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,49 @@
1
+ # KS Digital Designsystem for React
2
+
3
+ This library provides React components for KS Digital, designed to align closely with the components from [Designsystemet.no](https://www.designsystemet.no/komponenter).
4
+
5
+ ## Installation (WIP)
6
+
7
+ Install the required packages using your preferred package manager:
8
+
9
+ ```bash
10
+ pnpm add @ks-digital/designsystem-react @ks-digital/designsystem-themes
11
+ ```
12
+
13
+ ## Setup
14
+
15
+ ### 1. Include the Inter Font
16
+
17
+ Add the Inter font to your `index.html`. This API supports the same parameters as the Google Fonts API, allowing you to customize the font weights as needed:
18
+
19
+ ```html
20
+ <link
21
+ href="https://static.fiks.ks.no/googlefonts/googleapis/css2?family=Inter&display=swap"
22
+ rel="stylesheet"
23
+ />
24
+ ```
25
+
26
+ ### 2. Import Base Styles and Themes
27
+
28
+ Import the base styles and the theme you want to use in your application:
29
+
30
+ ```javascript
31
+ import '@ks-digital/designsystem-themes/base.css'
32
+ import '@ks-digital/designsystem-themes/ledsagerbevis.css'
33
+ ```
34
+
35
+ ### 3. Use Components
36
+
37
+ Import and use the components you need. You can explore the available components at [Designsystemet.no](https://www.designsystemet.no/komponenter):
38
+
39
+ ```javascript
40
+ import { Button } from '@ks-digital/designsystem-react'
41
+
42
+ function MyComponent() {
43
+ return <Button data-size="lg">My Button</Button>
44
+ }
45
+ ```
46
+
47
+ ## Example
48
+
49
+ A complete example setup is available in the `react-demo-app` located under the `apps` folder.
@@ -0,0 +1,12 @@
1
+ import nx from '@nx/eslint-plugin'
2
+ import baseConfig from '../../eslint.config.mjs'
3
+
4
+ export default [
5
+ ...baseConfig,
6
+ ...nx.configs['flat/react'],
7
+ {
8
+ files: ['**/*.ts', '**/*.tsx', '**/*.js', '**/*.jsx'],
9
+ // Override or add rules here
10
+ rules: {},
11
+ },
12
+ ]
package/package.json ADDED
@@ -0,0 +1,25 @@
1
+ {
2
+ "name": "@ks-digital/designsystem-react",
3
+ "repository": {
4
+ "type": "git",
5
+ "url": "https://github.com/ks-no/designsystem.git",
6
+ "directory": "packages/react"
7
+ },
8
+ "version": "0.0.1-alpha.0",
9
+ "license": "MIT",
10
+ "private": false,
11
+ "publishConfig": {
12
+ "access": "public"
13
+ },
14
+ "type": "module",
15
+ "main": "./index.js",
16
+ "types": "./index.d.ts",
17
+ "dependencies": {
18
+ "@digdir/designsystemet-css": "1.0.5",
19
+ "@digdir/designsystemet-react": "1.0.5"
20
+ },
21
+ "peerDependencies": {
22
+ "react": "^19.0.0",
23
+ "react-dom": "^19.0.0"
24
+ }
25
+ }
package/project.json ADDED
@@ -0,0 +1,8 @@
1
+ {
2
+ "name": "@ks-digital/designsystem-react",
3
+ "$schema": "../../node_modules/nx/schemas/project-schema.json",
4
+ "sourceRoot": "packages/react/src",
5
+ "projectType": "library",
6
+ "tags": [],
7
+ "targets": {}
8
+ }
@@ -0,0 +1,2 @@
1
+ import { Alert, type AlertProps } from '@digdir/designsystemet-react'
2
+ export { Alert, AlertProps }
@@ -0,0 +1,2 @@
1
+ import { Avatar, type AvatarProps } from '@digdir/designsystemet-react'
2
+ export { Avatar, AvatarProps }
@@ -0,0 +1,2 @@
1
+ import { Badge, type BadgeProps } from '@digdir/designsystemet-react'
2
+ export { Badge, BadgeProps }
@@ -0,0 +1,5 @@
1
+ import {
2
+ Breadcrumbs,
3
+ type BreadcrumbsProps,
4
+ } from '@digdir/designsystemet-react'
5
+ export { Breadcrumbs, BreadcrumbsProps }
@@ -0,0 +1,2 @@
1
+ import { Button, type ButtonProps } from '@digdir/designsystemet-react'
2
+ export { Button, ButtonProps }
@@ -0,0 +1,2 @@
1
+ import { Card, type CardProps } from '@digdir/designsystemet-react'
2
+ export { Card, CardProps }
@@ -0,0 +1,2 @@
1
+ import { Checkbox, type CheckboxProps } from '@digdir/designsystemet-react'
2
+ export { Checkbox, CheckboxProps }
@@ -0,0 +1,23 @@
1
+ import {
2
+ Chip,
3
+ ChipButton,
4
+ type ChipButtonProps,
5
+ ChipCheckbox,
6
+ type ChipCheckboxProps,
7
+ ChipRadio,
8
+ type ChipRadioProps,
9
+ ChipRemovable,
10
+ type ChipRemovableProps,
11
+ } from '@digdir/designsystemet-react'
12
+
13
+ export {
14
+ Chip,
15
+ ChipButton,
16
+ ChipButtonProps,
17
+ ChipCheckbox,
18
+ ChipCheckboxProps,
19
+ ChipRadio,
20
+ ChipRadioProps,
21
+ ChipRemovable,
22
+ ChipRemovableProps,
23
+ }
@@ -0,0 +1,2 @@
1
+ import { Details, type DetailsProps } from '@digdir/designsystemet-react'
2
+ export { Details, DetailsProps }
@@ -0,0 +1,2 @@
1
+ import { Dialog, type DialogProps } from '@digdir/designsystemet-react'
2
+ export { Dialog, DialogProps }
@@ -0,0 +1,2 @@
1
+ import { Divider, type DividerProps } from '@digdir/designsystemet-react'
2
+ export { Divider, DividerProps }
@@ -0,0 +1,2 @@
1
+ import { Dropdown, type DropdownProps } from '@digdir/designsystemet-react'
2
+ export { Dropdown, DropdownProps }
@@ -0,0 +1,5 @@
1
+ import {
2
+ ErrorSummary,
3
+ type ErrorSummaryProps,
4
+ } from '@digdir/designsystemet-react'
5
+ export { ErrorSummary, ErrorSummaryProps }
@@ -0,0 +1,2 @@
1
+ import { Field, type FieldProps } from '@digdir/designsystemet-react'
2
+ export { Field, FieldProps }
@@ -0,0 +1,2 @@
1
+ import { Fieldset, type FieldsetProps } from '@digdir/designsystemet-react'
2
+ export { Fieldset, FieldsetProps }
@@ -0,0 +1,2 @@
1
+ import { Heading, type HeadingProps } from '@digdir/designsystemet-react'
2
+ export { Heading, HeadingProps }
@@ -0,0 +1,2 @@
1
+ import { Input, type InputProps } from '@digdir/designsystemet-react'
2
+ export { Input, InputProps }
@@ -0,0 +1,2 @@
1
+ import { Label, type LabelProps } from '@digdir/designsystemet-react'
2
+ export { Label, LabelProps }
@@ -0,0 +1,2 @@
1
+ import { Link, type LinkProps } from '@digdir/designsystemet-react'
2
+ export { Link, LinkProps }
@@ -0,0 +1,19 @@
1
+ import {
2
+ List,
3
+ ListOrdered,
4
+ type ListOrderedProps,
5
+ ListUnordered,
6
+ type ListUnorderedProps,
7
+ ListItem,
8
+ type ListItemProps,
9
+ } from '@digdir/designsystemet-react'
10
+
11
+ export {
12
+ List,
13
+ ListOrdered,
14
+ ListOrderedProps,
15
+ ListUnordered,
16
+ ListUnorderedProps,
17
+ ListItem,
18
+ ListItemProps,
19
+ }
@@ -0,0 +1,2 @@
1
+ export * from './spinner/Spinner'
2
+ export * from './skeleton/Skeleton'
@@ -0,0 +1,2 @@
1
+ import { Skeleton, type SkeletonProps } from '@digdir/designsystemet-react'
2
+ export { Skeleton, SkeletonProps }
@@ -0,0 +1,2 @@
1
+ import { Spinner, type SpinnerProps } from '@digdir/designsystemet-react'
2
+ export { Spinner, SpinnerProps }
@@ -0,0 +1,33 @@
1
+ import {
2
+ EXPERIMENTAL_MultiSuggestion,
3
+ EXPERIMENTAL_MultiSuggestionInput,
4
+ EXPERIMENTAL_MultiSuggestionList,
5
+ EXPERIMENTAL_MultiSuggestionOption,
6
+ EXPERIMENTAL_MultiSuggestionChips,
7
+ EXPERIMENTAL_MultiSuggestionEmpty,
8
+ EXPERIMENTAL_MultiSuggestionClear,
9
+ type MultiSuggestionProps,
10
+ type MultiSuggestionInputProps,
11
+ type MultiSuggestionListProps,
12
+ type MultiSuggestionOptionProps,
13
+ type MultiSuggestionChipsProps,
14
+ type MultiSuggestionEmptyProps,
15
+ type MultiSuggestionClearProps,
16
+ } from '@digdir/designsystemet-react'
17
+
18
+ export {
19
+ EXPERIMENTAL_MultiSuggestion,
20
+ EXPERIMENTAL_MultiSuggestionInput,
21
+ EXPERIMENTAL_MultiSuggestionList,
22
+ EXPERIMENTAL_MultiSuggestionOption,
23
+ EXPERIMENTAL_MultiSuggestionChips,
24
+ EXPERIMENTAL_MultiSuggestionEmpty,
25
+ EXPERIMENTAL_MultiSuggestionClear,
26
+ MultiSuggestionProps,
27
+ MultiSuggestionInputProps,
28
+ MultiSuggestionListProps,
29
+ MultiSuggestionOptionProps,
30
+ MultiSuggestionChipsProps,
31
+ MultiSuggestionEmptyProps,
32
+ MultiSuggestionClearProps,
33
+ }
@@ -0,0 +1,2 @@
1
+ import { Pagination, type PaginationProps } from '@digdir/designsystemet-react'
2
+ export { Pagination, PaginationProps }
@@ -0,0 +1,2 @@
1
+ import { Paragraph, type ParagraphProps } from '@digdir/designsystemet-react'
2
+ export { Paragraph, ParagraphProps }
@@ -0,0 +1,2 @@
1
+ import { Popover, type PopoverProps } from '@digdir/designsystemet-react'
2
+ export { Popover, PopoverProps }
@@ -0,0 +1,2 @@
1
+ import { Radio, type RadioProps } from '@digdir/designsystemet-react'
2
+ export { Radio, RadioProps }
@@ -0,0 +1,2 @@
1
+ import { Search, type SearchProps } from '@digdir/designsystemet-react'
2
+ export { Search, SearchProps }
@@ -0,0 +1,2 @@
1
+ import { Select, type SelectProps } from '@digdir/designsystemet-react'
2
+ export { Select, SelectProps }
@@ -0,0 +1,2 @@
1
+ import { SkipLink, type SkipLinkProps } from '@digdir/designsystemet-react'
2
+ export { SkipLink, SkipLinkProps }
@@ -0,0 +1,29 @@
1
+ import {
2
+ EXPERIMENTAL_Suggestion,
3
+ EXPERIMENTAL_SuggestionList,
4
+ EXPERIMENTAL_SuggestionInput,
5
+ EXPERIMENTAL_SuggestionEmpty,
6
+ EXPERIMENTAL_SuggestionOption,
7
+ EXPERIMENTAL_SuggestionClear,
8
+ type SuggestionProps,
9
+ type SuggestionListProps,
10
+ type SuggestionInputProps,
11
+ type SuggestionEmptyProps,
12
+ type SuggestionOptionProps,
13
+ type SuggestionClearProps,
14
+ } from '@digdir/designsystemet-react'
15
+
16
+ export {
17
+ EXPERIMENTAL_Suggestion,
18
+ EXPERIMENTAL_SuggestionList,
19
+ EXPERIMENTAL_SuggestionInput,
20
+ EXPERIMENTAL_SuggestionEmpty,
21
+ EXPERIMENTAL_SuggestionOption,
22
+ EXPERIMENTAL_SuggestionClear,
23
+ SuggestionProps,
24
+ SuggestionListProps,
25
+ SuggestionInputProps,
26
+ SuggestionEmptyProps,
27
+ SuggestionOptionProps,
28
+ SuggestionClearProps,
29
+ }
@@ -0,0 +1,2 @@
1
+ import { Switch, type SwitchProps } from '@digdir/designsystemet-react'
2
+ export { Switch, SwitchProps }
@@ -0,0 +1,2 @@
1
+ import { Table, type TableProps } from '@digdir/designsystemet-react'
2
+ export { Table, TableProps }
@@ -0,0 +1,2 @@
1
+ import { Tabs, type TabsProps } from '@digdir/designsystemet-react'
2
+ export { Tabs, TabsProps }
@@ -0,0 +1,2 @@
1
+ import { Tag, type TagProps } from '@digdir/designsystemet-react'
2
+ export { Tag, TagProps }
@@ -0,0 +1,2 @@
1
+ import { Textarea, type TextareaProps } from '@digdir/designsystemet-react'
2
+ export { Textarea, TextareaProps }
@@ -0,0 +1,2 @@
1
+ import { Textfield, type TextfieldProps } from '@digdir/designsystemet-react'
2
+ export { Textfield, TextfieldProps }
@@ -0,0 +1,5 @@
1
+ import {
2
+ ToggleGroup,
3
+ type ToggleGroupProps,
4
+ } from '@digdir/designsystemet-react'
5
+ export { ToggleGroup, ToggleGroupProps }
@@ -0,0 +1,2 @@
1
+ import { Tooltip, type TooltipProps } from '@digdir/designsystemet-react'
2
+ export { Tooltip, TooltipProps }
@@ -0,0 +1,5 @@
1
+ import {
2
+ ValidationMessage,
3
+ type ValidationMessageProps,
4
+ } from '@digdir/designsystemet-react'
5
+ export { ValidationMessage, ValidationMessageProps }
package/src/index.ts ADDED
@@ -0,0 +1,42 @@
1
+ import '@digdir/designsystemet-css'
2
+
3
+ export * from './react-types.d'
4
+ export * from './components/Alert/Alert'
5
+ export * from './components/Avatar/Avatar'
6
+ export * from './components/Badge/Badge'
7
+ export * from './components/Breadcrumbs/Breadcrumbs'
8
+ export * from './components/Button/Button'
9
+ export * from './components/Card/Card'
10
+ export * from './components/Checkbox/Checkbox'
11
+ export * from './components/Chip/Chip'
12
+ export * from './components/Details/Details'
13
+ export * from './components/Dialog/Dialog'
14
+ export * from './components/Divider/Divider'
15
+ export * from './components/Dropdown/Dropdown'
16
+ export * from './components/ErrorSummary/ErrorSummary'
17
+ export * from './components/Field/Field'
18
+ export * from './components/Fieldset/Fieldset'
19
+ export * from './components/Input/Input'
20
+ export * from './components/Link/Link'
21
+ export * from './components/List/List'
22
+ export * from './components/Loaders'
23
+ export * from './components/MultiSuggestion/MultiSuggestion'
24
+ export * from './components/Pagination/Pagination'
25
+ export * from './components/Popover/Popover'
26
+ export * from './components/Radio/Radio'
27
+ export * from './components/Search/Search'
28
+ export * from './components/Select/Select'
29
+ export * from './components/SkipLink/SkipLink'
30
+ export * from './components/Suggestion/Suggestion'
31
+ export * from './components/Switch/Switch'
32
+ export * from './components/Table/Table'
33
+ export * from './components/Tabs/Tabs'
34
+ export * from './components/Tag/Tag'
35
+ export * from './components/Textarea/Textarea'
36
+ export * from './components/Textfield/Textfield'
37
+ export * from './components/ToggleGroup/ToggleGroup'
38
+ export * from './components/Tooltip/Tooltip'
39
+ export * from './components/Paragraph/Paragraph'
40
+ export * from './components/ValidationMessage/ValidationMessage'
41
+ export * from './components/Label/Label'
42
+ export * from './components/Heading/Heading'
@@ -0,0 +1,15 @@
1
+ import type { Size } from '@digdir/designsystemet-react'
2
+ import type { Color } from '@digdir/designsystemet-react/colors'
3
+
4
+ /*
5
+ * Typing of data-size and data-color attributes in React components.
6
+ */
7
+ declare global {
8
+ namespace React {
9
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
10
+ interface HTMLAttributes<T> {
11
+ 'data-size'?: Size | (string & {})
12
+ 'data-color'?: Color | (string & {})
13
+ }
14
+ }
15
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,25 @@
1
+ {
2
+ "extends": "../../tsconfig.base.json",
3
+ "compilerOptions": {
4
+ "forceConsistentCasingInFileNames": true,
5
+ "strict": true,
6
+ "importHelpers": true,
7
+ "noImplicitOverride": true,
8
+ "noImplicitReturns": true,
9
+ "noFallthroughCasesInSwitch": true,
10
+ "noPropertyAccessFromIndexSignature": true,
11
+ "jsx": "react-jsx",
12
+ "resolveJsonModule": true,
13
+ "allowSyntheticDefaultImports": true
14
+ },
15
+ "files": [],
16
+ "include": [],
17
+ "references": [
18
+ {
19
+ "path": "./tsconfig.lib.json"
20
+ },
21
+ {
22
+ "path": "./tsconfig.spec.json"
23
+ }
24
+ ]
25
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "extends": "./tsconfig.json",
3
+ "compilerOptions": {
4
+ "outDir": "../../dist/out-tsc",
5
+ "declaration": true,
6
+ "types": ["node", "vite/client"]
7
+ },
8
+ "include": ["src/**/*.ts"],
9
+ "exclude": [
10
+ "vite.config.ts",
11
+ "vite.config.mts",
12
+ "vitest.config.ts",
13
+ "vitest.config.mts",
14
+ "src/**/*.test.ts",
15
+ "src/**/*.spec.ts",
16
+ "src/**/*.test.tsx",
17
+ "src/**/*.spec.tsx",
18
+ "src/**/*.test.js",
19
+ "src/**/*.spec.js",
20
+ "src/**/*.test.jsx",
21
+ "src/**/*.spec.jsx"
22
+ ]
23
+ }
@@ -0,0 +1,28 @@
1
+ {
2
+ "extends": "./tsconfig.json",
3
+ "compilerOptions": {
4
+ "outDir": "../../dist/out-tsc",
5
+ "types": [
6
+ "vitest/globals",
7
+ "vitest/importMeta",
8
+ "vite/client",
9
+ "node",
10
+ "vitest"
11
+ ]
12
+ },
13
+ "include": [
14
+ "vite.config.ts",
15
+ "vite.config.mts",
16
+ "vitest.config.ts",
17
+ "vitest.config.mts",
18
+ "src/**/*.test.ts",
19
+ "src/**/*.spec.ts",
20
+ "src/**/*.test.tsx",
21
+ "src/**/*.spec.tsx",
22
+ "src/**/*.test.js",
23
+ "src/**/*.spec.js",
24
+ "src/**/*.test.jsx",
25
+ "src/**/*.spec.jsx",
26
+ "src/**/*.d.ts"
27
+ ]
28
+ }
package/vite.config.ts ADDED
@@ -0,0 +1,53 @@
1
+ /// <reference types='vitest' />
2
+ import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin'
3
+ import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin'
4
+ import react from '@vitejs/plugin-react'
5
+ import * as path from 'path'
6
+ import { defineConfig } from 'vite'
7
+ import dts from 'vite-plugin-dts'
8
+
9
+ export default defineConfig(() => ({
10
+ root: __dirname,
11
+ cacheDir: '../../node_modules/.vite/packages/react',
12
+ plugins: [
13
+ react(),
14
+ nxViteTsPaths(),
15
+ nxCopyAssetsPlugin(['*.md']),
16
+ dts({
17
+ entryRoot: 'src',
18
+ tsconfigPath: path.join(__dirname, 'tsconfig.lib.json'),
19
+ }),
20
+ ],
21
+ // Configuration for building your library.
22
+ // See: https://vitejs.dev/guide/build.html#library-mode
23
+ build: {
24
+ outDir: '../../dist/packages/react',
25
+ emptyOutDir: true,
26
+ reportCompressedSize: true,
27
+ commonjsOptions: {
28
+ transformMixedEsModules: true,
29
+ },
30
+ lib: {
31
+ // Could also be a dictionary or array of multiple entry points.
32
+ entry: 'src/index.ts',
33
+ name: '@ks-digital/designsystem-react',
34
+ fileName: 'index',
35
+ formats: ['es' as const],
36
+ },
37
+ rollupOptions: {
38
+ // External packages that should not be bundled into your library.
39
+ external: ['react', 'react-dom'],
40
+ },
41
+ },
42
+ test: {
43
+ watch: false,
44
+ globals: true,
45
+ environment: 'node',
46
+ include: ['{src,tests}/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],
47
+ reporters: ['default'],
48
+ coverage: {
49
+ reportsDirectory: '../../coverage/packages/react',
50
+ provider: 'v8' as const,
51
+ },
52
+ },
53
+ }))