nve-designsystem 0.1.13 → 0.1.14

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 (178) hide show
  1. package/package.json +4 -46
  2. package/.eslintignore +0 -8
  3. package/.eslintrc.js +0 -35
  4. package/.gitattributes +0 -6
  5. package/.github/workflows/azure-static-web-app-kind-mushroom-03c272603.yml +0 -52
  6. package/.github/workflows/chromatic.yml +0 -30
  7. package/.github/workflows/npm-publish.yml +0 -34
  8. package/.prettierrc +0 -6
  9. package/.storybook/DocTemp.mdx +0 -36
  10. package/.storybook/main.ts +0 -36
  11. package/.storybook/preview.ts +0 -18
  12. package/.vscode/settings.json +0 -30
  13. package/LICENSE +0 -21
  14. package/README.md +0 -209
  15. package/build/tokens.css +0 -135
  16. package/customtransforms/boxShadow.js +0 -13
  17. package/customtransforms/fixZeroes.js +0 -16
  18. package/customtransforms/fontFamilies.js +0 -21
  19. package/customtransforms/fontSizes.js +0 -12
  20. package/customtransforms/fontWeights.js +0 -51
  21. package/dist/css/nve.css +0 -363
  22. package/dist/css/nve_dark.css +0 -104
  23. package/dist/css/varsom.css +0 -410
  24. package/dist/css/varsom_dark.css +0 -104
  25. package/doc/components.md +0 -14
  26. package/doc/nve-button.md +0 -93
  27. package/doc/nve-checkbox-group.md +0 -13
  28. package/doc/nve-checkbox.md +0 -78
  29. package/doc/nve-dialog.md +0 -79
  30. package/doc/nve-divider.md +0 -27
  31. package/doc/nve-dropdown.md +0 -65
  32. package/doc/nve-icon.md +0 -10
  33. package/doc/nve-input.md +0 -121
  34. package/doc/nve-label.md +0 -19
  35. package/doc/nve-menu-item.md +0 -59
  36. package/doc/nve-menu.md +0 -34
  37. package/doc/nve-radio-button.md +0 -50
  38. package/doc/nve-radio-group.md +0 -72
  39. package/doc/nve-radio.md +0 -43
  40. package/doc/nve-spinner.md +0 -32
  41. package/doc/nve-tooltip.md +0 -65
  42. package/index.html +0 -19
  43. package/loader/cdn.js +0 -3
  44. package/loader/index.cjs.js +0 -3
  45. package/loader/index.d.ts +0 -21
  46. package/loader/index.es2017.js +0 -3
  47. package/loader/index.js +0 -4
  48. package/loader/package.json +0 -11
  49. package/public/vite.svg +0 -1
  50. package/scripts/build.js +0 -29
  51. package/scripts/nextTask.js +0 -20
  52. package/scripts/prepublish.js +0 -40
  53. package/src/assets/lit.svg +0 -1
  54. package/src/components/nve-alert/nve-alert.component.ts +0 -34
  55. package/src/components/nve-alert/nve-alert.demo.ts +0 -96
  56. package/src/components/nve-alert/nve-alert.styles.ts +0 -183
  57. package/src/components/nve-button/nve-button.component.ts +0 -28
  58. package/src/components/nve-button/nve-button.demo.ts +0 -180
  59. package/src/components/nve-button/nve-button.styles.ts +0 -111
  60. package/src/components/nve-checkbox/nve-checkbox.component.ts +0 -26
  61. package/src/components/nve-checkbox/nve-checkbox.demo.ts +0 -54
  62. package/src/components/nve-checkbox/nve-checkbox.styles.ts +0 -66
  63. package/src/components/nve-checkbox-group/nve-checkbox-group.component.ts +0 -95
  64. package/src/components/nve-checkbox-group/nve-checkbox-group.demo.ts +0 -126
  65. package/src/components/nve-checkbox-group/nve-checkbox-group.styles.ts +0 -35
  66. package/src/components/nve-dialog/nve-dialog-styles.ts +0 -51
  67. package/src/components/nve-dialog/nve-dialog.component.ts +0 -77
  68. package/src/components/nve-dialog/nve-dialog.demo.ts +0 -117
  69. package/src/components/nve-divider/nve-divider.component.ts +0 -32
  70. package/src/components/nve-dropdown/nve-dropdown.component.ts +0 -61
  71. package/src/components/nve-dropdown/nve-dropdown.demo.ts +0 -27
  72. package/src/components/nve-dropdown/nve-dropdown.styles.ts +0 -8
  73. package/src/components/nve-icon/nve-icon.component.ts +0 -42
  74. package/src/components/nve-input/nve-input.component.ts +0 -41
  75. package/src/components/nve-input/nve-input.demo.ts +0 -162
  76. package/src/components/nve-input/nve-input.styles.ts +0 -74
  77. package/src/components/nve-label/nve-label.component.ts +0 -82
  78. package/src/components/nve-label/nve-label.demo.ts +0 -93
  79. package/src/components/nve-label/nve-label.styles.ts +0 -46
  80. package/src/components/nve-menu/nve-menu.component.ts +0 -21
  81. package/src/components/nve-menu/nve-menu.styles.ts +0 -10
  82. package/src/components/nve-menu-item/nve-menu-item.component.ts +0 -53
  83. package/src/components/nve-menu-item/nve-menu-item.demo.ts +0 -111
  84. package/src/components/nve-menu-item/nve-menu-item.styles.ts +0 -109
  85. package/src/components/nve-radio/nve-radio.component.ts +0 -23
  86. package/src/components/nve-radio/nve-radio.demo.ts +0 -113
  87. package/src/components/nve-radio/nve-radio.styles.ts +0 -57
  88. package/src/components/nve-radio-button/nve-radio-button.component.ts +0 -18
  89. package/src/components/nve-radio-group/nve-radio-group.component.ts +0 -193
  90. package/src/components/nve-radio-group/nve-radio-group.styles.ts +0 -53
  91. package/src/components/nve-spinner/nve-spinner.component.ts +0 -29
  92. package/src/components/nve-tooltip/nve-tooltip.component.ts +0 -20
  93. package/src/components/nve-tooltip/nve-tooltip.demo.ts +0 -38
  94. package/src/components.d.ts +0 -24
  95. package/src/index.ts +0 -15
  96. package/src/main.ts +0 -34
  97. package/src/stories/Configure.mdx +0 -364
  98. package/src/stories/NveCheckbox.stories.ts +0 -29
  99. package/src/stories/NveCheckbox.ts +0 -20
  100. package/src/stories/NveCheckboxGroup.stories.ts +0 -38
  101. package/src/stories/NveCheckboxGroup.ts +0 -27
  102. package/src/stories/NveDialog.stories.ts +0 -131
  103. package/src/stories/NveDialog.ts +0 -23
  104. package/src/stories/NveDropdown.stories.ts +0 -32
  105. package/src/stories/NveDropdown.ts +0 -33
  106. package/src/stories/assets/accessibility.png +0 -0
  107. package/src/stories/assets/accessibility.svg +0 -5
  108. package/src/stories/assets/addon-library.png +0 -0
  109. package/src/stories/assets/assets.png +0 -0
  110. package/src/stories/assets/context.png +0 -0
  111. package/src/stories/assets/discord.svg +0 -15
  112. package/src/stories/assets/docs.png +0 -0
  113. package/src/stories/assets/figma-plugin.png +0 -0
  114. package/src/stories/assets/github.svg +0 -3
  115. package/src/stories/assets/share.png +0 -0
  116. package/src/stories/assets/styling.png +0 -0
  117. package/src/stories/assets/testing.png +0 -0
  118. package/src/stories/assets/theming.png +0 -0
  119. package/src/stories/assets/tutorials.svg +0 -12
  120. package/src/stories/assets/youtube.svg +0 -4
  121. package/src/stories/nve-alert/NveAlert.stories.ts +0 -40
  122. package/src/stories/nve-alert/NveAlert.ts +0 -58
  123. package/src/stories/nve-button/NveButton.stories.ts +0 -76
  124. package/src/stories/nve-button/NveButton.ts +0 -29
  125. package/src/stories/nve-input/NveInput.stories.ts +0 -50
  126. package/src/stories/nve-input/NveInput.ts +0 -22
  127. package/src/stories/nve-label/NveLabel.stories.ts +0 -56
  128. package/src/stories/nve-label/NveLabel.ts +0 -21
  129. package/src/stories/nve-radio/NveRadio.stories.ts +0 -47
  130. package/src/stories/nve-radio/NveRadio.ts +0 -26
  131. package/src/styles/global.css +0 -57
  132. package/src/styles/testsite.css +0 -54
  133. package/src/utils/slot.ts +0 -113
  134. package/src/utils/systemLibraryCustomization.ts +0 -110
  135. package/src/utils/tabbable.ts +0 -132
  136. package/src/utils/watch.ts +0 -60
  137. package/src/vite-env.d.ts +0 -1
  138. package/tokens/$metadata.json +0 -15
  139. package/tokens/$themes.json +0 -753
  140. package/tokens/Theme/nve_dark.json +0 -494
  141. package/tokens/Theme/nve_light.json +0 -495
  142. package/tokens/Theme/varsom_dark.json +0 -494
  143. package/tokens/Theme/varsom_light.json +0 -503
  144. package/tokens/private.json +0 -564
  145. package/tokens/public/device/base.json +0 -1056
  146. package/tokens/public/device/desktop.json +0 -1
  147. package/tokens/public/device/desktop_lg.json +0 -1
  148. package/tokens/public/device/mobile.json +0 -1
  149. package/tokens/public/device/mobile_sm.json +0 -1
  150. package/tokens/public/device/tablet.json +0 -1
  151. package/transform.js +0 -130
  152. package/tsconfig.json +0 -26
  153. package/vite.config.ts +0 -22
  154. /package/{dist/components → components}/nve-alert/nve-alert.component.d.ts +0 -0
  155. /package/{dist/components → components}/nve-button/nve-button.component.d.ts +0 -0
  156. /package/{dist/components → components}/nve-checkbox/nve-checkbox.component.d.ts +0 -0
  157. /package/{dist/components → components}/nve-checkbox-group/nve-checkbox-group.component.d.ts +0 -0
  158. /package/{dist/components → components}/nve-dialog/nve-dialog.component.d.ts +0 -0
  159. /package/{dist/components → components}/nve-divider/nve-divider.component.d.ts +0 -0
  160. /package/{dist/components → components}/nve-dropdown/nve-dropdown.component.d.ts +0 -0
  161. /package/{dist/components → components}/nve-icon/nve-icon.component.d.ts +0 -0
  162. /package/{dist/components → components}/nve-input/nve-input.component.d.ts +0 -0
  163. /package/{dist/components → components}/nve-label/nve-label.component.d.ts +0 -0
  164. /package/{dist/components → components}/nve-menu/nve-menu.component.d.ts +0 -0
  165. /package/{dist/components → components}/nve-menu-item/nve-menu-item.component.d.ts +0 -0
  166. /package/{dist/components → components}/nve-radio/nve-radio.component.d.ts +0 -0
  167. /package/{dist/components → components}/nve-radio-button/nve-radio-button.component.d.ts +0 -0
  168. /package/{dist/components → components}/nve-radio-group/nve-radio-group.component.d.ts +0 -0
  169. /package/{dist/components → components}/nve-spinner/nve-spinner.component.d.ts +0 -0
  170. /package/{dist/components → components}/nve-tooltip/nve-tooltip.component.d.ts +0 -0
  171. /package/{build/css → css}/nve.css +0 -0
  172. /package/{build/css → css}/nve_dark.css +0 -0
  173. /package/{build/css → css}/varsom.css +0 -0
  174. /package/{build/css → css}/varsom_dark.css +0 -0
  175. /package/{dist/index.d.ts → index.d.ts} +0 -0
  176. /package/{dist/nve-designsystem.js → nve-designsystem.js} +0 -0
  177. /package/{dist/nve-designsystem.umd.cjs → nve-designsystem.umd.cjs} +0 -0
  178. /package/{dist/vite.svg → vite.svg} +0 -0
package/package.json CHANGED
@@ -1,60 +1,18 @@
1
1
  {
2
2
  "name": "nve-designsystem",
3
- "version": "0.1.13",
3
+ "version": "0.1.14",
4
4
  "main": "./nve-designsystem.umd.cjs",
5
5
  "module": "./nve-designsystem.js",
6
6
  "type": "module",
7
7
  "types": "index.d.ts",
8
- "scripts": {
9
- "dev": "vite",
10
- "pack": "node scripts/prepublish.js pack",
11
- "publish": "node scripts/prepublish.js publish",
12
- "build": "node scripts/build.js",
13
- "preview": "vite preview",
14
- "lint": "eslint \"**/*.{js,ts}\"",
15
- "doc": "npx web-component-analyzer analyze src/components/**/*.ts --format markdown --outDir doc",
16
- "storybook": "storybook dev -p 6006",
17
- "build-storybook": "storybook build && npm run copy-files-storybook",
18
- "build:light": "node transform.js light",
19
- "build:dark": "node transform.js dark",
20
- "build:varsom_light": "node transform.js varsom",
21
- "build:varsom_dark": "node transform.js varsom_dark",
22
- "tokenbuild": "npm run build:light && npm run build:dark && npm run build:varsom_light && npm run build:varsom_dark",
23
- "copy-files-storybook": "cpy \"./build/css/*\" \"./src/styles/*\" storybook-static/assets"
24
- },
8
+ "scripts": {},
25
9
  "dependencies": {
26
10
  "@shoelace-style/shoelace": "^2.11.2",
27
11
  "chromatic": "^10.1.0",
28
12
  "lit": "^3.0.2"
29
13
  },
30
- "devDependencies": {
31
- "@mdx-js/loader": "^3.0.0",
32
- "@storybook/addon-docs": "^7.6.4",
33
- "@storybook/addon-essentials": "^7.6.4",
34
- "@storybook/addon-links": "^7.6.4",
35
- "@storybook/blocks": "^7.6.4",
36
- "@storybook/web-components": "^7.6.4",
37
- "@storybook/web-components-vite": "^7.6.4",
38
- "@typescript-eslint/eslint-plugin": "^6.12.0",
39
- "@typescript-eslint/parser": "^6.12.0",
40
- "cpy": "^11.0.0",
41
- "cpy-cli": "^5.0.0",
42
- "eslint": "^8.54.0",
43
- "eslint-config-prettier": "^9.0.0",
44
- "eslint-plugin-lit": "^1.10.1",
45
- "eslint-plugin-storybook": "^0.6.15",
46
- "prettier": "^3.1.0",
47
- "react": "^18.2.0",
48
- "react-dom": "^18.2.0",
49
- "storybook": "^7.6.4",
50
- "style-dictionary-utils": "^2.0.4",
51
- "typescript": "^5.2.2",
52
- "vite": "^5.0.0",
53
- "vite-plugin-css-injected-by-js": "^3.3.1",
54
- "vite-plugin-dts": "^3.7.0",
55
- "web-component-analyzer": "^2.0.0"
56
- },
14
+ "devDependencies": {},
57
15
  "overrides": {
58
16
  "prettier": "^3.1.0"
59
17
  }
60
- }
18
+ }
package/.eslintignore DELETED
@@ -1,8 +0,0 @@
1
- /dist
2
- /node_modules
3
- .eslintrc.js
4
- /vite.config.ts
5
- /tokens
6
- /www
7
- /build
8
- /loader
package/.eslintrc.js DELETED
@@ -1,35 +0,0 @@
1
- module.exports = {
2
- "env": {
3
- "browser": true,
4
- "es2021": true
5
- },
6
- "extends": [
7
- "eslint:recommended",
8
- "plugin:@typescript-eslint/recommended",
9
- "plugin:lit/recommended",
10
- "plugin:storybook/recommended"
11
- ],
12
- "overrides": [
13
- {
14
- "env": {
15
- "node": true
16
- },
17
- "files": [
18
- ".eslintrc.{js,cjs}"
19
- ],
20
- "parserOptions": {
21
- "sourceType": "script"
22
- }
23
- }
24
- ],
25
- "parser": "@typescript-eslint/parser",
26
- "parserOptions": {
27
- "ecmaVersion": "latest",
28
- "sourceType": "module"
29
- },
30
- "plugins": [
31
- "@typescript-eslint"
32
- ],
33
- "rules": {
34
- }
35
- }
package/.gitattributes DELETED
@@ -1,6 +0,0 @@
1
- # Bytt ut <CR><LF> i alle tekstfiler i Windows med kun <LF> før de pushes (såkalt "LF normalization")
2
- * text=auto eof=lf
3
-
4
- # Generert API-dokumentasjon har kun <LF> som linjeskift, også i Windows.
5
- # Dette gjør at git tror alle filer er endret hver gang vi genererer dokumentasjon
6
- doc/nve*.md text eol=lf
@@ -1,52 +0,0 @@
1
- name: Azure Static Web Apps CI/CD
2
-
3
- on:
4
- push:
5
- branches:
6
- - main
7
- paths:
8
- - 'src/**'
9
- - 'stories/**'
10
- pull_request:
11
- types: [opened, synchronize, reopened, closed]
12
- branches:
13
- - main
14
- paths:
15
- - 'src/**'
16
-
17
- jobs:
18
- # Run when a pull request is created or updated
19
- build_and_deploy_pull_request:
20
- if: github.event_name == 'pull_request' && github.event.action != 'closed'
21
- runs-on: ubuntu-latest
22
- name: Build and Deploy Pull Request
23
- steps:
24
- - name: Checkout repository
25
- uses: actions/checkout@v4
26
- with:
27
- submodules: true
28
-
29
- - name: Build And Deploy
30
- id: builddeploy
31
- uses: Azure/static-web-apps-deploy@v1
32
- with:
33
- azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN }}
34
- repo_token: ${{ secrets.GITHUB_TOKEN }} # Used for Github integrations (i.e. PR comments)
35
- action: 'upload'
36
- app_location: '/'
37
- output_location: 'storybook-static'
38
- app_build_command: 'npm run build-storybook'
39
- ###### End of Repository/Build Configurations ######
40
- close_pull_request_job:
41
-
42
- close_pull_request_job:
43
- if: (github.event_name == 'pull_request' && github.event.action == 'closed') || (github.event.pull_request.merged == false && github.event.pull_request.merged_by == null)
44
- runs-on: ubuntu-latest
45
- name: Close Pull Request Job
46
- steps:
47
- - name: Close Pull Request
48
- id: closepullrequest
49
- uses: Azure/static-web-apps-deploy@v1
50
- with:
51
- azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN }}
52
- action: 'close'
@@ -1,30 +0,0 @@
1
- # Workflow name
2
- name: 'Chromatic Publish'
3
-
4
- # Event for the workflow
5
- on:
6
- push:
7
- branches:
8
- - main
9
- paths:
10
- - 'src/**'
11
- - '.storybook/**'
12
-
13
- # List of jobs
14
- jobs:
15
- test:
16
- # Operating System
17
- runs-on: ubuntu-latest
18
- # Job steps
19
- steps:
20
- - uses: actions/checkout@v3
21
- with:
22
- fetch-depth: 0
23
- - uses: actions/setup-node@v3
24
- with:
25
- node-version: 18
26
- cache: 'npm'
27
- - run: npm i
28
- - run: npm run build
29
- - run: npm run build-storybook
30
- - run: npx chromatic --project-token=${{ secrets.CHROMATIC_PROJECT_TOKEN }} --token=${{ secrets.GITHUB_TOKEN }} --storybook-build-dir=storybook-static --auto-accept-changes
@@ -1,34 +0,0 @@
1
- name: Publish package to npmjs
2
-
3
- on:
4
- push:
5
- branches:
6
- - main
7
- paths:
8
- - 'src/**'
9
- - 'build/**'
10
- workflow_dispatch:
11
-
12
- jobs:
13
- build:
14
- runs-on: ubuntu-latest
15
- steps:
16
- - uses: actions/checkout@v4
17
-
18
- # Setup .npmrc file to publish to npm
19
- - uses: actions/setup-node@v3
20
- with:
21
- node-version: '20.x'
22
- registry-url: 'https://registry.npmjs.org'
23
-
24
- - name: Build and Publish
25
- run: |
26
- npm i
27
- npm run build
28
- git config --global user.email "jobl@nve.no"
29
- git config --global user.name "Designsystem"
30
- npm version patch -m "Bump version to %s [skip ci]" --force
31
- git push --follow-tags
32
- npm publish
33
- env:
34
- NODE_AUTH_TOKEN: ${{ secrets.NPM_PUBLISH }}
package/.prettierrc DELETED
@@ -1,6 +0,0 @@
1
- {
2
- "singleQuote": true,
3
- "semi": true,
4
- "trailingComma": "es5",
5
- "printWidth": 120
6
- }
@@ -1,36 +0,0 @@
1
- import { Story, Meta, Title, Subtitle, Description, Primary, Controls, Stories } from '@storybook/blocks';
2
-
3
- <Meta isTemplate />
4
-
5
- <Title />
6
-
7
- # Default implementation
8
-
9
- <div style={{ display: 'flex' }}>
10
- <span style={{ margin: '1rem' }}>
11
- <Story name="Primary" height="50px">
12
- {() => <Primary />}
13
- </Story>
14
- </span>
15
- <span style={{ margin: '1rem' }}>
16
- <Story name="Secondary" height="50px">
17
- {() => <Primary />}
18
- </Story>
19
- </span>
20
- </div>
21
-
22
- <Primary />
23
-
24
- ## Inputs
25
-
26
- The component accepts the following inputs (props):
27
-
28
- <Controls />
29
-
30
- ---
31
-
32
- ## Additional variations
33
-
34
- Listed below are additional variations of the component.
35
-
36
- <Stories />
@@ -1,36 +0,0 @@
1
- import type { StorybookConfig } from '@storybook/web-components-vite';
2
-
3
- const globalCSSPath = process.env.NODE_ENV === 'production' ? '/assets/global.css' : '../src/styles/global.css';
4
-
5
- const varsomCSSPath = process.env.NODE_ENV === 'production' ? '/assets/varsom.css' : '../../../build/css/varsom.css';
6
-
7
- // we have to add another styling files after they will be in use
8
-
9
- const config: StorybookConfig = {
10
- stories: ['../src/**/*.mdx', '../src/**/*.stories.@(js|jsx|mjs|ts|tsx|mdx)'],
11
- addons: ['@storybook/addon-links', '@storybook/addon-essentials', '@storybook/addon-docs'],
12
- framework: {
13
- name: '@storybook/web-components-vite',
14
- options: {},
15
- },
16
- previewHead: (head) => `
17
- ${head}
18
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@shoelace-style/shoelace@2.12.0/cdn/themes/light.css" />
19
- <link rel="stylesheet" href="https://fonts.cdnfonts.com/css/source-sans-pro" />
20
- <link
21
- rel="stylesheet"
22
- href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200"
23
- />
24
- <link rel="stylesheet" href="${varsomCSSPath}" />
25
- <link rel="stylesheet" href="${globalCSSPath}" />
26
- <link
27
- rel="stylesheet"
28
- href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200"
29
- />
30
- `,
31
- docs: {
32
- autodocs: 'tag',
33
-
34
- },
35
- };
36
- export default config;
@@ -1,18 +0,0 @@
1
- import type { Preview } from '@storybook/web-components';
2
- import DocTemp from './../.storybook/DocTemp.mdx';
3
- const preview: Preview = {
4
- parameters: {
5
- docs: {
6
- //page: DocTemp, kan sette custom mdx-fil her.
7
- },
8
- actions: { argTypesRegex: '^on[A-Z].*' },
9
- controls: {
10
- matchers: {
11
- color: /(background|color)$/i,
12
- date: /Date$/i,
13
- },
14
- },
15
- },
16
- };
17
-
18
- export default preview;
@@ -1,30 +0,0 @@
1
- {
2
- "i18n-ally.localesPaths": ["src/locale"],
3
- "editor.rulers": [120],
4
- "editor.formatOnSave": true,
5
- "editor.formatOnSaveMode": "file",
6
- "editor.codeActionsOnSave": {
7
- "source.fixAll": "explicit",
8
- "source.organizeImports": "never"
9
- },
10
- "[json]": {
11
- "editor.defaultFormatter": "esbenp.prettier-vscode",
12
- "editor.formatOnSaveMode": "file"
13
- },
14
- "[css]": {
15
- "editor.defaultFormatter": "esbenp.prettier-vscode",
16
- "editor.formatOnSaveMode": "file"
17
- },
18
- "[ts]": {
19
- "editor.defaultFormatter": "esbenp.prettier-vscode",
20
- "editor.formatOnSaveMode": "file"
21
- },
22
- "[javascript]": {
23
- "editor.defaultFormatter": "esbenp.prettier-vscode",
24
- "editor.formatOnSaveMode": "file"
25
- },
26
- "[html]": {
27
- "editor.defaultFormatter": "esbenp.prettier-vscode",
28
- "editor.formatOnSaveMode": "file"
29
- }
30
- }
package/LICENSE DELETED
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2023 Norges vassdrags- og energidirektorat
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 DELETED
@@ -1,209 +0,0 @@
1
- # NVE Designsystem
2
-
3
- Dette repository inneholder css generert fra Figma-tokens og komponentbibliotek basert på Shoelace [( Shoelace dokumentasjon)](https://shoelace.style/).
4
- [Lenke til npm-pakke.](https://www.npmjs.com/package/nve-designsystem)
5
-
6
- ## Skal du bruke NVE designsystem? Denne seksjonen er for deg.
7
-
8
- ### Api-dokumentasjon
9
-
10
- [Her er dokumentasjon på hver komponent](./doc/components.md)
11
-
12
- ### **Oppsett i Vue**
13
-
14
- 1. Install pakke med `npm i nve-designsystem`.
15
-
16
- 2. I vite.config (lagre en ny fil hvis den ikke eksisterer i rot-mappe), legg inn isCustomElement som forteller Vue at det er en customElement, og dropp component resolution [(les mer her)](https://vuejs.org/guide/extras/web-components.html).
17
-
18
- ```js
19
- export default defineConfig({
20
- plugins: [
21
- vue({
22
- template: {
23
- transformAssetUrls,
24
- compilerOptions: {
25
- isCustomElement: (tag) => tag.includes('nve-'),
26
- },
27
- },
28
- }),
29
- ],
30
- });
31
- ```
32
-
33
- 3. I tillegg trenger du å importere en .css-fil for farge-tema i main.ts. Filene finnes i mappa `nve-designsystem/build/css/`. For NVE-tema, bruk:
34
-
35
- ```ts
36
- import 'nve-designsystem/dist/css/nve.css';
37
- ```
38
-
39
- For Varsom-tema, bruk:
40
-
41
- ```ts
42
- import 'nve-designsystem/dist/css/varsom.css';
43
- ```
44
-
45
- Du har også mulighet til å velge enten lyst eller mørkt tema. Lyst er standard.
46
-
47
- ### **Eksempel på bruk av komponent**
48
-
49
- ```html
50
- <template>
51
- <nve-button variant="primary" size="small" @click="send">Button</nve-button>
52
- </template>
53
- <script setup lang="ts">
54
- import { NveButton } from 'nve-designsystem';
55
- </script>
56
- ```
57
-
58
- Husk å alltid bruke både opening og closing tag individuelt, (`<nve-button />` fungerer ikke).
59
-
60
- ### **Storybook**
61
-
62
- Komponentene kan ses og testes i Storybook med ulike parametere og varianter: https://main--65322c4ee3062d1c117bb2d5.chromatic.com/
63
-
64
- ## Skal du utvikle NVE designsystem? Denne seksjonen er for deg.
65
-
66
- De fleste komponentene bygger på [Shoelace](https://shoelace.style/), men er tilpasset NVE Designsystem. Etterhvert vil de fleste Shoelace-komponenter få sin NVE-variant, men vi kommer også til å lage komponenter som ikke baseres på Shoelace. Vi anbefaler at du laster ned [kildekoden til Shoelace](https://github.com/shoelace-style/shoelace) og setter deg inn i [Lit](https://lit.dev/), som vi bruker som rammeverk.
67
-
68
- ### **Kjøremiljø**
69
-
70
- Prosjektet importerer Shoelace sin npm-pakke. Kjør `npm run dev` for utvikling.
71
- For å teste en komponent i main.ts må man huske å legge til script tag med komponenten i index.html fila som f.eks. <script type="module" src="/src/nve-button.ts"></script>
72
-
73
- ### **Mappe struktur**
74
-
75
- Ved å lage en ny komponent opprett en mappe under src/components med komponent navn. Fil som inneholder selve komponent burde ha
76
-
77
- - .component.ts suffiks på fil sin inneholder selve komponent f.eks. /components/nve-component/nve-component.component
78
- - .styles.ts på filer med styling f.eks. /components/nve-component/nve-component.styles.ts
79
- - .demo.ts på filer som skal demonstrere komponent (til utviklere) f.eks. /components/nve-component/nve-component.demo.ts
80
-
81
- ### **Hvordan vi bygger komponenter**
82
- Vi setter reflect: true på alle properties i komponenter (se eksempel under) for å kunne se properties som oppdateres i DOMen. Gjelder reaktive applikasjoner.
83
- ```js
84
- @property({ reflect: true }) title: string = '';
85
- ```
86
-
87
- ### **Komponent eksport**
88
-
89
- Komponenter skal eksponeres i src/index.ts fila med
90
-
91
- ```js
92
- export { default as NveComponent } from './components/nve-component/nve-component.component';
93
- ```
94
-
95
- ### **Styling**
96
-
97
- Når vi styler shoelace-komponenter kan vi enten overskrive Shoelace sine css-klasser eller bruke parts i shadow-DOM.
98
- Bruk helst parts fordi koden blir lettere å lese.
99
- Dette:
100
-
101
- ```css
102
- ::part(control) {
103
- color: red;
104
- }
105
- ```
106
-
107
- ser bedre ut enn dette:
108
-
109
- ```css
110
- .checkbox checkbox--medium checkbox__control {
111
- color: red;
112
- }
113
- ```
114
-
115
- Hvis det ikke er mulig å style med ::part, bruk css-klasser.
116
-
117
- ### **Typografi**
118
-
119
- Det finnes tokens for typografi i Figma.
120
- Sett Figma i utviklermodus og klikk på en tekst.
121
- I typografi-seksjonen til høyre ser vi css'en som er generert. Vi skal ikke bruke selve css'en, men <b>kommentaren</b> over css'en gir et hint om navnet på tokenet. Eksempel i Figma:
122
-
123
- ```css
124
- color: var(--neutrals-foreground-mute, #3c3f44);
125
-
126
- /* Label/small */
127
- font-family: Source Sans Pro;
128
- font-size: 1rem;
129
- font-style: normal;
130
- font-weight: 600;
131
- line-height: 110%; /* 1.1rem */
132
- ```
133
-
134
- Kommentaren `/* Label/small */` betyr at vi skal bruke css-variabelen `--label-small`, f.eks. slik:
135
-
136
- ```css
137
- .button-label {
138
- font: var(--label-small);
139
- }
140
- ```
141
-
142
- ### **Mapping av shoelace tokes til NVE-tokens**
143
-
144
- Det hadde vært fint om vi kunne sette en NVE-verdi for alle Shoelace-tokens. Men dette går ikke fordi strukturen i Shoelace og NVE Designsystem er forskjellig.
145
- Vi har satt NVE-verdier for en del Shoelace-tokens, og disse ligger i global.css.
146
- Foreslå gjerne flere Shoelace-tokens som kan mappes på denne måten.
147
-
148
- Vi trenger ikke å style:
149
-
150
- - fokus-tilstand på alle komponenter. Dette settes globalt
151
- - høyde på input-felter, knapper og select
152
- - border-radius på alle komponenter (med mindre border radius mangler på en Shoelace-komponent, men designsystemet spesifiserer border-radius)
153
- - bakgrunn, font-farge, font-størrelse, ikon-farge, ramme i input, select og textarea i både variantene filled og not filled
154
-
155
- ### **Test-app for designere når man lager en PR**
156
-
157
- Pull requests på komponenter skal godkjennes av designere. Derfor har vi satt opp en azure static app med Storybook. Denne bygges og kjøres når man lager en PR.
158
-
159
- Det er maks 10 apper som kan kjøres samtidig, så hvis det er flere enn 10 PR'er kan det være at appen ikke bygges. De skal slettes automatisk når en PR lukkes, men det er ikke alltid dette virker. I slike tilfeller må vi slette appene manuelt i Azure-portalen. Appene ligger i denne ressursgruppa: TEST-Designsystemet-RG.
160
-
161
- ### Dokumentasjon
162
-
163
- - Vi dokumenterer på norsk
164
- - Alle komponenter dokumenteres med JsDoc-tags i koden. Alt som er tilgjengelig for de som bruker komponentene skal dokumenteres, dvs. alle public klasser, interfaces, properties/attributter, metoder, events, slots, css-parts og css-properties. [Her er noen tips.](https://github.com/runem/web-component-analyzer#-how-to-document-your-components-using-jsdoc)
165
- Vi bruker [Web Component Analyzer](https://github.com/runem/web-component-analyze) til å generere API-dokumentasjon.
166
- - Generer .MD-filer med `npm run doc` og sjekk inn de genererte filene sammen med koden. Om du har laget nye komponenter, legg dem til i [denne lista](./doc/components.md).
167
-
168
- ### **Bygge css**
169
-
170
- For å bygge css filer som inneholder verdier basert på tokens fra Figma, kjør følgende kommando: "npm run tokenbuild." <br>
171
-
172
- ### **npm**
173
-
174
- For å publisere på npm, må man oppdatere versjonsnr. i package.json og package-lock.json. Deretter kjør kommando `npm publish --access public`. Dette krever at man er innlogget på npm. For at CSS-variabler skal være tilgjengelig i npm-pakken, må css-filer kopieres. Dette gjøres ved å kjøre kommando `npm run copy-files`.
175
-
176
- ### **Kjøremiljø**
177
-
178
- Prosjektet importerer Shoelace sin npm-pakke. Kjør `npm run dev` for utvikling.
179
- For å teste en komponent i main.ts må man huske å legge til script tag med komponenten i index.html fila som f.eks. <script type="module" src="/src/nve-button.ts"></script>
180
-
181
- ### **Test pakke lokalt**
182
-
183
- Før man pusher til main er det lurt å teste pakke lokalt. Med `npm run pack` kan man teste hvordan pakken oppfører seg akkurat på samme måte som etter publisering. For å teste en nve-designsystem pakke lokalt:
184
-
185
- 1. Kjør `npm run build`
186
- 2. Kjør `npm run pack`. En .tgz fil med pakken navn og versjon burde dukke opp i dist mappe
187
- 3. Åpen et annet prosjekt hvor du kan teste nve-designsystem pakken
188
- 4. Kjør `npm i` <nve-designsystem-x.y.z.tgz med full sti>`
189
- 5. Importer komponent i prosjektet og sjekk om alt fungerer som det burde
190
-
191
- NB! Vi lager pakken i dist mappe fordi det er enklere å strukturere hvordan pakken skal se ut når man laster den ned. Vi prøvde med `exports` og `files` i package.json men det ga oss ikke result vi var fornøyd med.
192
-
193
- ### Storybook
194
-
195
- For å kjøre Storybook lokalt, kjør `npm run storybook`
196
-
197
- Det skal opprettes en story for hver nye komponent som lages. Story opprettes på følgende måte: <br>
198
-
199
- <ul>
200
- <li>Opprett en mappe for komponenten i mappen stories</li>
201
- <li>Opprett en fil med filnavn "NavnPåKomponent.stories.ts." F.eks. NveButton.stories.ts.</li>
202
- <li>Se på eksisterende stories-filer og bruk samme oppsett </li>
203
- <li>Storbyook lager toggle-buttons for boolean verdier. For dropdown-meny må man selv definere alternativene </li>
204
- <li>Komponent-filen, f.eks. NavnPåKomponent.ts må eksportere props. Se eksisterende filer for eksempel (export interface NavnPåKomponentProps)</li>
205
- <li>Minimum et eksempel på komponent må opprettes og eksporteres i stories-filen, f.eks. "export const Primary..." for Primary-vaiant av NveButton</li>
206
- <li>Informasjon om komponenten (fra Figma og ev. ekstra info) kan legges inn i stories-files under parameters -> docs --> description --> component</li>
207
- </ul>
208
-
209
- For å publisere Storybook på Chromatic, kjør `npm run build; npm run build-storybook`. Deretter må det kjøres en kommando med project token fra Chromatic: `npx chromatic --project-token=\<project-token\>`