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.
- package/package.json +4 -46
- package/.eslintignore +0 -8
- package/.eslintrc.js +0 -35
- package/.gitattributes +0 -6
- package/.github/workflows/azure-static-web-app-kind-mushroom-03c272603.yml +0 -52
- package/.github/workflows/chromatic.yml +0 -30
- package/.github/workflows/npm-publish.yml +0 -34
- package/.prettierrc +0 -6
- package/.storybook/DocTemp.mdx +0 -36
- package/.storybook/main.ts +0 -36
- package/.storybook/preview.ts +0 -18
- package/.vscode/settings.json +0 -30
- package/LICENSE +0 -21
- package/README.md +0 -209
- package/build/tokens.css +0 -135
- package/customtransforms/boxShadow.js +0 -13
- package/customtransforms/fixZeroes.js +0 -16
- package/customtransforms/fontFamilies.js +0 -21
- package/customtransforms/fontSizes.js +0 -12
- package/customtransforms/fontWeights.js +0 -51
- package/dist/css/nve.css +0 -363
- package/dist/css/nve_dark.css +0 -104
- package/dist/css/varsom.css +0 -410
- package/dist/css/varsom_dark.css +0 -104
- package/doc/components.md +0 -14
- package/doc/nve-button.md +0 -93
- package/doc/nve-checkbox-group.md +0 -13
- package/doc/nve-checkbox.md +0 -78
- package/doc/nve-dialog.md +0 -79
- package/doc/nve-divider.md +0 -27
- package/doc/nve-dropdown.md +0 -65
- package/doc/nve-icon.md +0 -10
- package/doc/nve-input.md +0 -121
- package/doc/nve-label.md +0 -19
- package/doc/nve-menu-item.md +0 -59
- package/doc/nve-menu.md +0 -34
- package/doc/nve-radio-button.md +0 -50
- package/doc/nve-radio-group.md +0 -72
- package/doc/nve-radio.md +0 -43
- package/doc/nve-spinner.md +0 -32
- package/doc/nve-tooltip.md +0 -65
- package/index.html +0 -19
- package/loader/cdn.js +0 -3
- package/loader/index.cjs.js +0 -3
- package/loader/index.d.ts +0 -21
- package/loader/index.es2017.js +0 -3
- package/loader/index.js +0 -4
- package/loader/package.json +0 -11
- package/public/vite.svg +0 -1
- package/scripts/build.js +0 -29
- package/scripts/nextTask.js +0 -20
- package/scripts/prepublish.js +0 -40
- package/src/assets/lit.svg +0 -1
- package/src/components/nve-alert/nve-alert.component.ts +0 -34
- package/src/components/nve-alert/nve-alert.demo.ts +0 -96
- package/src/components/nve-alert/nve-alert.styles.ts +0 -183
- package/src/components/nve-button/nve-button.component.ts +0 -28
- package/src/components/nve-button/nve-button.demo.ts +0 -180
- package/src/components/nve-button/nve-button.styles.ts +0 -111
- package/src/components/nve-checkbox/nve-checkbox.component.ts +0 -26
- package/src/components/nve-checkbox/nve-checkbox.demo.ts +0 -54
- package/src/components/nve-checkbox/nve-checkbox.styles.ts +0 -66
- package/src/components/nve-checkbox-group/nve-checkbox-group.component.ts +0 -95
- package/src/components/nve-checkbox-group/nve-checkbox-group.demo.ts +0 -126
- package/src/components/nve-checkbox-group/nve-checkbox-group.styles.ts +0 -35
- package/src/components/nve-dialog/nve-dialog-styles.ts +0 -51
- package/src/components/nve-dialog/nve-dialog.component.ts +0 -77
- package/src/components/nve-dialog/nve-dialog.demo.ts +0 -117
- package/src/components/nve-divider/nve-divider.component.ts +0 -32
- package/src/components/nve-dropdown/nve-dropdown.component.ts +0 -61
- package/src/components/nve-dropdown/nve-dropdown.demo.ts +0 -27
- package/src/components/nve-dropdown/nve-dropdown.styles.ts +0 -8
- package/src/components/nve-icon/nve-icon.component.ts +0 -42
- package/src/components/nve-input/nve-input.component.ts +0 -41
- package/src/components/nve-input/nve-input.demo.ts +0 -162
- package/src/components/nve-input/nve-input.styles.ts +0 -74
- package/src/components/nve-label/nve-label.component.ts +0 -82
- package/src/components/nve-label/nve-label.demo.ts +0 -93
- package/src/components/nve-label/nve-label.styles.ts +0 -46
- package/src/components/nve-menu/nve-menu.component.ts +0 -21
- package/src/components/nve-menu/nve-menu.styles.ts +0 -10
- package/src/components/nve-menu-item/nve-menu-item.component.ts +0 -53
- package/src/components/nve-menu-item/nve-menu-item.demo.ts +0 -111
- package/src/components/nve-menu-item/nve-menu-item.styles.ts +0 -109
- package/src/components/nve-radio/nve-radio.component.ts +0 -23
- package/src/components/nve-radio/nve-radio.demo.ts +0 -113
- package/src/components/nve-radio/nve-radio.styles.ts +0 -57
- package/src/components/nve-radio-button/nve-radio-button.component.ts +0 -18
- package/src/components/nve-radio-group/nve-radio-group.component.ts +0 -193
- package/src/components/nve-radio-group/nve-radio-group.styles.ts +0 -53
- package/src/components/nve-spinner/nve-spinner.component.ts +0 -29
- package/src/components/nve-tooltip/nve-tooltip.component.ts +0 -20
- package/src/components/nve-tooltip/nve-tooltip.demo.ts +0 -38
- package/src/components.d.ts +0 -24
- package/src/index.ts +0 -15
- package/src/main.ts +0 -34
- package/src/stories/Configure.mdx +0 -364
- package/src/stories/NveCheckbox.stories.ts +0 -29
- package/src/stories/NveCheckbox.ts +0 -20
- package/src/stories/NveCheckboxGroup.stories.ts +0 -38
- package/src/stories/NveCheckboxGroup.ts +0 -27
- package/src/stories/NveDialog.stories.ts +0 -131
- package/src/stories/NveDialog.ts +0 -23
- package/src/stories/NveDropdown.stories.ts +0 -32
- package/src/stories/NveDropdown.ts +0 -33
- package/src/stories/assets/accessibility.png +0 -0
- package/src/stories/assets/accessibility.svg +0 -5
- package/src/stories/assets/addon-library.png +0 -0
- package/src/stories/assets/assets.png +0 -0
- package/src/stories/assets/context.png +0 -0
- package/src/stories/assets/discord.svg +0 -15
- package/src/stories/assets/docs.png +0 -0
- package/src/stories/assets/figma-plugin.png +0 -0
- package/src/stories/assets/github.svg +0 -3
- package/src/stories/assets/share.png +0 -0
- package/src/stories/assets/styling.png +0 -0
- package/src/stories/assets/testing.png +0 -0
- package/src/stories/assets/theming.png +0 -0
- package/src/stories/assets/tutorials.svg +0 -12
- package/src/stories/assets/youtube.svg +0 -4
- package/src/stories/nve-alert/NveAlert.stories.ts +0 -40
- package/src/stories/nve-alert/NveAlert.ts +0 -58
- package/src/stories/nve-button/NveButton.stories.ts +0 -76
- package/src/stories/nve-button/NveButton.ts +0 -29
- package/src/stories/nve-input/NveInput.stories.ts +0 -50
- package/src/stories/nve-input/NveInput.ts +0 -22
- package/src/stories/nve-label/NveLabel.stories.ts +0 -56
- package/src/stories/nve-label/NveLabel.ts +0 -21
- package/src/stories/nve-radio/NveRadio.stories.ts +0 -47
- package/src/stories/nve-radio/NveRadio.ts +0 -26
- package/src/styles/global.css +0 -57
- package/src/styles/testsite.css +0 -54
- package/src/utils/slot.ts +0 -113
- package/src/utils/systemLibraryCustomization.ts +0 -110
- package/src/utils/tabbable.ts +0 -132
- package/src/utils/watch.ts +0 -60
- package/src/vite-env.d.ts +0 -1
- package/tokens/$metadata.json +0 -15
- package/tokens/$themes.json +0 -753
- package/tokens/Theme/nve_dark.json +0 -494
- package/tokens/Theme/nve_light.json +0 -495
- package/tokens/Theme/varsom_dark.json +0 -494
- package/tokens/Theme/varsom_light.json +0 -503
- package/tokens/private.json +0 -564
- package/tokens/public/device/base.json +0 -1056
- package/tokens/public/device/desktop.json +0 -1
- package/tokens/public/device/desktop_lg.json +0 -1
- package/tokens/public/device/mobile.json +0 -1
- package/tokens/public/device/mobile_sm.json +0 -1
- package/tokens/public/device/tablet.json +0 -1
- package/transform.js +0 -130
- package/tsconfig.json +0 -26
- package/vite.config.ts +0 -22
- /package/{dist/components → components}/nve-alert/nve-alert.component.d.ts +0 -0
- /package/{dist/components → components}/nve-button/nve-button.component.d.ts +0 -0
- /package/{dist/components → components}/nve-checkbox/nve-checkbox.component.d.ts +0 -0
- /package/{dist/components → components}/nve-checkbox-group/nve-checkbox-group.component.d.ts +0 -0
- /package/{dist/components → components}/nve-dialog/nve-dialog.component.d.ts +0 -0
- /package/{dist/components → components}/nve-divider/nve-divider.component.d.ts +0 -0
- /package/{dist/components → components}/nve-dropdown/nve-dropdown.component.d.ts +0 -0
- /package/{dist/components → components}/nve-icon/nve-icon.component.d.ts +0 -0
- /package/{dist/components → components}/nve-input/nve-input.component.d.ts +0 -0
- /package/{dist/components → components}/nve-label/nve-label.component.d.ts +0 -0
- /package/{dist/components → components}/nve-menu/nve-menu.component.d.ts +0 -0
- /package/{dist/components → components}/nve-menu-item/nve-menu-item.component.d.ts +0 -0
- /package/{dist/components → components}/nve-radio/nve-radio.component.d.ts +0 -0
- /package/{dist/components → components}/nve-radio-button/nve-radio-button.component.d.ts +0 -0
- /package/{dist/components → components}/nve-radio-group/nve-radio-group.component.d.ts +0 -0
- /package/{dist/components → components}/nve-spinner/nve-spinner.component.d.ts +0 -0
- /package/{dist/components → components}/nve-tooltip/nve-tooltip.component.d.ts +0 -0
- /package/{build/css → css}/nve.css +0 -0
- /package/{build/css → css}/nve_dark.css +0 -0
- /package/{build/css → css}/varsom.css +0 -0
- /package/{build/css → css}/varsom_dark.css +0 -0
- /package/{dist/index.d.ts → index.d.ts} +0 -0
- /package/{dist/nve-designsystem.js → nve-designsystem.js} +0 -0
- /package/{dist/nve-designsystem.umd.cjs → nve-designsystem.umd.cjs} +0 -0
- /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.
|
|
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
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
package/.storybook/DocTemp.mdx
DELETED
|
@@ -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 />
|
package/.storybook/main.ts
DELETED
|
@@ -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;
|
package/.storybook/preview.ts
DELETED
|
@@ -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;
|
package/.vscode/settings.json
DELETED
|
@@ -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\>`
|