fds-vue-core 2.1.4 → 2.1.6
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/components.d.ts +8 -0
- package/configs/tsconfig.base.json +2 -1
- package/dist/fds-vue-core.cjs.js +35 -15
- package/dist/fds-vue-core.cjs.js.map +1 -1
- package/dist/fds-vue-core.es.js +35 -15
- package/dist/fds-vue-core.es.js.map +1 -1
- package/dist/global-components.d.ts +35 -33
- package/package.json +23 -21
- package/src/.DS_Store +0 -0
- package/src/App.vue +133 -0
- package/src/apply.css +60 -0
- package/src/assets/icons.ts +517 -0
- package/src/components/Blocks/FdsBlockAlert/FdsBlockAlert.stories.ts +94 -0
- package/src/components/Blocks/FdsBlockAlert/FdsBlockAlert.vue +112 -0
- package/src/components/Blocks/FdsBlockAlert/types.ts +12 -0
- package/src/components/Blocks/FdsBlockContent/FdsBlockContent.stories.ts +110 -0
- package/src/components/Blocks/FdsBlockContent/FdsBlockContent.vue +66 -0
- package/src/components/Blocks/FdsBlockContent/types.ts +6 -0
- package/src/components/Blocks/FdsBlockExpander/FdsBlockExpander.stories.ts +123 -0
- package/src/components/Blocks/FdsBlockExpander/FdsBlockExpander.vue +87 -0
- package/src/components/Blocks/FdsBlockExpander/types.ts +8 -0
- package/src/components/Blocks/FdsBlockInfo/FdsBlockInfo.stories.ts +110 -0
- package/src/components/Blocks/FdsBlockInfo/FdsBlockInfo.vue +75 -0
- package/src/components/Blocks/FdsBlockInfo/types.ts +9 -0
- package/src/components/Blocks/FdsBlockLink/FdsBlockLink.css +9 -0
- package/src/components/Blocks/FdsBlockLink/FdsBlockLink.stories.ts +179 -0
- package/src/components/Blocks/FdsBlockLink/FdsBlockLink.vue +149 -0
- package/src/components/Blocks/FdsBlockLink/types.ts +14 -0
- package/src/components/Buttons/ButtonBaseProps.ts +18 -0
- package/src/components/Buttons/FdsButtonCopy/FdsButtonCopy.stories.ts +53 -0
- package/src/components/Buttons/FdsButtonCopy/FdsButtonCopy.vue +87 -0
- package/src/components/Buttons/FdsButtonCopy/types.ts +8 -0
- package/src/components/Buttons/FdsButtonDownload/FdsButtonDownload.stories.ts +111 -0
- package/src/components/Buttons/FdsButtonDownload/FdsButtonDownload.vue +187 -0
- package/src/components/Buttons/FdsButtonIcon/FdsButtonIcon.stories.ts +55 -0
- package/src/components/Buttons/FdsButtonIcon/FdsButtonIcon.vue +57 -0
- package/src/components/Buttons/FdsButtonIcon/types.ts +12 -0
- package/src/components/Buttons/FdsButtonMinor/FdsButtonMinor.stories.ts +68 -0
- package/src/components/Buttons/FdsButtonMinor/FdsButtonMinor.vue +126 -0
- package/src/components/Buttons/FdsButtonPrimary/FdsButtonPrimary.stories.ts +86 -0
- package/src/components/Buttons/FdsButtonPrimary/FdsButtonPrimary.vue +107 -0
- package/src/components/Buttons/FdsButtonSecondary/FdsButtonSecondary.stories.ts +68 -0
- package/src/components/Buttons/FdsButtonSecondary/FdsButtonSecondary.vue +107 -0
- package/src/components/FdsIcon/FdsIcon.stories.ts +69 -0
- package/src/components/FdsIcon/FdsIcon.vue +34 -0
- package/src/components/FdsIcon/types.ts +9 -0
- package/src/components/FdsModal/FdsModal.stories.ts +241 -0
- package/src/components/FdsModal/FdsModal.vue +269 -0
- package/src/components/FdsModal/types.ts +12 -0
- package/src/components/FdsPagination/FdsPagination.stories.ts +109 -0
- package/src/components/FdsPagination/FdsPagination.vue +193 -0
- package/src/components/FdsPagination/types.ts +6 -0
- package/src/components/FdsSearchSelect/FdsSearchSelect.stories.ts +428 -0
- package/src/components/FdsSearchSelect/FdsSearchSelect.vue +621 -0
- package/src/components/FdsSearchSelect/types.ts +25 -0
- package/src/components/FdsSpinner/FdsSpinner.stories.ts +31 -0
- package/src/components/FdsSpinner/FdsSpinner.vue +90 -0
- package/src/components/FdsSpinner/types.ts +6 -0
- package/src/components/FdsSticker/FdsSticker.stories.ts +148 -0
- package/src/components/FdsSticker/FdsSticker.vue +44 -0
- package/src/components/FdsSticker/types.ts +4 -0
- package/src/components/FdsTreeView/FdsTreeView.stories.ts +136 -0
- package/src/components/FdsTreeView/FdsTreeView.vue +162 -0
- package/src/components/FdsTreeView/TreeNode.vue +383 -0
- package/src/components/FdsTreeView/types.ts +141 -0
- package/src/components/FdsTreeView/useTreeState.ts +607 -0
- package/src/components/FdsTreeView/utils.ts +69 -0
- package/src/components/FdsTruncatedText/FdsTruncatedText.stories.ts +78 -0
- package/src/components/FdsTruncatedText/FdsTruncatedText.vue +85 -0
- package/src/components/FdsTruncatedText/types.ts +6 -0
- package/src/components/Form/FdsCheckbox/FdsCheckbox.stories.ts +275 -0
- package/src/components/Form/FdsCheckbox/FdsCheckbox.vue +155 -0
- package/src/components/Form/FdsCheckbox/types.ts +10 -0
- package/src/components/Form/FdsInput/FdsInput.stories.ts +319 -0
- package/src/components/Form/FdsInput/FdsInput.vue +233 -0
- package/src/components/Form/FdsInput/types.ts +25 -0
- package/src/components/Form/FdsRadio/FdsRadio.stories.ts +63 -0
- package/src/components/Form/FdsRadio/FdsRadio.vue +88 -0
- package/src/components/Form/FdsRadio/types.ts +12 -0
- package/src/components/Form/FdsSelect/FdsSelect.stories.ts +78 -0
- package/src/components/Form/FdsSelect/FdsSelect.vue +136 -0
- package/src/components/Form/FdsSelect/types.ts +13 -0
- package/src/components/Form/FdsTextarea/FdsTextarea.stories.ts +52 -0
- package/src/components/Form/FdsTextarea/FdsTextarea.vue +110 -0
- package/src/components/Form/FdsTextarea/types.ts +12 -0
- package/src/components/Table/FdsTable/FdsTable.stories.ts +221 -0
- package/src/components/Table/FdsTable/FdsTable.vue +25 -0
- package/src/components/Table/FdsTable/types.ts +4 -0
- package/src/components/Table/FdsTableHead/FdsTableHead.stories.ts +151 -0
- package/src/components/Table/FdsTableHead/FdsTableHead.vue +54 -0
- package/src/components/Table/FdsTableHead/types.ts +5 -0
- package/src/components/Tabs/FdsTabs/FdsTabs.stories.ts +247 -0
- package/src/components/Tabs/FdsTabs/FdsTabs.vue +27 -0
- package/src/components/Tabs/FdsTabs/types.ts +4 -0
- package/src/components/Tabs/FdsTabsItem/FdsTabsItem.vue +125 -0
- package/src/components/Tabs/FdsTabsItem/types.ts +16 -0
- package/src/components/Typography/FdsHeading/FdsHeading.stories.ts +93 -0
- package/src/components/Typography/FdsHeading/FdsHeading.vue +51 -0
- package/src/components/Typography/FdsHeading/types.ts +5 -0
- package/src/components/Typography/FdsListHeading/FdsListHeading.stories.ts +58 -0
- package/src/components/Typography/FdsListHeading/FdsListHeading.vue +62 -0
- package/src/components/Typography/FdsListHeading/types.ts +8 -0
- package/src/components/Typography/FdsSeparator/FdsSeparator.stories.ts +31 -0
- package/src/components/Typography/FdsSeparator/FdsSeparator.vue +5 -0
- package/src/components/Typography/FdsText/FdsText.stories.ts +66 -0
- package/src/components/Typography/FdsText/FdsText.vue +28 -0
- package/src/components/Typography/FdsText/types.ts +3 -0
- package/src/composables/useBoldQuery.ts +29 -0
- package/src/composables/useElementFinalSize.ts +24 -0
- package/src/composables/useHasSlots.ts +17 -0
- package/src/composables/useIsPid.ts +48 -0
- package/src/docs/Start/Start.mdx +12 -0
- package/src/docs/Usage.md +117 -0
- package/src/fonts.css +28 -0
- package/src/global-components.ts +75 -0
- package/src/index.ts +180 -0
- package/src/main.ts +7 -0
- package/src/slot-styles.css +93 -0
- package/src/style.css +89 -0
- package/src/tokens.css +252 -0
- package/dist/index.d.ts +0 -2
|
@@ -1,37 +1,39 @@
|
|
|
1
1
|
import type { DefineComponent } from 'vue'
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
2
|
+
// Import prop types directly from their source modules to avoid circular deps with index.ts
|
|
3
|
+
import type { FdsTreeViewProps } from './components/FdsTreeView/types'
|
|
4
|
+
import type { FdsButtonBaseProps } from './components/Buttons/ButtonBaseProps'
|
|
5
|
+
import type { FdsCopyButtonProps } from './components/Buttons/FdsButtonCopy/types'
|
|
6
|
+
import type { FdsIconButtonProps } from './components/Buttons/FdsButtonIcon/types'
|
|
7
|
+
import type { FdsIconProps } from './components/FdsIcon/types'
|
|
8
|
+
import type { FdsSpinnerProps } from './components/FdsSpinner/types'
|
|
9
|
+
import type { FdsRadioProps } from './components/Form/FdsRadio/types'
|
|
10
|
+
import type { FdsInputProps } from './components/Form/FdsInput/types'
|
|
11
|
+
import type { FdsCheckboxProps } from './components/Form/FdsCheckbox/types'
|
|
12
|
+
import type { FdsTextareaProps } from './components/Form/FdsTextarea/types'
|
|
13
|
+
import type { FdsSelectProps } from './components/Form/FdsSelect/types'
|
|
14
|
+
import type { FdsTableProps } from './components/Table/FdsTable/types'
|
|
15
|
+
import type { FdsTableHeadProps } from './components/Table/FdsTableHead/types'
|
|
16
|
+
import type { FdsContentBlockProps } from './components/Blocks/FdsBlockContent/types'
|
|
17
|
+
import type { FdsBlockInfoProps } from './components/Blocks/FdsBlockInfo/types'
|
|
18
|
+
import type { FdsAlertBlockProps } from './components/Blocks/FdsBlockAlert/types'
|
|
19
|
+
import type { FdsExpanderBlockProps } from './components/Blocks/FdsBlockExpander/types'
|
|
20
|
+
import type { FdsInteractionBlockProps } from './components/Blocks/FdsBlockLink/types'
|
|
21
|
+
import type { FdsStickerProps } from './components/FdsSticker/types'
|
|
22
|
+
import type { FdsTabsProps } from './components/Tabs/FdsTabs/types'
|
|
23
|
+
import type { FdsTabsItemProps } from './components/Tabs/FdsTabsItem/types'
|
|
24
|
+
import type { FdsModalProps } from './components/FdsModal/types'
|
|
25
|
+
import type { FdsPaginationProps } from './components/FdsPagination/types'
|
|
26
|
+
import type { FdsSearchSelectProps } from './components/FdsSearchSelect/types'
|
|
27
|
+
import type { FdsTruncatedTextProps } from './components/FdsTruncatedText/types'
|
|
28
|
+
import type { FdsHeadingProps } from './components/Typography/FdsHeading/types'
|
|
29
|
+
import type { FdsTextProps } from './components/Typography/FdsText/types'
|
|
30
|
+
import type { FdsListHeadingProps } from './components/Typography/FdsListHeading/types'
|
|
31
|
+
|
|
32
|
+
// Derive button prop types from base props
|
|
33
|
+
type FdsButtonPrimaryProps = FdsButtonBaseProps
|
|
34
|
+
type FdsButtonSecondaryProps = FdsButtonBaseProps
|
|
35
|
+
type FdsButtonMinorProps = FdsButtonBaseProps
|
|
36
|
+
type FdsButtonDownloadProps = FdsButtonBaseProps
|
|
35
37
|
|
|
36
38
|
declare module '@vue/runtime-core' {
|
|
37
39
|
export interface GlobalComponents {
|
package/package.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fds-vue-core",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.6",
|
|
4
4
|
"description": "FDS Vue Core Component Library",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/fds-vue-core.cjs.js",
|
|
7
7
|
"module": "./dist/fds-vue-core.es.js",
|
|
8
|
-
"types": "./
|
|
8
|
+
"types": "./components.d.ts",
|
|
9
9
|
"exports": {
|
|
10
10
|
".": {
|
|
11
|
-
"types": "./
|
|
11
|
+
"types": "./components.d.ts",
|
|
12
12
|
"import": "./dist/fds-vue-core.es.js",
|
|
13
13
|
"require": "./dist/fds-vue-core.cjs.js"
|
|
14
14
|
},
|
|
@@ -28,6 +28,8 @@
|
|
|
28
28
|
},
|
|
29
29
|
"files": [
|
|
30
30
|
"dist",
|
|
31
|
+
"src",
|
|
32
|
+
"components.d.ts",
|
|
31
33
|
"tailwind.preset.cjs",
|
|
32
34
|
"configs",
|
|
33
35
|
"scripts"
|
|
@@ -45,7 +47,7 @@
|
|
|
45
47
|
},
|
|
46
48
|
"scripts": {
|
|
47
49
|
"serve": "vite",
|
|
48
|
-
"build": "vite build && npm run build:types && cp ./src/tokens.css ./dist/tokens.css && cp ./src/slot-styles.css ./dist/slot-styles.css && cp ./src/apply.css ./dist/apply.css && cp ./src/fonts.css ./dist/fonts.css && cp ./src/global-components.ts ./dist/global-components.d.ts &&
|
|
50
|
+
"build": "vite build && npm run build:types && cp ./src/tokens.css ./dist/tokens.css && cp ./src/slot-styles.css ./dist/slot-styles.css && cp ./src/apply.css ./dist/apply.css && cp ./src/fonts.css ./dist/fonts.css && cp ./src/global-components.ts ./dist/global-components.d.ts && cp -r ./public/assets ./dist/assets",
|
|
49
51
|
"build:types": "vue-tsc --project tsconfig.build.json",
|
|
50
52
|
"preview": "vite preview",
|
|
51
53
|
"lint": "eslint . --fix",
|
|
@@ -58,11 +60,11 @@
|
|
|
58
60
|
"postinstall": "test -f scripts/sync-peers-from-dev.mjs && node scripts/sync-peers-from-dev.mjs || true"
|
|
59
61
|
},
|
|
60
62
|
"peerDependencies": {
|
|
61
|
-
"vue": "^3.5.
|
|
63
|
+
"vue": "^3.5.25"
|
|
62
64
|
},
|
|
63
65
|
"dependencies": {
|
|
64
66
|
"imask": "^7.6.1",
|
|
65
|
-
"tailwindcss": "^4.1.
|
|
67
|
+
"tailwindcss": "^4.1.18",
|
|
66
68
|
"vue-imask": "^7.6.1"
|
|
67
69
|
},
|
|
68
70
|
"devDependencies": {
|
|
@@ -73,33 +75,33 @@
|
|
|
73
75
|
"@storybook/addon-onboarding": "^9.1.10",
|
|
74
76
|
"@storybook/addon-vitest": "^9.1.10",
|
|
75
77
|
"@storybook/vue3-vite": "^9.1.10",
|
|
76
|
-
"@tailwindcss/vite": "^4.1.
|
|
77
|
-
"@tsconfig/node22": "^22.0.
|
|
78
|
+
"@tailwindcss/vite": "^4.1.18",
|
|
79
|
+
"@tsconfig/node22": "^22.0.5",
|
|
78
80
|
"@types/node": "^22.16.5",
|
|
79
81
|
"@types/react": "18",
|
|
80
82
|
"@types/react-dom": "18",
|
|
81
|
-
"@vitejs/plugin-vue": "^6.0.
|
|
83
|
+
"@vitejs/plugin-vue": "^6.0.3",
|
|
82
84
|
"@vitest/browser": "^3.2.4",
|
|
83
85
|
"@vitest/coverage-v8": "^3.2.4",
|
|
84
|
-
"@vitest/eslint-plugin": "^1.
|
|
86
|
+
"@vitest/eslint-plugin": "^1.5.2",
|
|
85
87
|
"@vue/eslint-config-prettier": "^10.2.0",
|
|
86
88
|
"@vue/eslint-config-typescript": "^14.6.0",
|
|
87
|
-
"@vue/tsconfig": "^0.
|
|
88
|
-
"eslint": "^9.
|
|
89
|
+
"@vue/tsconfig": "^0.8.1",
|
|
90
|
+
"eslint": "^9.39.2",
|
|
89
91
|
"eslint-plugin-storybook": "^9.1.10",
|
|
90
|
-
"eslint-plugin-vue": "~10.
|
|
92
|
+
"eslint-plugin-vue": "~10.6.2",
|
|
91
93
|
"lit": "^3.3.1",
|
|
92
|
-
"playwright": "^1.
|
|
93
|
-
"prettier": "3.
|
|
94
|
-
"sass": "^1.
|
|
94
|
+
"playwright": "^1.57.0",
|
|
95
|
+
"prettier": "3.7.4",
|
|
96
|
+
"sass": "^1.96.0",
|
|
95
97
|
"storybook": "^9.1.10",
|
|
96
98
|
"storybook-vue-slots": "^9.1.5",
|
|
97
|
-
"typescript": "~5.
|
|
98
|
-
"vite": "^7.
|
|
99
|
+
"typescript": "~5.9.3",
|
|
100
|
+
"vite": "^7.2.7",
|
|
99
101
|
"vite-plugin-dts": "^4.5.4",
|
|
100
|
-
"vite-plugin-vue-devtools": "^8.0.
|
|
102
|
+
"vite-plugin-vue-devtools": "^8.0.5",
|
|
101
103
|
"vitest": "^3.2.4",
|
|
102
|
-
"vue": "^3.5.
|
|
103
|
-
"vue-tsc": "^3.
|
|
104
|
+
"vue": "^3.5.25",
|
|
105
|
+
"vue-tsc": "^3.1.8"
|
|
104
106
|
}
|
|
105
107
|
}
|
package/src/.DS_Store
ADDED
|
Binary file
|
package/src/App.vue
ADDED
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import FdsTreeView from '@/components/FdsTreeView/FdsTreeView.vue'
|
|
3
|
+
import type { FdsTreeNode } from '@/components/FdsTreeView/types'
|
|
4
|
+
import { ref } from 'vue'
|
|
5
|
+
|
|
6
|
+
// Mock tree data
|
|
7
|
+
const mockTreeData: FdsTreeNode<Record<string, unknown>>[] = [
|
|
8
|
+
{
|
|
9
|
+
nodeId: 'root-1',
|
|
10
|
+
title: 'Documents',
|
|
11
|
+
children: [
|
|
12
|
+
{
|
|
13
|
+
nodeId: 'doc-1',
|
|
14
|
+
title: 'Work',
|
|
15
|
+
children: [
|
|
16
|
+
{
|
|
17
|
+
nodeId: 'work-1',
|
|
18
|
+
title: 'Projects',
|
|
19
|
+
children: [
|
|
20
|
+
{
|
|
21
|
+
nodeId: 'proj-1',
|
|
22
|
+
title: 'Project Alpha',
|
|
23
|
+
data: { type: 'project', status: 'active' },
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
nodeId: 'proj-2',
|
|
27
|
+
title: 'Project Beta',
|
|
28
|
+
data: { type: 'project', status: 'completed' },
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
nodeId: 'proj-3',
|
|
32
|
+
title: 'Project Gamma',
|
|
33
|
+
data: { type: 'project', status: 'planning', person_name: 'Anna Sjöström' },
|
|
34
|
+
},
|
|
35
|
+
],
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
nodeId: 'work-2',
|
|
39
|
+
title: 'Reports',
|
|
40
|
+
children: [],
|
|
41
|
+
},
|
|
42
|
+
],
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
nodeId: 'doc-2',
|
|
46
|
+
title: 'Personal',
|
|
47
|
+
children: [
|
|
48
|
+
{ nodeId: 'pers-1', title: 'Photos', data: { type: 'folder', count: 150 } },
|
|
49
|
+
{ nodeId: 'pers-2', title: 'Videos', data: { type: 'folder', count: 25 } },
|
|
50
|
+
{ nodeId: 'pers-3', title: 'Music', data: { type: 'folder', count: 500 } },
|
|
51
|
+
],
|
|
52
|
+
},
|
|
53
|
+
],
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
nodeId: 'root-2',
|
|
57
|
+
title: 'Applications',
|
|
58
|
+
children: [
|
|
59
|
+
{
|
|
60
|
+
nodeId: 'app-1',
|
|
61
|
+
title: 'Development',
|
|
62
|
+
children: [
|
|
63
|
+
{ nodeId: 'dev-1', title: 'VS Code', data: { type: 'app', category: 'editor' } },
|
|
64
|
+
{ nodeId: 'dev-2', title: 'Terminal', data: { type: 'app', category: 'utility' } },
|
|
65
|
+
{ nodeId: 'dev-3', title: 'Git', data: { type: 'app', category: 'version-control' } },
|
|
66
|
+
],
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
nodeId: 'app-2',
|
|
70
|
+
title: 'Design',
|
|
71
|
+
children: [
|
|
72
|
+
{ nodeId: 'design-1', title: 'Figma', data: { type: 'app', category: 'design' } },
|
|
73
|
+
{ nodeId: 'design-2', title: 'Sketch', data: { type: 'app', category: 'design' } },
|
|
74
|
+
],
|
|
75
|
+
},
|
|
76
|
+
],
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
nodeId: 'root-3',
|
|
80
|
+
title: 'Settings',
|
|
81
|
+
children: [
|
|
82
|
+
{ nodeId: 'set-1', title: 'General', data: { type: 'setting', category: 'preferences' } },
|
|
83
|
+
{ nodeId: 'set-2', title: 'Privacy', data: { type: 'setting', category: 'security' } },
|
|
84
|
+
{ nodeId: 'set-3', title: 'Notifications', data: { type: 'setting', category: 'alerts' } },
|
|
85
|
+
],
|
|
86
|
+
},
|
|
87
|
+
]
|
|
88
|
+
|
|
89
|
+
const treeData: FdsTreeNode<Record<string, unknown>> = {
|
|
90
|
+
nodeId: 'root',
|
|
91
|
+
title: 'Root',
|
|
92
|
+
children: mockTreeData,
|
|
93
|
+
data: { type: 'root' },
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
type SelectedShape = Pick<FdsTreeNode, 'nodeId' | 'title' | 'data' | 'children'>
|
|
97
|
+
const selectedNodes = ref<SelectedShape[]>([])
|
|
98
|
+
</script>
|
|
99
|
+
|
|
100
|
+
<template>
|
|
101
|
+
<div class="app p-8">
|
|
102
|
+
<div class="border border-gray-200 rounded-lg p-4 mb-8">
|
|
103
|
+
<h2 class="text-lg font-semibold mb-4">FDS Tree View Test</h2>
|
|
104
|
+
<FdsTreeView
|
|
105
|
+
:data="treeData"
|
|
106
|
+
:expandAllChildrenOnParentCheck="true"
|
|
107
|
+
:expandChildrenOnParentCheck="true"
|
|
108
|
+
:horizontalScroll="true"
|
|
109
|
+
:indentation="36"
|
|
110
|
+
:nodeCollapseIcon="'arrowUp'"
|
|
111
|
+
:nodeExpandIcon="'arrowDown'"
|
|
112
|
+
:searchEnabled="true"
|
|
113
|
+
:searchExpandNodes="true"
|
|
114
|
+
:searchHighlighting="true"
|
|
115
|
+
:searchLabel="'Sök noder'"
|
|
116
|
+
:searchMatchParams="['title']"
|
|
117
|
+
:showIndeterminate="true"
|
|
118
|
+
:showIndeterminateOnlyOnChildrenSelection="true"
|
|
119
|
+
:titleTemplate="'[[title]] ([[nodeId]])'"
|
|
120
|
+
:searchResultNoMatchesTitle="'Inga resultat hittades'"
|
|
121
|
+
:searchResultNoMatchesBody="'Pröva sök på något annat'"
|
|
122
|
+
:searchCountTemplate="'[[filteredNodes]] av [[totalNodes]] avdelningar'"
|
|
123
|
+
:searchCountTemplateUnfiltered="'[[totalNodes]] avdelningar'"
|
|
124
|
+
:popoverLabels="{
|
|
125
|
+
parentAndChildren: 'Denna och alla underliggande',
|
|
126
|
+
parent: 'Endast denna nivå',
|
|
127
|
+
}"
|
|
128
|
+
:searchInputTriggerLength="2"
|
|
129
|
+
v-model:selectedNodes="selectedNodes"
|
|
130
|
+
/>
|
|
131
|
+
</div>
|
|
132
|
+
</div>
|
|
133
|
+
</template>
|
package/src/apply.css
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
@import './tokens.css';
|
|
2
|
+
|
|
3
|
+
/** Create stencil components for this */
|
|
4
|
+
@layer components {
|
|
5
|
+
h1,
|
|
6
|
+
.h1 {
|
|
7
|
+
@apply font-heading text-2xl sm:text-4xl lg:text-6xl/tight font-extrabold mb-3 mt-0;
|
|
8
|
+
}
|
|
9
|
+
h2,
|
|
10
|
+
.h2 {
|
|
11
|
+
@apply font-heading text-xl sm:text-3xl font-extrabold mt-4 mb-4;
|
|
12
|
+
}
|
|
13
|
+
.h2--small {
|
|
14
|
+
@apply font-heading text-xl font-extrabold mt-4 mb-4;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
h3,
|
|
18
|
+
.h3 {
|
|
19
|
+
@apply font-heading text-xl font-extrabold mt-4 mb-4;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.h3--small {
|
|
23
|
+
@apply font-heading text-lg font-extrabold mt-4 mb-2;
|
|
24
|
+
}
|
|
25
|
+
h1:focus,
|
|
26
|
+
h2:focus,
|
|
27
|
+
h3:focus {
|
|
28
|
+
@apply focus:outline-0;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.label {
|
|
32
|
+
@apply font-bold mb-2! tracking-wide;
|
|
33
|
+
}
|
|
34
|
+
p {
|
|
35
|
+
@apply mb-4;
|
|
36
|
+
}
|
|
37
|
+
li:not(:last-child) {
|
|
38
|
+
@apply mb-2;
|
|
39
|
+
}
|
|
40
|
+
.link,
|
|
41
|
+
.html a {
|
|
42
|
+
@apply text-blue-600 hover:text-blue-700 active:text-blue-800 underline focus-visible:outline-dashed focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-blue-500;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.capitalize-first::first-letter {
|
|
46
|
+
text-transform: uppercase;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
@layer utilities {
|
|
51
|
+
/** Override browser background color when autocomplete field */
|
|
52
|
+
input:not(input[type='checkbox'], input[type='radio']),
|
|
53
|
+
textarea {
|
|
54
|
+
box-shadow: 0 0 0 1000px #fff inset !important;
|
|
55
|
+
}
|
|
56
|
+
/** Style active router link in main nav */
|
|
57
|
+
.nav-items .router-link-active {
|
|
58
|
+
@apply bg-blue-100 text-blue-700 font-bold;
|
|
59
|
+
}
|
|
60
|
+
}
|